10 #ifndef Pythia8_SimpleSpaceShower_H 11 #define Pythia8_SimpleSpaceShower_H 13 #include "Pythia8/SpaceShower.h" 14 #include "Pythia8/SimpleWeakShowerMEs.h" 28 int iRecoilerIn = 0,
double pTmaxIn = 0.,
int colTypeIn = 0,
29 int chgTypeIn = 0,
int weakTypeIn = 0,
int MEtypeIn = 0,
30 bool normalRecoilIn =
true,
int weakPolIn = 0,
31 int iColPartnerIn = 0,
int idColPartnerIn = 0) :
32 system(systemIn), side(sideIn), iRadiator(iRadiatorIn),
33 iRecoiler(iRecoilerIn), pTmax(pTmaxIn), colType(colTypeIn),
34 chgType(chgTypeIn), weakType(weakTypeIn), MEtype(MEtypeIn),
35 normalRecoil(normalRecoilIn), weakPol(weakPolIn),
36 iColPartner(iColPartnerIn), idColPartner(idColPartnerIn),
37 nBranch(0), idDaughter(), idMother(), idSister(), iFinPol(), x1(), x2(),
38 m2Dip(), pT2(), z(), xMo(), Q2(), mSister(), m2Sister(), pT2corr(),
39 pT2Old(0.), zOld(0.5), asymPol(), m2IF(), mColPartner(),
43 void store(
int idDaughterIn,
int idMotherIn,
int idSisterIn,
44 double x1In,
double x2In,
double m2DipIn,
double pT2In,
double zIn,
45 double xMoIn,
double Q2In,
double mSisterIn,
double m2SisterIn,
46 double pT2corrIn,
int iColPartnerIn,
double m2IFIn,
double mColPartnerIn)
47 {idDaughter = idDaughterIn; idMother = idMotherIn;
48 idSister = idSisterIn; x1 = x1In; x2 = x2In; m2Dip = m2DipIn;
49 pT2 = pT2In; z = zIn; xMo = xMoIn; Q2 = Q2In; mSister = mSisterIn;
50 m2Sister = m2SisterIn; pT2corr = pT2corrIn; iColPartner = iColPartnerIn;
51 m2IF = m2IFIn; mColPartner = mColPartnerIn;}
54 int system, side, iRadiator, iRecoiler;
56 int colType, chgType, weakType, MEtype;
58 int weakPol, iColPartner, idColPartner;
61 int nBranch, idDaughter, idMother, idSister, iFinPol;
62 double x1, x2, m2Dip, pT2, z, xMo, Q2, mSister, m2Sister, pT2corr,
63 pT2Old, zOld, asymPol, m2IF, mColPartner;
80 iSysSel(), pTmaxFudge(), doQCDshower(), doQEDshowerByQ(), doQEDshowerByL(),
81 useSamePTasMPI(), doWeakShower(), doMEcorrections(), doMEafterFirst(),
82 doPhiPolAsym(), doPhiPolAsymHard(), doPhiIntAsym(), doRapidityOrder(),
83 useFixedFacScale(), doSecondHard(), canVetoEmission(), hasUserHooks(),
84 alphaSuseCMW(), singleWeakEmission(), vetoWeakJets(), weakExternal(),
85 doRapidityOrderMPI(), doMPI(), doDipoleRecoil(), doPartonVertex(),
86 pTmaxMatch(), pTdampMatch(), alphaSorder(), alphaSnfmax(), alphaEMorder(),
87 nQuarkIn(), enhanceScreening(), weakMode(), pT0paramMode(), pTdampFudge(),
88 mc(), mb(), m2c(), m2b(), renormMultFac(), factorMultFac(),
89 fixedFacScale2(), alphaSvalue(), alphaS2pi(), Lambda3flav(), Lambda4flav(),
90 Lambda5flav(), Lambda3flav2(), Lambda4flav2(), Lambda5flav2(), pT0Ref(),
91 ecmRef(), ecmPow(), pTmin(), sCM(), eCM(), pT0(), pTminChgQ(), pTminChgL(),
92 pT20(), pT2min(), pT2minChgQ(), pT2minChgL(), pTweakCut(), pT2weakCut(),
93 pTmaxFudgeMPI(), strengthIntAsym(), weakEnhancement(), mZ(), gammaZ(),
94 thetaWRat(), mW(), gammaW(), weakMaxWt(), vetoWeakDeltaR2(), sideA(),
95 twoHard(), dopTlimit1(), dopTlimit2(), dopTdamp(), tChannel(),
96 doUncertaintiesNow(), iNow(), iRec(), idDaughter(), nRad(), idResFirst(),
97 idResSecond(), xDaughter(), x1Now(), x2Now(),
98 m2ColPair(), mColPartner(), m2ColPartner(), m2Dip(), m2Rec(), pT2damp(),
99 pTbegRef(), pdfScale2(), doTrialNow(), canEnhanceEmission(),
100 canEnhanceTrial(), canEnhanceET(), iDipNow(), iSysNow(), dipEndNow(),
101 iDipSel(), dipEndSel() { beamOffset = 0; pdfMode = 0; }
111 virtual bool limitPTmax(
Event& event,
double Q2Fac = 0.,
112 double Q2Ren = 0.)
override;
115 virtual void prepare(
int iSys,
Event& event,
bool limitPTmaxIn =
true)
119 virtual void update(
int iSys,
Event& event,
bool hasWeakRad =
false)
123 virtual double pTnext(
Event& event,
double pTbegAll,
double pTendAll,
124 int nRadIn = -1,
bool doTrialIn =
false)
override;
127 virtual bool branch(
Event& event)
override;
130 virtual void list()
const override;
133 virtual bool initUncertainties()
override;
136 virtual bool initEnhancements()
override;
139 virtual bool doRestart()
const override {
return rescatterFail;}
148 virtual int system()
const override {
return iSysSel;}
156 double noEmissionProbability(
double pTbegAll,
double pTendAll,
double m2dip,
157 int id,
int type,
double s = -1.,
double x = -1.)
override;
158 double pTnext( vector<SpaceDipoleEnd> dipEnds,
Event event,
double pTbegAll,
159 double pTendAll,
double m2dip,
int id,
int type,
double s = -1.,
166 static const int MAXLOOPTINYPDF;
167 static const double MCMIN, MBMIN, CTHRESHOLD, BTHRESHOLD, EVALPDFSTEP,
168 TINYPDF, TINYKERNELPDF, TINYPT2, HEAVYPT2EVOL, HEAVYXEVOL,
169 EXTRASPACEQ, LAMBDA3MARGIN, PT2MINWARN, LEPTONXMIN, LEPTONXMAX,
170 LEPTONPT2MIN, LEPTONFUDGE, WEAKPSWEIGHT, HEADROOMQ2Q, HEADROOMQ2G,
171 HEADROOMG2G, HEADROOMG2Q, HEADROOMHQG, REJECTFACTOR, PROBLIMIT;
174 bool rescatterFail, gamma2qqbar, hasWeaklyRadiated;
179 bool doQCDshower, doQEDshowerByQ, doQEDshowerByL, useSamePTasMPI,
180 doWeakShower, doMEcorrections, doMEafterFirst, doPhiPolAsym,
181 doPhiPolAsymHard, doPhiIntAsym, doRapidityOrder, useFixedFacScale,
182 doSecondHard, canVetoEmission, hasUserHooks, alphaSuseCMW,
183 singleWeakEmission, vetoWeakJets, weakExternal, doRapidityOrderMPI,
184 doMPI, doDipoleRecoil, doPartonVertex;
186 int pTmaxMatch, pTdampMatch, alphaSorder, alphaSnfmax, alphaEMorder,
187 nQuarkIn, enhanceScreening, weakMode, pT0paramMode;
188 double pTdampFudge, mc, mb, m2c, m2b, renormMultFac, factorMultFac,
189 fixedFacScale2, alphaSvalue, alphaS2pi, Lambda3flav, Lambda4flav,
190 Lambda5flav, Lambda3flav2, Lambda4flav2, Lambda5flav2, pT0Ref,
191 ecmRef, ecmPow, pTmin, sCM, eCM, pT0, pTminChgQ, pTminChgL, pT20,
192 pT2min, pT2minChgQ, pT2minChgL, pTweakCut, pT2weakCut, pTmaxFudgeMPI,
193 strengthIntAsym, weakEnhancement, mZ, gammaZ, thetaWRat, mW, gammaW,
194 weakMaxWt, vetoWeakDeltaR2;
204 bool sideA, twoHard, dopTlimit1, dopTlimit2, dopTdamp, tChannel,
206 int iNow, iRec, idDaughter, nRad, idResFirst, idResSecond;
207 double xDaughter, x1Now, x2Now, m2ColPair, mColPartner, m2ColPartner,
208 m2Dip, m2Rec, pT2damp, pTbegRef, pdfScale2;
211 bool doTrialNow, canEnhanceEmission, canEnhanceTrial, canEnhanceET;
212 string splittingNameNow, splittingNameSel;
213 map< double, pair<string,double> > enhanceFactors;
214 void storeEnhanceFactor(
double pT2,
string name,
double enhanceFactorIn)
215 { enhanceFactors.insert(make_pair(pT2,make_pair(name,enhanceFactorIn)));}
218 vector<int> nRadA,nRadB;
221 vector<SpaceDipoleEnd> dipEnd;
224 vector<Vec4> weakMomenta;
227 int iDipNow, iSysNow;
233 void pT2nextQCD(
double pT2begDip,
double pT2endDip);
236 void pT2nearThreshold(
BeamParticle& beam,
double m2Massive,
237 double m2Threshold,
double xMaxAbs,
double zMinAbs,
238 double zMaxMassive,
int iColPartner);
241 void pT2nextQED(
double pT2begDip,
double pT2endDip);
244 void pT2nextWeak(
double pT2begDip,
double pT2endDip);
247 int findMEtype(
int iSys,
Event& event,
bool weakRadiation =
false);
250 double calcMEmax(
int MEtype,
int idMother,
int idDaughterIn);
253 double calcMEcorr(
int MEtype,
int idMother,
int idDaughterIn,
double M2,
254 double z,
double Q2,
double m2Sister);
257 double calcMEcorrWeak(
int MEtype,
double m2,
double z,
265 int findColPartner(
Event& event,
int iSideA,
int iSideB,
int iSystem);
268 void calcUncertainties(
bool accept,
double pAcceptIn,
double pT20in,
double pAccept
Properties needed for the evaluation of parameter variations.
Definition: SimpleSpaceShower.h:66
Definition: StandardModel.h:23
The Event class holds all info on the generated event.
Definition: Event.h:453
void store(int idDaughterIn, int idMotherIn, int idSisterIn, double x1In, double x2In, double m2DipIn, double pT2In, double zIn, double xMoIn, double Q2In, double mSisterIn, double m2SisterIn, double pT2corrIn, int iColPartnerIn, double m2IFIn, double mColPartnerIn)
Store values for trial emission.
Definition: SimpleSpaceShower.h:43
Definition: BeamParticle.h:133
int nBranch
Properties specific to current trial emission.
Definition: SimpleSpaceShower.h:61
Data on radiating dipole ends, only used inside SimpleSpaceShower.
Definition: SimpleSpaceShower.h:22
virtual bool wasGamma2qqbar() override
Tell if latest scattering was a gamma->qqbar.
Definition: SimpleSpaceShower.h:142
Definition: StandardModel.h:106
virtual bool doRestart() const override
Flag for failure in branch(...) that will force a retry of parton level.
Definition: SimpleSpaceShower.h:139
virtual int system() const override
Tell which system was the last processed one.
Definition: SimpleSpaceShower.h:148
Definition: SimpleWeakShowerMEs.h:26
virtual bool getHasWeaklyRadiated() override
Tell whether ISR has done a weak emission.
Definition: SimpleSpaceShower.h:145
double m2(const Vec4 &v1)
The squared invariant mass of one or more four-vectors.
Definition: Basics.cc:605
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
virtual double enhancePTmax() const override
Potential enhancement factor of pTmax scale for hardest emission.
Definition: SimpleSpaceShower.h:151
SpaceDipoleEnd(int systemIn=0, int sideIn=0, int iRadiatorIn=0, int iRecoilerIn=0, double pTmaxIn=0., int colTypeIn=0, int chgTypeIn=0, int weakTypeIn=0, int MEtypeIn=0, bool normalRecoilIn=true, int weakPolIn=0, int iColPartnerIn=0, int idColPartnerIn=0)
Constructor.
Definition: SimpleSpaceShower.h:27
virtual ~SimpleSpaceShower() override
Destructor.
Definition: SimpleSpaceShower.h:104
int system
Basic properties related to evolution and matrix element corrections.
Definition: SimpleSpaceShower.h:54
The SpaceShower class does spacelike showers.
Definition: SpaceShower.h:33
SimpleSpaceShower()
Constructor.
Definition: SimpleSpaceShower.h:79
The SimpleSpaceShower class does spacelike showers.
Definition: SimpleSpaceShower.h:74