Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
7 #include "GaudiKernel/GaudiException.h"
8 #include "GaudiKernel/TypeNameString.h"
9 #include "GaudiKernel/IAlgorithm.h"
10 #include "GaudiKernel/IAlgTool.h"
11 #include "GaudiKernel/IAlgManager.h"
12 #include "GaudiKernel/IToolSvc.h"
13 #include "GaudiKernel/MsgStream.h"
14 #include "GaudiKernel/SmartIF.h"
22 ISvcLocator* svcLoc) :
24 m_pToolSvc(
"ToolSvc", nam ),
25 m_pAlgMgr(nullptr), m_passDone(0)
38 SmartIF<IAlgManager> algMan(serviceLocator());
39 if( algMan.isValid() )
m_pAlgMgr=&*algMan;
40 else throw GaudiException(
"IAlgManager not found",
name(), StatusCode::FAILURE);
50 if (!(filterName.empty())) {
51 Gaudi::Utils::TypeNameString theFilter(filterName);
52 IAlgTool* pHoldTool(
nullptr);
53 if ( (
m_pToolSvc->retrieveTool(theFilter.type(), theFilter.name(),
54 pHoldTool)).isSuccess() ) {
58 SmartIF<IAlgorithm>& pHoldAlg =
algMgr()->algorithm(theFilter,
false);
59 if (
nullptr == pFilter && pHoldAlg) {
63 if (
nullptr == pFilter) {
64 Gaudi::Utils::TypeNameString theFilter(filterName);
66 log << MSG::WARNING <<
"Could not locate filter "
67 << theFilter.type() <<
'/' << theFilter.name() <<
endmsg;
76 return (
nullptr != pFilter && pFilter->
doNextPass() );
82 SmartIF<IService>&
svc = serviceLocator()->service(
name,
false);
84 if (!
sc.isSuccess())
return sc;
100 }
while (
sc.isSuccess() &&
103 (
sc =
seek(0)).isSuccess() );
interface to a tool (typically) that decides whether the event loop mgr (typically) need to do anothe...
The default ATLAS batch event loop manager.
ServiceHandle< IToolSvc > m_pToolSvc
handle to the ToolSvc
virtual const std::string & name() const
StringProperty m_nextPassFilterName
the name of the INextPassFilter object queried at end of pass
StatusCode reInitList()
called at each end of pass.
virtual StatusCode nextEvent(int maxevt)
Dump out histograms as needed.
number_type m_currentRun
current run number
virtual ~MultipleEventLoopMgr()
Standard Destructor.
INextPassFilter * nextPassFilter()
Locate filter.
virtual StatusCode nextEvent(int maxevt)
implementation of IAppMgrUI::nextEvent. maxevt==0 returns immediately
A specialize AthenaEventLoopMgr that allows multiple passes over an event collection.
msgSvc
Provide convenience handles for various services.
::StatusCode StatusCode
StatusCode definition for legacy code.
virtual StatusCode seek(int evt)
Seek to a given event.
AthROOTErrorHandlerSvc * svc
StringArrayProperty m_toBeReInitializedNames
a list of services to be reinit at the end of the pass
MultipleEventLoopMgr()
implementation of IEventProcessor::executeEvent(void* par)
unsigned int m_passDone
number of passes already completed
virtual bool doNextPass()=0
decide whether we need another iteration
bool doNextPass()
called at end of pass. Calls nextPassFilter