14 #include "Pythia8/Pythia.h" 27 TopRecoilHook(
bool doTopRecoilIn =
true,
bool useOldDipoleIn =
false,
bool doListIn =
false) {
32 wtCorr =
new Hist(
"corrective weight", 100, 0., 2.);
41 bool recoilToColoured = settingsPtr->flag(
"TimeShower:recoilToColoured");
60 int iTop = partonSystemsPtr->getInRes(iSys);
61 if (iTop == 0 ||
event[iTop].idAbs() != 6)
65 int sizeOut = partonSystemsPtr->sizeOut(iSys);
71 int iEmt = sizeOld + 1;
72 int iRec = sizeOld + 2;
77 iRad =
event[iRad].mother1();
78 iRec =
event[iRec].mother1();
82 if (
event[iEmt].
id() != 21)
84 if (
event[iTop].
id() == 6) {
93 if (
event[iRec].idAbs() != 24) {
98 double pRadRec =
event[iRad].p() *
event[iRec].p();
99 double pRadEmt =
event[iRad].p() *
event[iEmt].p();
100 double pRecEmt =
event[iRec].p() *
event[iEmt].p();
101 double wtW = 2. * pRadRec / (pRadEmt * pRecEmt) -
pow2(
event[iRad].
m() / pRadEmt);
107 double pRadTop =
event[iRad].p() *
event[iTop].p();
108 double pTopEmt =
event[iTop].p() *
event[iEmt].p();
110 2. * pRadTop / (pRadEmt * pTopEmt) -
pow2(
event[iRad].
m() / pRadEmt) -
pow2(
event[iTop].
m() / pTopEmt);
117 partonSystemsPtr->list();
122 return (wtT < wtW * rndmPtr->flat());
bool doVetoFSREmission(int sizeOld, const Event &event, int iSys, bool inResonance) override
bool initAfterBeams() override
TopRecoilHook(bool doTopRecoilIn=true, bool useOldDipoleIn=false, bool doListIn=false)
cms::cuda::HistoContainer< uint8_t, 256, 16000, 8, uint16_t > Hist
bool canVetoFSREmission() override
constexpr int pow2(int x)
~TopRecoilHook() override