|
| PowhegV_EW () |
|
| ~PowhegV_EW () |
|
bool | initAfterBeams () |
|
double | pTpythia (const Event &e, int RadAfterBranch, int EmtAfterBranch, int RecAfterBranch, bool FSR) |
|
double | pTpowheg (const Event &e, int i, int j, bool FSR) |
|
double | pTcalc (const Event &e, int i, int j, int k, int r, int xSRin) |
|
bool | canVetoMPIStep () |
|
int | numberVetoMPIStep () |
|
bool | doVetoMPIStep (int nMPI, const Event &e) |
|
bool | canVetoISREmission () |
|
bool | doVetoISREmission (int, const Event &e, int iSys) |
|
bool | canVetoFSREmission () |
|
bool | doVetoFSREmission (int, const Event &e, int iSys, bool inr) |
|
bool | canVetoMPIEmission () |
|
bool | doVetoMPIEmission (int, const Event &e) |
|
int | getNISRveto () |
|
int | getNFSRveto () |
|
Definition at line 118 of file PowhegV_EW.cxx.
◆ PowhegV_EW()
Pythia8::PowhegV_EW::PowhegV_EW |
( |
| ) |
|
|
inline |
Definition at line 123 of file PowhegV_EW.cxx.
125 std::cout<<
"**********************************************************"<<std::endl;
126 std::cout<<
"* *"<<std::endl;
127 std::cout<<
"* SI: Defining modified PowhegHook to perform *"<<std::endl;
128 std::cout<<
"* the matching (ptmaxmatch = 2) *"<<std::endl;
129 std::cout<<
"* *"<<std::endl;
130 std::cout<<
"**********************************************************"<<std::endl;
132 Pythia8_UserHooks::UserHooksFactory::userSettings<bool>()[
"m_si_data_.vetoqed"]=
true;
133 Pythia8_UserHooks::UserHooksFactory::userSettings<bool>()[
"m_si_data_.py8veto"]=
true;
134 Pythia8_UserHooks::UserHooksFactory::userSettings<double>()[
"m_si_event_info_.vetoscale_fsr"]=10.0;
135 Pythia8_UserHooks::UserHooksFactory::userSettings<double>()[
"m_si_event_info_.vetoscale_isr"]=10.0;
◆ ~PowhegV_EW()
Pythia8::PowhegV_EW::~PowhegV_EW |
( |
| ) |
|
|
inline |
◆ canVetoFSREmission()
bool Pythia8::PowhegV_EW::canVetoFSREmission |
( |
| ) |
|
|
inline |
◆ canVetoISREmission()
bool Pythia8::PowhegV_EW::canVetoISREmission |
( |
| ) |
|
|
inline |
◆ canVetoMPIEmission()
bool Pythia8::PowhegV_EW::canVetoMPIEmission |
( |
| ) |
|
|
inline |
◆ canVetoMPIStep()
bool Pythia8::PowhegV_EW::canVetoMPIStep |
( |
| ) |
|
|
inline |
◆ doVetoFSREmission()
bool Pythia8::PowhegV_EW::doVetoFSREmission |
( |
int |
, |
|
|
const Event & |
e, |
|
|
int |
iSys, |
|
|
bool |
inr |
|
) |
| |
|
inline |
Definition at line 539 of file PowhegV_EW.cxx.
547 if (iSys != 0 && inr != 1)
return false;
569 int iRecAft =
e.size() - 1;
570 int iEmt =
e.size() - 2;
571 int iRadAft =
e.size() - 3;
572 int iRadBef =
e[iEmt].mother1();
576 std::cout <<
"Error: couldn't find Pythia FSR emission" << std::endl;
607 for (
int jLoop = 0; jLoop < 2; jLoop++) {
608 if (jLoop == 0) pTemt =
pTcalc(
e,
i, j,
k,
r, xSR);
609 else if (jLoop == 1) pTemt =
min(pTemt,
pTcalc(
e,
i, j,
k,
r, xSR));
613 if (
k != -1)
swap(j,
k);
else j = iEmt;
622 std::cout <<
"doVetoFSREmission: pTemt = " << pTemt << std::endl;
◆ doVetoISREmission()
bool Pythia8::PowhegV_EW::doVetoISREmission |
( |
int |
, |
|
|
const Event & |
e, |
|
|
int |
iSys |
|
) |
| |
|
inline |
Definition at line 483 of file PowhegV_EW.cxx.
486 if (iSys != 0)
return false;
493 int iRadAft = -1, iEmt = -1, iRecAft = -1;
494 for (
int i =
e.size() - 1;
i > 0;
i--) {
495 if (iRadAft == -1 &&
e[
i].
status() == -41) iRadAft =
i;
496 else if (iEmt == -1 &&
e[
i].
status() == 43) iEmt =
i;
497 else if (iRecAft == -1 &&
e[
i].
status() == -42) iRecAft =
i;
498 if (iRadAft != -1 && iEmt != -1 && iRecAft != -1)
break;
500 if (iRadAft == -1 || iEmt == -1 || iRecAft == -1) {
502 std::cout <<
"Error: couldn't find Pythia ISR emission" << std::endl;
517 std::cout <<
"doVetoISREmission: pTemt = " << pTemt << std::endl;
◆ doVetoMPIEmission()
bool Pythia8::PowhegV_EW::doVetoMPIEmission |
( |
int |
, |
|
|
const Event & |
e |
|
) |
| |
|
inline |
Definition at line 643 of file PowhegV_EW.cxx.
648 std::cout <<
"doVetoMPIEmission: pTnow = " <<
e[
e.size() - 1].pT()
649 <<
", pTMPI = " <<
m_pTMPI << std::endl;
◆ doVetoMPIStep()
bool Pythia8::PowhegV_EW::doVetoMPIStep |
( |
int |
nMPI, |
|
|
const Event & |
e |
|
) |
| |
|
inline |
Definition at line 408 of file PowhegV_EW.cxx.
410 if (nMPI > 1)
return false;
416 double pT1 = 0., pTsum = 0.;
417 for (
int i =
e.size() - 1;
i > 0;
i--) {
418 if (
e[
i].isFinal()) {
426 std::cout <<
"Error: wrong number of final state particles in event" << std::endl;
431 int iEmt = (isEmt) ?
e.size() - 1 : -1;
456 m_pTMPI = (isEmt) ? pTsum / 2. : pT1;
460 std::cout <<
"doVetoMPIStep: Qfac = " << infoPtr->scalup()
461 <<
", pThard = " <<
m_pThard << std::endl;
470 std::cout <<
"something wrong with pThard = " <<
m_pThard << std::endl;
◆ getNFSRveto()
int Pythia8::PowhegV_EW::getNFSRveto |
( |
| ) |
|
|
inline |
◆ getNISRveto()
int Pythia8::PowhegV_EW::getNISRveto |
( |
| ) |
|
|
inline |
◆ initAfterBeams()
bool Pythia8::PowhegV_EW::initAfterBeams |
( |
| ) |
|
|
inline |
◆ numberVetoMPIStep()
int Pythia8::PowhegV_EW::numberVetoMPIStep |
( |
| ) |
|
|
inline |
◆ pTcalc()
double Pythia8::PowhegV_EW::pTcalc |
( |
const Event & |
e, |
|
|
int |
i, |
|
|
int |
j, |
|
|
int |
k, |
|
|
int |
r, |
|
|
int |
xSRin |
|
) |
| |
|
inline |
Definition at line 276 of file PowhegV_EW.cxx.
280 double pTemt = -1., pTnow;
281 int xSR1 = (xSRin == -1) ? 0 : xSRin;
282 int xSR2 = (xSRin == -1) ? 2 : xSRin + 1;
283 for (
int xSR = xSR1; xSR < xSR2; xSR++) {
285 bool FSR = (xSR == 0) ?
false :
true;
306 int iInA = partonSystemsPtr->getInA(0);
307 int iInB = partonSystemsPtr->getInB(0);
308 while (
e[iInA].mother1() != 1) { iInA =
e[iInA].mother1(); }
309 while (
e[iInB].mother1() != 2) { iInB =
e[iInB].mother1(); }
312 int jNow = (j > 0) ? j : 0;
313 int jMax = (j > 0) ? j + 1 :
e.size();
314 for (; jNow < jMax; jNow++) {
317 if ( !
e[jNow].isFinal() )
continue;
325 if (pTnow > 0.) pTemt = (pTemt < 0) ? pTnow :
min(pTemt, pTnow);
332 int outSize = partonSystemsPtr->sizeOut(0);
333 for (
int iMem = 0; iMem < outSize; iMem++) {
334 int iNow = partonSystemsPtr->getOut(0, iMem);
337 if (iNow == jNow)
continue;
338 if (jNow ==
e[iNow].daughter1()
339 && jNow ==
e[iNow].daughter2())
continue;
343 if (pTnow > 0.) pTemt = (pTemt < 0)
344 ? pTnow :
min(pTemt, pTnow);
355 if (pTnow > 0.) pTemt = (pTemt < 0) ? pTnow :
min(pTemt, pTnow);
357 if (pTnow > 0.) pTemt = (pTemt < 0) ? pTnow :
min(pTemt, pTnow);
362 for (
int kNow = 0; kNow <
e.size(); kNow++) {
363 if (kNow == jNow || !
e[kNow].isFinal())
continue;
368 if (pTnow > 0.) pTemt = (pTemt < 0)
369 ? pTnow :
min(pTemt, pTnow);
371 if (pTnow > 0.) pTemt = (pTemt < 0)
372 ? pTnow :
min(pTemt, pTnow);
375 for (
int rNow = 0; rNow <
e.size(); rNow++) {
376 if (rNow == kNow || rNow == jNow ||
377 !
e[rNow].isFinal())
continue;
379 if (pTnow > 0.) pTemt = (pTemt < 0)
380 ? pTnow :
min(pTemt, pTnow);
391 std::cout <<
"pTcalc: i = " <<
i <<
", j = " << j <<
", k = " <<
k
392 <<
", r = " <<
r <<
", xSR = " << xSRin
393 <<
", pTemt = " << pTemt << std::endl;
◆ pTpowheg()
double Pythia8::PowhegV_EW::pTpowheg |
( |
const Event & |
e, |
|
|
int |
i, |
|
|
int |
j, |
|
|
bool |
FSR |
|
) |
| |
|
inline |
Definition at line 227 of file PowhegV_EW.cxx.
235 int iInA = partonSystemsPtr->getInA(0);
236 int iInB = partonSystemsPtr->getInB(0);
237 double betaZ = - (
e[iInA].pz() +
e[iInB].pz() ) /
238 (
e[iInA].
e() +
e[iInB].e() );
239 Vec4 iVecBst(
e[
i].
p()), jVecBst(
e[j].
p());
240 iVecBst.bst(0., 0., betaZ);
241 jVecBst.bst(0., 0., betaZ);
243 if (
e[
i].
id() == 21 &&
e[j].
id() == 21) {
244 pTnow = std::sqrt( (iVecBst + jVecBst).m2Calc() *
245 iVecBst.e() * jVecBst.e() /
246 pow2(iVecBst.e() + jVecBst.e()) );
248 pTnow = std::sqrt( (iVecBst + jVecBst).m2Calc() *
249 jVecBst.e() / iVecBst.e() );
259 std::cout <<
"Warning: pTpowheg was negative" << std::endl;
264 std::cout <<
"pTpowheg: i = " <<
i <<
", j = " << j
265 <<
", pTnow = " << pTnow << std::endl;
◆ pTpythia()
double Pythia8::PowhegV_EW::pTpythia |
( |
const Event & |
e, |
|
|
int |
RadAfterBranch, |
|
|
int |
EmtAfterBranch, |
|
|
int |
RecAfterBranch, |
|
|
bool |
FSR |
|
) |
| |
|
inline |
Definition at line 168 of file PowhegV_EW.cxx.
172 Vec4 radVec =
e[RadAfterBranch].p();
173 Vec4 emtVec =
e[EmtAfterBranch].p();
174 Vec4 recVec =
e[RecAfterBranch].p();
175 int radID =
e[RadAfterBranch].id();
178 double sign = (
FSR) ? 1. : -1.;
179 Vec4 Q(radVec +
sign * emtVec);
180 double Qsq =
sign * Q.m2Calc();
183 double m2Rad = (std::abs(radID) >= 4 && std::abs(radID) < 7) ?
184 pow2(particleDataPtr->m0(radID)) : 0.;
190 Vec4
sum = radVec + recVec + emtVec;
191 double m2Dip =
sum.m2Calc();
192 double x1 = 2. * (
sum * radVec) / m2Dip;
193 double x3 = 2. * (
sum * emtVec) / m2Dip;
195 pTnow =
z * (1. -
z);
199 Vec4 qBR(radVec - emtVec + recVec);
200 Vec4 qAR(radVec + recVec);
201 z = qBR.m2Calc() / qAR.m2Calc();
206 pTnow *= (Qsq -
sign * m2Rad);
210 std::cout <<
"Warning: pTpythia was negative" << std::endl;
215 std::cout <<
"pTpythia: rad = " << RadAfterBranch <<
", emt = "
216 << EmtAfterBranch <<
", rec = " << RecAfterBranch
217 <<
", pTnow = " << std::sqrt(pTnow) << std::endl;
221 return std::sqrt(pTnow);
◆ m_accepted
bool Pythia8::PowhegV_EW::m_accepted {} |
|
private |
◆ m_emittedMode
int Pythia8::PowhegV_EW::m_emittedMode {} |
|
private |
◆ m_MPIvetoMode
int Pythia8::PowhegV_EW::m_MPIvetoMode {} |
|
private |
◆ m_nAcceptSeq
int Pythia8::PowhegV_EW::m_nAcceptSeq {} |
|
private |
◆ m_nFinal
int Pythia8::PowhegV_EW::m_nFinal {} |
|
private |
◆ m_nFSRveto
unsigned long int Pythia8::PowhegV_EW::m_nFSRveto {} |
|
private |
◆ m_nISRveto
unsigned long int Pythia8::PowhegV_EW::m_nISRveto {} |
|
private |
◆ m_pTdefMode
int Pythia8::PowhegV_EW::m_pTdefMode {} |
|
private |
◆ m_pTemtMode
int Pythia8::PowhegV_EW::m_pTemtMode {} |
|
private |
◆ m_pThard
double Pythia8::PowhegV_EW::m_pThard {} |
|
private |
◆ m_pThardMode
int Pythia8::PowhegV_EW::m_pThardMode {} |
|
private |
◆ m_pTMPI
double Pythia8::PowhegV_EW::m_pTMPI {} |
|
private |
◆ m_si_data_
◆ m_si_event_info_
◆ m_vetoCount
int Pythia8::PowhegV_EW::m_vetoCount {} |
|
private |
◆ m_vetoMode
int Pythia8::PowhegV_EW::m_vetoMode {} |
|
private |
The documentation for this class was generated from the following file: