ATLAS Offline Software
MultipleEventLoopMgr.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ATHENASERVICES_MULTIPLEEVENTLOOPMGR_H
6 #define ATHENASERVICES_MULTIPLEEVENTLOOPMGR_H
7 
15 ATLAS_NO_CHECK_FILE_THREAD_SAFETY; // non-MT EventLoopMgr
16 
17 #include <string>
18 
19 #ifndef GAUDIKERNEL_PROPERTY_H
20 # include "Gaudi/Property.h"
21 #endif
22 #ifndef GAUDIKERNEL_SERVICEHANDLE_H
23 # include "GaudiKernel/ServiceHandle.h"
24 #endif
25 #ifndef GAUDIKERNEL_STATUSCODE_H
26 # include "GaudiKernel/StatusCode.h"
27 #endif
28 #ifndef ATHENASERVICES_ATHENAEVENTLOOPMGR_H
29 # include "AthenaEventLoopMgr.h"
30 #endif
31 
32 // Forward declarations
33 class IAlgManager;
34 class INextPassFilter;
35 class IToolSvc;
36 class ISvcLocator;
37 template <class TYPE> class SvcFactory;
38 
53 public:
55  friend class SvcFactory<MultipleEventLoopMgr>;
56 
58  MultipleEventLoopMgr(const std::string& nam, ISvcLocator* svcLoc);
59 
61  virtual ~MultipleEventLoopMgr();
62 
64  //INH virtual StatusCode writeHistograms(bool force=false);
65 
67  //INH virtual StatusCode executeAlgorithms();
68 
69 public:
71  //INH virtual StatusCode initialize();
73  //INH virtual StatusCode finalize();
75  virtual StatusCode nextEvent(int maxevt);
77  //INH virtual StatusCode executeEvent(void* par);
78  // Seek to a given event.
79  //INH virtual StatusCode seek(int evt);
80  // Return the current event count.
81  //INH virtual int curEvent();
82 
83 private:
86 
88 
89  StringProperty m_nextPassFilterName;
91 
93  StringArrayProperty m_toBeReInitializedNames;
95 
99 
101  bool doNextPass();
102 
106 
109 
110  IAlgManager* algMgr();
111  IAlgManager* m_pAlgMgr;
112 
113  unsigned int m_passDone;
114 };
115 
116 #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:69
MultipleEventLoopMgr::m_pToolSvc
ServiceHandle< IToolSvc > m_pToolSvc
handle to the ToolSvc
Definition: MultipleEventLoopMgr.h:108
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:90
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:97
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:111
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:52
MultipleEventLoopMgr::m_toBeReInitializedNames
StringArrayProperty m_toBeReInitializedNames
a list of services to be reinit at the end of the pass
Definition: MultipleEventLoopMgr.h:93
MultipleEventLoopMgr::MultipleEventLoopMgr
MultipleEventLoopMgr()
implementation of IEventProcessor::executeEvent(void* par)
MultipleEventLoopMgr::m_passDone
unsigned int m_passDone
number of passes already completed
Definition: MultipleEventLoopMgr.h:113
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:15
MultipleEventLoopMgr::doNextPass
bool doNextPass()
called at end of pass. Calls nextPassFilter
Definition: MultipleEventLoopMgr.cxx:75
ServiceHandle< IToolSvc >