Herwig 7.3.0
|
The VFFDecayer class implements the decay of a vector to 2 fermions in a general model. More...
#include <VFFDecayer.h>
Public Member Functions | |
VFFDecayer () | |
The default constructor. | |
Virtual functions required by the Decayer class. | |
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 Energy | partialWidth (PMPair inpart, PMPair outa, PMPair outb) const |
Function to return partial Width. | |
virtual POWHEGType | hasPOWHEGCorrection () |
Has a POWHEG style correction. | |
virtual double | threeBodyME (const int, const Particle &inpart, const ParticleVector &decay, ShowerInteraction inter, MEOption meopt) |
Three-body matrix element including additional QCD radiation. | |
void | identifyVertices (const int iferm, const int ianti, const Particle &inpart, const ParticleVector &decay, AbstractFFVVertexPtr &abstractOutgoingVertexF, AbstractFFVVertexPtr &abstractOutgoingVertexA, ShowerInteraction inter) |
Indentify outgoing vertices for the fermion and antifermion. | |
virtual void | setDecayInfo (PDPtr incoming, PDPair outgoing, vector< VertexBasePtr >, map< ShowerInteraction, VertexBasePtr > &, const vector< map< ShowerInteraction, VertexBasePtr > > &, map< ShowerInteraction, VertexBasePtr >) |
Set the information on the decay. | |
![]() | |
GeneralTwoBodyDecayer () | |
The 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. | |
virtual int | modeNumber (bool &cc, tcPDPtr parent, const tPDVector &children) const |
Which of the possible decays is required. | |
virtual bool | twoBodyMEcode (const DecayMode &dm, int &mecode, double &coupling) const |
Specify the \(1\to2\) matrix element to be used in the running width calculation. | |
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. | |
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. | |
![]() | |
PerturbativeDecayer () | |
The default constructor. | |
virtual POWHEGType | hasPOWHEGCorrection () |
Has a POWHEG style correction. | |
virtual RealEmissionProcessPtr | generateHardest (RealEmissionProcessPtr) |
Member to generate the hardest emission in the POWHEG scheme. | |
virtual RealEmissionProcessPtr | applyHardMatrixElementCorrection (RealEmissionProcessPtr) |
Apply the hard matrix element correction to a given hard process or decay. | |
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. | |
![]() | |
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 bool | hasMECorrection () |
Has an old fashioned ME correction. | |
virtual void | initializeMECorrection (RealEmissionProcessPtr, double &, double &) |
Initialize the ME correction. | |
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. | |
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 |
Clone Methods. | |
vector< AbstractFFVVertexPtr > | vertex_ |
Abstract pointer to AbstractFFVVertex. | |
vector< FFVVertexPtr > | perturbativeVertex_ |
Pointer to the perturbative vertex. | |
map< ShowerInteraction, AbstractVVVVertexPtr > | incomingVertex_ |
Abstract pointer to AbstractVVVVertex for QCD radiation from incoming vector. | |
map< ShowerInteraction, AbstractFFVVertexPtr > | outgoingVertex1_ |
Abstract pointer to AbstractFFVVertex for QCD radiation from outgoing (anti)fermion. | |
map< ShowerInteraction, AbstractFFVVertexPtr > | outgoingVertex2_ |
Abstract pointer to AbstractFFVVertex for QCD radiation from outgoing (anti)fermion. | |
RhoDMatrix | rho_ |
Spin density matrix. | |
vector< VectorWaveFunction > | vectors_ |
Polarization vectors for the decaying particle. | |
vector< SpinorWaveFunction > | wave_ |
Spinors for the decay products. | |
vector< SpinorBarWaveFunction > | wavebar_ |
Barred spinors for the decay products. | |
RhoDMatrix | rho3_ |
Spin density matrix for 3 body decay. | |
vector< VectorWaveFunction > | vector3_ |
Scalar wavefunction for 3 body decay. | |
vector< SpinorWaveFunction > | wave3_ |
Spinor wavefunction for 3 body decay. | |
vector< SpinorBarWaveFunction > | wavebar3_ |
Barred spinor wavefunction for 3 body decay. | |
vector< VectorWaveFunction > | gluon_ |
Vector wavefunction for 3 body decay. | |
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. | |
VFFDecayer & | operator= (const VFFDecayer &)=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 | |
![]() | |
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 |
![]() | |
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 () |
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 |
![]() | |
typedef vector< pair< int, double > > | CFlowPairVec |
Member for the generation of additional hard radiation. | |
typedef vector< CFlowPairVec > | CFlow |
![]() | |
enum | dipoleType { FFa , FFc , IFa , IFc , IFba , IFbc , FFg } |
Type of dipole. More... | |
enum | phaseSpaceRegion { emissionFromB , emissionFromC , emissionFromA1 , emissionFromA2 , deadZone } |
Phase-space region for an emission (assumes \(a\to b,c\). More... | |
![]() | |
void | setWeight (double wgt) |
Set integration weight. | |
void | colourConnections (const Particle &parent, const ParticleVector &out) const |
Set colour connections. | |
double | colourFactor (tcPDPtr in, tcPDPtr out1, tcPDPtr out2) const |
Compute the spin and colour factor. | |
double | matrixElementRatio (const Particle &inpart, const ParticleVector &decay2, const ParticleVector &decay3, MEOption meopt, ShowerInteraction inter) |
Calculate matrix element ratio R/B. | |
void | decayInfo (PDPtr incoming, PDPair outgoing) |
Set the information on the decay. | |
virtual void | doinit () |
Initialize this object after the setup phase before saving an EventGenerator to disk. | |
virtual void | doinitrun () |
Initialize this object. | |
const vector< DVector > & | getColourFactors (const Particle &inpart, const ParticleVector &decay, unsigned int &nflow) |
const CFlow & | colourFlows (const Particle &inpart, const ParticleVector &decay) |
![]() | |
bool | identifyDipoles (vector< DipoleType > &dipoles, PPtr &aProgenitor, PPtr &bProgenitor, PPtr &cProgenitor, ShowerInteraction inter) const |
Work out the type of process. | |
ShowerAlphaPtr | alphaS () |
Coupling for the generation of hard QCD radiation. | |
ShowerAlphaPtr | alphaEM () |
Coupling for the generation of hard QED radiation. | |
vector< Lorentz5Momentum > | hardMomenta (PPtr in, PPtr emitter, PPtr spectator, const vector< DipoleType > &dipoles, int i, bool inDeadZone) |
Return the momenta including the hard emission. | |
bool | calcMomenta (int j, Energy pT, double y, double phi, double &xg, double &xs, double &xe, double &xe_z, vector< Lorentz5Momentum > &particleMomenta) |
Calculate momenta of all the particles. | |
bool | psCheck (const double xg, const double xs) |
Check the calculated momenta are physical. | |
pair< double, double > | calculateDipole (const DipoleType &dipoleId, const Particle &inpart, const ParticleVector &decay3) |
Return dipole corresponding to the DipoleType dipoleId. | |
double | dipoleSpinFactor (tcPDPtr emitter, double z) |
Return contribution to dipole that depends on the spin of the emitter. | |
double | colourCoeff (tcPDPtr emitter, tcPDPtr spectator, tcPDPtr other, DipoleType dipole) |
Return the colour coefficient of the dipole. | |
void | getColourLines (RealEmissionProcessPtr real) |
Set up the colour lines. | |
RealEmissionProcessPtr | getHardEvent (RealEmissionProcessPtr born, bool inDeadZone, ShowerInteraction inter) |
Generate a hard emission. | |
bool | inTotalDeadZone (double xg, double xs, const vector< DipoleType > &dipoles, int i) |
Is the \(x_g,x_s\) point in the dead-zone for all the dipoles. | |
phaseSpaceRegion | inInitialFinalDeadZone (double xg, double xa, double a, double c) const |
Is the \(x_g,x_a\) point in the dead-zone for an initial-final colour connection. | |
phaseSpaceRegion | inFinalFinalDeadZone (double xb, double xc, double b, double c) const |
Is the \(x_b,x_c\) point in the dead-zone for a final-final colour connection. | |
bool | useMEforT2 () const |
For me corrections use the shower or me for the T2 region. | |
const Energy & | pT () const |
Access to the kinematics for inheriting classes. | |
const Energy & | mb () const |
Mass of decaying particle. | |
const double & | e () const |
Reduced mass of emitter child particle. | |
const double & | s () const |
Reduced mass of spectator child particle. | |
const double & | e2 () const |
Reduced mass of emitter child particle squared. | |
const double & | s2 () const |
Reduced mass of spectator child particle squared. | |
![]() | |
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) |
The VFFDecayer class implements the decay of a vector to 2 fermions in a general model.
It holds an FFVVertex pointer that must be typecast from the VertexBase pointer held in GeneralTwoBodyDecayer. It implents the virtual functions me2() and partialWidth().
Definition at line 33 of file VFFDecayer.h.
|
inline |
The default constructor.
Definition at line 40 of file VFFDecayer.h.
|
protectedvirtual |
Make a simple clone of this object.
Implements ThePEG::InterfacedBase.
|
virtual |
Construct the SpinInfos for the particles produced in the decay.
Implements Herwig::DecayIntegrator.
|
protectedvirtual |
Make a clone of this object, possibly modifying the cloned object to make it sane.
Reimplemented from ThePEG::InterfacedBase.
|
inlinevirtual |
Has a POWHEG style correction.
Reimplemented from Herwig::PerturbativeDecayer.
Definition at line 78 of file VFFDecayer.h.
References vertex_.
|
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.
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.
|
privatedelete |
The assignment operator is private and must never be called.
In fact, it should not even be implemented.
|
virtual |
Function to return partial Width.
inpart | The decaying particle. |
outa | One of the decay products. |
outb | The other decay product. |
Reimplemented from Herwig::GeneralTwoBodyDecayer.
void Herwig::VFFDecayer::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::VFFDecayer::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
|
virtual |
Set the information on the decay.
Implements Herwig::GeneralTwoBodyDecayer.
|
virtual |
Three-body matrix element including additional QCD radiation.
Reimplemented from Herwig::GeneralTwoBodyDecayer.
|
mutableprivate |
Vector wavefunction for 3 body decay.
Definition at line 235 of file VFFDecayer.h.
|
private |
Abstract pointer to AbstractVVVVertex for QCD radiation from incoming vector.
Definition at line 181 of file VFFDecayer.h.
|
private |
Abstract pointer to AbstractFFVVertex for QCD radiation from outgoing (anti)fermion.
Definition at line 186 of file VFFDecayer.h.
|
private |
Abstract pointer to AbstractFFVVertex for QCD radiation from outgoing (anti)fermion.
Definition at line 191 of file VFFDecayer.h.
|
private |
Pointer to the perturbative vertex.
Definition at line 176 of file VFFDecayer.h.
|
mutableprivate |
Spin density matrix for 3 body decay.
Definition at line 215 of file VFFDecayer.h.
|
mutableprivate |
Spin density matrix.
Definition at line 196 of file VFFDecayer.h.
|
mutableprivate |
Scalar wavefunction for 3 body decay.
Definition at line 220 of file VFFDecayer.h.
|
mutableprivate |
Polarization vectors for the decaying particle.
Definition at line 201 of file VFFDecayer.h.
|
private |
Abstract pointer to AbstractFFVVertex.
Definition at line 171 of file VFFDecayer.h.
Referenced by hasPOWHEGCorrection().
|
mutableprivate |
Spinor wavefunction for 3 body decay.
Definition at line 225 of file VFFDecayer.h.
|
mutableprivate |
Spinors for the decay products.
Definition at line 206 of file VFFDecayer.h.
|
mutableprivate |
Barred spinor wavefunction for 3 body decay.
Definition at line 230 of file VFFDecayer.h.
|
mutableprivate |
Barred spinors for the decay products.
Definition at line 211 of file VFFDecayer.h.