PYTHIA
8.312
|
The ParticleDecays class contains the routines to decay a particle. More...
#include <ParticleDecays.h>
Public Member Functions | |
ParticleDecays () | |
Constructor. | |
void | init (TimeShowerPtr timesDecPtrIn, StringFlav *flavSelPtrIn, DecayHandlerPtr decayHandlePtrIn, vector< int > handledParticles) |
Initialize: store pointers and find settings. More... | |
bool | decay (int iDec, Event &event) |
Perform a decay of a single particle. More... | |
bool | decayAll (Event &event, double minWidth=0.) |
Perform decays on all particles in the event. More... | |
bool | moreToDo () const |
Did decay result in new partons to hadronize? | |
Public Member Functions inherited from PhysicsBase | |
void | initInfoPtr (Info &infoPtrIn) |
This function is called from above for physics objects used in a run. More... | |
virtual | ~PhysicsBase () |
Empty virtual destructor. | |
bool | flag (string key) const |
Shorthand to read settings values. | |
int | mode (string key) const |
double | parm (string key) const |
string | word (string key) const |
vector< bool > | fvec (string key) const |
vector< int > | mvec (string key) const |
vector< double > | pvec (string key) const |
vector< string > | wvec (string key) const |
Protected Member Functions | |
virtual void | onInitInfoPtr () override |
Protected Member Functions inherited from PhysicsBase | |
PhysicsBase () | |
Default constructor. | |
virtual void | onBeginEvent () |
This function is called in the very beginning of each Pythia::next call. | |
virtual void | onEndEvent (Status) |
virtual void | onStat () |
This function is called from the Pythia::stat() call. | |
void | registerSubObject (PhysicsBase &pb) |
Register a sub object that should have its information in sync with this. | |
Additional Inherited Members | |
Public Types inherited from PhysicsBase | |
enum | Status { INCOMPLETE = -1, COMPLETE = 0, CONSTRUCTOR_FAILED, INIT_FAILED, LHEF_END, LOWENERGY_FAILED, PROCESSLEVEL_FAILED, PROCESSLEVEL_USERVETO, MERGING_FAILED, PARTONLEVEL_FAILED, PARTONLEVEL_USERVETO, HADRONLEVEL_FAILED, CHECK_FAILED, OTHER_UNPHYSICAL, HEAVYION_FAILED, HADRONLEVEL_USERVETO } |
Enumerate the different status codes the event generation can have. | |
Protected Attributes inherited from PhysicsBase | |
Info * | infoPtr = {} |
Settings * | settingsPtr = {} |
Pointer to the settings database. | |
ParticleData * | particleDataPtr = {} |
Pointer to the particle data table. | |
Logger * | loggerPtr = {} |
Pointer to logger. | |
HadronWidths * | hadronWidthsPtr = {} |
Pointer to the hadron widths data table. | |
Rndm * | rndmPtr = {} |
Pointer to the random number generator. | |
CoupSM * | coupSMPtr = {} |
Pointers to SM and SUSY couplings. | |
CoupSUSY * | coupSUSYPtr = {} |
BeamSetup * | beamSetupPtr = {} |
BeamParticle * | beamAPtr = {} |
BeamParticle * | beamBPtr = {} |
BeamParticle * | beamPomAPtr = {} |
BeamParticle * | beamPomBPtr = {} |
BeamParticle * | beamGamAPtr = {} |
BeamParticle * | beamGamBPtr = {} |
BeamParticle * | beamVMDAPtr = {} |
BeamParticle * | beamVMDBPtr = {} |
PartonSystems * | partonSystemsPtr = {} |
Pointer to information on subcollision parton locations. | |
SigmaTotal * | sigmaTotPtr = {} |
Pointers to the total/elastic/diffractive cross sections. | |
SigmaCombined * | sigmaCmbPtr = {} |
set< PhysicsBase * > | subObjects |
UserHooksPtr | userHooksPtr |
The ParticleDecays class contains the routines to decay a particle.
bool decay | ( | int | iDec, |
Event & | event | ||
) |
Perform a decay of a single particle.
Decay a particle; main method.
Check whether a decay is allowed, given the upcoming decay vertex.
Do not allow resonance decays (beyond handling capability).
Check for zero-mass particles.
Fill the decaying particle in slot 0 of arrays.
Check for oscillations B0 <-> B0bar or B_s0 <-> B_s0bar.
Particle data for decaying particle.
Optionally send on to external decay program.
If it worked, then store the decay products in the event record.
Also mark mother(s) decayed and store daughters.
Check if the particle is tau and let the special tau decayer handle it.
Perform decay using mass dependent widths if possible.
Calculate four-momenta and boost to lab frame.
Insert new particles into event record.
Mark original particle as decayed and set daughters.
Mark as done externally.
Now begin normal internal decay treatment.
Allow up to ten tries to pick a channel.
Remove previous failed channel.
Pick new channel. Read out basics.
Allow up to ten tries for each channel (e.g with different masses).
Extract and store the decay products in local arrays.
Decays into partons usually translate into hadrons.
Need to set colour flow if explicit decay to partons.
Check that enough phase space for decay.
End of inner trial loops. Check if succeeded or not.
Store decay products in the event record.
Pick mass of Dalitz decay. Temporarily change multiplicity.
Do a decay, split by multiplicity.
Kinematics of gamma* -> l- l+ in Dalitz decay. Restore multiplicity.
End of outer trial loops.
If the decay worked, then mark mother decayed and store daughters.
Else remove unused daughters and return failure.
Now finished normal internal decay treatment.
Set decay vertex when this is displaced.
Set lifetime of daughters. Check if they decayed in their turn.
In a decay explicitly to partons then optionally do a shower, and always flag that partonic system should be fragmented.
Photon radiation implemented only for two-body decay to leptons.
For Hidden Valley particles also allow leptons to shower.
Done.
bool decayAll | ( | Event & | event, |
double | minWidth = 0. |
||
) |
Perform decays on all particles in the event.
Loop through all entries to find those that should decay.
void init | ( | TimeShowerPtr | timesDecPtrIn, |
StringFlav * | flavSelPtrIn, | ||
DecayHandlerPtr | decayHandlePtrIn, | ||
vector< int > | handledParticles | ||
) |
Initialize: store pointers and find settings.
Initialize and save pointers.
Save pointers to error messages handling and flavour generation.
Save pointer to timelike shower, as needed in some few decays.
Save pointer for external handling of some decays.
Set which particles should be handled externally.
Safety margin in mass to avoid troubles.
Lifetime and vertex rules for determining whether decay allowed.
B-Bbar mixing parameters.
Suppression of extra-hadron momenta in semileptonic decays.
Selection of multiplicity and colours in "phase space" model.
Minimum energy in system (+ m_q) from StringFragmentation.
Parameters for Dalitz decay virtual gamma mass spectrum.
Allow showers in decays to qqbar/gg/ggg/gammagg.
Use standard decays or dedicated tau decay package
Initialize the dedicated tau decay handler.
|
inlineoverrideprotectedvirtual |
If an object needs to set up infoPtr for sub objects, override this and call registerSubObject for each object in question.
Reimplemented from PhysicsBase.