The Gaudi Framework
v38r0 (2143aa4c)
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Typedefs
a
b
c
d
e
f
g
h
i
l
m
o
p
r
s
t
u
v
w
x
Enumerations
Enumerator
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
y
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Typedefs
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Enumerations
a
c
d
e
f
i
l
m
n
o
p
q
r
s
t
v
Enumerator
a
b
c
d
e
f
i
j
k
l
m
n
o
p
r
s
t
u
v
w
Properties
Related Functions
:
a
b
c
d
e
g
h
i
m
o
p
r
s
t
v
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
z
Functions
_
b
c
e
f
g
h
i
l
m
n
o
p
r
s
t
u
z
Variables
a
b
c
d
e
g
h
i
m
o
p
r
s
t
v
x
Typedefs
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
w
Enumerations
Enumerator
c
e
f
p
u
v
Macros
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
GaudiSequencer.h
Go to the documentation of this file.
1
/***********************************************************************************\
2
* (c) Copyright 1998-2019 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
#ifndef GAUDISEQUENCER_H
12
#define GAUDISEQUENCER_H 1
13
14
// Include files
15
// from Gaudi
16
#include "
GaudiAlg/GaudiAlg.h
"
17
#include "
GaudiAlg/GaudiCommon.h
"
18
#include <
Gaudi/Sequence.h
>
19
20
// Forward declarations
21
class
ISequencerTimerTool
;
22
38
class
GAUDI_API
GaudiSequencer
:
public
GaudiCommon
<Gaudi::Sequence> {
39
public
:
41
using
GaudiCommon::GaudiCommon
;
42
43
StatusCode
initialize
()
override
;
44
StatusCode
execute
(
const
EventContext
&
ctx
)
const override
;
45
StatusCode
sysExecute(
const
EventContext
&
ctx
)
override
;
46
48
std::ostream
& toControlFlowExpression(
std::ostream
& os )
const override
;
49
50
private
:
51
class
AlgorithmEntry
final {
52
public
:
54
AlgorithmEntry
(
Gaudi::Algorithm
*
alg
) : m_algorithm(
alg
) {}
55
56
void
setReverse
(
bool
flag ) { m_reverse = flag; }
57
58
Gaudi::Algorithm
*
algorithm
()
const
{
return
m_algorithm; }
59
bool
reverse
()
const
{
return
m_reverse; }
60
void
setTimer
(
int
nb ) { m_timer = nb; }
61
int
timer
()
const
{
return
m_timer; }
62
63
private
:
64
Gaudi::Algorithm
* m_algorithm =
nullptr
;
65
bool
m_reverse =
false
;
66
int
m_timer = 0;
67
};
68
70
StatusCode
decodeNames();
71
73
void
membershipHandler();
74
75
Gaudi::Property<std::vector<std::string>
> m_vetoObjs{
76
this
,
"VetoObjects"
, {},
"skip execute if one or more of these TES objects exist"
};
77
Gaudi::Property<std::vector<std::string>
> m_requireObjs{
78
this
,
"RequireObjects"
, {},
"execute only if one or more of these TES objects exist"
};
79
80
Gaudi::Property<std::vector<std::string>
> m_names = {
81
this
,
"Members"
, {}, &
GaudiSequencer::membershipHandler
,
"list of algorithms"
};
82
Gaudi::Property<bool>
m_sequential = {
this
,
"Sequential"
,
false
,
"execute members one at a time"
};
83
Gaudi::Property<bool>
m_modeOR = {
this
,
"ModeOR"
,
false
,
"use OR logic instead of AND"
};
84
Gaudi::Property<bool>
m_ignoreFilter = {
this
,
"IgnoreFilterPassed"
,
false
,
"always continue"
};
85
Gaudi::Property<bool>
m_measureTime = {
this
,
"MeasureTime"
,
false
,
"measure time"
};
86
Gaudi::Property<bool>
m_returnOK = {
this
,
"ReturnOK"
,
false
,
"forces the sequencer to return a good status"
};
87
Gaudi::Property<bool>
m_shortCircuit = {
this
,
"ShortCircuit"
,
true
,
"stop processing as soon as possible"
};
88
Gaudi::Property<bool>
m_invert = {
this
,
"Invert"
,
false
,
"invert the logic result of the sequencer"
};
89
90
std::vector<AlgorithmEntry>
m_entries
;
91
ISequencerTimerTool
* m_timerTool =
nullptr
;
92
int
m_timer
;
93
};
94
#endif // GAUDISEQUENCER_H
GaudiCommon.h
GaudiAlg.h
GaudiSequencer::AlgorithmEntry::algorithm
Gaudi::Algorithm * algorithm() const
Definition:
GaudiSequencer.h:58
std::vector
STL class.
GaudiCommon::GaudiCommon
GaudiCommon()=delete
GaudiSequencer::m_timer
int m_timer
Timer number for the sequencer.
Definition:
GaudiSequencer.h:92
ISequencerTimerTool
Definition:
ISequencerTimerTool.h:24
GaudiSequencer::m_entries
std::vector< AlgorithmEntry > m_entries
List of algorithms to process.
Definition:
GaudiSequencer.h:90
GaudiSequencer::AlgorithmEntry::AlgorithmEntry
AlgorithmEntry(Gaudi::Algorithm *alg)
Standard constructor.
Definition:
GaudiSequencer.h:54
basic.alg
alg
Definition:
basic.py:15
GaudiPython.Pythonizations.ctx
ctx
Definition:
Pythonizations.py:578
StatusCode
Definition:
StatusCode.h:65
GaudiPython.Pythonizations.execute
execute
Definition:
Pythonizations.py:578
std::ostream
STL class.
Gaudi::Algorithm
Base class from which all concrete algorithm classes should be derived.
Definition:
Algorithm.h:90
GaudiSequencer::AlgorithmEntry::setTimer
void setTimer(int nb)
Definition:
GaudiSequencer.h:60
GaudiSequencer::AlgorithmEntry::reverse
bool reverse() const
Definition:
GaudiSequencer.h:59
GaudiCommon::initialize
StatusCode initialize() override
standard initialization method
Definition:
GaudiCommon.icpp:76
GaudiSequencer::AlgorithmEntry::setReverse
void setReverse(bool flag)
Definition:
GaudiSequencer.h:56
GaudiSequencer
Definition:
GaudiSequencer.h:38
GaudiSequencer::AlgorithmEntry::timer
int timer() const
Definition:
GaudiSequencer.h:61
EventContext
Definition:
EventContext.h:34
Sequence.h
GaudiSequencer::AlgorithmEntry
Definition:
GaudiSequencer.h:51
GaudiSequencer::membershipHandler
void membershipHandler()
for asynchronous changes in the list of algorithms
Definition:
GaudiSequencer.cpp:229
GAUDI_API
#define GAUDI_API
Definition:
Kernel.h:81
Gaudi::Property
Implementation of property with value of concrete type.
Definition:
Property.h:39
GaudiCommon
Definition:
GaudiCommon.h:95
GaudiAlg
include
GaudiAlg
GaudiSequencer.h
Generated on Thu Jan 25 2024 17:52:17 for The Gaudi Framework by
1.8.18