10 #ifndef Pythia8_ParticleDecays_H 11 #define Pythia8_ParticleDecays_H 13 #include "Pythia8/Basics.h" 14 #include "Pythia8/Event.h" 15 #include "Pythia8/FragmentationFlavZpT.h" 16 #include "Pythia8/Info.h" 17 #include "Pythia8/ParticleData.h" 18 #include "Pythia8/PhysicsBase.h" 19 #include "Pythia8/PythiaStdlib.h" 20 #include "Pythia8/Settings.h" 21 #include "Pythia8/TimeShower.h" 22 #include "Pythia8/TauDecays.h" 40 virtual bool decay(vector<int>& , vector<double>& , vector<Vec4>& ,
41 int ,
const Event& ) {
return false;}
45 virtual bool chainDecay(vector<int>& , vector<int>& , vector<double>& ,
46 vector<Vec4>& ,
int ,
const Event& ) {
return false;}
63 limitTau0(), limitTau(),
64 limitRadius(), limitCylinder(), limitDecay(), mixB(), doFSRinDecays(),
65 doGammaRad(), tauMode(), mSafety(), tau0Max(), tauMax(), rMax(), xyMax(),
66 zMax(), xBdMix(), xBsMix(), sigmaSoft(), multIncrease(),
67 multIncreaseWeak(), multRefMass(), multGoffset(), colRearrange(),
68 stopMass(), sRhoDal(), wRhoDal(), hasPartons(), keepPartons(), idDec(),
69 meMode(), mult(), scale(), decDataPtr() {}
72 void init(TimeShowerPtr timesDecPtrIn,
StringFlav* flavSelPtrIn,
78 bool decay(
int iDec,
Event& event,
bool allowPartons =
true);
81 bool decayAll(
Event& event,
double minWidth = 0.);
84 bool moreToDo()
const {
return hasPartons && keepPartons;}
89 registerSubObject(tauDecayer); }
94 static const int NTRYDECAY, NTRYPICK, NTRYMEWT, NTRYDALITZ;
95 static const double MSAFEDALITZ, WTCORRECTION[11];
98 TimeShowerPtr timesDecPtr;
104 DecayHandlerPtr decayHandlePtr;
107 bool limitTau0, limitTau, limitRadius, limitCylinder, limitDecay,
108 mixB, doFSRinDecays, doGammaRad;
110 double mSafety, tau0Max, tauMax, rMax, xyMax, zMax, xBdMix, xBsMix,
111 sigmaSoft, multIncrease, multIncreaseWeak, multRefMass, multGoffset,
112 colRearrange, stopMass, sRhoDal, wRhoDal;
115 bool hasPartons, keepPartons;
116 int idDec, meMode, mult;
118 vector<int> iProd, idProd, motherProd, cols, acols, idPartons;
119 vector<double> mProd, mInv, rndmOrd;
120 vector<Vec4> pInv, pProd;
121 vector<FlavContainer> flavEnds;
130 bool checkVertex(
Particle& decayer);
136 bool oneBody(
Event& event);
139 bool twoBody(
Event& event);
142 bool threeBody(
Event& event);
145 bool mGenerator(
Event& event);
151 bool dalitzKinematics(
Event& event);
157 bool setColours(
Event& event);
virtual void onInitInfoPtr() override
Definition: ParticleDecays.h:88
virtual ~DecayHandler()
Destructor.
Definition: ParticleDecays.h:36
This class holds info on a single particle species.
Definition: ParticleData.h:125
Definition: PhysicsBase.h:26
The ParticleDecays class contains the routines to decay a particle.
Definition: ParticleDecays.h:57
The Event class holds all info on the generated event.
Definition: Event.h:408
virtual bool decay(vector< int > &, vector< double > &, vector< Vec4 > &, int, const Event &)
Definition: ParticleDecays.h:40
virtual bool chainDecay(vector< int > &, vector< int > &, vector< double > &, vector< Vec4 > &, int, const Event &)
Definition: ParticleDecays.h:45
Definition: TauDecays.h:27
bool moreToDo() const
Did decay result in new partons to hadronize?
Definition: ParticleDecays.h:84
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
ParticleDecays()
Constructor.
Definition: ParticleDecays.h:62
virtual vector< int > handledParticles()
A virtual method, to return the particles the handler should decay.
Definition: ParticleDecays.h:49
The StringFlav class is used to select quark and hadron flavours.
Definition: FragmentationFlavZpT.h:76
Definition: ParticleDecays.h:31