![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Implementation of the AthenaEventLoopMgr that allows selective and specific overrides in python. The idea is to maximize code-sharing with AthenaEventLoopMgr to reduce maintainance.
More...
#include <PyAthenaEventLoopMgr.h>
Implementation of the AthenaEventLoopMgr that allows selective and specific overrides in python. The idea is to maximize code-sharing with AthenaEventLoopMgr to reduce maintainance.
Definition at line 36 of file PyAthenaEventLoopMgr.h.
◆ EvtContext
◆ IConversionSvc_t
◆ IDataManagerSvc_t
◆ IEvtIdModifierSvc_t
◆ IIncidentSvc_t
◆ number_type
◆ StoreGateSvc_t
◆ tool_iterator
◆ tool_stats
◆ tool_stats_iterator
◆ tool_store
◆ tool_type
◆ PyAthenaEventLoopMgr() [1/3]
PyAthenaEventLoopMgr::PyAthenaEventLoopMgr |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
svcLoc |
|
) |
| |
Standard Constructor.
overrides the base-class default: for interactive use, it is mandatory to leave the store untouched at the end of the event (so people can interactively browse the store). Hence, we ask for store clean-up at the beginning of the event.
Definition at line 71 of file PyAthenaEventLoopMgr.cxx.
◆ ~PyAthenaEventLoopMgr()
PyAthenaEventLoopMgr::~PyAthenaEventLoopMgr |
( |
| ) |
|
|
inline |
◆ PyAthenaEventLoopMgr() [2/3]
PyAthenaEventLoopMgr::PyAthenaEventLoopMgr |
( |
| ) |
|
|
protected |
Unimplemented features to keep Reflex happy.
◆ PyAthenaEventLoopMgr() [3/3]
◆ curEvent()
int AthenaEventLoopMgr::curEvent |
( |
| ) |
const |
|
virtualinherited |
◆ DeclareInterfaceID()
IEventSeek::DeclareInterfaceID |
( |
IEventSeek |
, |
|
|
1 |
, |
|
|
0 |
|
|
) |
| |
|
inherited |
◆ eventStore()
◆ execAtPreFork()
StatusCode AthenaEventLoopMgr::execAtPreFork |
( |
const EventContext & |
ctx | ) |
const |
|
inherited |
Execute certain algorithms/sequences in PreFork.
Definition at line 1003 of file AthenaEventLoopMgr.cxx.
1004 const IAlgManager* algMgr = Gaudi::svcLocator()->as<IAlgManager>();
1005 IAlgorithm*
alg{
nullptr};
1009 if ( algMgr->getAlgorithm(
name,
alg) ) {
1011 sc &=
alg->sysExecute(ctx);
◆ executeAlgorithms()
StatusCode PyAthenaEventLoopMgr::executeAlgorithms |
( |
const EventContext & |
ctx | ) |
|
|
protectedvirtual |
Run the algorithms for the current event.
Reimplemented from AthenaEventLoopMgr.
Definition at line 192 of file PyAthenaEventLoopMgr.cxx.
199 PyObject* pycontext = PyCapsule_New (
const_cast<EventContext*
>(&ctx),
nullptr,
nullptr);
201 (
char*)
"O", pycontext);
202 Py_DECREF (pycontext);
207 return StatusCode::FAILURE;
210 #if PY_MAJOR_VERSION < 3
218 if ( PyLong_Check(
result ) )
229 <<
"result from python event loop manager has unexpected type."
232 return StatusCode::FAILURE;
◆ executeEvent()
StatusCode AthenaEventLoopMgr::executeEvent |
( |
EventContext && |
ctx | ) |
|
|
virtualinherited |
implementation of IEventProcessor::executeEvent(EventContext&& ctx)
Fire begin-Run incident if new run:
m_failureMode 1, RECOVERABLE: skip algorithms, but do not terminate job FAILURE: terminate job
m_failureMode 2: skip algorithms, but do not terminate job
Definition at line 555 of file AthenaEventLoopMgr.cxx.
559 m_incidentSvc->fireIncident(Incident(
"BeginEvent",IncidentType::BeginEvent));
561 m_incidentSvc->fireIncident(Incident(
"EndEvent",IncidentType::EndEvent));
583 bool toolsPassed=
true;
584 bool eventFailed =
false;
586 unsigned int toolCtr=0;
591 while(toolsPassed && theTool!=lastTool )
593 toolsPassed = (*theTool)->passEvent(ctx.eventID());
602 uint64_t evtNumber = ctx.eventID().event_number();
606 if (doEvtHeartbeat) {
608 ATH_MSG_INFO (
" ===>>> start processing event #" << evtNumber <<
", run #" <<
m_currentRun <<
" " <<
m_nev <<
" events processed so far <<<===" );
617 <<
" events processed so far <<<===" );
627 if ( m_scheduledStop ) {
628 ATH_MSG_ALWAYS (
"A stopRun was requested by an incidentListener. "
629 <<
"Do not process this event." );
630 return (StatusCode::SUCCESS);
638 if(!
sc.isSuccess()) {
640 m_aess->setEventStatus( EventStatus::AlgFail, ctx );
647 <<
"Skipping remaining algorithms." << std::endl
648 <<
"\tNo output will be written for this event, "
649 <<
"but job will continue to next event" );
655 ATH_MSG_INFO (
"Skipping remaining algorithms." << std::endl
656 <<
"\tNo output will be written for this event, "
657 <<
"but job will continue to next event" );
663 m_aess->setEventStatus( EventStatus::Success, ctx );
667 ito != m_outStreamList.end(); ++ito ) {
668 sc = (*ito)->sysExecute(ctx);
669 if( !
sc.isSuccess() ) {
683 if (doEvtHeartbeat) {
687 <<
" " <<
m_nev <<
" events processed so far <<<===");
691 <<
" events processed so far <<<===");
693 std::ofstream
outfile(
"eventLoopHeartBeat.txt");
698 <<
" " <<
m_nev <<
" events read so far <<<===" << std::endl;
707 return eventFailed?StatusCode::FAILURE:StatusCode::SUCCESS;
◆ executeRun()
StatusCode AthenaEventLoopMgr::executeRun |
( |
int |
maxevt | ) |
|
|
virtualinherited |
implementation of IEventProcessor::executeRun(int maxevt)
Definition at line 714 of file AthenaEventLoopMgr.cxx.
716 if (!(this->
nextEvent(maxevt)).isSuccess())
return StatusCode::FAILURE;
720 return StatusCode::SUCCESS;
◆ finalize()
StatusCode PyAthenaEventLoopMgr::finalize |
( |
| ) |
|
|
virtual |
◆ getManager()
PyObject * PyAthenaEventLoopMgr::getManager |
( |
| ) |
|
◆ handle()
void AthenaEventLoopMgr::handle |
( |
const Incident & |
inc | ) |
|
|
inherited |
IIncidentListenet interfaces.
Definition at line 922 of file AthenaEventLoopMgr.cxx.
924 if(inc.type()!=
"BeforeFork")
928 ATH_MSG_WARNING (
"Skipping BeforeFork handler. Begin run has already passed" );
940 ATH_MSG_WARNING (
"Skipping BeforeFork handler. No event selector is provided" );
945 IOpaqueAddress* addr =
nullptr;
947 if(!
sc.isSuccess()) {
952 if (
sc.isFailure()) {
956 if (
nullptr != addr) {
959 if(!
sc.isSuccess()) {
965 if(
eventStore()->loadEventProxies().isFailure()) {
977 throw std::runtime_error(
"Error installing event context object" );
986 ATH_MSG_ERROR (
"Unable to execute requested algorithms/sequences during PreFork!" );
994 if(!
sc.isSuccess()) {
◆ initialize()
StatusCode PyAthenaEventLoopMgr::initialize |
( |
| ) |
|
|
virtual |
implementation of IAppMgrUI::initalize
Reimplemented from AthenaEventLoopMgr.
Definition at line 147 of file PyAthenaEventLoopMgr.cxx.
151 PyObject* modpyelm = PyImport_ImportModule(
const_cast< char*
>(
"AthenaServices.PyAthenaEventLoopMgr" ) );
154 PyObject* pyelm = PyObject_GetAttrString( modpyelm,
const_cast< char*
>(
"PyAthenaEventLoopMgr" ) );
155 Py_DECREF( modpyelm );
174 return StatusCode::FAILURE;
185 return StatusCode::FAILURE;
◆ initializeAlgorithms()
StatusCode AthenaEventLoopMgr::initializeAlgorithms |
( |
| ) |
|
|
protectedinherited |
Initialize all algorithms and output streams.
Definition at line 494 of file AthenaEventLoopMgr.cxx.
499 for ( ita = m_topAlgList.begin(); ita != m_topAlgList.end(); ++ita )
512 for (ita = m_outStreamList.begin(); ita != m_outStreamList.end(); ++ita )
515 if(
sc.isFailure() ) {
523 return StatusCode::SUCCESS;
◆ initMessaging()
void AthMessaging::initMessaging |
( |
| ) |
const |
|
privateinherited |
Initialize our message level and MessageSvc.
This method should only be called once.
Definition at line 39 of file AthMessaging.cxx.
◆ installEventContext()
StatusCode AthenaEventLoopMgr::installEventContext |
( |
EventContext & |
ctx | ) |
|
|
privateinherited |
Definition at line 1050 of file AthenaEventLoopMgr.cxx.
1052 std::unique_ptr<EventInfo> eventInfo;
1054 unsigned int conditionsRun = EventIDBase::UNDEFNUM;
1055 bool consume_modifier_stream =
false;
1062 if (pAttrList !=
nullptr && pAttrList->size() > 6) {
1065 unsigned int runNumber = (*pAttrList)[
"RunNumber"].data<
unsigned int>();
1066 unsigned long long eventNumber = (*pAttrList)[
"EventNumber"].data<
unsigned long long>();
1067 unsigned int eventTime = (*pAttrList)[
"EventTime"].data<
unsigned int>();
1068 unsigned int eventTimeNS = (*pAttrList)[
"EventTimeNanoSec"].data<
unsigned int>();
1069 unsigned int lumiBlock = (*pAttrList)[
"LumiBlockN"].data<
unsigned int>();
1070 unsigned int bunchId = (*pAttrList)[
"BunchId"].data<
unsigned int>();
1073 consume_modifier_stream =
true;
1077 unsigned long long eventNumberSecondary{};
1078 if (!(pAttrList->exists(
"hasSecondaryInput") &&
1079 (*pAttrList)[
"hasSecondaryInput"].data<
bool>())) {
1080 ATH_MSG_FATAL(
"Secondary EventNumber requested, but secondary input does not exist!");
1081 return StatusCode::FAILURE;
1083 if (pAttrList->exists(
"EventNumber_secondary")) {
1084 eventNumberSecondary = (*pAttrList)[
"EventNumber_secondary"].data<
unsigned long long>();
1089 if (pEventSecondary) {
1090 eventNumberSecondary = pEventSecondary->
event_ID()->event_number();
1092 ATH_MSG_FATAL(
"Secondary EventNumber requested, but it does not exist!");
1093 return StatusCode::FAILURE;
1096 if (eventNumberSecondary != 0) {
1099 if (doEvtHeartbeat) {
1101 << eventNumberSecondary <<
" instead of #"
1108 eventInfo = std::make_unique<EventInfo>(
1111 eventID = *(eventInfo->
event_ID());
1113 if (!
m_evtIdModSvc.isSet() && pAttrList->exists(
"ConditionsRun")) {
1114 conditionsRun = (*pAttrList)[
"ConditionsRun"].data<
unsigned int>();
1134 ATH_MSG_FATAL(
"Valid input attribute list required but not present!");
1135 return StatusCode::FAILURE;
1149 if (xAODEvent ==
nullptr) {
1150 ATH_MSG_ERROR(
"Failed to get EventID from input. Tried old-style and xAOD::EventInfo");
1151 return StatusCode::FAILURE;
1155 eventInfo = std::make_unique<EventInfo>(
1158 eventID = *(eventInfo->
event_ID());
1160 if (!
sc.isSuccess()) {
1162 return StatusCode::FAILURE;
1171 eventID = *(eventInfo->
event_ID());
1173 if (!
sc.isSuccess()) {
1175 return (StatusCode::FAILURE);
1179 ctx.setEventID( eventID );
1185 Gaudi::Hive::setCurrentContext( ctx );
1188 if (
eventStore()->record(std::make_unique<EventContext> ( ctx ),
1189 "EventContext").isFailure())
1192 return (StatusCode::FAILURE);
1195 return StatusCode::SUCCESS;
◆ interfaceID()
static const InterfaceID& ICollectionSize::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
◆ modifyEventContext()
void AthenaEventLoopMgr::modifyEventContext |
( |
EventContext & |
ctx, |
|
|
const EventID & |
eID, |
|
|
bool |
consume_modifier_stream |
|
) |
| |
|
virtualinherited |
Definition at line 1200 of file AthenaEventLoopMgr.cxx.
1206 unsigned int oldrunnr=eID.run_number();
1207 unsigned int oldLB=eID.lumi_block();
1208 unsigned int oldTS=eID.time_stamp();
1209 unsigned int oldTSno=eID.time_stamp_ns_offset();
1210 ATH_MSG_DEBUG (
"modifyEventContext: use evtIdModSvc runnr=" << oldrunnr <<
" -> " << new_eID.run_number() );
1211 ATH_MSG_DEBUG (
"modifyEventContext: use evtIdModSvc LB=" << oldLB <<
" -> " << new_eID.lumi_block() );
1212 ATH_MSG_DEBUG (
"modifyEventContext: use evtIdModSvc TimeStamp=" << oldTS <<
" -> " << new_eID.time_stamp() );
1213 ATH_MSG_DEBUG (
"modifyEventContext: use evtIdModSvc TimeStamp ns Offset=" << oldTSno <<
" -> " << new_eID.time_stamp_ns_offset() );
1215 ctx.setEventID( new_eID );
1220 ctx.setEventID( eID );
◆ msg() [1/4]
MsgStream & AthMessaging::msg |
( |
| ) |
const |
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 164 of file AthMessaging.h.
◆ msg() [2/4]
MsgStream & AthMessaging::msg |
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 92 of file AthMessaging.h.
◆ msg() [3/4]
MsgStream & AthMessaging::msg |
( |
const MSG::Level |
lvl | ) |
const |
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 179 of file AthMessaging.h.
180 {
return msg() << lvl; }
◆ msg() [4/4]
MsgStream & AthMessaging::msg |
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 99 of file AthMessaging.h.
180 {
return msg() << lvl; }
◆ msgLvl() [1/2]
bool AthMessaging::msgLvl |
( |
const MSG::Level |
lvl | ) |
const |
|
inlineinherited |
Test the output level.
- Parameters
-
lvl | The message level to test against |
- Returns
- boolean Indicating if messages at given level will be printed
- Return values
-
true | Messages at level "lvl" will be printed |
Definition at line 151 of file AthMessaging.h.
◆ msgLvl() [2/2]
bool AthMessaging::msgLvl |
|
inlineinherited |
Test the output level.
- Parameters
-
lvl | The message level to test against |
- Returns
- boolean Indicating if messages at given level will be printed
- Return values
-
true | Messages at level "lvl" will be printed |
Definition at line 86 of file AthMessaging.h.
◆ name()
virtual const std::string& AthenaEventLoopMgr::name |
( |
| ) |
const |
|
inlinevirtualinherited |
◆ nextEvent()
StatusCode AthenaEventLoopMgr::nextEvent |
( |
int |
maxevt | ) |
|
|
virtualinherited |
implementation of IAppMgrUI::nextEvent. maxevt==0 returns immediately
Reimplemented in MultipleEventLoopMgr.
Definition at line 726 of file AthenaEventLoopMgr.cxx.
729 if (0 == maxevt)
return StatusCode::SUCCESS;
731 static int total_nevt = 0;
755 while(maxevt == -1 ||
m_nevt < maxevt) {
761 if ( m_scheduledStop ) {
762 m_scheduledStop =
false;
763 ATH_MSG_ALWAYS (
"A stopRun was requested. Terminating event loop." );
776 if( !
sc.isSuccess() ) {
791 IOpaqueAddress* addr =
nullptr;
795 if ( !
sc.isSuccess() )
799 sc = StatusCode::SUCCESS;
810 if (
nullptr != addr) {
813 if( !
sc.isSuccess() ) {
818 if ((
sc=
eventStore()->loadEventProxies()).isFailure()) {
831 if( !
sc.isSuccess() )
833 ATH_MSG_ERROR (
"Terminating event processing loop due to errors" );
842 if( !
sc.isSuccess() ) {
◆ operator=()
◆ pointer()
outside access
Definition at line 55 of file PyAthenaEventLoopMgr.cxx.
56 IEventProcessor* ep =
nullptr;
58 static const bool CREATEIF(
false );
59 if ( ( Gaudi::svcLocator()->service(
"PyAthenaEventLoopMgr", ep, CREATEIF ) ).isSuccess() ) {
◆ queryInterface()
StatusCode AthenaEventLoopMgr::queryInterface |
( |
const InterfaceID & |
riid, |
|
|
void ** |
ppvInterface |
|
) |
| |
|
virtualinherited |
interface dispatcher
Definition at line 1026 of file AthenaEventLoopMgr.cxx.
1029 if ( IEventSeek::interfaceID().versionMatch(riid) ) {
1030 *ppvInterface =
dynamic_cast<IEventSeek*
>(
this);
1036 return MinimalEventLoopMgr::queryInterface(riid, ppvInterface);
1039 return StatusCode::SUCCESS;
◆ resetTimeout()
void Athena::TimeoutMaster::resetTimeout |
( |
Timeout & |
instance | ) |
|
|
inlineprotectedinherited |
Reset timeout.
Definition at line 83 of file Timeout.h.
◆ seek()
StatusCode AthenaEventLoopMgr::seek |
( |
int |
evt | ) |
|
|
virtualinherited |
Seek to a given event.
Implements IEventSeek.
Definition at line 862 of file AthenaEventLoopMgr.cxx.
866 ATH_MSG_ERROR (
"Seek failed; unsupported by event selector" );
867 return StatusCode::FAILURE;
872 ATH_MSG_FATAL (
"Can not create the event selector Context." );
873 return StatusCode::FAILURE;
879 if (
sc.isSuccess()) {
◆ setClearStorePolicy()
void AthenaEventLoopMgr::setClearStorePolicy |
( |
Gaudi::Details::PropertyBase & |
clearStorePolicy | ) |
|
|
protectedinherited |
property update handler:set the clear-store policy value and check its value.
Definition at line 329 of file AthenaEventLoopMgr.cxx.
332 if ( policyName !=
"BeginEvent" &&
333 policyName !=
"EndEvent" ) {
336 <<
"] for the 'ClearStore-policy !"
338 <<
"Valid values are: BeginEvent, EndEvent"
340 throw GaudiException(
"Can not setup 'ClearStore'-policy",
342 StatusCode::FAILURE);
◆ setLevel()
void AthMessaging::setLevel |
( |
MSG::Level |
lvl | ) |
|
|
inherited |
◆ setManager()
actual manager object
Definition at line 86 of file PyAthenaEventLoopMgr.cxx.
89 if ( ! PyObject_HasAttrString(
mgr, execalgs ) )
91 PyErr_SetString( PyExc_TypeError,
"given object is not a manager" );
102 PyObject* pyelm = PyImport_AddModule(
const_cast< char*
>(
"AthenaServices.PyAthenaEventLoopMgr" ) );
105 PyModule_AddObject( pyelm,
const_cast< char*
>(
"EventLoopMgr" ),
mgr );
109 PyObject* pyself = PyCapsule_New( (
void*)
static_cast< IEventSeek*
>(
this ),
nullptr,
nullptr );
110 #if PY_MAJOR_VERSION < 3
123 if (
old !=
nullptr )
126 Py_INCREF( Py_None );
◆ setTimeout()
void Athena::TimeoutMaster::setTimeout |
( |
Timeout & |
instance | ) |
|
|
inlineprotectedinherited |
◆ setupPreSelectTools()
void AthenaEventLoopMgr::setupPreSelectTools |
( |
Gaudi::Details::PropertyBase & |
| ) |
|
|
protectedinherited |
property update handler:sets up the Pre-selection tools
Definition at line 349 of file AthenaEventLoopMgr.cxx.
364 unsigned int toolCtr = 0;
365 for ( ; firstTool != lastTool; ++firstTool )
◆ size()
int AthenaEventLoopMgr::size |
( |
| ) |
|
|
virtualinherited |
◆ writeHistograms()
StatusCode AthenaEventLoopMgr::writeHistograms |
( |
bool |
force = false | ) |
|
|
protectedvirtualinherited |
Dump out histograms as needed.
Definition at line 438 of file AthenaEventLoopMgr.cxx.
443 std::vector<DataObject*>
objects;
445 DataObject*
obj =
reg->object();
446 if ( !
obj ||
obj->clID() == CLID_StatisticsFile )
return false;
451 if ( !
sc.isSuccess() ) {
452 ATH_MSG_ERROR (
"Error while traversing Histogram data store" );
460 (writeInterval != 0 &&
m_nevt%writeInterval == 0) ) {
464 IOpaqueAddress* pAddr =
nullptr;
466 if ( iret.isFailure() )
return iret;
467 i->registry()->setAddress( pAddr );
471 IRegistry*
reg =
i->registry();
473 return iret.isFailure() ? iret : isc;
475 if ( !
sc.isSuccess() ) {
480 if (
force || (writeInterval != 0 &&
m_nevt%writeInterval == 0) ) {
◆ ATLAS_THREAD_SAFE
std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
|
mutableprivateinherited |
◆ m_aess
SmartIF<IAlgExecStateSvc> AthenaEventLoopMgr::m_aess |
|
protectedinherited |
◆ m_chronoStatSvc
ServiceHandle<IChronoStatSvc> AthenaEventLoopMgr::m_chronoStatSvc |
|
privateinherited |
◆ m_clearStorePolicy
StringProperty AthenaEventLoopMgr::m_clearStorePolicy |
|
protectedinherited |
◆ m_conditionsCleaner
◆ m_currentRun
◆ m_doChrono
bool AthenaEventLoopMgr::m_doChrono = false |
|
privateinherited |
◆ m_eventPrintoutInterval
UnsignedIntegerProperty AthenaEventLoopMgr::m_eventPrintoutInterval |
|
protectedinherited |
◆ m_eventStore
◆ m_evtIdModSvc
◆ m_evtsel
StringProperty AthenaEventLoopMgr::m_evtsel |
|
protectedinherited |
◆ m_evtSelCtxt
IEvtSelector::Context* AthenaEventLoopMgr::m_evtSelCtxt |
|
protectedinherited |
◆ m_evtSelector
IEvtSelector* AthenaEventLoopMgr::m_evtSelector |
|
protectedinherited |
◆ m_execAtPreFork
StringArrayProperty AthenaEventLoopMgr::m_execAtPreFork |
|
protectedinherited |
◆ m_failureMode
IntegerProperty AthenaEventLoopMgr::m_failureMode |
|
protectedinherited |
◆ m_firstRun
bool AthenaEventLoopMgr::m_firstRun |
|
protectedinherited |
◆ m_histoDataMgrSvc
◆ m_histoPersSvc
◆ m_histPersName
StringProperty AthenaEventLoopMgr::m_histPersName |
|
protectedinherited |
◆ m_imsg
std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr } |
|
mutableprivateinherited |
◆ m_incidentSvc
◆ m_intervalInSeconds
unsigned int AthenaEventLoopMgr::m_intervalInSeconds |
|
privateinherited |
◆ m_lastNev
unsigned int AthenaEventLoopMgr::m_lastNev {} |
|
privateinherited |
◆ m_lastTime
time_t AthenaEventLoopMgr::m_lastTime {} |
|
privateinherited |
◆ m_liteLoop
bool AthenaEventLoopMgr::m_liteLoop |
|
privateinherited |
◆ m_lvl
std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL } |
|
mutableprivateinherited |
◆ m_manager
PyObject* PyAthenaEventLoopMgr::m_manager |
|
private |
◆ m_msg_tls
boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls |
|
mutableprivateinherited |
MsgStream instance (a std::cout like with print-out levels)
Definition at line 132 of file AthMessaging.h.
◆ m_nev
unsigned int AthenaEventLoopMgr::m_nev |
|
privateinherited |
◆ m_nevt
int AthenaEventLoopMgr::m_nevt {} |
|
privateinherited |
◆ m_nm
std::string AthMessaging::m_nm |
|
privateinherited |
◆ m_proc
unsigned int AthenaEventLoopMgr::m_proc |
|
privateinherited |
◆ m_requireInputAttributeList
bool AthenaEventLoopMgr::m_requireInputAttributeList {} |
|
protectedinherited |
◆ m_toolAccept
◆ m_toolInvoke
◆ m_toolReject
◆ m_tools
◆ m_useSecondaryEventNumber
bool AthenaEventLoopMgr::m_useSecondaryEventNumber {} |
|
protectedinherited |
◆ m_useTools
bool AthenaEventLoopMgr::m_useTools |
|
privateinherited |
◆ m_writeHists
bool AthenaEventLoopMgr::m_writeHists {} |
|
privateinherited |
◆ m_writeInterval
IntegerProperty AthenaEventLoopMgr::m_writeInterval |
|
privateinherited |
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
StatusCode record(T *p2BRegistered, const TKEY &key)
Record an object with a key.
std::atomic< MSG::Level > m_lvl
Current logging level.
IEvtIdModifierSvc_t m_evtIdModSvc
tool_stats m_toolAccept
tool returns StatusCode::SUCCESS counter
tool_store m_tools
internal tool store
IEvtSelector::Context * m_evtSelCtxt
Gaudi EventSelector Context (may be used as a cursor by the evt selector)
This class represents the "type of event" where the type is given by one or more "characteristics".
StoreGateSvc * eventStore() const
virtual const std::string & name() const
virtual StatusCode initialize()
implementation of IAppMgrUI::initalize
ServiceHandle< Athena::IConditionsCleanerSvc > m_conditionsCleaner
bool accumulate(AccumulateMap &map, std::vector< module_t > const &modules, FPGATrackSimMatrixAccumulator const &acc)
Accumulates an accumulator (e.g.
ClearStorePolicy::Type clearStorePolicy(const std::string &policyName, MsgStream &msg)
returns the enum-version of the policy (by name)
IEvtSelector * m_evtSelector
Reference to the Event Selector.
IntegerProperty m_failureMode
IIncidentSvc_t m_incidentSvc
Reference to the incident service.
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
reg
globals -----------------------------------------------------------------—
StoreGateSvc_t m_eventStore
Reference to StoreGateSvc;.
IMessageSvc * getMessageSvc(bool quiet=false)
uint32_t runNumber() const
The current event's run number.
IntegerProperty m_writeInterval
number_type m_currentRun
current run number
unsigned int m_nev
events processed
virtual void modifyEventContext(EventContext &ctx, const EventID &eID, bool consume_modifier_stream)
StatusCode installEventContext(EventContext &ctx)
const ExtendedEventContext & getExtendedEventContext(const EventContext &ctx)
Retrieve an extended context from a context object.
virtual StatusCode seek(IEvtSelector::Context &c, int evtnum) const =0
Seek to a given event number.
virtual StatusCode nextEvent(int maxevt)
implementation of IAppMgrUI::nextEvent. maxevt==0 returns immediately
StatusCode initializeAlgorithms()
Initialize all algorithms and output streams.
static const InterfaceID & interfaceID()
StatusCode execAtPreFork(const EventContext &ctx) const
Execute certain algorithms/sequences in PreFork.
msgSvc
Provide convenience handles for various services.
bool m_requireInputAttributeList
require input attribute list
IConversionSvc_t m_histoPersSvc
::StatusCode StatusCode
StatusCode definition for legacy code.
SmartIF< IAlgExecStateSvc > m_aess
Reference to the Algorithm Execution State Svc.
EventID * event_ID()
the unique identification of the event.
virtual int size(IEvtSelector::Context &c) const =0
Return the size of the collection, or -1 if we can't get the size.
StringArrayProperty m_execAtPreFork
#define ATH_MSG_ALWAYS(x)
Abstract interface for finding the size of an event collection.
virtual StatusCode finalize()
implementation of IAppMgrUI::finalize
An AttributeList represents a logical row of attributes in a metadata table. The name and type of eac...
#define CHECK(...)
Evaluate an expression and check for errors.
Implementation of the AthenaEventLoopMgr that allows selective and specific overrides in python....
UnsignedIntegerProperty m_eventPrintoutInterval
virtual StatusCode clearStore(bool forceRemove=false) override final
clear DataStore contents: called by the event loop mgrs
static Timeout & instance()
Get reference to Timeout singleton.
virtual StatusCode executeEvent(EventContext &&ctx)
implementation of IEventProcessor::executeEvent(EventContext&& ctx)
MsgStream & msg() const
The standard message stream.
tool_stats m_toolInvoke
tool called counter
void setConditionsRun(EventIDBase::number_type conditionsRun)
tool_stats m_toolReject
tool returns StatusCode::FAILURE counter
StringProperty m_clearStorePolicy
This class provides general information about an event. Event information is provided by the accessor...
ServiceHandle< IChronoStatSvc > m_chronoStatSvc
StatusCode recordAddress(const std::string &skey, IOpaqueAddress *pAddress, bool clearAddressFlag=true)
Create a proxy object using an IOpaqueAddress and a transient key.
const T * tryConstRetrieve() const
Class describing the basic event information.
bool m_useSecondaryEventNumber
read event number from secondary input
def time(flags, cells_name, *args, **kw)
unsigned int m_intervalInSeconds
#define ATH_MSG_WARNING(x)
std::string m_nm
Message source name.
EventID eventIDFromxAOD(const xAOD::EventInfo *xaod)
Create EventID object from xAOD::EventInfo.
This class provides a unique identification for each event, in terms of run/event number and/or a tim...
virtual StatusCode writeHistograms(bool force=false)
Dump out histograms as needed.
tool_store::const_iterator tool_iterator
Abstract interface for seeking within an event stream.
AthenaEventLoopMgr()
no implementation
PyObject * setManager(PyObject *)
actual manager object
void resetTimeout(Timeout &instance)
Reset timeout.
void initMessaging() const
Initialize our message level and MessageSvc.
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
EventType eventTypeFromxAOD(const xAOD::EventInfo *xaod)
Create EventType object from xAOD::EventInfo.
virtual StatusCode executeAlgorithms(const EventContext &)
Run the algorithms for the current event.
void setExtendedEventContext(EventContext &ctx, ExtendedEventContext &&ectx)
Move an extended context into a context object.
IDataManagerSvc_t m_histoDataMgrSvc
Reference to the Histogram Data Service.
Abstract interface for seeking for an event selector.
thread_local event_number_t eventIndex