ATLAS Offline Software
Loading...
Searching...
No Matches
TrigMonTE.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 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// C/C++
19#include <iostream>
20#include <stdint.h>
21#include <vector>
22
23// Local
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();
47 TrigMonTE(uint32_t id, uint16_t index);
49
50 void addChildIndex (uint16_t index) { m_child.push_back(index); }
51 void addParentIndex(uint16_t index) { m_parent.push_back(index); }
52
53 void addRoiId(uint8_t roiid) { m_roi.push_back(roiid); }
54 void addClid (uint32_t clid) { m_clid.push_back(clid); }
55
56 void addVar(const TrigMonVar &var);
57
58 void setType (Type type);
59 void addState(State state);
60
61 void clearIndexes() { m_child.clear(); m_parent.clear(); }
62 void clearClids() { m_clid.clear(); }
63
64 uint32_t getId() const { return m_id; }
65 uint16_t getIndex() const;
66 Type getType() const;
67
68 bool getActiveState() const { return m_encoded & activeState; }
69 bool getErrorState() const { return m_encoded & errorState; }
70 bool isTerminalNode() const { return m_encoded & terminalNode; }
71 bool isOutputL2Node() const { return m_encoded & outputL2Node; }
72 bool isOutputEFNode() const { return m_encoded & outputEFNode; }
73 bool isTopologicalTE() const { return m_encoded & topologicalTE; }
74
75 const std::vector<uint16_t>& getChildIndex() const { return m_child; }
76 const std::vector<uint16_t>& getParentIndex() const { return m_parent; }
77
78 const std::vector<uint8_t>& getRoiId() const { return m_roi; }
79 const std::vector<uint32_t>& getClid() const { return m_clid; }
80
81 const std::vector<TrigMonVar> getVar() const;
82 const std::vector<uint16_t>& getVarKey() const { return m_var_key; }
83 const std::vector<float>& getVarVal() const { return m_var_val; }
84
85 void print(std::ostream &os = std::cout);
86
87 private:
88 friend class TrigMonTECnv_p1;
89
90 uint32_t m_id; // Trigger element id
91 uint32_t m_encoded; // Encoded word (see below)
92
93 std::vector<uint16_t> m_child; // Index of child (successor) TEs
94 std::vector<uint16_t> m_parent; // Index of parent (predecessors) TEs
95 std::vector<uint8_t> m_roi; // RoiId of seeding roi(s)
96 std::vector<uint32_t> m_clid; // Clids of attached features
97
98 std::vector<uint16_t> m_var_key; // Variable key
99 std::vector<float> m_var_val; // Variable value
100};
101
102std::string str(const TrigMonTE &);
103
104//
105// m_encoded: low 16 bits store index
106//
107// m_encoded: top 16 bits store State and Type enums
108//
109// state [s] 6 bits
110// type [t] 2 bits
111// free [f] 8 bits
112//
113
114//
115// Global comparison operators
116//
117inline bool operator==(const TrigMonTE &lhs, const TrigMonTE &rhs) {
118 return lhs.getId() == rhs.getId();
119}
120inline bool operator <(const TrigMonTE &lhs, const TrigMonTE &rhs) {
121 return lhs.getId() < rhs.getId();
122}
123
124inline bool operator==(const TrigMonTE &te, const TrigConfSeq &seq) {
125 return te.getId() == seq.getId();
126}
127inline bool operator==(const TrigConfSeq &seq, const TrigMonTE &te) {
128 return te.getId() == seq.getId();
129}
130
131CLASS_DEF( TrigMonTE , 233333104 , 1 )
132
133#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:117
bool operator<(const TrigMonTE &lhs, const TrigMonTE &rhs)
Definition TrigMonTE.h:120
Summary of one trigger element from navigation tree.
Definition TrigMonTE.h:28
bool isOutputEFNode() const
Definition TrigMonTE.h:72
bool isTerminalNode() const
Definition TrigMonTE.h:70
void clearClids()
Definition TrigMonTE.h:62
void addClid(uint32_t clid)
Definition TrigMonTE.h:54
void setType(Type type)
Definition TrigMonTE.cxx:49
void addChildIndex(uint16_t index)
Definition TrigMonTE.h:50
@ 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:88
bool getActiveState() const
Definition TrigMonTE.h:68
void addVar(const TrigMonVar &var)
Definition TrigMonTE.cxx:37
const std::vector< uint8_t > & getRoiId() const
Definition TrigMonTE.h:78
const std::vector< TrigMonVar > getVar() const
Definition TrigMonTE.cxx:96
const std::vector< uint16_t > & getParentIndex() const
Definition TrigMonTE.h:76
uint32_t m_id
Definition TrigMonTE.h:90
std::vector< uint16_t > m_child
Definition TrigMonTE.h:93
const std::vector< float > & getVarVal() const
Definition TrigMonTE.h:83
const std::vector< uint16_t > & getVarKey() const
Definition TrigMonTE.h:82
void addState(State state)
Definition TrigMonTE.cxx:58
void addParentIndex(uint16_t index)
Definition TrigMonTE.h:51
uint16_t getIndex() const
Definition TrigMonTE.cxx:87
const std::vector< uint32_t > & getClid() const
Definition TrigMonTE.h:79
uint32_t m_encoded
Definition TrigMonTE.h:91
bool isTopologicalTE() const
Definition TrigMonTE.h:73
void print(std::ostream &os=std::cout)
std::vector< uint8_t > m_roi
Definition TrigMonTE.h:95
uint32_t getId() const
Definition TrigMonTE.h:64
const std::vector< uint16_t > & getChildIndex() const
Definition TrigMonTE.h:75
void addRoiId(uint8_t roiid)
Definition TrigMonTE.h:53
void clearIndexes()
Definition TrigMonTE.h:61
std::vector< float > m_var_val
Definition TrigMonTE.h:99
bool getErrorState() const
Definition TrigMonTE.h:69
std::vector< uint32_t > m_clid
Definition TrigMonTE.h:96
std::vector< uint16_t > m_parent
Definition TrigMonTE.h:94
Type getType() const
Definition TrigMonTE.cxx:67
std::vector< uint16_t > m_var_key
Definition TrigMonTE.h:98
bool isOutputL2Node() const
Definition TrigMonTE.h:71
Definition index.py:1