Herwig
7.2.1
|
The ScalarMesonFactorizedDecayer
class is a class which combines a WeakDecayCurrent and a ScalarFormFactor in the naive factorization approximation to perform the non-leptonic weak decays of scalar mesons.
More...
#include <ScalarMesonFactorizedDecayer.h>
Public Member Functions | |
ScalarMesonFactorizedDecayer () | |
The default constructor. | |
virtual void | dataBaseOutput (ofstream &os, bool header) const |
Output the setup information for the particle database. More... | |
Virtual functions required by the Decayer and DecayIntegrator classes. | |
virtual int | modeNumber (bool &cc, tcPDPtr parent, const tPDVector &children) const |
Which of the possible decays is required. More... | |
virtual bool | accept (tcPDPtr parent, const tPDVector &children) const |
Check if this decayer can perfom the decay for a particular mode. More... | |
virtual 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... | |
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 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 WidthCalculatorBasePtr | threeBodyMEIntegrator (const DecayMode &dm) const |
Method to return an object to calculate the 3 (or higher 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 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 () |
The standard Init function used to initialize the interfaces. More... | |
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. More... | |
virtual void | rebind (const TranslationMap &trans) |
Rebind pointer to other Interfaced objects. More... | |
virtual IVector | getReferences () |
Return a vector of all pointers to Interfaced objects used in this object. More... | |
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 void | readSetup (istream &is) |
virtual void | doupdate () |
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 | |
void | findModes (unsigned int imode, vector< tPDVector > &particles, vector< unsigned int > &loc, vector< bool > &cc) |
Find duplicate modes in the list of particles. More... | |
ScalarMesonFactorizedDecayer & | operator= (const ScalarMesonFactorizedDecayer &)=delete |
The assignment operator is private and must never be called. More... | |
Private Attributes | |
vector< WeakDecayCurrentPtr > | _current |
The weak decay current. | |
vector< ScalarFormFactorPtr > | _form |
The baryon form factor. | |
vector< vector< unsigned int > > | _formpart |
Outgoing particle from the form factor. | |
vector< vector< Complex > > | _CKMfact |
The CKM factors. | |
vector< int > | _wgtloc |
location of the weights | |
vector< double > | _wgtmax |
the maximum weights | |
vector< double > | _weights |
Weights for the different channels. | |
Ptr< StandardCKM >::pointer | _ckm |
Pointer to the CKM object. | |
RhoDMatrix | _rho |
Spin density matrix. | |
vector< vector< Helicity::LorentzPolarizationVector > > | _vectors |
Polarization vectors for the decay products. | |
vector< vector< Helicity::LorentzTensor< double > > > | _tensors |
Polarization tensors for the decay products. | |
double | _a1b |
The perturbative coefficients. More... | |
double | _a2b |
The perturbative coefficient for b decays. | |
double | _a1c |
The perturbative coefficient for c decays. | |
double | _a2c |
The perturbative coefficient for c decays. | |
vector< vector< unsigned int > > | _currentmapA |
Mapping of the modes to the currents. More... | |
vector< vector< unsigned int > > | _currentmapB |
Second map. | |
vector< vector< unsigned int > > | _formmapA |
Mapping of the modes to the form factors. More... | |
vector< vector< unsigned int > > | _formmapB |
Second map. | |
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 ScalarMesonFactorizedDecayer
class is a class which combines a WeakDecayCurrent and a ScalarFormFactor in the naive factorization approximation to perform the non-leptonic weak decays of scalar mesons.
Definition at line 38 of file ScalarMesonFactorizedDecayer.h.
|
virtual |
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 |
Reimplemented from Herwig::DecayIntegrator.
|
inlineprotectedvirtual |
Make a simple clone of this object.
Implements ThePEG::InterfacedBase.
Definition at line 123 of file ScalarMesonFactorizedDecayer.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.
|
protectedvirtual |
Initialize this object.
Called in the run phase just before a run begins.
Reimplemented from Herwig::DecayIntegrator.
|
private |
Find duplicate modes in the list of particles.
imode | The mode we are studying |
particles | The external particles for the different modes |
loc | The location of the duplicate mode |
cc | If the duplicate is the charge conjugate |
|
inlineprotectedvirtual |
Make a clone of this object, possibly modifying the cloned object to make it sane.
Reimplemented from ThePEG::InterfacedBase.
Definition at line 129 of file ScalarMesonFactorizedDecayer.h.
|
protectedvirtual |
Return a vector of all pointers to Interfaced objects used in this object.
Reimplemented from ThePEG::InterfacedBase.
|
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 |
Return the matrix element squared for a given mode and phase-space channel.
This function combines the current and the form factor to give the matrix element.
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.
|
privatedelete |
The assignment operator is private and must never be called.
In fact, it should not even be implemented.
void Herwig::ScalarMesonFactorizedDecayer::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::ScalarMesonFactorizedDecayer::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
|
protectedvirtual |
Rebind pointer to other Interfaced objects.
Called in the setup phase after all objects used in an EventGenerator has been cloned so that the pointers will refer to the cloned objects afterwards.
trans | a TranslationMap relating the original objects to their respective clones. |
RebindException | if no cloned object was found for a given pointer. |
Reimplemented from ThePEG::InterfacedBase.
|
private |
The perturbative coefficients.
The perturbative coefficient for b decays.
Definition at line 209 of file ScalarMesonFactorizedDecayer.h.
|
private |
Mapping of the modes to the currents.
First map
Definition at line 234 of file ScalarMesonFactorizedDecayer.h.
|
private |
Mapping of the modes to the form factors.
First map
Definition at line 249 of file ScalarMesonFactorizedDecayer.h.