herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.0
Herwig::VectorMeson3PionDecayer Class Reference

The VectorMeson3PionDecayer class is designed to perform the decay of an $I=0$ meson to three pions via rho mesons including the option of higher rho resonaces and a constant term. More...

#include <VectorMeson3PionDecayer.h>

Inheritance diagram for Herwig::VectorMeson3PionDecayer:

List of all members.

Public Member Functions

 VectorMeson3PionDecayer ()
 Default constructor.
double me2 (const int ichan, const Particle &part, const ParticleVector &decay, MEOption meopt) const
 Return the matrix element squared for a given mode and phase-space channel.
virtual int modeNumber (bool &cc, tcPDPtr parent, const tPDVector &children) const
 Which of the possible decays is required.
virtual WidthCalculatorBasePtr threeBodyMEIntegrator (const DecayMode &dm) const
 Method to return an object to calculate the 3 body partial width.
virtual double threeBodyMatrixElement (const int imode, const Energy2 q2, const Energy2 s3, const Energy2 s2, const Energy2 s1, const Energy m1, const Energy m2, const Energy m3) const
 The matrix element to be integrated for the three-body decays as a function of the invariant masses of pairs of the outgoing particles.
virtual void dataBaseOutput (ofstream &os, bool header) const
 Output the setup information for the particle database.
Functions used by the persistent I/O system.
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently.
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently.

Static Public Member Functions

static void Init ()
 Standard Init function used to initialize the interfaces.

Protected Member Functions

Clone Methods.
virtual IBPtr clone () const
 Make a simple clone of this object.
virtual IBPtr fullclone () const
 Make a clone of this object, possibly modifying the cloned object to make it sane.
Standard Interfaced functions.
virtual void doinit ()
 Initialize this object after the setup phase before saving and EventGenerator to disk.
virtual void doinitrun ()
 Initialize this object to the begining of the run phase.

Private Member Functions

VectorMeson3PionDecayeroperator= (const VectorMeson3PionDecayer &)
 Private and non-existent assignment operator.

Private Attributes

vector< double > _incoming
 vector storing the decaying particles for the different modes
vector< InvEnergy > _coupling
 the overall coupling for the decay, $g$.
vector< double > _directcoupling
 relative coupling for the direct term, $a_d$.
vector< double > _directphase
 relative phase for the direct term, $\phi_d$.
vector< double > _rho2coupling
 relative coupling for the second rho multiplet, $a_{\rho_2}$.
vector< double > _rho2phase
 relative phase for the second rho multiplet, $\phi_{\rho_2}$.
vector< double > _rho3coupling
 relative coupling for the second rho multiplet, $a_{\rho_3}$.
vector< double > _rho3phase
 relative phase for the second rho multiplet, $\phi_{\rho_3}$.
vector< double > _maxwgt
 maximum weight for the integration of the channel
vector< double > _rho1wgt
 weight for the first rho multiplet in the integration
vector< double > _rho2wgt
 weight for the second rho multiplet in the integration
vector< double > _rho3wgt
 weight for the third rho multiplet in the integration
vector< Energy > _rho1mass
 mass of the first rho multiplet, $M_{\rho_1}$.
vector< Energy > _rho2mass
 mass of the second rho multiplet, $M_{\rho_2}$.
vector< Energy > _rho3mass
 mass of the third rho multiplet, $M_{\rho_3}$.
vector< Energy > _rho1width
 width of the first rho multiplet, $\Gamma_{\rho_1}$.
vector< Energy > _rho2width
 width of the second rho multiplet, $\Gamma_{\rho_2}$.
vector< Energy > _rho3width
 width of the third rho multiplet, $\Gamma_{\rho_3}$.
vector< bool > _defaultmass
 use the default parameters for the rho masses and widths
vector< vector< Energy > > _rhomass
 rho mass parameters
vector< vector< Energy2 > > _rhomass2
 rho mass parameters
vector< vector< complex
< InvEnergy2 > > > 
_ccoupling
 couplings as complex numbers
Energy _mpic
 The charge pion mass.
Energy _mpi0
 The neutral pion mass.
unsigned int _initsize
 Initial size of the vectors.
vector
< Helicity::LorentzPolarizationVector
_vectors
 Storage of polarization tensors to try and increase speed.
RhoDMatrix _rho
 Storage of the $\rho$ matrix.
vector< vector< double > > _rho0const
 Constants for the running widths.
vector< vector< double > > _rhocconst
 For the charged $\rho$.

Static Private Attributes

static ClassDescription
< VectorMeson3PionDecayer
initVectorMeson3PionDecayer
 Describe a concrete class with persistent data.

Detailed Description

The VectorMeson3PionDecayer class is designed to perform the decay of an $I=0$ meson to three pions via rho mesons including the option of higher rho resonaces and a constant term.

It is mainly intended for the decays:

  • $\omega \to \pi^+\pi^-\pi^0$;
  • $\phi \to \pi^+\pi^-\pi^0$.

The default for the $\omega$ is to only include the contributions of the $\rho(770)$ without a constant term, whereas for the $\phi$ the parameters from hep-ex/0303016 (KLOE) which includes the $\rho(770)$ and a constant term to represent the effects of the higher rho resonances is used. (The KLOE paper also included a omega contribution but this is assumed to be a non-resonant contribution to the $e^+e^-$ cross section.)

The form of the matrix element is taken to be

\[\mathcal{M} = \frac{g}{M^2_{\rho}}\epsilon^{\mu\alpha\beta\gamma} \epsilon_{0\mu} p_{+\alpha}p_{-\beta}p_{0\gamma} \left[a_de^{i\phi_d} +\sum_k a_{\rho_k}e^{i\phi_{\rho_k}} \left\{ \frac{M^2_{\rho_k^+}}{m^2_{0+}-M^2_{\rho_k^+} +im_{0+}\Gamma_{\rho_k^+}(m^2_{0+})} +\frac{M^2_{\rho_k^-}}{m^2_{0-}-M^2_{\rho_k^-} +im_{0-}\Gamma_{\rho_k^-}(m^2_{0-})} +\frac{M^2_{\rho_k^0}}{m^2_{+-}-M^2_{\rho_k^0} +im_{+-}\Gamma_{\rho_k^0}(m^2_{+-})}\right\} \right],\]

where $\epsilon_0$ is the polarization vector of the decaying meson, $p_{+,-,0}$ are the momenta of the positively charged, negatively charged and neutral pions respectively, $m^2_{ij}=(p_i+p_j)^2$, $M_{\rho_k}$ is the mass of the $k$th $\rho$ resonance, $g$ is the overall coupling and

\[\Gamma_{\rho_k}(m^2) = \Gamma_{\rho_k}\left(\frac{p_\pi(m^2)}{p_\pi(M_{\rho_k}^2)}\right)^2 \left(\frac{M_{\rho_k}^2}{m^2}\right) \]

where $p_\pi$ is the pion momentum in the $\rho$ rest frame and $\Gamma_{\rho_k}$ is the width. In practice the couplings of the different terms are measured relative to the coupling of the lightest $\rho$ multiplet which is assumed to be one.

To allow the easy addition of further modes the parameters for additional modes can be set. The following must be specified for each mode

  • Incoming - the PDG code for the incoming particle
  • Coupling - the overall coupling for the decay, $g$.
  • DirectCoupling - the relative coupling for the direct term, $a_d$.
  • DirectPhase - the phase of the coupling for the direct term, $\phi_d$.
  • Rho2Coupling - the relative coupling for the second rho multiplet, $a_{\rho_2}$.
  • Rho2Phase - the phase of the coupling for the second rho multiplet, $\phi_{\rho_2}$.
  • Rho3Coupling - the relative coupling for the third rho multiplet, $a_{\rho_3}$.
  • Rho3Phase - the phase of the coupling for the third rho multiplet, $\phi_{\rho_3}$.
  • MaximumWeight - the maximum weight for the integration of the channel
  • Rho1Weight - the weight for the first rho multiplet in the multichannel integration
  • Rho2Weight - the weight for the second rho multiplet in the multichannel integration
  • Rho3Weight - the weight for the third rho multiplet in the multichannel integration
  • Rho1Mass - mass of the first rho multiplet, $M_{\rho_1}$.
  • Rho2Mass - mass of the second rho multiplet, $M_{\rho_2}$.
  • Rho3Mass - mass of the third rho multiplet, $M_{\rho_3}$.
  • Rho1Width - width of the first rho multiplet, $\Gamma_{\rho_1}$.
  • Rho2Width - width of the second rho multiplet, $\Gamma_{\rho_2}$.
  • Rho3Width - width of the third rho multiplet, $\Gamma_{\rho_3}$.
See also:
DecayIntegrator
The interfaces defined for VectorMeson3PionDecayer.
Author:
Peter Richardson

Definition at line 99 of file VectorMeson3PionDecayer.h.


Member Function Documentation

virtual IBPtr Herwig::VectorMeson3PionDecayer::clone ( ) const [inline, protected, virtual]

Make a simple clone of this object.

Returns:
a pointer to the new object.

Implements ThePEG::InterfacedBase.

Definition at line 191 of file VectorMeson3PionDecayer.h.

virtual void Herwig::VectorMeson3PionDecayer::dataBaseOutput ( ofstream &  os,
bool  header 
) const [virtual]

Output the setup information for the particle database.

Parameters:
osThe stream to output the information to
headerWhether or not to output the information for MySQL

Reimplemented from Herwig::DecayIntegrator.

virtual void Herwig::VectorMeson3PionDecayer::doinit ( ) [protected, virtual]

Initialize this object after the setup phase before saving and EventGenerator to disk.

Exceptions:
InitExceptionif object could not be initialized properly.

Reimplemented from ThePEG::InterfacedBase.

virtual IBPtr Herwig::VectorMeson3PionDecayer::fullclone ( ) const [inline, protected, virtual]

Make a clone of this object, possibly modifying the cloned object to make it sane.

Returns:
a pointer to the new object.

Reimplemented from ThePEG::InterfacedBase.

Definition at line 197 of file VectorMeson3PionDecayer.h.

double Herwig::VectorMeson3PionDecayer::me2 ( const int  ichan,
const Particle part,
const ParticleVector decay,
MEOption  meopt 
) const [virtual]

Return the matrix element squared for a given mode and phase-space channel.

Parameters:
ichanThe channel we are calculating the matrix element for.
partThe decaying Particle.
decayThe particles produced in the decay.
meoptOption for the calculation of the matrix element
Returns:
The matrix element squared for the phase-space configuration.

Implements Herwig::DecayIntegrator.

virtual int Herwig::VectorMeson3PionDecayer::modeNumber ( bool &  cc,
tcPDPtr  parent,
const tPDVector children 
) const [virtual]

Which of the possible decays is required.

Parameters:
ccIs this mode the charge conjugate
parentThe decaying particle
childrenThe decay products

Implements Herwig::DecayIntegrator.

Function used to read in object persistently.

Parameters:
isthe persistent input stream read from.
versionthe version number of the object when written.

Reimplemented from Herwig::DecayIntegrator.

Function used to write out object persistently.

Parameters:
osthe persistent output stream written to.

Reimplemented from Herwig::DecayIntegrator.

virtual double Herwig::VectorMeson3PionDecayer::threeBodyMatrixElement ( const int  imode,
const Energy2  q2,
const Energy2  s3,
const Energy2  s2,
const Energy2  s1,
const Energy  m1,
const Energy  m2,
const Energy  m3 
) const [virtual]

The matrix element to be integrated for the three-body decays as a function of the invariant masses of pairs of the outgoing particles.

Parameters:
imodeThe mode for which the matrix element is needed.
q2The scale, i.e. the mass squared of the decaying particle.
s3The invariant mass squared of particles 1 and 2, $s_3=m^2_{12}$.
s2The invariant mass squared of particles 1 and 3, $s_2=m^2_{13}$.
s1The invariant mass squared of particles 2 and 3, $s_1=m^2_{23}$.
m1The mass of the first outgoing particle.
m2The mass of the second outgoing particle.
m3The mass of the third outgoing particle.
Returns:
The matrix element

Reimplemented from Herwig::DecayIntegrator.

virtual WidthCalculatorBasePtr Herwig::VectorMeson3PionDecayer::threeBodyMEIntegrator ( const DecayMode dm) const [virtual]

Method to return an object to calculate the 3 body partial width.

Parameters:
dmThe DecayMode
Returns:
A pointer to a WidthCalculatorBase object capable of calculating the width

Reimplemented from Herwig::DecayIntegrator.


Member Data Documentation

vector<vector <double> > Herwig::VectorMeson3PionDecayer::_rho0const [private]

Constants for the running widths.

For the neutral $\rho$

Definition at line 333 of file VectorMeson3PionDecayer.h.


The documentation for this class was generated from the following file: