9 #ifndef Pythia8_SpaceShower_H
10 #define Pythia8_SpaceShower_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/PartonSystems.h"
18 #include "Pythia8/PartonVertex.h"
19 #include "Pythia8/PhysicsBase.h"
20 #include "Pythia8/PythiaStdlib.h"
21 #include "Pythia8/Settings.h"
22 #include "Pythia8/StandardModel.h"
23 #include "Pythia8/UserHooks.h"
24 #include "Pythia8/MergingHooks.h"
25 #include "Pythia8/Weights.h"
33 class SpaceShower :
public PhysicsBase {
37 SpaceShower() =
default;
40 virtual ~SpaceShower() {}
44 void initPtrs(MergingHooksPtr mergingHooksPtrIn,
45 PartonVertexPtr partonVertexPtrIn,
46 WeightContainer* weightContainerPtrIn) {
47 coupSMPtr = infoPtr->coupSMPtr;
48 mergingHooksPtr = mergingHooksPtrIn;
49 partonVertexPtr = partonVertexPtrIn;
50 weightContainerPtr = weightContainerPtrIn;
54 void reassignBeamPtrs( BeamParticle* beamAPtrIn, BeamParticle* beamBPtrIn,
55 int beamOffsetIn = 0) {beamAPtr = beamAPtrIn; beamBPtr = beamBPtrIn;
56 beamOffset = beamOffsetIn;}
60 virtual void init(BeamParticle* , BeamParticle* ) {}
64 virtual bool limitPTmax(
Event& ,
double = 0.,
double = 0.) {
return true;}
68 virtual void prepare(
int ,
Event& ,
bool =
true) {}
72 virtual void update(
int ,
Event&,
bool =
false) {}
76 virtual double pTnext(
Event& ,
double ,
double ,
int = -1,
bool =
false)
81 virtual bool branch(
Event& ) {
return true;}
84 virtual void list()
const {}
87 virtual bool initUncertainties() {
return false;}
90 virtual bool doRestart()
const {
return false;}
93 virtual bool wasGamma2qqbar() {
return false; }
96 virtual bool getHasWeaklyRadiated() {
return false;}
99 virtual int system()
const {
return 0;}
102 virtual double enhancePTmax()
const {
return 1.;}
113 virtual Event clustered(
const Event& ,
int ,
int ,
int ,
string )
124 virtual map<string, double> getStateVariables (
const Event& ,
int ,
int ,
125 int ,
string ) {
return map<string,double>();}
129 virtual bool isSpacelike(
const Event&,
int,
int,
int,
string)
134 virtual vector<string> getSplittingName(
const Event& ,
int ,
int ,
int )
135 {
return vector<string>();}
139 virtual double getSplittingProb(
const Event& ,
int ,
int ,
int ,
string )
142 virtual bool allowedSplitting(
const Event& ,
int ,
int)
144 virtual vector<int> getRecoilers(
const Event&,
int,
int,
string)
145 {
return vector<int>(); }
148 MergingHooksPtr mergingHooksPtr{};
150 WeightContainer* weightContainerPtr{};
158 PartonVertexPtr partonVertexPtr{};
161 bool doUncertainties{}, uVarMuSoftCorr{}, uVarMPIshowers{};
162 int nUncertaintyVariations{}, nVarQCD{}, uVarNflavQ{};
163 double dASmax{}, cNSpTmin{}, uVarpTmin2{}, overFactor{};
164 map<int,double> varG2GGmuRfac, varQ2QGmuRfac, varQ2GQmuRfac, varG2QQmuRfac,
165 varX2XGmuRfac, varG2GGcNS, varQ2QGcNS, varQ2GQcNS, varG2QQcNS, varX2XGcNS;
166 map<int,double>* varPDFplus;
167 map<int,double>* varPDFminus;
168 map<int,double>* varPDFmember;
176 #endif // Pythia8_SpaceShower_H