The Gaudi Framework  master (37c0b60a)
ParentAlg.cpp
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2024 CERN for the benefit of the LHCb and ATLAS collaborations *
3 * *
4 * This software is distributed under the terms of the Apache version 2 licence, *
5 * copied verbatim in the file "LICENSE". *
6 * *
7 * In applying this licence, CERN does not waive the privileges and immunities *
8 * granted to it by virtue of its status as an Intergovernmental Organization *
9 * or submit itself to any jurisdiction. *
10 \***********************************************************************************/
11 // Include files
12 #include "ParentAlg.h"
13 #include <GaudiKernel/DataObject.h>
15 #include <GaudiKernel/MsgStream.h>
17 
19 
20 StatusCode ParentAlg::initialize() {
21  info() << "creating sub-algorithms...." << endmsg;
22 
23  auto sc = createSubAlgorithm( "SubAlg", "SubAlg1", m_subalg1 );
24  if ( !sc ) {
25  error() << "Error creating Sub-Algorithm SubAlg1" << endmsg;
26  return sc;
27  }
28 
29  sc = createSubAlgorithm( "SubAlg", "SubAlg2", m_subalg2 );
30  if ( !sc ) {
31  error() << "Error creating Sub-Algorithm SubAlg2" << endmsg;
32  return sc;
33  }
34 
35  // the base class must be invoked _after_ the subalgorithms are created
36  return Sequence::initialize();
37 }
38 
40  info() << "executing...." << endmsg;
41 
42  for ( auto alg : ( *subAlgorithms() ) ) {
43  if ( !alg->sysExecute( ctx ) ) { error() << "Error executing Sub-Algorithm" << alg->name() << endmsg; }
44  }
45  return StatusCode::SUCCESS;
46 }
47 
49  info() << "finalizing...." << endmsg;
50  return Sequence::finalize();
51 }
ParentAlg::finalize
StatusCode finalize() override
Definition: ParentAlg.cpp:48
IDataProviderSvc.h
ManySmallAlgs.alg
alg
Definition: ManySmallAlgs.py:81
GaudiPython.Pythonizations.ctx
ctx
Definition: Pythonizations.py:578
StatusCode
Definition: StatusCode.h:65
ParentAlg.h
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:202
ParentAlg
Definition: ParentAlg.h:22
ThreadLocalContext.h
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:100
DataObject.h
DECLARE_COMPONENT
#define DECLARE_COMPONENT(type)
Definition: PluginServiceV1.h:46
EventContext
Definition: EventContext.h:34
Gaudi::Sequence::subAlgorithms
const std::vector< Algorithm * > * subAlgorithms() const
List of sub-algorithms. Returns a pointer to a vector of (sub) Algorithms.
Definition: Sequence.cpp:103
ParentAlg::execute
StatusCode execute(const EventContext &ctx) const override
Definition: ParentAlg.cpp:39
MsgStream.h