ATLAS Offline Software
Loading...
Searching...
No Matches
Pythia8::PowhegBB4Ldlsl Class Reference
Inheritance diagram for Pythia8::PowhegBB4Ldlsl:
Collaboration diagram for Pythia8::PowhegBB4Ldlsl:

Public Member Functions

 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)

Private Attributes

Pythia8_UserHooks::UserSetting< bool > m_debug
Pythia8_UserHooks::UserSetting< bool > m_vetoFSREmission
Pythia8_UserHooks::UserSetting< bool > m_vetoQED
double m_topresscale
double m_atopresscale
double m_wpresscale
double m_wmresscale
unsigned long int m_nInResonanceFSRveto
Pythia8_UserHooks::UserSetting< double > m_pTmin
Pythia8_UserHooks::UserSetting< int > m_vetoProduction
Pythia8_UserHooks::UserSetting< int > m_pTpythiaVeto
Pythia8_UserHooks::UserSetting< int > m_vetoDipoleFrame
Pythia8_UserHooks::UserSetting< double > m_scaleResonanceVeto
Pythia8_UserHooks::UserSetting< int > m_pThardMode
int m_showerModel
int m_nFinal
int m_vetoMode
int m_MPIvetoMode
int m_QEDvetoMode
int m_vetoCount
int m_pTemtMode
int m_emittedMode
int m_pTdefMode
double m_pThard
double m_pTMPI
bool m_accepted
bool m_isEmt
int m_nAcceptSeq
unsigned long int m_nISRveto
unsigned long int m_nFSRveto

Detailed Description

Definition at line 134 of file PowhegHooksBB4Ldlsl.cxx.

Constructor & Destructor Documentation

◆ PowhegBB4Ldlsl()

Pythia8::PowhegBB4Ldlsl::PowhegBB4Ldlsl ( )
inline

Definition at line 138 of file PowhegHooksBB4Ldlsl.cxx.

139 : m_debug("Powheg:bb4l:DEBUG", false),
140 m_vetoFSREmission("Powheg:bb4l:FSREmission:veto", true),
141 m_vetoQED("Powheg:bb4l:vetoQED", false),
142 m_topresscale(-1.), m_atopresscale(-1.),
143 m_wpresscale(-1.),m_wmresscale(-1.),
145 m_pTmin("Powheg:bb4l:pTminVeto", 0.5),
146 m_vetoProduction("Powheg:veto", 1),
147 m_pTpythiaVeto("Powheg:bb4l:pTpythiaVeto", 0),
148 m_vetoDipoleFrame("Powheg:bb4l:FSREmission:vetoDipoleFrame", 0),
149 m_scaleResonanceVeto("Powheg:bb4l:ScaleResonance:veto", 0.),
150 m_pThardMode("POWHEG:pThard",0)
151 {
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;
159
160 }
Pythia8_UserHooks::UserSetting< bool > m_vetoFSREmission
Pythia8_UserHooks::UserSetting< int > m_vetoProduction
Pythia8_UserHooks::UserSetting< double > m_pTmin
Pythia8_UserHooks::UserSetting< bool > m_vetoQED
Pythia8_UserHooks::UserSetting< int > m_vetoDipoleFrame
Pythia8_UserHooks::UserSetting< bool > m_debug
unsigned long int m_nInResonanceFSRveto
Pythia8_UserHooks::UserSetting< double > m_scaleResonanceVeto
Pythia8_UserHooks::UserSetting< int > m_pTpythiaVeto
Pythia8_UserHooks::UserSetting< int > m_pThardMode

◆ ~PowhegBB4Ldlsl()

Pythia8::PowhegBB4Ldlsl::~PowhegBB4Ldlsl ( )
inlineoverride

Definition at line 162 of file PowhegHooksBB4Ldlsl.cxx.

162{ }

Member Function Documentation

◆ canSetResonanceScale()

virtual bool Pythia8::PowhegBB4Ldlsl::canSetResonanceScale ( )
inlineoverridevirtual

Definition at line 322 of file PowhegHooksBB4Ldlsl.cxx.

322{ return m_scaleResonanceVeto(settingsPtr); }

◆ canVetoFSREmission()

virtual bool Pythia8::PowhegBB4Ldlsl::canVetoFSREmission ( )
inlineoverridevirtual

Definition at line 216 of file PowhegHooksBB4Ldlsl.cxx.

216{ return m_vetoFSREmission(settingsPtr) || m_vetoProduction(settingsPtr); }

◆ canVetoISREmission()

bool Pythia8::PowhegHooksSetterMethod::canVetoISREmission ( )
inlineinherited

Definition at line 558 of file PowhegHooksSetterMethod.cxx.

558{ return (m_vetoMode == 0) ? false : true; }

◆ canVetoMPIEmission()

bool Pythia8::PowhegHooksSetterMethod::canVetoMPIEmission ( )
inlineinherited

Definition at line 722 of file PowhegHooksSetterMethod.cxx.

722{return (m_MPIvetoMode == 0) ? false : true;}

◆ canVetoMPIStep()

bool Pythia8::PowhegBB4Ldlsl::canVetoMPIStep ( )
inlineoverride

Definition at line 523 of file PowhegHooksBB4Ldlsl.cxx.

523{ return true; }

◆ canVetoProcessLevel()

virtual bool Pythia8::PowhegBB4Ldlsl::canVetoProcessLevel ( )
inlineoverridevirtual

Definition at line 175 of file PowhegHooksBB4Ldlsl.cxx.

175{ return true; }

◆ doVetoFSR()

bool Pythia8::PowhegBB4Ldlsl::doVetoFSR ( bool condition)
inline

Definition at line 311 of file PowhegHooksBB4Ldlsl.cxx.

311 {
312 if (radtype_.radtype==2) return false;
313 if (condition) {
315 return true;
316 }
317 return false;
318 }
struct @265362120060103244115120172162007233333034374360 radtype_

◆ doVetoFSREmission()

virtual bool Pythia8::PowhegBB4Ldlsl::doVetoFSREmission ( int sizeOld,
const Event & e,
int iSys,
bool inResonance )
inlineoverridevirtual

Definition at line 217 of file PowhegHooksBB4Ldlsl.cxx.

217 {
218
219 // FSR VETO INSIDE THE RESONANCE (if it is switched on)
220 if (inResonance && m_vetoFSREmission(settingsPtr)) {
221
222 // get the participants of the splitting: the recoiler, the radiator and the emitted
223 int iRecAft = e.size() - 1;
224 int iEmt = e.size() - 2;
225 int iRadAft = e.size() - 3;
226 int iRadBef = e[iEmt].mother1();
227
228 // find the resonance the radiator originates from
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();
232 }
233 if (iRes == 0) {
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");
236 #else
237 infoPtr->errorMsg("Warning in PowhegHooksBB4L::doVetoFSREmission: emission in resonance not from the top quark or from the W boson, not vetoing");
238 #endif
239 return doVetoFSR(false);
240 }
241 int iResId = e[iRes].id();
242
243 // calculate the scale of the emission
244 double scale;
245 //using pythia pT definition ...
246 if(m_pTpythiaVeto(settingsPtr))
247 scale = pTpythia(e, iRadAft, iEmt, iRecAft);
248 //.. or using POWHEG pT definition
249 else{
250 Vec4 pr(e[iRadAft].p()), pe(e[iEmt].p()), pres(e[iRes].p()), prec(e[iRecAft].p()), psystem;
251 // The computation of the POWHEG pT can be done in the top rest frame or in the diple one.
252 // pdipole = pemt +prec +prad (after the emission)
253 // For the first emission off the top resonance pdipole = pw +pb (before the emission) = ptop
254 if(m_vetoDipoleFrame(settingsPtr))
255 psystem = pr+pe+prec;
256 else
257 psystem = pres;
258
259 // gluon splitting into two partons
260 if (e[iRadBef].id() == 21)
261 scale = gSplittingScale(psystem, pr, pe);
262 // quark emitting a gluon (or a photon)
263 else if (std::abs(e[iRadBef].id()) <= 5 && ((e[iEmt].id() == 21) && ! m_vetoQED(settingsPtr)) )
264 scale = qSplittingScale(psystem, pr, pe);
265 // other stuff (which we should not veto)
266 else {
267 scale = 0;
268 }
269 }
270
271 // compare the current splitting scale to the correct resonance scale
272 if (iResId == 6) {
273 if ( m_debug(settingsPtr) && scale > m_topresscale)
274 cout << iResId << ": " << e[iRadBef].id() << " > " << e[iRadAft].id() << " + " << e[iEmt].id() << "; " << scale << endl;
275 return doVetoFSR(scale > m_topresscale);
276 }
277 else if (iResId == -6){
278 if ( m_debug(settingsPtr) && scale > m_atopresscale)
279 cout << iResId << ": " << e[iRadBef].id() << " > " << e[iRadAft].id() << " + " << e[iEmt].id() << "; " << scale << endl;
280 return doVetoFSR(scale > m_atopresscale);
281 }
282 else if (iResId == 24) {
283 if ( m_debug(settingsPtr) && scale > m_wpresscale)
284 cout << iResId << ": " << e[iRadBef].id() << " > " << e[iRadAft].id() << " + " << e[iEmt].id() << "; " << scale << endl;
285 return doVetoFSR(scale > m_wpresscale);
286 }
287 else if (iResId == -24){
288 if ( m_debug(settingsPtr) && scale > m_wmresscale)
289 cout << iResId << ": " << e[iRadBef].id() << " > " << e[iRadAft].id() << " + " << e[iEmt].id() << "; " << scale << endl;
290 return doVetoFSR(scale > m_wmresscale);
291 }
292 else {
293 #if PYTHIA_VERSION_INTEGER >= 8310
294 loggerPtr->ERROR_MSG("Error in PowhegHooksBB4L::doVetoFSREmission: unimplemented case");
295 #else
296 infoPtr->errorMsg("Error in PowhegHooksBB4L::doVetoFSREmission: unimplemented case");
297 #endif
298 exit(-1);
299 }
300 }
301 // FSR VETO THE PRODUCTION PROCESS, i.e. OUTSIDE RESONANCE (if it is switched on)
302 else if(!inResonance && m_vetoProduction(settingsPtr)){
303 return PowhegHooksSetterMethod::doVetoFSREmission(sizeOld, e, iSys, inResonance);
304 }
305 // OTHERWISE DON'T VETO
306 else {
307 return false;
308 }
309 }
bool doVetoFSR(bool condition)
double pTpythia(const Event &e, int RadAfterBranch, int EmtAfterBranch, int RecAfterBranch)
double qSplittingScale(Vec4 pt, Vec4 p1, Vec4 p2)
double gSplittingScale(Vec4 pt, Vec4 p1, Vec4 p2)
bool doVetoFSREmission(int, const Event &e, int iSys, bool)

◆ doVetoISREmission()

bool Pythia8::PowhegHooksSetterMethod::doVetoISREmission ( int ,
const Event & e,
int iSys )
inlineinherited

Definition at line 559 of file PowhegHooksSetterMethod.cxx.

559 {
560 // Must be radiation from the hard system
561 if (iSys != 0) return false;
562
563 // If we already have m_accepted 'm_vetoCount' emissions in a row, do nothing
564 if (m_vetoMode == 1 && m_nAcceptSeq >= m_vetoCount) return false;
565
566 // Pythia radiator after, emitted and recoiler after.
567 int iRadAft = -1, iEmt = -1, iRecAft = -1;
568 for (int i = e.size() - 1; i > 0; i--) {
569 if (m_showerModel == 1) {
570 // Pythia.
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;
574 } else if (m_showerModel == 2) {
575 // Vincia.
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
579 && (e[i].status() == -41 || e[i].status() == 44)) iRecAft = i;
580 } else if (m_showerModel == 3) {
581 // Dire.
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
585 && (e[i].status() == -41
586 || e[i].status() == 44 || e[i].status() == 48)) iRecAft = i;
587 }
588 if (iRadAft != -1 && iEmt != -1 && iRecAft != -1) break;
589 }
590 if (iRadAft == -1 || iEmt == -1 || iRecAft == -1) {
591 loggerPtr->ABORT_MSG("could not find ISR emission");
592 exit(1);
593 }
594
595 // m_pTemtMode == 0: pT of emitted w.r.t. radiator
596 // m_pTemtMode == 1: min(pT of emitted w.r.t. all incoming/outgoing)
597 // m_pTemtMode == 2: min(pT of all outgoing w.r.t. all incoming/outgoing)
598 int xSR = (m_pTemtMode == 0) ? 0 : -1;
599 int i = (m_pTemtMode == 0) ? iRadAft : -1;
600 int j = (m_pTemtMode != 2) ? iEmt : -1;
601 int k = -1;
602 int r = (m_pTemtMode == 0) ? iRecAft : -1;
603 double pTemt = pTcalc(e, i, j, k, r, xSR);
604
605 // If a Born configuration, and a photon, and m_QEDvetoMode=2,
606 // then don't veto photons, W, or Z harder than m_pThard.
607 bool vetoParton = (!m_isEmt && e[iEmt].colType()==0 && m_QEDvetoMode==2)
608 ? false: true;
609
610 // Veto if pTemt > m_pThard.
611 if (pTemt > m_pThard) {
612 if(!vetoParton) {
613 // Don't veto ANY emissions afterwards.
615 } else {
616 m_nAcceptSeq = 0;
617 m_nISRveto++;
618 return true;
619 }
620 }
621
622 // Else mark that an emission has been m_accepted and continue.
623 m_nAcceptSeq++;
624 m_accepted = true;
625 return false;
626 }
double pTcalc(const Event &e, int i, int j, int k, int r, int xSRin)
int r
Definition globals.cxx:22
status
Definition merge.py:16

◆ doVetoMPIEmission()

bool Pythia8::PowhegHooksSetterMethod::doVetoMPIEmission ( int ,
const Event & e )
inlineinherited

Definition at line 723 of file PowhegHooksSetterMethod.cxx.

723 {
724 if (m_MPIvetoMode == 1) {
725 if (e[e.size() - 1].pT() > m_pTMPI) return true;
726 }
727 return false;
728 }

◆ doVetoMPIStep()

bool Pythia8::PowhegBB4Ldlsl::doVetoMPIStep ( int nMPI,
const Event & e )
inlineoverride

Definition at line 525 of file PowhegHooksBB4Ldlsl.cxx.

525 {
526 // let the original PowhegHook intialise all necessary variables
527 // and set shower starting scale for pThard=0 mode
528 // consequence: always need to set nFinal = -1 in job options!
530 // only reset pThard value if using pThardMode =1 or = 2
531 if (m_pThardMode(settingsPtr) == 1 || m_pThardMode(settingsPtr) == 2){
532 // Extra check on nMPI
533 if (nMPI > 1) return false;
534 int count = 0;
535 //check if there is a top and an antitop in the event
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()) {
540 count++;
541 //check if there is a top and an antitop in the event
542 if (e[i].id() == 6) top_exists = true;
543 if (e[i].id() == -6) antitop_exists = true;
544 } else break;
545 }
546
547 //adjust nFinal depending on the number of tops
548 int nCurrentFinal = -1;
549 // if top and antitop exist, then pp -> t tbar (+ pwhg emissions) -> WbWb (+X)
550 if (top_exists && antitop_exists) nCurrentFinal = 2;
551 // if only top or antitop exist, then pp -> t W b (+ pwhg emissions) -> WbWb (+X)
552 else if (top_exists || antitop_exists) nCurrentFinal = 3;
553 else{
554 std::cout << "Error: neither top nor anti-top found - something went wrong" << std::endl;
555 exit(1);
556 }
557 // other cases not considered currently
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;
562 }
563 }
564 exit(1);
565 }
566 // Flag if POWHEG radiation present and index
567 bool isEmt = (count == nCurrentFinal) ? false : true;
568 int iEmt = (isEmt) ? e.size() - 1 : -1;
569
570 double pThard = 0;
571 if (m_pThardMode(settingsPtr) == 1) {
572 pThard = PowhegHooksSetterMethod::pTcalc(e, -1, iEmt, -1, -1, -1);
573 // If pThardMode is 2, then the pT of all final-state partons is checked
574 // against all other incoming and outgoing partons, with the minimal value
575 // taken.
576 } else if (m_pThardMode(settingsPtr) == 2) {
577 pThard = PowhegHooksSetterMethod::pTcalc(e, -1, -1, -1, -1, -1);
578 } else {
579 std::cout << "Error: m_pThardMode neither 1 or 2 - something went wrong" << std::endl;
580 exit(1);
581 }
582
583 // set pThard value in base class UserHook
585 }
586
587 // Do not veto the event
588 return false;
589 }
bool doVetoMPIStep(int nMPI, const Event &e)
int count(std::string s, const std::string &regx)
count how many occurances of a regx are in a string
Definition hcg.cxx:146

◆ doVetoProcessLevel()

virtual bool Pythia8::PowhegBB4Ldlsl::doVetoProcessLevel ( Event & e)
inlineoverridevirtual

Definition at line 176 of file PowhegHooksBB4Ldlsl.cxx.

176 {
177
178 // extract the radtype from the event comment
179 stringstream ss;
180 ss << infoPtr->getEventComments();
181 string temp;
182 ss >> temp >> radtype_.radtype;
183 assert (temp == "#rwgt");
184
185 // we only calculate resonance scales for btilde events (radtype_.radtype==1)
186 // remnant events are not vetoed
187 if (radtype_.radtype==2) return false;
188 // find last top and the last anti-top in the record
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;
195 }
196 // if found calculate the resonance scale
197 m_topresscale = findresscale(i_top, e);
198 // similarly for anti-top
199 m_atopresscale = findresscale(i_atop, e);
200 // and for W^+ and W^-
201 m_wpresscale = findresscale(i_wp, e);
202 m_wmresscale = findresscale(i_wm, e);
203
204 // this is from old UserHook -> not needed anymore?
205 // // initialize stuff
206 // doVetoFSRInit();
207
208
209 // do not veto, ever
210 return false;
211 }
static Double_t ss
double findresscale(const int iRes, const Event &event)

◆ findresscale()

double Pythia8::PowhegBB4Ldlsl::findresscale ( const int iRes,
const Event & event )
inline

Definition at line 349 of file PowhegHooksBB4Ldlsl.cxx.

349 {
350
351 // return large scale if the resonance position is ill defined
352 if (iRes < 0) return 1e30;
353
354 // get number of resonance decay products
355 int nDau = event[iRes].daughterList().size();
356
357 // iRes is not decayed, return high scale equivalent to
358 // unrestricted shower
359 if (nDau == 0) {
360 return 1e30;
361 }
362 // iRes did not radiate, this means that POWHEG pt scale has
363 // evolved all the way down to pTmin
364 else if (nDau < 3) {
365 return m_pTmin(settingsPtr);
366 }
367 // iRes is a (anti-)top quark
368 else if (std::abs(event[iRes].id()) == 6) {
369 // find top daughters
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;
376 }
377
378 // Get daughter 4-vectors in resonance frame
379 Vec4 pw(event[idw].p());
380 pw.bstback(event[iRes].p());
381 Vec4 pb(event[idb].p());
382 pb.bstback(event[iRes].p());
383 Vec4 pg(event[idg].p());
384 pg.bstback(event[iRes].p());
385
386 // Calculate scale and return it
387 return sqrt(2*pg*pb*pg.e()/pb.e());
388 }
389 // iRes is a W+(-) boson
390 else if (std::abs(event[iRes].id()) == 24) {
391 // Find W daughters
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;
398 }
399 if (idq<0 or ida <0){
400 throw std::out_of_range("idq or ida out of range in PowhegHooksBB4Ldlsl.cxx");
401 }
402 // Get daughter 4-vectors in resonance frame
403 Vec4 pq(event[idq].p());
404 pq.bstback(event[iRes].p());
405 Vec4 pa(event[ida].p());
406 pa.bstback(event[iRes].p());
407 Vec4 pg(event[idg].p());
408 pg.bstback(event[iRes].p());
409
410 // Calculate scale
411 Vec4 pw = pq + pa + pg;
412 double q2 = pw*pw;
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());
416 // and return it
417 return sqrt(min(1-yq,1-ya)*pow2(csi)*q2/2);
418 }
419 // in any other case just return a high scale equivalent to
420 // unrestricted shower
421 return 1e30;
422 }
static const std::map< unsigned int, unsigned int > pow2
#define min(a, b)
Definition cfImp.cxx:40

◆ getNFSRveto()

int Pythia8::PowhegHooksSetterMethod::getNFSRveto ( )
inlineinherited

Definition at line 735 of file PowhegHooksSetterMethod.cxx.

735{ return m_nFSRveto; }

◆ getNInResonanceFSRVeto()

int Pythia8::PowhegBB4Ldlsl::getNInResonanceFSRVeto ( )
inline

Definition at line 513 of file PowhegHooksBB4Ldlsl.cxx.

513{ return m_nInResonanceFSRveto; }

◆ getNISRveto()

int Pythia8::PowhegHooksSetterMethod::getNISRveto ( )
inlineinherited

Definition at line 734 of file PowhegHooksSetterMethod.cxx.

734{ return m_nISRveto; }

◆ gSplittingScale()

double Pythia8::PowhegBB4Ldlsl::gSplittingScale ( Vec4 pt,
Vec4 p1,
Vec4 p2 )
inline

Definition at line 461 of file PowhegHooksBB4Ldlsl.cxx.

461 {
462 p1.bstback(pt);
463 p2.bstback(pt);
464 return sqrt( 2*p1*p2*p1.e()*p2.e()/(pow(p1.e()+p2.e(),2)) );
465 }
constexpr int pow(int base, int exp) noexcept

◆ initAfterBeams()

virtual bool Pythia8::PowhegBB4Ldlsl::initAfterBeams ( )
inlineoverridevirtual

Definition at line 165 of file PowhegHooksBB4Ldlsl.cxx.

165 {
166 // initialize settings of the parent class
168 // initialize settings of this class already initialized in constructor
169 return true;
170 }

◆ 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.

428 {
429 // compare sizes
430 if (e[iparticle].daughterList().size() != ids.size()) {
431 if (exitOnExtraLegs && e[iparticle].daughterList().size() > ids.size()) {
432 cout << "extra leg" << endl;
433 exit(-1);
434 }
435 return false;
436 }
437 // compare content
438 for (long unsigned int i = 0; i < e[iparticle].daughterList().size(); i++) {
439 int di = e[iparticle].daughterList()[i];
440 if (ids[i] != 0 && e[di].id() != ids[i])
441 return false;
442 }
443 // reset the positions and momenta vectors (because they may be reused)
444 positions.clear();
445 momenta.clear();
446 // construct the array of momenta
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());
451 }
452 return true;
453 }

◆ numberVetoMPIStep()

int Pythia8::PowhegBB4Ldlsl::numberVetoMPIStep ( )
inlineoverride

Definition at line 524 of file PowhegHooksBB4Ldlsl.cxx.

524{ return 1; }

◆ 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.

103 {
104 // VINCIA pT definition.
105 if (m_showerModel == 2)
106 return pTvincia(e, RadAfterBranch, EmtAfterBranch, RecAfterBranch);
107 // DIRE pT definition.
108 if (m_showerModel == 3)
109 return pTdire(e, RadAfterBranch, EmtAfterBranch, RecAfterBranch);
110 return pTpythia(e, RadAfterBranch, EmtAfterBranch, RecAfterBranch, FSR);
111 }
double pTdire(const Event &event, int iRad, int iEmt, int iRec)
double pTpythia(const Event &e, int RadAfterBranch, int EmtAfterBranch, int RecAfterBranch, bool FSR)
double pTvincia(const Event &event, int i1, int i3, int i2)

◆ 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.

325 {
326
327 // Loop over ISR and FSR if necessary
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++) {
332 // FSR flag
333 bool FSR = (xSR == 0) ? false : true;
334
335 // If all necessary arguments have been given, then directly calculate.
336 // POWHEG ISR and FSR, need i and j.
337 if ((m_pTdefMode == 0 || m_pTdefMode == 1) && i > 0 && j > 0) {
338 pTemt = pTpowheg(e, i, j, (m_pTdefMode == 0) ? false : FSR);
339
340 // Pythia ISR, need i, j and r.
341 } else if (!FSR && m_pTdefMode == 2 && i > 0 && j > 0 && r > 0) {
342 pTemt = pT(e, i, j, r, FSR);
343
344 // Pythia FSR, need k, j and r.
345 } else if (FSR && m_pTdefMode == 2 && j > 0 && k > 0 && r > 0) {
346 pTemt = pT(e, k, j, r, FSR);
347
348 // Otherwise need to try all possible combinations.
349 } else {
350 // Start by finding incoming legs to the hard system after
351 // branching (radiator after branching, i for ISR).
352 // Use partonSystemsPtr to find incoming just prior to the
353 // branching and track mothers.
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(); }
358
359 // If we do not have j, then try all final-state partons.
360 int jNow = (j > 0) ? j : 0;
361 int jMax = (j > 0) ? j + 1 : e.size();
362 for (; jNow < jMax; jNow++) {
363
364 // Final-state only.
365 if (!e[jNow].isFinal()) continue;
366 // Exclude photons (and W/Z!)
367 if (m_QEDvetoMode==0 && e[jNow].colType() == 0) continue;
368
369 // POWHEG.
370 if (m_pTdefMode == 0 || m_pTdefMode == 1) {
371
372 // ISR - only done once as just kinematical pT.
373 if (!FSR) {
374 pTnow = pTpowheg(e, iInA, jNow, (m_pTdefMode == 0) ? false : FSR);
375 if (pTnow > 0.) pTemt = (pTemt < 0) ? pTnow : min(pTemt, pTnow);
376
377 // FSR - try all outgoing partons from system before branching
378 // as i. Note that for the hard system, there is no
379 // "before branching" information.
380 } else {
381
382 int outSize = partonSystemsPtr->sizeOut(0);
383 for (int iMem = 0; iMem < outSize; iMem++) {
384 int iNow = partonSystemsPtr->getOut(0, iMem);
385
386 // i != jNow and no carbon copies
387 if (iNow == jNow ) continue;
388 // Exclude photons (and W/Z!)
389 if (m_QEDvetoMode==0 && e[iNow].colType() == 0) continue;
390 if (jNow == e[iNow].daughter1()
391 && jNow == e[iNow].daughter2()) continue;
392
393 pTnow = pTpowheg(e, iNow, jNow, (m_pTdefMode == 0)
394 ? false : FSR);
395 if (pTnow > 0.) pTemt = (pTemt < 0)
396 ? pTnow : min(pTemt, pTnow);
397 }
398 // for (iMem)
399 }
400 // if (!FSR)
401 // Pythia.
402 } else if (m_pTdefMode == 2) {
403
404 // ISR - other incoming as recoiler.
405 if (!FSR) {
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);
410
411 // FSR - try all final-state coloured partons as radiator
412 // after emission (k).
413 } else {
414 for (int kNow = 0; kNow < e.size(); kNow++) {
415 if (kNow == jNow || !e[kNow].isFinal()) continue;
416 if (m_QEDvetoMode==0 && e[kNow].colType() == 0) continue;
417
418 // For this kNow, need to have a recoiler.
419 // Try two incoming.
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);
426
427 // Try all other outgoing.
428 for (int rNow = 0; rNow < e.size(); rNow++) {
429 if (rNow == kNow || rNow == jNow ||
430 !e[rNow].isFinal()) continue;
431 if(m_QEDvetoMode==0 && e[rNow].colType() == 0) continue;
432 pTnow = pT(e, kNow, jNow, rNow, FSR);
433 if (pTnow > 0.) pTemt = (pTemt < 0)
434 ? pTnow : min(pTemt, pTnow);
435 }
436 // for (rNow)
437 }
438 // for (kNow)
439 }
440 // if (!FSR)
441 }
442 // if (m_pTdefMode)
443 }
444 // for (j)
445 }
446 }
447 // for (xSR)
448
449 return pTemt;
450 }
double pT(const Event &e, int RadAfterBranch, int EmtAfterBranch, int RecAfterBranch, bool FSR)
double pTpowheg(const Event &e, int i, int j, bool FSR)

◆ pTdire()

double Pythia8::PowhegHooksSetterMethod::pTdire ( const Event & event,
int iRad,
int iEmt,
int iRec )
inlineinherited

Definition at line 233 of file PowhegHooksSetterMethod.cxx.

233 {
234
235 // Shorthands.
236 const Particle& rad = event[iRad];
237 const Particle& emt = event[iEmt];
238 const Particle& rec = event[iRec];
239
240 // Calculate pT2 depending on dipole configuration.
241 double pT2 = -1.;
242 if (rad.isFinal() && rec.isFinal()) {
243 // FF -- copied from DireTimes::pT2_FF.
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()) {
249 // FI.
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 < 1e-5 && std::abs(sij+saj+sai) < 1e-5) pT2 = sij;
255 } else if (!rad.isFinal() && rec.isFinal()) {
256 // IF.
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()) {
262 // II.
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;
267 } else {
268 loggerPtr->ABORT_MSG("could not determine branching type");
269 exit(1);
270 }
271
272 // Sanity check.
273 if (pT2 < 0.) {
274 loggerPtr->WARNING_MSG("negative pT");
275 return -1.;
276 }
277
278 // Return pT.
279 return sqrt(pT2);
280 }
Particle_v1 Particle
Define the latest version of the particle class.

◆ pTpowheg()

double Pythia8::PowhegHooksSetterMethod::pTpowheg ( const Event & e,
int i,
int j,
bool FSR )
inlineinherited

Definition at line 285 of file PowhegHooksSetterMethod.cxx.

285 {
286
287 // pT value for FSR and ISR
288 double pTnow = 0.;
289 if (FSR) {
290 // POWHEG d_ij (in CM frame). Note that the incoming beams have not
291 // been updated in the parton systems pointer yet (i.e. prior to any
292 // potential recoil).
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()) );
303
304 } else {
305 // POWHEG pT_ISR is just kinematic pT
306 pTnow = e[j].pT();
307 }
308
309 // Check result.
310 if (pTnow < 0.) {
311 loggerPtr->WARNING_MSG("negative pT");
312 return -1.;
313 }
314
315 return pTnow;
316 }

◆ 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.

473 {
474
475 // Convenient shorthands for later
476 Vec4 radVec = e[RadAfterBranch].p();
477 Vec4 emtVec = e[EmtAfterBranch].p();
478 Vec4 recVec = e[RecAfterBranch].p();
479 int radID = e[RadAfterBranch].id();
480
481 // Calculate virtuality of splitting
482 Vec4 Q(radVec + emtVec);
483 double Qsq = Q.m2Calc();
484
485 // Mass term of radiator
486 double m2Rad = (std::abs(radID) >= 4 && std::abs(radID) < 7) ?
487 pow2(particleDataPtr->m0(radID)) : 0.;
488
489 // z values for FSR
490 double z, pTnow;
491 // Construct 2 -> 3 variables
492 Vec4 sum = radVec + recVec + emtVec;
493 double m2Dip = sum.m2Calc();
494
495 double x1 = 2. * (sum * radVec) / m2Dip;
496 double x3 = 2. * (sum * emtVec) / m2Dip;
497 z = x1 / (x1 + x3);
498 pTnow = z * (1. - z);
499
500
501 // Virtuality
502 pTnow *= (Qsq - m2Rad);
503
504 if (pTnow < 0.) {
505 cout << "Warning: pTpythia was negative" << endl;
506 return -1.;
507 }
508 else
509 return(sqrt(pTnow));
510 }
#define z

◆ 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.

118 {
119
120 // Convenient shorthands for later
121 Vec4 radVec = e[RadAfterBranch].p();
122 Vec4 emtVec = e[EmtAfterBranch].p();
123 Vec4 recVec = e[RecAfterBranch].p();
124 int radID = e[RadAfterBranch].id();
125
126 // Calculate virtuality of splitting
127 double sign = (FSR) ? 1. : -1.;
128 Vec4 Q(radVec + sign * emtVec);
129 double Qsq = sign * Q.m2Calc();
130
131 // Mass term of radiator
132 double m2Rad = (std::abs(radID) >= 4 && std::abs(radID) < 7) ?
133 pow2(particleDataPtr->m0(radID)) : 0.;
134
135 // z values for FSR and ISR
136 double z, pTnow;
137 if (FSR) {
138 // Construct 2 -> 3 variables
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;
143 z = x1 / (x1 + x3);
144 pTnow = z * (1. - z);
145
146 } else {
147 // Construct dipoles before/after splitting
148 Vec4 qBR(radVec - emtVec + recVec);
149 Vec4 qAR(radVec + recVec);
150 z = qBR.m2Calc() / qAR.m2Calc();
151 pTnow = (1. - z);
152 }
153
154 // Virtuality with correct sign
155 pTnow *= (Qsq - sign * m2Rad);
156
157 // Can get negative pT for massive splittings.
158 if (pTnow < 0.) {
159 loggerPtr->WARNING_MSG("negative pT");
160 return -1.;
161 }
162
163 // Return pT
164 return sqrt(pTnow);
165 }
int sign(int a)

◆ pTvincia()

double Pythia8::PowhegHooksSetterMethod::pTvincia ( const Event & event,
int i1,
int i3,
int i2 )
inlineinherited

Definition at line 171 of file PowhegHooksSetterMethod.cxx.

171 {
172
173 // Shorthands.
174 Vec4 p1 = event[i1].p();
175 Vec4 p3 = event[i3].p();
176 Vec4 p2 = event[i2].p();
177
178 // Fetch mothers of 1 and 2.
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");
183 exit(1);
184 }
185
186 // Invariants defined as in Eq. (5) in arXiv:2008.09468.
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);
193
194 // Normalisation as in Eq. (6) in arXiv:2008.09468.
195 double sMax = -1.;
196 if (event[i1].isFinal() && event[i2].isFinal()) {
197 // FF.
198 sMax = m2(p1+p2+p3) - mMoth1Sq - mMoth2Sq;
199 } else if ((event[i1].isResonance() && event[i2].isFinal())
200 || (!event[i1].isFinal() && event[i2].isFinal())) {
201 // RF or IF.
202 sMax = 2.*p1*p3 + 2.*p1*p2;
203 } else if ((event[i1].isFinal() && event[i2].isResonance())
204 || (event[i1].isFinal() && !event[i2].isFinal())) {
205 // FR or FI.
206 sMax = 2.*p2*p3 + 2.*p1*p2;
207 } else if (!event[i1].isFinal() || !event[i2].isFinal()) {
208 // II.
209 sMax = 2.*p1*p2;
210 } else {
211 loggerPtr->ABORT_MSG("could not determine branching type");
212 exit(1);
213 }
214
215 // Calculate pT2 as in Eq. (5) in arXiv:2008.09468.
216 double pT2now = qSq13*qSq23/sMax;
217
218 // Sanity check.
219 if (pT2now < 0.) {
220 loggerPtr->WARNING_MSG("negative pT");
221 return -1.;
222 }
223
224 // Return pT.
225 return sqrt(pT2now);
226 }
bool isResonance(const T &p)
Definition AtlasPID.h:400

◆ qSplittingScale()

double Pythia8::PowhegBB4Ldlsl::qSplittingScale ( Vec4 pt,
Vec4 p1,
Vec4 p2 )
inline

Definition at line 455 of file PowhegHooksBB4Ldlsl.cxx.

455 {
456 p1.bstback(pt);
457 p2.bstback(pt);
458 return sqrt( 2*p1*p2*p2.e()/p1.e() );
459 }

◆ scaleResonance()

virtual double Pythia8::PowhegBB4Ldlsl::scaleResonance ( int iRes,
const Event & e )
inlineoverridevirtual

Definition at line 329 of file PowhegHooksBB4Ldlsl.cxx.

329 {
330 if(radtype_.radtype == 2)
331 return sqrt(e[iRes].m2Calc());
332 else {
333 if (e[iRes].id() == 6)
334 return m_topresscale;
335 else if (e[iRes].id() == -6)
336 return m_atopresscale;
337 else if (e[iRes].id() == 24)
338 return m_wpresscale;
339 else if (e[iRes].id() == -24)
340 return m_wmresscale;
341 else
342 return 1e30;
343 }
344 }

◆ setpThard()

void Pythia8::PowhegHooksSetterMethod::setpThard ( double newPThard)
inlineinherited

Definition at line 741 of file PowhegHooksSetterMethod.cxx.

741{m_pThard = newPThard;}

Member Data Documentation

◆ m_accepted

bool Pythia8::PowhegHooksSetterMethod::m_accepted
privateinherited

Definition at line 749 of file PowhegHooksSetterMethod.cxx.

◆ m_atopresscale

double Pythia8::PowhegBB4Ldlsl::m_atopresscale
private

Definition at line 596 of file PowhegHooksBB4Ldlsl.cxx.

◆ m_debug

Pythia8_UserHooks::UserSetting<bool> Pythia8::PowhegBB4Ldlsl::m_debug
private

Definition at line 594 of file PowhegHooksBB4Ldlsl.cxx.

◆ m_emittedMode

int Pythia8::PowhegHooksSetterMethod::m_emittedMode
privateinherited

Definition at line 747 of file PowhegHooksSetterMethod.cxx.

◆ m_isEmt

bool Pythia8::PowhegHooksSetterMethod::m_isEmt
privateinherited

Definition at line 749 of file PowhegHooksSetterMethod.cxx.

◆ m_MPIvetoMode

int Pythia8::PowhegHooksSetterMethod::m_MPIvetoMode
privateinherited

Definition at line 746 of file PowhegHooksSetterMethod.cxx.

◆ m_nAcceptSeq

int Pythia8::PowhegHooksSetterMethod::m_nAcceptSeq
privateinherited

Definition at line 752 of file PowhegHooksSetterMethod.cxx.

◆ m_nFinal

int Pythia8::PowhegHooksSetterMethod::m_nFinal
privateinherited

Definition at line 746 of file PowhegHooksSetterMethod.cxx.

◆ m_nFSRveto

unsigned long int Pythia8::PowhegHooksSetterMethod::m_nFSRveto
privateinherited

Definition at line 754 of file PowhegHooksSetterMethod.cxx.

◆ m_nInResonanceFSRveto

unsigned long int Pythia8::PowhegBB4Ldlsl::m_nInResonanceFSRveto
private

Definition at line 597 of file PowhegHooksBB4Ldlsl.cxx.

◆ m_nISRveto

unsigned long int Pythia8::PowhegHooksSetterMethod::m_nISRveto
privateinherited

Definition at line 754 of file PowhegHooksSetterMethod.cxx.

◆ m_pTdefMode

int Pythia8::PowhegHooksSetterMethod::m_pTdefMode
privateinherited

Definition at line 747 of file PowhegHooksSetterMethod.cxx.

◆ m_pTemtMode

int Pythia8::PowhegHooksSetterMethod::m_pTemtMode
privateinherited

Definition at line 747 of file PowhegHooksSetterMethod.cxx.

◆ m_pThard

double Pythia8::PowhegHooksSetterMethod::m_pThard
privateinherited

Definition at line 748 of file PowhegHooksSetterMethod.cxx.

◆ m_pThardMode

Pythia8_UserHooks::UserSetting<int> Pythia8::PowhegBB4Ldlsl::m_pThardMode
private

Definition at line 601 of file PowhegHooksBB4Ldlsl.cxx.

◆ m_pTmin

Pythia8_UserHooks::UserSetting<double> Pythia8::PowhegBB4Ldlsl::m_pTmin
private

Definition at line 598 of file PowhegHooksBB4Ldlsl.cxx.

◆ m_pTMPI

double Pythia8::PowhegHooksSetterMethod::m_pTMPI
privateinherited

Definition at line 748 of file PowhegHooksSetterMethod.cxx.

◆ m_pTpythiaVeto

Pythia8_UserHooks::UserSetting<int> Pythia8::PowhegBB4Ldlsl::m_pTpythiaVeto
private

Definition at line 599 of file PowhegHooksBB4Ldlsl.cxx.

◆ m_QEDvetoMode

int Pythia8::PowhegHooksSetterMethod::m_QEDvetoMode
privateinherited

Definition at line 746 of file PowhegHooksSetterMethod.cxx.

◆ m_scaleResonanceVeto

Pythia8_UserHooks::UserSetting<double> Pythia8::PowhegBB4Ldlsl::m_scaleResonanceVeto
private

Definition at line 600 of file PowhegHooksBB4Ldlsl.cxx.

◆ m_showerModel

int Pythia8::PowhegHooksSetterMethod::m_showerModel
privateinherited

Definition at line 746 of file PowhegHooksSetterMethod.cxx.

◆ m_topresscale

double Pythia8::PowhegBB4Ldlsl::m_topresscale
private

Definition at line 596 of file PowhegHooksBB4Ldlsl.cxx.

◆ m_vetoCount

int Pythia8::PowhegHooksSetterMethod::m_vetoCount
privateinherited

Definition at line 746 of file PowhegHooksSetterMethod.cxx.

◆ m_vetoDipoleFrame

Pythia8_UserHooks::UserSetting<int> Pythia8::PowhegBB4Ldlsl::m_vetoDipoleFrame
private

Definition at line 599 of file PowhegHooksBB4Ldlsl.cxx.

◆ m_vetoFSREmission

Pythia8_UserHooks::UserSetting<bool> Pythia8::PowhegBB4Ldlsl::m_vetoFSREmission
private

Definition at line 595 of file PowhegHooksBB4Ldlsl.cxx.

◆ m_vetoMode

int Pythia8::PowhegHooksSetterMethod::m_vetoMode
privateinherited

Definition at line 746 of file PowhegHooksSetterMethod.cxx.

◆ m_vetoProduction

Pythia8_UserHooks::UserSetting<int> Pythia8::PowhegBB4Ldlsl::m_vetoProduction
private

Definition at line 599 of file PowhegHooksBB4Ldlsl.cxx.

◆ m_vetoQED

Pythia8_UserHooks::UserSetting<bool> Pythia8::PowhegBB4Ldlsl::m_vetoQED
private

Definition at line 595 of file PowhegHooksBB4Ldlsl.cxx.

◆ m_wmresscale

double Pythia8::PowhegBB4Ldlsl::m_wmresscale
private

Definition at line 596 of file PowhegHooksBB4Ldlsl.cxx.

◆ m_wpresscale

double Pythia8::PowhegBB4Ldlsl::m_wpresscale
private

Definition at line 596 of file PowhegHooksBB4Ldlsl.cxx.


The documentation for this class was generated from the following file: