PYTHIA
8.312
|
#include <TauDecays.h>
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< HelicityParticle > | createChildren (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 | |
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 |
TauDecays class. This class decays tau leptons, with helicity information.
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.