7#ifndef ATHENASERVICES_ATHENAMTESEVENTLOOPMGR_H
8#define ATHENASERVICES_ATHENAMTESEVENTLOOPMGR_H
10#include "GaudiKernel/IEvtSelector.h"
11#include "Gaudi/Property.h"
12#include "GaudiKernel/ServiceHandle.h"
13#include "GaudiKernel/ToolHandle.h"
14#include "GaudiKernel/MinimalEventLoopMgr.h"
15#include "GaudiKernel/IIncidentListener.h"
16#include "GaudiKernel/IAlgResourcePool.h"
17#include "GaudiKernel/IHiveWhiteBoard.h"
18#include "GaudiKernel/IScheduler.h"
19#include "GaudiKernel/IAlgExecStateSvc.h"
32#ifndef EVENTINFO_EVENTID_H
38struct IDataManagerSvc;
39class IDataProviderSvc;
54 IHybridProcessorHelper>,
190 virtual StatusCode
finalize()
override;
192 virtual StatusCode
nextEvent(
int maxevt)
override;
196 virtual StatusCode
executeEvent( EventContext&& ctx )
override;
198 virtual StatusCode
executeRun(
int maxevt)
override;
200 virtual StatusCode
stopRun()
override;
202 virtual StatusCode
stop()
override;
206 virtual StatusCode
seek(
int evt)
override;
208 virtual int curEvent()
const override;
210 virtual int size()
override;
212 virtual void handle(
const Incident& inc)
override;
221 virtual int drainScheduler(
int& finishedEvents,
bool report)
override;
224 virtual const std::string&
name()
const override {
return Service::name(); }
249 typedef std::list<SmartIF<IAlgorithm> >
ListAlg;
281 std::unique_ptr<RangeStruct>
getNextRange(yampl::ISocket* socket);
287 ,
"EventRangeChannel"
288 ,
"EventService_EventRanges"
289 ,
"The name of the Yampl channel between AthenaMT and the Pilot"
ClearStorePolicy::Type clearStorePolicy(const std::string &policyName, MsgStream &msg)
returns the enum-version of the policy (by name)
This class provides a unique identification for each event, in terms of run/event number and/or a tim...
Abstract interface for finding the size of an event collection.
Interface for doing garbage collection of conditions objects.
Abstract interface for seeking within an event stream.
tool_stats::const_iterator tool_stats_iterator
StatusCode getEventRoot(IOpaqueAddress *&refpAddr)
Create event address using event selector.
bool m_requireInputAttributeList
require input attribute list
IEvtSelector::Context EvtContext
virtual StatusCode finalize() override
implementation of IAppMgrUI::finalize
virtual EventContext createEventContext() override
implementation of IEventProcessor::createEventContext()
virtual void resetAppReturnCode() override
Reset the application return code.
virtual StatusCode executeEvent(EventContext &&ctx) override
implementation of IEventProcessor::executeEvent(void* par)
tool_store::const_iterator tool_iterator
virtual int curEvent() const override
Return the current event count.
StringProperty m_histPersName
ServiceHandle< OutputStreamSequencerSvc > m_outSeqSvc
SmartIF< IIncidentListener > m_abortEventListener
Instance of the incident listener waiting for AbortEvent.
SmartIF< IScheduler > m_schedulerSvc
A shortcut for the scheduler.
void setClearStorePolicy(Gaudi::Details::PropertyBase &clearStorePolicy)
property update handler:set the clear-store policy value and check its value.
IntegerProperty m_failureMode
unsigned int m_timeStampInt
virtual StatusCode executeAlgorithms()
Run the algorithms for the current event.
std::unique_ptr< yampl::ISocket > m_socket
IAthenaEvtLoopPreSelectTool tool_type
ServiceHandle< Athena::IConditionsCleanerSvc > m_conditionsCleaner
std::unique_ptr< RangeStruct > getNextRange(yampl::ISocket *socket)
std::vector< unsigned int > tool_stats
virtual bool terminateLoop() override
tool_stats m_toolReject
tool returns StatusCode::FAILURE counter
UnsignedIntegerProperty m_eventPrintoutInterval
tool_stats m_toolAccept
tool returns StatusCode::SUCCESS counter
virtual StatusCode executeRun(int maxevt) override
implementation of IEventProcessor::executeRun(int maxevt)
number_type m_currentRun
current run number
AthenaMtesEventLoopMgr()=delete
void modifyEventContext(EventContext &ctx, const EventID &eID, bool consume_modifier_stream)
tool_store m_tools
internal tool store
virtual const std::string & name() const override
unsigned int m_nev
events processed
AthenaMtesEventLoopMgr & operator=(const AthenaMtesEventLoopMgr &)=delete
virtual StatusCode initialize() override
implementation of IAppMgrUI::initalize
SmartIF< IAlgResourcePool > m_algResourcePool
Reference to the Algorithm resource pool.
IEvtIdModifierSvc_t m_evtIdModSvc
ServiceHandle< IIncidentSvc > IIncidentSvc_t
virtual StatusCode writeHistograms(bool force=false)
Dump out histograms as needed.
SmartIF< IHiveWhiteBoard > m_whiteboard
Reference to the Whiteboard interface.
virtual ~AthenaMtesEventLoopMgr()
Standard Destructor.
StatusCode initializeAlgorithms()
Initialize all algorithms and output streams.
SmartIF< IAlgExecStateSvc > m_aess
Reference to the Algorithm Execution State Svc.
AthenaMtesEventLoopMgr(const AthenaMtesEventLoopMgr &)=delete
tool_stats m_toolInvoke
tool called counter
virtual int drainScheduler(int &finishedEvents, bool report) override
Drain the scheduler from all actions that may be queued.
bool m_useSecondaryEventNumber
read event number from secondary input
virtual StatusCode nextEvent(int maxevt) override
implementation of IAppMgrUI::nextEvent. maxevt==0 returns immediately
EvtContext * m_evtContext
Gaudi event selector Context (may be used as a cursor by the evt selector)
std::list< SmartIF< IAlgorithm > > ListAlg
StatusCode clearWBSlot(int evtSlot)
Clear a slot in the WB.
std::string m_whiteboardName
Name of the Whiteboard to be used.
int declareEventRootAddress(EventContext &)
Declare the root address of the event.
bool m_scheduledStop
Scheduled stop of event processing.
virtual StatusCode seek(int evt) override
Seek to a given event.
virtual StatusCode stop() override
implementation of IService::stop
std::string m_schedulerName
Name of the scheduler to be used.
StringArrayProperty m_testPilotMessages
IDataManagerSvc_t m_histoDataMgrSvc
Reference to the Histogram Data Service.
ServiceHandle< StoreGateSvc > StoreGateSvc_t
StoreGateSvc_t m_eventStore
Reference to StoreGateSvc;.
ToolHandleArray< tool_type > tool_store
virtual int size() override
Return the size of the collection.
Gaudi::Property< std::string > m_eventRangeChannel
StringProperty m_clearStorePolicy
SmartIF< IProperty > m_appMgrProperty
Property interface of ApplicationMgr.
EventContext m_lastEventContext
virtual void setCurrentEventNum(int num) override
AthenaMtesEventLoopMgr(const std::string &nam, ISvcLocator *svcLoc)
Standard Constructor.
ServiceHandle< IConversionSvc > IConversionSvc_t
IConversionSvc_t m_histoPersSvc
ServiceHandle< IEvtIdModifierSvc > IEvtIdModifierSvc_t
virtual StatusCode stopRun() override
implementation of IEventProcessor::stopRun()
void setupPreSelectTools(Gaudi::Details::PropertyBase &)
property update handler:sets up the Pre-selection tools
EventID::number_type number_type
IIncidentSvc_t m_incidentSvc
Reference to the incident service.
StoreGateSvc * eventStore() const
ServiceHandle< IDataManagerSvc > IDataManagerSvc_t
void trimRangeStrings(std::string &str)
UnsignedIntegerProperty m_writeInterval
virtual void handle(const Incident &inc) override
IIncidentListenet interfaces.
IEvtSelector * m_evtSelector
Reference to the Event Selector.
Class to modify timeout flag.
This class provides a unique identification for each event, in terms of run/event number and/or a tim...
EventIDBase::number_type number_type
This class provides configuration properties to enable OutputStream file sequences.
The Athena Transient Store API.