Herwig 7.3.0
|
The PScalarVectorFermionsDecayer
class is designed for the decay of a pseudoscalar meson to a spin-1 particle and a fermion-antifermion pair.
More...
#include <PScalarVectorFermionsDecayer.h>
Public Member Functions | |
PScalarVectorFermionsDecayer () | |
Default constructor. | |
virtual int | modeNumber (bool &cc, tcPDPtr parent, const tPDVector &children) const |
Which of the possible decays is required. | |
double | me2 (const int ichan, const Particle &part, const tPDVector &outgoing, const vector< Lorentz5Momentum > &momenta, MEOption meopt) const |
Return the matrix element squared for a given mode and phase-space channel. | |
virtual void | constructSpinInfo (const Particle &part, ParticleVector outgoing) const |
Construct the SpinInfos for the particles produced in the decay. | |
virtual WidthCalculatorBasePtr | threeBodyMEIntegrator (const DecayMode &dm) const |
Method to return an object to calculate the 3 body partial width. | |
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. | |
virtual void | dataBaseOutput (ofstream &os, bool header) const |
Output the setup information for the particle database. | |
Public Member Functions inherited from Herwig::DecayIntegrator | |
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. | |
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. | |
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. | |
Public Member Functions inherited from ThePEG::Decayer | |
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 |
Public Member Functions inherited from ThePEG::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 |
Public Member Functions inherited from ThePEG::InterfacedBase | |
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 |
Public Member Functions inherited from ThePEG::Base | |
void | debug () const |
virtual void | debugme () 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 |
Protected Member Functions | |
Clone Methods. | |
virtual IBPtr | clone () const |
Make a simple clone of this object. | |
virtual IBPtr | fullclone () const |
Make a clone of this object, possibly modifying the cloned object to make it sane. | |
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. | |
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. | |
Protected Member Functions inherited from Herwig::HwDecayerBase | |
virtual void | dofinish () |
Finalize this object. | |
void | fixRho (RhoDMatrix &) const |
Set rho to be diagonal if no correlations. | |
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 | |
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 &) |
Protected Member Functions inherited from ThePEG::Pointer::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) |
Standard Interfaced functions. | |
vector< InvEnergy > | coupling_ |
coupling for a decay | |
vector< int > | incoming_ |
the PDG codes for the incoming particles | |
vector< pair< long, long > > | outgoing_ |
the PDG codes for the outgoing vector | |
vector< double > | maxweight_ |
maximum weight for a decay | |
vector< int > | includeVMD_ |
Include the VMD factor. | |
vector< int > | VMDid_ |
PDG code for thte particle to use in the VMD factor. | |
vector< Energy > | VMDmass_ |
Mass to use in the VMD factor. | |
vector< Energy > | VMDwidth_ |
Width to use in the VMD factor. | |
RhoDMatrix | rho_ |
Spin density matrix. | |
vector< Helicity::LorentzPolarizationVector > | vectors_ |
Polarization vectors for the decay product. | |
vector< Helicity::LorentzSpinor< SqrtEnergy > > | wave_ |
Spinors for the fermions. | |
vector< Helicity::LorentzSpinorBar< SqrtEnergy > > | wavebar_ |
Barred spinors for the fermions. | |
string | setUpDecayMode (string arg) |
Set the parameters for a decay mode. | |
virtual void | doinit () |
Initialize this object after the setup phase before saving and EventGenerator to disk. | |
virtual void | doinitrun () |
Initialize this object to the begining of the run phase. | |
PScalarVectorFermionsDecayer & | operator= (const PScalarVectorFermionsDecayer &)=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 () |
Standard Init function used to initialize the interfaces. | |
Additional Inherited Members | |
Public Types inherited from Herwig::DecayIntegrator | |
enum | MEOption { Initialize , Calculate , Terminate } |
Enum for the matrix element option. More... | |
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 |
Static Public Member Functions inherited from Herwig::DecayIntegrator | |
static void | Init () |
The 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. | |
Static Public Member Functions inherited from ThePEG::Decayer | |
static void | Init () |
static ParticleVector | DecayParticle (tPPtr parent, Step &step, long maxtry=1000) |
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 () |
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 PScalarVectorFermionsDecayer
class is designed for the decay of a pseudoscalar meson to a spin-1 particle and a fermion-antifermion pair.
In practice these decays are of the form \(\gamma\ell^+\ell^-\) and the propagator of the off-shell boson is taken to be \(\frac1{m^2_{f\bar{f}}}\). There is also the option of including a vector meson dominance form-factor.
In this case the matrix element is
\[\mathcal{M} = \frac{g}{m^2_{f\bar{f}}} \epsilon^{\mu\nu\alpha\beta}p_{V\mu}\epsilon_{V\nu} \bar{u}(p_f)\gamma_\alpha v(p_{\bar{f}}) p_{f\bar{f}\beta} \]
It includes the option of a vector meson dominance (VMD) type form factor
\(\frac{-M^2+i\Gamma M}{(m^2_{f\bar{f}}-M^2+i\Gamma M)}\).
The incoming pseudoscalar meson, the outgoing vector, the fermion and antifermion and the coupling can be specified using the relevant interfaces.
Definition at line 49 of file PScalarVectorFermionsDecayer.h.
|
inlineprotectedvirtual |
Make a simple clone of this object.
Implements ThePEG::InterfacedBase.
Definition at line 147 of file PScalarVectorFermionsDecayer.h.
|
virtual |
Construct the SpinInfos for the particles produced in the decay.
Implements Herwig::DecayIntegrator.
|
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 to the begining of the run phase.
Reimplemented from Herwig::DecayIntegrator.
|
inlineprotectedvirtual |
Make a clone of this object, possibly modifying the cloned object to make it sane.
Reimplemented from ThePEG::InterfacedBase.
Definition at line 153 of file PScalarVectorFermionsDecayer.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. |
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 |
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::PScalarVectorFermionsDecayer::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::PScalarVectorFermionsDecayer::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
|
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 from Herwig::DecayIntegrator.
|
virtual |
Method to return an object to calculate the 3 body partial width.
dm | The DecayMode |
Reimplemented from Herwig::DecayIntegrator.
|
private |
coupling for a decay
Definition at line 192 of file PScalarVectorFermionsDecayer.h.
|
private |
Include the VMD factor.
Definition at line 212 of file PScalarVectorFermionsDecayer.h.
|
private |
the PDG codes for the incoming particles
Definition at line 197 of file PScalarVectorFermionsDecayer.h.
|
private |
maximum weight for a decay
Definition at line 207 of file PScalarVectorFermionsDecayer.h.
|
private |
the PDG codes for the outgoing vector
Definition at line 202 of file PScalarVectorFermionsDecayer.h.
|
mutableprivate |
Spin density matrix.
Definition at line 231 of file PScalarVectorFermionsDecayer.h.
|
mutableprivate |
Polarization vectors for the decay product.
Definition at line 236 of file PScalarVectorFermionsDecayer.h.
|
private |
PDG code for thte particle to use in the VMD factor.
Definition at line 217 of file PScalarVectorFermionsDecayer.h.
|
private |
Mass to use in the VMD factor.
Definition at line 222 of file PScalarVectorFermionsDecayer.h.
|
private |
Width to use in the VMD factor.
Definition at line 227 of file PScalarVectorFermionsDecayer.h.
|
mutableprivate |
Spinors for the fermions.
Definition at line 241 of file PScalarVectorFermionsDecayer.h.
|
mutableprivate |
Barred spinors for the fermions.
Definition at line 246 of file PScalarVectorFermionsDecayer.h.