![]() |
The Gaudi Framework
v27r1
|
#include <GaudiAlg/Sequencer.h>
Public Member Functions | |
Sequencer (const std::string &name, ISvcLocator *svcloc) | |
Constructor(s) More... | |
~Sequencer () override=default | |
Destructor. More... | |
StatusCode | initialize () override |
Initialization of a sequencer. More... | |
StatusCode | reinitialize () override |
Sequencer Reinitialization. More... | |
StatusCode | start () override |
Sequencer finalization. More... | |
StatusCode | execute () override |
The actions to be performed by the sequencer on an event. More... | |
StatusCode | stop () override |
Sequencer finalization. More... | |
StatusCode | finalize () override |
Sequencer finalization. More... | |
StatusCode | beginRun () override |
Sequencer beginRun. More... | |
StatusCode | endRun () override |
Sequencer endRun. More... | |
void | resetExecuted () override |
Reset the Sequencer executed state for the current event. More... | |
virtual bool | branchFilterPassed () const |
additional interface methods More... | |
virtual StatusCode | setBranchFilterPassed (bool state) |
Set the branch filter passed flag for the last event. More... | |
virtual bool | isStopOverride () const |
Has the StopOverride mode been set? More... | |
StatusCode | append (Algorithm *pAlgorithm) |
Append an algorithm to the sequencer. More... | |
StatusCode | appendToBranch (Algorithm *pAlgorithm) |
Append an algorithm to the sequencer branch. More... | |
StatusCode | createAndAppend (const std::string &type, const std::string &name, Algorithm *&pAlgorithm) |
Create a algorithm and append it to the sequencer. More... | |
StatusCode | createAndAppendToBranch (const std::string &type, const std::string &name, Algorithm *&pAlgorithm) |
Create a algorithm and append it to the sequencer branch. More... | |
StatusCode | remove (Algorithm *pAlgorithm) |
Remove the specified algorithm from the sequencer. More... | |
StatusCode | remove (const std::string &name) |
StatusCode | removeFromBranch (Algorithm *pAlgorithm) |
StatusCode | removeFromBranch (const std::string &name) |
const std::vector< Algorithm * > & | branchAlgorithms () const |
List of branch algorithms. More... | |
std::vector< Algorithm * > & | branchAlgorithms () |
StatusCode | decodeMemberNames () |
Decode Member Name list. More... | |
void | membershipHandler (Property &theProp) |
"Members" property handler More... | |
StatusCode | decodeBranchMemberNames () |
Decode branch member name list. More... | |
void | branchMembershipHandler (Property &theProp) |
"BranchMembers" property handler More... | |
![]() | |
Algorithm (const std::string &name, ISvcLocator *svcloc, const std::string &version=PACKAGE_VERSION) | |
Constructor. More... | |
~Algorithm () override=default | |
Destructor. More... | |
StatusCode | sysStart () override |
Reinitialization method invoked by the framework. More... | |
StatusCode | sysInitialize () override |
Initialization method invoked by the framework. More... | |
StatusCode | sysReinitialize () override |
Reinitialization method invoked by the framework. More... | |
StatusCode | sysRestart () override |
Restart method invoked by the framework. More... | |
StatusCode | sysExecute () override |
The actions to be performed by the algorithm on an event. More... | |
StatusCode | sysStop () override |
System stop. More... | |
StatusCode | sysFinalize () override |
System finalization. More... | |
StatusCode | sysBeginRun () override |
beginRun method invoked by the framework. More... | |
StatusCode | sysEndRun () override |
endRun method invoked by the framework. More... | |
const std::string & | name () const override |
The identifying name of the algorithm object. More... | |
const Gaudi::StringKey & | nameKey () const override |
const std::string & | type () const override |
The type of the algorithm object. More... | |
void | setType (const std::string &type) override |
const std::string & | version () const override |
unsigned int | index () const override |
StatusCode | configure () override |
Dummy implementation of IStateful::configure() method. More... | |
StatusCode | terminate () override |
Dummy implementation of IStateful::terminate() method. More... | |
StatusCode | initialize () override |
the default (empty) implementation of IStateful::initialize() method More... | |
StatusCode | start () override |
the default (empty) implementation of IStateful::start() method More... | |
StatusCode | stop () override |
the default (empty) implementation of IStateful::stop() method More... | |
StatusCode | finalize () override |
the default (empty) implementation of IStateful::finalize() method More... | |
StatusCode | reinitialize () override |
the default (empty) implementation of IStateful::reinitialize() method More... | |
StatusCode | restart () override |
the default (empty) implementation of IStateful::restart() method More... | |
Gaudi::StateMachine::State | FSMState () const override |
returns the current state of the algorithm More... | |
Gaudi::StateMachine::State | targetFSMState () const override |
returns the state the algorithm will be in after the ongoing transition More... | |
bool | isExecuted () const override |
Has this algorithm been executed since the last reset? More... | |
void | setExecuted (bool state) override |
Set the executed flag to the specified state. More... | |
void | resetExecuted () override |
Reset the executed state of the Algorithm for the duration of the current event. More... | |
StatusCode | beginRun () override |
Algorithm begin run. More... | |
StatusCode | endRun () override |
Algorithm end run. This method is called at the end of the event loop. More... | |
bool | isEnabled () const override |
Is this algorithm enabled or disabled? More... | |
bool | filterPassed () const override |
Did this algorithm pass or fail its filter criterion for the last event? More... | |
void | setFilterPassed (bool state) override |
Set the filter passed flag to the specified state. More... | |
int | errorCount () const |
Get the number of failures of the algorithm. More... | |
template<class T > | |
StatusCode | service (const std::string &name, T *&psvc, bool createIf=true) const |
Access a service by name, creating it if it doesn't already exist. More... | |
template<class T > | |
StatusCode | service (const std::string &svcType, const std::string &svcName, T *&psvc) const |
Access a service by name and type, creating it if it doesn't already exist. More... | |
SmartIF< IService > | service (const std::string &name, const bool createIf=true, const bool quiet=false) const |
Return a pointer to the service identified by name (or "type/name") More... | |
template<class T > | |
SmartIF< T > | service (const std::string &name, bool createIf=true, bool quiet=false) const |
SmartIF< IAuditorSvc > & | auditorSvc () const |
The standard auditor service.May not be invoked before sysInitialize() has been invoked. More... | |
SmartIF< IChronoStatSvc > & | chronoSvc () const |
The standard Chrono & Stat service, Return a pointer to the service if present. More... | |
SmartIF< IChronoStatSvc > & | chronoStatService () const |
Obsoleted name, kept due to the backwards compatibility. More... | |
SmartIF< IDataProviderSvc > & | detSvc () const |
The standard detector data service. More... | |
SmartIF< IDataProviderSvc > & | detDataService () const |
Obsoleted name, kept due to the backwards compatibility. More... | |
SmartIF< IConversionSvc > & | detCnvSvc () const |
The standard detector data persistency conversion service. More... | |
SmartIF< IConversionSvc > & | detDataCnvService () const |
Obsoleted name, kept due to the backwards compatibility. More... | |
SmartIF< IDataProviderSvc > & | eventSvc () const |
The standard event data service. More... | |
SmartIF< IDataProviderSvc > & | evtSvc () const |
shortcut for method eventSvc More... | |
SmartIF< IDataProviderSvc > & | eventDataService () const |
Obsoleted name, kept due to the backwards compatibility. More... | |
SmartIF< IConversionSvc > & | eventCnvSvc () const |
The standard event data persistency conversion service. More... | |
SmartIF< IConversionSvc > & | eventDataCnvService () const |
Obsoleted name, kept due to the backwards compatibility. More... | |
SmartIF< IHistogramSvc > & | histoSvc () const |
The standard histogram service. More... | |
SmartIF< IHistogramSvc > & | histogramDataService () const |
Obsoleted name, kept due to the backwards compatibility. More... | |
SmartIF< INTupleSvc > & | ntupleSvc () const |
The standard N tuple service. More... | |
SmartIF< INTupleSvc > & | ntupleService () const |
Obsoleted name, kept due to the backwards compatibility. More... | |
SmartIF< IRndmGenSvc > & | randSvc () const |
AIDA-based NTuple service Returns a pointer to the AIDATuple service if present. More... | |
SmartIF< IToolSvc > & | toolSvc () const |
The standard ToolSvc service, Return a pointer to the service if present. More... | |
SmartIF< IExceptionSvc > & | exceptionSvc () const |
Get the exception Service. More... | |
SmartIF< IAlgContextSvc > & | contextSvc () const |
get Algorithm Context Service More... | |
SmartIF< ITimelineSvc > & | timelineSvc () const |
SmartIF< ISvcLocator > & | serviceLocator () const override |
The standard service locator. More... | |
SmartIF< ISvcLocator > & | svcLoc () const |
shortcut for method serviceLocator More... | |
SmartIF< IHiveWhiteBoard > & | whiteboard () const |
bool | registerContext () const |
register for Algorithm Context Service? More... | |
StatusCode | createSubAlgorithm (const std::string &type, const std::string &name, Algorithm *&pSubAlg) |
Create a sub algorithm. More... | |
const std::vector< Algorithm * > * | subAlgorithms () const |
List of sub-algorithms. Returns a pointer to a vector of (sub) Algorithms. More... | |
std::vector< Algorithm * > * | subAlgorithms () |
List of sub-algorithms. Returns a pointer to a vector of (sub) Algorithms. More... | |
StatusCode | setProperty (const Property &p) override |
Implementation of IProperty::setProperty. More... | |
StatusCode | setProperty (const std::string &s) override |
Implementation of IProperty::setProperty. More... | |
StatusCode | setProperty (const std::string &n, const std::string &v) override |
Implementation of IProperty::setProperty. More... | |
StatusCode | getProperty (Property *p) const override |
Implementation of IProperty::getProperty. More... | |
const Property & | getProperty (const std::string &name) const override |
Implementation of IProperty::getProperty. More... | |
StatusCode | getProperty (const std::string &n, std::string &v) const override |
Implementation of IProperty::getProperty. More... | |
const std::vector< Property * > & | getProperties () const override |
Implementation of IProperty::getProperties. More... | |
bool | hasProperty (const std::string &name) const override |
Implementation of IProperty::hasProperty. More... | |
PropertyMgr * | getPropertyMgr () |
StatusCode | setProperties () |
Set the algorithm's properties. More... | |
template<class T > | |
Property * | declareProperty (const std::string &name, T &property, const std::string &doc="none") const |
Declare the named property. More... | |
Property * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const |
Declare remote named properties. More... | |
template<class T > | |
Property * | declareProperty (const std::string &name, ToolHandle< T > &hndl, const std::string &doc="none") const |
template<class T > | |
Property * | declareProperty (const std::string &name, ToolHandleArray< T > &hndlArr, const std::string &doc="none") const |
SmartIF< IMonitorSvc > & | monitorSvc () const |
Access the monitor service. More... | |
template<class T > | |
void | declareInfo (const std::string &name, const T &var, const std::string &desc) const |
Declare monitoring information. More... | |
void | declareInfo (const std::string &name, const std::string &format, const void *var, int size, const std::string &desc) const |
Declare monitoring information (special case) More... | |
template<class TYPE > | |
StatusCode | setProperty (const std::string &name, const TYPE &value) |
set the property form the value More... | |
EventContext * | getContext () const |
get the context More... | |
void | setContext (EventContext *context) |
set the context More... | |
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
virtual const DataObjIDColl & | extraInputDeps () const override |
virtual const DataObjIDColl & | extraOutputDeps () const override |
virtual void | acceptDHVisitor (IDataHandleVisitor *) const override |
const DataObjIDColl & | inputDataObjs () const |
const DataObjIDColl & | outputDataObjs () const |
void | commitHandles () override |
void | registerTool (IAlgTool *tool) const |
void | deregisterTool (IAlgTool *tool) const |
template<class T > | |
StatusCode | declareTool (ToolHandle< T > &handle, std::string toolTypeAndName="", bool createIf=true) |
const std::vector< IAlgTool * > & | tools () const |
bool | isClonable () const override |
Specifies the clonability of the algorithm. More... | |
unsigned int | cardinality () const override |
Return the cardinality. More... | |
const std::vector< std::string > & | neededResources () const override |
![]() | |
virtual | ~CommonMessagingBase ()=default |
Virtual destructor. More... | |
SmartIF< IMessageSvc > & | msgSvc () const |
The standard message service. More... | |
MsgStream & | msgStream () const |
Return an uninitialized MsgStream. More... | |
MsgStream & | msgStream (const MSG::Level level) const |
Predefined configurable message stream for the efficient printouts. More... | |
MsgStream & | always () const |
shortcut for the method msgStream(MSG::ALWAYS) More... | |
MsgStream & | fatal () const |
shortcut for the method msgStream(MSG::FATAL) More... | |
MsgStream & | err () const |
shortcut for the method msgStream(MSG::ERROR) More... | |
MsgStream & | error () const |
shortcut for the method msgStream(MSG::ERROR) More... | |
MsgStream & | warning () const |
shortcut for the method msgStream(MSG::WARNING) More... | |
MsgStream & | info () const |
shortcut for the method msgStream(MSG::INFO) More... | |
MsgStream & | debug () const |
shortcut for the method msgStream(MSG::DEBUG) More... | |
MsgStream & | verbose () const |
shortcut for the method msgStream(MSG::VERBOSE) More... | |
MsgStream & | msg () const |
shortcut for the method msgStream(MSG::INFO) More... | |
MSG::Level | msgLevel () const |
get the output level from the embedded MsgStream More... | |
MSG::Level | outputLevel () const __attribute__((deprecated)) |
Backward compatibility function for getting the output level. More... | |
bool | msgLevel (MSG::Level lvl) const |
get the output level from the embedded MsgStream More... | |
Protected Member Functions | |
StatusCode | append (Algorithm *pAlgorithm, std::vector< Algorithm * > &theAlgs) |
Append an algorithm to the sequencer. More... | |
StatusCode | createAndAppend (const std::string &type, const std::string &name, Algorithm *&pAlgorithm, std::vector< Algorithm * > &theAlgs) |
Create a algorithm and append it to the sequencer. More... | |
StatusCode | decodeNames (StringArrayProperty &theNames, std::vector< Algorithm * > &theAlgs, std::vector< bool > &theLogic) |
Decode algorithm names, creating or appending algorithms as appropriate. More... | |
StatusCode | execute (const std::vector< Algorithm * > &theAlgs, std::vector< bool > &theLogic, Algorithm *&lastAlgorithm, unsigned int first=0) |
Execute the members in the specified list. More... | |
StatusCode | executeMember (Algorithm *theAlgorithm) |
Execute member algorithm. More... | |
StatusCode | remove (const std::string &algname, std::vector< Algorithm * > &theAlgs) |
Remove the specified algorithm from the sequencer. More... | |
Sequencer (const Sequencer &a)=delete | |
Sequencer & | operator= (const Sequencer &rhs)=delete |
![]() | |
virtual void | declareInput (Gaudi::DataHandle *im) override |
virtual void | declareOutput (Gaudi::DataHandle *im) override |
std::vector< IAlgTool * > & | tools () |
bool | isInitialized () const override |
Has the Algorithm already been initialized? More... | |
bool | isFinalized () const override |
Has the Algorithm already been finalized? More... | |
void | setIndex (const unsigned int &idx) override |
set instantiation index of Alg More... | |
![]() | |
void | updateMsgStreamOutputLevel (int level) |
Update the output level of the cached MsgStream. More... | |
Private Attributes | |
StringArrayProperty | m_names |
std::vector< bool > | m_isInverted |
StringArrayProperty | m_branchNames |
std::vector< Algorithm * > | m_branchAlgs |
std::vector< bool > | m_isBranchInverted |
BooleanProperty | m_stopOverride |
bool | m_branchFilterPassed = false |
Additional Inherited Members | |
![]() | |
typedef Gaudi::PluginService::Factory< IAlgorithm *, const std::string &, ISvcLocator * > | Factory |
![]() | |
using | base_class = CommonMessaging |
![]() | |
EventContext * | m_event_context |
Event specific data for multiple event processing. More... | |
SmartIF< PropertyMgr > | m_propertyMgr |
For management of properties. More... | |
std::unique_ptr< IDataHandleVisitor > | m_updateDataHandles |
Hook for for derived classes to provide a custom visitor for data handles. More... | |
ClassName: Sequencer.
Description: A Sequencer is essentially a list of Algorithms and is responsible for their management. Note that Sequences may themselves contain other Sequences. The default execute( ) implementation loops over the members of the sequence, calling their execute( ) methods. However, this can be modified if a member is disabled, has already been executed, or a member indicates that it's filter fails. The the former two cases the execution of the member is bypassed. In the latter case, the loop is terminated and the Sequencer assumes the same filtered state as the last member.
Definition at line 23 of file Sequencer.h.
Sequencer::Sequencer | ( | const std::string & | name, |
ISvcLocator * | svcloc | ||
) |
Constructor(s)
Definition at line 20 of file Sequencer.cpp.
|
overridedefault |
Destructor.
|
protecteddelete |
StatusCode Sequencer::append | ( | Algorithm * | pAlgorithm | ) |
Append an algorithm to the sequencer.
Definition at line 324 of file Sequencer.cpp.
|
protected |
Append an algorithm to the sequencer.
Protected Member Functions.
Definition at line 420 of file Sequencer.cpp.
StatusCode Sequencer::appendToBranch | ( | Algorithm * | pAlgorithm | ) |
Append an algorithm to the sequencer branch.
Definition at line 330 of file Sequencer.cpp.
|
override |
Sequencer beginRun.
Definition at line 207 of file Sequencer.cpp.
const std::vector< Algorithm * > & Sequencer::branchAlgorithms | ( | ) | const |
List of branch algorithms.
These are the algorithms that would get executed if a filter algorithm indicated a failure. The branch is located within the main sequence by the first element, which is the filter algorithm.
Definition at line 376 of file Sequencer.cpp.
std::vector< Algorithm * > & Sequencer::branchAlgorithms | ( | ) |
Definition at line 381 of file Sequencer.cpp.
|
virtual |
additional interface methods
Was the branch filter passed for the last event?
Definition at line 305 of file Sequencer.cpp.
void Sequencer::branchMembershipHandler | ( | Property & | theProp | ) |
"BranchMembers" property handler
Definition at line 410 of file Sequencer.cpp.
StatusCode Sequencer::createAndAppend | ( | const std::string & | type, |
const std::string & | name, | ||
Algorithm *& | pAlgorithm | ||
) |
Create a algorithm and append it to the sequencer.
A call to this method creates a child algorithm object. Note that the returned pointer is to Algorithm (as opposed to IAlgorithm), and thus the methods of IProperty are also available for the direct setting of the algorithm's properties. Using this mechanism instead of creating algorithms directly via the new operator is preferred since then the framework may take care of all of the necessary book-keeping.
Definition at line 336 of file Sequencer.cpp.
|
protected |
Create a algorithm and append it to the sequencer.
A call to this method creates a child algorithm object. Note that the returned pointer is to Algorithm (as opposed to IAlgorithm), and thus the methods of IProperty are also available for the direct setting of the algorithm's properties. Using this mechanism instead of creating algorithms directly via the new operator is preferred since then the framework may take care of all of the necessary book-keeping.
Definition at line 433 of file Sequencer.cpp.
StatusCode Sequencer::createAndAppendToBranch | ( | const std::string & | type, |
const std::string & | name, | ||
Algorithm *& | pAlgorithm | ||
) |
Create a algorithm and append it to the sequencer branch.
A call to this method creates a child algorithm object. Note that the returned pointer is to Algorithm (as opposed to IAlgorithm), and thus the methods of IProperty are also available for the direct setting of the algorithm's properties. Using this mechanism instead of creating algorithms directly via the new operator is preferred since then the framework may take care of all of the necessary book-keeping.
Definition at line 344 of file Sequencer.cpp.
StatusCode Sequencer::decodeBranchMemberNames | ( | ) |
Decode branch member name list.
Definition at line 401 of file Sequencer.cpp.
StatusCode Sequencer::decodeMemberNames | ( | ) |
Decode Member Name list.
Definition at line 386 of file Sequencer.cpp.
|
protected |
Decode algorithm names, creating or appending algorithms as appropriate.
Definition at line 457 of file Sequencer.cpp.
|
override |
Sequencer endRun.
Definition at line 268 of file Sequencer.cpp.
|
override |
The actions to be performed by the sequencer on an event.
This method is invoked once per event.
Definition at line 96 of file Sequencer.cpp.
|
protected |
Execute the members in the specified list.
Definition at line 563 of file Sequencer.cpp.
|
protected |
Execute member algorithm.
Definition at line 601 of file Sequencer.cpp.
|
override |
Sequencer finalization.
Definition at line 143 of file Sequencer.cpp.
|
override |
Initialization of a sequencer.
Typically things like histogram creation, setting up of data structures etc, should be done here. If a sequence has properties specified in the job options file, they will be set to the requested values BEFORE the initialize() method is invoked.
Definition at line 35 of file Sequencer.cpp.
|
virtual |
void Sequencer::membershipHandler | ( | Property & | theProp | ) |
"Members" property handler
Definition at line 395 of file Sequencer.cpp.
|
override |
Sequencer Reinitialization.
Definition at line 73 of file Sequencer.cpp.
StatusCode Sequencer::remove | ( | Algorithm * | pAlgorithm | ) |
Remove the specified algorithm from the sequencer.
Definition at line 352 of file Sequencer.cpp.
StatusCode Sequencer::remove | ( | const std::string & | name | ) |
Definition at line 358 of file Sequencer.cpp.
|
protected |
Remove the specified algorithm from the sequencer.
Definition at line 617 of file Sequencer.cpp.
StatusCode Sequencer::removeFromBranch | ( | Algorithm * | pAlgorithm | ) |
Definition at line 364 of file Sequencer.cpp.
StatusCode Sequencer::removeFromBranch | ( | const std::string & | name | ) |
Definition at line 370 of file Sequencer.cpp.
|
override |
Reset the Sequencer executed state for the current event.
Definition at line 288 of file Sequencer.cpp.
|
virtual |
Set the branch filter passed flag for the last event.
Definition at line 311 of file Sequencer.cpp.
|
override |
Sequencer finalization.
Definition at line 158 of file Sequencer.cpp.
|
override |
Sequencer finalization.
Definition at line 185 of file Sequencer.cpp.
|
private |
Definition at line 242 of file Sequencer.h.
|
private |
Definition at line 245 of file Sequencer.h.
|
private |
Definition at line 241 of file Sequencer.h.
|
private |
Definition at line 243 of file Sequencer.h.
|
private |
Definition at line 240 of file Sequencer.h.
|
private |
Definition at line 239 of file Sequencer.h.
|
private |
Definition at line 244 of file Sequencer.h.