| The Gaudi Framework v30r0 (c919700c)

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Protected Attributes | List of all members
EventLoopMgr Class Reference

Class definition of EventLoopMgr. More...

`#include <src/ApplicationMgr/EventLoopMgr.h>`

Inheritance diagram for EventLoopMgr:
[legend]
Collaboration diagram for EventLoopMgr:
[legend]

## Public Member Functions
| ~EventLoopMgr () override
| Standard Destructor. More...
StatusCode | getEventRoot (IOpaqueAddress *&refpAddr)
| Create event address using event selector. More...
StatusCode | initialize () override
| implementation of IService::initialize More...
StatusCode | reinitialize () override
| implementation of IService::reinitialize More...
StatusCode | stop () override
| implementation of IService::stop More...
StatusCode | finalize () override
| implementation of IService::finalize More...
StatusCode | nextEvent (int maxevt) override
| implementation of IService::nextEvent More...
StatusCode | executeEvent (void *par) override
| implementation of IEventProcessor::executeEvent(void* par) More...
Public Member Functions inherited from MinimalEventLoopMgr
| MinimalEventLoopMgr (const std::string &nam, ISvcLocator *svcLoc)
| Standard Constructor. More...
StatusCode | initialize () override
| implementation of IService::initialize More...
StatusCode | start () override
| implementation of IService::start More...
StatusCode | stop () override
| implementation of IService::stop More...
StatusCode | finalize () override
| implementation of IService::finalize More...
StatusCode | reinitialize () override
| implementation of IService::reinitialize More...
StatusCode | restart () override
| implementation of IService::restart More...
StatusCode | nextEvent (int maxevt) override
| implementation of IEventProcessor::nextEvent More...
StatusCode | executeEvent (void *par) override
| implementation of IEventProcessor::executeEvent(void* par) More...
StatusCode | executeRun (int maxevt) override
| implementation of IEventProcessor::executeRun( ) More...
StatusCode | stopRun () override
| implementation of IEventProcessor::stopRun( ) More...
void | topAlgHandler (Gaudi::Details::PropertyBase &p)
| Top algorithm List handler. More...
StatusCode | decodeTopAlgs ()
| decodeTopAlgNameList & topAlgNameListHandler More...
void | outStreamHandler (Gaudi::Details::PropertyBase &p)
| Output stream List handler. More...
StatusCode | decodeOutStreams ()
| decodeOutStreamNameList & outStreamNameListHandler More...
Public Member Functions inherited from extends< Service, IEventProcessor >
void * | i_cast (const InterfaceID &tid) const override
| Implementation of IInterface::i_cast. More...
StatusCode | queryInterface (const InterfaceID &ti, void **pp) override
| Implementation of IInterface::queryInterface. More...
std::vector< std::string > | getInterfaceNames () const override
| Implementation of IInterface::getInterfaceNames. More...
| ~extends () override=default
| Virtual destructor. More...
Public Member Functions inherited from Service
const std::string & | name () const override
| Retrieve name of the service. More...
StatusCode | configure () override
StatusCode | initialize () override
StatusCode | start () override
StatusCode | stop () override
StatusCode | finalize () override
StatusCode | terminate () override
Gaudi::StateMachine::State | FSMState () const override
Gaudi::StateMachine::State | targetFSMState () const override
StatusCode | reinitialize () override
StatusCode | restart () override
StatusCode | sysInitialize () override
| Initialize Service. More...
StatusCode | sysStart () override
| Initialize Service. More...
StatusCode | sysStop () override
| Initialize Service. More...
StatusCode | sysFinalize () override
| Finalize Service. More...
StatusCode | sysReinitialize () override
| Re-initialize the Service. More...
StatusCode | sysRestart () override
| Re-initialize the Service. More...
| Service (std::string name, ISvcLocator *svcloc)
| Standard Constructor. More...
SmartIF< ISvcLocator > & | serviceLocator () const override
| Retrieve pointer to service locator. More...
StatusCode | setProperties ()
| Method for setting declared properties to the values specified for the job. More...
template<class T >
StatusCode | service (const std::string &name, const T *&psvc, bool createIf=true) const
| Access a service by name, creating it if it doesn't already exist. More...
template<class T >
StatusCode | service (const std::string &name, T *&psvc, bool createIf=true) const
template<typename IFace = IService>
SmartIF< IFace > | service (const std::string &name, bool createIf=true) const
template<class T >
StatusCode | service (const std::string &svcType, const std::string &svcName, T *&psvc) const
| Access a service by name and type, creating it if it doesn't already exist. More...
template<class T >
StatusCode | declareTool (ToolHandle< T > &handle, std::string toolTypeAndName, bool createIf=true)
| Declare used tool. More...
SmartIF< IAuditorSvc > & | auditorSvc () const
| The standard auditor service.May not be invoked before sysInitialize() has been invoked. More...
Public Member Functions inherited from PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >
| PropertyHolder ()=default
| ~PropertyHolder () override=default
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Details::PropertyBase &prop)
| Declare a property. More...
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, TYPE &value, const std::string &doc="none")
| Helper to wrap a regular data member and use it as a regular property. More...
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, TYPE &value, const std::string &doc="none") const
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, Gaudi::Property< TYPE, VERIFIER, HANDLERS > &prop, const std::string &doc="none")
| Declare a PropertyBase instance setting name and documentation. More...
Gaudi::Details::PropertyBase * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="")
| Declare a remote property. More...
StatusCode | setProperty (const Gaudi::Details::PropertyBase &p) override
| set the property form another property More...
StatusCode | setProperty (const std::string &s) override
| set the property from the formatted string More...
StatusCode | setProperty (const std::string &n, const std::string &v) override
| set the property from name and the value More...
StatusCode | setProperty (const std::string &name, const TYPE &value)
| set the property form the value More...
StatusCode | getProperty (Gaudi::Details::PropertyBase *p) const override
| get the property More...
const Gaudi::Details::PropertyBase & | getProperty (const std::string &name) const override
| get the property by name More...
StatusCode | getProperty (const std::string &n, std::string &v) const override
| convert the property to the string More...
const std::vector< Gaudi::Details::PropertyBase * > & | getProperties () const override
| get all properties More...
bool | hasProperty (const std::string &name) const override
| Return true if we have a property with the given name. More...
| PropertyHolder (const PropertyHolder &)=delete
PropertyHolder & | operator= (const PropertyHolder &)=delete
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, GaudiHandleBase &ref, const std::string &doc="none")
| Specializations for various GaudiHandles. More...
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, GaudiHandleArrayBase &ref, const std::string &doc="none")
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, DataObjectHandleBase &ref, const std::string &doc="none")
Public Member Functions inherited from CommonMessagingBase
virtual | ~CommonMessagingBase ()=default
| Virtual destructor. More...
const SmartIF< IMessageSvc > & | msgSvc () const
| The standard message service. More...
MsgStream & | msgStream () const
| Return an uninitialized MsgStream. More...
MsgStream & | msgStream (const MSG::Level level) const
| Predefined configurable message stream for the efficient printouts. More...
MsgStream & | always () const
| shortcut for the method msgStream(MSG::ALWAYS) More...
MsgStream & | fatal () const
| shortcut for the method msgStream(MSG::FATAL) More...
MsgStream & | err () const
| shortcut for the method msgStream(MSG::ERROR) More...
MsgStream & | error () const
| shortcut for the method msgStream(MSG::ERROR) More...
MsgStream & | warning () const
| shortcut for the method msgStream(MSG::WARNING) More...
MsgStream & | info () const
| shortcut for the method msgStream(MSG::INFO) More...
MsgStream & | debug () const
| shortcut for the method msgStream(MSG::DEBUG) More...
MsgStream & | verbose () const
| shortcut for the method msgStream(MSG::VERBOSE) More...
MsgStream & | msg () const
| shortcut for the method msgStream(MSG::INFO) More...
MSG::Level | msgLevel () const
| get the cached level (originally extracted from the embedded MsgStream) More...
MSG::Level | outputLevel () const __attribute__((deprecated))
| Backward compatibility function for getting the output level. More...
bool | msgLevel (MSG::Level lvl) const
| get the output level from the embedded MsgStream More...
Public Member Functions inherited from extend_interfaces< Interfaces... >
| ~extend_interfaces () override=default
| Virtual destructor. More...

## Protected Attributes
Gaudi::Property< std::string > | m_histPersName {this, "HistogramPersistency", {}, "name of the Hist Pers type"}
Gaudi::Property< std::string > | m_evtsel {this, "EvtSel", {}, "event selector"}
Gaudi::Property< bool > | m_warnings {this, "Warnings", true, "set to false to suppress warning messages"}
SmartIF< IDataManagerSvc > | m_evtDataMgrSvc = nullptr
| Reference to the Event Data Service's IDataManagerSvc interface. More...
SmartIF< IDataProviderSvc > | m_evtDataSvc = nullptr
| Reference to the Event Data Service's IDataProviderSvc interface. More...
SmartIF< IEvtSelector > | m_evtSelector = nullptr
| Reference to the Event Selector. More...
IEvtSelector::Context * | m_evtContext = nullptr
| Event Iterator. More...
SmartIF< IDataManagerSvc > | m_histoDataMgrSvc = nullptr
| Reference to the Histogram Data Service. More...
SmartIF< IConversionSvc > | m_histoPersSvc = nullptr
| Reference to the Histogram Persistency Service. More...
SmartIF< IProperty > | m_appMgrProperty = nullptr
| Property interface of ApplicationMgr. More...
bool | m_endEventFired = true
| Flag to avoid to fire the EnvEvent incident twice in a row (and also not before the first event) More...
Protected Attributes inherited from MinimalEventLoopMgr
Gaudi::Property< std::vector< std::string > > | m_topAlgNames {this, "TopAlg", {}, "list of top level algorithms names"}
Gaudi::Property< std::vector< std::string > > | m_outStreamNames {this, "OutStream", {}, "list of output stream names"}
Gaudi::Property< std::string > | m_outStreamType
Gaudi::Property< bool > | m_printCFExp
SmartIF< IAppMgrUI > | m_appMgrUI
| Reference to the IAppMgrUI interface of the application manager. More...
SmartIF< IIncidentSvc > | m_incidentSvc
| Reference to the incident service. More...
SmartIF< IAlgExecStateSvc > | m_aess
| List of top level algorithms. More...
ListAlg | m_topAlgList
ListAlg | m_outStreamList
| List of output streams. More...
State | m_state = OFFLINE
| State of the object. More...
bool | m_scheduledStop = false
| Scheduled stop of event processing. More...
SmartIF< IIncidentListener > | m_abortEventListener
| Instance of the incident listener waiting for AbortEvent. More...
bool | m_abortEvent = false
| Flag signalling that the event being processedhas to be aborted (skip all following top algs). More...
std::string | m_abortEventSource
| Source of the AbortEvent incident. More...
Protected Attributes inherited from Service
Gaudi::StateMachine::State | m_state = Gaudi::StateMachine::OFFLINE
| Service state. More...
Gaudi::StateMachine::State | m_targetState = Gaudi::StateMachine::OFFLINE
| Service state. More...
Gaudi::Property< int > | m_outputLevel {this, "OutputLevel", MSG::NIL, "output level"}
Gaudi::Property< bool > | m_auditInit {this, "AuditServices", false, "[[deprecated]] unused"}
Gaudi::Property< bool > | m_auditorInitialize {this, "AuditInitialize", false, "trigger auditor on initialize()"}
Gaudi::Property< bool > | m_auditorStart {this, "AuditStart", false, "trigger auditor on start()"}
Gaudi::Property< bool > | m_auditorStop {this, "AuditStop", false, "trigger auditor on stop()"}
Gaudi::Property< bool > | m_auditorFinalize {this, "AuditFinalize", false, "trigger auditor on finalize()"}
Gaudi::Property< bool > | m_auditorReinitialize {this, "AuditReinitialize", false, "trigger auditor on reinitialize()"}
Gaudi::Property< bool > | m_auditorRestart {this, "AuditRestart", false, "trigger auditor on restart()"}
SmartIF< IAuditorSvc > | m_pAuditorSvc
| Auditor Service. More...

## Additional Inherited Members
Public Types inherited from MinimalEventLoopMgr
typedef std::vector< SmartIF< IAlgorithm > > | ListAlg
Public Types inherited from extends< Service, IEventProcessor >
using | base_class = extends
| Typedef to this class. More...
using | extend_interfaces_base = extend_interfaces< Interfaces... >
| Typedef to the base of this class. More...
Public Types inherited from Service
typedef Gaudi::PluginService::Factory< IService *, const std::string &, ISvcLocator * > | Factory
Public Types inherited from PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >
using | PropertyHolderImpl = PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >
| Typedef used to refer to this class from derived classes, as in. More...
Public Types inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
using | base_class = CommonMessaging
Public Types inherited from extend_interfaces< Interfaces... >
using | ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids... >::type
| take union of the ext_iids of all Interfaces... More...
Protected Types inherited from MinimalEventLoopMgr
enum | State { OFFLINE, CONFIGURED, FINALIZED, INITIALIZED }
Protected Member Functions inherited from Service
| ~Service () override
| Standard Destructor. More...
int | outputLevel () const
| get the `Service's` output level More...
Protected Member Functions inherited from PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >
Gaudi::Details::PropertyBase * | property (const std::string &name) const
Protected Member Functions inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
MSG::Level | setUpMessaging ()
| Set up local caches. More...
MSG::Level | resetMessaging ()
| Reinitialize internal states. More...
void | updateMsgStreamOutputLevel (int level)
| Update the output level of the cached MsgStream. More...

## Detailed Description

Class definition of EventLoopMgr.

This is the default processing manager of the application manager. This object handles the minimal requirements needed by the application manager. It also handles the default user configuration setup for standard event processing.

- handling of the incidents when starting event processing
- handling of the event loop

History:

     +---------+----------------------------------------------+---------+
     |    Date |                 Comment                      | Who     |
     +---------+----------------------------------------------+---------+
     |13/12/00 | Initial version                              | M.Frank |
     +---------+----------------------------------------------+---------+

Author
  Markus Frank

Version
  1.0

Definition at line 38 of file EventLoopMgr.h.

## Constructor & Destructor Documentation

EventLoopMgr::~EventLoopMgr | ( |  | ) |
| override

Standard Destructor.

Definition at line 30 of file EventLoopMgr.cpp.

30 { delete m_evtContext; }
EventLoopMgr::m_evtContext
IEvtSelector::Context * m_evtContext
Event Iterator.
Definition: EventLoopMgr.h:55

## Member Function Documentation

StatusCode EventLoopMgr::executeEvent | ( | void * | par | ) |
| override

implementation of IEventProcessor::executeEvent(void* par)

Definition at line 247 of file EventLoopMgr.cpp.

248 {
249
250 // DP Monitoring
251
252 // Fire BeginEvent "Incident"
253 m_incidentSvc->fireIncident( Incident( name(), IncidentType::BeginEvent ) );
254 // An incident may schedule a stop, in which case is better to exit before the actual execution.
255 if ( m_scheduledStop ) {
256 always() << "Terminating event processing loop due to a stop scheduled by an incident listener" << endmsg;
257 return StatusCode::SUCCESS;
258 }
259
260 // Execute Algorithms
261 m_incidentSvc->fireIncident( Incident( name(), IncidentType::BeginProcessing ) );
262 StatusCode sc = MinimalEventLoopMgr::executeEvent( par );
263 m_incidentSvc->fireIncident( Incident( name(), IncidentType::EndProcessing ) );
264
265 // Check if there was an error processing current event
266 if ( UNLIKELY( !sc.isSuccess() ) ) {
267 error() << "Terminating event processing loop due to errors" << endmsg;
268 }
269 return sc;
270 }
UNLIKELY
#define UNLIKELY(x)
Definition: Kernel.h:128
StatusCode::SUCCESS
Definition: StatusCode.h:29
Service::name
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:289
MinimalEventLoopMgr::m_scheduledStop
bool m_scheduledStop
Scheduled stop of event processing.
Definition: MinimalEventLoopMgr.h:56
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:50
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:106
IIncidentSvc::fireIncident
virtual void fireIncident(const Incident &incident)=0
Fire an Incident.
compareOutputFiles.par
string par
Definition: compareOutputFiles.py:437
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
MinimalEventLoopMgr::m_incidentSvc
SmartIF< IIncidentSvc > m_incidentSvc
Reference to the incident service.
Definition: MinimalEventLoopMgr.h:47
Incident
Base class for all Incidents (computing events).
Definition: Incident.h:17
CommonMessagingBase::always
MsgStream & always() const
shortcut for the method msgStream(MSG::ALWAYS)
Definition: CommonMessaging.h:97
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
MinimalEventLoopMgr::executeEvent
StatusCode executeEvent(void *par) override
implementation of IEventProcessor::executeEvent(void* par)
Definition: MinimalEventLoopMgr.cpp:395

StatusCode EventLoopMgr::finalize | ( |  | ) |
| override

implementation of IService::finalize

Definition at line 183 of file EventLoopMgr.cpp.

184 {
185 StatusCode sc;
186
187 // Finalize base class
188 sc = MinimalEventLoopMgr::finalize();
189 if ( !sc.isSuccess() ) {
190 error() << "Error finalizing base class" << endmsg;
191 return sc;
192 }
193
194 // Save Histograms Now
195 if ( m_histoPersSvc ) {
196 HistogramAgent agent;
197 sc = m_histoDataMgrSvc->traverseTree( &agent );
198 if ( sc.isSuccess() ) {
199 IDataSelector* objects = agent.selectedObjects();
200 // skip /stat entry!
201 if ( objects->size() > 0 ) {
202 for ( auto& i : *objects ) {
203 IOpaqueAddress* pAddr = nullptr;
204 StatusCode iret = m_histoPersSvc->createRep( i, pAddr );
205 if ( iret.isSuccess() ) {
206 i->registry()->setAddress( pAddr );
207 } else {
208 sc = iret;
209 }
210 }
211 for ( auto& i : *objects ) {
212 IRegistry* reg = i->registry();
213 StatusCode iret = m_histoPersSvc->fillRepRefs( reg->address(), i );
214 if ( !iret.isSuccess() ) sc = iret;
215 }
216 }
217 if ( sc.isSuccess() ) {
218 info() << "Histograms converted successfully according to request." << endmsg;
219 } else {
220 error() << "Error while saving Histograms." << endmsg;
221 }
222 } else {
223 error() << "Error while traversing Histogram data store" << endmsg;
224 }
225 }
226
227 // Release event selector context
228 if ( m_evtSelector && m_evtContext ) {
229 m_evtSelector->releaseContext( m_evtContext ).ignore();
230 m_evtContext = nullptr;
231 }
232
233 // Release all interfaces...
234 m_histoDataMgrSvc = nullptr;
235 m_histoPersSvc = nullptr;
236
237 m_evtSelector = nullptr;
238 m_evtDataSvc = nullptr;
239 m_evtDataMgrSvc = nullptr;
240
241 return StatusCode::SUCCESS;
242 }
IDataManagerSvc::traverseTree
virtual StatusCode traverseTree(IDataStoreAgent *pAgent)=0
Analyse by traversing all data objects in the data store.
StatusCode::SUCCESS
Definition: StatusCode.h:29
MinimalEventLoopMgr::finalize
StatusCode finalize() override
implementation of IService::finalize
Definition: MinimalEventLoopMgr.cpp:278
EventLoopMgr::m_histoPersSvc
SmartIF< IConversionSvc > m_histoPersSvc
Reference to the Histogram Persistency Service.
Definition: EventLoopMgr.h:59
CommonMessagingBase::info
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
Definition: CommonMessaging.h:112
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:50
HistogramAgent
HistogramAgent base in charge of collecting all the refereces to DataObjects in a transient store tha...
Definition: HistogramAgent.h:17
IConverter::createRep
virtual StatusCode createRep(DataObject *pObject, IOpaqueAddress *&refpAddress)=0
Convert the transient object to the requested representation.
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:106
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
IRegistry
The IRegistry represents the entry door to the environment any data object residing in a transient da...
Definition: IRegistry.h:22
IEvtSelector::releaseContext
virtual StatusCode releaseContext(Context *&) const =0
Release the Context object.
HistogramAgent::selectedObjects
IDataSelector * selectedObjects()
Return the set of selected DataObjects.
Definition: HistogramAgent.h:30
EventLoopMgr::m_evtDataMgrSvc
SmartIF< IDataManagerSvc > m_evtDataMgrSvc
Reference to the Event Data Service&#39;s IDataManagerSvc interface.
Definition: EventLoopMgr.h:49
std::vector::size
T size(T...args)
std::vector< DataObject * >
EventLoopMgr::m_evtContext
IEvtSelector::Context * m_evtContext
Event Iterator.
Definition: EventLoopMgr.h:55
EventLoopMgr::m_evtSelector
SmartIF< IEvtSelector > m_evtSelector
Reference to the Event Selector.
Definition: EventLoopMgr.h:53
EventLoopMgr::m_evtDataSvc
SmartIF< IDataProviderSvc > m_evtDataSvc
Reference to the Event Data Service&#39;s IDataProviderSvc interface.
Definition: EventLoopMgr.h:51
IOpaqueAddress
Opaque address interface definition.
Definition: IOpaqueAddress.h:23
StatusCode::ignore
void ignore() const
Definition: StatusCode.h:84
IRegistry::address
virtual IOpaqueAddress * address() const =0
Retrieve opaque storage address.
IConverter::fillRepRefs
virtual StatusCode fillRepRefs(IOpaqueAddress *pAddress, DataObject *pObject)=0
Resolve the references of the converted object.
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
EventLoopMgr::m_histoDataMgrSvc
SmartIF< IDataManagerSvc > m_histoDataMgrSvc
Reference to the Histogram Data Service.
Definition: EventLoopMgr.h:57

StatusCode EventLoopMgr::getEventRoot | ( | IOpaqueAddress *& | refpAddr | ) |

Create event address using event selector.

Definition at line 370 of file EventLoopMgr.cpp.

371 {
372 refpAddr = nullptr;
373 StatusCode sc = m_evtSelector->next( *m_evtContext );
374 if ( !sc.isSuccess() ) return sc;
375 // Create root address and assign address to data service
376 sc = m_evtSelector->createAddress( *m_evtContext, refpAddr );
377 if ( !sc.isSuccess() ) {
378 sc = m_evtSelector->next( *m_evtContext );
379 if ( sc.isSuccess() ) {
380 sc = m_evtSelector->createAddress( *m_evtContext, refpAddr );
381 if ( !sc.isSuccess() ) {
382 warning() << "Error creating IOpaqueAddress." << endmsg;
383 }
384 }
385 }
386 return sc;
387 }
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:50
CommonMessagingBase::warning
MsgStream & warning() const
shortcut for the method msgStream(MSG::WARNING)
Definition: CommonMessaging.h:109
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
EventLoopMgr::m_evtContext
IEvtSelector::Context * m_evtContext
Event Iterator.
Definition: EventLoopMgr.h:55
EventLoopMgr::m_evtSelector
SmartIF< IEvtSelector > m_evtSelector
Reference to the Event Selector.
Definition: EventLoopMgr.h:53
IEvtSelector::next
virtual StatusCode next(Context &c) const =0
Fetch the next event or the first event if it will be use soon after the creation of the context...
IEvtSelector::createAddress
virtual StatusCode createAddress(const Context &c, IOpaqueAddress *&iop) const =0
Create an IOpaqueAddress object from the event fetched.
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209

StatusCode EventLoopMgr::initialize | ( |  | ) |
| override

implementation of IService::initialize

Definition at line 35 of file EventLoopMgr.cpp.

36 {
37 // Initialize the base class
38 StatusCode sc = MinimalEventLoopMgr::initialize();
39 if ( !sc.isSuccess() ) {
40 DEBMSG << "Error Initializing base class MinimalEventLoopMgr." << endmsg;
41 return sc;
42 }
43
44 // Setup access to event data services
45 m_evtDataMgrSvc = serviceLocator()->service( "EventDataSvc" );
46 if ( !m_evtDataMgrSvc ) {
47 fatal() << "Error retrieving EventDataSvc interface IDataManagerSvc." << endmsg;
48 return StatusCode::FAILURE;
49 }
50 m_evtDataSvc = serviceLocator()->service( "EventDataSvc" );
51 if ( !m_evtDataSvc ) {
52 fatal() << "Error retrieving EventDataSvc interface IDataProviderSvc." << endmsg;
53 return StatusCode::FAILURE;
54 }
55
56 // Obtain the IProperty of the ApplicationMgr
57 m_appMgrProperty = serviceLocator();
58 if ( !m_appMgrProperty ) {
59 fatal() << "IProperty interface not found in ApplicationMgr." << endmsg;
60 return StatusCode::FAILURE;
61 }
62
63 // We do not expect a Event Selector necessarily being declared
64 setProperty( m_appMgrProperty->getProperty( "EvtSel" ) ).ignore();
65
66 if ( m_evtsel != "NONE" || m_evtsel.length() == 0 ) {
67 m_evtSelector = serviceLocator()->service( "EventSelector" );
68 if ( m_evtSelector ) {
69 // Setup Event Selector
70 sc = m_evtSelector->createContext( m_evtContext );
71 if ( !sc.isSuccess() ) {
72 fatal() << "Can not create the event selector Context." << endmsg;
73 return sc;
74 }
75 } else {
76 fatal() << "EventSelector not found." << endmsg;
77 return sc;
78 }
79 } else {
80 m_evtSelector = nullptr;
81 m_evtContext = nullptr;
82 if ( m_warnings ) {
83 warning() << "Unable to locate service \"EventSelector\" " << endmsg;
84 warning() << "No events will be processed from external input." << endmsg;
85 }
86 }
87
88 // Setup access to histogramming services
89 m_histoDataMgrSvc = serviceLocator()->service( "HistogramDataSvc" );
90 if ( !m_histoDataMgrSvc ) {
91 fatal() << "Error retrieving HistogramDataSvc." << endmsg;
92 return sc;
93 }
94 // Setup histogram persistency
95 m_histoPersSvc = serviceLocator()->service( "HistogramPersistencySvc" );
96 if ( !m_histoPersSvc ) {
97 warning() << "Histograms cannot not be saved - though required." << endmsg;
98 return sc;
99 }
100
101 return StatusCode::SUCCESS;
102 }
StatusCode::SUCCESS
Definition: StatusCode.h:29
EventLoopMgr::m_histoPersSvc
SmartIF< IConversionSvc > m_histoPersSvc
Reference to the Histogram Persistency Service.
Definition: EventLoopMgr.h:59
PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >::setProperty
StatusCode setProperty(const Gaudi::Details::PropertyBase &p) override
set the property form another property
Definition: PropertyHolder.h:208
EventLoopMgr::m_warnings
Gaudi::Property< bool > m_warnings
Definition: EventLoopMgr.h:46
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:50
MinimalEventLoopMgr::initialize
StatusCode initialize() override
implementation of IService::initialize
Definition: MinimalEventLoopMgr.cpp:66
IProperty::getProperty
virtual StatusCode getProperty(Gaudi::Details::PropertyBase *p) const =0
Get the property by property.
ISvcLocator::service
StatusCode service(const Gaudi::Utils::TypeNameString &name, T *&svc, bool createIf=true)
Templated method to access a service by name.
Definition: ISvcLocator.h:79
CommonMessagingBase::warning
MsgStream & warning() const
shortcut for the method msgStream(MSG::WARNING)
Definition: CommonMessaging.h:109
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
EventLoopMgr::m_evtDataMgrSvc
SmartIF< IDataManagerSvc > m_evtDataMgrSvc
Reference to the Event Data Service&#39;s IDataManagerSvc interface.
Definition: EventLoopMgr.h:49
EventLoopMgr::m_appMgrProperty
SmartIF< IProperty > m_appMgrProperty
Property interface of ApplicationMgr.
Definition: EventLoopMgr.h:61
EventLoopMgr::m_evtContext
IEvtSelector::Context * m_evtContext
Event Iterator.
Definition: EventLoopMgr.h:55
EventLoopMgr::m_evtSelector
SmartIF< IEvtSelector > m_evtSelector
Reference to the Event Selector.
Definition: EventLoopMgr.h:53
DEBMSG
#define DEBMSG
Definition: EventLoopMgr.cpp:24
EventLoopMgr::m_evtsel
Gaudi::Property< std::string > m_evtsel
Definition: EventLoopMgr.h:45
EventLoopMgr::m_evtDataSvc
SmartIF< IDataProviderSvc > m_evtDataSvc
Reference to the Event Data Service&#39;s IDataProviderSvc interface.
Definition: EventLoopMgr.h:51
IEvtSelector::createContext
virtual StatusCode createContext(Context *&c) const =0
Create and return a context object that will keep track of the state of selection.
StatusCode::FAILURE
Definition: StatusCode.h:29
CommonMessagingBase::fatal
MsgStream & fatal() const
shortcut for the method msgStream(MSG::FATAL)
Definition: CommonMessaging.h:100
Service::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: Service.cpp:292
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
EventLoopMgr::m_histoDataMgrSvc
SmartIF< IDataManagerSvc > m_histoDataMgrSvc
Reference to the Histogram Data Service.
Definition: EventLoopMgr.h:57

StatusCode EventLoopMgr::nextEvent | ( | int | maxevt | ) |
| override

implementation of IService::nextEvent

Definition at line 277 of file EventLoopMgr.cpp.

278 {
279
280 // DP Monitoring
281 // Calculate runtime
282 typedef std::chrono::high_resolution_clock Clock;
283 typedef Clock::time_point time_point;
284
285 const float oneOver1024 = 1.f / 1024.f;
286
287 static int total_nevt = 0;
288 DataObject* pObject = nullptr;
289 StatusCode sc( StatusCode::SUCCESS, true );
290
291 // loop over events if the maxevt (received as input) if different from -1.
292 // if evtmax is -1 it means infinite loop
293 time_point start_time = Clock::now();
294 for ( int nevt = 0; maxevt == -1 || nevt < maxevt; ++nevt, ++total_nevt ) {
295
296 if ( 1 == nevt ) // reset after first evt
297 start_time = Clock::now();
298
299 // always() << "Event Number = " << total_nevt
300 // << " WSS (MB) = " << System::mappedMemory(System::MemoryUnit::kByte)*oneOver1024
301 // << " Time (s) = " << secsFromStart(start_time) << endmsg;
302
303 // Check if there is a scheduled stop issued by some algorithm/service
304 if ( m_scheduledStop ) {
305 m_scheduledStop = false;
306 always() << "Terminating event processing loop due to scheduled stop" << endmsg;
307 break;
308 }
309 // Clear the event store, if used in the event loop
310 if ( 0 != total_nevt ) {
311
312 if ( !m_endEventFired ) {
313 // Fire EndEvent "Incident" (it is considered part of the clearing of the TS)
314 m_incidentSvc->fireIncident( Incident( name(), IncidentType::EndEvent ) );
315 m_endEventFired = true;
316 }
317 sc = m_evtDataMgrSvc->clearStore();
318 if ( !sc.isSuccess() ) {
319 DEBMSG << "Clear of Event data store failed" << endmsg;
320 }
321 }
322
323 // Setup event in the event store
324 if ( m_evtContext ) {
325 IOpaqueAddress* addr = nullptr;
326 // Only if there is a EventSelector
327 sc = getEventRoot( addr );
328 if ( !sc.isSuccess() ) {
329 info() << "No more events in event selection " << endmsg;
330 break;
331 }
332 // Set root clears the event data store first
333 sc = m_evtDataMgrSvc->setRoot( "/Event", addr );
334 if ( !sc.isSuccess() ) {
335 warning() << "Error declaring event root address." << endmsg;
336 continue;
337 }
338 sc = m_evtDataSvc->retrieveObject( "/Event", pObject );
339 if ( !sc.isSuccess() ) {
340 warning() << "Unable to retrieve Event root object" << endmsg;
341 break;
342 }
343 } else {
344 sc = m_evtDataMgrSvc->setRoot( "/Event", new DataObject() );
345 if ( !sc.isSuccess() ) {
346 warning() << "Error declaring event root DataObject" << endmsg;
347 }
348 }
349 // Execute event for all required algorithms
350 sc = executeEvent( nullptr );
351 m_endEventFired = false;
352 if ( !sc.isSuccess() ) {
353 error() << "Terminating event processing loop due to errors" << endmsg;
354 Gaudi::setAppReturnCode( m_appMgrProperty, Gaudi::ReturnCode::AlgorithmFailure ).ignore();
355 return sc;
356 }
357 }
358 time_point end_time = Clock::now();
359
360 if ( UNLIKELY( outputLevel() <= MSG::DEBUG ) )
361 debug() << "---> Loop Finished - "
362 << " WSS " << System::mappedMemory( System::MemoryUnit::kByte ) * oneOver1024
363 << " | total time (skipping 1st evt) "
364 << std::chrono::duration_cast<std::chrono::nanoseconds>( end_time - start_time ).count() << " ns" << endmsg;
365
366 return StatusCode::SUCCESS;
367 }
UNLIKELY
#define UNLIKELY(x)
Definition: Kernel.h:128
StatusCode::SUCCESS
Definition: StatusCode.h:29
std::chrono::nanoseconds
Service::name
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:289
MinimalEventLoopMgr::m_scheduledStop
bool m_scheduledStop
Scheduled stop of event processing.
Definition: MinimalEventLoopMgr.h:56
CommonMessagingBase::info
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
Definition: CommonMessaging.h:112
IDataManagerSvc::setRoot
virtual StatusCode setRoot(std::string root_name, DataObject *pObject)=0
Initialize data store for new event by giving new event path.
Service::outputLevel
int outputLevel() const
get the Service&#39;s output level
Definition: Service.h:165
MSG::DEBUG
Definition: IMessageSvc.h:16
std::chrono::duration_cast
T duration_cast(T...args)
IDataManagerSvc::clearStore
virtual StatusCode clearStore()=0
Remove all data objects in the data store.
System::kByte
Definition: Memory.h:56
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:106
IIncidentSvc::fireIncident
virtual void fireIncident(const Incident &incident)=0
Fire an Incident.
std::chrono::high_resolution_clock
CommonMessagingBase::warning
MsgStream & warning() const
shortcut for the method msgStream(MSG::WARNING)
Definition: CommonMessaging.h:109
EventLoopMgr::executeEvent
StatusCode executeEvent(void *par) override
implementation of IEventProcessor::executeEvent(void* par)
Definition: EventLoopMgr.cpp:247
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
EventLoopMgr::getEventRoot
StatusCode getEventRoot(IOpaqueAddress *&refpAddr)
Create event address using event selector.
Definition: EventLoopMgr.cpp:370
IDataProviderSvc::retrieveObject
virtual StatusCode retrieveObject(IRegistry *pDirectory, boost::string_ref path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.
Clock
std::chrono::high_resolution_clock Clock
Definition: ITimelineSvc.h:10
MinimalEventLoopMgr::m_incidentSvc
SmartIF< IIncidentSvc > m_incidentSvc
Reference to the incident service.
Definition: MinimalEventLoopMgr.h:47
Gaudi::setAppReturnCode
StatusCode setAppReturnCode(SmartIF< IProperty > &appmgr, int value, bool force=false)
Set the application return code.
Definition: AppReturnCode.h:51
std::count
T count(T...args)
EventLoopMgr::m_evtDataMgrSvc
SmartIF< IDataManagerSvc > m_evtDataMgrSvc
Reference to the Event Data Service&#39;s IDataManagerSvc interface.
Definition: EventLoopMgr.h:49
GaudiPython.Bindings.DataObject
DataObject
Definition: Bindings.py:55
System::mappedMemory
GAUDI_API long mappedMemory(MemoryUnit unit=kByte, InfoType fetch=Memory, long pid=-1)
Basic Process Information: priority boost.
Definition: Memory.cpp:204
CommonMessagingBase::debug
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
Definition: CommonMessaging.h:115
EventLoopMgr::m_appMgrProperty
SmartIF< IProperty > m_appMgrProperty
Property interface of ApplicationMgr.
Definition: EventLoopMgr.h:61
EventLoopMgr::m_evtContext
IEvtSelector::Context * m_evtContext
Event Iterator.
Definition: EventLoopMgr.h:55
DEBMSG
#define DEBMSG
Definition: EventLoopMgr.cpp:24
time_point
Clock::time_point time_point
Definition: ITimelineSvc.h:11
std::chrono::high_resolution_clock::now
T now(T...args)
Incident
Base class for all Incidents (computing events).
Definition: Incident.h:17
Gaudi::ReturnCode::AlgorithmFailure
constexpr int AlgorithmFailure
Definition: AppReturnCode.h:26
EventLoopMgr::m_endEventFired
bool m_endEventFired
Flag to avoid to fire the EnvEvent incident twice in a row (and also not before the first event) ...
Definition: EventLoopMgr.h:64
EventLoopMgr::m_evtDataSvc
SmartIF< IDataProviderSvc > m_evtDataSvc
Reference to the Event Data Service&#39;s IDataProviderSvc interface.
Definition: EventLoopMgr.h:51
IOpaqueAddress
Opaque address interface definition.
Definition: IOpaqueAddress.h:23
maxevt
int maxevt
Definition: Bootstrap.cpp:279
StatusCode::ignore
void ignore() const
Definition: StatusCode.h:84
CommonMessagingBase::always
MsgStream & always() const
shortcut for the method msgStream(MSG::ALWAYS)
Definition: CommonMessaging.h:97
DataObject
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209

StatusCode EventLoopMgr::reinitialize | ( |  | ) |
| override

implementation of IService::reinitialize

Definition at line 106 of file EventLoopMgr.cpp.

107 {
108
109 // Initialize the base class
110 StatusCode sc = MinimalEventLoopMgr::reinitialize();
111 if ( !sc.isSuccess() ) {
112 DEBMSG << "Error Initializing base class MinimalEventLoopMgr." << endmsg;
113 return sc;
114 }
115
116 // Check to see whether a new Event Selector has been specified
117 setProperty( m_appMgrProperty->getProperty( "EvtSel" ) );
118 if ( m_evtsel != "NONE" || m_evtsel.length() == 0 ) {
119 auto theSvc = serviceLocator()->service<IService>( "EventSelector" );
120 auto theEvtSel = theSvc.as<IEvtSelector>();
121 if ( theEvtSel && ( theEvtSel.get() != m_evtSelector.get() ) ) {
122 // Setup Event Selector
123 if ( m_evtSelector.get() && m_evtContext ) {
124 // Need to release context before switching to new event selector
125 m_evtSelector->releaseContext( m_evtContext );
126 m_evtContext = nullptr;
127 }
128 m_evtSelector = theEvtSel;
129 if ( theSvc->FSMState() == Gaudi::StateMachine::INITIALIZED ) {
130 sc = theSvc->reinitialize();
131 if ( !sc.isSuccess() ) {
132 error() << "Failure Reinitializing EventSelector " << theSvc->name() << endmsg;
133 return sc;
134 }
135 } else {
136 sc = theSvc->sysInitialize();
137 if ( !sc.isSuccess() ) {
138 error() << "Failure Initializing EventSelector " << theSvc->name() << endmsg;
139 return sc;
140 }
141 }
142 sc = m_evtSelector->createContext( m_evtContext );
143 if ( !sc.isSuccess() ) {
144 error() << "Can not create Context " << theSvc->name() << endmsg;
145 return sc;
146 }
147 info() << "EventSelector service changed to " << theSvc->name() << endmsg;
148 } else if ( m_evtSelector ) {
149 if ( m_evtContext ) {
150 m_evtSelector->releaseContext( m_evtContext );
151 m_evtContext = nullptr;
152 }
153 sc = m_evtSelector->createContext( m_evtContext );
154 if ( !sc.isSuccess() ) {
155 error() << "Can not create Context " << theSvc->name() << endmsg;
156 return sc;
157 }
158 }
159 } else if ( m_evtSelector && m_evtContext ) {
160 m_evtSelector->releaseContext( m_evtContext );
161 m_evtSelector = nullptr;
162 m_evtContext = nullptr;
163 }
164 return StatusCode::SUCCESS;
165 }
StatusCode::SUCCESS
Definition: StatusCode.h:29
Gaudi::StateMachine::INITIALIZED
Definition: StateMachine.h:17
PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >::setProperty
StatusCode setProperty(const Gaudi::Details::PropertyBase &p) override
set the property form another property
Definition: PropertyHolder.h:208
CommonMessagingBase::info
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
Definition: CommonMessaging.h:112
IEvtSelector
The Event Selector Interface.
Definition: IEvtSelector.h:18
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:50
IProperty::getProperty
virtual StatusCode getProperty(Gaudi::Details::PropertyBase *p) const =0
Get the property by property.
MinimalEventLoopMgr::reinitialize
StatusCode reinitialize() override
implementation of IService::reinitialize
Definition: MinimalEventLoopMgr.cpp:225
SmartIF::get
TYPE * get() const
Get interface pointer.
Definition: SmartIF.h:82
ISvcLocator::service
StatusCode service(const Gaudi::Utils::TypeNameString &name, T *&svc, bool createIf=true)
Templated method to access a service by name.
Definition: ISvcLocator.h:79
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:106
IService
General service interface definition.
Definition: IService.h:18
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
IEvtSelector::releaseContext
virtual StatusCode releaseContext(Context *&) const =0
Release the Context object.
EventLoopMgr::m_appMgrProperty
SmartIF< IProperty > m_appMgrProperty
Property interface of ApplicationMgr.
Definition: EventLoopMgr.h:61
EventLoopMgr::m_evtContext
IEvtSelector::Context * m_evtContext
Event Iterator.
Definition: EventLoopMgr.h:55
EventLoopMgr::m_evtSelector
SmartIF< IEvtSelector > m_evtSelector
Reference to the Event Selector.
Definition: EventLoopMgr.h:53
DEBMSG
#define DEBMSG
Definition: EventLoopMgr.cpp:24
EventLoopMgr::m_evtsel
Gaudi::Property< std::string > m_evtsel
Definition: EventLoopMgr.h:45
IEvtSelector::createContext
virtual StatusCode createContext(Context *&c) const =0
Create and return a context object that will keep track of the state of selection.
Service::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: Service.cpp:292
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209

StatusCode EventLoopMgr::stop | ( |  | ) |
| override

implementation of IService::stop

Definition at line 170 of file EventLoopMgr.cpp.

171 {
172 if ( !m_endEventFired ) {
173 // Fire pending EndEvent incident
174 m_incidentSvc->fireIncident( Incident( name(), IncidentType::EndEvent ) );
175 m_endEventFired = true;
176 }
177 return MinimalEventLoopMgr::stop();
178 }
Service::name
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:289
MinimalEventLoopMgr::stop
StatusCode stop() override
implementation of IService::stop
Definition: MinimalEventLoopMgr.cpp:197
IIncidentSvc::fireIncident
virtual void fireIncident(const Incident &incident)=0
Fire an Incident.
MinimalEventLoopMgr::m_incidentSvc
SmartIF< IIncidentSvc > m_incidentSvc
Reference to the incident service.
Definition: MinimalEventLoopMgr.h:47
Incident
Base class for all Incidents (computing events).
Definition: Incident.h:17
EventLoopMgr::m_endEventFired
bool m_endEventFired
Flag to avoid to fire the EnvEvent incident twice in a row (and also not before the first event) ...
Definition: EventLoopMgr.h:64

## Member Data Documentation

SmartIF<IProperty> EventLoopMgr::m_appMgrProperty = nullptr
| protected

Property interface of ApplicationMgr.

Definition at line 61 of file EventLoopMgr.h.

bool EventLoopMgr::m_endEventFired = true
| protected

Flag to avoid to fire the EnvEvent incident twice in a row (and also not before the first event)

Definition at line 64 of file EventLoopMgr.h.

IEvtSelector::Context* EventLoopMgr::m_evtContext = nullptr
| protected

Event Iterator.

Definition at line 55 of file EventLoopMgr.h.

SmartIF<IDataManagerSvc> EventLoopMgr::m_evtDataMgrSvc = nullptr
| protected

Reference to the Event Data Service's IDataManagerSvc interface.

Definition at line 49 of file EventLoopMgr.h.

SmartIF<IDataProviderSvc> EventLoopMgr::m_evtDataSvc = nullptr
| protected

Reference to the Event Data Service's IDataProviderSvc interface.

Definition at line 51 of file EventLoopMgr.h.

Gaudi::Property<std::string> EventLoopMgr::m_evtsel {this, "EvtSel", {}, "event selector"}
| protected

Definition at line 45 of file EventLoopMgr.h.

SmartIF<IEvtSelector> EventLoopMgr::m_evtSelector = nullptr
| protected

Reference to the Event Selector.

Definition at line 53 of file EventLoopMgr.h.

SmartIF<IDataManagerSvc> EventLoopMgr::m_histoDataMgrSvc = nullptr
| protected

Reference to the Histogram Data Service.

Definition at line 57 of file EventLoopMgr.h.

SmartIF<IConversionSvc> EventLoopMgr::m_histoPersSvc = nullptr
| protected

Reference to the Histogram Persistency Service.

Definition at line 59 of file EventLoopMgr.h.

Gaudi::Property<std::string> EventLoopMgr::m_histPersName {this, "HistogramPersistency", {}, "name of the Hist Pers type"}
| protected

Definition at line 44 of file EventLoopMgr.h.

Gaudi::Property<bool> EventLoopMgr::m_warnings {this, "Warnings", true, "set to false to suppress warning messages"}
| protected

Definition at line 46 of file EventLoopMgr.h.

The documentation for this class was generated from the following files:

- GaudiCoreSvc/src/ApplicationMgr/EventLoopMgr.h
- GaudiCoreSvc/src/ApplicationMgr/EventLoopMgr.cpp