10 #define Pythia8_Info_H
12 #include "PythiaStdlib.h"
30 Info() : lowPTmin(
false), a0MPISave(0.), mergingWeightSave(1.) {
31 for (
int i = 0; i < 40; ++i) counters[i] = 0;}
34 void list(ostream& os = cout)
const;
37 int idA()
const {
return idASave;}
38 int idB()
const {
return idBSave;}
39 double pzA()
const {
return pzASave;}
40 double pzB()
const {
return pzBSave;}
41 double eA()
const {
return eASave;}
42 double eB()
const {
return eBSave;}
43 double mA()
const {
return mASave;}
44 double mB()
const {
return mBSave;}
45 double eCM()
const {
return eCMSave;}
46 double s()
const {
return sSave;}
49 bool tooLowPTmin()
const {
return lowPTmin;}
52 string name()
const {
return nameSave;}
53 int code()
const {
return codeSave;}
54 int nFinal()
const {
return nFinalSave;}
57 bool isResolved()
const {
return isRes;}
58 bool isDiffractiveA()
const {
return isDiffA;}
59 bool isDiffractiveB()
const {
return isDiffB;}
60 bool isMinBias()
const {
return isMB;}
63 bool isLHA()
const {
return isLH;}
64 bool atEndOfFile()
const {
return atEOF;}
67 bool hasSub()
const {
return hasSubSave;}
68 string nameSub()
const {
return nameSubSave;}
69 int codeSub()
const {
return codeSubSave;}
70 int nFinalSub()
const {
return nFinalSubSave;}
73 int id1()
const {
return id1Save;}
74 int id2()
const {
return id2Save;}
75 double x1()
const {
return x1Save;}
76 double x2()
const {
return x2Save;}
77 double y()
const {
return 0.5 * log( x1Save / x2Save );}
78 double tau()
const {
return x1Save * x2Save;}
81 double pdf1()
const {
return pdf1Save;}
82 double pdf2()
const {
return pdf2Save;}
83 double QFac()
const {
return sqrtpos(Q2FacSave);}
84 double Q2Fac()
const {
return Q2FacSave;}
85 bool isValence1()
const {
return isVal1;}
86 bool isValence2()
const {
return isVal2;}
87 double alphaS()
const {
return alphaSSave;}
88 double alphaEM()
const {
return alphaEMSave;}
89 double QRen()
const {
return sqrtpos(Q2RenSave);}
90 double Q2Ren()
const {
return Q2RenSave;}
93 double mHat()
const {
return sqrt(sH);}
94 double sHat()
const {
return sH;}
95 double tHat()
const {
return tH;}
96 double uHat()
const {
return uH;}
97 double pTHat()
const {
return pTH;}
98 double pT2Hat()
const {
return pTH*pTH;}
99 double m3Hat()
const {
return m3H;}
100 double m4Hat()
const {
return m4H;}
101 double thetaHat()
const {
return thetaH;}
102 double phiHat()
const {
return phiH;}
107 double weight()
const;
108 double weightSum()
const;
109 double lhaStrategy()
const {
return lhaStrategySave;}
112 int nISR()
const {
return nISRSave;}
113 int nFSRinProc()
const {
return nFSRinProcSave;}
114 int nFSRinRes()
const {
return nFSRinResSave;}
117 double pTmaxMPI()
const {
return pTmaxMPISave;}
118 double pTmaxISR()
const {
return pTmaxISRSave;}
119 double pTmaxFSR()
const {
return pTmaxFSRSave;}
122 double pTnow()
const {
return pTnowSave;}
125 double a0MPI()
const {
return a0MPISave;}
128 double bMPI()
const {
return (bIsSet) ? bMPISave : 1.;}
129 double enhanceMPI()
const {
return (bIsSet) ? enhanceMPISave : 1.;}
130 double eMPI(
int i)
const {
return (bIsSet) ? eMPISave[i] : 1.;}
133 int nMPI()
const {
return nMPISave;}
134 int codeMPI(
int i)
const {
return codeMPISave[i];}
135 double pTMPI(
int i)
const {
return pTMPISave[i];}
136 int iAMPI(
int i)
const {
return iAMPISave[i];}
137 int iBMPI(
int i)
const {
return iBMPISave[i];}
140 long nTried()
const {
return nTry;}
141 long nSelected()
const {
return nSel;}
142 long nAccepted()
const {
return nAcc;}
143 double sigmaGen()
const {
return sigGen;}
144 double sigmaErr()
const {
return sigErr;}
147 int getCounter(
int i)
const {
return counters[i];}
150 void setCounter(
int i,
int value = 0) {counters[i] = value;}
151 void addCounter(
int i,
int value = 1) {counters[i] += value;}
154 void errorReset() {messages.clear();}
157 void errorMsg(
string messageIn,
string extraIn =
" ",
158 bool showAlways =
false, ostream& os = cout);
161 int errorTotalNumber();
164 void errorStatistics(ostream& os = cout);
167 void setTooLowPTmin(
bool lowPTminIn) {lowPTmin = lowPTminIn;}
170 void setValence(
bool isVal1In,
bool isVal2In) {isVal1 = isVal1In;
175 void hasHistory(
bool hasHistoryIn) {hasHistorySave = hasHistoryIn;}
176 bool hasHistory() {
return hasHistorySave;}
177 void zNowISR(
double zNowIn) {zNowISRSave = zNowIn;}
178 double zNowISR() {
return zNowISRSave;}
179 void pT2NowISR(
double pT2NowIn) {pT2NowISRSave = pT2NowIn;}
180 double pT2NowISR() {
return pT2NowISRSave;}
183 double mergingWeight()
const {
return mergingWeightSave;}
188 static const int TIMESTOPRINT;
191 static const double CONVERTMB2PB;
194 int idASave, idBSave;
195 double pzASave, eASave,mASave, pzBSave, eBSave, mBSave, eCMSave, sSave;
201 long nTry, nSel, nAcc;
202 double sigGen, sigErr, wtAccSum;
209 bool isRes, isDiffA, isDiffB, isMB, isLH, hasSubSave, bIsSet, evolIsSet,
210 atEOF, isVal1, isVal2, hasHistorySave;
211 int codeSave, codeSubSave, nFinalSave, nFinalSubSave, nTotal,
212 id1Save, id2Save, nMPISave, nISRSave, nFSRinProcSave, nFSRinResSave;
213 double x1Save, x2Save, pdf1Save, pdf2Save, Q2FacSave, alphaEMSave,
214 alphaSSave, Q2RenSave, sH, tH, uH, pTH, m3H, m4H, thetaH, phiH,
215 weightSave, bMPISave, enhanceMPISave, pTmaxMPISave, pTmaxISRSave,
216 pTmaxFSRSave, pTnowSave, zNowISRSave, pT2NowISRSave;
217 string nameSave, nameSubSave;
218 vector<int> codeMPISave, iAMPISave, iBMPISave;
219 vector<double> pTMPISave, eMPISave;
225 map<string, int> messages;
235 void setBeamA(
int idAin,
double pzAin,
double eAin,
double mAin) {
236 idASave = idAin; pzASave = pzAin; eASave = eAin; mASave = mAin;}
237 void setBeamB(
int idBin,
double pzBin,
double eBin,
double mBin) {
238 idBSave = idBin; pzBSave = pzBin; eBSave = eBin; mBSave = mBin;}
239 void setECM(
double eCMin) {eCMSave = eCMin; sSave = eCMSave * eCMSave;}
242 void clear() { isRes = isDiffA = isDiffB = isMB = isLH = hasSubSave
243 = bIsSet = evolIsSet = atEOF = isVal1 =isVal2 = hasHistorySave =
false;
244 codeSave = codeSubSave = nFinalSave = nFinalSubSave = nTotal = id1Save
245 = id2Save = nMPISave = nISRSave = nFSRinProcSave = nFSRinResSave = 0;
246 x1Save = x2Save = pdf1Save = pdf2Save = Q2FacSave = alphaEMSave
247 = alphaSSave = Q2RenSave = sH = tH = uH = pTH = m3H = m4H = thetaH
248 = phiH = 0.; weightSave = bMPISave = enhanceMPISave = mergingWeightSave
249 = 1.; pTmaxMPISave = pTmaxISRSave = pTmaxFSRSave = pTnowSave
250 = zNowISRSave = pT2NowISRSave = 0.; nameSave = nameSubSave =
" ";
251 codeMPISave.resize(0); iAMPISave.resize(0); iBMPISave.resize(0);
252 pTMPISave.resize(0); eMPISave.resize(0); }
256 void setType(
string nameIn,
int codeIn,
int nFinalIn,
257 bool isMinBiasIn =
false,
bool isResolvedIn =
true,
258 bool isDiffractiveAin =
false,
bool isDiffractiveBin =
false,
259 bool isLHAin =
false) {nameSave = nameIn; codeSave = codeIn;
260 nFinalSave = nFinalIn; isMB = isMinBiasIn; isRes = isResolvedIn;
261 isDiffA = isDiffractiveAin; isDiffB = isDiffractiveBin; isLH = isLHAin;
262 nTotal = 2 + nFinalSave; bIsSet =
false; hasSubSave =
false;
263 nameSubSave =
" "; codeSubSave = 0; nFinalSubSave = 0; evolIsSet =
false;}
264 void setSubType(
string nameSubIn,
int codeSubIn,
int nFinalSubIn) {
265 hasSubSave =
true; nameSubSave = nameSubIn; codeSubSave = codeSubIn;
266 nFinalSubSave = nFinalSubIn;}
267 void setPDFalpha(
int id1In,
int id2In,
double pdf1In,
double pdf2In,
268 double Q2FacIn,
double alphaEMIn,
double alphaSIn,
double Q2RenIn)
269 {id1Save = id1In; id2Save = id2In; pdf1Save = pdf1In; pdf2Save = pdf2In;
270 Q2FacSave = Q2FacIn; alphaEMSave = alphaEMIn; alphaSSave = alphaSIn;
271 Q2RenSave = Q2RenIn;}
272 void setKin(
double x1In,
double x2In,
double sHatIn,
double tHatIn,
273 double uHatIn,
double pTHatIn,
double m3HatIn,
double m4HatIn,
274 double thetaHatIn,
double phiHatIn) {x1Save = x1In; x2Save = x2In;
275 sH = sHatIn; tH = tHatIn; uH = uHatIn; pTH = pTHatIn; m3H = m3HatIn;
276 m4H = m4HatIn; thetaH = thetaHatIn; phiH = phiHatIn;}
277 void setTypeMPI(
int codeMPIIn,
double pTMPIIn,
int iAMPIIn = 0,
278 int iBMPIIn = 0,
double eMPIIn = 1.) {codeMPISave.push_back(codeMPIIn);
279 pTMPISave.push_back(pTMPIIn); iAMPISave.push_back(iAMPIIn);
280 iBMPISave.push_back(iBMPIIn); eMPISave.push_back(eMPIIn); }
283 void setSigma(
long nTryIn,
long nSelIn,
long nAccIn,
double sigGenIn,
284 double sigErrIn,
double wtAccSumIn) { nTry = nTryIn; nSel = nSelIn;
285 nAcc = nAccIn; sigGen = sigGenIn; sigErr = sigErrIn;
286 wtAccSum = wtAccSumIn; }
289 void setImpact(
double bMPIIn,
double enhanceMPIIn) {bMPISave = bMPIIn;
290 enhanceMPISave = eMPISave[0] = enhanceMPIIn, bIsSet =
true;}
293 void setPartEvolved(
int nMPIIn,
int nISRIn) {
294 nMPISave = nMPIIn; nISRSave = nISRIn;}
295 void setEvolution(
double pTmaxMPIIn,
double pTmaxISRIn,
double pTmaxFSRIn,
296 int nMPIIn,
int nISRIn,
int nFSRinProcIn,
int nFSRinResIn) {
297 pTmaxMPISave = pTmaxMPIIn; pTmaxISRSave = pTmaxISRIn;
298 pTmaxFSRSave = pTmaxFSRIn; nMPISave = nMPIIn; nISRSave = nISRIn;
299 nFSRinProcSave = nFSRinProcIn; nFSRinResSave = nFSRinResIn;
303 void setPTnow(
double pTnowIn) {pTnowSave = pTnowIn;}
306 void a0MPI(
double a0MPIin) {a0MPISave = a0MPIin;}
309 void setEndOfFile(
bool atEOFin) {atEOF = atEOFin;}
312 void setWeight(
double weightIn,
int lhaStrategyIn) {
313 weightSave = weightIn; lhaStrategySave = lhaStrategyIn; }
316 double mergingWeightSave;
317 void setMergingWeight(
double weightIn) { mergingWeightSave = weightIn;}
325 #endif // Pythia8_Info_H