ATLAS Offline Software
MultipleEventLoopMgr.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ATHENASERVICES_MULTIPLEEVENTLOOPMGR_H
6 #define ATHENASERVICES_MULTIPLEEVENTLOOPMGR_H
7 
14 ATLAS_NO_CHECK_FILE_THREAD_SAFETY; // non-MT EventLoopMgr
15 
16 #include <string>
17 
18 #include "Gaudi/Property.h"
19 #include "GaudiKernel/ServiceHandle.h"
20 #include "GaudiKernel/StatusCode.h"
21 #include "AthenaEventLoopMgr.h"
22 
23 // Forward declarations
24 class IAlgManager;
25 class INextPassFilter;
26 class IToolSvc;
27 class ISvcLocator;
28 template <class TYPE> class SvcFactory;
29 
44 public:
45 
47  MultipleEventLoopMgr(const std::string& nam, ISvcLocator* svcLoc);
48 
50  virtual ~MultipleEventLoopMgr();
51 
53  //INH virtual StatusCode writeHistograms(bool force=false);
54 
56  //INH virtual StatusCode executeAlgorithms();
57 
58 public:
60  //INH virtual StatusCode initialize();
62  //INH virtual StatusCode finalize();
64  virtual StatusCode nextEvent(int maxevt);
66  //INH virtual StatusCode executeEvent(void* par);
67  // Seek to a given event.
68  //INH virtual StatusCode seek(int evt);
69  // Return the current event count.
70  //INH virtual int curEvent();
71 
72 private:
75 
77 
78  StringProperty m_nextPassFilterName;
80 
82  StringArrayProperty m_toBeReInitializedNames;
84 
88 
90  bool doNextPass();
91 
95 
98 
99  IAlgManager* algMgr();
100  IAlgManager* m_pAlgMgr;
101 
102  unsigned int m_passDone;
103 };
104 
105 #endif
INextPassFilter
interface to a tool (typically) that decides whether the event loop mgr (typically) need to do anothe...
Definition: INextPassFilter.h:15
AthenaEventLoopMgr
The default ATLAS batch event loop manager.
Definition: AthenaEventLoopMgr.h:66
MultipleEventLoopMgr::m_pToolSvc
ServiceHandle< IToolSvc > m_pToolSvc
handle to the ToolSvc
Definition: MultipleEventLoopMgr.h:97
AthenaEventLoopMgr.h
The default ATLAS batch event loop manager.
SvcFactory
Definition: AthCnvSvc.h:28
MultipleEventLoopMgr::algMgr
IAlgManager * algMgr()
Definition: MultipleEventLoopMgr.cxx:39
MultipleEventLoopMgr::m_nextPassFilterName
StringProperty m_nextPassFilterName
the name of the INextPassFilter object queried at end of pass
Definition: MultipleEventLoopMgr.h:79
MultipleEventLoopMgr::reInitList
StatusCode reInitList()
called at each end of pass.
Definition: MultipleEventLoopMgr.cxx:82
MultipleEventLoopMgr::nextEvent
virtual StatusCode nextEvent(int maxevt)
Dump out histograms as needed.
Definition: MultipleEventLoopMgr.cxx:93
MultipleEventLoopMgr::~MultipleEventLoopMgr
virtual ~MultipleEventLoopMgr()
Standard Destructor.
Definition: MultipleEventLoopMgr.cxx:34
MultipleEventLoopMgr::nextPassFilter
INextPassFilter * nextPassFilter()
Locate filter.
Definition: MultipleEventLoopMgr.cxx:50
MultipleEventLoopMgr::m_pAlgMgr
IAlgManager * m_pAlgMgr
Definition: MultipleEventLoopMgr.h:100
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
MultipleEventLoopMgr::MultipleEventLoopMgr
MultipleEventLoopMgr(const MultipleEventLoopMgr &)
no implementation
MultipleEventLoopMgr
A specialized AthenaEventLoopMgr that allows multiple passes over an event collection.
Definition: MultipleEventLoopMgr.h:43
MultipleEventLoopMgr::m_toBeReInitializedNames
StringArrayProperty m_toBeReInitializedNames
a list of services to be reinit at the end of the pass
Definition: MultipleEventLoopMgr.h:82
MultipleEventLoopMgr::MultipleEventLoopMgr
MultipleEventLoopMgr()
implementation of IEventProcessor::executeEvent(void* par)
MultipleEventLoopMgr::m_passDone
unsigned int m_passDone
number of passes already completed
Definition: MultipleEventLoopMgr.h:102
checker_macros.h
Define macros for attributes used to control the static checker.
ATLAS_NO_CHECK_FILE_THREAD_SAFETY
ATLAS_NO_CHECK_FILE_THREAD_SAFETY
Definition: MultipleEventLoopMgr.h:14
MultipleEventLoopMgr::doNextPass
bool doNextPass()
called at end of pass. Calls nextPassFilter
Definition: MultipleEventLoopMgr.cxx:75
ServiceHandle< IToolSvc >