9 #ifndef Pythia8_ProcessLevel_H
10 #define Pythia8_ProcessLevel_H
12 #include "Pythia8/Basics.h"
13 #include "Pythia8/BeamParticle.h"
14 #include "Pythia8/Event.h"
15 #include "Pythia8/Info.h"
16 #include "Pythia8/ParticleData.h"
17 #include "Pythia8/PartonDistributions.h"
18 #include "Pythia8/ProcessContainer.h"
19 #include "Pythia8/PythiaStdlib.h"
20 #include "Pythia8/ResonanceDecays.h"
21 #include "Pythia8/Settings.h"
22 #include "Pythia8/SigmaTotal.h"
23 #include "Pythia8/SusyCouplings.h"
24 #include "Pythia8/SLHAinterface.h"
25 #include "Pythia8/StandardModel.h"
26 #include "Pythia8/UserHooks.h"
40 ProcessLevel() : iLHACont(-1) {}
46 bool init( Info* infoPtrIn, Settings& settings,
47 ParticleData* particleDataPtrIn, Rndm* rndmPtrIn,
48 BeamParticle* beamAPtrIn, BeamParticle* beamBPtrIn,
49 Couplings* couplingsPtrIn, SigmaTotal* sigmaTotPtrIn,
bool doLHAin,
50 SLHAinterface* slhaInterfacePtrIn, UserHooks* userHooksPtrIn,
51 vector<SigmaProcess*>& sigmaPtrs, ostream& os = cout);
54 void setLHAPtr( LHAup* lhaUpPtrIn) {lhaUpPtr = lhaUpPtrIn;
55 if (iLHACont >= 0) containerPtrs[iLHACont]->setLHAPtr(lhaUpPtr);}
58 bool next(
Event& process);
61 bool nextLHAdec(
Event& process);
67 void statistics(
bool reset =
false, ostream& os = cout);
70 void resetStatistics();
73 void findJunctions(
Event& junEvent);
76 void initDecays( Info* infoPtrIn, ParticleData* particleDataPtrIn,
77 Rndm* rndmPtrIn, LHAup* lhaUpPtrIn) { infoPtr = infoPtrIn;
78 resonanceDecays.init( infoPtrIn, particleDataPtrIn, rndmPtrIn);
79 containerLHAdec.setLHAPtr(lhaUpPtrIn, particleDataPtrIn); }
80 bool nextDecays(
Event& process) {
return resonanceDecays.next( process);}
85 static const int MAXLOOP;
88 bool doSecondHard, doSameCuts, allHardSame, noneHardSame,
89 someHardSame, cutsAgree, cutsOverlap, doResDecays;
90 int nImpact, startColTag;
91 double mHatMin1, mHatMax1, pTHatMin1, pTHatMax1, mHatMin2, mHatMax2,
92 pTHatMin2, pTHatMax2, sigmaND, sumImpactFac, sum2ImpactFac;
95 vector<ProcessContainer*> containerPtrs;
96 int iContainer, iLHACont;
100 vector<ProcessContainer*> container2Ptrs;
105 ProcessContainer containerLHAdec;
111 ParticleData* particleDataPtr;
117 BeamParticle* beamAPtr;
118 BeamParticle* beamBPtr;
121 Couplings* couplingsPtr;
124 SigmaTotal* sigmaTotPtr;
127 SLHAinterface* slhaInterfacePtr;
130 UserHooks* userHooksPtr;
136 ResonanceDecays resonanceDecays;
139 bool nextOne(
Event& process);
142 bool nextTwo(
Event& process);
145 void combineProcessRecords(
Event& process,
Event& process2);
148 bool checkColours(
Event& process);
151 void statistics2(
bool reset, ostream& os = cout);
159 #endif // Pythia8_ProcessLevel_H