Go to the documentation of this file.
22 #define ON_DEBUG if ( outputLevel() <= MSG::DEBUG )
23 #define ON_VERBOSE if ( outputLevel() <= MSG::VERBOSE )
25 #define DEBMSG ON_DEBUG debug()
26 #define VERMSG ON_VERBOSE verbose()
40 DEBMSG <<
"Error Initializing base class MinimalEventLoopMgr." <<
endmsg;
47 fatal() <<
"Error retrieving EventDataSvc interface IDataManagerSvc." <<
endmsg;
52 fatal() <<
"Error retrieving EventDataSvc interface IDataProviderSvc." <<
endmsg;
59 fatal() <<
"IProperty interface not found in ApplicationMgr." <<
endmsg;
72 fatal() <<
"Can not create the event selector Context." <<
endmsg;
76 fatal() <<
"EventSelector not found." <<
endmsg;
83 warning() <<
"Unable to locate service \"EventSelector\" " <<
endmsg;
84 warning() <<
"No events will be processed from external input." <<
endmsg;
91 fatal() <<
"Error retrieving HistogramDataSvc." <<
endmsg;
97 warning() <<
"Histograms cannot not be saved - though required." <<
endmsg;
111 DEBMSG <<
"Error Initializing base class MinimalEventLoopMgr." <<
endmsg;
129 sc = theSvc->reinitialize();
131 error() <<
"Failure Reinitializing EventSelector " << theSvc->name() <<
endmsg;
135 sc = theSvc->sysInitialize();
137 error() <<
"Failure Initializing EventSelector " << theSvc->name() <<
endmsg;
143 error() <<
"Can not create Context " << theSvc->name() <<
endmsg;
146 info() <<
"EventSelector service changed to " << theSvc->name() <<
endmsg;
154 error() <<
"Can not create Context " << theSvc->name() <<
endmsg;
178 .orElse( [
this]() {
DEBMSG <<
"Clear of Event data store failed" <<
endmsg; } );
188 error() <<
"Error finalizing base class" <<
endmsg;
197 if ( !obj || obj->
clID() == CLID_StatisticsFile )
return false;
207 i->registry()->setAddress( pAddr );
215 if ( sc.isSuccess() ) {
216 info() <<
"Histograms converted successfully according to request." <<
endmsg;
218 error() <<
"Error while saving Histograms." <<
endmsg;
221 error() <<
"Error while traversing Histogram data store" <<
endmsg;
253 always() <<
"Terminating event processing loop due to a stop scheduled by an incident listener" <<
endmsg;
263 if ( !sc.
isSuccess() ) { error() <<
"Terminating event processing loop due to errors" <<
endmsg; }
277 typedef Clock::time_point time_point;
279 const float oneOver1024 = 1.f / 1024.f;
286 time_point start_time = Clock::now();
287 for (
int nevt = 0; maxevt == -1 || nevt < maxevt; ++nevt ) {
290 start_time = Clock::now();
301 always() <<
"Terminating event processing loop due to scheduled stop" <<
endmsg;
305 if ( 0 !=
ctx.evt() ) {
322 info() <<
"No more events in event selection " <<
endmsg;
328 warning() <<
"Error declaring event root address." <<
endmsg;
333 warning() <<
"Unable to retrieve Event root object" <<
endmsg;
338 if ( !sc.
isSuccess() ) { warning() <<
"Error declaring event root DataObject" <<
endmsg; }
344 error() <<
"Terminating event processing loop due to errors" <<
endmsg;
351 debug() <<
"---> Loop Finished - "
353 <<
" | total time (skipping 1st evt) "
354 << std::chrono::duration_cast<std::chrono::nanoseconds>( Clock::now() - start_time ).count() <<
" ns"
371 if ( !sc.
isSuccess() ) warning() <<
"Error creating IOpaqueAddress." <<
endmsg;
bool m_endEventFired
Flag to avoid to fire the EnvEvent incident twice in a row (and also not before the first event)
EventContext createEventContext() override
implementation of IEventProcessor::createEventContext()
SmartIF< IDataManagerSvc > m_histoDataMgrSvc
Reference to the Histogram Data Service.
Gaudi::Property< std::string > m_evtsel
SmartIF< IDataProviderSvc > m_evtDataSvc
Reference to the Event Data Service's IDataProviderSvc interface.
StatusCode setProperty(const Gaudi::Details::PropertyBase &p)
Set the property from a property.
Class definition of EventLoopMgr.
Gaudi::Property< bool > m_warnings
SmartIF< IEvtSelector > m_evtSelector
Reference to the Event Selector.
SmartIF< IProperty > m_appMgrProperty
Property interface of ApplicationMgr.
~EventLoopMgr() override
Standard Destructor.
StatusCode finalize() override
implementation of IService::finalize
SmartIF< IDataManagerSvc > m_evtDataMgrSvc
Reference to the Event Data Service's IDataManagerSvc interface.
AttribStringParser::Iterator begin(const AttribStringParser &parser)
const std::string & name() const override
Retrieve name of the service
StatusCode setAppReturnCode(SmartIF< IProperty > &appmgr, int value, bool force=false)
Set the application return code.
StatusCode reinitialize() override
implementation of IService::reinitialize
StatusCode stop() override
implementation of IService::stop
StatusCode nextEvent(int maxevt) override
implementation of IEventProcessor::nextEvent
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
constexpr int AlgorithmFailure
SmartIF< IConversionSvc > m_histoPersSvc
Reference to the Histogram Persistency Service.
IEvtSelector::Context * m_evtContext
Event Iterator.
const StatusCode & ignore() const
Allow discarding a StatusCode without warning.
StatusCode stop() override
implementation of IService::stop
virtual IOpaqueAddress * address() const =0
Retrieve opaque storage address.
StatusCode executeEvent(EventContext &&ctx) override
implementation of IEventProcessor::executeEvent(EventContext&&)
constexpr static const auto SUCCESS
TYPE * get() const
Get interface pointer.
#define DECLARE_COMPONENT(type)
SmartIF< IIncidentSvc > m_incidentSvc
Reference to the incident service.
StatusCode reinitialize() override
implementation of IService::reinitialize
virtual DataObject * object() const =0
Retrieve object behind the link.
int outputLevel() const
get the Service's output level
StatusCode finalize() override
implementation of IService::finalize
StatusCode executeEvent(EventContext &&ctx) override
implementation of IEventProcessor::executeEvent(EventContext&&)
GAUDI_API long mappedMemory(MemoryUnit unit=kByte, InfoType fetch=Memory, long pid=-1)
Basic Process Information: priority boost.
StatusCode getEventRoot(IOpaqueAddress *&refpAddr)
Create event address using event selector.
constexpr static const auto FAILURE
virtual const CLID & clID() const
Retrieve reference to class definition structure.
StatusCode initialize() override
implementation of IService::initialize
StatusCode initialize() override
implementation of IService::initialize
bool m_scheduledStop
Scheduled stop of event processing.
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator