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;
53 static const double SMALL_TEVOL;
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.);
67 double softRescaleInt(
int order);
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; }
82 virtual vector <int> radAndEmt(
int idDaughter,
int)
84 virtual bool isPartial() {
return true; }
86 virtual int couplingType (
int,
int) {
return 1; }
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);
107 int asSchemeISR, asSchemeFSR;
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);
168 virtual double getJacobian(
const Event& =
Event(),
170 virtual unordered_map<string, double> getPhasespaceVars(
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,
220 vector <int> radAndEmt(
int idDaughter,
int) {
222 int nEmissions() {
return 2; }
223 int kinMap() {
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);
235 double gaugeFactor (
int=0,
int=0 );
236 double symmetryFactor (
int=0,
int=0 );
239 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
242 double overestimateInt(
double zMinAbs,
double zMaxAbs,
243 double pT2Old,
double m2dip,
int order = -1);
246 double overestimateDiff(
double z,
double m2dip,
int order = -1);
249 bool calc(
const Event& state =
Event(),
int order = -1);
251 double counterTerm(
double si1,
double si2,
double sj1,
252 double sj2,
double sij,
double s12);
255 bool allow_sai_endpoint_for_kinematics() {
return true; }
256 bool allow_xa_endpoint_for_kinematics() {
return false; }
258 void try_sai_endpoint() { is_sai_endpoint_save = (rndmPtr->flat() < 0.5); }
259 void try_xa_endpoint() {
return; }
261 bool is_sai_endpoint() {
return is_sai_endpoint_save; }
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; }
288 int kinMap() {
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);
300 double gaugeFactor (
int=0,
int=0 );
301 double symmetryFactor (
int=0,
int=0 );
304 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
307 double overestimateInt(
double zMinAbs,
double zMaxAbs,
308 double pT2Old,
double m2dip,
int order = -1);
311 double overestimateDiff(
double z,
double m2dip,
int order = -1);
314 bool calc(
const Event& state =
Event(),
int order = -1);
316 double counterTerm(
double si1,
double si2,
double sj1,
317 double sj2,
double sij,
double s12);
320 bool allow_sai_endpoint_for_kinematics() {
return true; }
321 bool allow_xa_endpoint_for_kinematics() {
return false; }
323 void try_sai_endpoint() { is_sai_endpoint_save = (rndmPtr->flat() < 0.5); }
324 void try_xa_endpoint() {
return; }
326 bool is_sai_endpoint() {
return is_sai_endpoint_save; }
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,
354 virtual vector <int> radAndEmt(
int idRadBef,
int) {
358 int nEmissions() {
return 2;}
359 int kinMap() {
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);
371 double gaugeFactor (
int=0,
int=0 );
372 double symmetryFactor (
int=0,
int=0 );
375 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
378 double overestimateInt(
double zMinAbs,
double zMaxAbs,
379 double pT2Old,
double m2dip,
int order = -1);
382 double overestimateDiff(
double z,
double m2dip,
int order = -1);
385 bool calc(
const Event& state =
Event(),
int order = -1);
387 int nGluonToQuark, idEmtAfterSave;
389 double counterTerm(
double si1,
double si2,
double sj1,
390 double sj2,
double sij,
double s12);
393 bool allow_sai_endpoint_for_kinematics() {
return true; }
394 bool allow_xa_endpoint_for_kinematics() {
return false; }
396 void try_sai_endpoint() { is_sai_endpoint_save = (rndmPtr->flat() < 0.5); }
397 void try_xa_endpoint() {
return; }
399 bool is_sai_endpoint() {
return is_sai_endpoint_save; }
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,
427 virtual vector <int> radAndEmt(
int,
int colType) {
428 int sign = (colType > 0) ? 1 : -1;
429 int idEmtAft = sign * idEmtAfterSave;
433 int nEmissions() {
return 2; }
434 int kinMap() {
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);
446 double gaugeFactor (
int=0,
int=0 );
447 double symmetryFactor (
int=0,
int=0 );
450 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
453 double overestimateInt(
double zMinAbs,
double zMaxAbs,
454 double pT2Old,
double m2dip,
int order = -1);
457 double overestimateDiff(
double z,
double m2dip,
int order = -1);
460 bool calc(
const Event& state =
Event(),
int order = -1);
462 int nGluonToQuark, idEmtAfterSave;
464 double counterTerm(
double si1,
double si2,
double sj1,
465 double sj2,
double sij,
double s12);
468 bool allow_sai_endpoint_for_kinematics() {
return true; }
469 bool allow_xa_endpoint_for_kinematics() {
return false; }
471 void try_sai_endpoint() { is_sai_endpoint_save = (rndmPtr->flat() < 0.5); }
472 void try_xa_endpoint() {
return; }
474 bool is_sai_endpoint() {
return is_sai_endpoint_save; }
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,
503 int motherID(
int idDaughter);
506 int sisterID(
int idDaughter);
509 int radBefID(
int idRadAfter,
int idEmtAfter);
511 vector <int> recPositions(
const Event&,
int,
int);
514 pair<int,int> radBefCols(
int colRadAfter,
int acolRadAfter,
515 int colEmtAfter,
int acolEmtAfter);
517 double gaugeFactor (
int=0,
int=0 );
518 double symmetryFactor (
int=0,
int=0 );
521 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
524 double overestimateInt(
double zMinAbs,
double zMaxAbs,
525 double pT2Old,
double m2dip,
int order = -1);
528 double overestimateDiff(
double z,
double m2dip,
int order = -1);
531 bool calc(
const Event& state =
Event(),
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; }
559 int motherID(
int idDaughter);
562 int sisterID(
int idDaughter);
565 int radBefID(
int idRadAfter,
int idEmtAfter);
567 vector <int> recPositions(
const Event&,
int,
int);
570 pair<int,int> radBefCols(
int colRadAfter,
int acolRadAfter,
571 int colEmtAfter,
int acolEmtAfter);
573 double gaugeFactor (
int=0,
int=0 );
574 double symmetryFactor (
int=0,
int=0 );
577 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
580 double overestimateInt(
double zMinAbs,
double zMaxAbs,
581 double pT2Old,
double m2dip,
int order = -1);
584 double overestimateDiff(
double z,
double m2dip,
int order = -1);
587 bool calc(
const Event& state =
Event(),
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; }
615 int motherID(
int idDaughter);
618 int sisterID(
int idDaughter);
621 int radBefID(
int idRadAfter,
int idEmtAfter);
623 vector <int> recPositions(
const Event&,
int,
int);
626 pair<int,int> radBefCols(
int colRadAfter,
int acolRadAfter,
627 int colEmtAfter,
int acolEmtAfter);
629 double gaugeFactor (
int=0,
int=0 );
630 double symmetryFactor (
int=0,
int=0 );
633 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
636 double overestimateInt(
double zMinAbs,
double zMaxAbs,
637 double pT2Old,
double m2dip,
int order = -1);
640 double overestimateDiff(
double z,
double m2dip,
int order = -1);
643 bool calc(
const Event& state =
Event(),
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; }
671 int motherID(
int idDaughter);
674 int sisterID(
int idDaughter);
677 int radBefID(
int idRadAfter,
int idEmtAfter);
679 vector <int> recPositions(
const Event&,
int,
int);
682 pair<int,int> radBefCols(
int colRadAfter,
int acolRadAfter,
683 int colEmtAfter,
int acolEmtAfter);
685 double gaugeFactor (
int=0,
int=0 );
686 double symmetryFactor (
int=0,
int=0 );
689 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
692 double overestimateInt(
double zMinAbs,
double zMaxAbs,
693 double pT2Old,
double m2dip,
int order = -1);
696 double overestimateDiff(
double z,
double m2dip,
int order = -1);
699 bool calc(
const Event& state =
Event(),
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; }
727 int motherID(
int idDaughter);
730 int sisterID(
int idDaughter);
733 int radBefID(
int idRadAfter,
int idEmtAfter);
735 vector <int> recPositions(
const Event&,
int,
int);
738 pair<int,int> radBefCols(
int colRadAfter,
int acolRadAfter,
739 int colEmtAfter,
int acolEmtAfter);
741 double gaugeFactor (
int=0,
int=0 );
742 double symmetryFactor (
int=0,
int=0 );
745 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
748 double overestimateInt(
double zMinAbs,
double zMaxAbs,
749 double pT2Old,
double m2dip,
int order = -1);
752 double overestimateDiff(
double z,
double m2dip,
int order = -1);
755 bool calc(
const Event& state =
Event(),
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; }
784 int motherID(
int idDaughter);
787 int sisterID(
int idDaughter);
790 int radBefID(
int idRadAfter,
int idEmtAfter);
792 vector <int> recPositions(
const Event&,
int,
int);
795 pair<int,int> radBefCols(
int colRadAfter,
int acolRadAfter,
796 int colEmtAfter,
int acolEmtAfter);
798 double gaugeFactor (
int=0,
int=0 );
799 double symmetryFactor (
int=0,
int=0 );
802 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
805 double overestimateInt(
double zMinAbs,
double zMaxAbs,
806 double pT2Old,
double m2dip,
int order = -1);
809 double overestimateDiff(
double z,
double m2dip,
int order = -1);
812 bool calc(
const Event& state =
Event(),
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; }
841 int motherID(
int idDaughter);
844 int sisterID(
int idDaughter);
847 int radBefID(
int idRadAfter,
int idEmtAfter);
850 pair<int,int> radBefCols(
int colRadAfter,
int acolRadAfter,
851 int colEmtAfter,
int acolEmtAfter);
853 double gaugeFactor (
int=0,
int=0 );
854 double symmetryFactor (
int=0,
int=0 );
857 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
860 double overestimateInt(
double zMinAbs,
double zMaxAbs,
861 double pT2Old,
double m2dip,
int order = -1);
864 double overestimateDiff(
double z,
double m2dip,
int order = -1);
867 bool calc(
const Event& state =
Event(),
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; }
896 int motherID(
int idDaughter);
899 int sisterID(
int idDaughter);
902 int radBefID(
int idRadAfter,
int idEmtAfter);
905 pair<int,int> radBefCols(
int colRadAfter,
int acolRadAfter,
906 int colEmtAfter,
int acolEmtAfter);
908 double gaugeFactor (
int=0,
int=0 );
909 double symmetryFactor (
int=0,
int=0 );
912 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
915 double overestimateInt(
double zMinAbs,
double zMaxAbs,
916 double pT2Old,
double m2dip,
int order = -1);
919 double overestimateDiff(
double z,
double m2dip,
int order = -1);
922 bool calc(
const Event& state =
Event(),
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; }
950 int motherID(
int idDaughter);
953 int sisterID(
int idDaughter);
956 int radBefID(
int idRadAfter,
int idEmtAfter);
958 vector <int> recPositions(
const Event&,
int,
int);
961 pair<int,int> radBefCols(
int colRadAfter,
int acolRadAfter,
962 int colEmtAfter,
int acolEmtAfter);
964 double gaugeFactor (
int=0,
int=0 );
965 double symmetryFactor (
int=0,
int=0 );
968 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
971 double overestimateInt(
double zMinAbs,
double zMaxAbs,
972 double pT2Old,
double m2dip,
int order = -1);
975 double overestimateDiff(
double z,
double m2dip,
int order = -1);
978 bool calc(
const Event& state =
Event(),
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; }
1006 int motherID(
int idDaughter);
1009 int sisterID(
int idDaughter);
1012 int radBefID(
int idRadAfter,
int idEmtAfter);
1014 vector <int> recPositions(
const Event&,
int,
int);
1017 pair<int,int> radBefCols(
int colRadAfter,
int acolRadAfter,
1018 int colEmtAfter,
int acolEmtAfter);
1020 double gaugeFactor (
int=0,
int=0 );
1021 double symmetryFactor (
int=0,
int=0 );
1024 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1027 double overestimateInt(
double zMinAbs,
double zMaxAbs,
1028 double pT2Old,
double m2dip,
int order = -1);
1031 double overestimateDiff(
double z,
double m2dip,
int order = -1);
1034 bool calc(
const Event& state =
Event(),
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; }
1062 int motherID(
int idDaughter);
1065 int sisterID(
int idDaughter);
1068 int radBefID(
int idRadAfter,
int idEmtAfter);
1070 vector <int> recPositions(
const Event&,
int,
int);
1073 pair<int,int> radBefCols(
int colRadAfter,
int acolRadAfter,
1074 int colEmtAfter,
int acolEmtAfter);
1076 double gaugeFactor (
int=0,
int=0 );
1077 double symmetryFactor (
int=0,
int=0 );
1080 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1083 double overestimateInt(
double zMinAbs,
double zMaxAbs,
1084 double pT2Old,
double m2dip,
int order = -1);
1087 double overestimateDiff(
double z,
double m2dip,
int order = -1);
1090 bool calc(
const Event& state =
Event(),
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; }
1119 int motherID(
int idDaughter);
1122 int sisterID(
int idDaughter);
1125 int radBefID(
int idRadAfter,
int idEmtAfter);
1127 vector <int> recPositions(
const Event&,
int,
int);
1130 pair<int,int> radBefCols(
int colRadAfter,
int acolRadAfter,
1131 int colEmtAfter,
int acolEmtAfter);
1133 double gaugeFactor (
int=0,
int=0 );
1134 double symmetryFactor (
int=0,
int=0 );
1137 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1140 double overestimateInt(
double zMinAbs,
double zMaxAbs,
1141 double pT2Old,
double m2dip,
int order = -1);
1144 double overestimateDiff(
double z,
double m2dip,
int order = -1);
1147 bool calc(
const Event& state =
Event(),
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; }
1176 int motherID(
int idDaughter);
1179 int sisterID(
int idDaughter);
1182 int radBefID(
int idRadAfter,
int idEmtAfter);
1184 vector <int> recPositions(
const Event&,
int,
int);
1187 pair<int,int> radBefCols(
int colRadAfter,
int acolRadAfter,
1188 int colEmtAfter,
int acolEmtAfter);
1190 double gaugeFactor (
int=0,
int=0 );
1191 double symmetryFactor (
int=0,
int=0 );
1194 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1197 double overestimateInt(
double zMinAbs,
double zMaxAbs,
1198 double pT2Old,
double m2dip,
int order = -1);
1201 double overestimateDiff(
double z,
double m2dip,
int order = -1);
1204 bool calc(
const Event& state =
Event(),
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; }
1234 int motherID(
int idDaughter);
1237 int sisterID(
int idDaughter);
1240 int radBefID(
int idRadAfter,
int idEmtAfter);
1243 pair<int,int> radBefCols(
int colRadAfter,
int acolRadAfter,
1244 int colEmtAfter,
int acolEmtAfter);
1246 double gaugeFactor (
int=0,
int=0 );
1247 double symmetryFactor (
int=0,
int=0 );
1250 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1253 double overestimateInt(
double zMinAbs,
double zMaxAbs,
1254 double pT2Old,
double m2dip,
int order = -1);
1257 double overestimateDiff(
double z,
double m2dip,
int order = -1);
1260 bool calc(
const Event& state =
Event(),
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; }
1289 int motherID(
int idDaughter);
1292 int sisterID(
int idDaughter);
1295 int radBefID(
int idRadAfter,
int idEmtAfter);
1298 pair<int,int> radBefCols(
int colRadAfter,
int acolRadAfter,
1299 int colEmtAfter,
int acolEmtAfter);
1301 double gaugeFactor (
int=0,
int=0 );
1302 double symmetryFactor (
int=0,
int=0 );
1305 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1308 double overestimateInt(
double zMinAbs,
double zMaxAbs,
1309 double pT2Old,
double m2dip,
int order = -1);
1312 double overestimateDiff(
double z,
double m2dip,
int order = -1);
1315 bool calc(
const Event& state =
Event(),
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);
1346 int motherID(
int idDaughter);
1349 int sisterID(
int idDaughter);
1352 int radBefID(
int idRadAfter,
int idEmtAfter);
1354 vector <int> recPositions(
const Event&,
int,
int);
1357 pair<int,int> radBefCols(
int colRadAfter,
int acolRadAfter,
1358 int colEmtAfter,
int acolEmtAfter);
1360 double gaugeFactor (
int=0,
int=0 );
1361 double symmetryFactor (
int=0,
int=0 );
1364 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1367 double overestimateInt(
double zMinAbs,
double zMaxAbs,
1368 double pT2Old,
double m2dip,
int order = -1);
1371 double overestimateDiff(
double z,
double m2dip,
int order = -1);
1374 bool calc(
const Event& state =
Event(),
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);
1406 int motherID(
int idDaughter);
1409 int sisterID(
int idDaughter);
1412 int radBefID(
int idRadAfter,
int idEmtAfter);
1414 vector <int> recPositions(
const Event&,
int,
int);
1417 pair<int,int> radBefCols(
int colRadAfter,
int acolRadAfter,
1418 int colEmtAfter,
int acolEmtAfter);
1420 double gaugeFactor (
int=0,
int=0 );
1421 double symmetryFactor (
int=0,
int=0 );
1424 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1427 double overestimateInt(
double zMinAbs,
double zMaxAbs,
1428 double pT2Old,
double m2dip,
int order = -1);
1431 double overestimateDiff(
double z,
double m2dip,
int order = -1);
1434 bool calc(
const Event& state =
Event(),
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);
1465 int motherID(
int idDaughter);
1468 int sisterID(
int idDaughter);
1471 int radBefID(
int idRadAfter,
int idEmtAfter);
1473 vector <int> recPositions(
const Event&,
int,
int);
1476 pair<int,int> radBefCols(
int colRadAfter,
int acolRadAfter,
1477 int colEmtAfter,
int acolEmtAfter);
1479 double gaugeFactor (
int=0,
int=0 );
1480 double symmetryFactor (
int=0,
int=0 );
1483 double zSplit(
double zMinAbs,
double zMaxAbs,
double m2dip);
1486 double overestimateInt(
double zMinAbs,
double zMaxAbs,
1487 double pT2Old,
double m2dip,
int order = -1);
1490 double overestimateDiff(
double z,
double m2dip,
int order = -1);
1493 bool calc(
const Event& state =
Event(),
int order = -1);
1501 #endif // end Pythia8_DireSplittingsQCD_H