9 #ifndef Pythia8_HadronLevel_H
10 #define Pythia8_HadronLevel_H
12 #include "Pythia8/Basics.h"
13 #include "Pythia8/BoseEinstein.h"
14 #include "Pythia8/Event.h"
15 #include "Pythia8/FragmentationFlavZpT.h"
16 #include "Pythia8/FragmentationSystems.h"
17 #include "Pythia8/HadronScatter.h"
18 #include "Pythia8/HiddenValleyFragmentation.h"
19 #include "Pythia8/Info.h"
20 #include "Pythia8/MiniStringFragmentation.h"
21 #include "Pythia8/ParticleData.h"
22 #include "Pythia8/ParticleDecays.h"
23 #include "Pythia8/PythiaStdlib.h"
24 #include "Pythia8/RHadrons.h"
25 #include "Pythia8/Settings.h"
26 #include "Pythia8/StringFragmentation.h"
27 #include "Pythia8/TimeShower.h"
44 bool init(Info* infoPtrIn, Settings& settings,
45 ParticleData* particleDataPtrIn, Rndm* rndmPtrIn,
46 Couplings* couplingsPtrIn, TimeShower* timesDecPtr,
47 RHadrons* rHadronsPtrIn, DecayHandler* decayHandlePtr,
48 vector<int> handledParticles);
51 StringFlav* getStringFlavPtr() {
return &flavSel;}
54 bool next(
Event& event);
57 bool moreDecays(
Event& event);
62 static const int NTRYJNREST;
63 static const double JJSTRINGM2MAX, JJSTRINGM2FRAC, CONVJNREST, MTHAD;
66 bool doHadronize, doDecay, doBoseEinstein, allowRH;
67 double mStringMin, eNormJunction, widthSepBE;
70 bool doHadronScatter, hsAfterDecay;
76 ParticleData* particleDataPtr;
82 Couplings* couplingsPtr;
88 vector<int> iColEnd, iAcolEnd, iColAndAcol, iParton,
89 iJunLegA, iJunLegB, iJunLegC,
90 iAntiLegA, iAntiLegB, iAntiLegC, iGluLeg;
92 vector< vector<int > > iPartonJun, iPartonAntiJun;
94 vector<double> m2Pair;
97 StringFragmentation stringFrag;
100 MiniStringFragmentation ministringFrag;
103 ParticleDecays decays;
106 HadronScatter hadronScatter;
109 BoseEinstein boseEinstein;
117 RHadrons* rHadronsPtr;
120 HiddenValleyFragmentation hiddenvalleyFrag;
121 bool useHiddenValley;
124 bool decayOctetOnia(
Event& event);
127 bool findSinglets(
Event& event);
130 bool traceFromCol(
int indxCol,
Event& event,
int iJun = -1,
int iCol = -1);
131 bool traceFromAcol(
int indxCol,
Event& event,
int iJun = -1,
int iCol = -1);
132 bool traceInLoop(
int indxCol,
int indxAcol,
Event& event);
135 bool splitJunctionPair(
Event& event);
143 #endif // Pythia8_HadronLevel_H