ATLAS Offline Software
Loading...
Searching...
No Matches
TgcRawData.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MUONRDO_TGCRAWDATA_H
6#define MUONRDO_TGCRAWDATA_H
7
8
9
10#include <inttypes.h>
11#include <ostream>
12
13class MsgStream;
14
22class TgcRawData final
23{
24public:
25 friend class TgcRawDataCnv_p1;
26 friend class TgcRawDataCnv_p2;
27 friend class TgcRawDataCnv_p3;
28 friend class TgcRawDataCnv_p4;
29
40
54
55 // Default constructor
57 {
58 clear(0, 0, 0, 0, 0);
59 clear(0, 0, 0, 0, 0, 0, 0);
60 }
61
62 // P1 ------------------------
63 // Constructor for Hit : 8
64 TgcRawData(uint16_t bcTag,
65 uint16_t subDetectorId,
66 uint16_t rodId,
67 uint16_t sswId,
68 uint16_t slbId,
69 uint16_t l1Id,
70 uint16_t bcId,
71 uint16_t bitpos);
72
73 // Constructor for Trigger Coincidence : 11
74 TgcRawData(uint16_t bcTag,
75 uint16_t subDetectorId,
76 uint16_t rodId,
77 uint16_t sswId,
78 uint16_t slbId,
79 uint16_t l1Id,
80 uint16_t bcId,
81 uint16_t type,
82 uint16_t index,
83 uint16_t pos,
84 int16_t delta);
85
86 // P2 ------------------------
87 // Hits : 11
88 TgcRawData(uint16_t bcTag,
89 uint16_t subDetectorId,
90 uint16_t rodId,
91 uint16_t sswId,
92 uint16_t slbId,
93 uint16_t l1Id,
94 uint16_t bcId,
96 bool adj,
97 uint16_t tracklet,
98 uint16_t channel);
99
100 // Tracklets : 12
101 TgcRawData(uint16_t bcTag,
102 uint16_t subDetectorId,
103 uint16_t rodId,
104 uint16_t sswId,
105 uint16_t slbId,
106 uint16_t l1Id,
107 uint16_t bcId,
109 int16_t delta,
110 uint16_t seg,
111 uint16_t sub,
112 uint16_t rphi);
113
114 // High pT : 15
115 TgcRawData(uint16_t bcTag,
116 uint16_t subDetectorId,
117 uint16_t rodId,
118 uint16_t l1Id,
119 uint16_t bcId,
120 bool strip,
121 bool forward,
122 uint16_t sector,
123 uint16_t chip,
124 uint16_t index,
125 bool hipt,
126 uint16_t hitId,
127 uint16_t sub,
128 int16_t delta,
129 uint16_t inner);
130
131 // Sector logic : 14 -> could be ambiguous with NSW
132 TgcRawData(uint16_t bcTag,
133 uint16_t subDetectorId,
134 uint16_t rodId,
135 uint16_t l1Id,
136 uint16_t bcId,
137 bool cand3plus,
138 bool forward,
139 uint16_t sector,
140 uint16_t index,
141 bool muplus,
142 uint16_t threshold,
143 bool overlap,
144 bool veto,
145 uint16_t roi);
146
147 // New Sector logic
148 // RoI : 12
149 TgcRawData(uint16_t bcTag,
150 uint16_t subDetectorId,
151 uint16_t rodId,
152 uint16_t l1Id,
153 uint16_t bcId,
154 bool forward,
155 uint16_t sector,
156 uint16_t innerflag,
157 uint16_t coinflag,
158 bool muplus,
159 uint16_t threshold,
160 uint16_t roi);
161
162 // NSW : 14
163 TgcRawData(uint16_t bcTag,
164 uint16_t subDetectorId,
165 uint16_t rodId,
166 uint16_t l1Id,
167 uint16_t bcId,
168 bool forward,
169 uint16_t sector,
170 uint16_t nsweta,
171 uint16_t nswphi,
172 uint16_t nswcand,
173 uint16_t nswdtheta,
174 uint16_t nswphires,
175 uint16_t nswlowres,
176 uint16_t nswid);
177
178 // RPC BIS78 : 12
179 TgcRawData(uint16_t bcTag,
180 uint16_t subDetectorId,
181 uint16_t rodId,
182 uint16_t l1Id,
183 uint16_t bcId,
184 bool forward,
185 uint16_t sector,
186 uint16_t rpceta,
187 uint16_t rpcphi,
188 uint16_t rpcflag,
189 uint16_t rpcdeta,
190 uint16_t rpcdphi);
191
192 // EIFI : 10
193 TgcRawData(uint16_t bcTag,
194 uint16_t subDetectorId,
195 uint16_t rodId,
196 uint16_t l1Id,
197 uint16_t bcId,
198 bool forward,
199 uint16_t sector,
200 uint16_t ei,
201 uint16_t fi,
202 uint16_t cid); // chamber ID
203
204 // TMDB : 9
205 TgcRawData(uint16_t bcTag,
206 uint16_t subDetectorId,
207 uint16_t rodId,
208 uint16_t l1Id,
209 uint16_t bcId,
210 bool forward,
211 uint16_t sector,
212 uint16_t mod,
213 uint16_t bcid);
214
215 static constexpr uint32_t NSW_CAND_BITSHIFT = 0;
216 static constexpr uint32_t NSW_CAND_BIT = 0x3;
217 static constexpr uint32_t NSW_INPUT_BITSHIFT = 2;
218 static constexpr uint32_t NSW_INPUT_BIT = 0x7;
219 static constexpr uint32_t NSW_BCID_BITSHIFT = 5;
220 static constexpr uint32_t NSW_BCID_BIT = 0xF;
221
222 static constexpr uint32_t RPC_FLAG_BITSHIFT = 0;
223 static constexpr uint32_t RPC_FLAG_BIT = 0x3;
224 static constexpr uint32_t RPC_CAND_BITSHIFT = 2;
225 static constexpr uint32_t RPC_CAND_BIT = 0x3;
226 static constexpr uint32_t RPC_BCID_BITSHIFT = 4;
227 static constexpr uint32_t RPC_BCID_BIT = 0xF;
228
229 TgcRawData(const TgcRawData&) = default;
230 TgcRawData(TgcRawData&&) = default;
231 TgcRawData& operator=(const TgcRawData&) = default;
233 // Destructor
234 ~TgcRawData() = default;
235
236 // return Information Type Hit:Coincidence
242
243 /*********** common accessors
244 */
245 void setOnlineId(uint16_t sId, uint16_t rId)
246 {
247 m_subDetectorId = sId;
248 m_rodId = rId;
249 }
250
251 uint16_t bcTag() const
252 {
253 return m_bcTag;
254 }
255 uint16_t l1Id() const
256 {
257 return m_l1Id;
258 }
259 uint16_t bcId() const
260 {
261 return m_bcId;
262 }
263
264 uint16_t subDetectorId() const
265 {
266 return m_subDetectorId;
267 }
268 uint16_t rodId() const
269 {
270 return m_rodId;
271 }
272 uint16_t sswId() const
273 {
274 return m_sswId;
275 }
276 uint16_t slbId() const
277 {
278 return m_slbId;
279 }
281 {
282 return m_type;
283 }
284 void setType(uint16_t type);
286 {
287 return m_slbType;
288 }
289 bool isForward() const
290 {
291 return m_forward;
292 }
293 uint16_t bitpos() const
294 {
295 return m_bitpos;
296 }
297 uint16_t channel() const
298 {
299 return m_bitpos;
300 }
301 uint16_t tracklet() const
302 {
303 return m_tracklet;
304 }
305 bool isAdjacent() const
306 {
307 return m_adjacent;
308 }
309 uint16_t index() const
310 {
311 return m_index;
312 }
313 uint16_t position() const
314 {
315 return m_pos;
316 }
317 int16_t delta() const
318 {
319 return m_delta;
320 }
321 uint16_t inner() const
322 {
323 return m_inner;
324 }
325 uint16_t segment() const
326 {
327 return m_segment;
328 }
329 uint16_t subMatrix() const
330 {
331 return m_subMatrix;
332 }
333 uint16_t sector() const
334 {
335 return m_sector;
336 }
337 uint16_t chip() const
338 {
339 return m_chip;
340 }
341 bool isHipt() const
342 {
343 return m_hipt;
344 }
345 uint16_t hitId() const
346 {
347 return m_hitId;
348 }
349 uint16_t hsub() const
350 {
351 return m_hsub;
352 }
353 bool isStrip() const
354 {
355 return m_strip;
356 }
357 bool cand3plus() const
358 {
359 return m_cand3plus;
360 }
361 bool isMuplus() const
362 {
363 return m_muplus;
364 }
365 uint16_t threshold() const
366 {
367 return m_threshold;
368 }
369 bool isOverlap() const
370 {
371 return m_overlap;
372 }
373 bool isVeto() const
374 {
375 return m_veto;
376 }
377 uint16_t roi() const
378 {
379 return m_roi;
380 }
381 uint16_t innerflag() const
382 {
383 return m_innerflag;
384 }
385 uint16_t coinflag() const
386 {
387 return m_coinflag;
388 }
389 uint16_t nsweta() const
390 {
391 return m_nsweta;
392 }
393 uint16_t nswphi() const
394 {
395 return m_nswphi;
396 }
397 uint16_t nswsl() const
398 {
399 return m_nswsl;
400 }
401 uint16_t nswcand() const
402 {
403 return m_nswcand;
404 }
405 uint16_t nswdtheta() const
406 {
407 return m_nswdtheta;
408 }
409 uint16_t nswphires() const
410 {
411 return m_nswphires;
412 }
413 uint16_t nswlowres() const
414 {
415 return m_nswlowres;
416 }
417 uint16_t nswid() const
418 {
419 return m_nswid;
420 }
421 uint16_t rpceta() const
422 {
423 return m_rpceta;
424 }
425 uint16_t rpcphi() const
426 {
427 return m_rpcphi;
428 }
429 uint16_t rpcflag() const
430 {
431 return m_rpcflag;
432 }
433 uint16_t rpcdeta() const
434 {
435 return m_rpcdeta;
436 }
437 uint16_t rpcdphi() const
438 {
439 return m_rpcdphi;
440 }
441 uint16_t ei() const
442 {
443 return m_ei;
444 }
445 uint16_t fi() const
446 {
447 return m_fi;
448 }
449 uint16_t cid() const
450 {
451 return m_cid;
452 }
453 uint16_t tmdbmod() const
454 {
455 return m_tmdbmod;
456 }
457 uint16_t tmdbbcid() const
458 {
459 return m_tmdbbcid;
460 }
461
462 static std::string typeName(DataType type);
463
464 std::string typeName() const
465 {
466 return typeName(m_type);
467 }
468
469 static std::string slbTypeName(SlbType type);
470
471 std::string slbTypeName() const
472 {
473 return slbTypeName(m_slbType);
474 }
475
476private:
477 void clear(uint16_t bcTag,
478 uint16_t subDetectorId,
479 uint16_t rodId,
480 uint16_t l1Id,
481 uint16_t bcId);
482 void clear(uint16_t bcTag,
483 uint16_t subDetectorId,
484 uint16_t rodId,
485 uint16_t sswId,
486 uint16_t slbId,
487 uint16_t l1Id,
488 uint16_t bcId);
489
490 /********** common attributes
491 */
492
493 // BC tag (Central, Next, Previous)
494 uint16_t m_bcTag = 0U;
495
496 // online Identifiers
497 uint16_t m_subDetectorId = 0U;
498 uint16_t m_rodId = 0U;
499 uint16_t m_sswId = 0U;
500 uint16_t m_slbId = 0U;
501
502 // BCID and L1ID on SLB
503 uint16_t m_l1Id = 0U;
504 uint16_t m_bcId = 0U;
505
507
508 /********** Hit attributes
509 */
510
511 // bitmap position [40..199]
512 uint16_t m_bitpos = 0U;
513
514 // Index of assocaitated coincidence (if any) [0..63]
515 uint16_t m_tracklet = 0U;
516
517 bool m_adjacent = false;
518
519 /********** Coincidence attributes
520 */
521
522 // Coincidence type (L-Pt, H-Pt, SL)
524 bool m_forward = false;
525
526 // Coincidence index
527 uint16_t m_index = 0U;
528
529 // Coincidence Data
530 uint16_t m_pos = 0U;
531 int16_t m_delta = 0;
532 uint16_t m_segment = 0U;
533 uint16_t m_subMatrix = 0U;
534
535 // HipT data
536 uint16_t m_sector = 0U;
537 uint16_t m_chip = 0U;
538 bool m_hipt = false;
539 uint16_t m_hitId = 0U;
540 uint16_t m_hsub = 0U;
541 bool m_strip = false;
542 uint16_t m_inner = 0U;
543
544 // Sector Logic
545 bool m_cand3plus = false;
546 bool m_muplus = false;
547 uint16_t m_threshold = 0U;
548 bool m_overlap = false;
549 bool m_veto = false;
550 uint16_t m_roi = 0U;
551
552 // New Sector Logic
553 // RoI
554 uint16_t m_innerflag = 0U;
555 uint16_t m_coinflag = 0U;
556
557 // NSW
558 uint16_t m_nsweta = 0U;
559 uint16_t m_nswphi = 0U;
560 uint16_t m_nswsl = 0U;
561 uint16_t m_nswcand = 0U;
562 uint16_t m_nswdtheta = 0U;
563 uint16_t m_nswphires = 0U;
564 uint16_t m_nswlowres = 0U;
565 uint16_t m_nswid = 0U;
566
567 // RPC BIS78
568 uint16_t m_rpceta = 0U;
569 uint16_t m_rpcphi = 0U;
570 uint16_t m_rpcflag = 0U;
571 uint16_t m_rpcdeta = 0U;
572 uint16_t m_rpcdphi = 0U;
573
574 // EIFI
575 uint16_t m_ei = 0U;
576 uint16_t m_fi = 0U;
577 uint16_t m_cid = 0U;
578
579 // TMDB
580 uint16_t m_tmdbmod = 0U;
581 uint16_t m_tmdbbcid = 0U;
582};
583
585MsgStream& operator<<(MsgStream& sl, const TgcRawData& coll);
586
588std::ostream& operator<<(std::ostream& sl, const TgcRawData& coll);
589
590#endif
591
OFFLINE_FRAGMENTS_NAMESPACE::PointerType DataType
uint16_t bcId(uint32_t data)
unsigned bcTag(unsigned bcBitMap)
MsgStream & operator<<(MsgStream &sl, const TgcRawData &coll)
Overload of << operator for MsgStream for debug output.
An unit object of TGC ROD output.
Definition TgcRawData.h:23
uint16_t nswlowres() const
Definition TgcRawData.h:413
uint16_t hsub() const
Definition TgcRawData.h:349
uint16_t sswId() const
Definition TgcRawData.h:272
uint16_t m_rodId
Definition TgcRawData.h:498
bool isStrip() const
Definition TgcRawData.h:353
@ SLB_TYPE_TRIPLET_WIRE
Definition TgcRawData.h:34
@ SLB_TYPE_INNER_WIRE
Definition TgcRawData.h:36
@ SLB_TYPE_TRIPLET_STRIP
Definition TgcRawData.h:35
@ SLB_TYPE_INNER_STRIP
Definition TgcRawData.h:37
@ SLB_TYPE_DOUBLET_STRIP
Definition TgcRawData.h:33
@ SLB_TYPE_DOUBLET_WIRE
Definition TgcRawData.h:32
@ SLB_TYPE_UNKNOWN
Definition TgcRawData.h:38
uint16_t chip() const
Definition TgcRawData.h:337
static constexpr uint32_t RPC_CAND_BITSHIFT
Definition TgcRawData.h:224
uint16_t index() const
Definition TgcRawData.h:309
int16_t delta() const
Definition TgcRawData.h:317
uint16_t m_nswphi
Definition TgcRawData.h:559
uint16_t position() const
Definition TgcRawData.h:313
uint16_t subMatrix() const
Definition TgcRawData.h:329
uint16_t m_nswid
Definition TgcRawData.h:565
uint16_t m_bcId
Definition TgcRawData.h:504
bool isAdjacent() const
Definition TgcRawData.h:305
uint16_t l1Id() const
Definition TgcRawData.h:255
uint16_t m_rpcdphi
Definition TgcRawData.h:572
static constexpr uint32_t RPC_CAND_BIT
Definition TgcRawData.h:225
uint16_t innerflag() const
Definition TgcRawData.h:381
uint16_t m_subDetectorId
Definition TgcRawData.h:497
SlbType slbType() const
Definition TgcRawData.h:285
uint16_t bcId() const
Definition TgcRawData.h:259
TgcRawData & operator=(TgcRawData &&)=default
static constexpr uint32_t NSW_CAND_BIT
Definition TgcRawData.h:216
uint16_t channel() const
Definition TgcRawData.h:297
bool isMuplus() const
Definition TgcRawData.h:361
uint16_t m_rpcphi
Definition TgcRawData.h:569
bool isVeto() const
Definition TgcRawData.h:373
DataType type() const
Definition TgcRawData.h:280
SlbType m_slbType
Definition TgcRawData.h:506
uint16_t coinflag() const
Definition TgcRawData.h:385
void setOnlineId(uint16_t sId, uint16_t rId)
Definition TgcRawData.h:245
static constexpr uint32_t RPC_FLAG_BIT
Definition TgcRawData.h:223
bool cand3plus() const
Definition TgcRawData.h:357
bool m_cand3plus
Definition TgcRawData.h:545
int16_t m_delta
Definition TgcRawData.h:531
static constexpr uint32_t NSW_CAND_BITSHIFT
Definition TgcRawData.h:215
uint16_t ei() const
Definition TgcRawData.h:441
uint16_t m_tmdbmod
Definition TgcRawData.h:580
uint16_t bitpos() const
Definition TgcRawData.h:293
static constexpr uint32_t RPC_BCID_BITSHIFT
Definition TgcRawData.h:226
uint16_t m_innerflag
Definition TgcRawData.h:554
friend class TgcRawDataCnv_p1
Definition TgcRawData.h:25
bool m_adjacent
Definition TgcRawData.h:517
uint16_t rpcdeta() const
Definition TgcRawData.h:433
TgcRawData & operator=(const TgcRawData &)=default
uint16_t m_nswdtheta
Definition TgcRawData.h:562
uint16_t segment() const
Definition TgcRawData.h:325
uint16_t nswid() const
Definition TgcRawData.h:417
bool m_overlap
Definition TgcRawData.h:548
bool isCoincidence() const
Definition TgcRawData.h:237
~TgcRawData()=default
uint16_t tmdbbcid() const
Definition TgcRawData.h:457
uint16_t rpcphi() const
Definition TgcRawData.h:425
static constexpr uint32_t NSW_INPUT_BIT
Definition TgcRawData.h:218
uint16_t m_bcTag
Definition TgcRawData.h:494
uint16_t m_nswlowres
Definition TgcRawData.h:564
friend class TgcRawDataCnv_p2
Definition TgcRawData.h:26
uint16_t m_nswphires
Definition TgcRawData.h:563
uint16_t fi() const
Definition TgcRawData.h:445
uint16_t bcTag() const
Definition TgcRawData.h:251
static constexpr uint32_t RPC_BCID_BIT
Definition TgcRawData.h:227
uint16_t m_nswcand
Definition TgcRawData.h:561
uint16_t nsweta() const
Definition TgcRawData.h:389
TgcRawData(const TgcRawData &)=default
uint16_t nswcand() const
Definition TgcRawData.h:401
uint16_t m_threshold
Definition TgcRawData.h:547
void clear(uint16_t bcTag, uint16_t subDetectorId, uint16_t rodId, uint16_t l1Id, uint16_t bcId)
TgcRawData(TgcRawData &&)=default
uint16_t nswphires() const
Definition TgcRawData.h:409
static constexpr uint32_t NSW_INPUT_BITSHIFT
Definition TgcRawData.h:217
uint16_t cid() const
Definition TgcRawData.h:449
friend class TgcRawDataCnv_p4
Definition TgcRawData.h:28
uint16_t m_hsub
Definition TgcRawData.h:540
uint16_t subDetectorId() const
Definition TgcRawData.h:264
uint16_t m_fi
Definition TgcRawData.h:576
uint16_t m_pos
Definition TgcRawData.h:530
uint16_t slbId() const
Definition TgcRawData.h:276
static constexpr uint32_t RPC_FLAG_BITSHIFT
Definition TgcRawData.h:222
uint16_t rodId() const
Definition TgcRawData.h:268
uint16_t nswsl() const
Definition TgcRawData.h:397
uint16_t rpceta() const
Definition TgcRawData.h:421
uint16_t tmdbmod() const
Definition TgcRawData.h:453
uint16_t m_hitId
Definition TgcRawData.h:539
uint16_t m_tmdbbcid
Definition TgcRawData.h:581
uint16_t nswdtheta() const
Definition TgcRawData.h:405
void setType(uint16_t type)
uint16_t m_rpceta
Definition TgcRawData.h:568
uint16_t sector() const
Definition TgcRawData.h:333
uint16_t m_cid
Definition TgcRawData.h:577
static constexpr uint32_t NSW_BCID_BIT
Definition TgcRawData.h:220
bool m_muplus
Definition TgcRawData.h:546
uint16_t tracklet() const
Definition TgcRawData.h:301
uint16_t m_sector
Definition TgcRawData.h:536
uint16_t m_index
Definition TgcRawData.h:527
uint16_t m_ei
Definition TgcRawData.h:575
@ TYPE_INNER_EIFI
Definition TgcRawData.h:50
@ TYPE_INNER_TMDB
Definition TgcRawData.h:51
bool isHipt() const
Definition TgcRawData.h:341
uint16_t m_chip
Definition TgcRawData.h:537
uint16_t roi() const
Definition TgcRawData.h:377
uint16_t m_sswId
Definition TgcRawData.h:499
static constexpr uint32_t NSW_BCID_BITSHIFT
Definition TgcRawData.h:219
uint16_t rpcflag() const
Definition TgcRawData.h:429
uint16_t rpcdphi() const
Definition TgcRawData.h:437
uint16_t m_subMatrix
Definition TgcRawData.h:533
std::string slbTypeName() const
Definition TgcRawData.h:471
uint16_t m_coinflag
Definition TgcRawData.h:555
uint16_t m_l1Id
Definition TgcRawData.h:503
bool m_forward
Definition TgcRawData.h:524
uint16_t m_bitpos
Definition TgcRawData.h:512
uint16_t m_rpcdeta
Definition TgcRawData.h:571
uint16_t m_tracklet
Definition TgcRawData.h:515
uint16_t m_nsweta
Definition TgcRawData.h:558
uint16_t m_slbId
Definition TgcRawData.h:500
DataType m_type
Definition TgcRawData.h:523
std::string typeName() const
Definition TgcRawData.h:464
uint16_t m_roi
Definition TgcRawData.h:550
bool isOverlap() const
Definition TgcRawData.h:369
uint16_t m_rpcflag
Definition TgcRawData.h:570
uint16_t hitId() const
Definition TgcRawData.h:345
bool isForward() const
Definition TgcRawData.h:289
uint16_t m_nswsl
Definition TgcRawData.h:560
uint16_t m_segment
Definition TgcRawData.h:532
uint16_t inner() const
Definition TgcRawData.h:321
friend class TgcRawDataCnv_p3
Definition TgcRawData.h:27
uint16_t nswphi() const
Definition TgcRawData.h:393
uint16_t m_inner
Definition TgcRawData.h:542
uint16_t threshold() const
Definition TgcRawData.h:365
bool hipt
Definition globals.cxx:29
std::vector< std::string > veto
these patterns are anded
Definition listroot.cxx:191
Definition index.py:1