Herwig 7.3.0
|
Here is the documentation of the GeneralThreeBodyDecayer class. More...
#include <GeneralThreeBodyDecayer.h>
Public Types | |
typedef pair< tcPDPtr, Energy > | PMPair |
A ParticleData ptr and (possible) mass pair. | |
![]() | |
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 | |
GeneralThreeBodyDecayer () | |
The default constructor. | |
Virtual functions required by the Decayer class. | |
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 |
Which of the possible decays is required. | |
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 Energy | partialWidth (PMPair inpart, PMPair outa, PMPair outb, PMPair outc) const |
Function to return partial Width. | |
virtual double | brat (const DecayMode &dm, const Particle &p, double oldbrat) const |
An overidden member to calculate a branching ratio for a certain particle instance. | |
bool | setDecayInfo (PDPtr incoming, vector< PDPtr > outgoing, const vector< TBDiagram > &process, double symfac) |
Set the diagrams. | |
![]() | |
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. | |
bool | warnings () const |
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. | |
![]() | |
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 |
Standard Interfaced functions. | |
PDPtr | incoming_ |
Store the incoming particle. | |
vector< tPDPtr > | outgoing_ |
Outgoing particles. | |
vector< TBDiagram > | diagrams_ |
Store the diagrams for the decay. | |
vector< unsigned int > | diagmap_ |
Map between the diagrams and the phase-space channels. | |
vector< DVector > | colour_ |
Store colour factors for ME calc. | |
vector< DVector > | colourLargeNC_ |
Store cololur factors for ME calc at large N_c. | |
unsigned int | nflow_ |
The number of colourflows. | |
WidthCalculatorBasePtr | widthCalc_ |
Reference to object to calculate the partial width. | |
unsigned int | widthOpt_ |
Option for the treatment of the widths. | |
string | refTag_ |
Store a decay tag for this mode that can be tested when trying to determine whether it can be generated by this Decayer. | |
string | refTagCC_ |
Store a decay tag for the cc-mode that can be tested when trying to determine whether it can be generated by this Decayer. | |
unsigned int | iflow_ |
The colour flow. | |
unsigned int | intOpt_ |
Option for the construction of the gaussian integrator. | |
double | relerr_ |
Relative error for GQ integration of partial width. | |
virtual void | doinit () |
Initialize this object after the setup phase before saving an EventGenerator to disk. | |
virtual void | doinitrun () |
Initialize this object. | |
virtual void | setupDiagrams (bool checkKinematics) |
Set up the diagrams etc. | |
const vector< TBDiagram > & | getProcessInfo () const |
Access the TBDiagrams that store the required information to create the diagrams. | |
PDPtr | incoming () const |
Incoming particle. | |
const vector< tPDPtr > & | outgoing () const |
Outgoing particles. | |
unsigned int | numberOfFlows () const |
Number of colour flows. | |
bool | setColourFactors (double symfac) |
Set up the colour factors. | |
const vector< DVector > & | getColourFactors () const |
Return the matrix of colour factors. | |
const vector< DVector > & | getLargeNcColourFactors () const |
Return the matrix of colour factors. | |
const vector< unsigned int > & | diagramMap () const |
Get the mapping between the phase-space channel and the diagram. | |
unsigned int | widthOption () const |
Option for the handling of the widths of the intermediate particles. | |
void | colourConnections (const Particle &parent, const ParticleVector &out) const |
Set colour connections. | |
void | constructIntegratorChannels (vector< int > &intype, vector< Energy > &inmass, vector< Energy > &inwidth, vector< double > &inpow, vector< double > &inweights) const |
Method to construct the channels for the integrator to give the partial width. | |
void | colourFlow (unsigned int flow) const |
Set the colour flow. | |
unsigned int const & | colourFlow () const |
Set the colour flow. | |
double | relativeError () const |
Relative error for GQ integration. | |
GeneralThreeBodyDecayer & | operator= (const GeneralThreeBodyDecayer &)=delete |
The assignment operator is private and must never be called. | |
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 () |
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 |
![]() | |
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. | |
![]() | |
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) |
Here is the documentation of the GeneralThreeBodyDecayer class.
Definition at line 21 of file GeneralThreeBodyDecayer.h.
typedef pair<tcPDPtr, Energy> Herwig::GeneralThreeBodyDecayer::PMPair |
A ParticleData ptr and (possible) mass pair.
Definition at line 26 of file GeneralThreeBodyDecayer.h.
|
inline |
The default constructor.
Definition at line 34 of file GeneralThreeBodyDecayer.h.
|
virtual |
An overidden member to calculate a branching ratio for a certain particle instance.
dm | The DecayMode of the particle |
p | The particle object |
oldbrat | The branching fraction given in the DecayMode object |
Reimplemented from ThePEG::Decayer.
|
protected |
Set colour connections.
parent | Parent particle |
out | Particle vector containing particles to connect colour lines |
|
inlineprotected |
|
inlineprotected |
Set the colour flow.
flow | The value for the colour flow |
Definition at line 233 of file GeneralThreeBodyDecayer.h.
References iflow_.
|
protected |
Method to construct the channels for the integrator to give the partial width.
intype | Types of the channels |
inmass | Mass for the channels |
inwidth | Width for the channels |
inpow | Power for the channels |
inweights | Weights for the channels |
|
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.
Reimplemented from Herwig::DecayIntegrator.
|
inlineprotected |
Get the mapping between the phase-space channel and the diagram.
Definition at line 199 of file GeneralThreeBodyDecayer.h.
References diagmap_.
|
protectedvirtual |
Initialize this object after the setup phase before saving an EventGenerator to disk.
InitException | if object could not be initialized properly. |
Reimplemented from ThePEG::InterfacedBase.
|
protectedvirtual |
Initialize this object.
Called in the run phase just before a run begins.
Reimplemented from Herwig::DecayIntegrator.
|
inlineprotected |
Return the matrix of colour factors.
Definition at line 187 of file GeneralThreeBodyDecayer.h.
References colour_.
|
inlineprotected |
Return the matrix of colour factors.
Definition at line 192 of file GeneralThreeBodyDecayer.h.
References colourLargeNC_.
|
inlineprotected |
Access the TBDiagrams that store the required information to create the diagrams.
Definition at line 160 of file GeneralThreeBodyDecayer.h.
References diagrams_.
|
inlineprotected |
|
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.
|
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.
|
inlineprotected |
Number of colour flows.
Definition at line 177 of file GeneralThreeBodyDecayer.h.
References nflow_.
|
privatedelete |
The assignment operator is private and must never be called.
In fact, it should not even be implemented.
|
inlineprotected |
|
virtual |
Function to return partial Width.
inpart | The decaying particle. |
outa | First decay product. |
outb | Second decay product. |
outc | Third decay product. |
void Herwig::GeneralThreeBodyDecayer::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::GeneralThreeBodyDecayer::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
|
inlineprotected |
Relative error for GQ integration.
Definition at line 243 of file GeneralThreeBodyDecayer.h.
References relerr_.
|
protectedvirtual |
Set up the diagrams etc.
Reimplemented in Herwig::FtoFFFDecayer, Herwig::FtoFVVDecayer, Herwig::StoFFVDecayer, Herwig::StoSFFDecayer, and Herwig::VtoFFVDecayer.
|
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 from Herwig::DecayIntegrator.
|
inlineprotected |
Option for the handling of the widths of the intermediate particles.
Definition at line 206 of file GeneralThreeBodyDecayer.h.
References widthOpt_.
|
private |
Store colour factors for ME calc.
Definition at line 278 of file GeneralThreeBodyDecayer.h.
Referenced by getColourFactors().
|
private |
Store cololur factors for ME calc at large N_c.
Definition at line 283 of file GeneralThreeBodyDecayer.h.
Referenced by getLargeNcColourFactors().
|
private |
Map between the diagrams and the phase-space channels.
Definition at line 273 of file GeneralThreeBodyDecayer.h.
Referenced by diagramMap().
|
private |
Store the diagrams for the decay.
Definition at line 268 of file GeneralThreeBodyDecayer.h.
Referenced by getProcessInfo().
|
mutableprivate |
The colour flow.
Definition at line 317 of file GeneralThreeBodyDecayer.h.
Referenced by colourFlow().
|
private |
Store the incoming particle.
Definition at line 258 of file GeneralThreeBodyDecayer.h.
Referenced by incoming().
|
private |
Option for the construction of the gaussian integrator.
Definition at line 322 of file GeneralThreeBodyDecayer.h.
|
private |
The number of colourflows.
Definition at line 288 of file GeneralThreeBodyDecayer.h.
Referenced by numberOfFlows().
|
private |
Outgoing particles.
Definition at line 263 of file GeneralThreeBodyDecayer.h.
Referenced by outgoing().
|
private |
Store a decay tag for this mode that can be tested when trying to determine whether it can be generated by this Decayer.
Definition at line 305 of file GeneralThreeBodyDecayer.h.
|
private |
Store a decay tag for the cc-mode that can be tested when trying to determine whether it can be generated by this Decayer.
Definition at line 312 of file GeneralThreeBodyDecayer.h.
|
private |
Relative error for GQ integration of partial width.
Definition at line 327 of file GeneralThreeBodyDecayer.h.
Referenced by relativeError().
|
mutableprivate |
Reference to object to calculate the partial width.
Definition at line 293 of file GeneralThreeBodyDecayer.h.
|
private |
Option for the treatment of the widths.
Definition at line 298 of file GeneralThreeBodyDecayer.h.
Referenced by widthOption().