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/PhysicsBase.h"
19 #include "Pythia8/ProcessContainer.h"
20 #include "Pythia8/PythiaStdlib.h"
21 #include "Pythia8/ResonanceDecays.h"
22 #include "Pythia8/Settings.h"
23 #include "Pythia8/SigmaTotal.h"
24 #include "Pythia8/SusyCouplings.h"
25 #include "Pythia8/SLHAinterface.h"
26 #include "Pythia8/StandardModel.h"
27 #include "Pythia8/UserHooks.h"
36 class ProcessLevel :
public PhysicsBase {
41 ProcessLevel() =
default;
47 bool init(
bool doLHAin, SLHAinterface* slhaInterfacePtrIn,
48 vector<SigmaProcess*>& sigmaPtrs, vector<PhaseSpace*>& phaseSpacePtrs);
51 void setLHAPtr( LHAupPtr lhaUpPtrIn) {lhaUpPtr = lhaUpPtrIn;
52 if (iLHACont >= 0) containerPtrs[iLHACont]->setLHAPtr(lhaUpPtr);}
55 bool next(
Event& process);
58 bool nextLHAdec(
Event& process);
61 void accumulate(
bool doAccumulate =
true);
64 void statistics(
bool reset =
false);
67 void resetStatistics();
70 void findJunctions(
Event& junEvent);
73 void initDecays( LHAupPtr lhaUpPtrIn) {
74 containerLHAdec.setLHAPtr(lhaUpPtrIn, particleDataPtr, settingsPtr,
77 bool nextDecays(
Event& process) {
return resonanceDecays.next( process);}
81 virtual void onInitInfoPtr()
override {
82 registerSubObject(resonanceDecays);
83 registerSubObject(gammaKin);
89 static const int MAXLOOP;
92 bool doSecondHard, doSameCuts, allHardSame, noneHardSame, someHardSame,
93 cutsAgree, cutsOverlap, doResDecays, doISR, doMPI, doWt2;
95 double maxPDFreweight, mHatMin1, mHatMax1, pTHatMin1, pTHatMax1, mHatMin2,
96 mHatMax2, pTHatMin2, pTHatMax2, sigmaND;
103 vector<ProcessContainer*> containerPtrs;
104 int iContainer, iLHACont = -1;
108 vector<ProcessContainer*> container2Ptrs;
113 ProcessContainer containerLHAdec;
116 SLHAinterface* slhaInterfacePtr;
122 ResonanceDecays resonanceDecays;
125 GammaKinematics gammaKin;
128 bool nextOne(
Event& process);
131 bool nextTwo(
Event& process);
134 bool roomForRemnants();
137 void combineProcessRecords(
Event& process,
Event& process2);
140 bool checkColours(
Event& process);
143 void statistics2(
bool reset);
151 #endif // Pythia8_ProcessLevel_H