|
ATLAS Offline Software
|
A specialized AthenaEventLoopMgr that allows multiple passes over an event collection.
More...
#include <MultipleEventLoopMgr.h>
A specialized AthenaEventLoopMgr that allows multiple passes over an event collection.
The number of passes is controlled by a tool called at the end of each pass over the events that implements the INextPassFilter interface (specified using the NextPassFilter property). At the end of each pass the event selector is rewound and the services listed in the ToBeReinitialized property are reinitialized. Typically MultipleEventLoopMgr will be used for calibration jobs, with the INextPassFilter object looking at the status of the constants in the DetectorStore
Definition at line 43 of file MultipleEventLoopMgr.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
◆ MultipleEventLoopMgr() [1/3]
MultipleEventLoopMgr::MultipleEventLoopMgr |
( |
const std::string & |
nam, |
|
|
ISvcLocator * |
svcLoc |
|
) |
| |
◆ ~MultipleEventLoopMgr()
MultipleEventLoopMgr::~MultipleEventLoopMgr |
( |
| ) |
|
|
virtual |
◆ MultipleEventLoopMgr() [2/3]
MultipleEventLoopMgr::MultipleEventLoopMgr |
( |
| ) |
|
|
private |
implementation of IEventProcessor::executeEvent(void* par)
no implementation
◆ MultipleEventLoopMgr() [3/3]
◆ algMgr()
IAlgManager * MultipleEventLoopMgr::algMgr |
( |
| ) |
|
|
private |
Definition at line 39 of file MultipleEventLoopMgr.cxx.
41 SmartIF<IAlgManager> algMan(serviceLocator());
42 if( algMan.isValid() )
m_pAlgMgr=&*algMan;
43 else throw GaudiException(
"IAlgManager not found",
name(), StatusCode::FAILURE);
◆ curEvent()
int AthenaEventLoopMgr::curEvent |
( |
| ) |
const |
|
virtualinherited |
◆ doNextPass()
bool MultipleEventLoopMgr::doNextPass |
( |
| ) |
|
|
private |
called at end of pass. Calls nextPassFilter
if true start another pass
Definition at line 75 of file MultipleEventLoopMgr.cxx.
79 return (
nullptr != pFilter && pFilter->doNextPass() );
◆ eventStore()
◆ execAtPreFork()
StatusCode AthenaEventLoopMgr::execAtPreFork |
( |
const EventContext & |
ctx | ) |
const |
|
inherited |
Execute certain algorithms/sequences in PreFork.
Definition at line 993 of file AthenaEventLoopMgr.cxx.
994 IAlgManager* algMgr = Gaudi::svcLocator()->as<IAlgManager>();
998 SmartIF<IAlgorithm>&
alg = algMgr->algorithm(
name,
false);
1001 sc &=
alg->sysExecute(ctx);
◆ executeAlgorithms()
StatusCode AthenaEventLoopMgr::executeAlgorithms |
( |
const EventContext & |
ctx | ) |
|
|
protectedvirtualinherited |
Run the algorithms for the current event.
Reimplemented in PyAthenaEventLoopMgr.
Definition at line 519 of file AthenaEventLoopMgr.cxx.
523 ita != m_topAlgList.end();
530 m_aess->algExecState(*ita,ctx).setState(AlgExecState::State::Done,
sc);
531 if ( !
sc.isSuccess() ) {
533 << (*ita)->name() <<
" failed with StatusCode::" <<
sc );
538 return StatusCode::SUCCESS;
◆ 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 545 of file AthenaEventLoopMgr.cxx.
549 m_incidentSvc->fireIncident(Incident(
"BeginEvent",IncidentType::BeginEvent));
551 m_incidentSvc->fireIncident(Incident(
"EndEvent",IncidentType::EndEvent));
573 bool toolsPassed=
true;
574 bool eventFailed =
false;
576 unsigned int toolCtr=0;
581 while(toolsPassed && theTool!=lastTool )
583 toolsPassed = (*theTool)->passEvent(ctx.eventID());
592 uint64_t evtNumber = ctx.eventID().event_number();
596 if (doEvtHeartbeat) {
598 ATH_MSG_INFO (
" ===>>> start processing event #" << evtNumber <<
", run #" <<
m_currentRun <<
" " <<
m_nev <<
" events processed so far <<<===" );
607 <<
" events processed so far <<<===" );
617 if ( m_scheduledStop ) {
618 ATH_MSG_ALWAYS (
"A stopRun was requested by an incidentListener. "
619 <<
"Do not process this event." );
620 return (StatusCode::SUCCESS);
628 if(!
sc.isSuccess()) {
630 m_aess->setEventStatus( EventStatus::AlgFail, ctx );
637 <<
"Skipping remaining algorithms." << std::endl
638 <<
"\tNo output will be written for this event, "
639 <<
"but job will continue to next event" );
645 ATH_MSG_INFO (
"Skipping remaining algorithms." << std::endl
646 <<
"\tNo output will be written for this event, "
647 <<
"but job will continue to next event" );
653 m_aess->setEventStatus( EventStatus::Success, ctx );
657 ito != m_outStreamList.end(); ++ito ) {
658 sc = (*ito)->sysExecute(ctx);
659 if( !
sc.isSuccess() ) {
673 if (doEvtHeartbeat) {
677 <<
" " <<
m_nev <<
" events processed so far <<<===");
681 <<
" events processed so far <<<===");
683 std::ofstream
outfile(
"eventLoopHeartBeat.txt");
688 <<
" " <<
m_nev <<
" events read so far <<<===" << std::endl;
697 return eventFailed?StatusCode::FAILURE:StatusCode::SUCCESS;
◆ executeRun()
StatusCode AthenaEventLoopMgr::executeRun |
( |
int |
maxevt | ) |
|
|
virtualinherited |
implementation of IEventProcessor::executeRun(int maxevt)
Definition at line 704 of file AthenaEventLoopMgr.cxx.
706 if (!(this->
nextEvent(maxevt)).isSuccess())
return StatusCode::FAILURE;
710 return StatusCode::SUCCESS;
◆ finalize()
StatusCode AthenaEventLoopMgr::finalize |
( |
| ) |
|
|
virtualinherited |
implementation of IAppMgrUI::finalize
Reimplemented in PyAthenaEventLoopMgr.
Definition at line 372 of file AthenaEventLoopMgr.cxx.
376 if (
sc.isFailure()) {
381 if (sc2.isFailure()) {
397 unsigned int toolCtr = 0;
398 ATH_MSG_INFO (
"Summary of AthenaEvtLoopPreSelectTool invocation: (invoked/success/failure)" );
399 ATH_MSG_INFO (
"-----------------------------------------------------" );
401 for ( ; firstTool != lastTool; ++firstTool ) {
402 ATH_MSG_INFO ( std::setw(2) << std::setiosflags(std::ios_base::right)
403 << toolCtr+1 <<
".) " << std::resetiosflags(std::ios_base::right)
404 << std::setw(48) << std::setfill(
'.')
405 << std::setiosflags(std::ios_base::left)
406 << (*firstTool)->name() << std::resetiosflags(std::ios_base::left)
409 << std::setw(6) << std::setiosflags(std::ios_base::right)
420 return (
sc.isFailure() || sc2.isFailure() ) ? StatusCode::FAILURE :
◆ handle()
void AthenaEventLoopMgr::handle |
( |
const Incident & |
inc | ) |
|
|
inherited |
IIncidentListenet interfaces.
Definition at line 912 of file AthenaEventLoopMgr.cxx.
914 if(inc.type()!=
"BeforeFork")
918 ATH_MSG_WARNING (
"Skipping BeforeFork handler. Begin run has already passed" );
930 ATH_MSG_WARNING (
"Skipping BeforeFork handler. No event selector is provided" );
935 IOpaqueAddress* addr =
nullptr;
937 if(!
sc.isSuccess()) {
942 if (
sc.isFailure()) {
946 if (
nullptr != addr) {
949 if(!
sc.isSuccess()) {
955 if(
eventStore()->loadEventProxies().isFailure()) {
967 throw std::runtime_error(
"Error installing event context object" );
976 ATH_MSG_ERROR (
"Unable to execute requested algorithms/sequences during PreFork!" );
984 if(!
sc.isSuccess()) {
◆ initialize()
StatusCode AthenaEventLoopMgr::initialize |
( |
| ) |
|
|
virtualinherited |
implementation of IAppMgrUI::initalize
Reimplemented in PyAthenaEventLoopMgr.
Definition at line 130 of file AthenaEventLoopMgr.cxx.
134 m_autoRetrieveTools =
false;
135 m_checkToolDeps =
false;
138 if ( !
sc.isSuccess() )
140 ATH_MSG_ERROR (
"Failed to initialize base class MinimalEventLoopMgr" );
149 if( !
sc.isSuccess() )
151 ATH_MSG_FATAL (
"Error retrieving pointer to StoreGateSvc" );
160 if( !
sc.isSuccess() )
169 SmartIF<IProperty> prpMgr(serviceLocator());
170 if ( !prpMgr.isValid() )
172 ATH_MSG_FATAL (
"IProperty interface not found in ApplicationMgr." );
173 return StatusCode::FAILURE;
181 if( !
sc.isSuccess() )
188 if ( histPersName.length() == 0 )
190 CHECK(setProperty(prpMgr->getProperty(
"HistogramPersistency")));
193 if ( histPersName !=
"NONE" ) {
198 if( !sc.isSuccess() ) {
199 ATH_MSG_WARNING (
"Histograms cannot not be saved - though required." );
203 if (histPersName ==
"ROOT") {
204 histSvc = serviceLocator()->service(
"RootHistSvc");
205 }
else if ( histPersName ==
"HBOOK" ) {
206 histSvc = serviceLocator()->service(
"HbookHistSvc");
210 ATH_MSG_ERROR (
"could not locate actual Histogram persistency service" );
212 const Gaudi::Details::PropertyBase &prop =
histSvc->getProperty(
"OutputFile");
215 const StringProperty &sprop =
dynamic_cast<const StringProperty&
>( prop );
220 ATH_MSG_VERBOSE (
"could not dcast OutputFile property to a StringProperty."
221 <<
" Need to fix Gaudi." );
223 val = prop.toString();
228 val !=
"UndefinedROOTOutputFileName" &&
229 val !=
"UndefinedHbookOutputFileName" ) {
243 ATH_MSG_DEBUG (
"EventID modifier Service not set. No run number, ... overrides will be applied." );
246 ATH_MSG_INFO (
"Could not find EventID modifier Service. No run number, ... overrides will be applied." );
255 sc = setProperty(prpMgr->getProperty(
"EvtSel"));
260 SmartIF<IEvtSelector> theEvtSel{serviceLocator()->service(
selName )};
269 return StatusCode::FAILURE;
271 if (msgLevel(MSG::INFO)) {
272 SmartIF<INamedInterface> named(theEvtSel);
274 ATH_MSG_INFO (
"Setup EventSelector service " << named->name( )
278 }
else if (
sc.isFailure()) {
281 return StatusCode::FAILURE;
291 return StatusCode::FAILURE;
295 m_aess = serviceLocator()->service(
"AlgExecStateSvc");
298 return StatusCode::FAILURE;
◆ initializeAlgorithms()
StatusCode AthenaEventLoopMgr::initializeAlgorithms |
( |
| ) |
|
|
protectedinherited |
Initialize all algorithms and output streams.
Definition at line 484 of file AthenaEventLoopMgr.cxx.
489 for ( ita = m_topAlgList.begin(); ita != m_topAlgList.end(); ++ita )
502 for (ita = m_outStreamList.begin(); ita != m_outStreamList.end(); ++ita )
505 if(
sc.isFailure() ) {
513 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 1018 of file AthenaEventLoopMgr.cxx.
1020 std::unique_ptr<EventInfo> eventInfo;
1022 unsigned int conditionsRun = EventIDBase::UNDEFNUM;
1023 bool consume_modifier_stream =
false;
1030 if (pAttrList !=
nullptr && pAttrList->size() > 6) {
1033 unsigned int runNumber = (*pAttrList)[
"RunNumber"].data<
unsigned int>();
1034 unsigned long long eventNumber = (*pAttrList)[
"EventNumber"].data<
unsigned long long>();
1035 unsigned int eventTime = (*pAttrList)[
"EventTime"].data<
unsigned int>();
1036 unsigned int eventTimeNS = (*pAttrList)[
"EventTimeNanoSec"].data<
unsigned int>();
1037 unsigned int lumiBlock = (*pAttrList)[
"LumiBlockN"].data<
unsigned int>();
1038 unsigned int bunchId = (*pAttrList)[
"BunchId"].data<
unsigned int>();
1041 consume_modifier_stream =
true;
1045 unsigned long long eventNumberSecondary{};
1046 if (!(pAttrList->exists(
"hasSecondaryInput") &&
1047 (*pAttrList)[
"hasSecondaryInput"].data<
bool>())) {
1048 ATH_MSG_FATAL(
"Secondary EventNumber requested, but secondary input does not exist!");
1049 return StatusCode::FAILURE;
1051 if (pAttrList->exists(
"EventNumber_secondary")) {
1052 eventNumberSecondary = (*pAttrList)[
"EventNumber_secondary"].data<
unsigned long long>();
1057 if (pEventSecondary) {
1058 eventNumberSecondary = pEventSecondary->
event_ID()->event_number();
1060 ATH_MSG_FATAL(
"Secondary EventNumber requested, but it does not exist!");
1061 return StatusCode::FAILURE;
1064 if (eventNumberSecondary != 0) {
1067 if (doEvtHeartbeat) {
1069 << eventNumberSecondary <<
" instead of #"
1076 eventInfo = std::make_unique<EventInfo>(
1080 eventID = *(eventInfo->
event_ID());
1082 if (!
m_evtIdModSvc.isSet() && pAttrList->exists(
"ConditionsRun")) {
1083 conditionsRun = (*pAttrList)[
"ConditionsRun"].data<
unsigned int>();
1103 ATH_MSG_FATAL(
"Valid input attribute list required but not present!");
1104 return StatusCode::FAILURE;
1118 if (xAODEvent ==
nullptr) {
1119 ATH_MSG_ERROR(
"Failed to get EventID from input. Tried old-style and xAOD::EventInfo");
1120 return StatusCode::FAILURE;
1124 eventInfo = std::make_unique<EventInfo>(
1127 eventID = *(eventInfo->
event_ID());
1129 if (!
sc.isSuccess()) {
1131 return StatusCode::FAILURE;
1138 eventInfo = std::make_unique<EventInfo>(
1139 std::make_unique<EventID>(1,
m_nevt, 0), std::make_unique<EventType>());
1141 eventID = *(eventInfo->
event_ID());
1143 if (!
sc.isSuccess()) {
1145 return (StatusCode::FAILURE);
1149 ctx.setEventID( eventID );
1155 Gaudi::Hive::setCurrentContext( ctx );
1158 if (
eventStore()->record(std::make_unique<EventContext> ( ctx ),
1159 "EventContext").isFailure())
1162 return (StatusCode::FAILURE);
1165 return StatusCode::SUCCESS;
◆ modifyEventContext()
void AthenaEventLoopMgr::modifyEventContext |
( |
EventContext & |
ctx, |
|
|
const EventID & |
eID, |
|
|
bool |
consume_modifier_stream |
|
) |
| |
|
virtualinherited |
Definition at line 1170 of file AthenaEventLoopMgr.cxx.
1176 unsigned int oldrunnr=eID.run_number();
1177 unsigned int oldLB=eID.lumi_block();
1178 unsigned int oldTS=eID.time_stamp();
1179 unsigned int oldTSno=eID.time_stamp_ns_offset();
1180 ATH_MSG_DEBUG (
"modifyEventContext: use evtIdModSvc runnr=" << oldrunnr <<
" -> " << new_eID.run_number() );
1181 ATH_MSG_DEBUG (
"modifyEventContext: use evtIdModSvc LB=" << oldLB <<
" -> " << new_eID.lumi_block() );
1182 ATH_MSG_DEBUG (
"modifyEventContext: use evtIdModSvc TimeStamp=" << oldTS <<
" -> " << new_eID.time_stamp() );
1183 ATH_MSG_DEBUG (
"modifyEventContext: use evtIdModSvc TimeStamp ns Offset=" << oldTSno <<
" -> " << new_eID.time_stamp_ns_offset() );
1185 ctx.setEventID( new_eID );
1190 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 MultipleEventLoopMgr::nextEvent |
( |
int |
maxevt | ) |
|
|
virtual |
Dump out histograms as needed.
Run the algorithms for the current event implementation of IAppMgrUI::initalize implementation of IAppMgrUI::finalize implementation of IAppMgrUI::nextEvent
Reimplemented from AthenaEventLoopMgr.
Definition at line 93 of file MultipleEventLoopMgr.cxx.
103 }
while (
sc.isSuccess() &&
106 (
sc =
seek(0)).isSuccess() );
◆ nextPassFilter()
Locate filter.
Parses m_nextPassFilterName allowing for interactive changes.
Definition at line 50 of file MultipleEventLoopMgr.cxx.
53 if (!(filterName.empty())) {
54 Gaudi::Utils::TypeNameString theFilter(filterName);
55 IAlgTool* pHoldTool(
nullptr);
56 if ( (
m_pToolSvc->retrieveTool(theFilter.type(), theFilter.name(),
57 pHoldTool)).isSuccess() ) {
61 SmartIF<IAlgorithm>& pHoldAlg =
algMgr()->algorithm(theFilter,
false);
62 if (
nullptr == pFilter && pHoldAlg) {
66 if (
nullptr == pFilter) {
67 Gaudi::Utils::TypeNameString theFilter(filterName);
69 log << MSG::WARNING <<
"Could not locate filter "
70 << theFilter.type() <<
'/' << theFilter.name() <<
endmsg;
◆ reInitList()
StatusCode MultipleEventLoopMgr::reInitList |
( |
| ) |
|
|
private |
called at each end of pass.
Parses m_toBeReInitializedNames allowing for interactive changes
Definition at line 82 of file MultipleEventLoopMgr.cxx.
85 SmartIF<IService>&
svc = serviceLocator()->service(
name,
false);
87 if (!
sc.isSuccess())
return sc;
◆ 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.
Definition at line 852 of file AthenaEventLoopMgr.cxx.
856 ATH_MSG_ERROR (
"Seek failed; unsupported by event selector" );
857 return StatusCode::FAILURE;
862 ATH_MSG_FATAL (
"Can not create the event selector Context." );
863 return StatusCode::FAILURE;
869 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 319 of file AthenaEventLoopMgr.cxx.
322 if ( policyName !=
"BeginEvent" &&
323 policyName !=
"EndEvent" ) {
326 <<
"] for the 'ClearStore-policy !"
328 <<
"Valid values are: BeginEvent, EndEvent"
330 throw GaudiException(
"Can not setup 'ClearStore'-policy",
332 StatusCode::FAILURE);
◆ setLevel()
void AthMessaging::setLevel |
( |
MSG::Level |
lvl | ) |
|
|
inherited |
◆ 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 339 of file AthenaEventLoopMgr.cxx.
354 unsigned int toolCtr = 0;
355 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 428 of file AthenaEventLoopMgr.cxx.
433 std::vector<DataObject*>
objects;
435 DataObject*
obj = reg->object();
436 if ( !
obj ||
obj->clID() == CLID_StatisticsFile )
return false;
441 if ( !
sc.isSuccess() ) {
442 ATH_MSG_ERROR (
"Error while traversing Histogram data store" );
450 (writeInterval != 0 &&
m_nevt%writeInterval == 0) ) {
454 IOpaqueAddress* pAddr =
nullptr;
456 if ( iret.isFailure() )
return iret;
457 i->registry()->setAddress( pAddr );
461 IRegistry* reg =
i->registry();
463 return iret.isFailure() ? iret : isc;
465 if ( !
sc.isSuccess() ) {
470 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_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_nextPassFilterName
StringProperty MultipleEventLoopMgr::m_nextPassFilterName |
|
private |
◆ m_nm
std::string AthMessaging::m_nm |
|
privateinherited |
◆ m_pAlgMgr
IAlgManager* MultipleEventLoopMgr::m_pAlgMgr |
|
private |
◆ m_passDone
unsigned int MultipleEventLoopMgr::m_passDone |
|
private |
◆ m_proc
unsigned int AthenaEventLoopMgr::m_proc |
|
privateinherited |
◆ m_pToolSvc
◆ m_requireInputAttributeList
bool AthenaEventLoopMgr::m_requireInputAttributeList {} |
|
protectedinherited |
◆ m_toBeReInitializedNames
StringArrayProperty MultipleEventLoopMgr::m_toBeReInitializedNames |
|
private |
◆ 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
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
tool_stats m_toolAccept
tool returns StatusCode::SUCCESS counter
interface to a tool (typically) that decides whether the event loop mgr (typically) need to do anothe...
tool_store m_tools
internal tool store
IEvtSelector::Context * m_evtSelCtxt
Gaudi EventSelector Context (may be used as a cursor by the evt selector)
ServiceHandle< IToolSvc > m_pToolSvc
handle to the ToolSvc
StoreGateSvc * eventStore() const
virtual const std::string & name() const
ServiceHandle< Athena::IConditionsCleanerSvc > m_conditionsCleaner
bool accumulate(AccumulateMap &map, std::vector< module_t > const &modules, FPGATrackSimMatrixAccumulator const &acc)
Accumulates an accumulator (e.g.
StringProperty m_histPersName
ClearStorePolicy::Type clearStorePolicy(const std::string &policyName, MsgStream &msg)
returns the enum-version of the policy (by name)
StringProperty m_nextPassFilterName
the name of the INextPassFilter object queried at end of pass
IEvtSelector * m_evtSelector
Reference to the Event Selector.
IntegerProperty m_failureMode
StatusCode reInitList()
called at each end of pass.
#define ATH_MSG_VERBOSE(x)
IIncidentSvc_t m_incidentSvc
Reference to the incident service.
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
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.
INextPassFilter * nextPassFilter()
Locate filter.
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.
ServiceHandle< IConversionSvc > IConversionSvc_t
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.
virtual StatusCode seek(int evt)
Seek to a given event.
StringArrayProperty m_execAtPreFork
#define ATH_MSG_ALWAYS(x)
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.
UnsignedIntegerProperty m_eventPrintoutInterval
virtual StatusCode clearStore(bool forceRemove=false) override final
clear DataStore contents: called by the event loop mgrs
AthROOTErrorHandlerSvc * svc
static Timeout & instance()
Get reference to Timeout singleton.
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...
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
void setClearStorePolicy(Gaudi::Details::PropertyBase &clearStorePolicy)
property update handler:set the clear-store policy value and check its value.
StringArrayProperty m_toBeReInitializedNames
a list of services to be reinit at the end of the pass
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
AthenaEventLoopMgr()
no implementation
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)
unsigned int m_passDone
number of passes already completed
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.
bool doNextPass()
called at end of pass. Calls nextPassFilter
thread_local event_number_t eventIndex