ATLAS Offline Software
TGC_RodDecoderRawdata.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // TGC_RodDecoderRawdata.cxx, (c) ATLAS Detector software
8 
10 
11 #include "TgcByteStreamData.h"
12 #include "TgcRODReadOut.h"
13 #include "MuonRDO/TgcRdo.h"
15 
16 #include "Identifier/Identifier.h"
17 #include "eformat/Issue.h"
18 #include "eformat/SourceIdentifier.h"
19 
20 using eformat::helper::SourceIdentifier;
22 
23 //================ Constructor =================================================
24 
26  const std::string& n,
27  const IInterface* p) :
28  base_class(t, n, p),
29  m_tgcRODReadOut(nullptr)
30 {
31  declareProperty("ReadSlbHeaderId", m_readSlbHeaderId=false);
32  declareProperty("CheckRawData", m_checkRawData=false);
33  declareProperty("ShowStatusWords", m_showStatusWords=false);
34 }
35 
36 //================ Destructor =================================================
37 
39 = default;
40 
41 //================ Initialisation =================================================
42 
44 {
46 
47  ATH_CHECK( m_cablingSvc.retrieve() );
48  const ITGCcablingSvc* cabling = nullptr;
49  ATH_CHECK( m_cablingSvc->giveCabling (cabling) );
50 
51  m_tgcRODReadOut = new TgcRODReadOut (*cabling);
52 
53  ATH_MSG_INFO( "initialize() successful in " << name() );
54  return StatusCode::SUCCESS;
55 }
56 
57 //================ Finalisation =================================================
58 
60 {
61  delete m_tgcRODReadOut; m_tgcRODReadOut=nullptr;
62 
64  return sc;
65 }
66 
67 //================ fillCollection ===============================================
68 
70 {
71  try
72  {
73  robFrag.check();
74  } catch (eformat::Issue &ex) {// error in fragment
75  ATH_MSG_WARNING(ex.what());
76  return StatusCode::SUCCESS;
77  }
78 
79  uint32_t source_id = robFrag.rod_source_id();
80  SourceIdentifier sid(robFrag.rod_source_id());
81 
82  // do not convert if the TGC collection is already in the converter
83  uint16_t rdoId = TgcRdo::calculateOnlineId(sid.subdetector_id(), sid.module_id());
84  TgcRdoIdHash rdoIdHash;
85  int idHash = rdoIdHash(rdoId);
86 
87  if(rdoIdc.indexFindPtr(idHash) == nullptr)
88  {
90  robFrag.rod_data(bs);
91  TgcRdo* rdo = getCollection(robFrag, rdoIdc);
92 
93  if(!rdo) {
94  ATH_MSG_WARNING( "Pointer of RDO is NULL. Skip decoding of this ROD in this event..." );
95  return StatusCode::SUCCESS;
96  }
97 
98  if(m_checkRawData){
99  byteStream2Rdo(bs, *rdo, robFrag.rod_source_id());
100  if( !m_tgcRODReadOut->check(bs, *rdo, robFrag.rod_source_id())){
101  ATH_MSG_WARNING( " Can't Check the contents of TgcRdo: Skip decoding of remaining hits of this event..." );
102  return StatusCode::SUCCESS;
103  }
104  } else {
105  if( !m_tgcRODReadOut->byteStream2Rdo(bs, *rdo, robFrag.rod_source_id())){
106  ATH_MSG_WARNING( " Can't Convert the TGC BS to Rdo: Skip decoding of remaining hits of this event..." );
107  return StatusCode::SUCCESS;
108  }
109  }
110  }
111  else
112  {
113  ATH_MSG_DEBUG( " Collection ID = " << source_id
114  << "already found into the container; do not convert" );
115  }
116 
117  return StatusCode::SUCCESS;
118 }
119 
120 //================ getCollection ===============================================
121 
123 {
124  TgcRdo* theColl = nullptr;
125 
126  uint32_t source_id = robFrag.rod_source_id();
127  SourceIdentifier sid(source_id);
128 
129  uint16_t rdoId = TgcRdo::calculateOnlineId(sid.subdetector_id(), sid.module_id());
130  TgcRdoIdHash rdoIdHash;
131  int idHash = rdoIdHash(rdoId);
132 
133  ATH_MSG_DEBUG( " Created new Collection ID = " << sid.human() << " Hash = " << idHash );
134 
135  // create new collection
136  theColl = new TgcRdo(rdoId, idHash);
137  // add collection into IDC
138  if(rdoIdc.addCollection(theColl, idHash).isFailure())
139  {
140  ATH_MSG_WARNING( "Failed to add TGC RDO collection to container" );
141  delete theColl; theColl = nullptr;
142  return nullptr;
143  }
144  theColl->setL1Id(robFrag.rod_lvl1_id());
145  theColl->setBcId(robFrag.rod_bc_id());
146  theColl->setTriggerType(robFrag.rod_lvl1_trigger_type());
147  theColl->setOnlineId(sid.subdetector_id(), sid.module_id());
148 
149  uint32_t nstatus = robFrag.rod_nstatus();
150  const uint32_t* status;
151  robFrag.rod_status(status);
152  theColl->setErrors(nstatus > 0 ? status[0] : 0);
153  theColl->setRodStatus(nstatus > 1 ? status[1] : 0);
154  theColl->setLocalStatus(nstatus > 3 ? status[3] : 0);
155  theColl->setOrbit(nstatus > 4 ? status[4] : 0);
156 
157  if(m_showStatusWords) {
158  showStatusWords(source_id, rdoId, idHash, nstatus, status);
159  }
160 
161  return theColl;
162 }
163 
164 //================ byteStream2Rdo ===============================================
165 
167  TgcRdo& rdo,
168  uint32_t source_id) const
169 {
170  ATH_MSG_DEBUG( "Muon::TGC_RodDecoder::byteStream2Rdo" );
171 
172  // Check that we are filling the right collection
174  fromBS32(source_id, sid);
175 
176  if(rdo.identify() != TgcRdo::calculateOnlineId(sid.side, sid.rodid))
177  {
178  ATH_MSG_DEBUG( "Error: input TgcRdo id does not match bytestream id" );
179  return;
180  }
181 
182  //rdo.setOnlineId(sid.side, sid.rodid); // Standard data
183 
184  TGC_BYTESTREAM_FRAGMENTCOUNT counters[7] = {
185  {0, 1}, {0, 2}, {0, 3}, {0, 4}, {0, 5}, {0, 8}, {0, 9}
186  };
188 
189  int iBs = 0;
190  for(int iCnt = 0; iCnt < 7; iCnt++)
191  {
192  fromBS32(bs[iBs], counter);
193  if(counter.id == counters[iCnt].id)
194  {
195  counters[iCnt].count = counter.count;
196  iBs++;
197  }
198  }
199 
200  //iBs--;
201  for(int iCnt = 0; iCnt < 7; iCnt++)
202  {
203  if(counters[iCnt].count == 0)
204  continue;
205  switch(counters[iCnt].id)
206  {
207  case 1: // Raw data format (SSW format)
208  {
209  ATH_MSG_VERBOSE( "fragment" << counters[iCnt].id <<
210  " " << counters[iCnt].count << "words" );
211  for(unsigned iFrag = 0; iFrag < counters[iCnt].count; iFrag++)
212  {
213  ATH_MSG_VERBOSE( "WORD" << iFrag << ":" << MSG::hex << bs[iBs] );
214  iBs++;
215  }
216  break;
217  }
218  case 2: // TgcRawData::TYPE_HIT
219  {
220  ATH_MSG_VERBOSE( "fragment" << counters[iCnt].id <<
221  " " << counters[iCnt].count << "words" );
222 
224  for(unsigned iFrag = 0; iFrag < counters[iCnt].count; iFrag++)
225  {
226  ATH_MSG_VERBOSE( "WORD" << iFrag << ":" << MSG::hex << bs[iBs] );
227  fromBS32(bs[iBs++], roh);
228 
229  ATH_MSG_VERBOSE( " rdo.subDetectorId():" << rdo.subDetectorId()
230  << " rdo.rodId():" <<rdo.rodId()
231  << " roh.ldbId:" <<roh.ldbId
232  << " roh.sbId:" <<roh.sbId
233  << " rdo.l1Id():"<<rdo.l1Id()
234  << " rdo.bcId():"<<rdo.bcId() );
235 
236  uint16_t slbId = roh.sbId;
237  // SBLOCs for EIFI are different in online (ByteStream) and offline (RDO).
238  // bug #57051: Wrong numbering of SBLOC for Inner Stations (EI/FI) in 12-fold TGC cablings
239  // ByteStream : slbId = SBLOC + ip*2 (ip=0, 1, 2), SBLOC = 8 or 9 (EI), 0 or 1 (FI)
240  // slbId = 8, 10, 12, 9, 11, 13, 0, 2, 4, 1, 3, 5
241  // RDO : slbId = SBLOC + ip*4 (ip=0, 1, 2), SBLOC = 1 or 3 (EI), 0 or 2 (FI)
242  // slbId = 1, 5, 9, 3, 7, 11, 0, 4, 8, 2, 6, 10
245  if(roh.sbId<8) slbId = roh.sbId *2;
246  else slbId = (roh.sbId-8)*2+1;
247  }
248 
249  TgcRawData* raw = new TgcRawData(bcTag(roh.bcBitmap),
250  rdo.subDetectorId(),
251  rdo.rodId(),
252  roh.ldbId,
253  slbId,
254  rdo.l1Id(),
255  rdo.bcId(),
256  // http://cern.ch/atlas-tgc/doc/ROBformat.pdf
257  // Table 7 : SB type, bits 15..13
258  // 0,1: doublet wire, strip
259  // 2,3: triplet wire, strip triplet;
260  // 4 : inner wire and strip
261  // TgcRawData::SlbType is defined in TgcRawData.h
262  // 0: SLB_TYPE_DOUBLET_WIRE,
263  // 1: SLB_TYPE_DOUBLET_STRIP,
264  // 2: SLB_TYPE_TRIPLET_WIRE,
265  // 3: SLB_TYPE_TRIPLET_STRIP,
266  // 4: SLB_TYPE_INNER_WIRE,
267  // 5: SLB_TYPE_INNER_STRIP,
268  // 6: SLB_TYPE_UNKNOWN
270  (bool)roh.adj,
271  roh.tracklet,
272  roh.channel+40);
273  rdo.push_back(raw);
274  }
275  break;
276  }
277  case 3: // TgcRawData::TYPE_TRACKLET
278  {
279  ATH_MSG_VERBOSE( "fragment" << counters[iCnt].id <<
280  " " << counters[iCnt].count << "words" );
283  for(unsigned iFrag = 0; iFrag < counters[iCnt].count; iFrag++)
284  {
285  ATH_MSG_VERBOSE( "WORD" << iFrag << ":" << MSG::hex << bs[iBs] );
286  fromBS32(bs[iBs], rostrip);
287 
289  {
290  TgcRawData* raw = new TgcRawData(bcTag(rostrip.bcBitmap),
291  rdo.subDetectorId(),
292  rdo.rodId(),
293  rostrip.ldbId,
294  rostrip.sbId,
295  rdo.l1Id(),
296  rdo.bcId(),
298  0,
299  rostrip.seg,
300  rostrip.subc,
301  rostrip.phi);
302  rdo.push_back(raw);
303  }
304  else
305  {
306  fromBS32(bs[iBs], rotrk);
307  TgcRawData* raw = new TgcRawData(bcTag(rotrk.bcBitmap),
308  rdo.subDetectorId(),
309  rdo.rodId(),
310  rotrk.ldbId,
311  rotrk.sbId,
312  rdo.l1Id(),
313  rdo.bcId(),
314  // http://cern.ch/atlas-tgc/doc/ROBformat.pdf
315  // Table 8 : Slave Board type, bits 30..28
316  // 0,1: doublet wire, strip
317  // 2,3: triplet wire, strip triplet;
318  // 4,5: inner wire, strip
319  // TgcRawData::SlbType is defined in TgcRawData.h
320  // 0: SLB_TYPE_DOUBLET_WIRE,
321  // 1: SLB_TYPE_DOUBLET_STRIP,
322  // 2: SLB_TYPE_TRIPLET_WIRE,
323  // 3: SLB_TYPE_TRIPLET_STRIP,
324  // 4: SLB_TYPE_INNER_WIRE,
325  // 5: SLB_TYPE_INNER_STRIP,
326  // 6: SLB_TYPE_UNKNOWN
328  rotrk.delta,
329  rotrk.seg,
330  rotrk.subm,
331  rotrk.rphi);
332  rdo.push_back(raw);
333  }
334  iBs++;
335  }
336  break;
337  }
338  case 8: // TgcRawData::TYPE_HIPT
339  {
340  ATH_MSG_VERBOSE( "fragment" << counters[iCnt].id <<
341  " " << counters[iCnt].count << "words" );
343  TGC_BYTESTREAM_HIPT_INNER hptinner;
344  for(unsigned iFrag = 0; iFrag < counters[iCnt].count; iFrag++)
345  {
346  ATH_MSG_VERBOSE( "WORD" << iFrag << ":" << MSG::hex << bs[iBs] );
347  fromBS32(bs[iBs], hptinner);
348 
349  if(hptinner.sector & 4){
350  TgcRawData* raw = new TgcRawData(bcTag(hptinner.bcBitmap),
351  rdo.subDetectorId(),
352  rdo.rodId(),
353  rdo.l1Id(),
354  rdo.bcId(),
355  hptinner.strip,
356  0,
357  hptinner.sector,
358  0,
359  0,
360  0,
361  0,
362  0,
363  0,
364  hptinner.inner);
365  rdo.push_back(raw);
366  }else{
367  fromBS32(bs[iBs], hpt);
368  TgcRawData* raw = new TgcRawData(bcTag(hpt.bcBitmap),
369  rdo.subDetectorId(),
370  rdo.rodId(),
371  rdo.l1Id(),
372  rdo.bcId(),
373  hpt.strip,
374  hpt.fwd,
375  hpt.sector,
376  hpt.chip,
377  hpt.cand,
378  hpt.hipt,
379  hpt.hitId,
380  hpt.sub,
381  hpt.delta,
382  0);
383  rdo.push_back(raw);
384  }
385  iBs++;
386  }
387  break;
388  }
389  case 9: // TgcRawData::TYPE_SL
390  {
391  ATH_MSG_VERBOSE( "fragment" << counters[iCnt].id <<
392  " " << counters[iCnt].count << "words" );
394  for(unsigned iFrag = 0; iFrag < counters[iCnt].count; iFrag++)
395  {
396  ATH_MSG_VERBOSE( "WORD" << iFrag << ":" << MSG::hex << bs[iBs] );
397  fromBS32(bs[iBs++], sl);
398 
399  TgcRawData* raw = new TgcRawData(bcTag(sl.bcBitmap),
400  rdo.subDetectorId(),
401  rdo.rodId(),
402  rdo.l1Id(),
403  rdo.bcId(),
404  sl.cand2plus,
405  static_cast<bool>(sl.fwd),
406  sl.sector,
407  sl.cand,
408  sl.sign,
409  sl.threshold,
410  sl.overlap,
411  sl.veto,
412  sl.roi);
413  rdo.push_back(raw);
414  }
415  break;
416  }
417  default:
418  ATH_MSG_VERBOSE( "Error: Muon::TGC_RodDecoder::byteStream2Rdo Unsupported fragment type "
419  << counters[iCnt].id);
420  break;
421  }
422  }
423 
424  ATH_MSG_VERBOSE( "Decoded " << MSG::dec << rdo.size() << " elements" );
425  ATH_MSG_VERBOSE( "Muon::TGC_RodDecoder::byteStream2Rdo done" );
426 }
427 
428 void Muon::TGC_RodDecoderRawdata::showStatusWords(const uint32_t source_id, const uint16_t rdoId, const int idHash,
429  const uint32_t nstatus, const uint32_t* status) const {
430  static const unsigned int maxNStatus = 5;
431  static const std::string statusDataWord[maxNStatus] = {
432  "First status word specific|generic:", // 0
433  "TGC ROD event status :", // 1
434  "ROD VME fileter bits | SSW timeout:", // 2
435  "Local status word | presence :", // 3
436  "orbit count :" // 4
437  };
438 
439  static const unsigned int maxFirstStatus = 5;
440  static const std::string firstStatus[maxFirstStatus] = {
441  "incorrect BCID", // 0
442  "incorrect L1AID", // 1
443  "Timeout occurred in at least one of the FE links. Fragment is incomplete.", // 2
444  "Data may be incorrect, see TGC ROD event status word", // 3
445  "An overflow in one of the ROD internal buffers has occurred. The fragment is incomplete." // 4
446  };
447 
448  static const unsigned int maxTgcRodEventStatus = 31;
449  static const std::string tgcRodEventStatus[maxTgcRodEventStatus] = {
450  "EC_RXsend : Error in request to send an event via RXlink", // 0
451  "EC_FELdown : A Front End link has gone down - abandoned", // 1
452  "EC_frame : Invalid FE link framing words", // 2
453  "EC_Glnk : Front End link G-link error", // 3
454  "EC_xor : Invalid XOR event checksum", // 4
455  "EC_ovfl : Input FE event is too long or FE FIFO overflow", // 5
456  "EC_timeout : Timeout expired for at least one FE link", // 6
457  "EC_xormezz : Bad XOR checksum from mezz board", // 7
458  "EC_wc0 : Event has WC=0 or WX>max WC", // 8
459  "EC_L1ID : L1ID mismatch (TTC EVID FIFO vs local).", // 9
460  "EC_nohdr : First word is not header", // 10
461  "EC_rectype : Unrecognized record type", // 11
462  "EC_null : Unexpected nulls in FE input", // 12
463  "EC_order : Word is out of order", // 13
464  "EC_LDB : Invalid or unexpected Star Switch ID", // 14
465  "EC_RXovfl : RXfifo has overflowed", // 15
466  "EC_SSWerr : SSW reports T1C, NRC, T2C, or GlinkNoLock error", // 16
467  "EC_sbid : SBid does not match SBinfo table", // 17
468  "EC_SBtype : SBtype does not match SBinfo table", // 18
469  "EC_duprx : RX ID is duplicated in the event", // 19
470  "EC_ec4 : Unexpected SB L1 Event ID(lo 4)", // 20
471  "EC_bc : Unexpected SB BCID", // 21
472  "EC_celladr : Invalid cell address", // 22
473  "EC_hitovfl : Too many hits in event", // 23
474  "EC_trgbit : Unexpected trigger bits", // 24
475  "EC_badEoE : Bad End-of-event marker received, not 0xFCA", // 25
476  "EC_endWCnot0 : WC not 0 after End-of-event marker", // 26
477  "EC_noEoE : No End-of-event marker received", // 27
478  "EC_SLGlink : Sector Logic reports G-Link error", // 28
479  "EC_SLbc : Sector Logic BCID[2:0] does not match its SB BCID", // 29
480  "EC_unxrxid : Data from disabled SSW RX ID" // 30
481  };
482 
483  static const unsigned int maxSSWs = 12;
484 
485  static const unsigned int maxPresence = 10;
486  static const std::string presence[maxPresence] = {
487  "", // 0
488  "raw data", // 1
489  "hits in readout fmt", // 2
490  "tracklets in readout fmt", // 3
491  "hits in chamber fmt", // 4
492  "tracklets in chamber fmt", // 5
493  "", // 6
494  "", // 7
495  "HipT output", // 8
496  "Sector Logic" // 9
497  };
498 
499  static const unsigned int maxLocalStatus = 16;
500  static const std::string localStatus[maxLocalStatus] = {
501  "hit BCs are merged", // 0
502  "tracklet BCs are merged", // 1
503  "hits are sorted", // 2
504  "tracklets are sorted", // 3
505  "", // 4
506  "", // 5
507  "", // 6
508  "", // 7
509  "", // 8
510  "", // 9
511  "", // 10
512  "", // 11
513  "", // 12
514  "", // 13
515  "ROI in this fragment", // 14
516  "no L1AID, BCID check wrt ROD" // 15
517  };
518 
519  ATH_MSG_INFO("***** TGC ROD STATUS WORDS for "
520  << "source_id=0x" << source_id << ", "
521  << "rdoId=0x" << rdoId << (rdoId<16 ? " , " : ", ")
522  << "idHash=0x" << idHash << (idHash<16 ? " , " : ", ")
523  << (idHash<12 ? "A" : "C") << (idHash%12+1<10 ? "0" : "") << std::dec << idHash%12+1
524  << " ******");
525  ATH_MSG_INFO("***** Based on http://cern.ch/atlas-tgc/doc/ROBformat.pdf ****************************");
526 
527  for(uint32_t i=0; i<nstatus && i<maxNStatus; i++) {
528  ATH_MSG_INFO(statusDataWord[i] << " status[" << i << "]=0x" << std::hex << status[i]);
529 
530  if(i==0) {
531  // Table 2 ATLAS standard, first status word, all zero means no known errors
532  for(unsigned int j=0; j<maxFirstStatus; j++) {
533  if((status[i] >> j) & 0x1) {
534  ATH_MSG_INFO(std::dec << std::setw(3) << j << " : " << firstStatus[j]);
535  }
536  }
537  } else if(i==1) {
538  // Table 3 TGC ROD event status word
539  for(unsigned int j=0; j<maxTgcRodEventStatus; j++) {
540  if((status[i] >> j) & 0x1) {
541  ATH_MSG_INFO(std::dec << std::setw(3) << j << " : " << tgcRodEventStatus[j]);
542  }
543  }
544  } else if(i==2) {
545  // Table 4 Star switch time-out status and ROD VME filter bits
546  for(unsigned int j=0; j<maxSSWs; j++) {
547  if((status[i] >> j) & 0x1) {
548  ATH_MSG_INFO(std::dec << std::setw(3) << j << " : " << "time-out for SSW" << j);
549  }
550  }
551  for(unsigned int j=0+16; j<=maxSSWs+16; j++) {
552  if((status[i] >> j) & 0x1) {
553  ATH_MSG_INFO(std::dec << std::setw(3) << j << " : " << "data from SSW" << j-16 << " gave filter \"accept\"");
554  }
555  }
556  } else if(i==3) {
557  // Table 6 Presence bits
558  for(unsigned int j=0; j<maxPresence; j++) {
559  if(j==0 || j==6 || j==7) continue;
560  if((status[i] >> j) & 0x1) {
561  ATH_MSG_INFO(std::dec << std::setw(3) << j << " : " << presence[j]);
562  }
563  }
564 
565  // Table 5 Local status word
566  for(unsigned int j=0+16; j<maxLocalStatus+16; j++) {
567  if((j>=4+16 && j<=13+16)) continue;
568  if((status[i] >> j) & 0x1) {
569  ATH_MSG_INFO(std::dec << std::setw(3) << j << " : " << localStatus[j-16]);
570  }
571  }
572  }
573  }
574 
575  ATH_MSG_INFO("**************************************************************************************");
576 }
TGC_BYTESTREAM_SOURCEID::rodid
unsigned rodid
Definition: TgcByteStreamData.h:23
TgcRdo::identify
uint16_t identify() const
Definition: TgcRdo.h:107
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
Muon::TGC_RodDecoderRawdata::showStatusWords
void showStatusWords(const uint32_t source_id, const uint16_t rdoId, const int idHash, const uint32_t nstatus, const uint32_t *status) const
Show status words.
Definition: TGC_RodDecoderRawdata.cxx:428
TgcRODReadOut.h
TGC_BYTESTREAM_HIPT::hitId
unsigned hitId
Definition: TgcByteStreamData.h:134
python.tests.PyTestsLib.finalize
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
Definition: PyTestsLib.py:53
TgcRdo
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 Athena::TPCnvVers::Old Athena::TPCnvVers::Old TgcRdo
Definition: MuonEventAthenaPoolTPCnv.cxx:188
TGC_BYTESTREAM_HIPT_INNER::sector
unsigned sector
Definition: TgcByteStreamData.h:155
TGC_BYTESTREAM_READOUTTRACKLET::seg
unsigned seg
Definition: TgcByteStreamData.h:97
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
TGC_BYTESTREAM_SL::cand2plus
unsigned cand2plus
Definition: TgcByteStreamData.h:177
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
ITGCcablingSvc
Definition: ITGCcablingSvc.h:31
TgcRdo::setL1Id
void setL1Id(uint32_t v)
Definition: TgcRdo.h:119
TgcRdo::calculateOnlineId
static uint16_t calculateOnlineId(uint16_t subDetectorId, uint16_t rodId)
Definition: TgcRdo.cxx:58
TgcRdo::setRodStatus
void setRodStatus(uint32_t data)
Definition: TgcRdo.h:178
TGC_BYTESTREAM_READOUTHIT::sbId
unsigned sbId
Definition: TgcByteStreamData.h:80
IdentifiableContainerMT::addCollection
virtual StatusCode addCollection(const T *coll, IdentifierHash hashId) override final
insert collection into container with id hash if IDC should not take ownership of collection,...
Definition: IdentifiableContainerMT.h:300
TGC_BYTESTREAM_READOUTTRIPLETSTRIP::slbType
unsigned slbType
Definition: TgcByteStreamData.h:123
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
Muon::TGC_RodDecoderRawdata::m_readSlbHeaderId
bool m_readSlbHeaderId
Switch for reading IDs in SLB Header or ROD Header.
Definition: TGC_RodDecoderRawdata.h:60
Issue
Configuration Issue
Definition: PscIssues.h:31
TGC_BYTESTREAM_HIPT_INNER::bcBitmap
unsigned bcBitmap
Definition: TgcByteStreamData.h:158
initialize
void initialize()
Definition: run_EoverP.cxx:894
TGC_BYTESTREAM_READOUTTRACKLET::sbId
unsigned sbId
Definition: TgcByteStreamData.h:99
ReadCellNoiseFromCool.cabling
cabling
Definition: ReadCellNoiseFromCool.py:154
Muon::TGC_RodDecoderRawdata::TGC_RodDecoderRawdata
TGC_RodDecoderRawdata(const std::string &t, const std::string &n, const IInterface *p)
Default constructor.
Definition: TGC_RodDecoderRawdata.cxx:25
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
TgcRdo::setTriggerType
void setTriggerType(uint16_t v)
Definition: TgcRdo.h:127
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
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
TGC_BYTESTREAM_HIPT::cand
unsigned cand
Definition: TgcByteStreamData.h:136
TGC_BYTESTREAM_SL::threshold
unsigned threshold
Definition: TgcByteStreamData.h:169
Muon::TGC_RodDecoderRawdata::m_showStatusWords
bool m_showStatusWords
Flag for showStatusWords.
Definition: TGC_RodDecoderRawdata.h:66
TgcRdo::l1Id
uint16_t l1Id() const
Definition: TgcRdo.h:150
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
TGC_BYTESTREAM_HIPT::hipt
unsigned hipt
Definition: TgcByteStreamData.h:135
TGC_BYTESTREAM_HIPT::bcBitmap
unsigned bcBitmap
Definition: TgcByteStreamData.h:141
TGC_BYTESTREAM_READOUTTRIPLETSTRIP
The struct for triplet strip in ByteStream.
Definition: TgcByteStreamData.h:112
TgcRdo::setErrors
void setErrors(uint16_t data)
Definition: TgcRdo.h:162
Muon::TGC_RodDecoderRawdata::finalize
virtual StatusCode finalize() override
Standard AlgTool method.
Definition: TGC_RodDecoderRawdata.cxx:59
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
OFFLINE_FRAGMENTS_NAMESPACE::PointerType
const DataType * PointerType
Definition: RawEvent.h:25
Muon::TgcRODReadOut
Definition: TgcRODReadOut.h:36
TGC_BYTESTREAM_HIPT
The struct for HiPt in ByteStream.
Definition: TgcByteStreamData.h:131
TgcRdoIdHash
Definition: TgcRdoIdHash.h:18
TgcRdo::subDetectorId
uint16_t subDetectorId() const
Definition: TgcRdo.h:134
TGC_BYTESTREAM_SOURCEID
The struct for source ID in ByteStream.
Definition: TgcByteStreamData.h:22
TgcRdo::setOrbit
void setOrbit(uint32_t orbit)
Definition: TgcRdo.h:210
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
TGC_BYTESTREAM_HIPT::chip
unsigned chip
Definition: TgcByteStreamData.h:137
Muon::TGC_RodDecoderRawdata::getCollection
TgcRdo * getCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment &robFrag, TgcRdoContainer &rdoIdc) const
Retrieve header of ROBFragment.
Definition: TGC_RodDecoderRawdata.cxx:122
TgcRdoContainer
Definition: TgcRdoContainer.h:25
eformat::ROBFragment
Definition: L1CaloBsDecoderUtil.h:12
lumiFormat.i
int i
Definition: lumiFormat.py:92
TGC_BYTESTREAM_READOUTTRIPLETSTRIP::seg
unsigned seg
Definition: TgcByteStreamData.h:116
beamspotman.n
n
Definition: beamspotman.py:731
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
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
TGC_BYTESTREAM_SL::sign
unsigned sign
Definition: TgcByteStreamData.h:172
TGC_RodDecoderRawdata.h
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
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
TgcRdoContainer.h
TGC_BYTESTREAM_SL::fwd
unsigned fwd
Definition: TgcByteStreamData.h:175
TgcRdo.h
Muon::TGC_RodDecoderRawdata::byteStream2Rdo
void byteStream2Rdo(OFFLINE_FRAGMENTS_NAMESPACE::PointerType bs, TgcRdo &rdo, uint32_t source_id) const
Convert data contents of ROBFragment to RDO The same byteStream2Rdo method in TGC_RodDecoderReadout i...
Definition: TGC_RodDecoderRawdata.cxx:166
TGC_BYTESTREAM_SL::bcBitmap
unsigned bcBitmap
Definition: TgcByteStreamData.h:176
TGC_BYTESTREAM_READOUTHIT::bcBitmap
unsigned bcBitmap
Definition: TgcByteStreamData.h:84
Muon::TGC_RodDecoderRawdata::m_checkRawData
bool m_checkRawData
Switch for checking rawdata format with readout format.
Definition: TGC_RodDecoderRawdata.h:62
TGC_BYTESTREAM_SL::sector
unsigned sector
Definition: TgcByteStreamData.h:174
TGC_BYTESTREAM_FRAGMENTCOUNT::count
unsigned count
Definition: TgcByteStreamData.h:72
TGC_BYTESTREAM_READOUTHIT::sbType
unsigned sbType
Definition: TgcByteStreamData.h:81
TgcRdo::bcId
uint16_t bcId() const
Definition: TgcRdo.h:146
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
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
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.
Muon::TGC_RodDecoderRawdata::~TGC_RodDecoderRawdata
virtual ~TGC_RodDecoderRawdata()
Default destructor.
OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment
eformat::ROBFragment< PointerType > ROBFragment
Definition: RawEvent.h:27
Muon::TGC_RodDecoderRawdata::fillCollection
virtual StatusCode fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment &robFrag, TgcRdoContainer &rdoIdc) const override
Convert ROBFragment to RDO.
Definition: TGC_RodDecoderRawdata.cxx:69
TgcRdo::setOnlineId
void setOnlineId(uint16_t subDetectorId, uint16_t rodId)
Definition: TgcRdo.cxx:35
IdentifiableContainerMT::indexFindPtr
virtual const T * indexFindPtr(IdentifierHash hashId) const override final
return pointer on the found entry or null if out of range using hashed index - fast version,...
Definition: IdentifiableContainerMT.h:292
TGC_BYTESTREAM_READOUTTRIPLETSTRIP::subc
unsigned subc
Definition: TgcByteStreamData.h:114
TGC_BYTESTREAM_SL
The struct for SL in ByteStream.
Definition: TgcByteStreamData.h:166
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
TgcRawData
An unit object of TGC ROD output.
Definition: TgcRawData.h:23
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
TGC_BYTESTREAM_HIPT::fwd
unsigned fwd
Definition: TgcByteStreamData.h:139
Muon::TGC_RodDecoderRawdata::initialize
virtual StatusCode initialize() override
Standard AlgTool method.
Definition: TGC_RodDecoderRawdata.cxx:43
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
TgcRdo::setBcId
void setBcId(uint16_t v)
Definition: TgcRdo.h:123
TgcRdo::setLocalStatus
void setLocalStatus(uint32_t data)
Definition: TgcRdo.h:194
TgcRawData::SLB_TYPE_INNER_WIRE
@ SLB_TYPE_INNER_WIRE
Definition: TgcRawData.h:36
merge.status
status
Definition: merge.py:17
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
test_pyathena.counter
counter
Definition: test_pyathena.py:15
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::bcBitmap
unsigned bcBitmap
Definition: TgcByteStreamData.h:101
TgcRawData::SlbType
SlbType
Definition: TgcRawData.h:31