Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
MultipleEventLoopMgr.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ATHENASERVICES_MULTIPLEEVENTLOOPMGR_H
6 #define ATHENASERVICES_MULTIPLEEVENTLOOPMGR_H
7 
13 #include <string>
14 
15 #include "Gaudi/Property.h"
16 #include "GaudiKernel/ServiceHandle.h"
17 #include "GaudiKernel/StatusCode.h"
18 #include "AthenaEventLoopMgr.h"
19 
20 // Forward declarations
21 class IAlgManager;
22 class INextPassFilter;
23 class IToolSvc;
24 class ISvcLocator;
25 template <class TYPE> class SvcFactory;
26 
41 public:
42 
44  MultipleEventLoopMgr(const std::string& nam, ISvcLocator* svcLoc);
45 
47  virtual ~MultipleEventLoopMgr();
48 
50  //INH virtual StatusCode writeHistograms(bool force=false);
51 
53  //INH virtual StatusCode executeAlgorithms();
54 
55 public:
57  //INH virtual StatusCode initialize();
59  //INH virtual StatusCode finalize();
61  virtual StatusCode nextEvent(int maxevt);
63  //INH virtual StatusCode executeEvent(void* par);
64  // Seek to a given event.
65  //INH virtual StatusCode seek(int evt);
66  // Return the current event count.
67  //INH virtual int curEvent();
68 
69 private:
72 
74 
75  StringProperty m_nextPassFilterName;
77 
79  StringArrayProperty m_toBeReInitializedNames;
81 
85 
87  bool doNextPass();
88 
92 
95 
96  IAlgManager* algMgr();
97  IAlgManager* m_pAlgMgr;
98 
99  unsigned int m_passDone;
100 };
101 
102 #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:63
MultipleEventLoopMgr::m_pToolSvc
ServiceHandle< IToolSvc > m_pToolSvc
handle to the ToolSvc
Definition: MultipleEventLoopMgr.h:94
AthenaEventLoopMgr.h
The default ATLAS batch event loop manager.
SvcFactory
Definition: AthCnvSvc.h:28
MultipleEventLoopMgr::algMgr
IAlgManager * algMgr()
Definition: MultipleEventLoopMgr.cxx:36
MultipleEventLoopMgr::m_nextPassFilterName
StringProperty m_nextPassFilterName
the name of the INextPassFilter object queried at end of pass
Definition: MultipleEventLoopMgr.h:76
MultipleEventLoopMgr::reInitList
StatusCode reInitList()
called at each end of pass.
Definition: MultipleEventLoopMgr.cxx:79
MultipleEventLoopMgr::nextEvent
virtual StatusCode nextEvent(int maxevt)
Dump out histograms as needed.
Definition: MultipleEventLoopMgr.cxx:90
MultipleEventLoopMgr::~MultipleEventLoopMgr
virtual ~MultipleEventLoopMgr()
Standard Destructor.
Definition: MultipleEventLoopMgr.cxx:31
MultipleEventLoopMgr::nextPassFilter
INextPassFilter * nextPassFilter()
Locate filter.
Definition: MultipleEventLoopMgr.cxx:47
MultipleEventLoopMgr::m_pAlgMgr
IAlgManager * m_pAlgMgr
Definition: MultipleEventLoopMgr.h:97
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:40
MultipleEventLoopMgr::m_toBeReInitializedNames
StringArrayProperty m_toBeReInitializedNames
a list of services to be reinit at the end of the pass
Definition: MultipleEventLoopMgr.h:79
MultipleEventLoopMgr::MultipleEventLoopMgr
MultipleEventLoopMgr()
implementation of IEventProcessor::executeEvent(void* par)
MultipleEventLoopMgr::m_passDone
unsigned int m_passDone
number of passes already completed
Definition: MultipleEventLoopMgr.h:99
MultipleEventLoopMgr::doNextPass
bool doNextPass()
called at end of pass. Calls nextPassFilter
Definition: MultipleEventLoopMgr.cxx:72
ServiceHandle< IToolSvc >