11 #ifndef Pythia8_VinciaAntennaFunctions_H 12 #define Pythia8_VinciaAntennaFunctions_H 15 #include "Pythia8/Basics.h" 16 #include "Pythia8/Event.h" 17 #include "Pythia8/PythiaStdlib.h" 18 #include "Pythia8/ExternalMEs.h" 21 #include "Pythia8/VinciaCommon.h" 38 double Pg2gg(
double z,
int hA=9,
int hB=9,
int hC=9);
39 double Pg2qq(
double z,
int hA=9,
int hB=9,
int hC=9,
double mu=0.);
40 double Pq2qg(
double z,
int hA=9,
int hB=9,
int hC=9,
double mu=0.);
41 double Pq2gq(
double z,
int hA=9,
int hB=9,
int hC=9,
double mu=0.);
44 double Pg2qq(
double z,
double mu) {
return Pg2qq(z, 9, 9, 9, mu);}
45 double Pq2qg(
double z,
double mu) {
return Pq2qg(z, 9, 9, 9, mu);}
46 double Pq2gq(
double z,
double mu) {
return Pq2gq(z, 9, 9, 9, mu);}
50 double Pg2ggLin(
double z,
int polA = 9,
int polB = 9,
int polC = 9);
51 double Pg2qqLin(
double z,
int polA = 9,
int hB = 9,
int hC = 9,
53 double Pq2qgLin(
double z,
int hA = 9,
int hB=9,
int polC = 9,
55 double Pq2gqLin(
double z,
int hA = 9,
int polB=9,
int hC = 9,
76 virtual string vinciaName()
const = 0;
79 virtual int idA()
const = 0;
80 virtual int idB()
const = 0;
81 virtual int id1()
const = 0;
84 virtual double antFun(vector<double> invariants, vector<double> mNew,
85 vector<int> helBef, vector<int> helNew) = 0;
89 virtual double AltarelliParisi(vector<double> invariants,
90 vector<double> mNew, vector<int> helBef, vector<int> helNew) = 0;
97 return id2str(id1()) +
"/" + id2str(idA()) + id2str(idB());}
103 virtual bool check();
107 if (masses->size() >= 3) {
108 mi = masses->at(0); mj = masses->at(1); mk = masses->at(2);
109 }
else {mi = 0.0; mj = 0.0; mk = 0.0;}}
112 virtual int initHel(vector<int>* helBef, vector<int>* helNew);
115 double antFun(vector<double> invariants, vector<double> masses) {
116 return antFun(invariants, masses, hDum, hDum);}
119 double antFun(vector<double> invariants) {
120 return antFun(invariants, mDum, hDum, hDum);}
124 return AltarelliParisi(invariants, masses, hDum, hDum);}
128 return AltarelliParisi(invariants, mDum, hDum, hDum);}
131 void initPtr(
Info* infoPtrIn,
DGLAP* dglapPtrIn);
135 int kineMap() {
return kineMapSav;}
136 double alpha() {
return alphaSav;}
137 double sectorDamp() {
return sectorDampSav;}
140 double zA(vector<double> invariants) {
141 double yij = invariants[1]/invariants[0];
142 double yjk = invariants[2]/invariants[0];
143 return (1.-yjk)/(1.+yij);}
144 double zB(vector<double> invariants) {
145 double yij = invariants[1]/invariants[0];
146 double yjk = invariants[2]/invariants[0];
147 return (1.-yij)/(1.+yjk);}
150 string id2str(
int id)
const;
155 bool isInitPtr{
false}, isInit{
false};
158 double chargeFacSav{0.0};
159 int kineMapSav{0}, modeSLC{-1};
160 bool sectorShower{
false};
163 double alphaSav{0.0};
166 double sectorDampSav{0.0};
169 double term{}, preFacFiniteTermSav{0.0}, antMinSav{0.0};
173 double mi{0.0}, mj{0.0}, mk{0.0};
174 int hA{9}, hB{9}, hi{9}, hj{9}, hk{9};
179 map<int, bool> LH{{9,
true}, {1,
false}, {-1,
true}};
180 map<int, bool> RH{{9,
true}, {1,
true}, {-1,
false}};
196 vector<double> mDum{0, 0, 0, 0};
197 vector<int> hDum{9, 9, 9, 9};
210 virtual string vinciaName()
const {
return "Vincia:QQEmitFF";};
213 virtual int idA()
const {
return 1;}
214 virtual int idB()
const {
return -1;}
215 virtual int id1()
const {
return 21;}
218 virtual double antFun(vector<double> invariants, vector<double> mNew,
219 vector<int> helBef, vector<int> helNew);
223 virtual double AltarelliParisi(vector<double> invariants,
224 vector<double>, vector<int> helBef, vector<int> helNew);
237 virtual string vinciaName()
const {
return "Vincia:QGEmitFF";};
240 virtual int idA()
const {
return 1;}
241 virtual int idB()
const {
return 21;}
242 virtual int id1()
const {
return 21;}
245 virtual double antFun(vector<double> invariants,
246 vector<double> mNew, vector<int> helBef, vector<int> helNew);
249 virtual double AltarelliParisi(vector<double> invariants,
250 vector<double> , vector<int> helBef, vector<int> helNew);
263 virtual string vinciaName()
const {
return "Vincia:GQEmitFF";};
266 virtual int idA()
const {
return 21;}
267 virtual int idB()
const {
return -1;}
268 virtual int id1()
const {
return 21;}
271 virtual double antFun(vector<double> invariants,
272 vector<double> mNew, vector<int> helBef, vector<int> helNew);
275 virtual double AltarelliParisi(vector<double> invariants,
276 vector<double>, vector<int> helBef, vector<int> helNew);
289 virtual string vinciaName()
const {
return "Vincia:GGEmitFF";};
292 virtual int idA()
const {
return 21;}
293 virtual int idB()
const {
return 21;}
294 virtual int id1()
const {
return 21;}
297 virtual double antFun(vector<double> invariants,
298 vector<double> mNew, vector<int> helBef, vector<int> helNew);
301 virtual double AltarelliParisi(vector<double> invariants,
302 vector<double>, vector<int> helBef, vector<int> helNew);
315 virtual string vinciaName()
const {
return "Vincia:GXSplitFF";};
318 virtual int idA()
const {
return 21;}
319 virtual int idB()
const {
return 0;}
320 virtual int id1()
const {
return -1;}
323 virtual double antFun(vector<double> invariants,
324 vector<double> mNew, vector<int> helBef, vector<int> helNew);
327 virtual double AltarelliParisi(vector<double> invariants,
328 vector<double>, vector<int> helBef, vector<int> helNew);
349 virtual double antFun(vector<double> invariants,
350 vector<double> mNew, vector<int> helBef, vector<int> helNew);
364 virtual int idA()
const {
return 21;}
365 virtual int idB()
const {
return -1;}
366 virtual int id1()
const {
return 21;}
369 virtual double antFun(vector<double> invariants,
370 vector<double> mNew, vector<int> helBef, vector<int> helNew);
373 virtual double AltarelliParisi(vector<double> invariants,
374 vector<double>, vector<int> helBef, vector<int> helNew);
388 virtual double antFun(vector<double> invariants, vector<double> mNew,
389 vector<int> helBef, vector<int> helNew);
403 virtual double antFun(vector<double> invariants, vector<double> mNew,
404 vector<int> helBef, vector<int> helNew);
421 virtual bool init()
override;
425 return "Vincia:AntennaFunctionIX";}
428 virtual int idA()
const override {
return 0;}
429 virtual int idB()
const override {
return 0;}
430 virtual int id0()
const {
return 0;}
431 virtual int id1()
const override {
return 0;}
432 virtual int id2()
const {
return 0;}
435 virtual double zA(vector<double> invariants) {
double sAB = invariants[0];
436 double sjb = invariants[2];
return sAB/(sAB+sjb);}
437 virtual double zB(vector<double> invariants) {
double sAB = invariants[0];
438 double saj = invariants[1];
return sAB/(sAB+saj);}
444 virtual bool check()
override;
457 virtual string vinciaName()
const override {
return "Vincia:QQEmitII";}
460 virtual int idA()
const override {
return 1;}
461 virtual int idB()
const override {
return -1;}
462 virtual int id0()
const override {
return 1;}
463 virtual int id1()
const override {
return 21;}
464 virtual int id2()
const override {
return -1;}
467 virtual double antFun(vector<double> invariants, vector<double> masses,
468 vector<int> helBef, vector<int> helNew)
override;
471 virtual double AltarelliParisi(vector<double> invariants,
472 vector<double>, vector<int> helBef, vector<int> helNew)
override;
485 virtual string vinciaName()
const override {
return "Vincia:GQEmitII";}
488 virtual int idA()
const override {
return 21;}
489 virtual int idB()
const override {
return 1;}
490 virtual int id0()
const override {
return 21;}
491 virtual int id1()
const override {
return 21;}
492 virtual int id2()
const override {
return 1;}
495 virtual double antFun(vector<double> invariants, vector<double> masses,
496 vector<int> helBef, vector<int> helNew)
override;
499 virtual double AltarelliParisi(vector<double> invariants,
500 vector<double>, vector<int> helBef, vector<int> helNew)
override;
513 virtual string vinciaName()
const override {
return "Vincia:GGEmitII";}
516 virtual int idA()
const override {
return 21;}
517 virtual int idB()
const override {
return 21;}
518 virtual int id0()
const override {
return 21;}
519 virtual int id1()
const override {
return 21;}
520 virtual int id2()
const override {
return 21;}
523 virtual double antFun(vector<double> invariants, vector<double> masses,
524 vector<int> helBef, vector<int> helNew)
override;
527 virtual double AltarelliParisi(vector<double> invariants,
528 vector<double>, vector<int> helBef, vector<int> helNew)
override;
543 virtual string vinciaName()
const override {
return "Vincia:QXConvII";}
546 virtual int idA()
const override {
return 1;}
547 virtual int idB()
const override {
return 0;}
548 virtual int id0()
const override {
return 21;}
549 virtual int id1()
const override {
return -1;}
550 virtual int id2()
const override {
return 0;}
553 virtual double antFun(vector<double> invariants, vector<double> masses,
554 vector<int> helBef, vector<int> helNew)
override;
557 virtual double AltarelliParisi(vector<double> invariants,
558 vector<double>, vector<int> helBef, vector<int> helNew)
override;
561 virtual double zB(vector<double>)
override {
return -1.0;}
575 virtual string vinciaName()
const override {
return "Vincia:GXConvII";}
578 virtual int idA()
const override {
return 21;}
579 virtual int idB()
const override {
return 0;}
580 virtual int id0()
const override {
return 2;}
581 virtual int id1()
const override {
return 2;}
582 virtual int id2()
const override {
return 0;}
585 virtual double antFun(vector<double> invariants, vector<double> masses,
586 vector<int> helBef, vector<int> helNew)
override;
589 virtual double AltarelliParisi(vector<double> invariants,
590 vector<double>, vector<int> helBef, vector<int> helNew)
override;
593 virtual double zB(vector<double>)
override {
return -1.0;}
609 virtual bool init()
override;
612 virtual bool check()
override;
616 return "Vincia:AntennaFunctionIF";}
619 virtual int idA()
const override {
return 1;}
620 virtual int idB()
const override {
return -1;}
621 virtual int id0()
const override {
return 1;}
622 virtual int id1()
const override {
return 21;}
623 virtual int id2()
const override {
return -1;}
626 virtual double zA(vector<double> invariants)
override {
627 double sAK(invariants[0]), sjk(invariants[2]);
return sAK/(sAK+sjk);}
628 virtual double zB(vector<double> invariants)
override {
629 double sAK(invariants[0]), saj(invariants[1]);
return (sAK-saj)/sAK;}
632 virtual bool isIIant()
override {
return false;}
633 virtual bool isRFant() {
return false;}
636 virtual bool checkRes();
642 virtual bool getTestInvariants(vector<double> &invariants,
643 vector<double> masses,
double yaj,
double yjk);
650 double m_a,
double m_k) {
return 2.0*sak/(saj*sjk) - 2.0*m_a*m_a/(saj*saj)
651 - 2.0*m_k*m_k/(sjk*sjk);}
655 return massiveEikonal(invariants[1], invariants[2], invariants[3],
656 masses[0], masses[2]);}
659 double gramDet(vector<double> invariants, vector<double> masses) {
660 double saj(invariants[1]), sjk(invariants[2]), sak(invariants[3]),
661 mares(masses[0]), mjres(masses[1]), mkres(masses[2]);
662 return 0.25*(saj*sjk*sak - saj*saj*mkres*mkres -sak*sak*mjres*mjres
663 - sjk*sjk*mares*mares + 4.0*mares*mares*mjres*mjres*mkres*mkres);}
667 double antFunCollLimit(vector<double> invariants,vector<double> masses);
680 virtual string vinciaName()
const override {
return "Vincia:QQEmitIF";}
683 virtual int idA()
const override {
return 1;}
684 virtual int idB()
const override {
return -1;}
685 virtual int id0()
const override {
return 1;}
686 virtual int id1()
const override {
return 21;}
687 virtual int id2()
const override {
return -1;}
690 virtual double antFun(vector<double> invariants, vector<double> masses,
691 vector<int> helBef, vector<int> helNew)
override;
694 virtual double AltarelliParisi(vector<double> invariants,
695 vector<double>, vector<int> helBef, vector<int> helNew)
override;
698 virtual double zA(vector<double> invariants)
override {
699 double sAK(invariants[0]), sjk(invariants[2]);
return sAK/(sAK+sjk);}
700 virtual double zB(vector<double> invariants)
override {
701 double sAK(invariants[0]), saj(invariants[1]);
return (sAK-saj)/sAK;}
714 virtual string vinciaName()
const override {
return "Vincia:QGEmitIF";}
717 virtual int idA()
const override {
return 1;}
718 virtual int idB()
const override {
return 21;}
719 virtual int id0()
const override {
return 1;}
720 virtual int id1()
const override {
return 21;}
721 virtual int id2()
const override {
return 21;}
724 virtual double antFun(vector<double> invariants, vector<double> masses,
725 vector<int> helBef, vector<int> helNew)
override;
728 virtual double AltarelliParisi(vector<double> invariants,
729 vector<double>, vector<int> helBef, vector<int> helNew)
override;
742 virtual string vinciaName()
const override {
return "Vincia:GQEmitIF";}
745 virtual int idA()
const override {
return 21;}
746 virtual int idB()
const override {
return 1;}
747 virtual int id0()
const override {
return 21;}
748 virtual int id1()
const override {
return 21;}
749 virtual int id2()
const override {
return 1;}
752 virtual double antFun(vector<double> invariants, vector<double> masses,
753 vector<int> helBef, vector<int> helNew)
override;
756 virtual double AltarelliParisi(vector<double> invariants,
757 vector<double>, vector<int> helBef, vector<int> helNew)
override;
770 virtual string vinciaName()
const override {
return "Vincia:GGEmitIF";}
773 virtual int idA()
const override {
return 21;}
774 virtual int idB()
const override {
return 21;}
775 virtual int id0()
const override {
return 21;}
776 virtual int id1()
const override {
return 21;}
777 virtual int id2()
const override {
return 21;}
780 virtual double antFun(vector<double> invariants, vector<double> masses,
781 vector<int> helBef, vector<int> helNew)
override;
784 virtual double AltarelliParisi(vector<double> invariants,
785 vector<double>, vector<int> helBef, vector<int> helNew)
override;
800 virtual string vinciaName()
const override {
return "Vincia:QXConvIF";}
803 virtual int idA()
const override {
return 1;}
804 virtual int idB()
const override {
return 0;}
805 virtual int id0()
const override {
return 21;}
806 virtual int id1()
const override {
return -1;}
807 virtual int id2()
const override {
return 0;}
810 virtual double antFun(vector<double> invariants, vector<double> masses,
811 vector<int> helBef, vector<int> helNew)
override;
813 virtual double AltarelliParisi(vector<double> invariants,
814 vector<double> , vector<int> helBef, vector<int> helNew)
override;
817 virtual double zB(vector<double>)
override {
return -1.0;}
831 virtual string vinciaName()
const override {
return "Vincia:GXConvIF";}
834 virtual int idA()
const override {
return 21;}
835 virtual int idB()
const override {
return 0;}
836 virtual int id0()
const override {
return 2;}
837 virtual int id1()
const override {
return 2;}
838 virtual int id2()
const override {
return 0;}
841 virtual double antFun(vector<double> invariants, vector<double> masses,
842 vector<int> helBef, vector<int> helNew)
override;
845 virtual double AltarelliParisi(vector<double> invariants,
846 vector<double>, vector<int> helBef, vector<int> helNew)
override;
849 virtual double zB(vector<double>)
override {
return -1.0;}
863 virtual string vinciaName()
const override {
return "Vincia:XGSplitIF";}
866 virtual int idA()
const override {
return 0;}
867 virtual int idB()
const override {
return 21;}
868 virtual int id0()
const override {
return 0;}
869 virtual int id1()
const override {
return -1;}
870 virtual int id2()
const override {
return 1;}
873 virtual double antFun(vector<double> invariants, vector<double> masses,
874 vector<int> helBef, vector<int> helNew)
override;
877 virtual double AltarelliParisi(vector<double> invariants,
878 vector<double>, vector<int> helBef, vector<int> helNew)
override;
881 virtual double zA(vector<double>)
override {
return -1.0;}
898 virtual double antFun(vector<double> invariants,
899 vector<double> mNew, vector<int> helBef, vector<int> helNew)
override;
912 virtual double antFun(vector<double> invariants,
913 vector<double> mNew, vector<int> helBef, vector<int> helNew)
override;
927 virtual double antFun(vector<double> invariants, vector<double> mNew,
928 vector<int> helBef, vector<int> helNew)
override;
941 string vinciaName()
const override {
return "Vincia:QQEmitRF";}
944 int idA()
const override {
return 6;}
945 int idB()
const override {
return 5;}
946 int id0()
const override {
return 6;}
947 int id1()
const override {
return 21;}
948 int id2()
const override {
return 5;}
951 double zA(vector<double>)
override {
return -1;}
958 {particleDataPtr->m0(6), 0.0, particleDataPtr->m0(5),
959 particleDataPtr->m0(24)};}
963 vector<double> masses, vector<int>, vector<int>)
override {
964 double sjk(invariants[2]), mkres(masses[2]), z(zB(invariants)),
965 mu2(mkres*mkres/sjk), Pz(dglapPtr->Pq2gq(z,9,9,9,mu2));
979 string vinciaName()
const override {
return "Vincia:QGEmitRF";}
982 int idA()
const override {
return 6;}
983 int idB()
const override {
return 21;}
984 int id1()
const override {
return 21;}
985 int ida()
const {
return 6;}
986 int idb()
const {
return 21;}
989 double zA(vector<double>)
override {
return -1;}
996 {particleDataPtr->m0(6), 0.0, 0.0, 0.6*particleDataPtr->m0(6)};}
1000 vector<int>, vector<int>)
override {
1001 double sjk(invariants[2]), z(zB(invariants)),
1002 Pz(dglapPtr->Pg2gg(z, 9, 9, 9));
1019 int idA()
const override {
return 6;}
1020 int idB()
const override {
return 21;}
1021 int id1()
const override {
return 21;}
1022 int ida()
const {
return 6;}
1023 int idb()
const {
return 21;}
1026 double zA(vector<double>)
override {
return -1;}
1033 {particleDataPtr->m0(6), 0.0, 0.0, 0.6*particleDataPtr->m0(6)};}
1037 vector<int>, vector<int>)
override {
1038 double sjk(invariants[2]), z(zB(invariants)),
1039 Pz(dglapPtr->Pg2gg(z, 9, 9, 9));
1056 double zA(vector<double>)
override {
return -1;}
1062 int idA()
const override {
return 6;}
1063 int idB()
const override {
return 21;}
1064 int id1()
const override {
return -2;}
1065 int ida()
const {
return 6;}
1066 int idb()
const {
return 2;}
1070 {particleDataPtr->m0(6), 0.0, 0.0, 0.6*particleDataPtr->m0(6)};}
1074 vector<int>, vector<int>)
override {
1075 double sAK(invariants[0]), saj(invariants[1]), sjk(invariants[2]),
1076 mkres(masses[2]), m2q(mkres*mkres), Q2(sjk + 2*m2q), mu2(m2q/Q2),
1077 z((sAK+saj-Q2)/sAK), Pz(dglapPtr->Pg2qq(z, 9, 9, 9, mu2));
1094 double zA(vector<double>)
override {
return -1;}
1100 int idA()
const override {
return 6;}
1101 int idB()
const override {
return 21;}
1102 int id1()
const override {
return -2;}
1103 int ida()
const {
return 6;}
1104 int idb()
const {
return 2;}
1108 {particleDataPtr->m0(6), 0.0, 0.0, 0.6*particleDataPtr->m0(6)};}
1112 vector<int>, vector<int>)
override {
1113 double sAK(invariants[0]), saj(invariants[1]), sjk(invariants[2]),
1114 mkres(masses[2]), m2q(mkres*mkres), Q2(sjk + 2*m2q), mu2(m2q/Q2),
1115 z((sAK+saj-Q2)/sAK), Pz(dglapPtr->Pg2qq(z, 9, 9, 9, mu2));
1134 for (
auto it = antFunPtrs.begin(); it != antFunPtrs.end(); ++it)
1136 antFunPtrs.clear();}
1139 void initPtr(
Info* infoPtrIn,
DGLAP* dglapPtrIn);
1146 return antFunPtrs.count(antFunType);}
1150 return (exists(antFunType)) ? antFunPtrs[antFunType] :
nullptr;}
1153 vector<enum AntFunType> getAntFunTypes();
1157 return exists(antFunType) ? antFunPtrs[antFunType]->vinciaName() :
1162 return exists(antFunType) ? antFunPtrs[antFunType]->humanName() :
1169 map<enum AntFunType, AntennaFunction*> antFunPtrs{};
1172 bool isInitPtr{
false}, isInit{
false};
1200 for (
auto it = antFunPtrs.begin(); it != antFunPtrs.end(); ++it)
1202 antFunPtrs.clear();}
1205 void initPtr(
Info* infoPtrIn,
DGLAP* dglapPtrIn);
1212 return antFunPtrs.count(antFunType);}
1216 return (exists(antFunType)) ? antFunPtrs[antFunType] :
nullptr;}
1219 vector<enum AntFunType> getAntFunTypes();
1223 return exists(antFunType) ? antFunPtrs[antFunType]->vinciaName()
1228 return exists(antFunType) ? antFunPtrs[antFunType]->humanName() :
1235 map<enum AntFunType, AntennaFunctionIX*> antFunPtrs{};
1238 bool isInitPtr{
false}, isInit{
false};
1263 MECs() {isInitPtr =
false; isInit =
false;}
1269 void initPtr(
Info* infoPtrIn, ExternalMEsPtr mg5mesPtrIn,
1274 antSetFSR = antFSRusr; antSetISR = antISRusr;}
1286 bool prepare(
const int iSys,
Event& event);
1289 bool polarise(
const int iSys,
Event& event,
const bool force =
false);
1290 bool polarise(vector<Particle>& state,
const bool force =
false);
1295 bool isPolarised(
int iSys,
Event& event,
bool checkAll =
true);
1299 return antSetFSR->getAntFunPtr(antFunType); }
1301 return antSetISR->getAntFunPtr(antFunType); }
1304 bool doMEC(
const int iSys,
const int nBranch);
1307 bool meAvailable(
int iSys,
const Event& event);
1308 bool meAvailable(
const vector<Particle>& state);
1311 double getME2(
const vector<Particle>& state,
int nIn);
1312 double getME2(
int iSys,
const Event& event);
1315 double getMECSector(
int iSys,
const vector<Particle>& stateNow,
1322 void hasBranched(
int iSys);
1327 hasME2now[iSys] = !needsNewIn; }
1344 bool saveHardScale(
int iSys,
Event& );
1347 bool doRegMatch(
int iSys,
const vector<Particle>& state);
1356 double getColWeight(
const vector<Particle>& state);
1362 bool isInitPtr, isInit;
1371 ExternalMEsPtr mg5mesPtr;
1385 bool matchingFullColour, matchingScaleIsAbs;
1387 int matchingRegOrder, matchingRegShape;
1388 int maxMECs2to1, maxMECs2to2, maxMECs2toN, maxMECsResDec, maxMECsMPI;
1390 double matchingIRcutoff, matchingScale, q2Match;
1393 map<int,int> sizeOutBornSav;
1396 map<int,int> sysToBornMultQCD;
1399 map<int,double> sysToHardScale;
1402 map<int,double> me2now;
1403 map<int,bool> hasME2now;
1406 map<int,double> me2post;
1407 map<int,bool> hasME2post;
double zA(vector< double >) override
Mark that this function does not have a zA collinear limit.
Definition: VinciaAntennaFunctions.h:1026
virtual int idA() const override
Parton types AB -> 0a 1j 2b with A,a initial and B,b,j final.
Definition: VinciaAntennaFunctions.h:773
int idA() const override
Parton types AB -> ijk with A,i initial and B,k,j final.
Definition: VinciaAntennaFunctions.h:1019
AntennaFunction * getAntFunPtr(enum AntFunType antFunType)
Gets an antenna from the AntennaSet.
Definition: VinciaAntennaFunctions.h:1149
Definition: VinciaAntennaFunctions.h:344
Class AntGQEmitII, initial-initial antenna function.
Definition: VinciaAntennaFunctions.h:480
MECs()
Constructor.
Definition: VinciaAntennaFunctions.h:1263
void getTestMasses(vector< double > &masses) override
Test masses (top, gluon, gluon, X).
Definition: VinciaAntennaFunctions.h:1032
string humanName(enum AntFunType antFunType)
Get human name, e.g. "g/qq".
Definition: VinciaAntennaFunctions.h:1161
virtual int idA() const override
Parton types AB -> 0a 1j 2b with A,a initial and B,b,j final.
Definition: VinciaAntennaFunctions.h:683
virtual string vinciaName() const
Names (remember to redefine both for each inherited class).
Definition: VinciaAntennaFunctions.h:263
double Pq2gqLin(double z, int hA=9, int polB=9, int hC=9, double mu=0.)
Definition: VinciaAntennaFunctions.cc:186
virtual double zB(vector< double >) override
Mark that this function does not have a zB collinear limit.
Definition: VinciaAntennaFunctions.h:849
virtual int idA() const
Parton types (AB -> 0i 1j 2k): needed by soft- and collinear-limit checks.
Definition: VinciaAntennaFunctions.h:266
Class AntQQEmitFF, final-final antenna function.
Definition: VinciaAntennaFunctions.h:205
void needsNewME2(int iSys, bool needsNewIn)
Definition: VinciaAntennaFunctions.h:1326
bool exists(enum AntFunType antFunType)
Function to chek if an antenna with the given index exists.
Definition: VinciaAntennaFunctions.h:1211
Class AntGQEmitIF, initial-final antenna function.
Definition: VinciaAntennaFunctions.h:737
The Event class holds all info on the generated event.
Definition: Event.h:453
void getTestMasses(vector< double > &masses) override
Test masses (top, gluon, gluon, X).
Definition: VinciaAntennaFunctions.h:1107
virtual string vinciaName() const override
Names (remember to redefine both for each inherited class).
Definition: VinciaAntennaFunctions.h:714
Simple struct to store information about a 3 -> 2 clustering.
Definition: VinciaCommon.h:278
string vinciaName(enum AntFunType antFunType)
Get Vincia name, e.g. "Vincia:QQEmitFF".
Definition: VinciaAntennaFunctions.h:1156
A helicity sampler using external matrix elements.
Definition: ExternalMEs.h:124
Definition: VinciaAntennaFunctions.h:893
virtual int idA() const override
Parton types AB -> 0a 1j 2b with A,B,a,b initial and j final.
Definition: VinciaAntennaFunctions.h:578
string vinciaName() const override
Names (remember to redefine both for each inherited class).
Definition: VinciaAntennaFunctions.h:1016
Definition: VinciaAntennaFunctions.h:538
virtual string vinciaName() const override
Names (remember to redefine both for each inherited class).
Definition: VinciaAntennaFunctions.h:863
Definition: VinciaAntennaFunctions.h:416
virtual string vinciaName() const override
Names (remember to redefine both for each inherited class).
Definition: VinciaAntennaFunctions.h:680
virtual int idA() const override
Parton types AB -> 0a 1j 2b with A,a initial and B,b,j final.
Definition: VinciaAntennaFunctions.h:717
virtual void initMasses(vector< double > *masses)
Method to intialise mass values.
Definition: VinciaAntennaFunctions.h:106
virtual double zA(vector< double >) override
Mark that this function does not have a zA collinear limit.
Definition: VinciaAntennaFunctions.h:881
double zA(vector< double > invariants)
Functions to get Altarelli-Parisi energy fractions from invariants.
Definition: VinciaAntennaFunctions.h:140
string humanName(enum AntFunType antFunType)
Get human name, e.g. "g/qq".
Definition: VinciaAntennaFunctions.h:1227
int idA() const override
Parton types AB -> ijk with A,i initial and B,k,j final.
Definition: VinciaAntennaFunctions.h:944
virtual string vinciaName() const override
Names (remember to redefine both for each inherited class).
Definition: VinciaAntennaFunctions.h:800
virtual ~MECs()
Destructor.
Definition: VinciaAntennaFunctions.h:1266
double zA(vector< double >) override
Mark that this function does not have a zA collinear limit.
Definition: VinciaAntennaFunctions.h:989
bool isRFant() override
Return this is a resonance-final antenna.
Definition: VinciaAntennaFunctions.h:1097
Class AntQGEmitRF, resonance-final antenna function.
Definition: VinciaAntennaFunctions.h:974
virtual string vinciaName() const override
Names (remember to redefine both for each inherited class).
Definition: VinciaAntennaFunctions.h:485
Class AntGGEmitII, initial-initial antenna function.
Definition: VinciaAntennaFunctions.h:508
virtual double zA(vector< double > invariants)
Functions to get Altarelli-Parisi energy fractions.
Definition: VinciaAntennaFunctions.h:435
virtual string vinciaName() const
Names (remember to redefine both for each inherited class).
Definition: VinciaAntennaFunctions.h:210
Definition: VinciaAntennaFunctions.h:826
string vinciaName() const override
Names (remember to redefine both for each inherited class)
Definition: VinciaAntennaFunctions.h:1091
double AltarelliParisi(vector< double > invariants, vector< double > masses, vector< int >, vector< int >) override
AP with dummy helicities.
Definition: VinciaAntennaFunctions.h:1073
string vinciaName() const override
Names (remember to redefine both for each inherited class)
Definition: VinciaAntennaFunctions.h:1053
virtual string vinciaName() const override
Names (remember to redefine both for each inherited class).
Definition: VinciaAntennaFunctions.h:575
Class AntGQEmitFF, final-final antenna function.
Definition: VinciaAntennaFunctions.h:258
virtual double zB(vector< double >) override
Mark that this function has no zB collinear limit.
Definition: VinciaAntennaFunctions.h:561
double Pg2qqLin(double z, int polA=9, int hB=9, int hC=9, double mu=0.)
Definition: VinciaAntennaFunctions.cc:142
virtual int idA() const override
Parton types AB -> 0a 1j 2b with A,a initial and B,b,j final.
Definition: VinciaAntennaFunctions.h:866
double AltarelliParisi(vector< double > invariants, vector< double > masses)
Wrapper without helicity assignments.
Definition: VinciaAntennaFunctions.h:123
double Pg2ggLin(double z, int polA=9, int polB=9, int polC=9)
Pg2ggLin, written without factor 2 normalization convention.
Definition: VinciaAntennaFunctions.cc:117
double massiveEikonal(vector< double > invariants, vector< double > masses)
Massive eikonal factor, given invariants and masses.
Definition: VinciaAntennaFunctions.h:654
AntFunType
Enumerator for antenna function types, with "void" member NoFun.
Definition: VinciaCommon.h:66
virtual string vinciaName() const override
Names (remember to redefine both for each inherited class).
Definition: VinciaAntennaFunctions.h:513
virtual int idA() const override
Parton types AB -> 0a 1j 2b with A,a initial and B,b,j final.
Definition: VinciaAntennaFunctions.h:834
Class AntGXSplitFF, final-final antenna function.
Definition: VinciaAntennaFunctions.h:310
double Pg2gg(double z, int hA=9, int hB=9, int hC=9)
DGLAP splitting functions.
Definition: VinciaAntennaFunctions.cc:39
Class AntGQEmitFF, final-final antenna function.
Definition: VinciaAntennaFunctions.h:284
virtual int idA() const
Parton types (AB -> 0i 1j 2k): needed by soft- and collinear-limit checks.
Definition: VinciaAntennaFunctions.h:240
virtual bool isIIant()
Function to tell if this is an II antenna.
Definition: VinciaAntennaFunctions.h:441
virtual int idA() const
Functions needed by soft- and collinear-limit checks (AB -> 0i 1j 2k).
Definition: VinciaAntennaFunctions.h:213
double antFun(vector< double > invariants)
Wrapper for massless, helicity-summed/averaged antenna function.
Definition: VinciaAntennaFunctions.h:119
Definition: VinciaCommon.h:494
virtual bool isIIant() override
Methods to tell II, IF, and RF apart.
Definition: VinciaAntennaFunctions.h:632
double zA(vector< double >) override
Mark that this function does not have a zA collinear limit.
Definition: VinciaAntennaFunctions.h:1094
virtual double AltarelliParisi(vector< double > invariants, vector< double >, vector< int >, vector< int >) override
AP with dummy helicities and masses.
Definition: VinciaAntennaFunctions.h:999
int sizeOutBorn(const int iSys)
Return number of partons added since Born (as defined by prepare).
Definition: VinciaAntennaFunctions.h:1330
virtual int idA() const override
Parton types AB -> 0a 1j 2b with A,a initial and B,b,j final.
Definition: VinciaAntennaFunctions.h:745
virtual string vinciaName() const override
Names (remember to redefine both for each inherited class).
Definition: VinciaAntennaFunctions.h:457
int idA() const override
Parton types AB -> ijk with A,i initial and B,k,j final.
Definition: VinciaAntennaFunctions.h:1062
Class AntXGSplitRF, resonance-final antenna function.
Definition: VinciaAntennaFunctions.h:1048
double gramDet(vector< double > invariants, vector< double > masses)
Return the Gram determinant.
Definition: VinciaAntennaFunctions.h:659
Definition: VinciaAntennaFunctions.h:65
virtual ~AntennaFunction()
Destructor.
Definition: VinciaAntennaFunctions.h:73
double Pg2qq(double z, int hA=9, int hB=9, int hC=9, double mu=0.)
Definition: VinciaAntennaFunctions.cc:58
void getTestMasses(vector< double > &masses) override
Test masses (top, gluon, bottom, and W mass).
Definition: VinciaAntennaFunctions.h:957
Class AntXGSplitRF, resonance-final antenna function.
Definition: VinciaAntennaFunctions.h:1086
virtual string vinciaName() const override
Names (remember to redefine both for each inherited class).
Definition: VinciaAntennaFunctions.h:424
virtual string vinciaName() const override
Names (remember to redefine both for each inherited class).
Definition: VinciaAntennaFunctions.h:615
virtual string vinciaName() const
Names (remember to redefine both for each inherited class).
Definition: VinciaAntennaFunctions.h:237
virtual int idA() const override
Parton types AB -> 0a 1j 2b with A,B, a,b initial and j final.
Definition: VinciaAntennaFunctions.h:546
void getTestMasses(vector< double > &masses) override
Test masses (top, gluon, gluon, X).
Definition: VinciaAntennaFunctions.h:1069
Definition: VinciaAntennaFunctions.h:858
A class containing DGLAP splitting functions for limit checking.
Definition: VinciaAntennaFunctions.h:29
bool isRFant() override
Return this is a resonance-final antenna.
Definition: VinciaAntennaFunctions.h:1059
virtual int idA() const override
Parton types AB -> 0a 1j 2b with A,a initial and B,b,j final.
Definition: VinciaAntennaFunctions.h:619
DGLAP()
Constructor.
Definition: VinciaAntennaFunctions.h:34
Class AntQQEmitII, initial-initial antenna function.
Definition: VinciaAntennaFunctions.h:452
int idA() const override
Parton types AB -> ijk with A,i initial and B,k,j final.
Definition: VinciaAntennaFunctions.h:982
double zA(vector< double >) override
Mark that this function does not have a zA collinear limit.
Definition: VinciaAntennaFunctions.h:951
void getTestMasses(vector< double > &masses) override
Test masses (top, gluon, gluon, X).
Definition: VinciaAntennaFunctions.h:995
double chargeFac()
Get parameters.
Definition: VinciaAntennaFunctions.h:134
Class AntQGEmitIF, initial-final antenna function.
Definition: VinciaAntennaFunctions.h:709
double Pq2qg(double z, int hA=9, int hB=9, int hC=9, double mu=0.)
Definition: VinciaAntennaFunctions.cc:79
double Pq2gq(double z, int hA=9, int hB=9, int hC=9, double mu=0.)
Definition: VinciaAntennaFunctions.cc:100
double massiveEikonal(double saj, double sjk, double sak, double m_a, double m_k)
Definition: VinciaAntennaFunctions.h:649
double Pg2qq(double z, double mu)
Wrappers to get unpolarized massive Altarelli-Pariis kernels (mu = m/Q).
Definition: VinciaAntennaFunctions.h:44
virtual double AltarelliParisi(vector< double > invariants, vector< double > masses, vector< int >, vector< int >) override
AP with dummy helicities.
Definition: VinciaAntennaFunctions.h:962
string vinciaName() const override
Names (remember to redefine both for each inherited class).
Definition: VinciaAntennaFunctions.h:941
Definition: VinciaAntennaFunctions.h:922
Class AntQQEmitIF, initial-final antenna function.
Definition: VinciaAntennaFunctions.h:675
virtual double zB(vector< double >) override
Mark that this function has no zB collinear limit.
Definition: VinciaAntennaFunctions.h:593
Definition: VinciaAntennaFunctions.h:398
Class AntQQEmitRF, resonance-final antenna function.
Definition: VinciaAntennaFunctions.h:936
Class AntGGEmitIF, initial-final antenna function.
Definition: VinciaAntennaFunctions.h:765
Class AntQGEmitRF, resonance-final antenna function.
Definition: VinciaAntennaFunctions.h:1011
virtual int idA() const
Parton types (AB -> 0i 1j 2k): needed by soft- and collinear-limit checks.
Definition: VinciaAntennaFunctions.h:318
virtual int idA() const
Parton types (AB -> 0i 1j 2k): needed by soft- and collinear-limit checks.
Definition: VinciaAntennaFunctions.h:364
Definition: VinciaAntennaFunctions.h:570
virtual string vinciaName() const override
Names (remember to redefine both for each inherited class).
Definition: VinciaAntennaFunctions.h:742
virtual int idA() const override
Parton types AB -> 0a 1j 2b with A,B,a,b initial and j final.
Definition: VinciaAntennaFunctions.h:488
A simple class for containing evolution variable definitions.
Definition: VinciaCommon.h:382
double AltarelliParisi(vector< double > invariants, vector< double > masses, vector< int >, vector< int >) override
AP with dummy helicities.
Definition: VinciaAntennaFunctions.h:1111
void setVerbose(const int verboseIn)
Function to set level of verbose output.
Definition: VinciaAntennaFunctions.h:1333
int idA() const override
Parton types AB -> ijk with A,i initial and B,k,j final.
Definition: VinciaAntennaFunctions.h:1100
bool isInitialised()
Is initalised?
Definition: VinciaAntennaFunctions.h:1339
AntennaFunctionIX * getAntFunPtr(enum AntFunType antFunType)
Gets an antenna from the AntennaSetISR.
Definition: VinciaAntennaFunctions.h:1215
virtual int idA() const override
Parton types AB -> 0a 1j 2b with A,a initial and B,b,j final.
Definition: VinciaAntennaFunctions.h:803
Class AntQGEmitFF, final-final antenna function.
Definition: VinciaAntennaFunctions.h:232
virtual double AltarelliParisi(vector< double > invariants, vector< double >, vector< int >, vector< int >) override
AP with dummy helicities and masses.
Definition: VinciaAntennaFunctions.h:1036
virtual string vinciaName() const override
Names (remember to redefine both for each inherited class).
Definition: VinciaAntennaFunctions.h:831
Definition: VinciaAntennaFunctions.h:337
double zA(vector< double >) override
Mark that this function does not have a zA collinear limit.
Definition: VinciaAntennaFunctions.h:1056
The AntennaSetFSR class. Simple container of FF and RF antenna functions.
Definition: VinciaAntennaFunctions.h:1125
The AntennaSetISR class. Simple container of II and IF antenna functions.
Definition: VinciaAntennaFunctions.h:1191
virtual string vinciaName() const
Names (remember to redefine both for each inherited class).
Definition: VinciaAntennaFunctions.h:315
The PartonSystems class describes the whole set of subcollisions.
Definition: PartonSystems.h:42
bool isRFant() override
Return this is a resonance-final antenna.
Definition: VinciaAntennaFunctions.h:992
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
virtual double zA(vector< double > invariants) override
Functions to get Altarelli-Parisi energy fractions.
Definition: VinciaAntennaFunctions.h:698
string vinciaName(enum AntFunType antFunType)
Get Vincia name, e.g. "Vincia:QQEmitII".
Definition: VinciaAntennaFunctions.h:1222
virtual double zB(vector< double >) override
Mark that this function does not have a zB collinear limit.
Definition: VinciaAntennaFunctions.h:817
bool isRFant() override
Return this is a resonance-final antenna.
Definition: VinciaAntennaFunctions.h:954
AntennaFunction * getAntFunPtrFSR(const enum AntFunType antFunType)
Wrapper function to return a specific antenna function.
Definition: VinciaAntennaFunctions.h:1298
virtual int idA() const override
Parton types AB -> 0a 1j 2b with A,B,a,b initial and j final.
Definition: VinciaAntennaFunctions.h:428
virtual void getTestMasses(vector< double > &masses)
Create the test masses for the checkRes method.
Definition: VinciaAntennaFunctions.h:639
virtual string humanName() const
Wrapper that can modify baseName to more human readable form if required.
Definition: VinciaAntennaFunctions.h:100
double antFun(vector< double > invariants, vector< double > masses)
Wrapper for helicity-summed/averaged antenna function.
Definition: VinciaAntennaFunctions.h:115
Definition: VinciaAntennaFunctions.h:1258
virtual string vinciaName() const
Names (remember to redefine both for each inherited class).
Definition: VinciaAntennaFunctions.h:289
double AltarelliParisi(vector< double > invariants)
Wrapper for massless helicity-summed/averaged DGLAP kernels.
Definition: VinciaAntennaFunctions.h:127
Definition: VinciaAntennaFunctions.h:359
Definition: VinciaAntennaFunctions.h:795
Definition: VinciaAntennaFunctions.h:383
void initAntPtr(AntennaSetFSR *antFSRusr, AntennaSetISR *antISRusr)
Initialize pointers to antenna sets.
Definition: VinciaAntennaFunctions.h:1273
Definition: VinciaAntennaFunctions.h:604
bool isRFant() override
Return this is a resonance-final antenna.
Definition: VinciaAntennaFunctions.h:1029
virtual string vinciaName() const override
Names (remember to redefine both for each inherited class).
Definition: VinciaAntennaFunctions.h:543
virtual int idA() const
Parton types (AB -> 0i 1j 2k): needed by soft- and collinear-limit checks.
Definition: VinciaAntennaFunctions.h:292
bool exists(enum AntFunType antFunType)
Function to chek if an antenna with the given index exists.
Definition: VinciaAntennaFunctions.h:1145
Class AntGGEmitIFsec, sector initial-final antenna function.
Definition: VinciaAntennaFunctions.h:907
virtual int idA() const override
Parton types AB -> 0a 1j 2b with A,B,a,b initial and j final.
Definition: VinciaAntennaFunctions.h:460
This class holds a map of all ParticleDataEntries.
Definition: ParticleData.h:422
~AntennaSetISR()
Destructor, delete the antennae.
Definition: VinciaAntennaFunctions.h:1199
virtual string baseName() const
Construct baseName from idA, idB, and id1.
Definition: VinciaAntennaFunctions.h:96
Definition: Settings.h:195
virtual int idA() const override
Parton types AB -> 0a 1j 2b with A,B,a,b initial and j final.
Definition: VinciaAntennaFunctions.h:516
double Pq2qgLin(double z, int hA=9, int hB=9, int polC=9, double mu=0.)
Definition: VinciaAntennaFunctions.cc:164
virtual double zA(vector< double > invariants) override
Functions to get Altarelli-Parisi energy fractions.
Definition: VinciaAntennaFunctions.h:626
virtual ~AntennaSetFSR()
Destructor, delete the antennae.
Definition: VinciaAntennaFunctions.h:1133
string vinciaName() const override
Names (remember to redefine both for each inherited class).
Definition: VinciaAntennaFunctions.h:979
virtual string vinciaName() const override
Names (remember to redefine both for each inherited class).
Definition: VinciaAntennaFunctions.h:770