PYTHIA  8.303
Public Member Functions | Protected Member Functions | List of all members
ParticleDecays Class Reference

The ParticleDecays class contains the routines to decay a particle. More...

#include <ParticleDecays.h>

Inheritance diagram for ParticleDecays:

Public Member Functions

 ParticleDecays ()
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

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 {
 Enumerate the different status codes the event generation can have.
- Protected Attributes inherited from PhysicsBase
InfoinfoPtr = {}
SettingssettingsPtr = {}
 Pointer to the settings database.
ParticleDataparticleDataPtr = {}
 Pointer to the particle data table.
HadronWidthshadronWidthsPtr = {}
 Pointer to the hadron widths data table.
RndmrndmPtr = {}
 Pointer to the random number generator.
CoupSMcoupSMPtr = {}
 Pointers to SM and SUSY couplings.
CoupSUSYcoupSUSYPtr = {}
BeamParticlebeamAPtr = {}
BeamParticlebeamBPtr = {}
BeamParticlebeamPomAPtr = {}
BeamParticlebeamPomBPtr = {}
BeamParticlebeamGamAPtr = {}
BeamParticlebeamGamBPtr = {}
BeamParticlebeamVMDAPtr = {}
BeamParticlebeamVMDBPtr = {}
PartonSystemspartonSystemsPtr = {}
 Pointer to information on subcollision parton locations.
SigmaTotalsigmaTotPtr = {}
 Pointer to the total/elastic/diffractive cross sections.
set< PhysicsBase * > subObjects
UserHooksPtr userHooksPtr

Detailed Description

The ParticleDecays class contains the routines to decay a particle.

Member Function Documentation

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).

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.


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.

virtual void onInitInfoPtr ( )

If an object needs to set up infoPtr for sub objects, override this and call registerSubObject for each object in question.

Reimplemented from PhysicsBase.

The documentation for this class was generated from the following files: