Herwig++
2.7.0
|
The VectorMeson3PionDecayer class is designed to perform the decay of an meson to three pions via rho mesons including the option of higher rho resonaces and a constant term.
More...
#include <VectorMeson3PionDecayer.h>
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 | |
VectorMeson3PionDecayer & | operator= (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, ![]() | |
vector< double > | _directcoupling |
relative coupling for the direct term, ![]() | |
vector< double > | _directphase |
relative phase for the direct term, ![]() | |
vector< double > | _rho2coupling |
relative coupling for the second rho multiplet, ![]() | |
vector< double > | _rho2phase |
relative phase for the second rho multiplet, ![]() | |
vector< double > | _rho3coupling |
relative coupling for the second rho multiplet, ![]() | |
vector< double > | _rho3phase |
relative phase for the second rho multiplet, ![]() | |
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, ![]() | |
vector< Energy > | _rho2mass |
mass of the second rho multiplet, ![]() | |
vector< Energy > | _rho3mass |
mass of the third rho multiplet, ![]() | |
vector< Energy > | _rho1width |
width of the first rho multiplet, ![]() | |
vector< Energy > | _rho2width |
width of the second rho multiplet, ![]() | |
vector< Energy > | _rho3width |
width of the third rho multiplet, ![]() | |
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 ![]() | |
vector< vector< double > > | _rho0const |
Constants for the running widths. | |
vector< vector< double > > | _rhocconst |
For the charged ![]() | |
Static Private Attributes | |
static ClassDescription < VectorMeson3PionDecayer > | initVectorMeson3PionDecayer |
Describe a concrete class with persistent data. |
The VectorMeson3PionDecayer class is designed to perform the decay of an 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:
The default for the is to only include the contributions of the
without a constant term, whereas for the
the parameters from hep-ex/0303016 (KLOE) which includes the
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
cross section.)
The form of the matrix element is taken to be
where is the polarization vector of the decaying meson,
are the momenta of the positively charged, negatively charged and neutral pions respectively,
,
is the mass of the
th
resonance,
is the overall coupling and
where is the pion momentum in the
rest frame and
is the width. In practice the couplings of the different terms are measured relative to the coupling of the lightest
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
Definition at line 99 of file VectorMeson3PionDecayer.h.
virtual IBPtr Herwig::VectorMeson3PionDecayer::clone | ( | ) | const [inline, protected, virtual] |
Make a simple clone of this 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.
os | The stream to output the information to |
header | Whether 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.
InitException | if 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.
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.
ichan | The channel we are calculating the matrix element for. |
part | The decaying Particle. |
decay | The particles produced in the decay. |
meopt | Option for the calculation of the matrix element |
Implements Herwig::DecayIntegrator.
virtual int Herwig::VectorMeson3PionDecayer::modeNumber | ( | bool & | cc, |
tcPDPtr | parent, | ||
const tPDVector & | children | ||
) | const [virtual] |
Which of the possible decays is required.
cc | Is this mode the charge conjugate |
parent | The decaying particle |
children | The decay products |
Implements Herwig::DecayIntegrator.
void Herwig::VectorMeson3PionDecayer::persistentInput | ( | PersistentIStream & | is, |
int | version | ||
) |
Function used to read in object persistently.
is | the persistent input stream read from. |
version | the version number of the object when written. |
Reimplemented from Herwig::DecayIntegrator.
void Herwig::VectorMeson3PionDecayer::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the 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.
imode | The mode for which the matrix element is needed. |
q2 | The scale, i.e. the mass squared of the decaying particle. |
s3 | The invariant mass squared of particles 1 and 2, ![]() |
s2 | The invariant mass squared of particles 1 and 3, ![]() |
s1 | The invariant mass squared of particles 2 and 3, ![]() |
m1 | The mass of the first outgoing particle. |
m2 | The mass of the second outgoing particle. |
m3 | The mass of the third outgoing particle. |
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.
dm | The DecayMode |
Reimplemented from Herwig::DecayIntegrator.
vector<vector <double> > Herwig::VectorMeson3PionDecayer::_rho0const [private] |
Constants for the running widths.
For the neutral
Definition at line 333 of file VectorMeson3PionDecayer.h.