ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
Pythia8::EnhanceMPI Class Reference
Inheritance diagram for Pythia8::EnhanceMPI:
Collaboration diagram for Pythia8::EnhanceMPI:

Public Member Functions

 EnhanceMPI ()
 
 ~EnhanceMPI ()
 
bool doVetoMPIStep (int nMPI, const Event &event)
 
bool doVetoPartonLevel (const Event &)
 
bool canVetoMPIStep ()
 Switch on calling of doVetoMPIStep. More...
 
int numberVetoMPIStep ()
 Call doVetoMIStep three times First is the hard process second is first MPI emission or the second part of a double diffractive event or the second hard process if there is on. More...
 
bool canVetoISREmission ()
 Switch on veto of ISR. More...
 
bool canVetoFSREmission ()
 Switch off veto of FSR. More...
 
bool canVetoPartonLevel ()
 Check the event after the generation of the parton level but before hadronisation. More...
 

Private Attributes

Pythia8_UserHooks::UserSetting< double > m_pTCut
 
bool m_passedEvent
 
int m_nMPIVeto
 

Detailed Description

Definition at line 19 of file EnhanceMPI.cxx.

Constructor & Destructor Documentation

◆ EnhanceMPI()

Pythia8::EnhanceMPI::EnhanceMPI ( )
inline

Definition at line 23 of file EnhanceMPI.cxx.

23  : m_pTCut("EnhanceMPI:PTCut", 10.), m_nMPIVeto(3){
24 
25  std::cout<<"**********************************************************"<<std::endl;
26  std::cout<<"* *"<<std::endl;
27  std::cout<<"* Enhancing MPI emissions with UserHook! *"<<std::endl;
28  std::cout<<"* *"<<std::endl;
29  std::cout<<"**********************************************************"<<std::endl;
30 
31  m_passedEvent = 0;
32  }

◆ ~EnhanceMPI()

Pythia8::EnhanceMPI::~EnhanceMPI ( )
inline

Definition at line 34 of file EnhanceMPI.cxx.

34 {}

Member Function Documentation

◆ canVetoFSREmission()

bool Pythia8::EnhanceMPI::canVetoFSREmission ( )
inline

Switch off veto of FSR.

Definition at line 88 of file EnhanceMPI.cxx.

88 {return false;}

◆ canVetoISREmission()

bool Pythia8::EnhanceMPI::canVetoISREmission ( )
inline

Switch on veto of ISR.

Definition at line 86 of file EnhanceMPI.cxx.

86 {return false;}

◆ canVetoMPIStep()

bool Pythia8::EnhanceMPI::canVetoMPIStep ( )
inline

Switch on calling of doVetoMPIStep.

Definition at line 75 of file EnhanceMPI.cxx.

75 {return true;}

◆ canVetoPartonLevel()

bool Pythia8::EnhanceMPI::canVetoPartonLevel ( )
inline

Check the event after the generation of the parton level but before hadronisation.

Definition at line 90 of file EnhanceMPI.cxx.

90 {return true;}

◆ doVetoMPIStep()

bool Pythia8::EnhanceMPI::doVetoMPIStep ( int  nMPI,
const Event event 
)
inline

Definition at line 36 of file EnhanceMPI.cxx.

36  {
37 
38  // MPI 1 is the hard process. We do not veto that!
39  if(nMPI < 2){
40  m_passedEvent = false;
41  return false;
42  }
43 
44  if(m_passedEvent) return false;
45 
46  // start at the end of the event record and work back
47  // This is prior to showering, so there should be at most 2 new MPI emissions
48  // event[0] is documentation, so stop before that.
49  size_t nEmissions=0;
50  for(int ii=event.size()-1; ii > 0 && nEmissions != 2; --ii){
51  if(event[ii].status() != 33) continue;
52  if(event[ii].pT() > m_pTCut(settingsPtr)){
53  m_passedEvent = true;
54  return false;
55  }
56 
57  ++nEmissions;
58  }
59 
60  if(nMPI == m_nMPIVeto && !m_passedEvent){
61  // std::cout<<"Vetoing event on too-little MPI"<<std::endl;
62  return true;
63  }
64 
65  return false;
66  }

◆ doVetoPartonLevel()

bool Pythia8::EnhanceMPI::doVetoPartonLevel ( const Event )
inline

Definition at line 68 of file EnhanceMPI.cxx.

68  {
69  if(m_passedEvent) return false;
70 
71  return true;
72  }

◆ numberVetoMPIStep()

int Pythia8::EnhanceMPI::numberVetoMPIStep ( )
inline

Call doVetoMIStep three times First is the hard process second is first MPI emission or the second part of a double diffractive event or the second hard process if there is on.

Therefore check up to 3

Definition at line 84 of file EnhanceMPI.cxx.

84 {return m_nMPIVeto;}

Member Data Documentation

◆ m_nMPIVeto

int Pythia8::EnhanceMPI::m_nMPIVeto
private

Definition at line 98 of file EnhanceMPI.cxx.

◆ m_passedEvent

bool Pythia8::EnhanceMPI::m_passedEvent
private

Definition at line 96 of file EnhanceMPI.cxx.

◆ m_pTCut

Pythia8_UserHooks::UserSetting<double> Pythia8::EnhanceMPI::m_pTCut
private

Definition at line 94 of file EnhanceMPI.cxx.


The documentation for this class was generated from the following file:
CalculateHighPtTerm.pT
pT
Definition: ICHEP2016/CalculateHighPtTerm.py:57
Pythia8::EnhanceMPI::m_nMPIVeto
int m_nMPIVeto
Definition: EnhanceMPI.cxx:98
Pythia8::EnhanceMPI::m_pTCut
Pythia8_UserHooks::UserSetting< double > m_pTCut
Definition: EnhanceMPI.cxx:94
Pythia8::EnhanceMPI::m_passedEvent
bool m_passedEvent
Definition: EnhanceMPI.cxx:96
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
merge.status
status
Definition: merge.py:17