ATLAS Offline Software
CheckForFinalPartons.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "CheckForFinalPartons.h"
6 
7 
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 }
26 
27 
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 }
40 
CheckForFinalPartons::ModifyPythiaEvent
StatusCode ModifyPythiaEvent(Pythia8::Pythia &pythia) const override
Definition: CheckForFinalPartons.cxx:8
JiveXML::Event
struct Event_t Event
Definition: ONCRPCServer.h:65
bTosllAli.Pythia
Pythia
Definition: bTosllAli.py:46
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)
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CheckForFinalPartons::m_maxFailures
Gaudi::Property< int > m_maxFailures
Definition: CheckForFinalPartons.h:24
CheckForFinalPartons.h
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