8 #ifndef Pythia8_DireSplittingsQCD_H 9 #define Pythia8_DireSplittingsQCD_H 11 #define ZETA3 1.202056903159594 12 #define DIRE_SPLITTINGSQCD_VERSION "2.002" 14 #include "Pythia8/Basics.h" 15 #include "Pythia8/BeamParticle.h" 16 #include "Pythia8/ParticleData.h" 17 #include "Pythia8/PythiaStdlib.h" 18 #include "Pythia8/Settings.h" 19 #include "Pythia8/StandardModel.h" 21 #include "Pythia8/DireSplittings.h" 36 softRS, settings, particleData, rndm, beamA, beamB, coupSM, info,
39 asSchemeISR=settingsPtr->mode(
"DireSpace:alphasScheme");
40 asSchemeFSR=settingsPtr->mode(
"DireTimes:alphasScheme"); }
46 double CA, TR, CF, pTmin, pT2minVariations;
47 int NF_qcd_fsr, orderSave;
48 bool usePDFalphas, doVariations, doCorrelations, doMECs;
49 double alphaSorder, alphaS2pi;
56 double getNF(
double pT2);
57 double GammaQCD2(
double NF=5.);
58 double GammaQCD3(
double NF=5.);
59 double betaQCD0(
double NF=5.);
60 double betaQCD1(
double NF=5.);
61 double betaQCD2(
double NF=5.);
65 double as2Pi(
double pT2,
int orderNow = -1,
double renormMultFacNow = -1.);
68 double softRescaleDiff(
int order,
double pT2,
double renormMultFacNow = -1.);
69 double beta0Endpoint(
int order,
double m2dip,
double pT2,
double z,
70 double renormMultFacNow = -1.);
72 double polevl(
double x,
double* coef,
int N );
73 double DiLog(
double x);
75 vector<int> sharedColor(
const Event& event,
int iRad,
int iRec);
76 bool hasSharedColor(
const Event& event,
int iRad,
int iRec);
78 int findCol(
int col, vector<int> iExc,
const Event&,
int type);
80 bool useFastFunctions() {
return true; }
84 virtual bool isPartial() {
return true; }
87 virtual double coupling (
double z,
double pT2,
double m2dip,
88 double renormMultFacNow = -1.,
89 pair<int,bool> radBef = pair<int,bool>(),
90 pair<int,bool> recBef = pair<int,bool>()) {
91 if (!usePDFalphas && alphaSorder == 0)
return alphaS2pi;
92 double scale2 = couplingScale2 ( z, pT2, m2dip, radBef, recBef);
93 if (scale2 < 0.) scale2 = pT2;
94 if (z < 0.) scale2 = pT2;
97 double fac = (renormMultFacNow > 0.) ? renormMultFacNow : renormMultFac;
98 return as2Pi(scale2, orderSave, fac);
108 virtual double couplingScale2 (
double z,
double pT2,
double m2dip,
109 pair<int,bool> radBef, pair<int,bool> recBef) {
110 if ( radBef.second && recBef.second) {
111 if (asSchemeFSR == 0)
return pT2;
112 if (asSchemeFSR == 1)
return pT2;
113 if (asSchemeFSR == 2) {
114 double ycs = pT2/m2dip/(1.-z);
115 double sij = ycs*m2dip;
116 double sjk = (1.-z)*m2dip;
117 double sik = m2dip - sij - sjk;
120 }
else if ( radBef.second && !recBef.second) {
121 if (asSchemeFSR == 0)
return pT2;
122 if (asSchemeFSR == 1) {
124 double xcs = m2dip * zcs * (1.-zcs) / (pT2 + m2dip * zcs * (1.-zcs));
125 double kt2 = m2dip * (1.-xcs) / xcs * zcs * (1.-zcs);
128 if (asSchemeFSR == 2) {
130 double xcs = m2dip * zcs * (1.-zcs) / (pT2 + m2dip * zcs * (1.-zcs));
131 return (1-zcs)*(1-xcs)/xcs/zcs*m2dip;
133 }
else if (!radBef.second && recBef.second) {
134 if (asSchemeISR == 0)
return pT2;
135 if (asSchemeISR == 1) {
137 double ucs = pT2/m2dip / (1.-z);
138 double kt2 = m2dip * (1-xcs) / xcs * ucs * (1.-ucs);
141 if (asSchemeISR == 2) {
143 double ucs = pT2/m2dip / (1.-z);
144 return (1-xcs)/xcs*ucs/(1-ucs)*m2dip;
146 }
else if (!radBef.second && !recBef.second) {
147 if (asSchemeISR == 0)
return pT2;
148 if (asSchemeISR == 1) {
149 double xcs = ( z * (1.-z) - pT2/m2dip) / (1.-z);
150 double vcs = pT2/m2dip / (1.-z);
151 double kt2 = m2dip * vcs * (1.-xcs-vcs) / xcs;
154 if (asSchemeISR == 2) {
155 double xcs = ( z * (1.-z) - pT2/m2dip) / (1.-z);
156 double vcs = pT2/m2dip / (1.-z);
157 double sab = m2dip/xcs;
158 double saj = vcs*sab;
159 double sjb = sab-saj-m2dip;
160 return abs(saj*sjb/sab);
173 bool useBackboneGluons, doGeneralizedKernel;
174 double sCoef(
int powz) { vector<double> tmp
175 = settingsPtr->pvec(
"DireGeneralizedKernel:softCoeffs:" + name());
176 return tmp[powz+1]; }
177 double sExp(
int powz) { vector<double> tmp
178 = settingsPtr->pvec(
"DireGeneralizedKernel:softExps:" + name());
179 return tmp[powz+1]; }
180 double kCoef(
int powz) { vector<double> tmp
181 = settingsPtr->pvec(
"DireGeneralizedKernel:kappaCoeffs:" + name());
182 return tmp[powz+1]; }
183 double kExp(
int powz){ vector<double> tmp
184 = settingsPtr->pvec(
"DireGeneralizedKernel:kappaExps:" + name());
185 return tmp[powz+1]; }
186 double cCoef(
int powz) { vector<double> tmp
187 = settingsPtr->pvec(
"DireGeneralizedKernel:collCoeffs:" + name());
188 return tmp[powz+1]; }
189 double cExp(
int powz) { vector<double> tmp
190 = settingsPtr->pvec(
"DireGeneralizedKernel:collExps:" + name());
191 return tmp[powz+1]; }
192 double fCoef() {
double tmp
193 = settingsPtr->parm(
"DireGeneralizedKernel:finCoeffs:" + name());
196 bool hasMECBef(
const Event& state,
double pT2);
197 bool hasMECAft(
const Event& state,
double pT2);
211 coupSM, info, direInfo), is_sai_endpoint_save(
false) {}
213 bool canRadiate (
const Event&, pair<int,int>,
214 unordered_map<string,bool> = unordered_map<string,bool>(),
217 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
222 int nEmissions() {
return 2; }
224 bool canUseForBranching() {
return true; }
226 vector<pair<int,int> > radAndEmtCols(
int iRad,
int colType,
Event state);
229 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
230 int colEmtAfter,
int acolEmtAfter);
233 int radBefID(
int idRadAfter,
int idEmtAfter);
239 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
243 double pT2Old,
double m2dip,
int order = -1);
251 double counterTerm(
double si1,
double si2,
double sj1,
252 double sj2,
double sij,
double s12);
256 bool allow_xa_endpoint_for_kinematics() {
return false; }
259 void try_xa_endpoint() {
return; }
262 bool is_xa_endpoint() {
return false; }
263 bool is_sai_endpoint_save;
277 coupSM, info, direInfo), is_sai_endpoint_save(
false) {}
279 bool canRadiate (
const Event&, pair<int,int>,
280 unordered_map<string,bool> = unordered_map<string,bool>(),
283 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
287 int nEmissions() {
return 2; }
289 bool canUseForBranching() {
return true; }
291 vector<pair<int,int> > radAndEmtCols(
int iRad,
int colType,
Event state);
294 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
295 int colEmtAfter,
int acolEmtAfter);
298 int radBefID(
int idRadAfter,
int idEmtAfter);
304 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
308 double pT2Old,
double m2dip,
int order = -1);
316 double counterTerm(
double si1,
double si2,
double sj1,
317 double sj2,
double sij,
double s12);
321 bool allow_xa_endpoint_for_kinematics() {
return false; }
324 void try_xa_endpoint() {
return; }
327 bool is_xa_endpoint() {
return false; }
328 bool is_sai_endpoint_save;
343 coupSM, info, direInfo), idEmtAfterSave(idEmtAfterIn),
344 is_sai_endpoint_save(
false)
345 { nGluonToQuark = settingsPtr->mode(
"TimeShower:nGluonToQuark"); }
347 bool canRadiate (
const Event&, pair<int,int>,
348 unordered_map<string,bool> = unordered_map<string,bool>(),
351 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
358 int nEmissions() {
return 2;}
360 bool canUseForBranching() {
return true; }
362 vector<pair<int,int> > radAndEmtCols(
int iRad,
int colType,
Event state);
365 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
366 int colEmtAfter,
int acolEmtAfter);
369 int radBefID(
int idRadAfter,
int idEmtAfter);
375 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
379 double pT2Old,
double m2dip,
int order = -1);
387 int nGluonToQuark, idEmtAfterSave;
389 double counterTerm(
double si1,
double si2,
double sj1,
390 double sj2,
double sij,
double s12);
394 bool allow_xa_endpoint_for_kinematics() {
return false; }
397 void try_xa_endpoint() {
return; }
400 bool is_xa_endpoint() {
return false; }
401 bool is_sai_endpoint_save;
416 coupSM, info, direInfo),
417 idEmtAfterSave(idEmtAfterIn), is_sai_endpoint_save(
false)
418 { nGluonToQuark = settingsPtr->mode(
"TimeShower:nGluonToQuark"); }
420 bool canRadiate (
const Event&, pair<int,int>,
421 unordered_map<string,bool> = unordered_map<string,bool>(),
424 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
428 int sign = (colType > 0) ? 1 : -1;
429 int idEmtAft = sign * idEmtAfterSave;
433 int nEmissions() {
return 2; }
435 bool canUseForBranching() {
return true; }
437 vector<pair<int,int> > radAndEmtCols(
int iRad,
int colType,
Event state);
440 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
441 int colEmtAfter,
int acolEmtAfter);
444 int radBefID(
int idRadAfter,
int idEmtAfter);
450 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
454 double pT2Old,
double m2dip,
int order = -1);
462 int nGluonToQuark, idEmtAfterSave;
464 double counterTerm(
double si1,
double si2,
double sj1,
465 double sj2,
double sij,
double s12);
469 bool allow_xa_endpoint_for_kinematics() {
return false; }
472 void try_xa_endpoint() {
return; }
475 bool is_xa_endpoint() {
return false; }
476 bool is_sai_endpoint_save;
490 coupSM, info, direInfo){}
492 bool canRadiate (
const Event&, pair<int,int>,
493 unordered_map<string,bool> = unordered_map<string,bool>(),
495 int nEmissions() {
return 1; }
497 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
509 int radBefID(
int idRadAfter,
int idEmtAfter);
514 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
515 int colEmtAfter,
int acolEmtAfter);
521 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
525 double pT2Old,
double m2dip,
int order = -1);
545 coupSM, info, direInfo){}
547 bool canRadiate (
const Event&, pair<int,int>,
548 unordered_map<string,bool> = unordered_map<string,bool>(),
551 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
554 int nEmissions() {
return 1; }
565 int radBefID(
int idRadAfter,
int idEmtAfter);
570 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
571 int colEmtAfter,
int acolEmtAfter);
577 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
581 double pT2Old,
double m2dip,
int order = -1);
601 coupSM, info, direInfo){}
603 bool canRadiate (
const Event&, pair<int,int>,
604 unordered_map<string,bool> = unordered_map<string,bool>(),
607 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
610 int nEmissions() {
return 1; }
621 int radBefID(
int idRadAfter,
int idEmtAfter);
626 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
627 int colEmtAfter,
int acolEmtAfter);
633 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
637 double pT2Old,
double m2dip,
int order = -1);
657 coupSM, info, direInfo){}
659 bool canRadiate (
const Event&, pair<int,int>,
660 unordered_map<string,bool> = unordered_map<string,bool>(),
663 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
666 int nEmissions() {
return 1; }
677 int radBefID(
int idRadAfter,
int idEmtAfter);
682 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
683 int colEmtAfter,
int acolEmtAfter);
689 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
693 double pT2Old,
double m2dip,
int order = -1);
713 coupSM, info, direInfo){}
715 bool canRadiate (
const Event&, pair<int,int>,
716 unordered_map<string,bool> = unordered_map<string,bool>(),
719 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
722 int nEmissions() {
return 1; }
723 bool isPartial() {
return false; }
733 int radBefID(
int idRadAfter,
int idEmtAfter);
738 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
739 int colEmtAfter,
int acolEmtAfter);
745 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
749 double pT2Old,
double m2dip,
int order = -1);
769 coupSM, info, direInfo){}
771 bool canRadiate (
const Event&, pair<int,int>,
772 unordered_map<string,bool> = unordered_map<string,bool>(),
775 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
778 int nEmissions() {
return 1; }
779 bool isPartial() {
return false; }
790 int radBefID(
int idRadAfter,
int idEmtAfter);
795 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
796 int colEmtAfter,
int acolEmtAfter);
802 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
806 double pT2Old,
double m2dip,
int order = -1);
826 coupSM, info, direInfo){}
828 bool canRadiate (
const Event&, pair<int,int>,
829 unordered_map<string,bool> = unordered_map<string,bool>(),
832 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
835 int nEmissions() {
return 2; }
836 bool isPartial() {
return false; }
847 int radBefID(
int idRadAfter,
int idEmtAfter);
850 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
851 int colEmtAfter,
int acolEmtAfter);
857 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
861 double pT2Old,
double m2dip,
int order = -1);
881 coupSM, info, direInfo){}
883 bool canRadiate (
const Event&, pair<int,int>,
884 unordered_map<string,bool> = unordered_map<string,bool>(),
887 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
890 int nEmissions() {
return 2; }
891 bool isPartial() {
return false; }
902 int radBefID(
int idRadAfter,
int idEmtAfter);
905 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
906 int colEmtAfter,
int acolEmtAfter);
912 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
916 double pT2Old,
double m2dip,
int order = -1);
936 coupSM, info, direInfo){}
938 bool canRadiate (
const Event&, pair<int,int>,
939 unordered_map<string,bool> = unordered_map<string,bool>(),
942 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
945 int nEmissions() {
return 1; }
956 int radBefID(
int idRadAfter,
int idEmtAfter);
961 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
962 int colEmtAfter,
int acolEmtAfter);
968 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
972 double pT2Old,
double m2dip,
int order = -1);
992 coupSM, info, direInfo){}
994 bool canRadiate (
const Event&, pair<int,int>,
995 unordered_map<string,bool> = unordered_map<string,bool>(),
998 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
1001 int nEmissions() {
return 1; }
1012 int radBefID(
int idRadAfter,
int idEmtAfter);
1017 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
1018 int colEmtAfter,
int acolEmtAfter);
1024 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1028 double pT2Old,
double m2dip,
int order = -1);
1048 coupSM, info, direInfo){}
1050 bool canRadiate (
const Event&, pair<int,int>,
1051 unordered_map<string,bool> = unordered_map<string,bool>(),
1054 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
1057 int nEmissions() {
return 1; }
1068 int radBefID(
int idRadAfter,
int idEmtAfter);
1073 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
1074 int colEmtAfter,
int acolEmtAfter);
1080 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1084 double pT2Old,
double m2dip,
int order = -1);
1104 coupSM, info, direInfo){}
1106 bool canRadiate (
const Event&, pair<int,int>,
1107 unordered_map<string,bool> = unordered_map<string,bool>(),
1110 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
1113 int nEmissions() {
return 1; }
1114 bool isPartial() {
return false; }
1125 int radBefID(
int idRadAfter,
int idEmtAfter);
1130 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
1131 int colEmtAfter,
int acolEmtAfter);
1137 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1141 double pT2Old,
double m2dip,
int order = -1);
1161 coupSM, info, direInfo){}
1163 bool canRadiate (
const Event&, pair<int,int>,
1164 unordered_map<string,bool> = unordered_map<string,bool>(),
1167 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
1170 int nEmissions() {
return 1; }
1171 bool isPartial() {
return false; }
1182 int radBefID(
int idRadAfter,
int idEmtAfter);
1187 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
1188 int colEmtAfter,
int acolEmtAfter);
1194 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1198 double pT2Old,
double m2dip,
int order = -1);
1219 coupSM, info, direInfo){}
1221 bool canRadiate (
const Event&, pair<int,int>,
1222 unordered_map<string,bool> = unordered_map<string,bool>(),
1225 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
1228 int nEmissions() {
return 2; }
1229 bool isPartial() {
return false; }
1240 int radBefID(
int idRadAfter,
int idEmtAfter);
1243 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
1244 int colEmtAfter,
int acolEmtAfter);
1250 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1254 double pT2Old,
double m2dip,
int order = -1);
1274 coupSM, info, direInfo){}
1276 bool canRadiate (
const Event&, pair<int,int>,
1277 unordered_map<string,bool> = unordered_map<string,bool>(),
1280 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
1283 int nEmissions() {
return 2; }
1284 bool isPartial() {
return false; }
1295 int radBefID(
int idRadAfter,
int idEmtAfter);
1298 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
1299 int colEmtAfter,
int acolEmtAfter);
1305 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1309 double pT2Old,
double m2dip,
int order = -1);
1329 coupSM, info, direInfo){}
1331 bool canRadiate (
const Event&, pair<int,int>,
1332 unordered_map<string,bool> = unordered_map<string,bool>(),
1335 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
1338 int nEmissions() {
return 1; }
1341 bool canUseForBranching() {
return true; }
1342 bool isPartial() {
return false; }
1343 vector<pair<int,int> > radAndEmtCols(
int iRad,
int,
Event state);
1352 int radBefID(
int idRadAfter,
int idEmtAfter);
1357 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
1358 int colEmtAfter,
int acolEmtAfter);
1364 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1368 double pT2Old,
double m2dip,
int order = -1);
1389 coupSM, info, direInfo){}
1391 bool canRadiate (
const Event&, pair<int,int>,
1392 unordered_map<string,bool> = unordered_map<string,bool>(),
1395 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
1398 int nEmissions() {
return 1; }
1401 bool canUseForBranching() {
return true; }
1402 bool isPartial() {
return false; }
1403 vector<pair<int,int> > radAndEmtCols(
int iRad,
int,
Event state);
1412 int radBefID(
int idRadAfter,
int idEmtAfter);
1417 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
1418 int colEmtAfter,
int acolEmtAfter);
1424 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1428 double pT2Old,
double m2dip,
int order = -1);
1448 coupSM, info, direInfo){}
1450 bool canRadiate (
const Event&, pair<int,int>,
1451 unordered_map<string,bool> = unordered_map<string,bool>(),
1454 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
1457 int nEmissions() {
return 1; }
1460 bool canUseForBranching() {
return true; }
1461 bool isPartial() {
return false; }
1462 vector<pair<int,int> > radAndEmtCols(
int iRad,
int,
Event state);
1471 int radBefID(
int idRadAfter,
int idEmtAfter);
1476 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
1477 int colEmtAfter,
int acolEmtAfter);
1483 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1487 double pT2Old,
double m2dip,
int order = -1);
double getNF(double pT2)
AUXILIARY FUNCTIONS.
Definition: DireSplittingsQCD.cc:131
Definition: DireSplittingsQCD.h:984
Definition: DireSplittingsQCD.h:593
virtual vector< int > recPositions(const Event &, int, int)
Definition: DireSplittings.h:146
virtual double symmetryFactor(int, int)
Return symmetry factor for splitting.
Definition: DireSplittings.h:160
Definition: StandardModel.h:23
void try_sai_endpoint()
Functions to set if kernel should contribute to a kinematical endpoint.
Definition: DireSplittingsQCD.h:471
double beta0Endpoint(int order, double m2dip, double pT2, double z, double renormMultFacNow=-1.)
Definition: DireSplittingsQCD.cc:387
void init()
Definition: DireSplittingsQCD.cc:23
double softRescaleInt(int order)
Definition: DireSplittingsQCD.cc:356
bool allow_sai_endpoint_for_kinematics()
Treatment of additional virtual corrections.
Definition: DireSplittingsQCD.h:393
The Event class holds all info on the generated event.
Definition: Event.h:453
void try_sai_endpoint()
Functions to set if kernel should contribute to a kinematical endpoint.
Definition: DireSplittingsQCD.h:396
static const double SMALL_TEVOL
The SplittingQCD class.
Definition: DireSplittingsQCD.h:53
Definition: BeamParticle.h:133
Definition: DireSplittingsQCD.h:928
Definition: DireSplittingsQCD.h:1266
Definition: DireSplittingsQCD.h:27
Definition: DireSplittingsQCD.h:334
virtual int couplingType(int, int)
Definition: DireSplittingsQCD.h:86
virtual double gaugeFactor(int, int)
Return color factor for splitting.
Definition: DireSplittings.h:157
Definition: DireSplittingsQCD.h:203
Definition: DireSplittingsQCD.h:1040
virtual double overestimateInt(double, double, double, double, int=-1)
New overestimates, z-integrated versions.
Definition: DireSplittings.h:189
virtual vector< int > radAndEmt(int idDaughter, int)
Definition: DireSplittingsQCD.h:82
Definition: DireSplittingsQCD.h:649
bool allow_sai_endpoint_for_kinematics()
Treatment of additional virtual corrections.
Definition: DireSplittingsQCD.h:468
Definition: DireBasics.h:374
double DiLog(double x)
Function to calculate dilogarithm.
Definition: DireSplittingsQCD.cc:285
Definition: DireSplittingsQCD.h:537
Definition: DireSplittingsQCD.h:1321
int kinMap()
Definition: DireSplittingsQCD.h:434
int kinMap()
Definition: DireSplittingsQCD.h:223
DireSplittingQCD(string idIn, int softRS, Settings *settings, ParticleData *particleData, Rndm *rndm, BeamParticle *beamA, BeamParticle *beamB, CoupSM *coupSM, Info *info, DireInfo *direInfo)
Constructor and destructor.
Definition: DireSplittingsQCD.h:32
Definition: DireSplittingsQCD.h:818
double CA
VARIABLES.
Definition: DireSplittingsQCD.h:46
double polevl(double x, double *coef, int N)
Helper function to calculate dilogarithm.
Definition: DireSplittingsQCD.cc:265
Definition: DireSplittingsQCD.h:1381
Definition: DireSplittingsQCD.h:705
Definition: DireSplittingsQCD.h:1153
double softRescaleDiff(int order, double pT2, double renormMultFacNow=-1.)
Definition: DireSplittingsQCD.cc:369
void try_sai_endpoint()
Functions to set if kernel should contribute to a kinematical endpoint.
Definition: DireSplittingsQCD.h:258
virtual bool calc(const Event &=Event(), int=-1)
Functions to calculate the kernel from SplitInfo information.
Definition: DireSplittings.h:203
Definition: DireSplittingsQCD.h:873
Definition: DireSplittings.h:53
virtual double coupling(double z, double pT2, double m2dip, double renormMultFacNow=-1., pair< int, bool > radBef=pair< int, bool >(), pair< int, bool > recBef=pair< int, bool >())
Definition: DireSplittingsQCD.h:87
bool is_sai_endpoint()
Return endpoint information.
Definition: DireSplittingsQCD.h:261
bool is_sai_endpoint()
Return endpoint information.
Definition: DireSplittingsQCD.h:326
virtual int kinMap()
Definition: DireSplittings.h:123
virtual vector< int > radAndEmt(int, int colType)
Definition: DireSplittingsQCD.h:427
Definition: DireSplittingsQCD.h:761
Definition: StandardModel.h:135
virtual unordered_map< string, double > getPhasespaceVars(const Event &=Event(), PartonSystems *=0)
Definition: DireSplittingsQCD.cc:507
void try_sai_endpoint()
Functions to set if kernel should contribute to a kinematical endpoint.
Definition: DireSplittingsQCD.h:323
vector< int > radAndEmt(int idDaughter, int)
Definition: DireSplittingsQCD.h:220
virtual double overestimateDiff(double, double, int=-1)
Return kernel for new splitting.
Definition: DireSplittings.h:193
double as2Pi(double pT2, int orderNow=-1, double renormMultFacNow=-1.)
Definition: DireSplittingsQCD.cc:198
int kinMap()
Definition: DireSplittingsQCD.h:288
Class inheriting from SplittingQCD class.
Definition: DireSplittingsQCD.h:1211
Definition: DireSplittingsQCD.h:269
bool allow_sai_endpoint_for_kinematics()
Treatment of additional virtual corrections.
Definition: DireSplittingsQCD.h:255
The PartonSystems class describes the whole set of subcollisions.
Definition: PartonSystems.h:42
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
int findCol(int col, vector< int > iExc, const Event &, int type)
Definition: DireSplittingsQCD.cc:451
int kinMap()
Definition: DireSplittingsQCD.h:359
Definition: DireSplittingsQCD.h:1440
bool is_sai_endpoint()
Return endpoint information.
Definition: DireSplittingsQCD.h:399
int asSchemeISR
Definition: DireSplittingsQCD.h:107
bool allow_sai_endpoint_for_kinematics()
Treatment of additional virtual corrections.
Definition: DireSplittingsQCD.h:320
vector< int > radAndEmt(int, int)
Definition: DireSplittingsQCD.h:286
virtual int radBefID(int, int)
Return id of recombined radiator (before splitting!)
Definition: DireSplittings.h:150
This class holds a map of all ParticleDataEntries.
Definition: ParticleData.h:422
Definition: DireSplittingsQCD.h:482
virtual pair< int, int > radBefCols(int, int, int, int)
Return colours of recombined radiator (before splitting!)
Definition: DireSplittings.h:153
Definition: DireSplittingsQCD.h:1096
virtual double getJacobian(const Event &=Event(), PartonSystems *partonSystems=0)
Definition: DireSplittingsQCD.cc:591
virtual vector< int > radAndEmt(int idRadBef, int)
Definition: DireSplittingsQCD.h:354
Definition: DireBasics.h:82
virtual int sisterID(int)
Return id of emission.
Definition: DireSplittings.h:129
Definition: Settings.h:195
virtual double zSplit(double, double, double)
Pick z for new splitting.
Definition: DireSplittings.h:186
bool is_sai_endpoint()
Return endpoint information.
Definition: DireSplittingsQCD.h:474
virtual int motherID(int)
Return id of mother after splitting.
Definition: DireSplittings.h:126
Definition: DireSplittingsQCD.h:407