 |
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 40 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 36 of file MultipleEventLoopMgr.cxx.
38 SmartIF<IAlgManager> algMan(serviceLocator());
39 if( algMan.isValid() )
m_pAlgMgr=&*algMan;
40 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 72 of file MultipleEventLoopMgr.cxx.
76 return (
nullptr != pFilter && pFilter->doNextPass() );
◆ eventStore()
◆ execAtPreFork()
StatusCode AthenaEventLoopMgr::execAtPreFork |
( |
const EventContext & |
ctx | ) |
const |
|
inherited |
Execute certain algorithms/sequences in PreFork.
Definition at line 990 of file AthenaEventLoopMgr.cxx.
991 IAlgManager* algMgr = Gaudi::svcLocator()->as<IAlgManager>();
995 SmartIF<IAlgorithm>&
alg = algMgr->algorithm(
name,
false);
998 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 516 of file AthenaEventLoopMgr.cxx.
520 ita != m_topAlgList.end();
527 m_aess->algExecState(*ita,ctx).setState(AlgExecState::State::Done,
sc);
528 if ( !
sc.isSuccess() ) {
530 << (*ita)->name() <<
" failed with StatusCode::" <<
sc );
535 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 542 of file AthenaEventLoopMgr.cxx.
546 m_incidentSvc->fireIncident(Incident(
"BeginEvent",IncidentType::BeginEvent));
548 m_incidentSvc->fireIncident(Incident(
"EndEvent",IncidentType::EndEvent));
570 bool toolsPassed=
true;
571 bool eventFailed =
false;
573 unsigned int toolCtr=0;
578 while(toolsPassed && theTool!=lastTool )
580 toolsPassed = (*theTool)->passEvent(ctx.eventID());
589 uint64_t evtNumber = ctx.eventID().event_number();
593 if (doEvtHeartbeat) {
595 ATH_MSG_INFO (
" ===>>> start processing event #" << evtNumber <<
", run #" <<
m_currentRun <<
" " <<
m_nev <<
" events processed so far <<<===" );
604 <<
" events processed so far <<<===" );
614 if ( m_scheduledStop ) {
615 ATH_MSG_ALWAYS (
"A stopRun was requested by an incidentListener. "
616 <<
"Do not process this event." );
617 return (StatusCode::SUCCESS);
625 if(!
sc.isSuccess()) {
627 m_aess->setEventStatus( EventStatus::AlgFail, ctx );
634 <<
"Skipping remaining algorithms." << std::endl
635 <<
"\tNo output will be written for this event, "
636 <<
"but job will continue to next event" );
642 ATH_MSG_INFO (
"Skipping remaining algorithms." << std::endl
643 <<
"\tNo output will be written for this event, "
644 <<
"but job will continue to next event" );
650 m_aess->setEventStatus( EventStatus::Success, ctx );
654 ito != m_outStreamList.end(); ++ito ) {
655 sc = (*ito)->sysExecute(ctx);
656 if( !
sc.isSuccess() ) {
670 if (doEvtHeartbeat) {
674 <<
" " <<
m_nev <<
" events processed so far <<<===");
678 <<
" events processed so far <<<===");
680 std::ofstream
outfile(
"eventLoopHeartBeat.txt");
685 <<
" " <<
m_nev <<
" events read so far <<<===" << std::endl;
694 return eventFailed?StatusCode::FAILURE:StatusCode::SUCCESS;
◆ executeRun()
StatusCode AthenaEventLoopMgr::executeRun |
( |
int |
maxevt | ) |
|
|
virtualinherited |
implementation of IEventProcessor::executeRun(int maxevt)
Definition at line 701 of file AthenaEventLoopMgr.cxx.
703 if (!(this->
nextEvent(maxevt)).isSuccess())
return StatusCode::FAILURE;
707 return StatusCode::SUCCESS;
◆ finalize()
StatusCode AthenaEventLoopMgr::finalize |
( |
| ) |
|
|
virtualinherited |
implementation of IAppMgrUI::finalize
Reimplemented in PyAthenaEventLoopMgr.
Definition at line 369 of file AthenaEventLoopMgr.cxx.
373 if (
sc.isFailure()) {
378 if (sc2.isFailure()) {
394 unsigned int toolCtr = 0;
395 ATH_MSG_INFO (
"Summary of AthenaEvtLoopPreSelectTool invocation: (invoked/success/failure)" );
396 ATH_MSG_INFO (
"-----------------------------------------------------" );
398 for ( ; firstTool != lastTool; ++firstTool ) {
399 ATH_MSG_INFO ( std::setw(2) << std::setiosflags(std::ios_base::right)
400 << toolCtr+1 <<
".) " << std::resetiosflags(std::ios_base::right)
401 << std::setw(48) << std::setfill(
'.')
402 << std::setiosflags(std::ios_base::left)
403 << (*firstTool)->name() << std::resetiosflags(std::ios_base::left)
406 << std::setw(6) << std::setiosflags(std::ios_base::right)
417 return (
sc.isFailure() || sc2.isFailure() ) ? StatusCode::FAILURE :
◆ handle()
void AthenaEventLoopMgr::handle |
( |
const Incident & |
inc | ) |
|
|
inherited |
IIncidentListenet interfaces.
Definition at line 909 of file AthenaEventLoopMgr.cxx.
911 if(inc.type()!=
"BeforeFork")
915 ATH_MSG_WARNING (
"Skipping BeforeFork handler. Begin run has already passed" );
927 ATH_MSG_WARNING (
"Skipping BeforeFork handler. No event selector is provided" );
932 IOpaqueAddress* addr =
nullptr;
934 if(!
sc.isSuccess()) {
939 if (
sc.isFailure()) {
943 if (
nullptr != addr) {
946 if(!
sc.isSuccess()) {
952 if(
eventStore()->loadEventProxies().isFailure()) {
964 throw std::runtime_error(
"Error installing event context object" );
973 ATH_MSG_ERROR (
"Unable to execute requested algorithms/sequences during PreFork!" );
981 if(!
sc.isSuccess()) {
◆ initialize()
StatusCode AthenaEventLoopMgr::initialize |
( |
| ) |
|
|
virtualinherited |
implementation of IAppMgrUI::initalize
Reimplemented in PyAthenaEventLoopMgr.
Definition at line 127 of file AthenaEventLoopMgr.cxx.
131 m_autoRetrieveTools =
false;
132 m_checkToolDeps =
false;
135 if ( !
sc.isSuccess() )
137 ATH_MSG_ERROR (
"Failed to initialize base class MinimalEventLoopMgr" );
146 if( !
sc.isSuccess() )
148 ATH_MSG_FATAL (
"Error retrieving pointer to StoreGateSvc" );
157 if( !
sc.isSuccess() )
166 SmartIF<IProperty> prpMgr(serviceLocator());
167 if ( !prpMgr.isValid() )
169 ATH_MSG_FATAL (
"IProperty interface not found in ApplicationMgr." );
170 return StatusCode::FAILURE;
178 if( !
sc.isSuccess() )
185 if ( histPersName.length() == 0 )
187 CHECK(setProperty(prpMgr->getProperty(
"HistogramPersistency")));
190 if ( histPersName !=
"NONE" ) {
195 if( !sc.isSuccess() ) {
196 ATH_MSG_WARNING (
"Histograms cannot not be saved - though required." );
200 if (histPersName ==
"ROOT") {
201 histSvc = serviceLocator()->service(
"RootHistSvc");
202 }
else if ( histPersName ==
"HBOOK" ) {
203 histSvc = serviceLocator()->service(
"HbookHistSvc");
207 ATH_MSG_ERROR (
"could not locate actual Histogram persistency service" );
209 const Gaudi::Details::PropertyBase &prop =
histSvc->getProperty(
"OutputFile");
212 const StringProperty &sprop =
dynamic_cast<const StringProperty&
>( prop );
217 ATH_MSG_VERBOSE (
"could not dcast OutputFile property to a StringProperty."
218 <<
" Need to fix Gaudi." );
220 val = prop.toString();
225 val !=
"UndefinedROOTOutputFileName" &&
226 val !=
"UndefinedHbookOutputFileName" ) {
240 ATH_MSG_DEBUG (
"EventID modifier Service not set. No run number, ... overrides will be applied." );
243 ATH_MSG_INFO (
"Could not find EventID modifier Service. No run number, ... overrides will be applied." );
252 sc = setProperty(prpMgr->getProperty(
"EvtSel"));
257 SmartIF<IEvtSelector> theEvtSel{serviceLocator()->service(
selName )};
266 return StatusCode::FAILURE;
268 if (msgLevel(MSG::INFO)) {
269 SmartIF<INamedInterface> named(theEvtSel);
271 ATH_MSG_INFO (
"Setup EventSelector service " << named->name( )
275 }
else if (
sc.isFailure()) {
278 return StatusCode::FAILURE;
288 return StatusCode::FAILURE;
292 m_aess = serviceLocator()->service(
"AlgExecStateSvc");
295 return StatusCode::FAILURE;
◆ initializeAlgorithms()
StatusCode AthenaEventLoopMgr::initializeAlgorithms |
( |
| ) |
|
|
protectedinherited |
Initialize all algorithms and output streams.
Definition at line 481 of file AthenaEventLoopMgr.cxx.
486 for ( ita = m_topAlgList.begin(); ita != m_topAlgList.end(); ++ita )
499 for (ita = m_outStreamList.begin(); ita != m_outStreamList.end(); ++ita )
502 if(
sc.isFailure() ) {
510 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 1015 of file AthenaEventLoopMgr.cxx.
1019 unsigned int conditionsRun = EventIDBase::UNDEFNUM;
1020 bool consume_modifier_stream =
false;
1027 if (pAttrList !=
nullptr && pAttrList->size() > 6) {
1030 unsigned int runNumber = (*pAttrList)[
"RunNumber"].data<
unsigned int>();
1031 unsigned long long eventNumber = (*pAttrList)[
"EventNumber"].data<
unsigned long long>();
1032 unsigned int eventTime = (*pAttrList)[
"EventTime"].data<
unsigned int>();
1033 unsigned int eventTimeNS = (*pAttrList)[
"EventTimeNanoSec"].data<
unsigned int>();
1034 unsigned int lumiBlock = (*pAttrList)[
"LumiBlockN"].data<
unsigned int>();
1035 unsigned int bunchId = (*pAttrList)[
"BunchId"].data<
unsigned int>();
1038 consume_modifier_stream =
true;
1042 unsigned long long eventNumberSecondary{};
1043 if (!(pAttrList->exists(
"hasSecondaryInput") &&
1044 (*pAttrList)[
"hasSecondaryInput"].data<
bool>())) {
1045 ATH_MSG_FATAL(
"Secondary EventNumber requested, but secondary input does not exist!");
1046 return StatusCode::FAILURE;
1048 if (pAttrList->exists(
"EventNumber_secondary")) {
1049 eventNumberSecondary = (*pAttrList)[
"EventNumber_secondary"].data<
unsigned long long>();
1054 if (pEventSecondary) {
1055 eventNumberSecondary = pEventSecondary->
event_ID()->event_number();
1057 ATH_MSG_FATAL(
"Secondary EventNumber requested, but it does not exist!");
1058 return StatusCode::FAILURE;
1061 if (eventNumberSecondary != 0) {
1064 if (doEvtHeartbeat) {
1066 << eventNumberSecondary <<
" instead of #"
1073 eventInfo = std::make_unique<EventInfo>(
1079 if (!
m_evtIdModSvc.isSet() && pAttrList->exists(
"ConditionsRun")) {
1080 conditionsRun = (*pAttrList)[
"ConditionsRun"].data<
unsigned int>();
1100 ATH_MSG_FATAL(
"Valid input attribute list required but not present!");
1101 return StatusCode::FAILURE;
1115 if (xAODEvent ==
nullptr) {
1116 ATH_MSG_ERROR(
"Failed to get EventID from input. Tried old-style and xAOD::EventInfo");
1117 return StatusCode::FAILURE;
1121 eventInfo = std::make_unique<EventInfo>(
1126 if (!
sc.isSuccess()) {
1128 return StatusCode::FAILURE;
1135 eventInfo = std::make_unique<EventInfo>(
1136 std::make_unique<EventID>(1,
m_nevt, 0), std::make_unique<EventType>());
1140 if (!
sc.isSuccess()) {
1142 return (StatusCode::FAILURE);
1146 ctx.setEventID( eventID );
1152 Gaudi::Hive::setCurrentContext( ctx );
1155 if (
eventStore()->record(std::make_unique<EventContext> ( ctx ),
1156 "EventContext").isFailure())
1159 return (StatusCode::FAILURE);
1162 return StatusCode::SUCCESS;
◆ modifyEventContext()
void AthenaEventLoopMgr::modifyEventContext |
( |
EventContext & |
ctx, |
|
|
const EventID & |
eID, |
|
|
bool |
consume_modifier_stream |
|
) |
| |
|
virtualinherited |
Definition at line 1167 of file AthenaEventLoopMgr.cxx.
1173 unsigned int oldrunnr=eID.run_number();
1174 unsigned int oldLB=eID.lumi_block();
1175 unsigned int oldTS=eID.time_stamp();
1176 unsigned int oldTSno=eID.time_stamp_ns_offset();
1177 ATH_MSG_DEBUG (
"modifyEventContext: use evtIdModSvc runnr=" << oldrunnr <<
" -> " << new_eID.run_number() );
1178 ATH_MSG_DEBUG (
"modifyEventContext: use evtIdModSvc LB=" << oldLB <<
" -> " << new_eID.lumi_block() );
1179 ATH_MSG_DEBUG (
"modifyEventContext: use evtIdModSvc TimeStamp=" << oldTS <<
" -> " << new_eID.time_stamp() );
1180 ATH_MSG_DEBUG (
"modifyEventContext: use evtIdModSvc TimeStamp ns Offset=" << oldTSno <<
" -> " << new_eID.time_stamp_ns_offset() );
1182 ctx.setEventID( new_eID );
1187 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 90 of file MultipleEventLoopMgr.cxx.
100 }
while (
sc.isSuccess() &&
103 (
sc =
seek(0)).isSuccess() );
◆ nextPassFilter()
Locate filter.
Parses m_nextPassFilterName allowing for interactive changes.
Definition at line 47 of file MultipleEventLoopMgr.cxx.
50 if (!(filterName.empty())) {
51 Gaudi::Utils::TypeNameString theFilter(filterName);
52 IAlgTool* pHoldTool(
nullptr);
53 if ( (
m_pToolSvc->retrieveTool(theFilter.type(), theFilter.name(),
54 pHoldTool)).isSuccess() ) {
58 SmartIF<IAlgorithm>& pHoldAlg =
algMgr()->algorithm(theFilter,
false);
59 if (
nullptr == pFilter && pHoldAlg) {
63 if (
nullptr == pFilter) {
64 Gaudi::Utils::TypeNameString theFilter(filterName);
66 log << MSG::WARNING <<
"Could not locate filter "
67 << 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 79 of file MultipleEventLoopMgr.cxx.
82 SmartIF<IService>&
svc = serviceLocator()->service(
name,
false);
84 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 849 of file AthenaEventLoopMgr.cxx.
853 ATH_MSG_ERROR (
"Seek failed; unsupported by event selector" );
854 return StatusCode::FAILURE;
859 ATH_MSG_FATAL (
"Can not create the event selector Context." );
860 return StatusCode::FAILURE;
866 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 316 of file AthenaEventLoopMgr.cxx.
319 if ( policyName !=
"BeginEvent" &&
320 policyName !=
"EndEvent" ) {
323 <<
"] for the 'ClearStore-policy !"
325 <<
"Valid values are: BeginEvent, EndEvent"
327 throw GaudiException(
"Can not setup 'ClearStore'-policy",
329 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 336 of file AthenaEventLoopMgr.cxx.
351 unsigned int toolCtr = 0;
352 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 425 of file AthenaEventLoopMgr.cxx.
430 std::vector<DataObject*>
objects;
432 DataObject*
obj = reg->object();
433 if ( !
obj ||
obj->clID() == CLID_StatisticsFile )
return false;
438 if ( !
sc.isSuccess() ) {
439 ATH_MSG_ERROR (
"Error while traversing Histogram data store" );
447 (writeInterval != 0 &&
m_nevt%writeInterval == 0) ) {
451 IOpaqueAddress* pAddr =
nullptr;
453 if ( iret.isFailure() )
return iret;
454 i->registry()->setAddress( pAddr );
458 IRegistry* reg =
i->registry();
460 return iret.isFailure() ? iret : isc;
462 if ( !
sc.isSuccess() ) {
467 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
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.
accumulate
Update flags based on parser line args.
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