ATLAS Offline Software
Loading...
Searching...
No Matches
TgcL1RawData.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MUONRDO_TGCL1RAWDATA_H
6#define MUONRDO_TGCL1RAWDATA_H
7
8
9#include <inttypes.h>
10#include <ostream>
11
12class MsgStream;
13
21{
22 public:
23 friend class TgcL1RawDataCnv_p1;
24
35
47
48 // Default constructor
50 {
51 clear(0, 0, 0, 0, 0);
52 clear(0, 0, 0, 0, 0, 0, 0);
53 }
54
55 // Constructor for Trigger Coincidence
56 TgcL1RawData(uint16_t bcTag,
57 uint16_t subDetectorId,
58 uint16_t srodId,
59 uint16_t l1Id,
60 uint16_t bcId,
61 uint16_t type,
62 uint16_t index,
63 uint16_t pos,
64 int16_t delta);
65
66 // Tracklets ( ROD ) *** For output from TrigT1TGC ***
67 TgcL1RawData(uint16_t bcTag,
68 uint16_t subDetectorId,
69 uint16_t rodId,
70 uint16_t sswId,
71 uint16_t slbId,
72 uint16_t l1Id,
73 uint16_t bcId,
74 SlbType slbType,
75 int16_t delta,
76 uint16_t seg,
77 uint16_t sub,
78 uint16_t rphi);
79
80 // High pT
81 TgcL1RawData(uint16_t bcTag,
82 uint16_t subDetectorId,
83 uint16_t srodId,
84 uint16_t l1Id,
85 uint16_t bcId,
86 bool strip,
87 bool forward,
88 uint16_t sector,
89 uint16_t chip,
90 uint16_t index,
91 bool hipt,
92 uint16_t hitId,
93 uint16_t sub,
94 int16_t delta,
95 uint16_t inner);
96
97 // New Sector logic
98 // RoI
99 TgcL1RawData(uint16_t bcTag,
100 uint16_t subDetectorId,
101 uint16_t srodId,
102 uint16_t l1Id,
103 uint16_t bcId,
104 bool forward,
105 uint16_t sector,
106 uint16_t innerflag,
107 uint16_t coinflag,
108 bool muplus,
109 uint16_t threshold,
110 uint16_t roi);
111
112 // NSW
113 TgcL1RawData(uint16_t bcTag,
114 uint16_t subDetectorId,
115 uint16_t srodId,
116 uint16_t l1Id,
117 uint16_t bcId,
118 bool forward,
119 uint16_t sector,
120 uint16_t nsweta,
121 uint16_t nswphi,
122 uint16_t nswcand,
123 uint16_t nswdtheta,
124 uint16_t nswphires,
125 uint16_t nswlowres,
126 uint16_t nswid);
127
128 // RPC BIS78
129 TgcL1RawData(uint16_t bcTag,
130 uint16_t subDetectorId,
131 uint16_t srodId,
132 uint16_t l1Id,
133 uint16_t bcId,
134 bool forward,
135 uint16_t sector,
136 uint16_t rpceta,
137 uint16_t rpcphi,
138 uint16_t rpcflag,
139 uint16_t rpcdeta,
140 uint16_t rpcdphi);
141
142 // EIFI
143 TgcL1RawData(uint16_t bcTag,
144 uint16_t subDetectorId,
145 uint16_t srodId,
146 uint16_t l1Id,
147 uint16_t bcId,
148 bool forward,
149 uint16_t sector,
150 uint16_t ei,
151 uint16_t fi,
152 uint16_t cid); // chamber ID
153
154 // TMDB
155 TgcL1RawData(uint16_t bcTag,
156 uint16_t subDetectorId,
157 uint16_t srodId,
158 uint16_t l1Id,
159 uint16_t bcId,
160 bool forward,
161 uint16_t sector,
162 uint16_t mod,
163 uint16_t bcid);
164
165 // Destructor
166 virtual ~TgcL1RawData() = default;
167 // return Information Type Hit:Coincidence
168 bool isCoincidence() const
169 {
170 return m_type == TYPE_HIPT || m_type == TYPE_NSL_ROI;
171 }
172
173 /*********** common accessors
174 */
175 void setOnlineId(uint16_t sId, uint16_t rId)
176 {
177 m_subDetectorId = sId;
178 m_srodId = rId;
179 }
180
181 uint16_t bcTag() const
182 {
183 return m_bcTag;
184 }
185 uint16_t l1Id() const
186 {
187 return m_l1Id;
188 }
189 uint16_t bcId() const
190 {
191 return m_bcId;
192 }
193
194 uint16_t subDetectorId() const
195 {
196 return m_subDetectorId;
197 }
198 uint16_t rodId() const
199 {
200 return m_rodId;
201 }
202 uint16_t sswId() const
203 {
204 return m_sswId;
205 }
206 uint16_t slbId() const
207 {
208 return m_slbId;
209 }
210 uint16_t srodId() const
211 {
212 return m_srodId;
213 }
215 {
216 return m_type;
217 }
218 void setType(uint16_t type);
219 bool isForward() const
220 {
221 return m_forward;
222 }
223 uint16_t bitpos() const
224 {
225 return m_bitpos;
226 }
227 uint16_t channel() const
228 {
229 return m_bitpos;
230 }
231 uint16_t tracklet() const
232 {
233 return m_tracklet;
234 }
235 bool isAdjacent() const
236 {
237 return m_adjacent;
238 }
239 uint16_t index() const
240 {
241 return m_index;
242 }
243 uint16_t position() const
244 {
245 return m_pos;
246 }
247 int16_t delta() const
248 {
249 return m_delta;
250 }
251 uint16_t inner() const
252 {
253 return m_inner;
254 }
255 uint16_t segment() const
256 {
257 return m_segment;
258 }
259 uint16_t subMatrix() const
260 {
261 return m_subMatrix;
262 }
263 uint16_t sector() const
264 {
265 return m_sector;
266 }
267 uint16_t chip() const
268 {
269 return m_chip;
270 }
271 bool isHipt() const
272 {
273 return m_hipt;
274 }
275 uint16_t hitId() const
276 {
277 return m_hitId;
278 }
279 uint16_t hsub() const
280 {
281 return m_hsub;
282 }
283 bool isStrip() const
284 {
285 return m_strip;
286 }
287 bool cand3plus() const
288 {
289 return m_cand3plus;
290 }
291 bool isMuplus() const
292 {
293 return m_muplus;
294 }
295 uint16_t threshold() const
296 {
297 return m_threshold;
298 }
299 bool isOverlap() const
300 {
301 return m_overlap;
302 }
303 bool isVeto() const
304 {
305 return m_veto;
306 }
307 uint16_t roi() const
308 {
309 return m_roi;
310 }
311
312 static std::string typeName(DataType type);
313
314 std::string typeName() const
315 {
316 return typeName(m_type);
317 }
318
319 private:
320 void clear(uint16_t bcTag,
321 uint16_t subDetectorId,
322 uint16_t srodId,
323 uint16_t l1Id,
324 uint16_t bcId);
325
326 void clear(uint16_t bcTag,
327 uint16_t subDetectorId,
328 uint16_t rodId,
329 uint16_t sswId,
330 uint16_t slbId,
331 uint16_t l1Id,
332 uint16_t bcId);
333
334 /********** common attributes
335 */
336
337 // BC tag (Central, Next, Previous)
338 uint16_t m_bcTag = 0U;
339
340 // online Identifiers
341 uint16_t m_subDetectorId = 0U;
342 uint16_t m_rodId = 0U;
343 uint16_t m_sswId = 0U;
344 uint16_t m_slbId = 0U;
345 uint16_t m_srodId = 0U;
346
347 // BCID and L1ID on SLB
348 uint16_t m_l1Id = 0U;
349 uint16_t m_bcId = 0U;
350
352
353 /********** Hit attributes
354 */
355
356 // bitmap position [40..199]
357 uint16_t m_bitpos = 0U;
358
359 // Index of assocaitated coincidence (if any) [0..63]
360 uint16_t m_tracklet = 0U;
361
362 bool m_adjacent = false;
363
364 /********** Coincidence attributes
365 */
366
367 // Coincidence type (L-Pt, H-Pt, SL)
369 bool m_forward = false;
370
371 // Coincidence index
372 uint16_t m_index = 0U;
373
374 // Coincidence Data
375 uint16_t m_pos = 0U;
376 int16_t m_delta = 0U;
377 uint16_t m_segment = 0U;
378 uint16_t m_subMatrix = 0U;
379
380 // HipT data
381 uint16_t m_sector = 0U;
382 uint16_t m_chip = 0U;
383 bool m_hipt = 0U;
384 uint16_t m_hitId = 0U;
385 uint16_t m_hsub = 0U;
386 bool m_strip = 0U;
387 uint16_t m_inner = 0U;
388
389 // New Sector Logic
390 // RoI
391 bool m_cand3plus = false;
392 bool m_muplus = false;
393 uint16_t m_threshold = 0U;
394 bool m_overlap = false;
395 bool m_veto = false;
396 uint16_t m_roi = 0U;
397 uint16_t m_innerflag = 0U;
398 uint16_t m_coinflag = 0U;
399
400 // NSW
401 uint16_t m_nsweta = 0U;
402 uint16_t m_nswphi = 0U;
403 uint16_t m_nswsl = 0U;
404 uint16_t m_nswcand = 0U;
405 uint16_t m_nswdtheta = 0U;
406 uint16_t m_nswphires = 0U;
407 uint16_t m_nswlowres = 0U;
408 uint16_t m_nswid = 0U;
409
410 // RPC BIS78
411 uint16_t m_rpceta = 0U;
412 uint16_t m_rpcphi = 0U;
413 uint16_t m_rpcflag = 0U;
414 uint16_t m_rpcdeta = 0U;
415 uint16_t m_rpcdphi = 0U;
416
417 // EIFI
418 uint16_t m_ei = 0U;
419 uint16_t m_fi = 0U;
420 uint16_t m_cid = 0U;
421
422 // TMDB
423 uint16_t m_tmdbmod = 0U;
424 uint16_t m_tmdbbcid = 0U;
425
426};
427
429MsgStream& operator<<(MsgStream& sl, const TgcL1RawData& coll);
430
432std::ostream& operator<<(std::ostream& sl, const TgcL1RawData& coll);
433
434#endif
435
OFFLINE_FRAGMENTS_NAMESPACE::PointerType DataType
uint16_t bcId(uint32_t data)
unsigned bcTag(unsigned bcBitMap)
MsgStream & operator<<(MsgStream &sl, const TgcL1RawData &coll)
Overload of << operator for MsgStream for debug output.
An unit object of TGC SROD output.
uint16_t channel() const
DataType m_type
uint16_t m_bitpos
uint16_t bitpos() const
virtual ~TgcL1RawData()=default
uint16_t m_slbId
uint16_t chip() const
uint16_t tracklet() const
uint16_t m_srodId
uint16_t m_subMatrix
uint16_t bcId() const
uint16_t m_rodId
bool isHipt() const
void clear(uint16_t bcTag, uint16_t subDetectorId, uint16_t srodId, uint16_t l1Id, uint16_t bcId)
uint16_t m_nswphires
uint16_t m_bcId
uint16_t m_tmdbmod
uint16_t m_threshold
uint16_t m_rpcdphi
void setOnlineId(uint16_t sId, uint16_t rId)
uint16_t m_nswdtheta
uint16_t subDetectorId() const
uint16_t m_roi
uint16_t m_l1Id
uint16_t m_tmdbbcid
void setType(uint16_t type)
uint16_t hitId() const
uint16_t m_rpcdeta
uint16_t m_ei
uint16_t srodId() const
uint16_t m_nswsl
uint16_t m_pos
bool isCoincidence() const
uint16_t m_nswid
int16_t delta() const
bool isAdjacent() const
friend class TgcL1RawDataCnv_p1
std::string typeName() const
uint16_t m_inner
uint16_t roi() const
uint16_t m_nswcand
uint16_t sector() const
uint16_t position() const
uint16_t m_rpceta
uint16_t inner() const
uint16_t m_hsub
uint16_t m_nswlowres
uint16_t bcTag() const
bool isOverlap() const
uint16_t m_subDetectorId
uint16_t m_sswId
uint16_t sswId() const
uint16_t m_cid
uint16_t m_index
uint16_t m_nswphi
uint16_t m_nsweta
int16_t m_delta
uint16_t hsub() const
uint16_t m_tracklet
uint16_t m_innerflag
uint16_t slbId() const
bool isStrip() const
uint16_t m_coinflag
uint16_t m_rpcflag
uint16_t l1Id() const
uint16_t threshold() const
DataType type() const
bool isMuplus() const
uint16_t segment() const
uint16_t m_fi
uint16_t m_sector
uint16_t rodId() const
uint16_t m_chip
bool isVeto() const
bool isForward() const
SlbType m_slbType
uint16_t subMatrix() const
uint16_t m_bcTag
uint16_t m_segment
bool cand3plus() const
uint16_t index() const
uint16_t m_rpcphi
uint16_t m_hitId
bool hipt
Definition globals.cxx:29
Definition index.py:1