![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
#include <AthRetrySequencer.h>
|
| AthRetrySequencer (const std::string &name, ISvcLocator *pSvcLocator) |
| Constructor with parameters: More...
|
|
virtual | ~AthRetrySequencer () |
| Destructor: More...
|
|
virtual StatusCode | execute (const EventContext &) const override |
| The actions to be performed by the sequencer on an event. More...
|
|
virtual StatusCode | initialize () override |
| Initialization of a sequencer. More...
|
|
virtual StatusCode | reinitialize () override |
| AthSequencer Reinitialization. More...
|
|
virtual StatusCode | start () override |
| Start (from INITIALIZED to RUNNING). More...
|
|
virtual StatusCode | stop () override |
| Stop (from RUNNING to INITIALIZED). More...
|
|
virtual void | resetExecuted (const EventContext &ctx) const |
| Reset the AthSequencer executed state for the current event. More...
|
|
virtual bool | isStopOverride () const |
| Has the StopOverride mode been set? More...
|
|
StatusCode | append (Gaudi::Algorithm *pAlgorithm) |
| Append an algorithm to the sequencer. More...
|
|
StatusCode | createAndAppend (const std::string &type, const std::string &name, Gaudi::Algorithm *&pAlgorithm) |
| Create a algorithm and append it to the sequencer. More...
|
|
StatusCode | remove (Gaudi::Algorithm *pAlgorithm) |
| Remove the specified algorithm from the sequencer. More...
|
|
StatusCode | remove (const std::string &name) |
|
StatusCode | decodeMemberNames () |
| Decode Member Name list. More...
|
|
void | membershipHandler (Gaudi::Details::PropertyBase &theProp) |
| "Members" property handler More...
|
|
StatusCode | decodeBranchMemberNames () |
| Decode branch member naem list. More...
|
|
void | branchMembershipHandler (Gaudi::Details::PropertyBase &theProp) |
| "BranchMembers" propertry handler More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
StatusCode | append (Gaudi::Algorithm *pAlgorithm, std::vector< Gaudi::Algorithm * > *theAlgs) |
| Append an algorithm to the sequencer. More...
|
|
StatusCode | createAndAppend (const std::string &type, const std::string &name, Gaudi::Algorithm *&pAlgorithm, std::vector< Gaudi::Algorithm * > *theAlgs) |
| Create a algorithm and append it to the sequencer. More...
|
|
StatusCode | remove (const std::string &algname, std::vector< Gaudi::Algorithm * > *theAlgs) |
| Remove the specified algorithm from the sequencer. More...
|
|
StatusCode | decodeNames (Gaudi::Property< std::vector< std::string >> &theNames, std::vector< Gaudi::Algorithm * > *theAlgs) |
| Decode algorithm names, creating or appending algorithms as appropriate. More...
|
|
void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
| remove all handles from I/O resolution More...
|
|
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > | renounce (T &h) |
|
void | extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps) |
| Add StoreName to extra input/output deps as needed. More...
|
|
AthRetrySequencer
runs a sequence of (sub)algorithms. if the sequence ends successfully but its 'filter-passed' flag is set to false, the retry-sequencer will re-run the same sequence anew, until the flag is set to true or the maximum number of retries is reached (in which case, the retry-sequencer will return StatusCode::FAILURE)
Definition at line 29 of file AthRetrySequencer.h.
◆ StoreGateSvc_t
◆ AthRetrySequencer() [1/2]
AthRetrySequencer::AthRetrySequencer |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
Constructor with parameters:
Definition at line 28 of file AthRetrySequencer.cxx.
37 "maximum number of times to retry running the subsequence "
38 "inside an event before giving up (-1 for infinity)" );
◆ ~AthRetrySequencer()
AthRetrySequencer::~AthRetrySequencer |
( |
| ) |
|
|
virtual |
◆ AthRetrySequencer() [2/2]
AthRetrySequencer::AthRetrySequencer |
( |
| ) |
|
|
private |
◆ append() [1/2]
StatusCode AthSequencer::append |
( |
Gaudi::Algorithm * |
pAlgorithm | ) |
|
|
inherited |
Append an algorithm to the sequencer.
Definition at line 247 of file AthSequencer.cxx.
249 return append( pAlgorithm, subAlgorithms( ) );
◆ append() [2/2]
StatusCode AthSequencer::append |
( |
Gaudi::Algorithm * |
pAlgorithm, |
|
|
std::vector< Gaudi::Algorithm * > * |
theAlgs |
|
) |
| |
|
protectedinherited |
Append an algorithm to the sequencer.
Protected Member Functions.
Definition at line 290 of file AthSequencer.cxx.
293 bool all_good =
true;
297 if ( theAlgorithm == pAlgorithm ) {
303 theAlgs->push_back( pAlgorithm );
304 pAlgorithm->addRef();
306 return all_good ? StatusCode::SUCCESS : StatusCode::FAILURE;
◆ branchMembershipHandler()
void AthSequencer::branchMembershipHandler |
( |
Gaudi::Details::PropertyBase & |
theProp | ) |
|
|
inherited |
"BranchMembers" propertry handler
◆ createAndAppend() [1/2]
StatusCode AthSequencer::createAndAppend |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
Gaudi::Algorithm *& |
pAlgorithm |
|
) |
| |
|
inherited |
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 253 of file AthSequencer.cxx.
◆ createAndAppend() [2/2]
StatusCode AthSequencer::createAndAppend |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
Gaudi::Algorithm *& |
pAlgorithm, |
|
|
std::vector< Gaudi::Algorithm * > * |
theAlgs |
|
) |
| |
|
protectedinherited |
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 310 of file AthSequencer.cxx.
316 IAlgManager* theAlgMgr;
319 ->getService(
"ApplicationMgr",
320 IAlgManager::interfaceID(),
321 *pp_cast<IInterface>(&theAlgMgr) );
322 if (
result.isSuccess( ) ) {
325 if (
result.isSuccess( ) ) {
328 theAlgs->push_back( pAlgorithm );
331 result = StatusCode::FAILURE;
335 theAlgMgr->release();
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ decodeBranchMemberNames()
StatusCode AthSequencer::decodeBranchMemberNames |
( |
| ) |
|
|
inherited |
Decode branch member naem list.
◆ decodeMemberNames()
StatusCode AthSequencer::decodeMemberNames |
( |
| ) |
|
|
inherited |
◆ decodeNames()
StatusCode AthSequencer::decodeNames |
( |
Gaudi::Property< std::vector< std::string >> & |
theNames, |
|
|
std::vector< Gaudi::Algorithm * > * |
theAlgs |
|
) |
| |
|
protectedinherited |
Decode algorithm names, creating or appending algorithms as appropriate.
Definition at line 340 of file AthSequencer.cxx.
344 IAlgManager* theAlgMgr;
346 result = serviceLocator()->getService(
"ApplicationMgr",
347 IAlgManager::interfaceID(),
348 *pp_cast<IInterface>(&theAlgMgr) );
350 if (
result.isSuccess( ) ) {
357 const std::vector<std::string>& theNameVector = theNames.value( );
358 for (
const std::string&
name : theNameVector) {
366 std::string theName =
name;
367 std::string theType =
name;
368 int slash =
name.find_first_of(
"/" );
370 theType =
name.substr( 0, slash );
371 theName =
name.substr( slash+1 );
379 if (
status.isSuccess( ) ) {
383 (theName <<
" is not an Algorithm - Failed dynamic cast");
384 status = StatusCode::FAILURE;
387 if (
status.isSuccess( ) && theAlgorithm !=
nullptr ) {
392 if (
status.isSuccess( ) ) {
394 (theName <<
" already exists - appended to member list");
397 (theName <<
" already exists - append failed!!!");
398 result = StatusCode::FAILURE;
406 if (
status.isSuccess( ) ) {
408 (theName <<
" doesn't exist - created and appended to member list");
411 (theName <<
" doesn't exist - creation failed!!!");
412 result = StatusCode::FAILURE;
420 if (
result.isSuccess() && !theAlgs->empty() ) {
429 if (
alg->name() == System::typeinfoName(
typeid(*
alg)))
432 msg() << System::typeinfoName(
typeid(*
alg)) <<
"/" <<
alg->name();
437 theAlgMgr->release();
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode AthRetrySequencer::execute |
( |
const EventContext & |
ctx | ) |
const |
|
overridevirtual |
The actions to be performed by the sequencer on an event.
This method is invoked once per event.
Reimplemented from AthSequencer.
Definition at line 47 of file AthRetrySequencer.cxx.
57 return StatusCode::SUCCESS;
63 return StatusCode::FAILURE;
◆ executeAlgorithm()
StatusCode AthSequencer::executeAlgorithm |
( |
Gaudi::Algorithm * |
theAlgorithm, |
|
|
const EventContext & |
ctx |
|
) |
| const |
|
privateinherited |
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ initialize()
StatusCode AthSequencer::initialize |
( |
| ) |
|
|
overridevirtualinherited |
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 51 of file AthSequencer.cxx.
55 if ( RUNNING_ON_VALGRIND ) {
56 ATH_MSG_WARNING (
"### detected running inside Valgrind, disabling algorithm timeout ###");
61 ATH_MSG_ERROR (
"Unable to configure one or more sequencer members ");
62 return StatusCode::FAILURE;
69 if (!theAlgorithm->sysInitialize( ).isSuccess()) {
71 << theAlgorithm->type() <<
"/" << theAlgorithm->name());
72 sc= StatusCode::FAILURE;
80 ATH_MSG_DEBUG(
"Allow dynamic data consumers to update their data dependencies.");
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ isStopOverride()
bool AthSequencer::isStopOverride |
( |
| ) |
const |
|
virtualinherited |
◆ membershipHandler()
void AthSequencer::membershipHandler |
( |
Gaudi::Details::PropertyBase & |
theProp | ) |
|
|
inherited |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ reinitialize()
StatusCode AthSequencer::reinitialize |
( |
| ) |
|
|
overridevirtualinherited |
AthSequencer Reinitialization.
Definition at line 91 of file AthSequencer.cxx.
100 if ( theAlgorithm->isEnabled( ) ) {
101 if (theAlgorithm->sysReinitialize( ).isFailure()) {
103 << theAlgorithm->type () <<
"/"
104 << theAlgorithm->name());
105 sc = StatusCode::FAILURE;
◆ remove() [1/3]
StatusCode AthSequencer::remove |
( |
const std::string & |
algname, |
|
|
std::vector< Gaudi::Algorithm * > * |
theAlgs |
|
) |
| |
|
protectedinherited |
Remove the specified algorithm from the sequencer.
Definition at line 442 of file AthSequencer.cxx.
449 if ( theAlgorithm->name( ) ==
algname ) {
453 ATH_MSG_INFO (
"AthSequencer::remove( ) isn't implemented yet!!!!!");
454 result = StatusCode::SUCCESS;
◆ remove() [2/3]
StatusCode AthSequencer::remove |
( |
const std::string & |
name | ) |
|
|
inherited |
◆ remove() [3/3]
StatusCode AthSequencer::remove |
( |
Gaudi::Algorithm * |
pAlgorithm | ) |
|
|
inherited |
Remove the specified algorithm from the sequencer.
Definition at line 261 of file AthSequencer.cxx.
263 return remove (pAlgorithm->name());
◆ renounce()
◆ renounceArray()
◆ resetExecuted()
void AthSequencer::resetExecuted |
( |
const EventContext & |
ctx | ) |
const |
|
virtualinherited |
Reset the AthSequencer executed state for the current event.
Definition at line 229 of file AthSequencer.cxx.
231 execState(ctx).reset();
236 theAlgorithm->execState(ctx).reset();
◆ start()
StatusCode AthSequencer::start |
( |
| ) |
|
|
overridevirtualinherited |
Start (from INITIALIZED to RUNNING).
IStateful::start
Definition at line 197 of file AthSequencer.cxx.
202 if (!theAlgorithm->sysStart( ).isSuccess()) {
204 << theAlgorithm->type () <<
"/"
205 << theAlgorithm->name());
206 sc = StatusCode::FAILURE;
◆ stop()
StatusCode AthSequencer::stop |
( |
| ) |
|
|
overridevirtualinherited |
Stop (from RUNNING to INITIALIZED).
Definition at line 213 of file AthSequencer.cxx.
218 if (theAlgorithm->sysStop( ).isFailure()) {
220 << theAlgorithm->type () <<
"/"
221 << theAlgorithm->name());
222 sc = StatusCode::FAILURE;
◆ sysInitialize()
Perform system initialization for an algorithm.
We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_clidSvc
◆ m_detStore
◆ m_evtStore
◆ m_ignoreFilter
Gaudi::Property<bool> AthSequencer::m_ignoreFilter |
|
privateinherited |
Initial value:{this, "IgnoreFilterPassed", false,
"Always continue sequence ignoring filterPassed of member algorithms"}
Definition at line 184 of file AthSequencer.h.
◆ m_maxPass
const unsigned int AthSequencer::m_maxPass {100} |
|
privateinherited |
◆ m_maxRetries
int AthRetrySequencer::m_maxRetries |
|
private |
◆ m_modeOR
Gaudi::Property<bool> AthSequencer::m_modeOR |
|
privateinherited |
Initial value:{this, "ModeOR", false,
"Use OR logic instead of AND"}
Definition at line 181 of file AthSequencer.h.
◆ m_names
Gaudi::Property<std::vector<std::string> > AthSequencer::m_names |
|
privateinherited |
Initial value:{this, "Members",{},
"Algorithm names (of the form '<cppType>/<instanceName>')","SubAlgorithm"}
Definition at line 178 of file AthSequencer.h.
◆ m_runPostInitialize
Gaudi::Property<bool> AthSequencer::m_runPostInitialize |
|
privateinherited |
Initial value:{this, "ProcessDynamicDataDependencies", false,
"Run the post initialization step, to dynamically create and gather extra data dependencies. "
"Should be enabled for the top most sequence."}
Definition at line 200 of file AthSequencer.h.
◆ m_sequential
Gaudi::Property<bool> AthSequencer::m_sequential |
|
privateinherited |
Initial value:{this, "Sequential", false,
"Concurrent or (strict) Sequential ordering of algorithms"}
Definition at line 190 of file AthSequencer.h.
◆ m_stopOverride
Gaudi::Property<bool> AthSequencer::m_stopOverride |
|
privateinherited |
Initial value:{this, "StopOverride", false,
"Continue even if algorithm filter fails"}
Definition at line 187 of file AthSequencer.h.
◆ m_timeout
Gaudi::Property<double> AthSequencer::m_timeout |
|
privateinherited |
Initial value:{this, "TimeOut", 0,
"Abort job after one algorithm or sequence reaches the time out. Timeout given in Nanoseconds "
"(official ATLAS units), despite its millisecond resolution"}
Definition at line 193 of file AthSequencer.h.
◆ m_timeoutMilliseconds
unsigned int AthSequencer::m_timeoutMilliseconds {0} |
|
privateinherited |
◆ m_undeclaredOutputData
Gaudi::Property<std::vector<std::string> > AthSequencer::m_undeclaredOutputData |
|
privateinherited |
Initial value:{this, "ExtraDataForDynamicConsumers", {},
"Pass these extra output data IDs, which are not declared by any of the algorithms or tools, to dynamic data consumers."}
Definition at line 197 of file AthSequencer.h.
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
StatusCode append(Gaudi::Algorithm *pAlgorithm)
Append an algorithm to the sequencer.
AthSequencer(const std::string &name, ISvcLocator *svcloc)
Constructor(s)
ServiceHandle< IClassIDSvc > m_clidSvc
Helper class to gather all declared data IDs and propagate them to components which declare data depe...
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
StatusCode decodeMemberNames()
Decode Member Name list.
const std::string & algName(ID id)
Converts a JetAlgorithmType::ID into a string.
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool msgLvl(const MSG::Level lvl) const
const unsigned int m_maxPass
virtual void setOwner(IDataHandleHolder *o)=0
Gaudi::Property< bool > m_runPostInitialize
Gaudi::Property< std::vector< std::string > > m_undeclaredOutputData
thread_local std::unique_ptr< Athena::AlgorithmTimer > s_abortTimer
timer will abort job once timeout for any algorithm or sequence is reached
::StatusCode StatusCode
StatusCode definition for legacy code.
virtual void resetExecuted(const EventContext &ctx) const
Reset the AthSequencer executed state for the current event.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
virtual StatusCode execute(const EventContext &ctx) const override
The actions to be performed by the sequencer on an event.
virtual void renounce()=0
void gatherDataHandlesAndDynamicConsumers(const std::string &parent_name, Gaudi::Algorithm *theAlgorithm)
Gather the input and output data declared by the given algorithm, its child algorithms and their tool...
StatusCode remove(Gaudi::Algorithm *pAlgorithm)
Remove the specified algorithm from the sequencer.
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Gaudi::Property< std::vector< std::string > > m_names
StatusCode createAndAppend(const std::string &type, const std::string &name, Gaudi::Algorithm *&pAlgorithm)
Create a algorithm and append it to the sequencer.
int m_maxRetries
Maximum number of loop iterations.
#define ATH_MSG_WARNING(x)
StatusCode decodeNames(Gaudi::Property< std::vector< std::string >> &theNames, std::vector< Gaudi::Algorithm * > *theAlgs)
Decode algorithm names, creating or appending algorithms as appropriate.
unsigned int m_timeoutMilliseconds
timeout converted to ms
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
filterPassed
now, add a sequencer: it will only execute seqalg1 and 2 and never 3
void updateDataNeeds(unsigned int max_pass, MsgStream &out)
Update the data dependencies of all components which dynamically declare tehm.
Gaudi::Property< bool > m_stopOverride
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
StatusCode addExtraDependencies(IClassIDSvc &clid_svc, std::vector< std::string > &undeclared_output_data, MsgStream &out)
Add extra output data which is not declared by any of the gathered components.
Gaudi::Property< double > m_timeout