The Gaudi Framework
v25r5
|
#include <GaudiAlg/Sequencer.h>
Public Member Functions | |
Sequencer (const std::string &name, ISvcLocator *svcloc) | |
Constructor(s) More... | |
virtual | ~Sequencer () |
Destructor. More... | |
virtual StatusCode | initialize () |
Initialization of a sequencer. More... | |
virtual StatusCode | reinitialize () |
Sequencer Reinitialization. More... | |
virtual StatusCode | start () |
Sequencer finalization. More... | |
virtual StatusCode | execute () |
The actions to be performed by the sequencer on an event. More... | |
virtual StatusCode | stop () |
Sequencer finalization. More... | |
virtual StatusCode | finalize () |
Sequencer finalization. More... | |
virtual StatusCode | beginRun () |
Sequencer beginRun. More... | |
virtual StatusCode | endRun () |
Sequencer endRun. More... | |
void | resetExecuted () |
Reset the Sequencer executed state for the current event. More... | |
virtual bool | branchFilterPassed () const |
Was the branch filter passed for the last event? 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) |
std::vector< Algorithm * > * | branchAlgorithms () const |
List of branch algorithms. More... | |
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... | |
virtual | ~Algorithm () |
Destructor. More... | |
virtual StatusCode | sysStart () |
Reinitialization method invoked by the framework. More... | |
virtual StatusCode | sysInitialize () |
Initialization method invoked by the framework. More... | |
virtual StatusCode | sysReinitialize () |
Reinitialization method invoked by the framework. More... | |
virtual StatusCode | sysRestart () |
Restart method invoked by the framework. More... | |
virtual StatusCode | sysExecute () |
The actions to be performed by the algorithm on an event. More... | |
virtual StatusCode | sysStop () |
System stop. More... | |
virtual StatusCode | sysFinalize () |
System finalization. More... | |
virtual StatusCode | sysBeginRun () |
beginRun method invoked by the framework. More... | |
virtual StatusCode | sysEndRun () |
endRun method invoked by the framework. More... | |
virtual const std::string & | name () const |
The identifying name of the algorithm object. More... | |
virtual const std::string & | version () const |
The version of the algorithm. More... | |
virtual StatusCode | configure () |
Dummy implementation of IStateful::configure() method. More... | |
virtual StatusCode | terminate () |
Dummy implementation of IStateful::terminate() method. More... | |
virtual StatusCode | restart () |
the default (empty) implementation of IStateful::restart() method More... | |
virtual bool | isExecuted () const |
Has this algorithm been executed since the last reset? More... | |
virtual void | setExecuted (bool state) |
Set the executed flag to the specified state. More... | |
virtual Gaudi::StateMachine::State | FSMState () const |
returns the current state of the algorithm More... | |
virtual Gaudi::StateMachine::State | targetFSMState () const |
returns the state the algorithm will be in after the ongoing transition More... | |
virtual bool | isEnabled () const |
Is this algorithm enabled or disabled? More... | |
virtual bool | filterPassed () const |
Did this algorithm pass or fail its filter criterion for the last event? More... | |
virtual void | setFilterPassed (bool state) |
Set the filter passed flag to the specified state. 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... | |
void | setOutputLevel (int level) |
Set the output level for current algorithm. More... | |
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< IMessageSvc > & | msgSvc () const |
The standard message service. More... | |
SmartIF< IMessageSvc > & | messageService () 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< ISvcLocator > & | serviceLocator () const |
The standard service locator. More... | |
SmartIF< ISvcLocator > & | svcLoc () const |
shortcut for method serviceLocator More... | |
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... | |
std::vector< Algorithm * > * | subAlgorithms () const |
List of sub-algorithms. Returns a pointer to a vector of (sub) Algorithms. More... | |
virtual StatusCode | setProperty (const Property &p) |
Implementation of IProperty::setProperty. More... | |
virtual StatusCode | setProperty (const std::string &s) |
Implementation of IProperty::setProperty. More... | |
virtual StatusCode | setProperty (const std::string &n, const std::string &v) |
Implementation of IProperty::setProperty. More... | |
virtual StatusCode | getProperty (Property *p) const |
Implementation of IProperty::getProperty. More... | |
virtual const Property & | getProperty (const std::string &name) const |
Implementation of IProperty::getProperty. More... | |
virtual StatusCode | getProperty (const std::string &n, std::string &v) const |
Implementation of IProperty::getProperty. More... | |
virtual const std::vector < Property * > & | getProperties () const |
Implementation of IProperty::getProperties. More... | |
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... | |
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... | |
![]() | |
virtual | ~extend_interfaces3 () |
Virtual destructor. More... | |
![]() | |
DeclareInterfaceID (IAlgorithm, 4, 0) | |
InterfaceID. More... | |
![]() | |
DeclareInterfaceID (INamedInterface, 1, 0) | |
InterfaceID. More... | |
virtual | ~INamedInterface () |
Virtual destructor (always needed for abstract classes). More... | |
![]() | |
virtual void * | i_cast (const InterfaceID &) const =0 |
main cast function More... | |
virtual std::vector< std::string > | getInterfaceNames () const =0 |
Returns a vector of strings containing the names of all the implemented interfaces. More... | |
virtual unsigned long | addRef ()=0 |
Increment the reference count of Interface instance. More... | |
virtual unsigned long | release ()=0 |
Release Interface instance. More... | |
virtual unsigned long | refCount () const =0 |
Current reference count. More... | |
virtual StatusCode | queryInterface (const InterfaceID &ti, void **pp)=0 |
Set the void** to the pointer to the requested interface of the instance. More... | |
virtual | ~IInterface () |
Virtual destructor. More... | |
![]() | |
DeclareInterfaceID (IProperty, 2, 0) | |
InterfaceID. More... | |
![]() | |
DeclareInterfaceID (IStateful, 1, 0) | |
InterfaceID. More... | |
virtual | ~IStateful () |
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 (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... | |
![]() | |
bool | isInitialized () const |
Has the Algorithm already been initialized? More... | |
bool | isFinalized () const |
Has the Algorithm already been finalized? More... | |
int | outputLevel () const |
retrieve the Algorithm output level More... | |
IntegerProperty & | outputLevelProperty () |
Accessor for the Message level property. More... | |
void | initOutputLevel (Property &prop) |
callback for output level property More... | |
Private Member Functions | |
Sequencer (const Sequencer &a) | |
Private Copy constructor: NO COPY ALLOWED. More... | |
Sequencer & | operator= (const Sequencer &rhs) |
Private assignment operator: NO ASSIGNMENT ALLOWED. 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 |
Additional Inherited Members | |
![]() | |
typedef Gaudi::PluginService::Factory < IAlgorithm *, const std::string &, ISvcLocator * > | Factory |
![]() | |
typedef implements3 | base_class |
Typedef to this class. More... | |
typedef extend_interfaces3 < IAlgorithm, IProperty, IStateful > | extend_interfaces_base |
Typedef to the base of this class. More... | |
typedef extend_interfaces_base::ext_iids | interfaces |
MPL set of all the implemented interfaces. More... | |
![]() | |
typedef mpl::fold< typename IAlgorithm::iid::iids::type, typename mpl::fold< typename IProperty::iid::iids::type, typename IStateful::iid::iids::type, mpl::insert< mpl::_1, mpl::_2 > >::type, mpl::insert< mpl::_1, mpl::_2 > >::type | ext_iids |
MPL set of interfaces extended by this one. More... | |
![]() | |
enum | Status { SUCCESS = 1, NO_INTERFACE, VERSMISMATCH, LAST_ERROR } |
Return status. More... | |
typedef Gaudi::InterfaceId < IInterface, 0, 0 > | iid |
Interface ID. More... | |
typedef mpl::set1< iid > | ext_iids |
Extra interfaces. More... | |
![]() | |
static const InterfaceID & | interfaceID () |
Return an instance of InterfaceID identifying the interface. 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 24 of file Sequencer.h.
Sequencer::Sequencer | ( | const std::string & | name, |
ISvcLocator * | svcloc | ||
) |
Constructor(s)
Definition at line 21 of file Sequencer.cpp.
|
virtual |
|
private |
Private Copy constructor: NO COPY ALLOWED.
StatusCode Sequencer::append | ( | Algorithm * | pAlgorithm | ) |
Append an algorithm to the sequencer.
Definition at line 417 of file Sequencer.cpp.
|
protected |
Append an algorithm to the sequencer.
Protected Member Functions.
Definition at line 526 of file Sequencer.cpp.
StatusCode Sequencer::appendToBranch | ( | Algorithm * | pAlgorithm | ) |
Append an algorithm to the sequencer branch.
Definition at line 424 of file Sequencer.cpp.
|
virtual |
Sequencer beginRun.
Reimplemented from Algorithm.
Definition at line 268 of file Sequencer.cpp.
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 479 of file Sequencer.cpp.
|
virtual |
void Sequencer::branchMembershipHandler | ( | Property & | theProp | ) |
"BranchMembers" property handler
Definition at line 516 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 431 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 548 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 440 of file Sequencer.cpp.
StatusCode Sequencer::decodeBranchMemberNames | ( | ) |
Decode branch member name list.
Definition at line 503 of file Sequencer.cpp.
StatusCode Sequencer::decodeMemberNames | ( | ) |
Decode Member Name list.
Definition at line 484 of file Sequencer.cpp.
|
protected |
Decode algorithm names, creating or appending algorithms as appropriate.
Definition at line 573 of file Sequencer.cpp.
|
virtual |
Sequencer endRun.
Reimplemented from Algorithm.
Definition at line 339 of file Sequencer.cpp.
|
virtual |
The actions to be performed by the sequencer on an event.
This method is invoked once per event.
Implements IAlgorithm.
Definition at line 129 of file Sequencer.cpp.
|
protected |
Execute the members in the specified list.
Definition at line 685 of file Sequencer.cpp.
|
protected |
Execute member algorithm.
Definition at line 725 of file Sequencer.cpp.
|
virtual |
Sequencer finalization.
Reimplemented from Algorithm.
Definition at line 178 of file Sequencer.cpp.
|
virtual |
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.
Reimplemented from Algorithm.
Definition at line 49 of file Sequencer.cpp.
|
virtual |
void Sequencer::membershipHandler | ( | Property & | theProp | ) |
"Members" property handler
Definition at line 497 of file Sequencer.cpp.
Private assignment operator: NO ASSIGNMENT ALLOWED.
|
virtual |
Sequencer Reinitialization.
Reimplemented from Algorithm.
Definition at line 97 of file Sequencer.cpp.
StatusCode Sequencer::remove | ( | Algorithm * | pAlgorithm | ) |
Remove the specified algorithm from the sequencer.
Definition at line 449 of file Sequencer.cpp.
StatusCode Sequencer::remove | ( | const std::string & | name | ) |
Definition at line 457 of file Sequencer.cpp.
|
protected |
Remove the specified algorithm from the sequencer.
Definition at line 741 of file Sequencer.cpp.
StatusCode Sequencer::removeFromBranch | ( | Algorithm * | pAlgorithm | ) |
Definition at line 464 of file Sequencer.cpp.
StatusCode Sequencer::removeFromBranch | ( | const std::string & | name | ) |
Definition at line 472 of file Sequencer.cpp.
|
virtual |
Reset the Sequencer executed state for the current event.
Reimplemented from Algorithm.
Definition at line 370 of file Sequencer.cpp.
|
virtual |
Set the branch filter passed flag for the last event.
Definition at line 404 of file Sequencer.cpp.
|
virtual |
Sequencer finalization.
Reimplemented from Algorithm.
Definition at line 198 of file Sequencer.cpp.
|
virtual |
Sequencer finalization.
Reimplemented from Algorithm.
Definition at line 235 of file Sequencer.cpp.
|
private |
Definition at line 247 of file Sequencer.h.
|
private |
Definition at line 250 of file Sequencer.h.
|
private |
Definition at line 246 of file Sequencer.h.
|
private |
Definition at line 248 of file Sequencer.h.
|
private |
Definition at line 245 of file Sequencer.h.
|
private |
Definition at line 244 of file Sequencer.h.
|
private |
Definition at line 249 of file Sequencer.h.