5 #include <unordered_map> 43 return MsgStream( messageSvc,
"HLTExecutionTask" );
55 using extends::extends;
IAlgExecStateSvc * m_aess
unsigned int algname2index(const std::string &algoname)
Convert a name to an integer.
std::vector< IAlgorithm * > m_algos
Vector of algorithms to run for every event.
Definition of the MsgStream class used to transmit messages.
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
IConversionSvc * m_histoPersSvc
Reference to the Histogram Persistency Service.
std::vector< IAlgorithm * > & m_algorithms
std::mutex m_createEventMutex
mutex assoiciated with m_createEventCond condition variable
Implementation of property with value of concrete type.
StatusCode eventFailed(EventContext *eventContext)
Method to check if an event failed and take appropriate actions.
The Event Selector Interface.
StatusCode finalize() override
implementation of IService::finalize
HLTExecutionTask(std::vector< IAlgorithm * > &algorithms, std::unique_ptr< EventContext > ctx, ISvcLocator *svcLocator, IAlgExecStateSvc *aem, std::function< void(std::unique_ptr< EventContext >)> promote2ExecutedClosure)
Abstract interface for a service that manages tasks' precedence.
std::condition_variable m_createEventCond
condition variable to wake up main thread when we need to create a new event
Data provider interface definition.
IDataManagerSvc * m_evtDataMgrSvc
Reference to the Event Data Service's IDataManagerSvc interface.
This class represents an entry point to all the event specific data.
std::function< void(std::unique_ptr< EventContext >)> m_promote2ExecutedClosure
GAUDI_API ISvcLocator * svcLocator()
tbb::task * execute() override
Abstract interface for a service that manages the Algorithm execution states.
This class is used for returning status codes from appropriate routines.
std::vector< EventSlot > m_eventSlots
Vector of events slots.
Gaudi::Property< std::string > m_whiteboardSvcName
IEvtSelector::Context * m_evtSelContext
event selector context
StatusCode reinitialize() override
implementation of IService::reinitialize
std::unordered_map< std::string, unsigned int > m_algname_index_map
Map to bookkeep the information necessary to the name2index conversion.
IHiveWhiteBoard * m_whiteboard
Reference to the Whiteboard.
const std::string & index2algname(unsigned int index)
Convert an integer to a name.
IDataManagerSvc * m_histoDataMgrSvc
Reference to the Histogram Data Service.
SmartIF< ISvcLocator > m_serviceLocator
Gaudi::Property< int > m_threadPoolSize
StatusCode nextEvent(int maxevt) override
implementation of IEventProcessor::nextEvent
Gaudi::Property< std::string > m_histPersName
Gaudi::Property< std::string > m_evtsel
StatusCode initialize() override
implementation of IService::initialize
Base class used to extend a class implementing other interfaces.
IEvtSelector * m_evtSelector
Reference to the Event Selector.
std::atomic< unsigned int > m_finishedEvt
atomic count of the number of finished events
StatusCode executeEvent(void *par) override
implementation of IEventProcessor::executeEvent(void* par)
void promoteToExecuted(std::unique_ptr< EventContext > eventContext)
Algorithm promotion.
std::vector< std::string > m_algname_vect
Vector to bookkeep the information necessary to the index2name conversion.
StatusCode executeRun(int maxevt) override
implementation of IEventProcessor::executeRun()
StatusCode stopRun() override
implementation of IEventProcessor::stopRun()
StatusCode declareEventRootAddress()
Declare the root address of the event.
IAlgExecStateSvc * m_algExecStateSvc
Reference to the AlgExecStateSvc.
IPrecedenceSvc * m_precSvc
A shortcut to the Precedence Service.
std::unique_ptr< EventContext > m_evtCtx