ATLAS Offline Software
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 
12 class MsgStream;
13 
21 {
22  public:
23  friend class TgcL1RawDataCnv_p1;
24 
25  enum SlbType
26  {
34  };
35 
36  enum DataType
37  {
46  };
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
59  uint16_t l1Id,
60  uint16_t bcId,
61  uint16_t type,
63  uint16_t pos,
64  int16_t delta);
65 
66  // Tracklets ( ROD ) *** For output from TrigT1TGC ***
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
84  uint16_t l1Id,
85  uint16_t bcId,
86  bool strip,
87  bool forward,
89  uint16_t chip,
91  bool hipt,
93  uint16_t sub,
94  int16_t delta,
95  uint16_t inner);
96 
97  // New Sector logic
98  // RoI
102  uint16_t l1Id,
103  uint16_t bcId,
104  bool forward,
106  uint16_t innerflag,
107  uint16_t coinflag,
108  bool muplus,
110  uint16_t roi);
111 
112  // NSW
116  uint16_t l1Id,
117  uint16_t bcId,
118  bool forward,
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
132  uint16_t l1Id,
133  uint16_t bcId,
134  bool forward,
136  uint16_t rpceta,
137  uint16_t rpcphi,
138  uint16_t rpcflag,
139  uint16_t rpcdeta,
140  uint16_t rpcdphi);
141 
142  // EIFI
146  uint16_t l1Id,
147  uint16_t bcId,
148  bool forward,
150  uint16_t ei,
151  uint16_t fi,
152  uint16_t cid); // chamber ID
153 
154  // TMDB
158  uint16_t l1Id,
159  uint16_t bcId,
160  bool forward,
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  */
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 
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  }
214  DataType type() const
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  }
228  {
229  return m_bitpos;
230  }
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  }
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  }
256  {
257  return m_segment;
258  }
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  }
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,
323  uint16_t l1Id,
324  uint16_t bcId);
325 
326  void clear(uint16_t bcTag,
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)
339 
340  // online Identifiers
346 
347  // BCID and L1ID on SLB
350 
352 
353  /********** Hit attributes
354  */
355 
356  // bitmap position [40..199]
358 
359  // Index of assocaitated coincidence (if any) [0..63]
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
373 
374  // Coincidence Data
379 
380  // HipT data
383  bool m_hipt = 0U;
386  bool m_strip = 0U;
388 
389  // New Sector Logic
390  // RoI
391  bool m_cand3plus = false;
392  bool m_muplus = false;
394  bool m_overlap = false;
395  bool m_veto = false;
399 
400  // NSW
409 
410  // RPC BIS78
416 
417  // EIFI
421 
422  // TMDB
425 
426 };
427 
429 MsgStream& operator<<(MsgStream& sl, const TgcL1RawData& coll);
430 
432 std::ostream& operator<<(std::ostream& sl, const TgcL1RawData& coll);
433 
434 #endif
435 
TgcL1RawData::m_forward
bool m_forward
Definition: TgcL1RawData.h:369
TgcL1RawData::TYPE_NSL_RPC
@ TYPE_NSL_RPC
Definition: TgcL1RawData.h:42
TgcL1RawData::m_coinflag
uint16_t m_coinflag
Definition: TgcL1RawData.h:398
TgcL1RawData::isOverlap
bool isOverlap() const
Definition: TgcL1RawData.h:299
TgcL1RawData::TYPE_NSL_ROI
@ TYPE_NSL_ROI
Definition: TgcL1RawData.h:40
TgcL1RawData::SLB_TYPE_TRIPLET_STRIP
@ SLB_TYPE_TRIPLET_STRIP
Definition: TgcL1RawData.h:30
TgcL1RawData::m_bitpos
uint16_t m_bitpos
Definition: TgcL1RawData.h:357
TgcL1RawData::m_tmdbbcid
uint16_t m_tmdbbcid
Definition: TgcL1RawData.h:424
SiliconTech::strip
@ strip
TgcL1RawData::m_nswsl
uint16_t m_nswsl
Definition: TgcL1RawData.h:403
TgcL1RawData::SLB_TYPE_DOUBLET_WIRE
@ SLB_TYPE_DOUBLET_WIRE
Definition: TgcL1RawData.h:27
TgcL1RawData::hitId
uint16_t hitId() const
Definition: TgcL1RawData.h:275
TgcL1RawData::bcTag
uint16_t bcTag() const
Definition: TgcL1RawData.h:181
TgcL1RawData::m_delta
int16_t m_delta
Definition: TgcL1RawData.h:376
TgcL1RawData::TYPE_TRACKLET
@ TYPE_TRACKLET
Definition: TgcL1RawData.h:38
TgcL1RawData::m_roi
uint16_t m_roi
Definition: TgcL1RawData.h:396
TgcL1RawData::TYPE_NSL_EIFI
@ TYPE_NSL_EIFI
Definition: TgcL1RawData.h:43
TgcL1RawData::delta
int16_t delta() const
Definition: TgcL1RawData.h:247
TgcL1RawData::subDetectorId
uint16_t subDetectorId() const
Definition: TgcL1RawData.h:194
index
Definition: index.py:1
TgcL1RawData::m_hipt
bool m_hipt
Definition: TgcL1RawData.h:383
TgcL1RawData::m_sector
uint16_t m_sector
Definition: TgcL1RawData.h:381
TgcL1RawData::m_slbType
SlbType m_slbType
Definition: TgcL1RawData.h:351
TgcL1RawData::m_cand3plus
bool m_cand3plus
Definition: TgcL1RawData.h:391
DataType
OFFLINE_FRAGMENTS_NAMESPACE::PointerType DataType
Definition: RoIBResultByteStreamTool.cxx:25
TgcL1RawData::m_chip
uint16_t m_chip
Definition: TgcL1RawData.h:382
TgcL1RawData::SLB_TYPE_DOUBLET_STRIP
@ SLB_TYPE_DOUBLET_STRIP
Definition: TgcL1RawData.h:28
TgcL1RawData::SLB_TYPE_UNKNOWN
@ SLB_TYPE_UNKNOWN
Definition: TgcL1RawData.h:33
TgcL1RawData::m_veto
bool m_veto
Definition: TgcL1RawData.h:395
TgcL1RawData::position
uint16_t position() const
Definition: TgcL1RawData.h:243
TgcL1RawData::DataType
DataType
Definition: TgcL1RawData.h:37
TgcL1RawData::m_ei
uint16_t m_ei
Definition: TgcL1RawData.h:418
TgcL1RawData::m_overlap
bool m_overlap
Definition: TgcL1RawData.h:394
TgcL1RawData::isHipt
bool isHipt() const
Definition: TgcL1RawData.h:271
TgcL1RawData::srodId
uint16_t srodId() const
Definition: TgcL1RawData.h:210
TgcL1RawDataCnv_p1
Definition: TgcL1RawDataCnv_p1.h:15
TgcL1RawData::m_rpcphi
uint16_t m_rpcphi
Definition: TgcL1RawData.h:412
TgcL1RawData::m_strip
bool m_strip
Definition: TgcL1RawData.h:386
TgcL1RawData::hsub
uint16_t hsub() const
Definition: TgcL1RawData.h:279
TgcL1RawData::m_muplus
bool m_muplus
Definition: TgcL1RawData.h:392
TgcL1RawData::isAdjacent
bool isAdjacent() const
Definition: TgcL1RawData.h:235
TgcL1RawData::m_nsweta
uint16_t m_nsweta
Definition: TgcL1RawData.h:401
xAOD::int16_t
setScaleOne setStatusOne setSaturated int16_t
Definition: gFexGlobalRoI_v1.cxx:55
TgcL1RawData::m_tmdbmod
uint16_t m_tmdbmod
Definition: TgcL1RawData.h:423
TgcL1RawData::m_index
uint16_t m_index
Definition: TgcL1RawData.h:372
TgcL1RawData::m_nswid
uint16_t m_nswid
Definition: TgcL1RawData.h:408
TgcL1RawData::channel
uint16_t channel() const
Definition: TgcL1RawData.h:227
TgcL1RawData::threshold
uint16_t threshold() const
Definition: TgcL1RawData.h:295
TgcL1RawData::isMuplus
bool isMuplus() const
Definition: TgcL1RawData.h:291
TgcL1RawData::m_bcId
uint16_t m_bcId
Definition: TgcL1RawData.h:349
TgcL1RawData::sswId
uint16_t sswId() const
Definition: TgcL1RawData.h:202
TgcL1RawData::m_pos
uint16_t m_pos
Definition: TgcL1RawData.h:375
TgcL1RawData::l1Id
uint16_t l1Id() const
Definition: TgcL1RawData.h:185
TgcL1RawData::setOnlineId
void setOnlineId(uint16_t sId, uint16_t rId)
Definition: TgcL1RawData.h:175
TgcL1RawData::inner
uint16_t inner() const
Definition: TgcL1RawData.h:251
TgcL1RawData::sector
uint16_t sector() const
Definition: TgcL1RawData.h:263
maskDeadModules.mod
mod
Definition: maskDeadModules.py:36
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
TgcL1RawData::TYPE_NSL_TMDB
@ TYPE_NSL_TMDB
Definition: TgcL1RawData.h:44
TgcL1RawData
An unit object of TGC SROD output.
Definition: TgcL1RawData.h:21
TgcL1RawData::m_adjacent
bool m_adjacent
Definition: TgcL1RawData.h:362
TgcL1RawData::type
DataType type() const
Definition: TgcL1RawData.h:214
TgcL1RawData::m_nswphires
uint16_t m_nswphires
Definition: TgcL1RawData.h:406
TgcL1RawData::clear
void clear(uint16_t bcTag, uint16_t subDetectorId, uint16_t srodId, uint16_t l1Id, uint16_t bcId)
Definition: TgcL1RawData.cxx:49
TgcL1RawData::roi
uint16_t roi() const
Definition: TgcL1RawData.h:307
TgcL1RawData::m_nswdtheta
uint16_t m_nswdtheta
Definition: TgcL1RawData.h:405
TgcL1RawData::isCoincidence
bool isCoincidence() const
Definition: TgcL1RawData.h:168
TgcL1RawData::m_l1Id
uint16_t m_l1Id
Definition: TgcL1RawData.h:348
TgcL1RawData::m_nswlowres
uint16_t m_nswlowres
Definition: TgcL1RawData.h:407
TgcL1RawData::TYPE_NSL_NSW
@ TYPE_NSL_NSW
Definition: TgcL1RawData.h:41
TgcL1RawData::m_threshold
uint16_t m_threshold
Definition: TgcL1RawData.h:393
TgcL1RawData::SLB_TYPE_INNER_STRIP
@ SLB_TYPE_INNER_STRIP
Definition: TgcL1RawData.h:32
TgcL1RawData::m_fi
uint16_t m_fi
Definition: TgcL1RawData.h:419
TgcL1RawData::m_rodId
uint16_t m_rodId
Definition: TgcL1RawData.h:342
TgcL1RawData::m_hitId
uint16_t m_hitId
Definition: TgcL1RawData.h:384
TgcL1RawData::SLB_TYPE_TRIPLET_WIRE
@ SLB_TYPE_TRIPLET_WIRE
Definition: TgcL1RawData.h:29
TgcL1RawData::SlbType
SlbType
Definition: TgcL1RawData.h:26
TgcL1RawData::m_cid
uint16_t m_cid
Definition: TgcL1RawData.h:420
TgcL1RawData::m_sswId
uint16_t m_sswId
Definition: TgcL1RawData.h:343
TgcL1RawData::m_innerflag
uint16_t m_innerflag
Definition: TgcL1RawData.h:397
TgcL1RawData::bitpos
uint16_t bitpos() const
Definition: TgcL1RawData.h:223
threshold
Definition: chainparser.cxx:74
TgcL1RawData::typeName
std::string typeName() const
Definition: TgcL1RawData.h:314
TgcL1RawData::m_subDetectorId
uint16_t m_subDetectorId
Definition: TgcL1RawData.h:341
xAOD::bcid
setEventNumber setTimeStamp bcid
Definition: EventInfo_v1.cxx:133
TgcL1RawData::slbId
uint16_t slbId() const
Definition: TgcL1RawData.h:206
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
TgcL1RawData::m_srodId
uint16_t m_srodId
Definition: TgcL1RawData.h:345
TgcL1RawData::chip
uint16_t chip() const
Definition: TgcL1RawData.h:267
operator<<
MsgStream & operator<<(MsgStream &sl, const TgcL1RawData &coll)
Overload of << operator for MsgStream for debug output.
Definition: TgcL1RawData.cxx:342
TgcL1RawData::m_nswcand
uint16_t m_nswcand
Definition: TgcL1RawData.h:404
TgcL1RawData::m_rpcdphi
uint16_t m_rpcdphi
Definition: TgcL1RawData.h:415
TgcL1RawData::m_rpceta
uint16_t m_rpceta
Definition: TgcL1RawData.h:411
TgcL1RawData::TYPE_HIPT
@ TYPE_HIPT
Definition: TgcL1RawData.h:39
TgcL1RawData::m_nswphi
uint16_t m_nswphi
Definition: TgcL1RawData.h:402
TgcL1RawData::isVeto
bool isVeto() const
Definition: TgcL1RawData.h:303
TgcL1RawData::m_segment
uint16_t m_segment
Definition: TgcL1RawData.h:377
TgcL1RawData::bcId
uint16_t bcId() const
Definition: TgcL1RawData.h:189
TgcL1RawData::subMatrix
uint16_t subMatrix() const
Definition: TgcL1RawData.h:259
TgcL1RawData::m_slbId
uint16_t m_slbId
Definition: TgcL1RawData.h:344
TgcL1RawData::m_hsub
uint16_t m_hsub
Definition: TgcL1RawData.h:385
TgcL1RawData::tracklet
uint16_t tracklet() const
Definition: TgcL1RawData.h:231
TgcL1RawData::isStrip
bool isStrip() const
Definition: TgcL1RawData.h:283
checkFileSG.fi
fi
Definition: checkFileSG.py:65
TgcL1RawData::m_subMatrix
uint16_t m_subMatrix
Definition: TgcL1RawData.h:378
TgcL1RawData::m_bcTag
uint16_t m_bcTag
Definition: TgcL1RawData.h:338
TgcL1RawData::setType
void setType(uint16_t type)
Definition: TgcL1RawData.cxx:279
TgcL1RawData::m_rpcdeta
uint16_t m_rpcdeta
Definition: TgcL1RawData.h:414
TgcL1RawData::~TgcL1RawData
virtual ~TgcL1RawData()=default
TgcL1RawData::m_rpcflag
uint16_t m_rpcflag
Definition: TgcL1RawData.h:413
TgcL1RawData::TgcL1RawData
TgcL1RawData()
Definition: TgcL1RawData.h:49
TgcL1RawData::SLB_TYPE_INNER_WIRE
@ SLB_TYPE_INNER_WIRE
Definition: TgcL1RawData.h:31
TgcL1RawData::m_inner
uint16_t m_inner
Definition: TgcL1RawData.h:387
TgcL1RawData::m_tracklet
uint16_t m_tracklet
Definition: TgcL1RawData.h:360
TgcL1RawData::rodId
uint16_t rodId() const
Definition: TgcL1RawData.h:198
TgcL1RawData::m_type
DataType m_type
Definition: TgcL1RawData.h:368
TgcL1RawData::index
uint16_t index() const
Definition: TgcL1RawData.h:239
TgcL1RawData::segment
uint16_t segment() const
Definition: TgcL1RawData.h:255
TgcL1RawData::cand3plus
bool cand3plus() const
Definition: TgcL1RawData.h:287
hipt
bool hipt
Definition: globals.cxx:29
TgcL1RawData::TYPE_UNKNOWN
@ TYPE_UNKNOWN
Definition: TgcL1RawData.h:45
TgcL1RawData::isForward
bool isForward() const
Definition: TgcL1RawData.h:219