 |
ATLAS Offline Software
|
ClassName: AthSequencer.
More...
#include <AthSequencer.h>
|
| | AthSequencer (const std::string &name, ISvcLocator *svcloc) |
| | Constructor(s) More...
|
| |
| virtual | ~AthSequencer () |
| | Destructor. More...
|
| |
| virtual StatusCode | initialize () override |
| | Initialization of a sequencer. More...
|
| |
| virtual StatusCode | reinitialize () override |
| | AthSequencer Reinitialization. More...
|
| |
| virtual StatusCode | execute (const EventContext &ctx) const override |
| | The actions to be performed by the sequencer on an event. 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, V, H > &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 | decodeNames (Gaudi::Property< std::vector< std::string >> &theNames, std::vector< Gaudi::Algorithm * > *theAlgs) |
| | Decode algorithm names, creating or appending algorithms as appropriate. More...
|
| |
| StatusCode | remove (const std::string &algname, std::vector< Gaudi::Algorithm * > *theAlgs) |
| | Remove the specified algorithm from the sequencer. 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...
|
| |
|
| StatusCode | executeAlgorithm (Gaudi::Algorithm *theAlgorithm, const EventContext &ctx) const |
| | Run one algorithm. More...
|
| |
| Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| | specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
| |
| Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &) |
| | specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
| |
| Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &) |
| | specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
| |
| Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &) |
| | specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
| |
ClassName: AthSequencer.
Description: An AthSequencer 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 AthSequencer assumes the same filtered state as the last member.
Definition at line 38 of file AthSequencer.h.
◆ StoreGateSvc_t
◆ AthSequencer()
| AthSequencer::AthSequencer |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
svcloc |
|
) |
| |
◆ ~AthSequencer()
| AthSequencer::~AthSequencer |
( |
| ) |
|
|
virtual |
◆ append() [1/2]
| StatusCode AthSequencer::append |
( |
Gaudi::Algorithm * |
pAlgorithm | ) |
|
Append an algorithm to the sequencer.
Definition at line 224 of file AthSequencer.cxx.
226 return append( pAlgorithm, subAlgorithms( ) );
◆ append() [2/2]
| StatusCode AthSequencer::append |
( |
Gaudi::Algorithm * |
pAlgorithm, |
|
|
std::vector< Gaudi::Algorithm * > * |
theAlgs |
|
) |
| |
|
protected |
Append an algorithm to the sequencer.
Protected Member Functions.
Definition at line 267 of file AthSequencer.cxx.
270 bool all_good =
true;
273 for (Gaudi::Algorithm* theAlgorithm : *theAlgs) {
274 if ( theAlgorithm == pAlgorithm ) {
280 theAlgs->push_back( pAlgorithm );
281 pAlgorithm->addRef();
283 return all_good ? StatusCode::SUCCESS : StatusCode::FAILURE;
◆ branchMembershipHandler()
| void AthSequencer::branchMembershipHandler |
( |
Gaudi::Details::PropertyBase & |
theProp | ) |
|
"BranchMembers" propertry handler
◆ createAndAppend() [1/2]
| StatusCode AthSequencer::createAndAppend |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
Gaudi::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 230 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 |
|
) |
| |
|
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 287 of file AthSequencer.cxx.
292 SmartIF<IAlgManager> theAlgMgr(Gaudi::svcLocator()->as<IAlgManager>());
293 IAlgorithm*
tmp =
nullptr;
296 pAlgorithm =
dynamic_cast<Gaudi::Algorithm*
>(
tmp);
297 theAlgs->push_back( pAlgorithm );
299 return StatusCode::SUCCESS;
◆ 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 |
( |
| ) |
|
Decode branch member naem list.
◆ decodeMemberNames()
| StatusCode AthSequencer::decodeMemberNames |
( |
| ) |
|
◆ decodeNames()
| StatusCode AthSequencer::decodeNames |
( |
Gaudi::Property< std::vector< std::string >> & |
theNames, |
|
|
std::vector< Gaudi::Algorithm * > * |
theAlgs |
|
) |
| |
|
protected |
Decode algorithm names, creating or appending algorithms as appropriate.
Definition at line 303 of file AthSequencer.cxx.
306 SmartIF<IAlgManager> theAlgMgr(Gaudi::svcLocator()->as<IAlgManager>());
314 for (
const std::string&
name : theNames.value()) {
317 Gaudi::Utils::TypeNameString tn(
name);
321 SmartIF<IAlgorithm>& theIAlg = theAlgMgr->algorithm(tn.name(),
false);
322 Gaudi::Algorithm* theAlgorithm =
nullptr;
324 theAlgorithm =
dynamic_cast<Gaudi::Algorithm*
>(theIAlg.get());
325 if ( theAlgorithm ) {
328 if (
append(theAlgorithm, theAlgs).isSuccess( ) ) {
329 ATH_MSG_DEBUG (tn.name() <<
" already exists - appended to member list");
332 result = StatusCode::FAILURE;
336 ATH_MSG_WARNING (tn.name() <<
" is not an Algorithm - Failed dynamic cast");
337 result = StatusCode::FAILURE;
343 if (
createAndAppend(tn.type(), tn.name(), theAlgorithm, theAlgs).isSuccess( ) ) {
344 ATH_MSG_DEBUG (tn.name() <<
" doesn't exist - created and appended to member list");
347 result = StatusCode::FAILURE;
354 if (
result.isSuccess() && !theAlgs->empty() ) {
358 for (Gaudi::Algorithm*
alg : *theAlgs) {
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
| StatusCode AthSequencer::execute |
( |
const EventContext & |
ctx | ) |
const |
|
overridevirtual |
The actions to be performed by the sequencer on an event.
This method is invoked once per event.
Definition at line 98 of file AthSequencer.cxx.
105 auto state = execState( ctx );
108 if ( isEnabled( ) && state.state() != AlgExecState::State::Done ) {
111 state.setState( AlgExecState::State::Executing );
117 const std::vector<Gaudi::Algorithm*>* subAlgms = subAlgorithms( );
118 for (
auto theAlgorithm : *subAlgms) {
119 if ( theAlgorithm->isEnabled( ) ) {
124 if (
sc.isSuccess() ) {
128 const bool passed = theAlgorithm->execState( ctx ).filterPassed();
130 state.setFilterPassed( !
passed );
132 state.setFilterPassed(
passed );
145 ATH_MSG_INFO (
"execute of [" << theAlgorithm->name() <<
"] did NOT succeed");
154 state.setFilterPassed( !seqPass );
156 state.setFilterPassed( seqPass );
160 state.setState( AlgExecState::State::Done );
◆ executeAlgorithm()
| StatusCode AthSequencer::executeAlgorithm |
( |
Gaudi::Algorithm * |
theAlgorithm, |
|
|
const EventContext & |
ctx |
|
) |
| const |
|
private |
Run one algorithm.
Definition at line 166 of file AthSequencer.cxx.
170 return theAlgorithm->sysExecute( ctx );
◆ 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 |
( |
| ) |
|
|
overridevirtual |
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 42 of file AthSequencer.cxx.
45 ATH_MSG_ERROR (
"Unable to configure one or more sequencer members ");
46 return StatusCode::FAILURE;
52 for (Gaudi::Algorithm* theAlgorithm : *subAlgorithms()) {
53 if (!theAlgorithm->sysInitialize( ).isSuccess()) {
55 << theAlgorithm->type() <<
"/" << theAlgorithm->name());
56 sc= StatusCode::FAILURE;
64 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 |
|
virtual |
◆ membershipHandler()
| void AthSequencer::membershipHandler |
( |
Gaudi::Details::PropertyBase & |
theProp | ) |
|
◆ 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 |
( |
| ) |
|
|
overridevirtual |
AthSequencer Reinitialization.
Definition at line 75 of file AthSequencer.cxx.
83 for (Gaudi::Algorithm* theAlgorithm : *subAlgorithms()) {
84 if ( theAlgorithm->isEnabled( ) ) {
85 if (theAlgorithm->sysReinitialize( ).isFailure()) {
87 << theAlgorithm->type () <<
"/"
88 << theAlgorithm->name());
89 sc = StatusCode::FAILURE;
◆ remove() [1/3]
| StatusCode AthSequencer::remove |
( |
const std::string & |
algname, |
|
|
std::vector< Gaudi::Algorithm * > * |
theAlgs |
|
) |
| |
|
protected |
Remove the specified algorithm from the sequencer.
Definition at line 375 of file AthSequencer.cxx.
379 return StatusCode::FAILURE;
◆ remove() [2/3]
| StatusCode AthSequencer::remove |
( |
const std::string & |
name | ) |
|
◆ remove() [3/3]
| StatusCode AthSequencer::remove |
( |
Gaudi::Algorithm * |
pAlgorithm | ) |
|
Remove the specified algorithm from the sequencer.
Definition at line 238 of file AthSequencer.cxx.
240 return remove (pAlgorithm->name());
◆ renounce()
◆ renounceArray()
◆ resetExecuted()
| void AthSequencer::resetExecuted |
( |
const EventContext & |
ctx | ) |
const |
|
virtual |
Reset the AthSequencer executed state for the current event.
Definition at line 206 of file AthSequencer.cxx.
208 execState(ctx).reset();
212 for (Gaudi::Algorithm* theAlgorithm : *subAlgorithms()) {
213 theAlgorithm->execState(ctx).reset();
◆ start()
| StatusCode AthSequencer::start |
( |
| ) |
|
|
overridevirtual |
Start (from INITIALIZED to RUNNING).
IStateful::start
Definition at line 174 of file AthSequencer.cxx.
178 for (Gaudi::Algorithm* theAlgorithm : *subAlgorithms()) {
179 if (!theAlgorithm->sysStart( ).isSuccess()) {
181 << theAlgorithm->type () <<
"/"
182 << theAlgorithm->name());
183 sc = StatusCode::FAILURE;
◆ stop()
| StatusCode AthSequencer::stop |
( |
| ) |
|
|
overridevirtual |
Stop (from RUNNING to INITIALIZED).
Definition at line 190 of file AthSequencer.cxx.
194 for (Gaudi::Algorithm* theAlgorithm : *subAlgorithms()) {
195 if (theAlgorithm->sysStop( ).isFailure()) {
197 << theAlgorithm->type () <<
"/"
198 << theAlgorithm->name());
199 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 |
|
private |
Initial value:{this, "IgnoreFilterPassed", false,
"Always continue sequence ignoring filterPassed of member algorithms"}
Definition at line 184 of file AthSequencer.h.
◆ m_invert
| Gaudi::Property<bool> AthSequencer::m_invert |
|
private |
Initial value:{ this, "Invert", false,
"Invert the logic result of the sequencer"}
Definition at line 187 of file AthSequencer.h.
◆ m_maxPass
| const unsigned int AthSequencer::m_maxPass {100} |
|
private |
◆ m_modeOR
| Gaudi::Property<bool> AthSequencer::m_modeOR |
|
private |
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 |
|
private |
Initial value:{this, "Members",{},
"Algorithm names (of the form '<cppType>/<instanceName>')","std::vector<Algorithm>"}
Definition at line 178 of file AthSequencer.h.
◆ m_runPostInitialize
| Gaudi::Property<bool> AthSequencer::m_runPostInitialize |
|
private |
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 199 of file AthSequencer.h.
◆ m_sequential
| Gaudi::Property<bool> AthSequencer::m_sequential |
|
private |
Initial value:{this, "Sequential", false,
"Concurrent or (strict) Sequential ordering of algorithms"}
Definition at line 193 of file AthSequencer.h.
◆ m_stopOverride
| Gaudi::Property<bool> AthSequencer::m_stopOverride |
|
private |
Initial value:{this, "StopOverride", false,
"Continue even if algorithm filter fails"}
Definition at line 190 of file AthSequencer.h.
◆ m_undeclaredOutputData
| Gaudi::Property<std::vector<std::string> > AthSequencer::m_undeclaredOutputData |
|
private |
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 196 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.
ServiceHandle< IClassIDSvc > m_clidSvc
bool passed(DecisionID id, const DecisionIDContainer &idSet)
checks if required decision ID is in the set of IDs in the container
Helper class to gather all declared data IDs and propagate them to components which declare data depe...
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
Gaudi::Property< bool > m_invert
const unsigned int m_maxPass
virtual void setOwner(IDataHandleHolder *o)=0
Gaudi::Property< bool > m_modeOR
Gaudi::Property< bool > m_runPostInitialize
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Gaudi::Property< std::vector< std::string > > m_undeclaredOutputData
std::string typeinfoName(const std::type_info &ti)
Convert a type_info to a demangled string.
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Gaudi::Property< bool > m_ignoreFilter
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
void membershipHandler(Gaudi::Details::PropertyBase &theProp)
"Members" property handler
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 executeAlgorithm(Gaudi::Algorithm *theAlgorithm, const EventContext &ctx) const
Run one algorithm.
StatusCode createAndAppend(const std::string &type, const std::string &name, Gaudi::Algorithm *&pAlgorithm)
Create a algorithm and append it to the sequencer.
#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.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
void updateDataNeeds(unsigned int max_pass, MsgStream &out)
Update the data dependencies of all components which dynamically declare tehm.
Gaudi::Property< bool > m_stopOverride
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.