Herwig
7.2.1
|
The a1ThreePionCLEODecayer
class is designed to implement the decay of the to three pions using the model of Phys.Rev.D61:012002,2000, (hep-ex/9902022) (CLEO) which was fitted to the one charged and two neutral pion channel for the charged decay in .
More...
#include <a1ThreePionCLEODecayer.h>
Public Member Functions | |
a1ThreePionCLEODecayer () | |
Default constructor. | |
virtual int | modeNumber (bool &cc, tcPDPtr parent, const tPDVector &children) const |
Which of the possible decays is required. More... | |
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. More... | |
virtual WidthCalculatorBasePtr | threeBodyMEIntegrator (const DecayMode &dm) const |
Method to return an object to calculate the 3 body partial width. More... | |
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. More... | |
virtual void | dataBaseOutput (ofstream &os, bool header) const |
Output the setup information for the particle database. More... | |
Functions used by the persistent I/O system. | |
void | persistentOutput (PersistentOStream &os) const |
Function used to write out object persistently. More... | |
void | persistentInput (PersistentIStream &is, int version) |
Function used to read in object persistently. More... | |
Public Member Functions inherited from Herwig::DecayIntegrator | |
DecayIntegrator () | |
Default constructor. | |
virtual bool | accept (tcPDPtr parent, const tPDVector &children) const |
Check if this decayer can perfom the decay for a particular mode. More... | |
virtual ParticleVector | decay (const Particle &parent, const tPDVector &children) const |
For a given decay mode and a given particle instance, perform the decay and return the decay products. More... | |
int | imode () const |
The mode being used for this decay. | |
void | addMode (DecayPhaseSpaceModePtr mode, double maxwgt, const vector< double > wgts) const |
Add a phase-space mode to the list. More... | |
DecayMEPtr | ME () const |
The helicity amplitude matrix element for spin correlations. | |
virtual bool | twoBodyMEcode (const DecayMode &, int &mecode, double &coupling) const |
Specify the matrix element to be used in the running width calculation. More... | |
virtual InvEnergy | threeBodydGammads (const int imode, const Energy2 q2, const Energy2 s, const Energy m1, const Energy m2, const Energy m3) const |
The differential three body decay rate with one integral performed. More... | |
void | setPartialWidth (const DecayMode &dm, int imode) |
Set the code for the partial width. More... | |
int | findMode (const DecayMode &dm) |
Finds the phase-space mode corresponding to a given decay mode. More... | |
Energy | epsilonPS () const |
Access to the epsilon parameter. | |
ParticleVector | generatePhotons (const Particle &p, ParticleVector children) |
Members for the generation of QED radiation in the decays. More... | |
bool | canGeneratePhotons () |
check if photons can be generated in the decay | |
virtual double | oneLoopVirtualME (unsigned int imode, const Particle &part, const ParticleVector &products) |
The one-loop virtual correction. More... | |
bool | hasOneLoopME () |
Whether or not the one loop matrix element is implemented. | |
virtual InvEnergy2 | realEmissionME (unsigned int imode, const Particle &part, ParticleVector &products, unsigned int iemitter, double ctheta, double stheta, const LorentzRotation &rot1, const LorentzRotation &rot2) |
The real emission matrix element. More... | |
bool | hasRealEmissionME () |
Whether or not the real emission matrix element is implemented. | |
void | persistentOutput (PersistentOStream &os) const |
Function used to write out object persistently. More... | |
void | persistentInput (PersistentIStream &is, int version) |
Function used to read in object persistently. More... | |
Public Member Functions inherited from Herwig::HwDecayerBase | |
HwDecayerBase () | |
The default constructor. | |
virtual bool | accept (const DecayMode &dm) const |
Check if this decayer can perfom the decay specified by the given decay mode. More... | |
virtual ParticleVector | decay (const DecayMode &dm, const Particle &p) const |
Perform a decay for a given DecayMode and a given Particle instance. More... | |
void | persistentOutput (PersistentOStream &os) const |
Function used to write out object persistently. More... | |
void | persistentInput (PersistentIStream &is, int version) |
Function used to read in object persistently. More... | |
bool | initialize () const |
Access to the initialize variable. | |
bool | databaseOutput () const |
Access the database output variable. | |
virtual POWHEGType | hasPOWHEGCorrection () |
Has a POWHEG style correction. | |
virtual bool | hasMECorrection () |
Has an old fashioned ME correction. | |
virtual void | initializeMECorrection (RealEmissionProcessPtr, double &, double &) |
Initialize the ME correction. | |
virtual RealEmissionProcessPtr | applyHardMatrixElementCorrection (RealEmissionProcessPtr) |
Apply the hard matrix element correction to a given hard process or decay. | |
virtual bool | softMatrixElementVeto (PPtr parent, PPtr progenitor, const bool &fs, const Energy &highestpT, const vector< tcPDPtr > &ids, const double &z, const Energy &scale, const Energy &pT) |
Apply the soft matrix element correction. More... | |
virtual RealEmissionProcessPtr | generateHardest (RealEmissionProcessPtr) |
Apply the POWHEG style correction. | |
Public Member Functions inherited from ThePEG::Decayer | |
Ptr< Amplitude >::pointer | amplitude () const |
virtual bool | needsFullStep () const |
virtual ParticleVector | decay (const DecayMode &dm, const Particle &p, Step &step) const |
virtual double | brat (const DecayMode &dm, const ParticleData &pd, double oldbrat) const |
virtual double | brat (const DecayMode &dm, const Particle &p, double oldbrat) const |
virtual ParticleVector | getChildren (const DecayMode &dm, const Particle &parent) const |
virtual void | finalBoost (const Particle &parent, const ParticleVector &children) const |
virtual void | setScales (const Particle &parent, const ParticleVector &children) const |
void | persistentOutput (PersistentOStream &os) const |
void | persistentInput (PersistentIStream &is, int version) |
virtual bool | needsFullStep () const |
virtual ParticleVector | decay (const DecayMode &dm, const Particle &p, Step &step) const |
virtual double | brat (const DecayMode &dm, const ParticleData &pd, double oldbrat) const |
virtual double | brat (const DecayMode &dm, const Particle &p, double oldbrat) const |
virtual ParticleVector | getChildren (const DecayMode &dm, const Particle &parent) const |
virtual void | finalBoost (const Particle &parent, const ParticleVector &children) const |
virtual void | setScales (const Particle &parent, const ParticleVector &children) const |
void | persistentOutput (PersistentOStream &os) const |
void | persistentInput (PersistentIStream &is, int version) |
Public Member Functions inherited from HandlerBaseT< UseRandom > | |
double | rnd () const |
double | rnd (double xu) const |
double | rnd (double xl, double xu) const |
bool | rndbool () const |
bool | rndbool (double p) const |
bool | rndbool (double p1, double p2) const |
int | rndsign (double p1, double p2, double p3) const |
int | rnd2 (double p0, double p1) const |
int | rnd3 (double p0, double p1, double p2) const |
int | rnd4 (double p0, double p1, double p2, double p3) const |
long | irnd (long xu=2) const |
long | irnd (long xl, long xu) const |
const StandardModelBase & | SM () const |
tSMPtr | standardModel () const |
Public Member Functions inherited from ThePEG::Interfaced | |
virtual bool | defaultInit () |
PPtr | getParticle (PID) const |
PDPtr | getParticleData (PID) const |
bool | used () const |
void | useMe () const |
tEGPtr | generator () const |
void | persistentOutput (PersistentOStream &os) const |
void | persistentInput (PersistentIStream &is, int version) |
PPtr | getParticle (PID) const |
PDPtr | getParticleData (PID) const |
bool | used () const |
void | useMe () const |
tEGPtr | generator () const |
void | persistentOutput (PersistentOStream &os) const |
void | persistentInput (PersistentIStream &is, int version) |
Public Member Functions inherited from ThePEG::InterfacedBase | |
string | fullName () const |
string | name () const |
string | path () const |
string | comment () const |
void | setup (istream &is) |
virtual void | debugme () const |
void | update () |
void | init () |
virtual bool | preInitialize () const |
void | initrun () |
void | finish () |
void | touch () |
void | reset () |
void | clear () |
InitState | state () const |
bool | locked () const |
bool | touched () const |
void | persistentOutput (PersistentOStream &os) const |
void | persistentInput (PersistentIStream &is, int version) |
void | update () |
void | init () |
virtual bool | preInitialize () const |
void | initrun () |
void | finish () |
void | touch () |
void | reset () |
void | clear () |
InitState | state () const |
bool | locked () const |
bool | touched () const |
void | persistentOutput (PersistentOStream &os) const |
void | persistentInput (PersistentIStream &is, int version) |
Public Member Functions inherited from ThePEG::Base | |
void | debug () const |
Public Member Functions inherited from ThePEG::Pointer::ReferenceCounted | |
CounterType | referenceCount () const |
Public Member Functions inherited from ThePEG::Named | |
Named (const string &newName=string()) | |
Named (const Named &)=default | |
const string & | name () const |
bool | operator== (const Named &other) const |
bool | operator< (const Named &other) const |
Static Public Member Functions | |
static void | Init () |
Standard Init function used to initialize the interfaces. | |
Static Public Member Functions inherited from Herwig::DecayIntegrator | |
static void | Init () |
Standard Init function used to initialize the interfaces. | |
Static Public Member Functions inherited from Herwig::HwDecayerBase | |
static void | Init () |
The standard Init function used to initialize the interfaces. More... | |
Static Public Member Functions inherited from ThePEG::Decayer | |
static ParticleVector | DecayParticle (tPPtr parent, Step &step, long maxtry=1000) |
static void | Init () |
Static Public Member Functions inherited from ThePEG::HandlerBase | |
static void | Init () |
Static Public Member Functions inherited from ThePEG::Interfaced | |
static void | Init () |
Static Public Member Functions inherited from ThePEG::InterfacedBase | |
static void | Init () |
Static Public Member Functions inherited from ThePEG::Base | |
static void | Init () |
Protected Member Functions | |
Clone Methods. | |
virtual IBPtr | clone () const |
Make a simple clone of this object. More... | |
virtual IBPtr | fullclone () const |
Make a clone of this object, possibly modifying the cloned object to make it sane. More... | |
Standard Interfaced functions. | |
virtual void | doinit () |
Initialize this object after the setup phase before saving and EventGenerator to disk. More... | |
virtual void | doinitrun () |
Initialize this object to the begining of the run phase. | |
Protected Member Functions inherited from Herwig::DecayIntegrator | |
ParticleVector | generate (bool inter, bool cc, const unsigned int &imode, const Particle &inpart) const |
Generate the momenta for the decay. More... | |
void | imode (int in) |
Set the mode being use for this decay. | |
void | ME (DecayMEPtr in) const |
Set the helicity matrix element for the decay. | |
void | resetIntermediate (tcPDPtr part, Energy mass, Energy width) |
Reset the properities of all intermediates. More... | |
unsigned int | numberModes () const |
Number of decay modes. | |
tDecayPhaseSpaceModePtr | mode (unsigned int) |
Pointer to a mode. | |
tcDecayPhaseSpaceModePtr | mode (unsigned int) const |
Pointer to a mode. | |
bool | generateIntermediates () const |
Get whether or not the intermediates are included. | |
void | generateIntermediates (bool in) |
Set whether or not the intermediates are included. | |
Energy | initializePhaseSpaceMode (unsigned int imode, bool init, bool onShell=false) const |
Initialize the phase-space mode. More... | |
void | hasOneLoopME (bool in) |
Whether or not the one loop matrix element is implemented. | |
void | hasRealEmissionME (bool in) |
Whether or not the real emission matrix element is implemented. | |
void | epsilonPS (Energy in) |
Set the epsilon parameter. | |
void | clearModes () |
Clear the models. | |
Protected Member Functions inherited from Herwig::HwDecayerBase | |
void | fixRho (RhoDMatrix &) const |
Set rho to be diagonal if no correlations. | |
virtual void | dofinish () |
Finalize this object. More... | |
Protected Member Functions inherited from ThePEG::Interfaced | |
void | reporeg (IBPtr object, string name) const |
bool | setDefaultReference (PtrT &ptr, string classname, string objectname) |
Interfaced (const string &newName) | |
Interfaced (const Interfaced &i) | |
void | setGenerator (tEGPtr generator) |
Protected Member Functions inherited from ThePEG::InterfacedBase | |
InterfacedBase (string newName) | |
InterfacedBase (const InterfacedBase &i) | |
virtual void | readSetup (istream &is) |
virtual void | doupdate () |
virtual IVector | getReferences () |
virtual void | rebind (const TranslationMap &) |
virtual void | readSetup (istream &is) |
virtual void | doupdate () |
virtual IVector | getReferences () |
virtual void | rebind (const TranslationMap &) |
Protected Member Functions inherited from ThePEG::Pointer::ReferenceCounted | |
ReferenceCounted (const ReferenceCounted &) | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
ReferenceCounted (const ReferenceCounted &) | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
Protected Member Functions inherited from ThePEG::Named | |
const Named & | operator= (const Named &other) |
const string & | name (const string &newName) |
Private Member Functions | |
a1ThreePionCLEODecayer & | operator= (const a1ThreePionCLEODecayer &)=delete |
Private and non-existent assignment operator. | |
Complex | rhoBreitWigner (int ires, Energy2 q2, int icharge) const |
Breit wigner for the , . More... | |
Complex | sigmaBreitWigner (Energy2 q2, int icharge) const |
Breit wigner for the , . More... | |
Complex | f0BreitWigner (Energy2 q2, int icharge) const |
Breit wigner for the , . More... | |
Complex | f2BreitWigner (Energy2 q2, int icharge) const |
Breit wigner for the , . More... | |
void | formFactors (int iopt, int ichan, Energy2 q2, Energy2 s1, Energy2 s2, Energy2 s3, complex< InvEnergy > &F1, complex< InvEnergy > &F2, complex< InvEnergy > &F3) const |
Calculate the form factors. More... | |
Private Attributes | |
vector< Energy > | _rhomass |
Masses of the rho resonaces. | |
vector< Energy > | _rhowidth |
Widths of the rho resonaces. | |
vector< Energy > | _prhocc |
Momentum of the particles produced in charged rho decay. | |
vector< Energy > | _prhoc0 |
Momentum of the particles produced in neutral rho decay. | |
Energy | _f2mass |
Mass of the . | |
Energy | _f2width |
Width of the . | |
Energy | _pf2cc |
Momentum for the decay of the to two charged pions. | |
Energy | _pf200 |
Momentum for the decay of the to two neutral pions. | |
Energy | _f0mass |
Mass of the . | |
Energy | _f0width |
Width of the . | |
Energy | _pf0cc |
Momentum for the decay of the to two charged pions. | |
Energy | _pf000 |
Momentum for the decay of the to two neutral pions. | |
Energy | _sigmamass |
Mass of the meson. | |
Energy | _sigmawidth |
Width of the meson. | |
Energy | _psigmacc |
Momentum for the decay of the to two charged pions. | |
Energy | _psigma00 |
Momentum for the decay of the to two neutral pions. | |
Energy | _mpi0 |
Mass of the neutral pion. | |
Energy | _mpic |
Mass of the charged pion. | |
InvEnergy | _coupling |
overall coupling for the decay | |
vector< double > | _rhomagP |
Magnitude of the -wave couplings of the rho resonance, , ( in the CLEO paper.) | |
vector< double > | _rhophaseP |
Phase of the -wave couplings of the rho resonance, , ( in the CLEO paper.) | |
vector< Complex > | _rhocoupP |
-wave couplings of the rho resonance, , ( in the CLEO paper.) | |
vector< InvEnergy2 > | _rhomagD |
Magnitude of the -wave couplings of the rho resonance, , ( in the CLEO paper.) | |
vector< double > | _rhophaseD |
Phase of the -wave couplings of the rho resonance, , ( in the CLEO paper.) | |
vector< complex< InvEnergy2 > > | _rhocoupD |
-wave couplings of the rho resonance, , ( in the CLEO paper.) | |
InvEnergy2 | _f2mag |
Magntiude of the coupling of the resonance, , ( in the CLEO paper.) | |
double | _f2phase |
Phase of the coupling of the resonance, , ( in the CLEO paper.) | |
complex< InvEnergy2 > | _f2coup |
Coupling of the resonance, , ( in the CLEO paper.) | |
double | _f0mag |
Magntiude of the coupling of the resonance, , ( in the CLEO paper.) | |
double | _f0phase |
Phase of the coupling of the resonance, , ( in the CLEO paper.) | |
Complex | _f0coup |
Coupling of the resonance, , ( in the CLEO paper.) | |
double | _sigmamag |
Magntiude of the coupling of the resonance, , ( in the CLEO paper.) | |
double | _sigmaphase |
Phase of the coupling of the resonance, , ( in the CLEO paper.) | |
Complex | _sigmacoup |
Coupling of the resonance, , ( in the CLEO paper.) | |
bool | _localparameters |
Use local values of the mass parameters. | |
vector< double > | _zerowgts |
Weights for the channels for the zero charged pion channel. | |
vector< double > | _onewgts |
Weights for the channels for the one charged pion channel. | |
vector< double > | _twowgts |
Weights for the channels for the two charged pion channel. | |
vector< double > | _threewgts |
Weights for the channels for the three charged pion channel. | |
double | _zeromax |
Maximum weight for the zero charged pion channel. | |
double | _onemax |
Maximum weight for the one charged pion channel. | |
double | _twomax |
Maximum weight for the two charged pion channel. | |
double | _threemax |
Maximum weight for the three charged pion channel. | |
RhoDMatrix | _rho |
Spin density matrix. | |
vector< Helicity::LorentzPolarizationVector > | _vectors |
Polarization vectors. | |
Additional Inherited Members | |
Public Types inherited from Herwig::DecayIntegrator | |
enum | MEOption { Initialize, Calculate, Terminate } |
Enum for the matrix element option. | |
Public Types inherited from Herwig::HwDecayerBase | |
enum | POWHEGType { No, ISR, FSR, Both } |
Virtual members to be overridden by inheriting classes which implement hard corrections. More... | |
Public Types inherited from ThePEG::InterfacedBase | |
enum | InitState |
Public Types inherited from ThePEG::Pointer::ReferenceCounted | |
typedef unsigned int | CounterType |
Public Attributes inherited from ThePEG::InterfacedBase | |
initializing | |
uninitialized | |
initialized | |
runready | |
Public Attributes inherited from ThePEG::Pointer::ReferenceCounted | |
const unsigned long | uniqueId |
Static Protected Member Functions inherited from ThePEG::Interfaced | |
static void | registerRepository (IBPtr) |
static void | registerRepository (IBPtr, string newName) |
The a1ThreePionCLEODecayer
class is designed to implement the decay of the to three pions using the model of Phys.Rev.D61:012002,2000, (hep-ex/9902022) (CLEO) which was fitted to the one charged and two neutral pion channel for the charged decay in .
The other modes are infered from this using isospin. This is a sophisticated model including the coupling of the to the , , and sigma mesons.
In this case the current is given by
The form factors for the mode are
The form factors for the mode are
The form factors for .
The form factors for mode
where
The Breit-Wigner factors are given by where and are the mass and width of the particle respectively. is the momentum of the outgoing pion in the rest frame of the resonanc .
Definition at line 146 of file a1ThreePionCLEODecayer.h.
|
inlineprotectedvirtual |
Make a simple clone of this object.
Implements ThePEG::InterfacedBase.
Definition at line 238 of file a1ThreePionCLEODecayer.h.
|
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.
|
protectedvirtual |
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.
|
inlineprivate |
Breit wigner for the , .
q2 | The scale, . |
icharge | Which pion masses to use for the momentum calculation |
Definition at line 313 of file a1ThreePionCLEODecayer.h.
References Herwig::Kinematics::pstarTwoBodyDecay(), sqr(), and sqrt().
|
inlineprivate |
Breit wigner for the , .
q2 | The scale, . |
icharge | Which pion masses to use for the momentum calculation |
Definition at line 329 of file a1ThreePionCLEODecayer.h.
References pow(), Herwig::Kinematics::pstarTwoBodyDecay(), sqr(), and sqrt().
|
private |
Calculate the form factors.
iopt | The mode being calculated in the order given above |
ichan | The phase space channel in the order given in the doinit member. |
q2 | The sacale . |
s1 | The invariant mass squared of particles 2 and 3, . |
s2 | The invariant mass squared of particles 1 and 3, . |
s3 | The invariant mass squared of particles 1 and 2, . |
F1 | The form factor . |
F2 | The form factor . |
F3 | The form factor . |
|
inlineprotectedvirtual |
Make a clone of this object, possibly modifying the cloned object to make it sane.
Reimplemented from ThePEG::InterfacedBase.
Definition at line 244 of file a1ThreePionCLEODecayer.h.
|
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 |
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::a1ThreePionCLEODecayer::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. |
void Herwig::a1ThreePionCLEODecayer::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
|
inlineprivate |
Breit wigner for the , .
ires | The multiplet to used. |
q2 | The scale, . |
icharge | Which pion masses to use for the momentum calculation |
Definition at line 280 of file a1ThreePionCLEODecayer.h.
References pow(), Herwig::Kinematics::pstarTwoBodyDecay(), sqr(), and sqrt().
|
inlineprivate |
Breit wigner for the , .
q2 | The scale, . |
icharge | Which pion masses to use for the momentum calculation |
Definition at line 297 of file a1ThreePionCLEODecayer.h.
References Herwig::Kinematics::pstarTwoBodyDecay(), sqr(), and sqrt().
|
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 |
Method to return an object to calculate the 3 body partial width.
dm | The DecayMode |
Reimplemented from Herwig::DecayIntegrator.