10 #ifndef Pythia8_ParticleDecays_H
11 #define Pythia8_ParticleDecays_H
15 #include "FragmentationFlavZpT.h"
17 #include "ParticleData.h"
18 #include "PythiaStdlib.h"
20 #include "TimeShower.h"
21 #include "TauDecays.h"
35 virtual bool decay(vector<int>& idProd, vector<double>& mProd,
36 vector<Vec4>& pProd,
int iDec,
const Event& event) = 0;
61 vector<int> handledParticles);
64 bool decay(
int iDec,
Event& event);
67 bool moreToDo()
const {
return hasPartons && keepPartons;}
72 static const int NTRYDECAY, NTRYPICK, NTRYMEWT, NTRYDALITZ;
73 static const double MSAFEDALITZ, WTCORRECTION[11];
97 bool limitTau0, limitTau, limitRadius, limitCylinder, limitDecay,
100 double mSafety, tau0Max, tauMax, rMax, xyMax, zMax, xBdMix, xBsMix,
101 sigmaSoft, multIncrease, multIncreaseWeak, multRefMass, multGoffset,
102 colRearrange, stopMass, sRhoDal, wRhoDal;
105 bool hasPartons, keepPartons;
106 int idDec, meMode, mult;
108 vector<int> iProd, idProd, cols, acols, idPartons;
109 vector<double> mProd, mInv, rndmOrd;
110 vector<Vec4> pInv, pProd;
111 vector<FlavContainer> flavEnds;
120 bool checkVertex(
Particle& decayer);
126 bool oneBody(
Event& event);
129 bool twoBody(
Event& event);
132 bool threeBody(
Event& event);
135 bool mGenerator(
Event& event);
141 bool dalitzKinematics(
Event& event);
147 bool setColours(
Event& event);
155 #endif // Pythia8_ParticleDecays_H