9 #ifndef Pythia8_TimeShower_H
10 #define Pythia8_TimeShower_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/PhysicsBase.h"
19 #include "Pythia8/PythiaStdlib.h"
20 #include "Pythia8/PartonVertex.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 TimeShower :
public PhysicsBase {
38 TimeShower() =
default;
41 virtual ~TimeShower() {}
45 void initPtrs(MergingHooksPtr mergingHooksPtrIn,
46 PartonVertexPtr partonVertexPtrIn,
47 WeightContainer* weightContainerPtrIn) {
48 coupSMPtr = infoPtr->coupSMPtr;
49 mergingHooksPtr = mergingHooksPtrIn;
50 partonVertexPtr = partonVertexPtrIn;
51 weightContainerPtr = weightContainerPtrIn;
55 void reassignBeamPtrs( BeamParticle* beamAPtrIn, BeamParticle* beamBPtrIn,
56 int beamOffsetIn = 0) {beamAPtr = beamAPtrIn; beamBPtr = beamBPtrIn;
57 beamOffset = beamOffsetIn;}
61 virtual void init( BeamParticle* = 0, BeamParticle* = 0) {}
65 virtual bool limitPTmax(
Event& ,
double = 0.,
double = 0.) {
return true;}
69 virtual int shower(
int ,
int ,
Event& ,
double ,
int = 0) {
return 0;}
73 virtual int showerQED(
int ,
int ,
Event& ,
double ) {
return 0;}
77 virtual int showerQEDafterRemnants(
Event&) {
return 0; }
81 virtual void prepareGlobal(
Event& ) {}
85 virtual void prepare(
int ,
Event& ,
bool =
true) {}
89 virtual void rescatterUpdate(
int ,
Event& ) {}
93 virtual void update(
int ,
Event& ,
bool =
false) {}
97 virtual double pTnext(
Event& ,
double ,
double ,
bool =
false,
bool =
false)
102 virtual bool branch(
Event& ,
bool =
false) {
return true;}
105 virtual void list()
const {}
108 virtual bool initUncertainties() {
return false;}
111 virtual bool getHasWeaklyRadiated() {
return false;}
114 virtual int system()
const {
return 0;}
117 virtual double enhancePTmax() {
return 1.;}
120 virtual double pTLastInShower() {
return 0.;}
131 virtual Event clustered(
const Event& ,
int ,
int ,
int ,
string )
142 virtual map<string, double> getStateVariables (
const Event& ,
int ,
int ,
143 int ,
string ) {
return map<string,double>();}
147 virtual bool isTimelike(
const Event& ,
int ,
int ,
int ,
string )
152 virtual vector<string> getSplittingName(
const Event& ,
int,
int ,
int)
153 {
return vector<string>();}
157 virtual double getSplittingProb(
const Event& ,
int ,
int ,
int ,
string )
159 virtual bool allowedSplitting(
const Event& ,
int ,
int)
161 virtual vector<int> getRecoilers(
const Event&,
int,
int,
string)
162 {
return vector<int>(); }
165 MergingHooksPtr mergingHooksPtr{};
167 WeightContainer* weightContainerPtr{};
175 PartonVertexPtr partonVertexPtr{};
178 bool doUncertainties{}, uVarMuSoftCorr{}, uVarMPIshowers{},
179 noResVariations{}, noProcVariations{};
180 int nUncertaintyVariations{}, nVarQCD{}, uVarNflavQ{};
181 double dASmax{}, cNSpTmin{}, uVarpTmin2{}, overFactor{};
182 map<int,double> varG2GGmuRfac, varQ2QGmuRfac, varG2QQmuRfac, varX2XGmuRfac,
183 varG2GGcNS, varQ2QGcNS, varG2QQcNS, varX2XGcNS;
184 map<int,double>* varPDFplus;
185 map<int,double>* varPDFminus;
186 map<int,double>* varPDFmember;
194 #endif // Pythia8_TimeShower_H