| The Gaudi Framework v27r1

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

GaudiSequencer.h
Go to the documentation of this file.
1 #ifndef GAUDISEQUENCER_H
2 #define GAUDISEQUENCER_H 1
3
4 // Include files
5 // from Gaudi
6 #include "GaudiAlg/GaudiAlgorithm.h"
7
8 // Forward declarations
9 class ISequencerTimerTool;
10
26 class GAUDI_API GaudiSequencer: public GaudiAlgorithm {
27 public:
29 GaudiSequencer( const std::string& name, ISvcLocator* pSvcLocator );
30
31 ~GaudiSequencer( ) override = default;
32
33 StatusCode initialize() override;
34 StatusCode execute () override;
35 StatusCode finalize () override;
36
37 StatusCode beginRun () override;
38 StatusCode endRun () override;
39
41 void membershipHandler( Property& theProp );
42
43 protected:
44
45 class AlgorithmEntry final {
46 public:
48 AlgorithmEntry( Algorithm* alg ) : m_algorithm(alg) { }
49
50 void setReverse( bool flag ) { m_reverse = flag; }
51
52 Algorithm* algorithm() const { return m_algorithm; }
53 bool reverse() const { return m_reverse; }
54 void setTimer( int nb ) { m_timer = nb; }
55 int timer() const { return m_timer; }
56 private:
57 Algorithm* m_algorithm = nullptr;
58 bool m_reverse = false;
59 int m_timer = 0;
60 };
61
63 StatusCode decodeNames( );
64
65 private:
66
68 GaudiSequencer( const GaudiSequencer& a );
69
71 GaudiSequencer& operator=( const GaudiSequencer& a );
72
73 StringArrayProperty m_names;
74 std::vector<AlgorithmEntry> m_entries;
75 bool m_modeOR;
76 bool m_shortCircuit;
77 bool m_ignoreFilter;
80 bool m_isInitialized;
81 bool m_measureTime;
82 bool m_returnOK;
83 ISequencerTimerTool* m_timerTool = nullptr;
84 int m_timer;
85 };
86 #endif // GAUDISEQUENCER_H
Algorithm::endRun
StatusCode endRun() override
Algorithm end run. This method is called at the end of the event loop.
Definition: Algorithm.cpp:562
GaudiAlgorithm::operator=
GaudiAlgorithm & operator=(const GaudiAlgorithm &)=delete
GaudiSequencer::m_shortCircuit
bool m_shortCircuit
Indicates whether to stop processing as soon as possible, or to always execute all subalgorithms...
Definition: GaudiSequencer.h:76
ISvcLocator
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition: ISvcLocator.h:25
gaudiComponentHelp.name
name
Definition: gaudiComponentHelp.py:28
GaudiSequencer::m_returnOK
bool m_returnOK
Forces the sequencer to return a good status.
Definition: GaudiSequencer.h:82
GaudiSequencer::m_modeOR
bool m_modeOR
Indicates that the OR is wanted instead of AND.
Definition: GaudiSequencer.h:75
GaudiAlgorithm::initialize
StatusCode initialize() override
standard initialization method
Definition: GaudiAlgorithm.cpp:48
GaudiSequencer
Sequencer for executing several algorithms, stopping when one is faulty.
Definition: GaudiSequencer.h:26
GaudiAlgorithm.h
GaudiSequencer::AlgorithmEntry::setReverse
void setReverse(bool flag)
Definition: GaudiSequencer.h:50
GaudiSequencer::AlgorithmEntry::algorithm
Algorithm * algorithm() const
Definition: GaudiSequencer.h:52
GaudiAlgorithm::execute
StatusCode execute() override
standard execution method
Definition: GaudiAlgorithm.cpp:76
std::string
STL class.
SimpleProperty< std::vector< std::string > >
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
GaudiSequencer::m_measureTime
bool m_measureTime
Flag to measure time.
Definition: GaudiSequencer.h:81
GaudiSequencer::AlgorithmEntry
Definition: GaudiSequencer.h:45
Algorithm::beginRun
StatusCode beginRun() override
Algorithm begin run.
Definition: Algorithm.cpp:500
GaudiAlgorithm::finalize
StatusCode finalize() override
standard finalization method
Definition: GaudiAlgorithm.cpp:62
GaudiAlgorithm
The useful base class for data processing algorithms.
Definition: GaudiAlgorithm.h:93
GaudiSequencer::m_isInitialized
bool m_isInitialized
Indicate that we are ready.
Definition: GaudiSequencer.h:80
Algorithm
Base class from which all concrete algorithm classes should be derived.
Definition: Algorithm.h:74
Property
Property base class allowing Property* collections to be "homogeneous".
Definition: Property.h:38
std::vector
STL class.
ISequencerTimerTool
Implements the time measurement inside a sequencer.
Definition: ISequencerTimerTool.h:14
GaudiSequencer::AlgorithmEntry::AlgorithmEntry
AlgorithmEntry(Algorithm *alg)
Standard constructor.
Definition: GaudiSequencer.h:48
GaudiSequencer::AlgorithmEntry::timer
int timer() const
Definition: GaudiSequencer.h:55
GaudiSequencer::AlgorithmEntry::reverse
bool reverse() const
Definition: GaudiSequencer.h:53
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:107
GaudiSequencer::AlgorithmEntry::setTimer
void setTimer(int nb)
Definition: GaudiSequencer.h:54
GaudiSequencer::m_timer
int m_timer
Timer number for the sequencer.
Definition: GaudiSequencer.h:84
GaudiSequencer::m_entries
std::vector< AlgorithmEntry > m_entries
List of algorithms to process.
Definition: GaudiSequencer.h:74
GaudiSequencer::m_names
StringArrayProperty m_names
Input string, list of algorithms.
Definition: GaudiSequencer.h:73