ATLAS Offline Software
Public Member Functions | Private Member Functions | Private Attributes | List of all members
CheckForFinalPartons Class Reference

#include <CheckForFinalPartons.h>

Inheritance diagram for CheckForFinalPartons:
Collaboration diagram for CheckForFinalPartons:

Public Member Functions

StatusCode ModifyPythiaEvent (Pythia8::Pythia &pythia) const override
 

Private Member Functions

bool acceptEvent (Pythia8::Event &event) const
 

Private Attributes

Gaudi::Property< int > m_maxFailures {this, "MaxFailures", 5}
 
int m_nFailures {0}
 

Detailed Description

Definition at line 13 of file CheckForFinalPartons.h.

Member Function Documentation

◆ acceptEvent()

bool CheckForFinalPartons::acceptEvent ( Pythia8::Event &  event) const
private

Definition at line 28 of file CheckForFinalPartons.cxx.

28  {
29 
30  for(int ii=0; ii != event.size(); ++ii){
31 
32  if(!event[ii].isFinal()) continue;
33 
34  if(abs(event[ii].id()) < 7 || event[ii].id() == 21 ) return false;
35 
36  }
37 
38  return true;
39 }

◆ ModifyPythiaEvent()

StatusCode CheckForFinalPartons::ModifyPythiaEvent ( Pythia8::Pythia &  pythia) const
override

Definition at line 8 of file CheckForFinalPartons.cxx.

8  {
9 
10  bool status = true;
11  while( !(acceptEvent(pythia.event) && status) && m_nFailures <= m_maxFailures ){
12  status = pythia.next();
13  ++ m_nFailures;
14  ATH_MSG_WARNING("Event rejected due to unhadronised partons");
15  ATH_MSG_WARNING("Events rejected so far: "<<m_nFailures<< " (limit "<<m_maxFailures<<")");
16  }
17 
19  ATH_MSG_ERROR("Too many failures due to unhadronised partons in a single job.");
20  ATH_MSG_ERROR("Maximum allowed failures per job = " << m_maxFailures);
21  return StatusCode::FAILURE;
22  }
23 
24  return StatusCode::SUCCESS;
25 }

Member Data Documentation

◆ m_maxFailures

Gaudi::Property<int> CheckForFinalPartons::m_maxFailures {this, "MaxFailures", 5}
private

Definition at line 24 of file CheckForFinalPartons.h.

◆ m_nFailures

int CheckForFinalPartons::m_nFailures {0}
mutableprivate

Definition at line 25 of file CheckForFinalPartons.h.


The documentation for this class was generated from the following files:
CheckForFinalPartons::acceptEvent
bool acceptEvent(Pythia8::Event &event) const
Definition: CheckForFinalPartons.cxx:28
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
CheckForFinalPartons::m_maxFailures
Gaudi::Property< int > m_maxFailures
Definition: CheckForFinalPartons.h:24
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
merge.status
status
Definition: merge.py:16
CheckForFinalPartons::m_nFailures
int m_nFailures
Definition: CheckForFinalPartons.h:25