ATLAS Offline Software
Loading...
Searching...
No Matches
TrigMonTE.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRIGMON_TE_H
6#define TRIGMON_TE_H
7
14
15// Framework
17
18
19// Local
22// C/C++
23#include <iosfwd>
24#include <stdint.h>
25#include <vector>
26
28{
29 public:
30
31 enum Type {
32 kELEM = 0, // Regular TE in navigation tree (default)
33 kINIT = 1, // Initial TE
34 kROI = 2, // RoI TE attached to initial TE
35 kL1TH = 3 // L1 threshold TE attached to ROI TE
36 };
37 enum State {
38 activeState = 0x010000, // Active/inactive state of TE
39 errorState = 0x020000, // There was an error in algorithms dealing with this TE
40 terminalNode = 0x040000, // Node is terminal (no more TriggerElement are seeded by it)
41 outputL2Node = 0x080000, // This is output TE of passed or passedRaw L2 chain
42 outputEFNode = 0x100000, // This is output TE of passed or passedRaw EF chain
43 topologicalTE = 0x200000 // Topological TE (more than 1 parent)
44 };
45
46 TrigMonTE() = default;
47 TrigMonTE(uint32_t id, uint16_t index);
48
49 void addChildIndex (uint16_t index) { m_child.push_back(index); }
50 void addParentIndex(uint16_t index) { m_parent.push_back(index); }
51
52 void addRoiId(uint8_t roiid) { m_roi.push_back(roiid); }
53 void addClid (uint32_t clid) { m_clid.push_back(clid); }
54
55 void addVar(const TrigMonVar &var);
56
57 void setType (Type type);
58 void addState(State state);
59
60 void clearIndexes() { m_child.clear(); m_parent.clear(); }
61 void clearClids() { m_clid.clear(); }
62
63 uint32_t getId() const { return m_id; }
64 uint16_t getIndex() const;
65 Type getType() const;
66
67 bool getActiveState() const { return m_encoded & activeState; }
68 bool getErrorState() const { return m_encoded & errorState; }
69 bool isTerminalNode() const { return m_encoded & terminalNode; }
70 bool isOutputL2Node() const { return m_encoded & outputL2Node; }
71 bool isOutputEFNode() const { return m_encoded & outputEFNode; }
72 bool isTopologicalTE() const { return m_encoded & topologicalTE; }
73
74 const std::vector<uint16_t>& getChildIndex() const { return m_child; }
75 const std::vector<uint16_t>& getParentIndex() const { return m_parent; }
76
77 const std::vector<uint8_t>& getRoiId() const { return m_roi; }
78 const std::vector<uint32_t>& getClid() const { return m_clid; }
79
80 const std::vector<TrigMonVar> getVar() const;
81 const std::vector<uint16_t>& getVarKey() const { return m_var_key; }
82 const std::vector<float>& getVarVal() const { return m_var_val; }
83
84 void print(std::ostream &os);
85 void print(); //uses std::cout by default
86 private:
87 friend class TrigMonTECnv_p1;
88
89 uint32_t m_id{}; // Trigger element id
90 uint32_t m_encoded{}; // Encoded word (see below)
91
92 std::vector<uint16_t> m_child; // Index of child (successor) TEs
93 std::vector<uint16_t> m_parent; // Index of parent (predecessors) TEs
94 std::vector<uint8_t> m_roi; // RoiId of seeding roi(s)
95 std::vector<uint32_t> m_clid; // Clids of attached features
96
97 std::vector<uint16_t> m_var_key; // Variable key
98 std::vector<float> m_var_val; // Variable value
99};
100
101std::string str(const TrigMonTE &);
102
103//
104// m_encoded: low 16 bits store index
105//
106// m_encoded: top 16 bits store State and Type enums
107//
108// state [s] 6 bits
109// type [t] 2 bits
110// free [f] 8 bits
111//
112
113//
114// Global comparison operators
115//
116inline bool operator==(const TrigMonTE &lhs, const TrigMonTE &rhs) {
117 return lhs.getId() == rhs.getId();
118}
119inline bool operator <(const TrigMonTE &lhs, const TrigMonTE &rhs) {
120 return lhs.getId() < rhs.getId();
121}
122
123inline bool operator==(const TrigMonTE &te, const TrigConfSeq &seq) {
124 return te.getId() == seq.getId();
125}
126inline bool operator==(const TrigConfSeq &seq, const TrigMonTE &te) {
127 return te.getId() == seq.getId();
128}
129
130CLASS_DEF( TrigMonTE , 233333104 , 1 )
131
132#endif
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
bool operator==(const TrigMonTE &lhs, const TrigMonTE &rhs)
Definition TrigMonTE.h:116
bool operator<(const TrigMonTE &lhs, const TrigMonTE &rhs)
Definition TrigMonTE.h:119
Summary of one trigger element from navigation tree.
Definition TrigMonTE.h:28
bool isOutputEFNode() const
Definition TrigMonTE.h:71
bool isTerminalNode() const
Definition TrigMonTE.h:69
void clearClids()
Definition TrigMonTE.h:61
void addClid(uint32_t clid)
Definition TrigMonTE.h:53
void setType(Type type)
Definition TrigMonTE.cxx:46
void addChildIndex(uint16_t index)
Definition TrigMonTE.h:49
@ terminalNode
Definition TrigMonTE.h:40
@ outputL2Node
Definition TrigMonTE.h:41
@ activeState
Definition TrigMonTE.h:38
@ topologicalTE
Definition TrigMonTE.h:43
@ outputEFNode
Definition TrigMonTE.h:42
friend class TrigMonTECnv_p1
Definition TrigMonTE.h:87
bool getActiveState() const
Definition TrigMonTE.h:67
void addVar(const TrigMonVar &var)
Definition TrigMonTE.cxx:34
const std::vector< uint8_t > & getRoiId() const
Definition TrigMonTE.h:77
const std::vector< TrigMonVar > getVar() const
Definition TrigMonTE.cxx:84
const std::vector< uint16_t > & getParentIndex() const
Definition TrigMonTE.h:75
uint32_t m_id
Definition TrigMonTE.h:89
std::vector< uint16_t > m_child
Definition TrigMonTE.h:92
const std::vector< float > & getVarVal() const
Definition TrigMonTE.h:82
const std::vector< uint16_t > & getVarKey() const
Definition TrigMonTE.h:81
void addState(State state)
Definition TrigMonTE.cxx:55
void addParentIndex(uint16_t index)
Definition TrigMonTE.h:50
uint16_t getIndex() const
Definition TrigMonTE.cxx:75
TrigMonTE()=default
const std::vector< uint32_t > & getClid() const
Definition TrigMonTE.h:78
uint32_t m_encoded
Definition TrigMonTE.h:90
bool isTopologicalTE() const
Definition TrigMonTE.h:72
std::vector< uint8_t > m_roi
Definition TrigMonTE.h:94
uint32_t getId() const
Definition TrigMonTE.h:63
const std::vector< uint16_t > & getChildIndex() const
Definition TrigMonTE.h:74
void addRoiId(uint8_t roiid)
Definition TrigMonTE.h:52
void clearIndexes()
Definition TrigMonTE.h:60
std::vector< float > m_var_val
Definition TrigMonTE.h:98
bool getErrorState() const
Definition TrigMonTE.h:68
std::vector< uint32_t > m_clid
Definition TrigMonTE.h:95
std::vector< uint16_t > m_parent
Definition TrigMonTE.h:93
Type getType() const
Definition TrigMonTE.cxx:64
std::vector< uint16_t > m_var_key
Definition TrigMonTE.h:97
bool isOutputL2Node() const
Definition TrigMonTE.h:70
void print()
Definition index.py:1