Herwig 7.3.0
|
Main class for Decayers implementing multi-channel phase space integration. More...
#include <DecayIntegrator.h>
Inherits Herwig::HwDecayerBase.
Inherited by Herwig::Baryon1MesonDecayerBase, Herwig::BaryonFactorizedDecayer, Herwig::DalitzBase, Herwig::EtaPiGammaGammaDecayer, Herwig::EtaPiPiFermionsDecayer, Herwig::EtaPiPiGammaDecayer, Herwig::EtaPiPiPiDecayer, Herwig::GeneralCurrentDecayer, Herwig::GeneralFourBodyDecayer, Herwig::GeneralThreeBodyDecayer, Herwig::HQETRadiativeDecayer, Herwig::HQETStrongDecayer, Herwig::OniumToOniumPiPiDecayer, Herwig::PScalar4FermionsDecayer, Herwig::PScalarLeptonNeutrinoDecayer, Herwig::PScalarPScalarVectorDecayer, Herwig::PScalarVectorFermionsDecayer, Herwig::PScalarVectorVectorDecayer, Herwig::PerturbativeDecayer, Herwig::PseudoScalar2FermionsDecayer, Herwig::PseudoTensorMesonTensorVectorDecayer, Herwig::PseudoTensorMesonVectorVectorDecayer, Herwig::Scalar2FermionsDecayer, Herwig::ScalarMesonFactorizedDecayer, Herwig::ScalarMesonTensorScalarDecayer, Herwig::ScalarScalarScalarDecayer, Herwig::ScalarVectorVectorDecayer, Herwig::SemiLeptonicBaryonDecayer, Herwig::SemiLeptonicScalarDecayer, Herwig::Spin3Meson2PScalarDecayer, Herwig::Spin3MesonTensorPScalarDecayer, Herwig::Spin3MesonTensorVectorDecayer, Herwig::Spin3MesonVectorPScalarDecayer, Herwig::Spin3MesonVectorScalarDecayer, Herwig::TauDecayer, Herwig::TensorMeson2PScalarDecayer, Herwig::TensorMesonSpin3VectorDecayer, Herwig::TensorMesonTensorPScalarDecayer, Herwig::TensorMesonTensorScalarDecayer, Herwig::TensorMesonVectorPScalarDecayer, Herwig::TensorMesonVectorScalarDecayer, Herwig::TensorMesonVectorVectorDecayer, Herwig::VectorCurrentDecayer, Herwig::VectorMeson2FermionDecayer, Herwig::VectorMeson2MesonDecayer, Herwig::VectorMeson2SpinHalfBaryonsDecayer, Herwig::VectorMeson2SpinThreeHalfBaryonsDecayer, Herwig::VectorMesonPScalarFermionsDecayer, Herwig::VectorMesonTensorVectorDecayer, Herwig::VectorMesonVectorPScalarDecayer, Herwig::VectorMesonVectorScalarDecayer, Herwig::VectorMesonVectorVectorDecayer, Herwig::a1SimpleDecayer, Herwig::a1ThreePionCLEODecayer, Herwig::a1ThreePionDecayer, Herwig::f1FourPiDecayer, and Herwig::f1RhoPiPiDecayer.
Classes | |
class | DecayIntegratorError |
Exception for this class and those inheriting from it. More... | |
Public Types | |
enum | MEOption { Initialize , Calculate , Terminate } |
Enum for the matrix element option. More... | |
![]() | |
enum | POWHEGType { No , ISR , FSR , Both } |
Virtual members to be overridden by inheriting classes which implement hard corrections. More... | |
![]() | |
enum | InitState |
![]() | |
typedef unsigned int | CounterType |
Public Member Functions | |
DecayIntegrator () | |
The default constructor. | |
virtual bool | accept (tcPDPtr parent, const tPDVector &children) const |
Check if this decayer can perfom the decay for a particular mode. | |
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. | |
virtual int | modeNumber (bool &cc, tcPDPtr parent, const tPDVector &children) const =0 |
Which of the possible decays is required. | |
int | imode () const |
The mode being used for this decay. | |
void | addMode (PhaseSpaceModePtr mode) const |
Add a phase-space mode to the list. | |
virtual double | me2 (const int ichan, const Particle &part, const tPDVector &outgoing, const vector< Lorentz5Momentum > &momenta, MEOption meopt) const =0 |
Return the matrix element squared for a given mode and phase-space channel. | |
virtual void | constructSpinInfo (const Particle &part, ParticleVector outgoing) const =0 |
Construct the SpinInfos for the particles produced in the decay. | |
virtual void | dataBaseOutput (ofstream &os, bool header) const |
Output the setup information for the particle database. | |
void | setPartialWidth (const DecayMode &dm, int imode) |
Set the code for the partial width. | |
virtual bool | twoBodyMEcode (const DecayMode &, int &mecode, double &coupling) const |
Specify the \(1\to2\) matrix element to be used in the running width calculation. | |
virtual WidthCalculatorBasePtr | threeBodyMEIntegrator (const DecayMode &dm) const |
Method to return an object to calculate the 3 (or higher 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 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. | |
int | findMode (const DecayMode &dm) |
Finds the phase-space mode corresponding to a given decay mode. | |
ParticleVector | generatePhotons (const Particle &p, ParticleVector children) |
Members for the generation of QED radiation in the decays. | |
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. | |
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. | |
bool | hasRealEmissionME () |
Whether or not the real emission matrix element is implemented. | |
![]() | |
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. | |
virtual ParticleVector | decay (const DecayMode &dm, const Particle &p) const |
Perform a decay for a given DecayMode and a given Particle instance. | |
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. | |
virtual RealEmissionProcessPtr | generateHardest (RealEmissionProcessPtr) |
Apply the POWHEG style correction. | |
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. | |
bool | initialize () const |
Access to the initialize variable. | |
bool | databaseOutput () const |
Access the database output variable. | |
![]() | |
void | persistentOutput (PersistentOStream &os) const |
void | persistentInput (PersistentIStream &is, int version) |
virtual bool | accept (const DecayMode &dm) const=0 |
virtual bool | needsFullStep () const |
virtual ParticleVector | decay (const DecayMode &dm, const Particle &p) const=0 |
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 |
Ptr< Amplitude >::pointer | amplitude () const |
![]() | |
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 |
![]() | |
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 |
![]() | |
string | fullName () const |
string | name () const |
string | path () const |
string | comment () const |
void | setup (istream &is) |
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 |
virtual IBPtr | fullclone () const |
void | persistentOutput (PersistentOStream &os) const |
void | persistentInput (PersistentIStream &is, int version) |
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 |
virtual IBPtr | fullclone () const |
![]() | |
void | debug () const |
virtual void | debugme () const |
![]() | |
CounterType | referenceCount () const |
![]() | |
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 |
Friends | |
class | PhaseSpaceMode |
and DecayPhaseMode | |
ostream & | operator<< (ostream &os, const DecayIntegrator &decay) |
The output operator is a friend, this is mainly for debugging. | |
Standard Interfaced functions. | |
unsigned int | nIter_ |
Parameters for the integration. | |
unsigned int | nPoint_ |
Number of points for initialisation. | |
unsigned int | nTry_ |
number of attempts to generate the decay | |
vector< PhaseSpaceModePtr > | modes_ |
List of the decay modes. | |
bool | generateInter_ |
Whether to include the intermediates whne outputing the results. | |
DecayRadiationGeneratorPtr | photonGen_ |
Pointer to the object generating the QED radiation in the decay. | |
int | iMode_ |
mode currently being generated | |
DecayMEPtr | matrixElement_ |
The helicity matrix element for the current decay. | |
bool | realME_ |
Whether or not the real photon emission matrix element exists. | |
bool | virtualME_ |
Whether or not the one-loop matrix element exists. | |
Energy | eps_ |
Epsilon parameter for phase-space integration. | |
bool | warnings_ |
option for turinh on/off log warnings in Phase class | |
bool | warnings () const |
virtual void | doinitrun () |
Initialize this object. | |
ParticleVector | generate (bool inter, bool cc, const unsigned int &imode, const Particle &inpart) const |
Generate the momenta for the decay. | |
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. | |
DecayMEPtr | ME () const |
The helicity amplitude matrix element for spin correlations. | |
void | resetIntermediate (tcPDPtr part, Energy mass, Energy width) |
Reset the properities of all intermediates. | |
Energy | initializePhaseSpaceMode (unsigned int imode, bool init, bool onShell=false) const |
Initialize the phase-space mode. | |
void | generateIntermediates (bool in) |
Methods to set variables in inheriting classes. | |
bool | generateIntermediates () const |
Set whether or not the intermediates are included. | |
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. | |
unsigned int | numberModes () const |
Number of decay modes. | |
tPhaseSpaceModePtr | mode (unsigned int ix) |
Pointer to a mode. | |
tcPhaseSpaceModePtr | mode (unsigned int ix) const |
Pointer to a mode. | |
DecayIntegrator & | operator= (const DecayIntegrator &)=delete |
Private and non-existent assignment operator. | |
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 void | Init () |
The standard Init function used to initialize the interfaces. | |
Additional Inherited Members | |
![]() | |
static void | Init () |
The standard Init function used to initialize the interfaces. | |
![]() | |
static void | Init () |
static ParticleVector | DecayParticle (tPPtr parent, Step &step, long maxtry=1000) |
![]() | |
static void | Init () |
![]() | |
static void | Init () |
![]() | |
static void | Init () |
![]() | |
static void | Init () |
![]() | |
initializing | |
uninitialized | |
initialized | |
runready | |
![]() | |
const unsigned long | uniqueId |
![]() | |
virtual void | dofinish () |
Finalize this object. | |
void | fixRho (RhoDMatrix &) const |
Set rho to be diagonal if no correlations. | |
![]() | |
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) |
![]() | |
virtual void | readSetup (istream &is) |
virtual void | doupdate () |
virtual void | doinit () |
virtual void | doinitrun () |
virtual void | dofinish () |
virtual IVector | getReferences () |
virtual void | rebind (const TranslationMap &) |
virtual IBPtr | clone () const=0 |
InterfacedBase (string newName) | |
InterfacedBase (const InterfacedBase &i) | |
virtual void | readSetup (istream &is) |
virtual void | doupdate () |
virtual void | doinit () |
virtual void | doinitrun () |
virtual void | dofinish () |
virtual IVector | getReferences () |
virtual void | rebind (const TranslationMap &) |
![]() | |
ReferenceCounted (const ReferenceCounted &) | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
![]() | |
const Named & | operator= (const Named &other) |
const string & | name (const string &newName) |
![]() | |
static void | registerRepository (IBPtr) |
static void | registerRepository (IBPtr, string newName) |
Main class for Decayers implementing multi-channel phase space integration.
This class is designed to be the base class for Herwig decays including the implementation of a multichannel decayer or n-body phase space decays.
The DecayIntegrator
class inherits from ThePEG's Decayer class and makes use of the PhaseSpaceMode
class to specify a number of decay modes.
Additional modes can be added using the addMode method. In practice the phase space channels for a particular mode are usually constructed in the doinit member of a Decayer and then the modes added to the Decayer.
For the majority of the decays currently implemented the phase-space integration has been optimised and the maximum weight set. If the parameters of the decay model are changed the Initialize interface can be used to optimise the integration and calculate the maximum weight.
In classes inheriting from this the me2() member which gives the matrix element squared must be implemented. This should be combined with the setting of the phase space channels, and the setting of which channels to use and their initial weights in the doinit() member. The different decay modes should then be initialized in the initrun() member if needed. The generate member can then be called from the decay() member to generate a phase-space configuration for a decay.
Definition at line 60 of file DecayIntegrator.h.
Enum for the matrix element option.
Definition at line 72 of file DecayIntegrator.h.
|
inline |
The default constructor.
Definition at line 79 of file DecayIntegrator.h.
|
inlinevirtual |
Check if this decayer can perfom the decay for a particular mode.
Uses the modeNumber member but can be overridden
parent | The decaying particle |
children | The decay products |
Implements Herwig::HwDecayerBase.
Reimplemented in Herwig::BaryonFactorizedDecayer, Herwig::SemiLeptonicBaryonDecayer, Herwig::SMHiggsFermionsDecayer, Herwig::SMHiggsGGHiggsPPDecayer, Herwig::SMHiggsWWDecayer, Herwig::SMTopDecayer, Herwig::ScalarMesonFactorizedDecayer, Herwig::SemiLeptonicScalarDecayer, and Herwig::TauDecayer.
Definition at line 92 of file DecayIntegrator.h.
References modeNumber().
void Herwig::DecayIntegrator::addMode | ( | PhaseSpaceModePtr | mode | ) | const |
Add a phase-space mode to the list.
mode | The mode being added. |
|
inline |
check if photons can be generated in the decay
Definition at line 240 of file DecayIntegrator.h.
References photonGen_.
|
inlineprotected |
|
pure virtual |
Construct the SpinInfos for the particles produced in the decay.
Implemented in Herwig::Baryon1MesonDecayerBase, Herwig::BaryonFactorizedDecayer, Herwig::SemiLeptonicBaryonDecayer, Herwig::ScalarTo3ScalarDalitz, Herwig::VectorTo3PseudoScalarDalitz, Herwig::FFSDecayer, Herwig::FFVCurrentDecayer, Herwig::FFVDecayer, Herwig::FRSDecayer, Herwig::FRVDecayer, Herwig::FtoFFFDecayer, Herwig::FtoFVVDecayer, Herwig::SFFDecayer, Herwig::SRFDecayer, Herwig::SSSDecayer, Herwig::SSVDecayer, Herwig::StoFFFFDecayer, Herwig::StoFFVDecayer, Herwig::StoSFFDecayer, Herwig::SVVDecayer, Herwig::TFFDecayer, Herwig::TSSDecayer, Herwig::TVVDecayer, Herwig::VectorCurrentDecayer, Herwig::VFFDecayer, Herwig::VSSDecayer, Herwig::VtoFFVDecayer, Herwig::VVSDecayer, Herwig::VVVDecayer, Herwig::HQETRadiativeDecayer, Herwig::HQETStrongDecayer, Herwig::SMHiggsFermionsDecayer, Herwig::SMHiggsGGHiggsPPDecayer, Herwig::SMHiggsWWDecayer, Herwig::SMTopDecayer, Herwig::SMWDecayer, Herwig::SMZDecayer, Herwig::EtaPiGammaGammaDecayer, Herwig::EtaPiPiFermionsDecayer, Herwig::EtaPiPiGammaDecayer, Herwig::EtaPiPiPiDecayer, Herwig::PScalar4FermionsDecayer, Herwig::PScalarLeptonNeutrinoDecayer, Herwig::PScalarPScalarVectorDecayer, Herwig::PScalarVectorFermionsDecayer, Herwig::PScalarVectorVectorDecayer, Herwig::PseudoScalar2FermionsDecayer, Herwig::Scalar2FermionsDecayer, Herwig::ScalarMesonFactorizedDecayer, Herwig::ScalarMesonTensorScalarDecayer, Herwig::ScalarScalarScalarDecayer, Herwig::ScalarVectorVectorDecayer, Herwig::SemiLeptonicScalarDecayer, Herwig::TauDecayer, Herwig::PseudoTensorMesonTensorVectorDecayer, Herwig::PseudoTensorMesonVectorVectorDecayer, Herwig::Spin3Meson2PScalarDecayer, Herwig::Spin3MesonTensorPScalarDecayer, Herwig::Spin3MesonTensorVectorDecayer, Herwig::Spin3MesonVectorPScalarDecayer, Herwig::Spin3MesonVectorScalarDecayer, Herwig::TensorMeson2PScalarDecayer, Herwig::TensorMesonSpin3VectorDecayer, Herwig::TensorMesonTensorPScalarDecayer, Herwig::TensorMesonTensorScalarDecayer, Herwig::TensorMesonVectorPScalarDecayer, Herwig::TensorMesonVectorScalarDecayer, Herwig::TensorMesonVectorVectorDecayer, Herwig::a1SimpleDecayer, Herwig::a1ThreePionCLEODecayer, Herwig::a1ThreePionDecayer, Herwig::f1FourPiDecayer, Herwig::f1RhoPiPiDecayer, Herwig::OniumToOniumPiPiDecayer, Herwig::VectorMeson2FermionDecayer, Herwig::VectorMeson2MesonDecayer, Herwig::VectorMeson2SpinHalfBaryonsDecayer, Herwig::VectorMeson2SpinThreeHalfBaryonsDecayer, Herwig::VectorMesonPScalarFermionsDecayer, Herwig::VectorMesonTensorVectorDecayer, Herwig::VectorMesonVectorPScalarDecayer, Herwig::VectorMesonVectorScalarDecayer, and Herwig::VectorMesonVectorVectorDecayer.
|
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 |
Implements Herwig::HwDecayerBase.
Reimplemented in Herwig::Baryon1MesonDecayerBase, Herwig::BaryonFactorizedDecayer, Herwig::KornerKramerCharmDecayer, Herwig::NonLeptonicHyperonDecayer, Herwig::NonLeptonicOmegaDecayer, Herwig::OmegaXiStarPionDecayer, Herwig::RadiativeDoublyHeavyBaryonDecayer, Herwig::RadiativeHeavyBaryonDecayer, Herwig::RadiativeHyperonDecayer, Herwig::SemiLeptonicBaryonDecayer, Herwig::StrongHeavyBaryonDecayer, Herwig::SU3BaryonDecupletOctetPhotonDecayer, Herwig::SU3BaryonDecupletOctetScalarDecayer, Herwig::SU3BaryonOctetDecupletScalarDecayer, Herwig::SU3BaryonOctetOctetPhotonDecayer, Herwig::SU3BaryonOctetOctetScalarDecayer, Herwig::SU3BaryonSingletOctetPhotonDecayer, Herwig::SU3BaryonSingletOctetScalarDecayer, Herwig::DalitzBase, Herwig::ScalarTo3ScalarDalitz, Herwig::VectorTo3PseudoScalarDalitz, Herwig::HQETRadiativeDecayer, Herwig::HQETStrongDecayer, Herwig::SMHiggsFermionsDecayer, Herwig::SMHiggsGGHiggsPPDecayer, Herwig::SMHiggsWWDecayer, Herwig::SMTopDecayer, Herwig::SMWDecayer, Herwig::SMZDecayer, Herwig::EtaPiGammaGammaDecayer, Herwig::EtaPiPiFermionsDecayer, Herwig::EtaPiPiGammaDecayer, Herwig::EtaPiPiPiDecayer, Herwig::PScalar4FermionsDecayer, Herwig::PScalarLeptonNeutrinoDecayer, Herwig::PScalarPScalarVectorDecayer, Herwig::PScalarVectorFermionsDecayer, Herwig::PScalarVectorVectorDecayer, Herwig::PseudoScalar2FermionsDecayer, Herwig::Scalar2FermionsDecayer, Herwig::ScalarMesonFactorizedDecayer, Herwig::ScalarMesonTensorScalarDecayer, Herwig::ScalarScalarScalarDecayer, Herwig::ScalarVectorVectorDecayer, Herwig::SemiLeptonicScalarDecayer, Herwig::TauDecayer, Herwig::PseudoTensorMesonTensorVectorDecayer, Herwig::PseudoTensorMesonVectorVectorDecayer, Herwig::Spin3Meson2PScalarDecayer, Herwig::Spin3MesonTensorPScalarDecayer, Herwig::Spin3MesonTensorVectorDecayer, Herwig::Spin3MesonVectorPScalarDecayer, Herwig::Spin3MesonVectorScalarDecayer, Herwig::TensorMeson2PScalarDecayer, Herwig::TensorMesonSpin3VectorDecayer, Herwig::TensorMesonTensorPScalarDecayer, Herwig::TensorMesonTensorScalarDecayer, Herwig::TensorMesonVectorPScalarDecayer, Herwig::TensorMesonVectorScalarDecayer, Herwig::TensorMesonVectorVectorDecayer, Herwig::a1SimpleDecayer, Herwig::a1ThreePionCLEODecayer, Herwig::a1ThreePionDecayer, Herwig::f1FourPiDecayer, Herwig::f1RhoPiPiDecayer, Herwig::OniumToOniumPiPiDecayer, Herwig::VectorMeson2FermionDecayer, Herwig::VectorMeson2MesonDecayer, Herwig::VectorMeson2SpinHalfBaryonsDecayer, Herwig::VectorMeson2SpinThreeHalfBaryonsDecayer, Herwig::VectorMesonPScalarFermionsDecayer, Herwig::VectorMesonTensorVectorDecayer, Herwig::VectorMesonVectorPScalarDecayer, Herwig::VectorMesonVectorScalarDecayer, and Herwig::VectorMesonVectorVectorDecayer.
|
virtual |
For a given decay mode and a given particle instance, perform the decay and return the decay products.
As this is the base class this is not implemented.
Implements Herwig::HwDecayerBase.
Reimplemented in Herwig::GeneralFourBodyDecayer, Herwig::GeneralThreeBodyDecayer, Herwig::GeneralTwoBodyDecayer, Herwig::SMHiggsFermionsDecayer, Herwig::SMHiggsGGHiggsPPDecayer, Herwig::SMHiggsWWDecayer, Herwig::SMTopDecayer, Herwig::SMWDecayer, Herwig::SMZDecayer, Herwig::f1FourPiDecayer, and Herwig::f1RhoPiPiDecayer.
|
protectedvirtual |
Initialize this object.
Called in the run phase just before a run begins.
Reimplemented from ThePEG::InterfacedBase.
Reimplemented in Herwig::BaryonFactorizedDecayer, Herwig::KornerKramerCharmDecayer, Herwig::NonLeptonicHyperonDecayer, Herwig::NonLeptonicOmegaDecayer, Herwig::OmegaXiStarPionDecayer, Herwig::RadiativeDoublyHeavyBaryonDecayer, Herwig::RadiativeHeavyBaryonDecayer, Herwig::RadiativeHyperonDecayer, Herwig::SemiLeptonicBaryonDecayer, Herwig::StrongHeavyBaryonDecayer, Herwig::SU3BaryonDecupletOctetPhotonDecayer, Herwig::SU3BaryonDecupletOctetScalarDecayer, Herwig::SU3BaryonOctetDecupletScalarDecayer, Herwig::SU3BaryonOctetOctetPhotonDecayer, Herwig::SU3BaryonOctetOctetScalarDecayer, Herwig::SU3BaryonSingletOctetPhotonDecayer, Herwig::SU3BaryonSingletOctetScalarDecayer, Herwig::DalitzBase, Herwig::GeneralCurrentDecayer, Herwig::GeneralThreeBodyDecayer, Herwig::GeneralTwoBodyDecayer, Herwig::VectorCurrentDecayer, Herwig::HQETRadiativeDecayer, Herwig::HQETStrongDecayer, Herwig::SMHiggsFermionsDecayer, Herwig::SMHiggsGGHiggsPPDecayer, Herwig::SMHiggsWWDecayer, Herwig::SMTopDecayer, Herwig::SMWDecayer, Herwig::SMZDecayer, Herwig::EtaPiGammaGammaDecayer, Herwig::EtaPiPiFermionsDecayer, Herwig::EtaPiPiGammaDecayer, Herwig::EtaPiPiPiDecayer, Herwig::PScalar4FermionsDecayer, Herwig::PScalarLeptonNeutrinoDecayer, Herwig::PScalarPScalarVectorDecayer, Herwig::PScalarVectorFermionsDecayer, Herwig::PScalarVectorVectorDecayer, Herwig::PseudoScalar2FermionsDecayer, Herwig::Scalar2FermionsDecayer, Herwig::ScalarMesonFactorizedDecayer, Herwig::ScalarMesonTensorScalarDecayer, Herwig::ScalarScalarScalarDecayer, Herwig::ScalarVectorVectorDecayer, Herwig::SemiLeptonicScalarDecayer, Herwig::TauDecayer, Herwig::PseudoTensorMesonTensorVectorDecayer, Herwig::PseudoTensorMesonVectorVectorDecayer, Herwig::Spin3Meson2PScalarDecayer, Herwig::Spin3MesonTensorPScalarDecayer, Herwig::Spin3MesonTensorVectorDecayer, Herwig::Spin3MesonVectorPScalarDecayer, Herwig::Spin3MesonVectorScalarDecayer, Herwig::TensorMeson2PScalarDecayer, Herwig::TensorMesonSpin3VectorDecayer, Herwig::TensorMesonTensorPScalarDecayer, Herwig::TensorMesonTensorScalarDecayer, Herwig::TensorMesonVectorPScalarDecayer, Herwig::TensorMesonVectorScalarDecayer, Herwig::TensorMesonVectorVectorDecayer, Herwig::a1SimpleDecayer, Herwig::a1ThreePionCLEODecayer, Herwig::a1ThreePionDecayer, Herwig::f1FourPiDecayer, Herwig::f1RhoPiPiDecayer, Herwig::OniumToOniumPiPiDecayer, Herwig::VectorMeson2FermionDecayer, Herwig::VectorMeson2MesonDecayer, Herwig::VectorMeson2SpinHalfBaryonsDecayer, Herwig::VectorMeson2SpinThreeHalfBaryonsDecayer, Herwig::VectorMesonPScalarFermionsDecayer, Herwig::VectorMesonTensorVectorDecayer, Herwig::VectorMesonVectorPScalarDecayer, Herwig::VectorMesonVectorScalarDecayer, and Herwig::VectorMesonVectorVectorDecayer.
|
inlineprotected |
int Herwig::DecayIntegrator::findMode | ( | const DecayMode & | dm | ) |
Finds the phase-space mode corresponding to a given decay mode.
dm | The DecayMode |
|
protected |
Generate the momenta for the decay.
inter | Generate the intermediates produced in the decay as well as the final particles. |
cc | Is this the mode defined or its charge conjugate. |
imode | The mode being generated. |
inpart | The decaying particle. |
|
inlineprotected |
Set whether or not the intermediates are included.
Definition at line 389 of file DecayIntegrator.h.
References generateInter_.
Referenced by Herwig::EtaPiPiPiDecayer::EtaPiPiPiDecayer(), Herwig::OniumToOniumPiPiDecayer::OniumToOniumPiPiDecayer(), and Herwig::TauDecayer::TauDecayer().
|
inlineprotected |
Methods to set variables in inheriting classes.
Set whether or not the intermediates are included
Definition at line 384 of file DecayIntegrator.h.
References generateInter_.
|
inline |
Members for the generation of QED radiation in the decays.
Use the DecayRadiationGenerator to generate photons in the decay.
p | The Particle instance being decayed |
children | The decay products |
Definition at line 233 of file DecayIntegrator.h.
References photonGen_.
|
inline |
Whether or not the one loop matrix element is implemented.
Definition at line 256 of file DecayIntegrator.h.
References virtualME_.
|
inlineprotected |
Whether or not the one loop matrix element is implemented.
Definition at line 394 of file DecayIntegrator.h.
References virtualME_.
|
inline |
Whether or not the real emission matrix element is implemented.
Definition at line 282 of file DecayIntegrator.h.
References realME_.
|
inlineprotected |
Whether or not the real emission matrix element is implemented.
Definition at line 399 of file DecayIntegrator.h.
References realME_.
|
inline |
The mode being used for this decay.
Definition at line 118 of file DecayIntegrator.h.
References iMode_.
|
inlineprotected |
Set the mode being use for this decay.
Definition at line 348 of file DecayIntegrator.h.
References iMode_.
|
static |
The standard Init function used to initialize the interfaces.
Called exactly once for each class by the class description system before the main function starts or when this class is dynamically loaded.
|
protected |
Initialize the phase-space mode.
imode | The mode |
init | Whether or not to perform the initialization |
|
inlineprotected |
The helicity amplitude matrix element for spin correlations.
Definition at line 358 of file DecayIntegrator.h.
References matrixElement_.
|
inlineprotected |
Set the helicity matrix element for the decay.
Definition at line 353 of file DecayIntegrator.h.
References matrixElement_.
|
pure 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. |
outgoing | The particles produced in the decay |
momenta | The momenta of the particles produced in the decay |
meopt | Option for the calculation of the matrix element |
Implemented in Herwig::Baryon1MesonDecayerBase, Herwig::BaryonFactorizedDecayer, Herwig::SemiLeptonicBaryonDecayer, Herwig::ScalarTo3ScalarDalitz, Herwig::VectorTo3PseudoScalarDalitz, Herwig::FFSDecayer, Herwig::FFVCurrentDecayer, Herwig::FFVDecayer, Herwig::FRSDecayer, Herwig::FRVDecayer, Herwig::FtoFFFDecayer, Herwig::FtoFVVDecayer, Herwig::SFFDecayer, Herwig::SRFDecayer, Herwig::SSSDecayer, Herwig::SSVDecayer, Herwig::StoFFFFDecayer, Herwig::StoFFVDecayer, Herwig::StoSFFDecayer, Herwig::SVVDecayer, Herwig::TFFDecayer, Herwig::TSSDecayer, Herwig::TVVDecayer, Herwig::VectorCurrentDecayer, Herwig::VFFDecayer, Herwig::VSSDecayer, Herwig::VtoFFVDecayer, Herwig::VVSDecayer, Herwig::VVVDecayer, Herwig::HQETRadiativeDecayer, Herwig::HQETStrongDecayer, Herwig::SMHiggsFermionsDecayer, Herwig::SMHiggsGGHiggsPPDecayer, Herwig::SMHiggsWWDecayer, Herwig::SMTopDecayer, Herwig::SMWDecayer, Herwig::SMZDecayer, Herwig::EtaPiGammaGammaDecayer, Herwig::EtaPiPiFermionsDecayer, Herwig::EtaPiPiGammaDecayer, Herwig::EtaPiPiPiDecayer, Herwig::PScalar4FermionsDecayer, Herwig::PScalarLeptonNeutrinoDecayer, Herwig::PScalarPScalarVectorDecayer, Herwig::PScalarVectorFermionsDecayer, Herwig::PScalarVectorVectorDecayer, Herwig::PseudoScalar2FermionsDecayer, Herwig::Scalar2FermionsDecayer, Herwig::ScalarMesonFactorizedDecayer, Herwig::ScalarMesonTensorScalarDecayer, Herwig::ScalarScalarScalarDecayer, Herwig::ScalarVectorVectorDecayer, Herwig::SemiLeptonicScalarDecayer, Herwig::TauDecayer, Herwig::PseudoTensorMesonTensorVectorDecayer, Herwig::PseudoTensorMesonVectorVectorDecayer, Herwig::Spin3Meson2PScalarDecayer, Herwig::Spin3MesonTensorPScalarDecayer, Herwig::Spin3MesonTensorVectorDecayer, Herwig::Spin3MesonVectorPScalarDecayer, Herwig::Spin3MesonVectorScalarDecayer, Herwig::TensorMeson2PScalarDecayer, Herwig::TensorMesonSpin3VectorDecayer, Herwig::TensorMesonTensorPScalarDecayer, Herwig::TensorMesonTensorScalarDecayer, Herwig::TensorMesonVectorPScalarDecayer, Herwig::TensorMesonVectorScalarDecayer, Herwig::TensorMesonVectorVectorDecayer, Herwig::a1SimpleDecayer, Herwig::a1ThreePionCLEODecayer, Herwig::a1ThreePionDecayer, Herwig::f1FourPiDecayer, Herwig::f1RhoPiPiDecayer, Herwig::OniumToOniumPiPiDecayer, Herwig::VectorMeson2FermionDecayer, Herwig::VectorMeson2MesonDecayer, Herwig::VectorMeson2SpinHalfBaryonsDecayer, Herwig::VectorMeson2SpinThreeHalfBaryonsDecayer, Herwig::VectorMesonPScalarFermionsDecayer, Herwig::VectorMesonTensorVectorDecayer, Herwig::VectorMesonVectorPScalarDecayer, Herwig::VectorMesonVectorScalarDecayer, and Herwig::VectorMesonVectorVectorDecayer.
|
inlineprotected |
|
inlineprotected |
|
pure virtual |
Which of the possible decays is required.
cc | Is this mode the charge conjugate |
parent | The decaying particle |
children | The decay products |
Implemented in Herwig::SMHiggsFermionsDecayer, Herwig::SMHiggsGGHiggsPPDecayer, Herwig::SMHiggsWWDecayer, Herwig::SMTopDecayer, Herwig::BaryonFactorizedDecayer, Herwig::KornerKramerCharmDecayer, Herwig::NonLeptonicHyperonDecayer, Herwig::NonLeptonicOmegaDecayer, Herwig::OmegaXiStarPionDecayer, Herwig::RadiativeDoublyHeavyBaryonDecayer, Herwig::RadiativeHeavyBaryonDecayer, Herwig::RadiativeHyperonDecayer, Herwig::SemiLeptonicBaryonDecayer, Herwig::StrongHeavyBaryonDecayer, Herwig::SU3BaryonDecupletOctetPhotonDecayer, Herwig::SU3BaryonDecupletOctetScalarDecayer, Herwig::SU3BaryonOctetDecupletScalarDecayer, Herwig::SU3BaryonOctetOctetPhotonDecayer, Herwig::SU3BaryonOctetOctetScalarDecayer, Herwig::SU3BaryonSingletOctetPhotonDecayer, Herwig::SU3BaryonSingletOctetScalarDecayer, Herwig::DalitzBase, Herwig::GeneralCurrentDecayer, Herwig::GeneralFourBodyDecayer, Herwig::GeneralThreeBodyDecayer, Herwig::GeneralTwoBodyDecayer, Herwig::VectorCurrentDecayer, Herwig::HQETRadiativeDecayer, Herwig::HQETStrongDecayer, Herwig::SMWDecayer, Herwig::SMZDecayer, Herwig::EtaPiGammaGammaDecayer, Herwig::EtaPiPiFermionsDecayer, Herwig::EtaPiPiGammaDecayer, Herwig::EtaPiPiPiDecayer, Herwig::PScalar4FermionsDecayer, Herwig::PScalarLeptonNeutrinoDecayer, Herwig::PScalarPScalarVectorDecayer, Herwig::PScalarVectorFermionsDecayer, Herwig::PScalarVectorVectorDecayer, Herwig::PseudoScalar2FermionsDecayer, Herwig::Scalar2FermionsDecayer, Herwig::ScalarMesonFactorizedDecayer, Herwig::ScalarMesonTensorScalarDecayer, Herwig::ScalarScalarScalarDecayer, Herwig::ScalarVectorVectorDecayer, Herwig::SemiLeptonicScalarDecayer, Herwig::TauDecayer, Herwig::PseudoTensorMesonTensorVectorDecayer, Herwig::PseudoTensorMesonVectorVectorDecayer, Herwig::Spin3Meson2PScalarDecayer, Herwig::Spin3MesonTensorPScalarDecayer, Herwig::Spin3MesonTensorVectorDecayer, Herwig::Spin3MesonVectorPScalarDecayer, Herwig::Spin3MesonVectorScalarDecayer, Herwig::TensorMeson2PScalarDecayer, Herwig::TensorMesonSpin3VectorDecayer, Herwig::TensorMesonTensorPScalarDecayer, Herwig::TensorMesonTensorScalarDecayer, Herwig::TensorMesonVectorPScalarDecayer, Herwig::TensorMesonVectorScalarDecayer, Herwig::TensorMesonVectorVectorDecayer, Herwig::a1SimpleDecayer, Herwig::a1ThreePionCLEODecayer, Herwig::a1ThreePionDecayer, Herwig::f1FourPiDecayer, Herwig::f1RhoPiPiDecayer, Herwig::OniumToOniumPiPiDecayer, Herwig::VectorMeson2FermionDecayer, Herwig::VectorMeson2MesonDecayer, Herwig::VectorMeson2SpinHalfBaryonsDecayer, Herwig::VectorMeson2SpinThreeHalfBaryonsDecayer, Herwig::VectorMesonPScalarFermionsDecayer, Herwig::VectorMesonTensorVectorDecayer, Herwig::VectorMesonVectorPScalarDecayer, Herwig::VectorMesonVectorScalarDecayer, and Herwig::VectorMesonVectorVectorDecayer.
Referenced by accept().
|
inlineprotected |
|
virtual |
The one-loop virtual correction.
imode | The mode required. |
part | The decaying particle. |
products | The decay products including the radiated photon. |
Reimplemented in Herwig::SMZDecayer.
void Herwig::DecayIntegrator::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::DecayIntegrator::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
|
virtual |
The real emission matrix element.
imode | The mode required |
part | The decaying particle |
products | The decay products including the radiated photon |
iemitter | The particle which emitted the photon |
ctheta | The cosine of the polar angle between the photon and the emitter |
stheta | The sine of the polar angle between the photon and the emitter |
rot1 | Rotation from rest frame to frame for real emission |
rot2 | Rotation to place emitting particle along z |
Reimplemented in Herwig::SMZDecayer.
|
protected |
Reset the properities of all intermediates.
part | The intermediate particle being reset. |
mass | The mass of the particle. |
width | The width of the particle. |
void Herwig::DecayIntegrator::setPartialWidth | ( | const DecayMode & | dm, |
int | imode | ||
) |
Set the code for the partial width.
Finds the partial width in the GenericWidthGenerator class which corresponds to the decay mode.
dm | The DecayMode |
imode | The mode. |
|
virtual |
The differential three body decay rate with one integral performed.
imode | The mode for which the matrix element is needed. |
q2 | The scale, i.e. the mass squared of the decaying particle. |
s | The invariant mass which still needs to be integrate over. |
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 in Herwig::SMTopDecayer, Herwig::EtaPiPiPiDecayer, Herwig::PScalarVectorFermionsDecayer, and Herwig::VectorMesonPScalarFermionsDecayer.
|
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, \(s_3=m^2_{12}\). |
s2 | The invariant mass squared of particles 1 and 3, \(s_2=m^2_{13}\). |
s1 | The invariant mass squared of particles 2 and 3, \(s_1=m^2_{23}\). |
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 in Herwig::VectorTo3PseudoScalarDalitz, Herwig::GeneralThreeBodyDecayer, Herwig::EtaPiGammaGammaDecayer, Herwig::EtaPiPiGammaDecayer, Herwig::a1SimpleDecayer, Herwig::a1ThreePionCLEODecayer, Herwig::a1ThreePionDecayer, and Herwig::OniumToOniumPiPiDecayer.
|
virtual |
Method to return an object to calculate the 3 (or higher body) partial width.
dm | The DecayMode |
Reimplemented in Herwig::VectorTo3PseudoScalarDalitz, Herwig::FtoFFFDecayer, Herwig::FtoFVVDecayer, Herwig::StoFFVDecayer, Herwig::StoSFFDecayer, Herwig::VtoFFVDecayer, Herwig::SMTopDecayer, Herwig::EtaPiGammaGammaDecayer, Herwig::EtaPiPiGammaDecayer, Herwig::EtaPiPiPiDecayer, Herwig::PScalarVectorFermionsDecayer, Herwig::a1SimpleDecayer, Herwig::a1ThreePionCLEODecayer, Herwig::a1ThreePionDecayer, Herwig::OniumToOniumPiPiDecayer, and Herwig::VectorMesonPScalarFermionsDecayer.
|
inlinevirtual |
Specify the \(1\to2\) matrix element to be used in the running width calculation.
mecode | The code for the matrix element as described in the GenericWidthGenerator class. |
coupling | The coupling for the matrix element. |
Reimplemented in Herwig::Baryon1MesonDecayerBase, Herwig::GeneralTwoBodyDecayer, Herwig::HQETRadiativeDecayer, Herwig::HQETStrongDecayer, Herwig::PScalarPScalarVectorDecayer, Herwig::PScalarVectorVectorDecayer, Herwig::PseudoScalar2FermionsDecayer, Herwig::Scalar2FermionsDecayer, Herwig::ScalarMesonTensorScalarDecayer, Herwig::ScalarScalarScalarDecayer, Herwig::ScalarVectorVectorDecayer, Herwig::PseudoTensorMesonTensorVectorDecayer, Herwig::PseudoTensorMesonVectorVectorDecayer, Herwig::Spin3Meson2PScalarDecayer, Herwig::Spin3MesonTensorPScalarDecayer, Herwig::Spin3MesonTensorVectorDecayer, Herwig::Spin3MesonVectorPScalarDecayer, Herwig::Spin3MesonVectorScalarDecayer, Herwig::TensorMeson2PScalarDecayer, Herwig::TensorMesonSpin3VectorDecayer, Herwig::TensorMesonTensorPScalarDecayer, Herwig::TensorMesonTensorScalarDecayer, Herwig::TensorMesonVectorPScalarDecayer, Herwig::TensorMesonVectorScalarDecayer, Herwig::TensorMesonVectorVectorDecayer, Herwig::VectorMeson2FermionDecayer, Herwig::VectorMeson2MesonDecayer, Herwig::VectorMesonTensorVectorDecayer, Herwig::VectorMesonVectorPScalarDecayer, Herwig::VectorMesonVectorScalarDecayer, and Herwig::VectorMesonVectorVectorDecayer.
Definition at line 167 of file DecayIntegrator.h.
|
inline |
Definition at line 433 of file DecayIntegrator.h.
|
friend |
and DecayPhaseMode
Definition at line 67 of file DecayIntegrator.h.
|
private |
Epsilon parameter for phase-space integration.
Definition at line 503 of file DecayIntegrator.h.
Referenced by epsilonPS().
|
private |
Whether to include the intermediates whne outputing the results.
Definition at line 473 of file DecayIntegrator.h.
Referenced by generateIntermediates().
|
mutableprivate |
mode currently being generated
Definition at line 483 of file DecayIntegrator.h.
Referenced by imode().
|
mutableprivate |
The helicity matrix element for the current decay.
Definition at line 488 of file DecayIntegrator.h.
Referenced by ME().
|
mutableprivate |
List of the decay modes.
Definition at line 466 of file DecayIntegrator.h.
Referenced by clearModes(), mode(), and numberModes().
|
private |
Parameters for the integration.
Number of iterations for th initialization.
Definition at line 451 of file DecayIntegrator.h.
|
private |
Number of points for initialisation.
Definition at line 456 of file DecayIntegrator.h.
|
private |
number of attempts to generate the decay
Definition at line 461 of file DecayIntegrator.h.
|
private |
Pointer to the object generating the QED radiation in the decay.
Definition at line 478 of file DecayIntegrator.h.
Referenced by canGeneratePhotons(), and generatePhotons().
|
private |
Whether or not the real photon emission matrix element exists.
Definition at line 493 of file DecayIntegrator.h.
Referenced by hasRealEmissionME().
|
private |
Whether or not the one-loop matrix element exists.
Definition at line 498 of file DecayIntegrator.h.
Referenced by hasOneLoopME().
|
private |
option for turinh on/off log warnings in Phase class
Definition at line 508 of file DecayIntegrator.h.