ATLAS Offline Software
TgcByteStream.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "TgcByteStream.h"
6 
7 #include "TgcByteStreamData.h"
8 #include "MuonRDO/TgcRdo.h"
9 
10 #include "GaudiKernel/MsgStream.h"
11 
13 = default;
14 
16 = default;
17 
18 void Muon::TgcByteStream::rdo2ByteStream(const TgcRdo* rdo, ByteStream& bs, MsgStream& log)
19 {
20  bool p_debug = (log.level() <= MSG::DEBUG);
21 
22  if(p_debug) {
23  log << MSG::DEBUG << "TgcByteStream::rdo2ByteStream" << endmsg;
24  }
25 
26  ByteStream headerBS, statusBS, countersBS, dataBS, footerBS;
27  TGC_BYTESTREAM_FRAGMENTCOUNT counters[7] = {
28  {0, 1}, {0, 2}, {0, 3}, {0, 4}, {0, 5}, {0, 8}, {0, 9}
29  };
31 
32  if(p_debug) {
33  log << MSG::DEBUG << "Encoding " << rdo->size() << " elements" << endmsg;
34  }
35 
36  for (const TgcRawData* raw : *rdo)
37  {
38  switch(raw->type())
39  {
41  ls.hitsRO = 1;
42  counters[1].count++;
43  {
45  roh.channel = raw->channel()-40;
46  roh.sbId = raw->slbId();
47  // revised document : https://twiki.cern.ch/twiki/pub/Main/TgcDocument/ROBformat_V4_0_v2.pdf
48  // (old ver. : http://cern.ch/atlas-tgc/doc/ROBformat.pdf)
49  // Table 7 : SB type, bits 15..13
50  // 0,1: doublet wire, strip
51  // 2,3: triplet wire, strip triplet;
52  // 4 : inner wire and strip
53  // TgcRawData::SlbType is defined in TgcRawData.h
54  // 0: SLB_TYPE_DOUBLET_WIRE,
55  // 1: SLB_TYPE_DOUBLET_STRIP,
56  // 2: SLB_TYPE_TRIPLET_WIRE,
57  // 3: SLB_TYPE_TRIPLET_STRIP,
58  // 4: SLB_TYPE_INNER_WIRE,
59  // 5: SLB_TYPE_INNER_STRIP,
60  // 6: SLB_TYPE_UNKNOWN
61  roh.sbType = raw->slbType();
62 
63  // SBLOCs for EIFI are different in online (ByteStream) and offline (RDO).
64  // bug #57051: Wrong numbering of SBLOC for Inner Stations (EI/FI) in 12-fold TGC cablings
65  // ByteStream : slbId = SBLOC + ip*2 (ip=0, 1, 2), SBLOC = 8 or 9 (EI), 0 or 1 (FI)
66  // slbId = 8, 10, 12, 9, 11, 13, 0, 2, 4, 1, 3, 5
67  // RDO : slbId = SBLOC + ip*4 (ip=0, 1, 2), SBLOC = 1 or 3 (EI), 0 or 2 (FI)
68  // slbId = 1, 5, 9, 3, 7, 11, 0, 4, 8, 2, 6, 10
71  if(raw->slbId()%2==0) roh.sbId = raw->slbId() /2;
72  else roh.sbId = (raw->slbId()+15)/2;
73  }
74 
75  roh.adj = raw->isAdjacent();
76  roh.ldbId = raw->sswId();
77  roh.bcBitmap = bcBitmap(raw->bcTag());
78  roh.tracklet = raw->tracklet();
79  roh.ok = 1;
80  dataBS.push_back(toBS32(roh));
81  }
82  break;
84  ls.trkRO = 1;
85  counters[2].count++;
86  if(raw->slbType() == TgcRawData::SLB_TYPE_TRIPLET_STRIP)
87  {
89  rot.phi = raw->position();
90  rot.seg = raw->segment();
91  rot.sbId = raw->slbId();
92  rot.ldbId = raw->sswId();
93  rot.bcBitmap = bcBitmap(raw->bcTag());
95  rot.ok = 1;
96  dataBS.push_back(toBS32(rot));
97  }
98  else
99  {
101  rot.rphi = raw->position();
102  rot.subm = raw->subMatrix();
103  rot.seg = raw->segment();
104  rot.delta = raw->delta();
105  rot.sbId = raw->slbId();
106  rot.ldbId = raw->sswId();
107  rot.bcBitmap = bcBitmap(raw->bcTag());
108  // revised document : https://twiki.cern.ch/twiki/pub/Main/TgcDocument/ROBformat_V4_0_v2.pdf
109  // (old ver. : http://cern.ch/atlas-tgc/doc/ROBformat.pdf)
110  // Table 8 : Slave Board type, bits 30..28
111  // 0,1: doublet wire, strip
112  // 2,3: triplet wire, strip triplet;
113  // 4,5: inner wire, strip
114  // TgcRawData::SlbType is defined in TgcRawData.h
115  // 0: SLB_TYPE_DOUBLET_WIRE,
116  // 1: SLB_TYPE_DOUBLET_STRIP,
117  // 2: SLB_TYPE_TRIPLET_WIRE,
118  // 3: SLB_TYPE_TRIPLET_STRIP,
119  // 4: SLB_TYPE_INNER_WIRE,
120  // 5: SLB_TYPE_INNER_STRIP,
121  // 6: SLB_TYPE_UNKNOWN
122  rot.slbType = raw->slbType();
123  rot.ok = 1;
124  dataBS.push_back(toBS32(rot));
125  }
126  break;
128  ls.hipt = 1;
129  counters[5].count++;
130  if(raw->isStrip() == 1 && raw->sector() & 4 ){
132  hpt.inner = raw->inner();
133  //hpt.hipt = raw->isHipt();
134  //hpt.cand = raw->index();
135  //hpt.chip = raw->chip();
136  hpt.sector = raw->sector();
137  //hpt.fwd = raw->isForward();
138  hpt.strip = raw->isStrip();
139  hpt.bcBitmap = bcBitmap(raw->bcTag());
140  dataBS.push_back(toBS32(hpt));
141  }else{
143  hpt.delta = raw->delta();
144  hpt.sub = raw->hsub();
145  hpt.hitId = raw->hitId();
146  hpt.hipt = raw->isHipt();
147  hpt.cand = raw->index();
148  hpt.chip = raw->chip();
149  hpt.sector = raw->sector();
150  hpt.fwd = raw->isForward();
151  hpt.strip = raw->isStrip();
152  hpt.bcBitmap = bcBitmap(raw->bcTag());
153  dataBS.push_back(toBS32(hpt));
154  }
155  break;
156  case TgcRawData::TYPE_SL:
157  ls.sl = 1;
158  counters[6].count++;
159  {
161  sl.roi = raw->roi();
162  sl.overlap = raw->isOverlap();
163  sl.veto = raw->isVeto();
164  sl.threshold = raw->threshold();
165  sl.sign = raw->isMuplus();
166  sl.cand = raw->index();
167  sl.sector = raw->sector();
168  sl.fwd = raw->isForward();
169  sl.bcBitmap = bcBitmap(raw->bcTag());
170  sl.cand2plus = raw->cand3plus();
171  dataBS.push_back(toBS32(sl));
172  }
173  break;
174  default:
175  log << MSG::ERROR << "Invalid type " << raw->typeName() << endmsg;
176  break;
177  }
178  }
179 
180  statusBS.push_back(toBS32(ls));
181  statusBS.push_back(rdo->orbit());
182 
183  for(int iCnt = 0; iCnt < 7; iCnt++)
184  {
185  if(counters[iCnt].count > 0)
186  {
187  countersBS.push_back(toBS32(counters[iCnt]));
188  }
189  }
190 
191  bs.clear();
192  bs.insert(bs.end(), countersBS.begin(), countersBS.end());
193  bs.insert(bs.end(), dataBS.begin(), dataBS.end());
194 
195  if(p_debug) {
196  log << MSG::DEBUG << "TgcByteStream::rdo2ByteStream done" << endmsg;
197  }
198 }
199 
201  MsgStream& log)
202 {
203  // Check that we are filling the right collection
204 
205  bool p_debug = (log.level() <= MSG::DEBUG);
206 
208  fromBS32(source_id, sid);
209 
210  if(rdo.identify() != TgcRdo::calculateOnlineId(sid.side, sid.rodid))
211  {
212  if(p_debug) {
213  log << MSG::DEBUG << "Error: input TgcRdo id does not match bytestream id" << endmsg;
214  }
215  return;
216  }
217 
218  rdo.setOnlineId(sid.side, sid.rodid);
219 
220  TGC_BYTESTREAM_FRAGMENTCOUNT counters[7] = {
221  {0, 1}, {0, 2}, {0, 3}, {0, 4}, {0, 5}, {0, 8}, {0, 9}
222  };
224 
225 
226  int iBs = 0;
227  for(int iCnt = 0; iCnt < 7; iCnt++)
228  {
229  fromBS32(bs[iBs], counter);
230  if(counter.id == counters[iCnt].id)
231  {
232  counters[iCnt].count = counter.count;
233  iBs++;
234  }
235  }
236 
237  for(int iCnt = 0; iCnt < 7; iCnt++)
238  {
239  if(counters[iCnt].count == 0) continue;
240  switch(counters[iCnt].id)
241  {
242  case 1: // Raw data format (SSW format)
243  {
244  if(p_debug) {
245  log << MSG::DEBUG
246  << "fragment" << counters[iCnt].id << " "
247  << counters[iCnt].count << "words" << endmsg;
248  }
249  for(unsigned iFrag = 0; iFrag < counters[iCnt].count; iFrag++)
250  {
251  if(p_debug) {
252  log << MSG::DEBUG
253  << "WORD" << iFrag << ":" << MSG::hex << bs[iBs] << endmsg;
254  }
255  iBs++;
256  }
257  break;
258  }
259 
260  case 2: // TgcRawData::TYPE_HIT
261  {
262  if(p_debug) {
263  log << MSG::DEBUG << "fragment"
264  << counters[iCnt].id << " " << counters[iCnt].count
265  << "words" << endmsg;
266  }
268  for(unsigned iFrag = 0; iFrag < counters[iCnt].count; iFrag++)
269  {
270  if(p_debug) {
271  log << MSG::DEBUG <<"WORD" << iFrag << ":" << MSG::hex << bs[iBs] << endmsg;
272  }
273  fromBS32(bs[iBs++], roh);
274 
275 
276  if(p_debug) {
277  log<< MSG::DEBUG
278  << " rdo.subDetectorId():" << rdo.subDetectorId()
279  << " rdo.rodId():" <<rdo.rodId()
280  << " roh.ldbId:" <<roh.ldbId
281  << " roh.sbId:" <<roh.sbId
282  << " rdo.l1Id():"<<rdo.l1Id()
283  << " rdo.bcId():"<<rdo.bcId()<<endmsg;
284  }
285 
286  uint16_t slbId = roh.sbId;
287  // SBLOCs for EIFI are different in online (ByteStream) and offline (RDO).
288  // bug #57051: Wrong numbering of SBLOC for Inner Stations (EI/FI) in 12-fold TGC cablings
289  // ByteStream : slbId = SBLOC + ip*2 (ip=0, 1, 2), SBLOC = 8 or 9 (EI), 0 or 1 (FI)
290  // slbId = 8, 10, 12, 9, 11, 13, 0, 2, 4, 1, 3, 5
291  // RDO : slbId = SBLOC + ip*4 (ip=0, 1, 2), SBLOC = 1 or 3 (EI), 0 or 2 (FI)
292  // slbId = 1, 5, 9, 3, 7, 11, 0, 4, 8, 2, 6, 10
295  if(roh.sbId<8) slbId = roh.sbId *2;
296  else slbId = (roh.sbId-8)*2+1;
297  }
298 
299  TgcRawData* raw = new TgcRawData(bcTag(roh.bcBitmap),
300  rdo.subDetectorId(),
301  rdo.rodId(),
302  roh.ldbId,
303  slbId,
304  rdo.l1Id(),
305  rdo.bcId(),
306  // revised document : https://twiki.cern.ch/twiki/pub/Main/TgcDocument/ROBformat_V4_0_v2.pdf
307  // (old ver. : http://cern.ch/atlas-tgc/doc/ROBformat.pdf)
308  // Table 7 : SB type, bits 15..13
309  // 0,1: doublet wire, strip
310  // 2,3: triplet wire, strip triplet;
311  // 4 : inner wire and strip
312  // TgcRawData::SlbType is defined in TgcRawData.h
313  // 0: SLB_TYPE_DOUBLET_WIRE,
314  // 1: SLB_TYPE_DOUBLET_STRIP,
315  // 2: SLB_TYPE_TRIPLET_WIRE,
316  // 3: SLB_TYPE_TRIPLET_STRIP,
317  // 4: SLB_TYPE_INNER_WIRE,
318  // 5: SLB_TYPE_INNER_STRIP,
319  // 6: SLB_TYPE_UNKNOWN
321  (bool)roh.adj,
322  roh.tracklet,
323  roh.channel+40);
324  rdo.push_back(raw);
325  }
326  break;
327  }
328  case 3: // TgcRawData::TYPE_TRACKLET
329  {
330  if(p_debug) {
331  log << MSG::DEBUG << "fragment"
332  << counters[iCnt].id << " " << counters[iCnt].count
333  << "words" << endmsg;
334  }
337  for(unsigned iFrag = 0; iFrag < counters[iCnt].count; iFrag++)
338  {
339  if(p_debug) {
340  log<< MSG::DEBUG << "WORD"
341  << iFrag << ":" << MSG::hex << bs[iBs] << endmsg;
342  }
343  fromBS32(bs[iBs], rostrip);
344 
346  {
347  TgcRawData* raw = new TgcRawData(bcTag(rostrip.bcBitmap),
348  rdo.subDetectorId(),
349  rdo.rodId(),
350  rostrip.ldbId,
351  rostrip.sbId,
352  rdo.l1Id(),
353  rdo.bcId(),
355  0,
356  rostrip.seg,
357  rostrip.subc,
358  rostrip.phi);
359  rdo.push_back(raw);
360  }
361  else
362  {
363  fromBS32(bs[iBs], rotrk);
364  TgcRawData* raw = new TgcRawData(bcTag(rotrk.bcBitmap),
365  rdo.subDetectorId(),
366  rdo.rodId(),
367  rotrk.ldbId,
368  rotrk.sbId,
369  rdo.l1Id(),
370  rdo.bcId(),
371  // revised document : https://twiki.cern.ch/twiki/pub/Main/TgcDocument/ROBformat_V4_0_v2.pdf
372  // (old ver. : http://cern.ch/atlas-tgc/doc/ROBformat.pdf)
373  // Table 8 : Slave Board type, bits 30..28
374  // 0,1: doublet wire, strip
375  // 2,3: triplet wire, strip triplet;
376  // 4,5: inner wire, strip
377  // TgcRawData::SlbType is defined in TgcRawData.h
378  // 0: SLB_TYPE_DOUBLET_WIRE,
379  // 1: SLB_TYPE_DOUBLET_STRIP,
380  // 2: SLB_TYPE_TRIPLET_WIRE,
381  // 3: SLB_TYPE_TRIPLET_STRIP,
382  // 4: SLB_TYPE_INNER_WIRE,
383  // 5: SLB_TYPE_INNER_STRIP,
384  // 6: SLB_TYPE_UNKNOWN
386  rotrk.delta,
387  rotrk.seg,
388  0,
389  rotrk.rphi);
390  rdo.push_back(raw);
391  }
392  iBs++;
393  }
394  break;
395  }
396  case 8: // TgcRawData::TYPE_HIPT
397  {
398  if(p_debug) {
399  log << MSG::DEBUG << "fragment"
400  << counters[iCnt].id << " " << counters[iCnt].count
401  << "words" << endmsg;
402  }
404  TGC_BYTESTREAM_HIPT_INNER hptinner;
405  for(unsigned iFrag = 0; iFrag < counters[iCnt].count; iFrag++)
406  {
407  if(p_debug) {
408  log << MSG::DEBUG << "WORD"
409  << iFrag << ":" << MSG::hex << bs[iBs] << endmsg;
410  }
411  fromBS32(bs[iBs], hptinner);
412  if(hptinner.sector & 4){
413  TgcRawData* raw = new TgcRawData(bcTag(hpt.bcBitmap),
414  rdo.subDetectorId(),
415  rdo.rodId(),
416  rdo.l1Id(),
417  rdo.bcId(),
418  hptinner.strip,
419  0,
420  hptinner.sector,
421  0,
422  0,
423  0,
424  0,
425  0,
426  0,
427  hptinner.inner);
428  rdo.push_back(raw);
429  }else{
430  fromBS32(bs[iBs], hpt);
431  TgcRawData* raw = new TgcRawData(bcTag(hpt.bcBitmap),
432  rdo.subDetectorId(),
433  rdo.rodId(),
434  rdo.l1Id(),
435  rdo.bcId(),
436  hpt.strip,
437  hpt.fwd,
438  hpt.sector,
439  hpt.chip,
440  hpt.cand,
441  hpt.hipt,
442  hpt.hitId,
443  hpt.sub,
444  hpt.delta,
445  0);
446  rdo.push_back(raw);
447  }
448  iBs++;
449  }
450  break;
451  }
452  case 9: // TgcRawData::TYPE_SL
453  {
454  if(p_debug) {
455  log << MSG::DEBUG << "fragment"
456  << counters[iCnt].id << " " << counters[iCnt].count
457  << "words" << endmsg;
458  }
460  for(unsigned iFrag = 0; iFrag < counters[iCnt].count; iFrag++)
461  {
462  if(p_debug) {
463  log << MSG::DEBUG << "WORD"
464  << iFrag << ":" << MSG::hex << bs[iBs] << endmsg;
465  }
466  fromBS32(bs[iBs++], sl);
467 
468  TgcRawData* raw = new TgcRawData(bcTag(sl.bcBitmap),
469  rdo.subDetectorId(),
470  rdo.rodId(),
471  rdo.l1Id(),
472  rdo.bcId(),
473  sl.cand2plus,
474  static_cast<bool>(sl.fwd),
475  sl.sector,
476  sl.cand,
477  sl.sign,
478  sl.threshold,
479  sl.overlap,
480  sl.veto,
481  sl.roi);
482  rdo.push_back(raw);
483  }
484  break;
485  }
486  default:
487  if(p_debug) {
488  log << MSG::DEBUG
489  << "Error: TgcByteStream::byteStream2Rdo Unsupported fragment type "
490  << counters[iCnt].id << endmsg;
491  }
492  break;
493  }
494  }
495 
496  if(p_debug) {
497  log << MSG::DEBUG << "Decoded " << MSG::dec << rdo.size()
498  << " elements" << endmsg;
499  log << MSG::DEBUG << "TgcByteStream::byteStream2Rdo done" << endmsg;
500  }
501 }
TGC_BYTESTREAM_SOURCEID::rodid
unsigned rodid
Definition: TgcByteStreamData.h:23
TgcRdo::identify
uint16_t identify() const
Definition: TgcRdo.h:107
TGC_BYTESTREAM_READOUTTRIPLETSTRIP::ok
unsigned ok
Definition: TgcByteStreamData.h:124
TGC_BYTESTREAM_HIPT::hitId
unsigned hitId
Definition: TgcByteStreamData.h:134
TGC_BYTESTREAM_HIPT_INNER::sector
unsigned sector
Definition: TgcByteStreamData.h:155
TGC_BYTESTREAM_READOUTTRACKLET::seg
unsigned seg
Definition: TgcByteStreamData.h:97
TGC_BYTESTREAM_SL::cand2plus
unsigned cand2plus
Definition: TgcByteStreamData.h:177
TgcRdo::calculateOnlineId
static uint16_t calculateOnlineId(uint16_t subDetectorId, uint16_t rodId)
Definition: TgcRdo.cxx:58
TGC_BYTESTREAM_READOUTHIT::sbId
unsigned sbId
Definition: TgcByteStreamData.h:80
TgcRawData::TYPE_HIT
@ TYPE_HIT
Definition: TgcRawData.h:43
TGC_BYTESTREAM_READOUTTRIPLETSTRIP::slbType
unsigned slbType
Definition: TgcByteStreamData.h:123
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
TGC_BYTESTREAM_HIPT_INNER::bcBitmap
unsigned bcBitmap
Definition: TgcByteStreamData.h:158
TGC_BYTESTREAM_READOUTTRACKLET::sbId
unsigned sbId
Definition: TgcByteStreamData.h:99
TGC_BYTESTREAM_READOUTHIT::ldbId
unsigned ldbId
Definition: TgcByteStreamData.h:83
TGC_BYTESTREAM_HIPT::sector
unsigned sector
Definition: TgcByteStreamData.h:138
TGC_BYTESTREAM_READOUTTRACKLET::delta
signed delta
Definition: TgcByteStreamData.h:98
TGC_BYTESTREAM_SL::overlap
unsigned overlap
Definition: TgcByteStreamData.h:168
TGC_BYTESTREAM_READOUTHIT::adj
unsigned adj
Definition: TgcByteStreamData.h:82
TGC_BYTESTREAM_READOUTTRACKLET::slbType
unsigned slbType
Definition: TgcByteStreamData.h:104
TGC_BYTESTREAM_READOUTTRIPLETSTRIP::bcBitmap
unsigned bcBitmap
Definition: TgcByteStreamData.h:120
TGC_BYTESTREAM_HIPT::cand
unsigned cand
Definition: TgcByteStreamData.h:136
TGC_BYTESTREAM_SL::threshold
unsigned threshold
Definition: TgcByteStreamData.h:169
TgcRdo::l1Id
uint16_t l1Id() const
Definition: TgcRdo.h:150
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
TGC_BYTESTREAM_HIPT::hipt
unsigned hipt
Definition: TgcByteStreamData.h:135
Muon::TgcByteStream::rdo2ByteStream
static void rdo2ByteStream(const TgcRdo *rdo, ByteStream &bs, MsgStream &log)
Convert RDO to ByteStream.
Definition: TgcByteStream.cxx:18
TGC_BYTESTREAM_HIPT::bcBitmap
unsigned bcBitmap
Definition: TgcByteStreamData.h:141
TGC_BYTESTREAM_READOUTTRIPLETSTRIP
The struct for triplet strip in ByteStream.
Definition: TgcByteStreamData.h:112
Muon::TgcByteStream::~TgcByteStream
~TgcByteStream()
Destructor.
TGC_BYTESTREAM_HIPT::sub
unsigned sub
Definition: TgcByteStreamData.h:133
TGC_BYTESTREAM_READOUTTRACKLET
The struct for tracklet in ByteStream.
Definition: TgcByteStreamData.h:94
TGC_BYTESTREAM_READOUTTRIPLETSTRIP::sbId
unsigned sbId
Definition: TgcByteStreamData.h:118
TGC_BYTESTREAM_HIPT
The struct for HiPt in ByteStream.
Definition: TgcByteStreamData.h:131
TgcRdo::subDetectorId
uint16_t subDetectorId() const
Definition: TgcRdo.h:134
TGC_BYTESTREAM_SOURCEID
The struct for source ID in ByteStream.
Definition: TgcByteStreamData.h:22
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
TGC_BYTESTREAM_HIPT::chip
unsigned chip
Definition: TgcByteStreamData.h:137
TGC_BYTESTREAM_READOUTTRIPLETSTRIP::seg
unsigned seg
Definition: TgcByteStreamData.h:116
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
Muon::TgcByteStream::TgcByteStream
TgcByteStream()
Constructor.
fromBS32
void fromBS32(uint32_t data, T &s)
Definition: TgcByteStreamData.h:324
TGC_BYTESTREAM_HIPT_INNER::strip
unsigned strip
Definition: TgcByteStreamData.h:157
TGC_BYTESTREAM_READOUTTRIPLETSTRIP::ldbId
unsigned ldbId
Definition: TgcByteStreamData.h:119
TGC_BYTESTREAM_READOUTHIT
The struct for hit in ByteStream.
Definition: TgcByteStreamData.h:78
TGC_BYTESTREAM_READOUTHIT::tracklet
unsigned tracklet
Definition: TgcByteStreamData.h:85
TgcByteStream.h
TGC_BYTESTREAM_SL::sign
unsigned sign
Definition: TgcByteStreamData.h:172
TgcRawData::TYPE_SL
@ TYPE_SL
Definition: TgcRawData.h:46
TGC_BYTESTREAM_READOUTTRIPLETSTRIP::phi
unsigned phi
Definition: TgcByteStreamData.h:113
TGC_BYTESTREAM_SL::veto
unsigned veto
Definition: TgcByteStreamData.h:178
TGC_BYTESTREAM_HIPT_INNER
The struct for Inner trigger bits in ByteStream.
Definition: TgcByteStreamData.h:149
TGC_BYTESTREAM_SL::fwd
unsigned fwd
Definition: TgcByteStreamData.h:175
TgcRdo.h
TGC_BYTESTREAM_SL::bcBitmap
unsigned bcBitmap
Definition: TgcByteStreamData.h:176
TGC_BYTESTREAM_READOUTHIT::bcBitmap
unsigned bcBitmap
Definition: TgcByteStreamData.h:84
TGC_BYTESTREAM_SL::sector
unsigned sector
Definition: TgcByteStreamData.h:174
TGC_BYTESTREAM_FRAGMENTCOUNT::count
unsigned count
Definition: TgcByteStreamData.h:72
TgcRdo::bcId
uint16_t bcId() const
Definition: TgcRdo.h:146
TGC_BYTESTREAM_READOUTHIT::sbType
unsigned sbType
Definition: TgcByteStreamData.h:81
bcBitmap
unsigned bcBitmap(uint16_t bcTag)
Definition: TgcByteStreamData.h:359
TGC_BYTESTREAM_READOUTTRACKLET::ldbId
unsigned ldbId
Definition: TgcByteStreamData.h:100
TGC_BYTESTREAM_HIPT::strip
unsigned strip
Definition: TgcByteStreamData.h:140
TgcByteStreamData.h
TGC_BYTESTREAM_READOUTTRACKLET::subm
unsigned subm
Definition: TgcByteStreamData.h:96
TGC_BYTESTREAM_SL::cand
unsigned cand
Definition: TgcByteStreamData.h:173
TGC_BYTESTREAM_FRAGMENTCOUNT::id
unsigned id
Definition: TgcByteStreamData.h:73
TGC_BYTESTREAM_READOUTTRACKLET::rphi
unsigned rphi
Definition: TgcByteStreamData.h:95
TGC_BYTESTREAM_HIPT::delta
signed delta
Definition: TgcByteStreamData.h:132
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
TGC_BYTESTREAM_LOCALSTATUS
The struct for local status in ByteStream.
Definition: TgcByteStreamData.h:46
Muon::TgcByteStream::byteStream2Rdo
static void byteStream2Rdo(const ByteStream &bs, TgcRdo &rdo, uint32_t source_id, MsgStream &log)
Convert ByteStream to RDO.
Definition: TgcByteStream.cxx:200
TGC_BYTESTREAM_READOUTHIT::ok
unsigned ok
Definition: TgcByteStreamData.h:87
TgcRdo::setOnlineId
void setOnlineId(uint16_t subDetectorId, uint16_t rodId)
Definition: TgcRdo.cxx:35
TGC_BYTESTREAM_READOUTTRIPLETSTRIP::subc
unsigned subc
Definition: TgcByteStreamData.h:114
TGC_BYTESTREAM_SL
The struct for SL in ByteStream.
Definition: TgcByteStreamData.h:166
TgcRawData::TYPE_HIPT
@ TYPE_HIPT
Definition: TgcRawData.h:45
TgcRawData
An unit object of TGC ROD output.
Definition: TgcRawData.h:23
DEBUG
#define DEBUG
Definition: page_access.h:11
bcTag
unsigned bcTag(unsigned bcBitMap)
Definition: TgcByteStreamData.h:367
TGC_BYTESTREAM_READOUTHIT::channel
unsigned channel
Definition: TgcByteStreamData.h:79
TGC_BYTESTREAM_SOURCEID::side
unsigned side
Definition: TgcByteStreamData.h:25
TgcRawData::SLB_TYPE_INNER_STRIP
@ SLB_TYPE_INNER_STRIP
Definition: TgcRawData.h:37
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
TGC_BYTESTREAM_HIPT::fwd
unsigned fwd
Definition: TgcByteStreamData.h:139
TgcRawData::SLB_TYPE_INNER_WIRE
@ SLB_TYPE_INNER_WIRE
Definition: TgcRawData.h:36
TgcRdo
Definition: TgcRdo.h:22
TgcRawData
Athena::TPCnvVers::Old Athena::TPCnvVers::Current Athena::TPCnvVers::Old Athena::TPCnvVers::Current Athena::TPCnvVers::Old Athena::TPCnvVers::Current Athena::TPCnvVers::Current Athena::TPCnvVers::Current Athena::TPCnvVers::Current Athena::TPCnvVers::Current TgcRawData
Definition: MuonEventAthenaPoolTPCnv.cxx:168
TgcRawData::TYPE_TRACKLET
@ TYPE_TRACKLET
Definition: TgcRawData.h:44
test_pyathena.counter
counter
Definition: test_pyathena.py:15
toBS32
uint32_t toBS32(T &data)
Definition: TgcByteStreamData.h:322
getReferenceRun.ls
def ls(fpath)
Definition: getReferenceRun.py:29
TgcRawData::SLB_TYPE_TRIPLET_STRIP
@ SLB_TYPE_TRIPLET_STRIP
Definition: TgcRawData.h:35
TGC_BYTESTREAM_FRAGMENTCOUNT
The struct for fragment count in ByteStream.
Definition: TgcByteStreamData.h:71
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
TgcRdo::rodId
uint16_t rodId() const
Definition: TgcRdo.h:138
TGC_BYTESTREAM_SL::roi
unsigned roi
Definition: TgcByteStreamData.h:167
TGC_BYTESTREAM_HIPT_INNER::inner
unsigned inner
Definition: TgcByteStreamData.h:150
TGC_BYTESTREAM_READOUTTRACKLET::ok
unsigned ok
Definition: TgcByteStreamData.h:105
Muon::TgcByteStream::ByteStream
std::vector< uint32_t > ByteStream
Definition: TgcByteStream.h:26
TGC_BYTESTREAM_READOUTTRACKLET::bcBitmap
unsigned bcBitmap
Definition: TgcByteStreamData.h:101
TgcRawData::SlbType
SlbType
Definition: TgcRawData.h:31