ATLAS Offline Software
Loading...
Searching...
No Matches
Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMMRoI.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4#ifndef TRIGT1CALO_CMMROI_H
5#define TRIGT1CALO_CMMROI_H
6
7#include <stdint.h>
8
10
11namespace LVL1 {
12
20
21class CMMRoI {
22
23 public:
24
25 CMMRoI() = default;
26 CMMRoI(uint32_t jetEtRoiWord, uint32_t energyRoiWord0,
27 uint32_t energyRoiWord1, uint32_t energyRoiWord2);
29 int missingEtSigHits, int ex, int ey, int et,
31 int missingEtSigError, int exError, int eyError, int etError);
32
33
35 int jetEtHits() const;
37 int sumEtHits() const;
39 int missingEtHits() const;
41 int missingEtSigHits() const;
43 int ex() const;
45 int ey() const;
47 int et() const;
49 int jetEtError() const;
51 int sumEtError() const;
53 int missingEtError() const;
55 int missingEtSigError() const;
57 int exError() const;
59 int eyError() const;
61 int etError() const;
62
64 uint32_t jetEtRoiWord() const;
66 uint32_t energyRoiWord0() const;
68 uint32_t energyRoiWord1() const;
70 uint32_t energyRoiWord2() const;
72 bool setRoiWord(uint32_t roiWord);
73
74 private:
75
76 // RoI word IDs
77 static const unsigned int s_jetEtWordIdVal = 0x5;
78 static const unsigned int s_wordIdVal0 = 0x4;
79 static const unsigned int s_wordIdVal1 = 0x6;
80 static const unsigned int s_wordIdVal2 = 0x5;
81 // Data locations
82 static const int s_jetEtWordIdBit = 29;
83 static const int s_wordIdBit = 28;
84 static const int s_jetEtHitsBit = 0;
85 static const int s_sumEtHitsBit = 16;
86 static const int s_missingEtHitsBit = 16;
87 static const int s_missingEtSigHitsBit = 16;
88 static const int s_energyBit = 0;
89 static const int s_jetEtParityBit = 28;
90 static const int s_parityBit = 27;
91 static const int s_overflowBit = 15;
92 // Data masks
93 static const int s_jetEtWordIdMask = 0x7;
94 static const int s_wordIdMask = 0xf;
95 static const int s_jetEtHitsMask = 0xf;
96 static const int s_sumEtHitsMask = 0xff;
97 static const int s_missingEtHitsMask = 0xff;
98 static const int s_missingEtSigHitsMask = 0xff;
99 static const int s_energyMask = 0x7fff;
100
102 int parity(uint32_t roiWord) const;
104 int overflow(uint32_t roiWord) const;
105
106 // RoI words
107 uint32_t m_jetEtRoiWord{};
111
112};
113
114inline int CMMRoI::jetEtHits() const
115{
117}
118
119inline int CMMRoI::sumEtHits() const
120{
122}
123
124inline int CMMRoI::missingEtHits() const
125{
127}
128
133
134inline int CMMRoI::ex() const
135{
137}
138
139inline int CMMRoI::ey() const
140{
142}
143
144inline int CMMRoI::et() const
145{
147}
148
149inline int CMMRoI::jetEtError() const
150{
151 return ((m_jetEtRoiWord >> s_jetEtParityBit) & 0x1) << 1;
152}
153
154inline int CMMRoI::sumEtError() const
155{
156 return parity(m_energyRoiWord1) << 1;
157}
158
159inline int CMMRoI::missingEtError() const
160{
161 return parity(m_energyRoiWord2) << 1;
162}
163
165{
166 return parity(m_energyRoiWord0) << 1;
167}
168
169inline int CMMRoI::exError() const
170{
172}
173
174inline int CMMRoI::eyError() const
175{
177}
178
179inline int CMMRoI::etError() const
180{
182}
183
184inline uint32_t CMMRoI::jetEtRoiWord() const
185{
186 return m_jetEtRoiWord;
187}
188
189inline uint32_t CMMRoI::energyRoiWord0() const
190{
191 return m_energyRoiWord0;
192}
193
194inline uint32_t CMMRoI::energyRoiWord1() const
195{
196 return m_energyRoiWord1;
197}
198
199inline uint32_t CMMRoI::energyRoiWord2() const
200{
201 return m_energyRoiWord2;
202}
203
204inline int CMMRoI::parity(uint32_t roiWord) const
205{
206 return (roiWord >> s_parityBit) & 0x1;
207}
208
209inline int CMMRoI::overflow(uint32_t roiWord) const
210{
211 return (roiWord >> s_overflowBit) & 0x1;
212}
213
214} // end namespace
215
216CLASS_DEF(LVL1::CMMRoI, 187997318, 1)
217
218#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
CMMRoI()=default
uint32_t energyRoiWord1() const
Return packed Energy RoI word 1.
int missingEtSigHits() const
Return Missing-ET-Sig hits.
uint32_t energyRoiWord2() const
Return packed Energy RoI word 2.
int parity(uint32_t roiWord) const
Return Energy parity error (0/1)
int jetEtError() const
Return Jet-ET error flag (bit 1 Parity)
int overflow(uint32_t roiWord) const
Return Energy overflow flag (0/1)
bool setRoiWord(uint32_t roiWord)
Set RoI word with ID check.
Definition CMMRoI.cxx:82
int missingEtError() const
Return Missing-ET error flag (bit 1 Parity)
int missingEtHits() const
Return Missing-ET hits.
int sumEtError() const
Return Sum-ET error flag (bit 1 Parity)
int missingEtSigError() const
Return Missing-ET-Sig error flag (bit 1 Parity)
uint32_t jetEtRoiWord() const
Return packed Jet-Et RoI word.
int etError() const
Return Et error flags (bit 0 Overflow, bit 1 Parity)
int exError() const
Return Ex error flags (bit 0 Overflow, bit 1 Parity)
uint32_t energyRoiWord0() const
Return packed Energy RoI word 0.
int eyError() const
Return Ey error flags (bit 0 Overflow, bit 1 Parity)
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...