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" 35 DireSplitting(idIn, softRS, settings, particleData, rndm, beamA, beamB,
36 coupSM, info, direInfo) {
38 asSchemeISR=settingsPtr->mode(
"DireSpace:alphasScheme");
39 asSchemeFSR=settingsPtr->mode(
"DireTimes:alphasScheme");}
45 double CA, TR, CF, pTmin, pT2minVariations;
46 int NF_qcd_fsr, orderSave;
47 bool usePDFalphas, doVariations, doCorrelations, doMECs;
48 double alphaSorder, alphaS2pi;
55 double getNF(
double pT2);
56 double GammaQCD2(
double NF=5.);
57 double GammaQCD3(
double NF=5.);
58 double betaQCD0(
double NF=5.);
59 double betaQCD1(
double NF=5.);
60 double betaQCD2(
double NF=5.);
64 double as2Pi(
double pT2,
int orderNow = -1,
double renormMultFacNow = -1.);
67 double softRescaleDiff(
int order,
double pT2,
double renormMultFacNow = -1.);
68 double beta0Endpoint(
int order,
double m2dip,
double pT2,
double z,
69 double renormMultFacNow = -1.);
71 double polevl(
double x,
double* coef,
int N );
72 double DiLog(
double x);
74 vector<int> sharedColor(
const Event& event,
int iRad,
int iRec);
75 bool hasSharedColor(
const Event& event,
int iRad,
int iRec);
77 int findCol(
int col, vector<int> iExc,
const Event&,
int type);
79 bool useFastFunctions() {
return true; }
83 virtual bool isPartial() {
return true; }
86 virtual double coupling (
double z,
double pT2,
double m2dip,
87 double renormMultFacNow = -1.,
88 pair<int,bool> radBef = pair<int,bool>(),
89 pair<int,bool> recBef = pair<int,bool>()) {
90 if (!usePDFalphas && alphaSorder == 0)
return alphaS2pi;
91 double scale2 = couplingScale2 ( z, pT2, m2dip, radBef, recBef);
92 if (scale2 < 0.) scale2 = pT2;
93 if (z < 0.) scale2 = pT2;
96 double fac = (renormMultFacNow > 0.) ? renormMultFacNow : renormMultFac;
97 return as2Pi(scale2, orderSave, fac);
107 virtual double couplingScale2 (
double z,
double pT2,
double m2dip,
108 pair<int,bool> radBef, pair<int,bool> recBef) {
109 if ( radBef.second && recBef.second) {
110 if (asSchemeFSR == 0)
return pT2;
111 if (asSchemeFSR == 1)
return pT2;
112 if (asSchemeFSR == 2) {
113 double ycs = pT2/m2dip/(1.-z);
114 double sij = ycs*m2dip;
115 double sjk = (1.-z)*m2dip;
116 double sik = m2dip - sij - sjk;
119 }
else if ( radBef.second && !recBef.second) {
120 if (asSchemeFSR == 0)
return pT2;
121 if (asSchemeFSR == 1) {
123 double xcs = m2dip * zcs * (1.-zcs) / (pT2 + m2dip * zcs * (1.-zcs));
124 double kt2 = m2dip * (1.-xcs) / xcs * zcs * (1.-zcs);
127 if (asSchemeFSR == 2) {
129 double xcs = m2dip * zcs * (1.-zcs) / (pT2 + m2dip * zcs * (1.-zcs));
130 return (1-zcs)*(1-xcs)/xcs/zcs*m2dip;
132 }
else if (!radBef.second && recBef.second) {
133 if (asSchemeISR == 0)
return pT2;
134 if (asSchemeISR == 1) {
136 double ucs = pT2/m2dip / (1.-z);
137 double kt2 = m2dip * (1-xcs) / xcs * ucs * (1.-ucs);
140 if (asSchemeISR == 2) {
142 double ucs = pT2/m2dip / (1.-z);
143 return (1-xcs)/xcs*ucs/(1-ucs)*m2dip;
145 }
else if (!radBef.second && !recBef.second) {
146 if (asSchemeISR == 0)
return pT2;
147 if (asSchemeISR == 1) {
148 double xcs = ( z * (1.-z) - pT2/m2dip) / (1.-z);
149 double vcs = pT2/m2dip / (1.-z);
150 double kt2 = m2dip * vcs * (1.-xcs-vcs) / xcs;
153 if (asSchemeISR == 2) {
154 double xcs = ( z * (1.-z) - pT2/m2dip) / (1.-z);
155 double vcs = pT2/m2dip / (1.-z);
156 double sab = m2dip/xcs;
157 double saj = vcs*sab;
158 double sjb = sab-saj-m2dip;
159 return abs(saj*sjb/sab);
172 bool useBackboneGluons, doGeneralizedKernel;
173 double sCoef(
int powz) { vector<double> tmp
174 = settingsPtr->pvec(
"DireGeneralizedKernel:softCoeffs:" + name());
175 return tmp[powz+1]; }
176 double sExp(
int powz) { vector<double> tmp
177 = settingsPtr->pvec(
"DireGeneralizedKernel:softExps:" + name());
178 return tmp[powz+1]; }
179 double kCoef(
int powz) { vector<double> tmp
180 = settingsPtr->pvec(
"DireGeneralizedKernel:kappaCoeffs:" + name());
181 return tmp[powz+1]; }
182 double kExp(
int powz){ vector<double> tmp
183 = settingsPtr->pvec(
"DireGeneralizedKernel:kappaExps:" + name());
184 return tmp[powz+1]; }
185 double cCoef(
int powz) { vector<double> tmp
186 = settingsPtr->pvec(
"DireGeneralizedKernel:collCoeffs:" + name());
187 return tmp[powz+1]; }
188 double cExp(
int powz) { vector<double> tmp
189 = settingsPtr->pvec(
"DireGeneralizedKernel:collExps:" + name());
190 return tmp[powz+1]; }
191 double fCoef() {
double tmp
192 = settingsPtr->parm(
"DireGeneralizedKernel:finCoeffs:" + name());
195 bool hasMECBef(
const Event& state,
double pT2);
196 bool hasMECAft(
const Event& state,
double pT2);
210 coupSM, info, direInfo), is_sai_endpoint_save(
false) {}
212 bool canRadiate (
const Event&, pair<int,int>,
213 unordered_map<string,bool> = unordered_map<string,bool>(),
216 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
221 int nEmissions() {
return 2; }
223 bool canUseForBranching() {
return true; }
225 vector<pair<int,int> > radAndEmtCols(
int iRad,
int colType,
Event state);
228 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
229 int colEmtAfter,
int acolEmtAfter);
232 int radBefID(
int idRadAfter,
int idEmtAfter);
238 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
242 double pT2Old,
double m2dip,
int order = -1);
250 double counterTerm(
double si1,
double si2,
double sj1,
251 double sj2,
double sij,
double s12);
255 bool allow_xa_endpoint_for_kinematics() {
return false; }
258 void try_xa_endpoint() {
return; }
261 bool is_xa_endpoint() {
return false; }
262 bool is_sai_endpoint_save;
276 coupSM, info, direInfo), is_sai_endpoint_save(
false) {}
278 bool canRadiate (
const Event&, pair<int,int>,
279 unordered_map<string,bool> = unordered_map<string,bool>(),
282 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
286 int nEmissions() {
return 2; }
288 bool canUseForBranching() {
return true; }
290 vector<pair<int,int> > radAndEmtCols(
int iRad,
int colType,
Event state);
293 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
294 int colEmtAfter,
int acolEmtAfter);
297 int radBefID(
int idRadAfter,
int idEmtAfter);
303 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
307 double pT2Old,
double m2dip,
int order = -1);
315 double counterTerm(
double si1,
double si2,
double sj1,
316 double sj2,
double sij,
double s12);
320 bool allow_xa_endpoint_for_kinematics() {
return false; }
323 void try_xa_endpoint() {
return; }
326 bool is_xa_endpoint() {
return false; }
327 bool is_sai_endpoint_save;
342 coupSM, info, direInfo), idEmtAfterSave(idEmtAfterIn),
343 is_sai_endpoint_save(
false)
344 { nGluonToQuark = settingsPtr->mode(
"TimeShower:nGluonToQuark"); }
346 bool canRadiate (
const Event&, pair<int,int>,
347 unordered_map<string,bool> = unordered_map<string,bool>(),
350 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
357 int nEmissions() {
return 2;}
359 bool canUseForBranching() {
return true; }
361 vector<pair<int,int> > radAndEmtCols(
int iRad,
int colType,
Event state);
364 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
365 int colEmtAfter,
int acolEmtAfter);
368 int radBefID(
int idRadAfter,
int idEmtAfter);
374 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
378 double pT2Old,
double m2dip,
int order = -1);
386 int nGluonToQuark, idEmtAfterSave;
388 double counterTerm(
double si1,
double si2,
double sj1,
389 double sj2,
double sij,
double s12);
393 bool allow_xa_endpoint_for_kinematics() {
return false; }
396 void try_xa_endpoint() {
return; }
399 bool is_xa_endpoint() {
return false; }
400 bool is_sai_endpoint_save;
412 BeamParticlePtr beamA, BeamParticlePtr beamB,
CoupSM* coupSM,
Info* info,
415 coupSM, info, direInfo),
416 idEmtAfterSave(idEmtAfterIn), is_sai_endpoint_save(
false)
417 { nGluonToQuark = settingsPtr->mode(
"TimeShower:nGluonToQuark"); }
419 bool canRadiate (
const Event&, pair<int,int>,
420 unordered_map<string,bool> = unordered_map<string,bool>(),
423 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
427 int sign = (colType > 0) ? 1 : -1;
428 int idEmtAft = sign * idEmtAfterSave;
432 int nEmissions() {
return 2; }
434 bool canUseForBranching() {
return true; }
436 vector<pair<int,int> > radAndEmtCols(
int iRad,
int colType,
Event state);
439 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
440 int colEmtAfter,
int acolEmtAfter);
443 int radBefID(
int idRadAfter,
int idEmtAfter);
449 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
453 double pT2Old,
double m2dip,
int order = -1);
461 int nGluonToQuark, idEmtAfterSave;
463 double counterTerm(
double si1,
double si2,
double sj1,
464 double sj2,
double sij,
double s12);
468 bool allow_xa_endpoint_for_kinematics() {
return false; }
471 void try_xa_endpoint() {
return; }
474 bool is_xa_endpoint() {
return false; }
475 bool is_sai_endpoint_save;
489 coupSM, info, direInfo){}
491 bool canRadiate (
const Event&, pair<int,int>,
492 unordered_map<string,bool> = unordered_map<string,bool>(),
494 int nEmissions() {
return 1; }
496 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
508 int radBefID(
int idRadAfter,
int idEmtAfter);
513 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
514 int colEmtAfter,
int acolEmtAfter);
520 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
524 double pT2Old,
double m2dip,
int order = -1);
544 coupSM, info, direInfo){}
546 bool canRadiate (
const Event&, pair<int,int>,
547 unordered_map<string,bool> = unordered_map<string,bool>(),
550 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
553 int nEmissions() {
return 1; }
564 int radBefID(
int idRadAfter,
int idEmtAfter);
569 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
570 int colEmtAfter,
int acolEmtAfter);
576 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
580 double pT2Old,
double m2dip,
int order = -1);
600 coupSM, info, direInfo){}
602 bool canRadiate (
const Event&, pair<int,int>,
603 unordered_map<string,bool> = unordered_map<string,bool>(),
606 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
609 int nEmissions() {
return 1; }
620 int radBefID(
int idRadAfter,
int idEmtAfter);
625 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
626 int colEmtAfter,
int acolEmtAfter);
632 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
636 double pT2Old,
double m2dip,
int order = -1);
656 coupSM, info, direInfo){}
658 bool canRadiate (
const Event&, pair<int,int>,
659 unordered_map<string,bool> = unordered_map<string,bool>(),
662 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
665 int nEmissions() {
return 1; }
676 int radBefID(
int idRadAfter,
int idEmtAfter);
681 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
682 int colEmtAfter,
int acolEmtAfter);
688 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
692 double pT2Old,
double m2dip,
int order = -1);
712 coupSM, info, direInfo){}
714 bool canRadiate (
const Event&, pair<int,int>,
715 unordered_map<string,bool> = unordered_map<string,bool>(),
718 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
721 int nEmissions() {
return 1; }
722 bool isPartial() {
return false; }
732 int radBefID(
int idRadAfter,
int idEmtAfter);
737 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
738 int colEmtAfter,
int acolEmtAfter);
744 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
748 double pT2Old,
double m2dip,
int order = -1);
768 coupSM, info, direInfo){}
770 bool canRadiate (
const Event&, pair<int,int>,
771 unordered_map<string,bool> = unordered_map<string,bool>(),
774 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
777 int nEmissions() {
return 1; }
778 bool isPartial() {
return false; }
789 int radBefID(
int idRadAfter,
int idEmtAfter);
794 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
795 int colEmtAfter,
int acolEmtAfter);
801 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
805 double pT2Old,
double m2dip,
int order = -1);
825 coupSM, info, direInfo){}
827 bool canRadiate (
const Event&, pair<int,int>,
828 unordered_map<string,bool> = unordered_map<string,bool>(),
831 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
834 int nEmissions() {
return 2; }
835 bool isPartial() {
return false; }
846 int radBefID(
int idRadAfter,
int idEmtAfter);
849 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
850 int colEmtAfter,
int acolEmtAfter);
856 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
860 double pT2Old,
double m2dip,
int order = -1);
880 coupSM, info, direInfo){}
882 bool canRadiate (
const Event&, pair<int,int>,
883 unordered_map<string,bool> = unordered_map<string,bool>(),
886 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
889 int nEmissions() {
return 2; }
890 bool isPartial() {
return false; }
901 int radBefID(
int idRadAfter,
int idEmtAfter);
904 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
905 int colEmtAfter,
int acolEmtAfter);
911 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
915 double pT2Old,
double m2dip,
int order = -1);
935 coupSM, info, direInfo){}
937 bool canRadiate (
const Event&, pair<int,int>,
938 unordered_map<string,bool> = unordered_map<string,bool>(),
941 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
944 int nEmissions() {
return 1; }
955 int radBefID(
int idRadAfter,
int idEmtAfter);
960 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
961 int colEmtAfter,
int acolEmtAfter);
967 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
971 double pT2Old,
double m2dip,
int order = -1);
991 coupSM, info, direInfo){}
993 bool canRadiate (
const Event&, pair<int,int>,
994 unordered_map<string,bool> = unordered_map<string,bool>(),
997 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
1000 int nEmissions() {
return 1; }
1011 int radBefID(
int idRadAfter,
int idEmtAfter);
1016 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
1017 int colEmtAfter,
int acolEmtAfter);
1023 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1027 double pT2Old,
double m2dip,
int order = -1);
1047 coupSM, info, direInfo){}
1049 bool canRadiate (
const Event&, pair<int,int>,
1050 unordered_map<string,bool> = unordered_map<string,bool>(),
1053 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
1056 int nEmissions() {
return 1; }
1067 int radBefID(
int idRadAfter,
int idEmtAfter);
1072 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
1073 int colEmtAfter,
int acolEmtAfter);
1079 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1083 double pT2Old,
double m2dip,
int order = -1);
1103 coupSM, info, direInfo){}
1105 bool canRadiate (
const Event&, pair<int,int>,
1106 unordered_map<string,bool> = unordered_map<string,bool>(),
1109 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
1112 int nEmissions() {
return 1; }
1113 bool isPartial() {
return false; }
1124 int radBefID(
int idRadAfter,
int idEmtAfter);
1129 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
1130 int colEmtAfter,
int acolEmtAfter);
1136 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1140 double pT2Old,
double m2dip,
int order = -1);
1160 coupSM, info, direInfo){}
1162 bool canRadiate (
const Event&, pair<int,int>,
1163 unordered_map<string,bool> = unordered_map<string,bool>(),
1166 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
1169 int nEmissions() {
return 1; }
1170 bool isPartial() {
return false; }
1181 int radBefID(
int idRadAfter,
int idEmtAfter);
1186 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
1187 int colEmtAfter,
int acolEmtAfter);
1193 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1197 double pT2Old,
double m2dip,
int order = -1);
1218 coupSM, info, direInfo){}
1220 bool canRadiate (
const Event&, pair<int,int>,
1221 unordered_map<string,bool> = unordered_map<string,bool>(),
1224 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
1227 int nEmissions() {
return 2; }
1228 bool isPartial() {
return false; }
1239 int radBefID(
int idRadAfter,
int idEmtAfter);
1242 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
1243 int colEmtAfter,
int acolEmtAfter);
1249 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1253 double pT2Old,
double m2dip,
int order = -1);
1273 coupSM, info, direInfo){}
1275 bool canRadiate (
const Event&, pair<int,int>,
1276 unordered_map<string,bool> = unordered_map<string,bool>(),
1279 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
1282 int nEmissions() {
return 2; }
1283 bool isPartial() {
return false; }
1294 int radBefID(
int idRadAfter,
int idEmtAfter);
1297 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
1298 int colEmtAfter,
int acolEmtAfter);
1304 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1308 double pT2Old,
double m2dip,
int order = -1);
1328 coupSM, info, direInfo){}
1330 bool canRadiate (
const Event&, pair<int,int>,
1331 unordered_map<string,bool> = unordered_map<string,bool>(),
1334 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
1337 int nEmissions() {
return 1; }
1340 bool canUseForBranching() {
return true; }
1341 bool isPartial() {
return false; }
1342 vector<pair<int,int> > radAndEmtCols(
int iRad,
int,
Event state);
1351 int radBefID(
int idRadAfter,
int idEmtAfter);
1356 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
1357 int colEmtAfter,
int acolEmtAfter);
1363 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1367 double pT2Old,
double m2dip,
int order = -1);
1388 coupSM, info, direInfo){}
1390 bool canRadiate (
const Event&, pair<int,int>,
1391 unordered_map<string,bool> = unordered_map<string,bool>(),
1394 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
1397 int nEmissions() {
return 1; }
1400 bool canUseForBranching() {
return true; }
1401 bool isPartial() {
return false; }
1402 vector<pair<int,int> > radAndEmtCols(
int iRad,
int,
Event state);
1411 int radBefID(
int idRadAfter,
int idEmtAfter);
1416 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
1417 int colEmtAfter,
int acolEmtAfter);
1423 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1427 double pT2Old,
double m2dip,
int order = -1);
1447 coupSM, info, direInfo){}
1449 bool canRadiate (
const Event&, pair<int,int>,
1450 unordered_map<string,bool> = unordered_map<string,bool>(),
1453 bool canRadiate (
const Event&,
int iRadBef,
int iRecBef,
1456 int nEmissions() {
return 1; }
1459 bool canUseForBranching() {
return true; }
1460 bool isPartial() {
return false; }
1461 vector<pair<int,int> > radAndEmtCols(
int iRad,
int,
Event state);
1470 int radBefID(
int idRadAfter,
int idEmtAfter);
1475 pair<int,int>
radBefCols(
int colRadAfter,
int acolRadAfter,
1476 int colEmtAfter,
int acolEmtAfter);
1482 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1486 double pT2Old,
double m2dip,
int order = -1);
double getNF(double pT2)
AUXILIARY FUNCTIONS.
Definition: DireSplittingsQCD.cc:131
Definition: DireSplittingsQCD.h:983
Definition: DireSplittingsQCD.h:592
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:470
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:392
The Event class holds all info on the generated event.
Definition: Event.h:408
void try_sai_endpoint()
Functions to set if kernel should contribute to a kinematical endpoint.
Definition: DireSplittingsQCD.h:395
static const double SMALL_TEVOL
The SplittingQCD class.
Definition: DireSplittingsQCD.h:52
Definition: DireSplittingsQCD.h:927
Definition: DireSplittingsQCD.h:1265
Definition: DireSplittingsQCD.h:27
Definition: DireSplittingsQCD.h:333
virtual int couplingType(int, int)
Definition: DireSplittingsQCD.h:85
virtual double gaugeFactor(int, int)
Return color factor for splitting.
Definition: DireSplittings.h:157
Definition: DireSplittingsQCD.h:202
Definition: DireSplittingsQCD.h:1039
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:81
Definition: DireSplittingsQCD.h:648
bool allow_sai_endpoint_for_kinematics()
Treatment of additional virtual corrections.
Definition: DireSplittingsQCD.h:467
Definition: DireBasics.h:374
double DiLog(double x)
Function to calculate dilogarithm.
Definition: DireSplittingsQCD.cc:285
Definition: DireSplittingsQCD.h:536
Definition: DireSplittingsQCD.h:1320
int kinMap()
Definition: DireSplittingsQCD.h:433
int kinMap()
Definition: DireSplittingsQCD.h:222
Definition: DireSplittingsQCD.h:817
double CA
VARIABLES.
Definition: DireSplittingsQCD.h:45
double polevl(double x, double *coef, int N)
Helper function to calculate dilogarithm.
Definition: DireSplittingsQCD.cc:265
Definition: DireSplittingsQCD.h:1380
Definition: DireSplittingsQCD.h:704
Definition: DireSplittingsQCD.h:1152
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:257
DireSplittingQCD(string idIn, int softRS, Settings *settings, ParticleData *particleData, Rndm *rndm, BeamParticlePtr beamA, BeamParticlePtr beamB, CoupSM *coupSM, Info *info, DireInfo *direInfo)
Constructor and destructor.
Definition: DireSplittingsQCD.h:32
virtual bool calc(const Event &=Event(), int=-1)
Functions to calculate the kernel from SplitInfo information.
Definition: DireSplittings.h:203
Definition: DireSplittingsQCD.h:872
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:86
bool is_sai_endpoint()
Return endpoint information.
Definition: DireSplittingsQCD.h:260
bool is_sai_endpoint()
Return endpoint information.
Definition: DireSplittingsQCD.h:325
virtual int kinMap()
Definition: DireSplittings.h:123
virtual vector< int > radAndEmt(int, int colType)
Definition: DireSplittingsQCD.h:426
Definition: DireSplittingsQCD.h:760
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:322
vector< int > radAndEmt(int idDaughter, int)
Definition: DireSplittingsQCD.h:219
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:287
Class inheriting from SplittingQCD class.
Definition: DireSplittingsQCD.h:1210
Definition: DireSplittingsQCD.h:268
bool allow_sai_endpoint_for_kinematics()
Treatment of additional virtual corrections.
Definition: DireSplittingsQCD.h:254
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:358
Definition: DireSplittingsQCD.h:1439
bool is_sai_endpoint()
Return endpoint information.
Definition: DireSplittingsQCD.h:398
int asSchemeISR
Definition: DireSplittingsQCD.h:106
bool allow_sai_endpoint_for_kinematics()
Treatment of additional virtual corrections.
Definition: DireSplittingsQCD.h:319
vector< int > radAndEmt(int, int)
Definition: DireSplittingsQCD.h:285
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:481
virtual pair< int, int > radBefCols(int, int, int, int)
Return colours of recombined radiator (before splitting!)
Definition: DireSplittings.h:153
Definition: DireSplittingsQCD.h:1095
virtual double getJacobian(const Event &=Event(), PartonSystems *partonSystems=0)
Definition: DireSplittingsQCD.cc:591
virtual vector< int > radAndEmt(int idRadBef, int)
Definition: DireSplittingsQCD.h:353
Definition: DireBasics.h:82
virtual int sisterID(int)
Return id of emission.
Definition: DireSplittings.h:129
Definition: Settings.h:196
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:473
virtual int motherID(int)
Return id of mother after splitting.
Definition: DireSplittings.h:126
Definition: DireSplittingsQCD.h:406