 |
ATLAS Offline Software
|
|
| PowhegBB4Ldlsl () |
|
| ~PowhegBB4Ldlsl () override |
|
virtual bool | initAfterBeams () override |
|
virtual bool | canVetoProcessLevel () override |
|
virtual bool | doVetoProcessLevel (Event &e) override |
|
virtual bool | canVetoFSREmission () override |
|
virtual bool | doVetoFSREmission (int sizeOld, const Event &e, int iSys, bool inResonance) override |
|
bool | doVetoFSR (bool condition) |
|
virtual bool | canSetResonanceScale () override |
|
virtual double | scaleResonance (int iRes, const Event &e) override |
|
double | findresscale (const int iRes, const Event &event) |
|
bool | match_decay (int iparticle, const Event &e, const vector< int > &ids, vector< int > &positions, vector< Vec4 > &momenta, bool exitOnExtraLegs=true) |
|
double | qSplittingScale (Vec4 pt, Vec4 p1, Vec4 p2) |
|
double | gSplittingScale (Vec4 pt, Vec4 p1, Vec4 p2) |
|
double | pTpythia (const Event &e, int RadAfterBranch, int EmtAfterBranch, int RecAfterBranch) |
|
int | getNInResonanceFSRVeto () |
|
bool | canVetoMPIStep () override |
|
int | numberVetoMPIStep () override |
|
bool | doVetoMPIStep (int nMPI, const Event &e) override |
|
double | pT (const Event &e, int RadAfterBranch, int EmtAfterBranch, int RecAfterBranch, bool FSR) |
|
double | pTpythia (const Event &e, int RadAfterBranch, int EmtAfterBranch, int RecAfterBranch, bool FSR) |
|
double | pTvincia (const Event &event, int i1, int i3, int i2) |
|
double | pTdire (const Event &event, int iRad, int iEmt, int iRec) |
|
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 | canVetoISREmission () |
|
bool | doVetoISREmission (int, const Event &e, int iSys) |
|
bool | canVetoMPIEmission () |
|
bool | doVetoMPIEmission (int, const Event &e) |
|
int | getNISRveto () |
|
int | getNFSRveto () |
|
void | setpThard (double newPThard) |
|
Definition at line 134 of file PowhegHooksBB4Ldlsl.cxx.
◆ PowhegBB4Ldlsl()
Pythia8::PowhegBB4Ldlsl::PowhegBB4Ldlsl |
( |
| ) |
|
|
inline |
Definition at line 138 of file PowhegHooksBB4Ldlsl.cxx.
139 :
m_debug(
"Powheg:bb4l:DEBUG",
false),
145 m_pTmin(
"Powheg:bb4l:pTminVeto", 0.5),
152 std::cout <<
"**********************************************************" << std::endl;
153 std::cout <<
"* *" << std::endl;
154 std::cout <<
"* Applying Powheg BB4L UserHook (PowhegBB4Ldlsl)! *" << std::endl;
155 std::cout <<
"* Must run on dedicated Powheg LHE input file *" << std::endl;
156 std::cout <<
"* (on your own responsibility) *" << std::endl;
157 std::cout <<
"* *" << std::endl;
158 std::cout <<
"**********************************************************" << std::endl;
◆ ~PowhegBB4Ldlsl()
Pythia8::PowhegBB4Ldlsl::~PowhegBB4Ldlsl |
( |
| ) |
|
|
inlineoverride |
◆ canSetResonanceScale()
virtual bool Pythia8::PowhegBB4Ldlsl::canSetResonanceScale |
( |
| ) |
|
|
inlineoverridevirtual |
◆ canVetoFSREmission()
virtual bool Pythia8::PowhegBB4Ldlsl::canVetoFSREmission |
( |
| ) |
|
|
inlineoverridevirtual |
◆ canVetoISREmission()
bool Pythia8::PowhegHooksSetterMethod::canVetoISREmission |
( |
| ) |
|
|
inlineinherited |
◆ canVetoMPIEmission()
bool Pythia8::PowhegHooksSetterMethod::canVetoMPIEmission |
( |
| ) |
|
|
inlineinherited |
◆ canVetoMPIStep()
bool Pythia8::PowhegBB4Ldlsl::canVetoMPIStep |
( |
| ) |
|
|
inlineoverride |
◆ canVetoProcessLevel()
virtual bool Pythia8::PowhegBB4Ldlsl::canVetoProcessLevel |
( |
| ) |
|
|
inlineoverridevirtual |
◆ doVetoFSR()
bool Pythia8::PowhegBB4Ldlsl::doVetoFSR |
( |
bool |
condition | ) |
|
|
inline |
◆ doVetoFSREmission()
virtual bool Pythia8::PowhegBB4Ldlsl::doVetoFSREmission |
( |
int |
sizeOld, |
|
|
const Event & |
e, |
|
|
int |
iSys, |
|
|
bool |
inResonance |
|
) |
| |
|
inlineoverridevirtual |
Definition at line 217 of file PowhegHooksBB4Ldlsl.cxx.
223 int iRecAft =
e.size() - 1;
224 int iEmt =
e.size() - 2;
225 int iRadAft =
e.size() - 3;
226 int iRadBef =
e[iEmt].mother1();
229 int iRes =
e[iRadBef].mother1();
230 while ( iRes > 0 && (std::abs(
e[iRes].
id()) !=6 && std::abs(
e[iRes].
id()) != 24) ) {
231 iRes =
e[iRes].mother1();
234 #if PYTHIA_VERSION_INTEGER >= 8310
235 loggerPtr->ERROR_MSG(
"Warning in PowhegHooksBB4L::doVetoFSREmission: emission in resonance not from the top quark or from the W boson, not vetoing");
237 infoPtr->errorMsg(
"Warning in PowhegHooksBB4L::doVetoFSREmission: emission in resonance not from the top quark or from the W boson, not vetoing");
241 int iResId =
e[iRes].id();
250 Vec4
pr(
e[iRadAft].
p()),
pe(
e[iEmt].
p()), pres(
e[iRes].
p()),
prec(
e[iRecAft].
p()), psystem;
260 if (
e[iRadBef].
id() == 21)
263 else if (std::abs(
e[iRadBef].
id()) <= 5 && ((
e[iEmt].
id() == 21) && !
m_vetoQED(settingsPtr)) )
274 cout << iResId <<
": " <<
e[iRadBef].id() <<
" > " <<
e[iRadAft].id() <<
" + " <<
e[iEmt].id() <<
"; " <<
scale << endl;
277 else if (iResId == -6){
279 cout << iResId <<
": " <<
e[iRadBef].id() <<
" > " <<
e[iRadAft].id() <<
" + " <<
e[iEmt].id() <<
"; " <<
scale << endl;
282 else if (iResId == 24) {
284 cout << iResId <<
": " <<
e[iRadBef].id() <<
" > " <<
e[iRadAft].id() <<
" + " <<
e[iEmt].id() <<
"; " <<
scale << endl;
287 else if (iResId == -24){
289 cout << iResId <<
": " <<
e[iRadBef].id() <<
" > " <<
e[iRadAft].id() <<
" + " <<
e[iEmt].id() <<
"; " <<
scale << endl;
293 #if PYTHIA_VERSION_INTEGER >= 8310
294 loggerPtr->ERROR_MSG(
"Error in PowhegHooksBB4L::doVetoFSREmission: unimplemented case");
296 infoPtr->errorMsg(
"Error in PowhegHooksBB4L::doVetoFSREmission: unimplemented case");
◆ doVetoISREmission()
bool Pythia8::PowhegHooksSetterMethod::doVetoISREmission |
( |
int |
, |
|
|
const Event & |
e, |
|
|
int |
iSys |
|
) |
| |
|
inlineinherited |
Definition at line 559 of file PowhegHooksSetterMethod.cxx.
561 if (iSys != 0)
return false;
567 int iRadAft = -1, iEmt = -1, iRecAft = -1;
568 for (
int i =
e.size() - 1;
i > 0;
i--) {
571 if (iRadAft == -1 &&
e[
i].
status() == -41) iRadAft =
i;
572 else if (iEmt == -1 &&
e[
i].
status() == 43) iEmt =
i;
573 else if (iRecAft == -1 &&
e[
i].
status() == -42) iRecAft =
i;
576 if (iRadAft == -1 &&
e[
i].
status() == -41) iRadAft =
i;
577 else if (iEmt == -1 &&
e[
i].
status() == 43) iEmt =
i;
578 else if (iRecAft == -1
582 if (iRadAft == -1 &&
e[
i].
status() == -41) iRadAft =
i;
583 else if (iEmt == -1 &&
e[
i].
status() == 43) iEmt =
i;
584 else if (iRecAft == -1
588 if (iRadAft != -1 && iEmt != -1 && iRecAft != -1)
break;
590 if (iRadAft == -1 || iEmt == -1 || iRecAft == -1) {
591 loggerPtr->ABORT_MSG(
"could not find ISR emission");
◆ doVetoMPIEmission()
bool Pythia8::PowhegHooksSetterMethod::doVetoMPIEmission |
( |
int |
, |
|
|
const Event & |
e |
|
) |
| |
|
inlineinherited |
◆ doVetoMPIStep()
bool Pythia8::PowhegBB4Ldlsl::doVetoMPIStep |
( |
int |
nMPI, |
|
|
const Event & |
e |
|
) |
| |
|
inlineoverride |
Definition at line 525 of file PowhegHooksBB4Ldlsl.cxx.
533 if (nMPI > 1)
return false;
536 bool top_exists =
false;
537 bool antitop_exists =
false;
538 for (
int i =
e.size() - 1;
i > 0;
i--) {
539 if (
e[
i].isFinal()) {
542 if (
e[
i].
id() == 6) top_exists =
true;
543 if (
e[
i].
id() == -6) antitop_exists =
true;
548 int nCurrentFinal = -1;
550 if (top_exists && antitop_exists) nCurrentFinal = 2;
552 else if (top_exists || antitop_exists) nCurrentFinal = 3;
554 std::cout <<
"Error: neither top nor anti-top found - something went wrong" << std::endl;
558 if (
count != nCurrentFinal &&
count != nCurrentFinal + 1) {
559 cout <<
"Error: wrong number of final state particles in event: count " <<
count <<
" nCurrentFinal: "<< nCurrentFinal << endl;
560 for (
int i =
e.size() - 1;
i > 0;
i--) {
561 if (
e[
i].isFinal()) { std:: cout <<
"FS particle " <<
i <<
" PID: " <<
e[
i].id() << std::endl;
567 bool isEmt = (
count == nCurrentFinal) ?
false :
true;
568 int iEmt = (isEmt) ?
e.size() - 1 : -1;
579 std::cout <<
"Error: m_pThardMode neither 1 or 2 - something went wrong" << std::endl;
◆ doVetoProcessLevel()
virtual bool Pythia8::PowhegBB4Ldlsl::doVetoProcessLevel |
( |
Event & |
e | ) |
|
|
inlineoverridevirtual |
Definition at line 176 of file PowhegHooksBB4Ldlsl.cxx.
180 ss << infoPtr->getEventComments();
183 assert (
temp ==
"#rwgt");
187 if (
radtype_.radtype==2)
return false;
189 int i_top = -1, i_atop = -1, i_wp = -1, i_wm = -1;
190 for (
int i = 0;
i <
e.size();
i++) {
191 if (
e[
i].
id() == 6) i_top =
i;
192 if (
e[
i].
id() == -6) i_atop =
i;
193 if (
e[
i].
id() == 24) i_wp =
i;
194 if (
e[
i].
id() == -24) i_wm =
i;
◆ findresscale()
double Pythia8::PowhegBB4Ldlsl::findresscale |
( |
const int |
iRes, |
|
|
const Event & |
event |
|
) |
| |
|
inline |
Definition at line 349 of file PowhegHooksBB4Ldlsl.cxx.
352 if (iRes < 0)
return 1e30;
355 int nDau =
event[iRes].daughterList().size();
368 else if (std::abs(
event[iRes].
id()) == 6) {
370 int idw = -1,
idb = -1, idg = -1;
371 for (
int i = 0;
i < nDau;
i++) {
372 int iDau =
event[iRes].daughterList()[
i];
373 if (std::abs(
event[iDau].
id()) == 24) idw = iDau;
374 if (std::abs(
event[iDau].
id()) == 5)
idb = iDau;
375 if (std::abs(
event[iDau].
id()) == 21) idg = iDau;
380 pw.bstback(
event[iRes].
p());
390 else if (std::abs(
event[iRes].
id()) == 24) {
392 int idq = -1, ida = -1, idg = -1;
393 for (
int i = 0;
i < nDau;
i++) {
394 int iDau =
event[iRes].daughterList()[
i];
395 if (
event[iDau].
id() == 21) idg = iDau;
396 else if (
event[iDau].
id() > 0) idq = iDau;
397 else if (
event[iDau].
id() < 0) ida = iDau;
399 if (idq<0 or ida <0){
400 throw std::out_of_range(
"idq or ida out of range in PowhegHooksBB4Ldlsl.cxx");
404 pq.bstback(
event[iRes].
p());
406 pa.bstback(
event[iRes].
p());
411 Vec4 pw = pq + pa +
pg;
413 double csi = 2*
pg.e()/sqrt(q2);
414 double yq = 1 -
pg*pq/(
pg.e()*pq.e());
415 double ya = 1 -
pg*pa/(
pg.e()*pa.e());
417 return sqrt(
min(1-yq,1-ya)*
pow2(csi)*q2/2);
◆ getNFSRveto()
int Pythia8::PowhegHooksSetterMethod::getNFSRveto |
( |
| ) |
|
|
inlineinherited |
◆ getNInResonanceFSRVeto()
int Pythia8::PowhegBB4Ldlsl::getNInResonanceFSRVeto |
( |
| ) |
|
|
inline |
◆ getNISRveto()
int Pythia8::PowhegHooksSetterMethod::getNISRveto |
( |
| ) |
|
|
inlineinherited |
◆ gSplittingScale()
double Pythia8::PowhegBB4Ldlsl::gSplittingScale |
( |
Vec4 |
pt, |
|
|
Vec4 |
p1, |
|
|
Vec4 |
p2 |
|
) |
| |
|
inline |
◆ initAfterBeams()
virtual bool Pythia8::PowhegBB4Ldlsl::initAfterBeams |
( |
| ) |
|
|
inlineoverridevirtual |
◆ match_decay()
bool Pythia8::PowhegBB4Ldlsl::match_decay |
( |
int |
iparticle, |
|
|
const Event & |
e, |
|
|
const vector< int > & |
ids, |
|
|
vector< int > & |
positions, |
|
|
vector< Vec4 > & |
momenta, |
|
|
bool |
exitOnExtraLegs = true |
|
) |
| |
|
inline |
Definition at line 428 of file PowhegHooksBB4Ldlsl.cxx.
430 if (
e[iparticle].daughterList().
size() !=
ids.size()) {
431 if (exitOnExtraLegs &&
e[iparticle].daughterList().
size() >
ids.size()) {
432 cout <<
"extra leg" << endl;
438 for (
long unsigned int i = 0;
i <
e[iparticle].daughterList().
size();
i++) {
439 int di =
e[iparticle].daughterList()[
i];
447 for (
long unsigned int i = 0;
i <
e[iparticle].daughterList().
size();
i++) {
448 int di =
e[iparticle].daughterList()[
i];
449 positions.push_back(di);
450 momenta.push_back(
e[di].
p());
◆ numberVetoMPIStep()
int Pythia8::PowhegBB4Ldlsl::numberVetoMPIStep |
( |
| ) |
|
|
inlineoverride |
◆ pT()
double Pythia8::PowhegHooksSetterMethod::pT |
( |
const Event & |
e, |
|
|
int |
RadAfterBranch, |
|
|
int |
EmtAfterBranch, |
|
|
int |
RecAfterBranch, |
|
|
bool |
FSR |
|
) |
| |
|
inlineinherited |
Definition at line 102 of file PowhegHooksSetterMethod.cxx.
106 return pTvincia(
e, RadAfterBranch, EmtAfterBranch, RecAfterBranch);
109 return pTdire(
e, RadAfterBranch, EmtAfterBranch, RecAfterBranch);
110 return pTpythia(
e, RadAfterBranch, EmtAfterBranch, RecAfterBranch,
FSR);
◆ pTcalc()
double Pythia8::PowhegHooksSetterMethod::pTcalc |
( |
const Event & |
e, |
|
|
int |
i, |
|
|
int |
j, |
|
|
int |
k, |
|
|
int |
r, |
|
|
int |
xSRin |
|
) |
| |
|
inlineinherited |
Definition at line 325 of file PowhegHooksSetterMethod.cxx.
328 double pTemt = -1., pTnow;
329 int xSR1 = (xSRin == -1) ? 0 : xSRin;
330 int xSR2 = (xSRin == -1) ? 2 : xSRin + 1;
331 for (
int xSR = xSR1; xSR < xSR2; xSR++) {
333 bool FSR = (xSR == 0) ?
false :
true;
354 int iInA = partonSystemsPtr->getInA(0);
355 int iInB = partonSystemsPtr->getInB(0);
356 while (
e[iInA].mother1() != 1) { iInA =
e[iInA].mother1(); }
357 while (
e[iInB].mother1() != 2) { iInB =
e[iInB].mother1(); }
360 int jNow = (j > 0) ? j : 0;
361 int jMax = (j > 0) ? j + 1 :
e.size();
362 for (; jNow < jMax; jNow++) {
365 if (!
e[jNow].isFinal())
continue;
375 if (pTnow > 0.) pTemt = (pTemt < 0) ? pTnow :
min(pTemt, pTnow);
382 int outSize = partonSystemsPtr->sizeOut(0);
383 for (
int iMem = 0; iMem < outSize; iMem++) {
384 int iNow = partonSystemsPtr->getOut(0, iMem);
387 if (iNow == jNow )
continue;
390 if (jNow ==
e[iNow].daughter1()
391 && jNow ==
e[iNow].daughter2())
continue;
395 if (pTnow > 0.) pTemt = (pTemt < 0)
396 ? pTnow :
min(pTemt, pTnow);
406 pTnow =
pT(
e, iInA, jNow, iInB,
FSR);
407 if (pTnow > 0.) pTemt = (pTemt < 0) ? pTnow :
min(pTemt, pTnow);
408 pTnow =
pT(
e, iInB, jNow, iInA,
FSR);
409 if (pTnow > 0.) pTemt = (pTemt < 0) ? pTnow :
min(pTemt, pTnow);
414 for (
int kNow = 0; kNow <
e.size(); kNow++) {
415 if (kNow == jNow || !
e[kNow].isFinal())
continue;
420 pTnow =
pT(
e, kNow, jNow, iInA,
FSR);
421 if (pTnow > 0.) pTemt = (pTemt < 0)
422 ? pTnow :
min(pTemt, pTnow);
423 pTnow =
pT(
e, kNow, jNow, iInB,
FSR);
424 if (pTnow > 0.) pTemt = (pTemt < 0)
425 ? pTnow :
min(pTemt, pTnow);
428 for (
int rNow = 0; rNow <
e.size(); rNow++) {
429 if (rNow == kNow || rNow == jNow ||
430 !
e[rNow].isFinal())
continue;
432 pTnow =
pT(
e, kNow, jNow, rNow,
FSR);
433 if (pTnow > 0.) pTemt = (pTemt < 0)
434 ? pTnow :
min(pTemt, pTnow);
◆ pTdire()
double Pythia8::PowhegHooksSetterMethod::pTdire |
( |
const Event & |
event, |
|
|
int |
iRad, |
|
|
int |
iEmt, |
|
|
int |
iRec |
|
) |
| |
|
inlineinherited |
Definition at line 233 of file PowhegHooksSetterMethod.cxx.
242 if (
rad.isFinal() && rec.isFinal()) {
244 const double sij = 2.*
rad.p()*emt.p();
245 const double sik = 2.*
rad.p()*rec.p();
246 const double sjk = 2.*rec.p()*emt.p();
247 pT2 = sij*sjk/(sij+sik+sjk);
248 }
else if (
rad.isFinal() && !rec.isFinal()) {
250 const double sij = 2.*
rad.p()*emt.p();
251 const double sai = -2.*rec.p()*
rad.p();
252 const double saj = -2.*rec.p()*emt.p();
253 pT2 = sij*saj/(sai+saj)*(sij+saj+sai)/(sai+saj);
254 if (sij+saj+sai < 1
e-5 && std::abs(sij+saj+sai) < 1
e-5) pT2 = sij;
255 }
else if (!
rad.isFinal() && rec.isFinal()) {
257 const double sai = -2.*
rad.p()*emt.p();
258 const double sik = 2.*rec.p()*emt.p();
259 const double sak = -2.*
rad.p()*rec.p();
260 pT2 = sai*sik/(sai+sak)*(sai+sik+sak)/(sai+sak);
261 }
else if (!
rad.isFinal() || !rec.isFinal()) {
263 const double sai = -2.*
rad.p()*emt.p();
264 const double sbi = -2.*rec.p()*emt.p();
265 const double sab = 2.*
rad.p()*rec.p();
266 pT2 = sai*sbi/sab*(sai+sbi+sab)/sab;
268 loggerPtr->ABORT_MSG(
"could not determine branching type");
274 loggerPtr->WARNING_MSG(
"negative pT");
◆ pTpowheg()
double Pythia8::PowhegHooksSetterMethod::pTpowheg |
( |
const Event & |
e, |
|
|
int |
i, |
|
|
int |
j, |
|
|
bool |
FSR |
|
) |
| |
|
inlineinherited |
Definition at line 285 of file PowhegHooksSetterMethod.cxx.
293 int iInA = partonSystemsPtr->getInA(0);
294 int iInB = partonSystemsPtr->getInB(0);
295 double betaZ = - (
e[iInA].pz() +
e[iInB].pz() ) /
296 (
e[iInA].
e() +
e[iInB].e() );
297 Vec4 iVecBst(
e[
i].
p()), jVecBst(
e[j].
p());
298 iVecBst.bst(0., 0., betaZ);
299 jVecBst.bst(0., 0., betaZ);
300 pTnow = sqrt( (iVecBst + jVecBst).m2Calc() *
301 iVecBst.e() * jVecBst.e() /
302 pow2(iVecBst.e() + jVecBst.e()) );
311 loggerPtr->WARNING_MSG(
"negative pT");
◆ pTpythia() [1/2]
double Pythia8::PowhegBB4Ldlsl::pTpythia |
( |
const Event & |
e, |
|
|
int |
RadAfterBranch, |
|
|
int |
EmtAfterBranch, |
|
|
int |
RecAfterBranch |
|
) |
| |
|
inline |
Definition at line 471 of file PowhegHooksBB4Ldlsl.cxx.
476 Vec4 radVec =
e[RadAfterBranch].p();
477 Vec4 emtVec =
e[EmtAfterBranch].p();
478 Vec4 recVec =
e[RecAfterBranch].p();
479 int radID =
e[RadAfterBranch].id();
482 Vec4 Q(radVec + emtVec);
483 double Qsq = Q.m2Calc();
486 double m2Rad = (std::abs(radID) >= 4 && std::abs(radID) < 7) ?
487 pow2(particleDataPtr->m0(radID)) : 0.;
492 Vec4
sum = radVec + recVec + emtVec;
493 double m2Dip =
sum.m2Calc();
495 double x1 = 2. * (
sum * radVec) / m2Dip;
496 double x3 = 2. * (
sum * emtVec) / m2Dip;
498 pTnow =
z * (1. -
z);
502 pTnow *= (Qsq - m2Rad);
505 cout <<
"Warning: pTpythia was negative" << endl;
◆ pTpythia() [2/2]
double Pythia8::PowhegHooksSetterMethod::pTpythia |
( |
const Event & |
e, |
|
|
int |
RadAfterBranch, |
|
|
int |
EmtAfterBranch, |
|
|
int |
RecAfterBranch, |
|
|
bool |
FSR |
|
) |
| |
|
inlineinherited |
Definition at line 117 of file PowhegHooksSetterMethod.cxx.
121 Vec4 radVec =
e[RadAfterBranch].p();
122 Vec4 emtVec =
e[EmtAfterBranch].p();
123 Vec4 recVec =
e[RecAfterBranch].p();
124 int radID =
e[RadAfterBranch].id();
127 double sign = (
FSR) ? 1. : -1.;
128 Vec4 Q(radVec +
sign * emtVec);
129 double Qsq =
sign * Q.m2Calc();
132 double m2Rad = (std::abs(radID) >= 4 && std::abs(radID) < 7) ?
133 pow2(particleDataPtr->m0(radID)) : 0.;
139 Vec4
sum = radVec + recVec + emtVec;
140 double m2Dip =
sum.m2Calc();
141 double x1 = 2. * (
sum * radVec) / m2Dip;
142 double x3 = 2. * (
sum * emtVec) / m2Dip;
144 pTnow =
z * (1. -
z);
148 Vec4 qBR(radVec - emtVec + recVec);
149 Vec4 qAR(radVec + recVec);
150 z = qBR.m2Calc() / qAR.m2Calc();
155 pTnow *= (Qsq -
sign * m2Rad);
159 loggerPtr->WARNING_MSG(
"negative pT");
◆ pTvincia()
double Pythia8::PowhegHooksSetterMethod::pTvincia |
( |
const Event & |
event, |
|
|
int |
i1, |
|
|
int |
i3, |
|
|
int |
i2 |
|
) |
| |
|
inlineinherited |
Definition at line 171 of file PowhegHooksSetterMethod.cxx.
174 Vec4
p1 =
event[i1].p();
175 Vec4
p3 =
event[i3].p();
176 Vec4
p2 =
event[i2].p();
179 int iMoth1 =
event[i1].mother1();
180 int iMoth2 =
event[i2].mother1();
181 if (iMoth1 == 0 || iMoth2 == 0) {
182 loggerPtr->ABORT_MSG(
"could not find mothers of particles");
187 double mMoth1Sq =
event[iMoth1].m2();
188 double mMoth2Sq =
event[iMoth2].m2();
189 double sgn1 =
event[i1].isFinal() ? 1. : -1.;
190 double sgn2 =
event[i2].isFinal() ? 1. : -1.;
191 double qSq13 = sgn1*(
m2(sgn1*
p1+
p3) - mMoth1Sq);
192 double qSq23 = sgn2*(
m2(sgn2*
p2+
p3) - mMoth2Sq);
196 if (
event[i1].isFinal() &&
event[i2].isFinal()) {
198 sMax =
m2(
p1+
p2+
p3) - mMoth1Sq - mMoth2Sq;
200 || (!
event[i1].isFinal() &&
event[i2].isFinal())) {
204 || (
event[i1].isFinal() && !
event[i2].isFinal())) {
207 }
else if (!
event[i1].isFinal() || !
event[i2].isFinal()) {
211 loggerPtr->ABORT_MSG(
"could not determine branching type");
216 double pT2now = qSq13*qSq23/sMax;
220 loggerPtr->WARNING_MSG(
"negative pT");
◆ qSplittingScale()
double Pythia8::PowhegBB4Ldlsl::qSplittingScale |
( |
Vec4 |
pt, |
|
|
Vec4 |
p1, |
|
|
Vec4 |
p2 |
|
) |
| |
|
inline |
◆ scaleResonance()
virtual double Pythia8::PowhegBB4Ldlsl::scaleResonance |
( |
int |
iRes, |
|
|
const Event & |
e |
|
) |
| |
|
inlineoverridevirtual |
Definition at line 329 of file PowhegHooksBB4Ldlsl.cxx.
331 return sqrt(
e[iRes].m2Calc());
333 if (
e[iRes].
id() == 6)
335 else if (
e[iRes].
id() == -6)
337 else if (
e[iRes].
id() == 24)
339 else if (
e[iRes].
id() == -24)
◆ setpThard()
void Pythia8::PowhegHooksSetterMethod::setpThard |
( |
double |
newPThard | ) |
|
|
inlineinherited |
◆ m_accepted
bool Pythia8::PowhegHooksSetterMethod::m_accepted |
|
privateinherited |
◆ m_atopresscale
double Pythia8::PowhegBB4Ldlsl::m_atopresscale |
|
private |
◆ m_debug
◆ m_emittedMode
int Pythia8::PowhegHooksSetterMethod::m_emittedMode |
|
privateinherited |
◆ m_isEmt
bool Pythia8::PowhegHooksSetterMethod::m_isEmt |
|
privateinherited |
◆ m_MPIvetoMode
int Pythia8::PowhegHooksSetterMethod::m_MPIvetoMode |
|
privateinherited |
◆ m_nAcceptSeq
int Pythia8::PowhegHooksSetterMethod::m_nAcceptSeq |
|
privateinherited |
◆ m_nFinal
int Pythia8::PowhegHooksSetterMethod::m_nFinal |
|
privateinherited |
◆ m_nFSRveto
unsigned long int Pythia8::PowhegHooksSetterMethod::m_nFSRveto |
|
privateinherited |
◆ m_nInResonanceFSRveto
unsigned long int Pythia8::PowhegBB4Ldlsl::m_nInResonanceFSRveto |
|
private |
◆ m_nISRveto
unsigned long int Pythia8::PowhegHooksSetterMethod::m_nISRveto |
|
privateinherited |
◆ m_pTdefMode
int Pythia8::PowhegHooksSetterMethod::m_pTdefMode |
|
privateinherited |
◆ m_pTemtMode
int Pythia8::PowhegHooksSetterMethod::m_pTemtMode |
|
privateinherited |
◆ m_pThard
double Pythia8::PowhegHooksSetterMethod::m_pThard |
|
privateinherited |
◆ m_pThardMode
◆ m_pTmin
◆ m_pTMPI
double Pythia8::PowhegHooksSetterMethod::m_pTMPI |
|
privateinherited |
◆ m_pTpythiaVeto
◆ m_QEDvetoMode
int Pythia8::PowhegHooksSetterMethod::m_QEDvetoMode |
|
privateinherited |
◆ m_scaleResonanceVeto
◆ m_showerModel
int Pythia8::PowhegHooksSetterMethod::m_showerModel |
|
privateinherited |
◆ m_topresscale
double Pythia8::PowhegBB4Ldlsl::m_topresscale |
|
private |
◆ m_vetoCount
int Pythia8::PowhegHooksSetterMethod::m_vetoCount |
|
privateinherited |
◆ m_vetoDipoleFrame
◆ m_vetoFSREmission
◆ m_vetoMode
int Pythia8::PowhegHooksSetterMethod::m_vetoMode |
|
privateinherited |
◆ m_vetoProduction
◆ m_vetoQED
◆ m_wmresscale
double Pythia8::PowhegBB4Ldlsl::m_wmresscale |
|
private |
◆ m_wpresscale
double Pythia8::PowhegBB4Ldlsl::m_wpresscale |
|
private |
The documentation for this class was generated from the following file:
Pythia8_UserHooks::UserSetting< double > m_scaleResonanceVeto
Pythia8_UserHooks::UserSetting< bool > m_vetoQED
unsigned long int m_nFSRveto
bool isResonance(const T &p)
double pTpythia(const Event &e, int RadAfterBranch, int EmtAfterBranch, int RecAfterBranch)
Pythia8_UserHooks::UserSetting< bool > m_debug
bool doVetoFSR(bool condition)
Particle_v1 Particle
Define the latest version of the particle class.
double gSplittingScale(Vec4 pt, Vec4 p1, Vec4 p2)
double pTdire(const Event &event, int iRad, int iEmt, int iRec)
POOL::TEvent event(POOL::TEvent::kClassAccess)
Pythia8_UserHooks::UserSetting< int > m_pTpythiaVeto
double qSplittingScale(Vec4 pt, Vec4 p1, Vec4 p2)
bool doVetoMPIStep(int nMPI, const Event &e)
unsigned long int m_nISRveto
Pythia8_UserHooks::UserSetting< int > m_pThardMode
double pTcalc(const Event &e, int i, int j, int k, int r, int xSRin)
Pythia8_UserHooks::UserSetting< int > m_vetoProduction
double pTvincia(const Event &event, int i1, int i3, int i2)
void setpThard(double newPThard)
unsigned long int m_nInResonanceFSRveto
double findresscale(const int iRes, const Event &event)
double pTpowheg(const Event &e, int i, int j, bool FSR)
double pT(const Event &e, int RadAfterBranch, int EmtAfterBranch, int RecAfterBranch, bool FSR)
constexpr int pow(int base, int exp) noexcept
bool doVetoFSREmission(int, const Event &e, int iSys, bool)
Pythia8_UserHooks::UserSetting< double > m_pTmin
Pythia8_UserHooks::UserSetting< bool > m_vetoFSREmission
Pythia8_UserHooks::UserSetting< int > m_vetoDipoleFrame
double pTpythia(const Event &e, int RadAfterBranch, int EmtAfterBranch, int RecAfterBranch, bool FSR)
constexpr int pow2(int x)