PYTHIA  8.311
Public Member Functions | List of all members
TauDecays Class Reference

#include <TauDecays.h>

Inheritance diagram for TauDecays:
PhysicsBase

Public Member Functions

 TauDecays ()
 Constructor and destructor.
 
void init ()
 Initializer. More...
 
bool decay (int iDec, Event &event)
 Decay a tau or correlated tau pair. More...
 
bool internalMechanism (Event &event)
 Determine internal or external polarization and correlation mechanism. More...
 
bool externalMechanism (Event &event)
 
vector< HelicityParticlecreateChildren (HelicityParticle parent)
 Choose a decay channel for a particle. More...
 
void isotropicDecay (vector< HelicityParticle > &p)
 Perform an N-body isotropic decay. More...
 
void writeDecay (Event &event, vector< HelicityParticle > &p)
 Write the decay to event record. More...
 
- 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
 

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 Member Functions inherited from PhysicsBase
 PhysicsBase ()
 Default constructor.
 
virtual void onInitInfoPtr ()
 
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.
 
- Protected Attributes inherited from PhysicsBase
InfoinfoPtr = {}
 
SettingssettingsPtr = {}
 Pointer to the settings database.
 
ParticleDataparticleDataPtr = {}
 Pointer to the particle data table.
 
LoggerloggerPtr = {}
 Pointer to logger.
 
HadronWidthshadronWidthsPtr = {}
 Pointer to the hadron widths data table.
 
RndmrndmPtr = {}
 Pointer to the random number generator.
 
CoupSMcoupSMPtr = {}
 Pointers to SM and SUSY couplings.
 
CoupSUSYcoupSUSYPtr = {}
 
BeamSetupbeamSetupPtr = {}
 
BeamParticlebeamAPtr = {}
 
BeamParticlebeamBPtr = {}
 
BeamParticlebeamPomAPtr = {}
 
BeamParticlebeamPomBPtr = {}
 
BeamParticlebeamGamAPtr = {}
 
BeamParticlebeamGamBPtr = {}
 
BeamParticlebeamVMDAPtr = {}
 
BeamParticlebeamVMDBPtr = {}
 
PartonSystemspartonSystemsPtr = {}
 Pointer to information on subcollision parton locations.
 
SigmaTotalsigmaTotPtr = {}
 Pointers to the total/elastic/diffractive cross sections.
 
SigmaCombinedsigmaCmbPtr = {}
 
set< PhysicsBase * > subObjects
 
UserHooksPtr userHooksPtr
 

Detailed Description

TauDecays class. This class decays tau leptons, with helicity information.

Member Function Documentation

vector< HelicityParticle > createChildren ( HelicityParticle  parent)

Choose a decay channel for a particle.

Given a HelicityParticle parent, select the decay channel and return a vector of HelicityParticles containing the children, with the parent particle duplicated in the first entry of the vector.

Initial values.

Set the parent as incoming.

Setup decay data for the decaying particle.

Initialize the decay data.

Try to pick a decay channel.

Pick a decay channel.

Select children masses.

Grab child ID.

Flip sign for anti-particle decay.

Grab child mass.

Push back the child into the children vector.

Check there is enough phase space for decay.

For now we just check kinematically available.

End pick a channel.

Swap the children ordering for muons.

Set the decay matrix element. Two body decays.

Three body decays.

Leptonic decay.

Two meson decay via vector meson.

Two meson decay via vector or scalar meson.

Flat phase space.

Four body decays.

Three pion CLEO decay.

Three meson decay with one or more kaons decay.

Generic three meson decay.

Two pions and photon decay.

Flat phase space.

Five body decays.

Four pion Novosibirsk current.

Flat phase space.

Six body decays.

Four pion Novosibirsk current.

Flat phase space.

Flat phase space.

Done.

bool decay ( int  idxOut1,
Event event 
)

Decay a tau or correlated tau pair.

Main method of the TauDecays class. Pass the index of the tau requested to be decayed along with the event record in which the tau exists. The tau is then decayed with proper spin correlations as well any partner. The children of the decays are written to the event record, and if the decays were succesful, a return value of true is supplied.

Set the outgoing particles of the hard process.

If more then one sister, select by preference tau, nu_tau, lep, nu_lep.

Set the mediator of the hard process (also handle no mediator).

Set the incoming particles of the hard process.

Set the particles vector.

Determine if correlated (allow lepton flavor violating partner).

Check partner vertex is within limits.

Check partner can decay.

Check partner not EW showered, set decay matrix otherwise.

Set the production mechanism.

Unknown production mechanisms, treat as vector boson decay.

Undecay correlated partner if already decayed.

Pick the first tau to decay.

Calculate the density matrix (if needed) and select channel.

Decay the first tau.

If a correlated second tau exists, decay that tau as well.

Calculate the first tau decay matrix.

Update the decay matrix for the tau.

Switch the taus.

Calculate second tau's density matrix.

Decay the second tau.

Done.

bool externalMechanism ( Event event)

Determine the tau polarization and tau decay correlation using the provided SPINUP digits interpreted as helicity states.

Uncorrelated, take directly from tau SPINUP if valid.

Correlated, take from mother SPINUP if valid.

Unknown mechanism.

void init ( )

Initializer.

Initialize the TauDecays class with the necessary pointers to info, particle data, random numbers, and Standard Model couplings. Additionally, the necessary matrix elements are initialized with the Standard Model couplings, and particle data pointers.

Initialize the hard matrix elements.

Initialize the tau decay matrix elements.

User selected tau settings.

Parameters to determine if correlated partner should decay.

bool internalMechanism ( Event event)

Determine internal or external polarization and correlation mechanism.

Determine the tau polarization and tau decay correlation using the internal helicity matrix elements.

Produced from a photon, Z, or Z'.

Produced from photons: t-channel.

Produced from fermions: s-channel.

Unknown photon production.

Produced from a W or W'.

Produced from fermions: s-channel.

Unknown W production.

Produced from a Higgs.

Produced from a D or B hadron decay with a single tau.

D or B meson decays into neutrino + tau + meson.

D or B meson decays into neutrino + tau.

Unknown production.

void isotropicDecay ( vector< HelicityParticle > &  children)

Perform an N-body isotropic decay.

N-body decay using the M-generator algorithm described in "Monte Carlo Phase Space" by F. James in CERN 68-15, May 1968. Taken from ParticleDecays::mGenerator but modified to handle spin particles. Given a vector of HelicityParticles where the first particle is the mother, the remaining particles are decayed isotropically.

Mother and sum daughter masses.

Begin setup of intermediate invariant masses.

Calculate the maximum weight in the decay.

Begin loop to find the set of intermediate invariant masses.

Find and order random numbers in descending order.

Translate into intermediate masses and find weight.

If rejected, try again with new invariant masses.

Perform two-particle decays in the respective rest frame.

Fill four-momenta

Boost decay products to the mother rest frame.

Boost decay products to the current frame.

Done.

void writeDecay ( Event event,
vector< HelicityParticle > &  children 
)

Write the decay to event record.

Write the vector of HelicityParticles to the event record, excluding the first particle. Set the lifetime and production vertex of the particles and mark the first particle of the vector as decayed.

Set additional information and append children to event.

Set child lifetime.

Set child production vertex.

Append child to record.

Mark the parent as decayed and set children.


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