ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
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  }

◆ ~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  }

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

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

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

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

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

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

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

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

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

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

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

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

◆ 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:
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
beamspotman.r
def r
Definition: beamspotman.py:674
temp
Definition: JetEventDict.h:21
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:215
Pythia8::PowhegBB4Ldlsl::m_scaleResonanceVeto
Pythia8_UserHooks::UserSetting< double > m_scaleResonanceVeto
Definition: PowhegHooksBB4Ldlsl.cxx:600
Pythia8::PowhegHooksSetterMethod::m_QEDvetoMode
int m_QEDvetoMode
Definition: PowhegHooksSetterMethod.cxx:746
Pythia8::PowhegBB4Ldlsl::m_wpresscale
double m_wpresscale
Definition: PowhegHooksBB4Ldlsl.cxx:596
Pythia8::PowhegHooksSetterMethod::m_MPIvetoMode
int m_MPIvetoMode
Definition: PowhegHooksSetterMethod.cxx:746
PowhegControl_ttHplus_NLO.ss
ss
Definition: PowhegControl_ttHplus_NLO.py:83
FSR
Definition: FsrPhotonTool.h:25
keylayer_zslicemap.pb
pb
Definition: keylayer_zslicemap.py:188
Pythia8::PowhegBB4Ldlsl::m_vetoQED
Pythia8_UserHooks::UserSetting< bool > m_vetoQED
Definition: PowhegHooksBB4Ldlsl.cxx:595
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
TRTCalib_cfilter.p1
p1
Definition: TRTCalib_cfilter.py:130
Pythia8::PowhegHooksSetterMethod::m_nFSRveto
unsigned long int m_nFSRveto
Definition: PowhegHooksSetterMethod.cxx:754
Pythia8::PowhegHooksSetterMethod::m_pThard
double m_pThard
Definition: PowhegHooksSetterMethod.cxx:748
test_pyathena.pt
pt
Definition: test_pyathena.py:11
isResonance
bool isResonance(const T &p)
Definition: AtlasPID.h:397
Pythia8::PowhegBB4Ldlsl::pTpythia
double pTpythia(const Event &e, int RadAfterBranch, int EmtAfterBranch, int RecAfterBranch)
Definition: PowhegHooksBB4Ldlsl.cxx:471
LArG4GenerateShowerLib.condition
condition
Definition: LArG4GenerateShowerLib.py:19
Pythia8::PowhegBB4Ldlsl::m_debug
Pythia8_UserHooks::UserSetting< bool > m_debug
Definition: PowhegHooksBB4Ldlsl.cxx:594
Pythia8::PowhegHooksSetterMethod::m_nAcceptSeq
int m_nAcceptSeq
Definition: PowhegHooksSetterMethod.cxx:752
Pythia8::PowhegBB4Ldlsl::doVetoFSR
bool doVetoFSR(bool condition)
Definition: PowhegHooksBB4Ldlsl.cxx:311
yodamerge_tmp.scale
scale
Definition: yodamerge_tmp.py:138
LArG4AODNtuplePlotter.pe
pe
Definition: LArG4AODNtuplePlotter.py:116
xAOD::Particle
Particle_v1 Particle
Define the latest version of the particle class.
Definition: Event/xAOD/xAODParticleEvent/xAODParticleEvent/Particle.h:17
XMLtoHeader.count
count
Definition: XMLtoHeader.py:84
Pythia8::PowhegHooksSetterMethod::initAfterBeams
bool initAfterBeams()
Definition: PowhegHooksSetterMethod.cxx:80
radtype_
struct @62 radtype_
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
TRTCalib_cfilter.p2
p2
Definition: TRTCalib_cfilter.py:131
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
Pythia8::PowhegBB4Ldlsl::gSplittingScale
double gSplittingScale(Vec4 pt, Vec4 p1, Vec4 p2)
Definition: PowhegHooksBB4Ldlsl.cxx:461
convertTimingResiduals.sum
sum
Definition: convertTimingResiduals.py:55
Pythia8::PowhegHooksSetterMethod::pTdire
double pTdire(const Event &event, int iRad, int iEmt, int iRec)
Definition: PowhegHooksSetterMethod.cxx:233
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
Pythia8::PowhegHooksSetterMethod::m_pTdefMode
int m_pTdefMode
Definition: PowhegHooksSetterMethod.cxx:747
lumiFormat.i
int i
Definition: lumiFormat.py:85
Pythia8::PowhegBB4Ldlsl::m_pTpythiaVeto
Pythia8_UserHooks::UserSetting< int > m_pTpythiaVeto
Definition: PowhegHooksBB4Ldlsl.cxx:599
z
#define z
Pythia8::PowhegBB4Ldlsl::qSplittingScale
double qSplittingScale(Vec4 pt, Vec4 p1, Vec4 p2)
Definition: PowhegHooksBB4Ldlsl.cxx:455
Pythia8::PowhegHooksSetterMethod::doVetoMPIStep
bool doVetoMPIStep(int nMPI, const Event &e)
Definition: PowhegHooksSetterMethod.cxx:461
Pythia8::PowhegHooksSetterMethod::m_pTemtMode
int m_pTemtMode
Definition: PowhegHooksSetterMethod.cxx:747
TileDCSDataPlotter.pr
pr
Definition: TileDCSDataPlotter.py:924
sign
int sign(int a)
Definition: TRT_StrawNeighbourSvc.h:107
Pythia8::PowhegHooksSetterMethod::m_nISRveto
unsigned long int m_nISRveto
Definition: PowhegHooksSetterMethod.cxx:754
Pythia8::PowhegBB4Ldlsl::m_pThardMode
Pythia8_UserHooks::UserSetting< int > m_pThardMode
Definition: PowhegHooksBB4Ldlsl.cxx:601
Pythia8::PowhegHooksSetterMethod::m_vetoMode
int m_vetoMode
Definition: PowhegHooksSetterMethod.cxx:746
python.SystemOfUnits.rad
float rad
Definition: SystemOfUnits.py:126
Pythia8::PowhegBB4Ldlsl::m_wmresscale
double m_wmresscale
Definition: PowhegHooksBB4Ldlsl.cxx:596
Pythia8::PowhegHooksSetterMethod::m_showerModel
int m_showerModel
Definition: PowhegHooksSetterMethod.cxx:746
calibdata.exit
exit
Definition: calibdata.py:235
Pythia8::PowhegHooksSetterMethod::pTcalc
double pTcalc(const Event &e, int i, int j, int k, int r, int xSRin)
Definition: PowhegHooksSetterMethod.cxx:325
Pythia8::PowhegBB4Ldlsl::m_vetoProduction
Pythia8_UserHooks::UserSetting< int > m_vetoProduction
Definition: PowhegHooksBB4Ldlsl.cxx:599
ParticleGun_EoverP_Config.pg
pg
Definition: ParticleGun_EoverP_Config.py:61
python.subdetectors.mmg.ids
ids
Definition: mmg.py:8
Pythia8::PowhegHooksSetterMethod::m_pTMPI
double m_pTMPI
Definition: PowhegHooksSetterMethod.cxx:748
Pythia8::PowhegHooksSetterMethod::pTvincia
double pTvincia(const Event &event, int i1, int i3, int i2)
Definition: PowhegHooksSetterMethod.cxx:171
Pythia8::PowhegHooksSetterMethod::m_accepted
bool m_accepted
Definition: PowhegHooksSetterMethod.cxx:749
Pythia8::PowhegHooksSetterMethod::setpThard
void setpThard(double newPThard)
Definition: PowhegHooksSetterMethod.cxx:741
Pythia8::PowhegBB4Ldlsl::m_nInResonanceFSRveto
unsigned long int m_nInResonanceFSRveto
Definition: PowhegHooksBB4Ldlsl.cxx:597
Pythia8::PowhegBB4Ldlsl::m_topresscale
double m_topresscale
Definition: PowhegHooksBB4Ldlsl.cxx:596
Pythia8::PowhegBB4Ldlsl::findresscale
double findresscale(const int iRes, const Event &event)
Definition: PowhegHooksBB4Ldlsl.cxx:349
Pythia8::PowhegHooksSetterMethod::m_isEmt
bool m_isEmt
Definition: PowhegHooksSetterMethod.cxx:749
Pythia8::PowhegBB4Ldlsl::m_atopresscale
double m_atopresscale
Definition: PowhegHooksBB4Ldlsl.cxx:596
Pythia8::PowhegHooksSetterMethod::pTpowheg
double pTpowheg(const Event &e, int i, int j, bool FSR)
Definition: PowhegHooksSetterMethod.cxx:285
jobOptions.prec
prec
Definition: jobOptions.Superchic_UPC_yyMuMu.py:20
merge.status
status
Definition: merge.py:16
Pythia8::PowhegHooksSetterMethod::m_vetoCount
int m_vetoCount
Definition: PowhegHooksSetterMethod.cxx:746
Pythia8::PowhegHooksSetterMethod::pT
double pT(const Event &e, int RadAfterBranch, int EmtAfterBranch, int RecAfterBranch, bool FSR)
Definition: PowhegHooksSetterMethod.cxx:102
TRTCalib_cfilter.p3
p3
Definition: TRTCalib_cfilter.py:132
pow
constexpr int pow(int base, int exp) noexcept
Definition: ap_fixedTest.cxx:15
Pythia8::PowhegHooksSetterMethod::doVetoFSREmission
bool doVetoFSREmission(int, const Event &e, int iSys, bool)
Definition: PowhegHooksSetterMethod.cxx:633
python.SystemOfUnits.m2
float m2
Definition: SystemOfUnits.py:107
Pythia8::PowhegBB4Ldlsl::m_pTmin
Pythia8_UserHooks::UserSetting< double > m_pTmin
Definition: PowhegHooksBB4Ldlsl.cxx:598
Pythia8::PowhegBB4Ldlsl::m_vetoFSREmission
Pythia8_UserHooks::UserSetting< bool > m_vetoFSREmission
Definition: PowhegHooksBB4Ldlsl.cxx:595
BchCleanup.idb
idb
Definition: BchCleanup.py:152
Pythia8::PowhegBB4Ldlsl::m_vetoDipoleFrame
Pythia8_UserHooks::UserSetting< int > m_vetoDipoleFrame
Definition: PowhegHooksBB4Ldlsl.cxx:599
fitman.k
k
Definition: fitman.py:528
Pythia8::PowhegHooksSetterMethod::pTpythia
double pTpythia(const Event &e, int RadAfterBranch, int EmtAfterBranch, int RecAfterBranch, bool FSR)
Definition: PowhegHooksSetterMethod.cxx:117
GlobalSim::BDT::pow2
constexpr int pow2(int x)
Definition: Trigger/TrigT1/Global/GlobalSimulation/src/GlobalAlgs/Egamma1BDT/BDT.h:24