ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigConfiguration
TrigConfL1Data
TrigConfL1Data
TriggerItemNode.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef TrigConf_TriggerItemNode
6
#define TrigConf_TriggerItemNode
7
8
#include "
TrigConfL1Data/L1DataDef.h
"
9
10
#include <string>
11
extern
"C"
{
12
# include <stdint.h>
13
}
14
15
namespace
TrigConf
{
16
17
class
TriggerThreshold
;
18
class
TriggerItemNode
;
19
20
std::ostream &
operator<<
(std::ostream & o,
const
TrigConf::TriggerItemNode & node);
21
22
class
TriggerItemNode
{
23
public
:
24
enum
NodeType
{
OBJ
,
NOT
,
AND
,
OR
,
UNDEF
};
25
static
NodeType
typeFromString
(
const
std::string&);
26
static
NodeType
typeFromChar
(
const
char
& c);
27
static
std::string
typeAsString
(
NodeType
);
28
29
TriggerItemNode
(
NodeType
);
30
virtual
~TriggerItemNode
();
31
32
typedef
std::pair<L1DataDef::TriggerType,unsigned int>
InternalType_t
;
33
34
bool
isThreshold
()
const
;
35
bool
isInternalTrigger
()
const
;
36
37
// setters
38
void
addChild
(
TriggerItemNode
*
node
);
39
const
std::vector<TriggerItemNode*>&
children
()
const
{
return
m_Children
; }
40
41
// setters
42
void
setThresholdName
(
const
std::string& thrname) {
m_ThresholdName
= thrname; }
43
void
setPosition
(
int
pos) {
m_Position
= pos; }
44
void
setMultiplicity
(
int
mult) {
m_Multiplicity
= mult; }
45
void
setTriggerThreshold
(
TriggerThreshold
* thr);
46
void
setInternalTrigger
(
L1DataDef::TriggerType
x
,
unsigned
int
thresholdNumber);
47
void
setInternalTrigger
(
const
std::string&
name
);
48
49
// accessors
50
NodeType
type
()
const
{
return
m_NodeType
; };
51
const
std::string&
thresholdName
()
const
{
return
m_ThresholdName
; }
52
int
position
()
const
{
return
m_Position
; }
53
int
multiplicity
()
const
{
return
m_Multiplicity
; }
54
const
TriggerThreshold
*
triggerThreshold
()
const
{
return
m_Threshold
; }
55
L1DataDef::TriggerType
internalTriggerType
()
const
{
return
m_InternalTrigger
.first; }
56
unsigned
int
internalTriggerNumber
()
const
{
return
m_InternalTrigger
.second; }
57
58
void
getAllFinalNodes
(std::vector<const TriggerItemNode*>&)
const
;
59
void
getAllThresholds
(std::vector<const TriggerThreshold*>&)
const
;
60
void
getAllBunchGroups
(std::vector<bool>&)
const
;
// vector of size 16 that describes the BGRPs used
61
void
getBunchGroupsMask
(uint16_t & bgmask)
const
;
// uint16 that describes the BGRPs used
62
void
getAllBunchGroups
(std::vector<unsigned int>&)
const
;
63
void
getAllRandomTriggers
(std::vector<unsigned int>&)
const
;
64
void
getAllPrescaledClockTriggers
(std::vector<unsigned int>&)
const
;
65
66
void
print
(
const
std::string&
indent
=
""
,
unsigned
int
detail
=1)
const
;
67
void
writeXML
(std::ostream &
xmlfile
,
int
indentLevel=0,
int
indentWidth=2,
bool
omitDelimiter=
false
)
const
;
68
void
buildLogic
(std::vector<std::string> & conditionList, std::string & logic)
const
;
69
70
virtual
std::string
__str__
()
const
;
71
72
private
:
73
std::ostream &
indent
(std::ostream& o,
int
lvl,
int
size
)
const
;
74
75
NodeType
m_NodeType
;
76
77
// for AND, OR, NOT
78
std::vector<TriggerItemNode*>
m_Children
;
79
80
// for OBJ Threshold
81
std::string
m_ThresholdName
;
82
int
m_Position
;
83
int
m_Multiplicity
;
84
TriggerThreshold
*
m_Threshold
;
// ownership is with ThresholdConfig object
85
86
// for OBJ Internal
87
InternalType_t
m_InternalTrigger
;
88
};
89
90
}
91
92
#endif
L1DataDef.h
size
size_t size() const
Number of registered mappings.
x
#define x
TrigConf::L1DataDef::TriggerType
TriggerType
Definition
L1DataDef.h:19
TrigConf::TriggerItemNode
Definition
TriggerItemNode.h:22
TrigConf::TriggerItemNode::typeFromChar
static NodeType typeFromChar(const char &c)
Definition
TriggerItemNode.cxx:47
TrigConf::TriggerItemNode::indent
std::ostream & indent(std::ostream &o, int lvl, int size) const
Definition
TriggerItemNode.cxx:301
TrigConf::TriggerItemNode::children
const std::vector< TriggerItemNode * > & children() const
Definition
TriggerItemNode.h:39
TrigConf::TriggerItemNode::triggerThreshold
const TriggerThreshold * triggerThreshold() const
Definition
TriggerItemNode.h:54
TrigConf::TriggerItemNode::TriggerItemNode
TriggerItemNode(NodeType)
Definition
TriggerItemNode.cxx:20
TrigConf::TriggerItemNode::setPosition
void setPosition(int pos)
Definition
TriggerItemNode.h:43
TrigConf::TriggerItemNode::InternalType_t
std::pair< L1DataDef::TriggerType, unsigned int > InternalType_t
Definition
TriggerItemNode.h:32
TrigConf::TriggerItemNode::typeFromString
static NodeType typeFromString(const std::string &)
Definition
TriggerItemNode.cxx:36
TrigConf::TriggerItemNode::m_Children
std::vector< TriggerItemNode * > m_Children
Definition
TriggerItemNode.h:78
TrigConf::TriggerItemNode::position
int position() const
Definition
TriggerItemNode.h:52
TrigConf::TriggerItemNode::m_Multiplicity
int m_Multiplicity
Definition
TriggerItemNode.h:83
TrigConf::TriggerItemNode::internalTriggerType
L1DataDef::TriggerType internalTriggerType() const
Definition
TriggerItemNode.h:55
TrigConf::TriggerItemNode::setMultiplicity
void setMultiplicity(int mult)
Definition
TriggerItemNode.h:44
TrigConf::TriggerItemNode::NodeType
NodeType
Definition
TriggerItemNode.h:24
TrigConf::TriggerItemNode::NOT
@ NOT
Definition
TriggerItemNode.h:24
TrigConf::TriggerItemNode::OR
@ OR
Definition
TriggerItemNode.h:24
TrigConf::TriggerItemNode::AND
@ AND
Definition
TriggerItemNode.h:24
TrigConf::TriggerItemNode::UNDEF
@ UNDEF
Definition
TriggerItemNode.h:24
TrigConf::TriggerItemNode::OBJ
@ OBJ
Definition
TriggerItemNode.h:24
TrigConf::TriggerItemNode::getAllPrescaledClockTriggers
void getAllPrescaledClockTriggers(std::vector< unsigned int > &) const
Definition
TriggerItemNode.cxx:191
TrigConf::TriggerItemNode::internalTriggerNumber
unsigned int internalTriggerNumber() const
Definition
TriggerItemNode.h:56
TrigConf::TriggerItemNode::multiplicity
int multiplicity() const
Definition
TriggerItemNode.h:53
TrigConf::TriggerItemNode::type
NodeType type() const
Definition
TriggerItemNode.h:50
TrigConf::TriggerItemNode::thresholdName
const std::string & thresholdName() const
Definition
TriggerItemNode.h:51
TrigConf::TriggerItemNode::getAllBunchGroups
void getAllBunchGroups(std::vector< bool > &) const
Definition
TriggerItemNode.cxx:142
TrigConf::TriggerItemNode::typeAsString
static std::string typeAsString(NodeType)
Definition
TriggerItemNode.cxx:55
TrigConf::TriggerItemNode::setInternalTrigger
void setInternalTrigger(L1DataDef::TriggerType x, unsigned int thresholdNumber)
Definition
TriggerItemNode.cxx:85
TrigConf::TriggerItemNode::getAllRandomTriggers
void getAllRandomTriggers(std::vector< unsigned int > &) const
Definition
TriggerItemNode.cxx:180
TrigConf::TriggerItemNode::__str__
virtual std::string __str__() const
Definition
TriggerItemNode.cxx:334
TrigConf::TriggerItemNode::m_NodeType
NodeType m_NodeType
Definition
TriggerItemNode.h:75
TrigConf::TriggerItemNode::getAllFinalNodes
void getAllFinalNodes(std::vector< const TriggerItemNode * > &) const
Definition
TriggerItemNode.cxx:119
TrigConf::TriggerItemNode::m_InternalTrigger
InternalType_t m_InternalTrigger
Definition
TriggerItemNode.h:87
TrigConf::TriggerItemNode::getBunchGroupsMask
void getBunchGroupsMask(uint16_t &bgmask) const
Definition
TriggerItemNode.cxx:156
TrigConf::TriggerItemNode::addChild
void addChild(TriggerItemNode *node)
Definition
TriggerItemNode.cxx:112
TrigConf::TriggerItemNode::m_Threshold
TriggerThreshold * m_Threshold
Definition
TriggerItemNode.h:84
TrigConf::TriggerItemNode::writeXML
void writeXML(std::ostream &xmlfile, int indentLevel=0, int indentWidth=2, bool omitDelimiter=false) const
Definition
TriggerItemNode.cxx:203
TrigConf::TriggerItemNode::buildLogic
void buildLogic(std::vector< std::string > &conditionList, std::string &logic) const
Definition
TriggerItemNode.cxx:235
TrigConf::TriggerItemNode::m_Position
int m_Position
Definition
TriggerItemNode.h:82
TrigConf::TriggerItemNode::~TriggerItemNode
virtual ~TriggerItemNode()
Definition
TriggerItemNode.cxx:30
TrigConf::TriggerItemNode::isThreshold
bool isThreshold() const
Definition
TriggerItemNode.cxx:62
TrigConf::TriggerItemNode::m_ThresholdName
std::string m_ThresholdName
Definition
TriggerItemNode.h:81
TrigConf::TriggerItemNode::getAllThresholds
void getAllThresholds(std::vector< const TriggerThreshold * > &) const
Definition
TriggerItemNode.cxx:129
TrigConf::TriggerItemNode::setTriggerThreshold
void setTriggerThreshold(TriggerThreshold *thr)
Definition
TriggerItemNode.cxx:72
TrigConf::TriggerItemNode::setThresholdName
void setThresholdName(const std::string &thrname)
Definition
TriggerItemNode.h:42
TrigConf::TriggerItemNode::print
void print(const std::string &indent="", unsigned int detail=1) const
Definition
TriggerItemNode.cxx:276
TrigConf::TriggerItemNode::isInternalTrigger
bool isInternalTrigger() const
Definition
TriggerItemNode.cxx:67
TrigConf::TriggerThreshold
Definition
TriggerThreshold.h:20
node
Definition
node.h:24
xmlfile
static std::vector< std::string > xmlfile
Definition
iLumiCalc.h:29
TrigConf
Forward iterator to traverse the main components of the trigger configuration.
Definition
IDPerfMonZmumu.h:57
TrigConf::operator<<
std::ostream & operator<<(std::ostream &os, const TrigConf::IsolationLegacy &iso)
Definition
L1ThresholdBase.cxx:339
detail
Definition
extract_histogram_tag.cxx:14
TrigConf::name
Definition
HLTChainList.h:35
Generated on
for ATLAS Offline Software by
1.17.0