ATLAS Offline Software
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Muon::TGC_RodDecoderReadout Class Reference

#include <TGC_RodDecoderReadout.h>

Inheritance diagram for Muon::TGC_RodDecoderReadout:
Collaboration diagram for Muon::TGC_RodDecoderReadout:

Public Member Functions

 TGC_RodDecoderReadout (const std::string &t, const std::string &n, const IInterface *p)
 Default constructor. More...
 
virtual ~TGC_RodDecoderReadout ()
 default destructor More...
 
virtual StatusCode initialize () override
 Standard AlgTool method. More...
 
virtual StatusCode finalize () override
 Standard AlgTool method. More...
 
virtual StatusCode fillCollection (const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment &robFrag, TgcRdoContainer &rdoIdc) const override
 Convert ROBFragment to RDO. More...
 

Private Member Functions

void getCollection (const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment &robFrag, TgcRdo *rdo) const
 Retrieve header of ROBFragment. More...
 
void byteStream2Rdo (OFFLINE_FRAGMENTS_NAMESPACE::PointerType bs, TgcRdo *rdo, uint32_t source_id) const
 Convert data contents of ROBFragment to RDO. More...
 
void byteStreamSrod2Rdo (OFFLINE_FRAGMENTS_NAMESPACE::PointerType bs, TgcRdo *rdo, uint32_t source_id, uint32_t ndata) const
 
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. More...
 

Private Attributes

const TgcIdHelperm_tgcIdHelper
 TGC ID helper. More...
 
bool m_showStatusWords
 Flag for showStatusWords. More...
 
bool m_skipCoincidence
 Flag for skipping coincidence objects (for TrigT1TGC running on data) More...
 
std::atomic< unsigned int > m_nCache = 0
 
std::atomic< unsigned int > m_nNotCache = 0
 

Detailed Description

A tool to decode a TGC ROB fragment written in the readout format into TGC RDO.

Author
Zvi Tarem zvi@c.nosp@m.alip.nosp@m.er.co.nosp@m..il

The previous class name was TGC_RodDecoder.

Definition at line 28 of file TGC_RodDecoderReadout.h.

Constructor & Destructor Documentation

◆ TGC_RodDecoderReadout()

Muon::TGC_RodDecoderReadout::TGC_RodDecoderReadout ( const std::string &  t,
const std::string &  n,
const IInterface *  p 
)

Default constructor.

Definition at line 26 of file TGC_RodDecoderReadout.cxx.

29  :
30  base_class(t, n, p),
31  m_tgcIdHelper(nullptr)
32 {
33  declareProperty("ShowStatusWords", m_showStatusWords=false);
34  declareProperty("SkipCoincidence", m_skipCoincidence=false);
35 }

◆ ~TGC_RodDecoderReadout()

Muon::TGC_RodDecoderReadout::~TGC_RodDecoderReadout ( )
virtualdefault

default destructor

Member Function Documentation

◆ byteStream2Rdo()

void Muon::TGC_RodDecoderReadout::byteStream2Rdo ( OFFLINE_FRAGMENTS_NAMESPACE::PointerType  bs,
TgcRdo rdo,
uint32_t  source_id 
) const
private

Convert data contents of ROBFragment to RDO.

Definition at line 177 of file TGC_RodDecoderReadout.cxx.

180 {
181  ATH_MSG_DEBUG( "Muon::TGC_RodDecoderReadout::byteStream2Rdo" );
182 
183  // Check that we are filling the right collection
185  fromBS32(source_id, sid);
186 
187  if(rdo->identify() != TgcRdo::calculateOnlineId(sid.side, sid.rodid))
188  {
189  ATH_MSG_DEBUG( "Error: input TgcRdo id does not match bytestream id" );
190  return;
191  }
192 
193  //rdo.setOnlineId(sid.side, sid.rodid); // Standard data
194 
195  TGC_BYTESTREAM_FRAGMENTCOUNT counters[7] = {
196  {0, 1}, {0, 2}, {0, 3}, {0, 4}, {0, 5}, {0, 8}, {0, 9}
197  };
199 
200  int iBs = 0;
201  for(int iCnt = 0; iCnt < 7; iCnt++)
202  {
203  fromBS32(bs[iBs], counter);
204  if(counter.id == counters[iCnt].id)
205  {
206  counters[iCnt].count = counter.count;
207  iBs++;
208  }
209  }
210 
211  //iBs--;
212  for(int iCnt = 0; iCnt < 7; iCnt++)
213  {
214  if(counters[iCnt].count == 0)
215  continue;
216  switch(counters[iCnt].id)
217  {
218  case 1: // Raw data format (SSW format)
219  {
220  ATH_MSG_DEBUG( "fragment" << counters[iCnt].id <<
221  " " << counters[iCnt].count << "words" );
222  for(unsigned iFrag = 0; iFrag < counters[iCnt].count; iFrag++)
223  {
224  ATH_MSG_DEBUG( "WORD" << iFrag << ":" << MSG::hex << bs[iBs] );
225  iBs++;
226  }
227  break;
228  }
229  case 2: // TgcRawData::TYPE_HIT
230  {
231  ATH_MSG_DEBUG( "fragment" << counters[iCnt].id <<
232  " " << counters[iCnt].count << "words" );
234  for(unsigned iFrag = 0; iFrag < counters[iCnt].count; iFrag++)
235  {
236  ATH_MSG_DEBUG( "WORD" << iFrag << ":" << MSG::hex << bs[iBs] );
237  fromBS32(bs[iBs++], roh);
238 
239  ATH_MSG_DEBUG( " rdo.subDetectorId():" << rdo->subDetectorId()
240  << " rdo.rodId():" <<rdo->rodId()
241  << " roh.ldbId:" <<roh.ldbId
242  << " roh.sbId:" <<roh.sbId
243  << " rdo.l1Id():"<<rdo->l1Id()
244  << " rdo.bcId():"<<rdo->bcId() );
245 
246  uint16_t slbId = roh.sbId;
247  // SBLOCs for EIFI are different in online (ByteStream) and offline (RDO).
248  // bug #57051: Wrong numbering of SBLOC for Inner Stations (EI/FI) in 12-fold TGC cablings
249  // ByteStream : slbId = SBLOC + ip*2 (ip=0, 1, 2), SBLOC = 8 or 9 (EI), 0 or 1 (FI)
250  // slbId = 8, 10, 12, 9, 11, 13, 0, 2, 4, 1, 3, 5
251  // RDO : slbId = SBLOC + ip*4 (ip=0, 1, 2), SBLOC = 1 or 3 (EI), 0 or 2 (FI)
252  // slbId = 1, 5, 9, 3, 7, 11, 0, 4, 8, 2, 6, 10
255  if(roh.sbId<8) slbId = roh.sbId *2;
256  else slbId = (roh.sbId-8)*2+1;
257  }
258 
259  TgcRawData* raw = new TgcRawData(bcTag(roh.bcBitmap),
260  rdo->subDetectorId(),
261  rdo->rodId(),
262  roh.ldbId,
263  slbId,
264  rdo->l1Id(),
265  rdo->bcId(),
266  // http://cern.ch/atlas-tgc/doc/ROBformat.pdf
267  // Table 7 : SB type, bits 15..13
268  // 0,1: doublet wire, strip
269  // 2,3: triplet wire, strip triplet;
270  // 4 : inner wire and strip
271  // TgcRawData::SlbType is defined in TgcRawData.h
272  // 0: SLB_TYPE_DOUBLET_WIRE,
273  // 1: SLB_TYPE_DOUBLET_STRIP,
274  // 2: SLB_TYPE_TRIPLET_WIRE,
275  // 3: SLB_TYPE_TRIPLET_STRIP,
276  // 4: SLB_TYPE_INNER_WIRE,
277  // 5: SLB_TYPE_INNER_STRIP,
278  // 6: SLB_TYPE_UNKNOWN
280  (bool)roh.adj,
281  roh.tracklet,
282  roh.channel+40);
283  rdo->push_back(raw);
284  }
285  break;
286  }
287  case 3: // TgcRawData::TYPE_TRACKLET
288  {
289  if(m_skipCoincidence) break;
290 
291  ATH_MSG_DEBUG( "fragment" << counters[iCnt].id <<
292  " " << counters[iCnt].count << "words" );
295  for(unsigned iFrag = 0; iFrag < counters[iCnt].count; iFrag++)
296  {
297  ATH_MSG_DEBUG( "WORD" << iFrag << ":" << MSG::hex << bs[iBs] );
298  fromBS32(bs[iBs], rostrip);
299 
301  {
302  TgcRawData* raw = new TgcRawData(bcTag(rostrip.bcBitmap),
303  rdo->subDetectorId(),
304  rdo->rodId(),
305  rostrip.ldbId,
306  rostrip.sbId,
307  rdo->l1Id(),
308  rdo->bcId(),
310  0,
311  rostrip.seg,
312  rostrip.subc,
313  rostrip.phi);
314  rdo->push_back(raw);
315  }
316  else
317  {
318  fromBS32(bs[iBs], rotrk);
319 
320  uint16_t slbId = rotrk.sbId;
321  // SBLOCs for EIFI are different in online (ByteStream) and offline (RDO).
322  // bug #57051: Wrong numbering of SBLOC for Inner Stations (EI/FI) in 12-fold TGC cablings
323  // ByteStream : slbId = SBLOC + ip*2 (ip=0, 1, 2), SBLOC = 8 or 9 (EI), 0 or 1 (FI)
324  // slbId = 8, 10, 12, 9, 11, 13, 0, 2, 4, 1, 3, 5
325  // RDO : slbId = SBLOC + ip*4 (ip=0, 1, 2), SBLOC = 1 or 3 (EI), 0 or 2 (FI)
326  // slbId = 1, 5, 9, 3, 7, 11, 0, 4, 8, 2, 6, 10
329  if(rotrk.sbId<8) slbId = rotrk.sbId *2;
330  else slbId = (rotrk.sbId-8)*2+1;
331  }
332 
333  TgcRawData* raw = new TgcRawData(bcTag(rotrk.bcBitmap),
334  rdo->subDetectorId(),
335  rdo->rodId(),
336  rotrk.ldbId,
337  slbId,
338  rdo->l1Id(),
339  rdo->bcId(),
340  // http://cern.ch/atlas-tgc/doc/ROBformat.pdf
341  // Table 8 : Slave Board type, bits 30..28
342  // 0,1: doublet wire, strip
343  // 2,3: triplet wire, strip triplet;
344  // 4,5: inner wire, strip
345  // TgcRawData::SlbType is defined in TgcRawData.h
346  // 0: SLB_TYPE_DOUBLET_WIRE,
347  // 1: SLB_TYPE_DOUBLET_STRIP,
348  // 2: SLB_TYPE_TRIPLET_WIRE,
349  // 3: SLB_TYPE_TRIPLET_STRIP,
350  // 4: SLB_TYPE_INNER_WIRE,
351  // 5: SLB_TYPE_INNER_STRIP,
352  // 6: SLB_TYPE_UNKNOWN
354  rotrk.delta,
355  rotrk.seg,
356  rotrk.subm,
357  rotrk.rphi);
358  rdo->push_back(raw);
359  }
360  iBs++;
361  }
362  break;
363  }
364  case 8: // TgcRawData::TYPE_HIPT
365  {
366  if(m_skipCoincidence) break;
367 
368  ATH_MSG_DEBUG( "fragment" << counters[iCnt].id <<
369  " " << counters[iCnt].count << "words" );
371  TGC_BYTESTREAM_HIPT_INNER hptinner;
372  for(unsigned iFrag = 0; iFrag < counters[iCnt].count; iFrag++)
373  {
374  ATH_MSG_DEBUG( "WORD" << iFrag << ":" << MSG::hex << bs[iBs] );
375  fromBS32(bs[iBs], hptinner);
376  if(hptinner.sector & 4){
377  TgcRawData* raw = new TgcRawData(bcTag(hptinner.bcBitmap),
378  rdo->subDetectorId(),
379  rdo->rodId(),
380  rdo->l1Id(),
381  rdo->bcId(),
382  hptinner.strip,
383  0,
384  hptinner.sector,
385  0,
386  0,
387  0,
388  0,
389  0,
390  0,
391  hptinner.inner);
392  rdo->push_back(raw);
393  }else{
394  fromBS32(bs[iBs], hpt);
395  TgcRawData* raw = new TgcRawData(bcTag(hpt.bcBitmap),
396  rdo->subDetectorId(),
397  rdo->rodId(),
398  rdo->l1Id(),
399  rdo->bcId(),
400  hpt.strip,
401  hpt.fwd,
402  hpt.sector,
403  hpt.chip,
404  hpt.cand,
405  hpt.hipt,
406  hpt.hitId,
407  hpt.sub,
408  hpt.delta,
409  0);
410  rdo->push_back(raw);
411  }
412  iBs++;
413  }
414  break;
415  }
416  case 9: // TgcRawData::TYPE_SL
417  {
418  if(m_skipCoincidence) break;
419 
420  ATH_MSG_DEBUG( "fragment" << counters[iCnt].id <<
421  " " << counters[iCnt].count << "words" );
423  for(unsigned iFrag = 0; iFrag < counters[iCnt].count; iFrag++)
424  {
425  ATH_MSG_DEBUG( "WORD" << iFrag << ":" << MSG::hex << bs[iBs] );
426  fromBS32(bs[iBs++], sl);
427 
428  TgcRawData* raw = new TgcRawData(bcTag(sl.bcBitmap),
429  rdo->subDetectorId(),
430  rdo->rodId(),
431  rdo->l1Id(),
432  rdo->bcId(),
433  sl.cand2plus,
434  static_cast<bool>(sl.fwd),
435  sl.sector,
436  sl.cand,
437  sl.sign,
438  sl.threshold,
439  sl.overlap,
440  sl.veto,
441  sl.roi);
442  rdo->push_back(raw);
443  }
444  break;
445  }
446  default:
447  ATH_MSG_DEBUG( "Error: Muon::TGC_RodDecoderReadout::byteStream2Rdo Unsupported fragment type "
448  << counters[iCnt].id );
449  break;
450  }
451  }
452 
453  ATH_MSG_DEBUG( "Decoded " << MSG::dec << rdo->size() << " elements" );
454  ATH_MSG_DEBUG( "Muon::TGC_RodDecoderReadout::byteStream2Rdo done" );
455 }

◆ byteStreamSrod2Rdo()

void Muon::TGC_RodDecoderReadout::byteStreamSrod2Rdo ( OFFLINE_FRAGMENTS_NAMESPACE::PointerType  bs,
TgcRdo rdo,
uint32_t  source_id,
uint32_t  ndata 
) const
private

Definition at line 459 of file TGC_RodDecoderReadout.cxx.

463 {
464  ATH_MSG_DEBUG( "Muon::TGC_RodDecoderReadout::byteStreamSrod2Rdo" );
465 
466  // Check that we are filling the right collection
468  fromBS32(source_id, sid);
469  //uint16_t rod = sid.rodid & 0x0F; // 1-3
470 
471  if(rdo->identify() != TgcRdo::calculateOnlineId(sid.side, sid.rodid)) // 24-29
472  {
473  ATH_MSG_DEBUG( "Error: input TgcRdo id does not match bytestream id" );
474  return;
475  }
476 
477  TGC_BYTESTREAM_NSL_ROI tmpfrag;
478  for(uint32_t iBs = 0; iBs < ndata; iBs++){
479  ATH_MSG_DEBUG( "WORD" << iBs << ":" << MSG::hex << bs[iBs] );
480  fromBS32(bs[iBs], tmpfrag);
481  switch(tmpfrag.type)
482  {
483  case 0 : // RoI
484  {
486  fromBS32(bs[iBs], roi);
487  TgcRawData* raw = new TgcRawData(roi.bcBitmap+1,
488  rdo->subDetectorId(),
489  rdo->rodId(),
490  rdo->l1Id(),
491  rdo->bcId(),
492  static_cast<bool>(roi.fwd),
493  roi.sector,
494  roi.innerflag,
495  roi.coinflag,
496  static_cast<bool>(roi.charge),
497  roi.pt,
498  roi.roi);
499  rdo->push_back(raw);
500  break;
501  }
502  case 1 : // HiPT
503  {
505  fromBS32(bs[iBs], hipt);
506  TgcRawData* raw = new TgcRawData(hipt.bcBitmap+1,
507  rdo->subDetectorId(),
508  rdo->rodId(),
509  rdo->l1Id(),
510  rdo->bcId(),
511  static_cast<bool>(hipt.strip),
512  static_cast<bool>(hipt.fwd),
513  hipt.sector,
514  hipt.chip,
515  hipt.cand,
516  static_cast<bool>(hipt.hipt),
517  hipt.hitId,
518  hipt.sub,
519  hipt.delta,
520  0);
521  rdo->push_back(raw);
522  break;
523  }
524  case 2 : // EIFI
525  {
527  fromBS32(bs[iBs], eifi);
528  for ( int isector = 0; isector < 2; isector++ ){// duplicate for the neighboring trigger sector
529  TgcRawData* raw = new TgcRawData(eifi.bcBitmap+1,
530  rdo->subDetectorId(),
531  rdo->rodId(),
532  rdo->l1Id(),
533  rdo->bcId(),
534  static_cast<bool>(eifi.fwd),
535  eifi.sector + isector,
536  eifi.ei,
537  eifi.fi,
538  eifi.chamberid);
539  rdo->push_back(raw);
540  }
541  break;
542  }
543  case 3 : // TMDB
544  {
546  fromBS32(bs[iBs], tmdb);
547  for ( int isector = 0; isector < 2; isector++ ){// duplicate for the neighboring trigger sector
548  TgcRawData* raw = new TgcRawData(tmdb.bcBitmap+1,
549  rdo->subDetectorId(),
550  rdo->rodId(),
551  rdo->l1Id(),
552  rdo->bcId(),
553  false,
554  tmdb.sector + isector,
555  tmdb.module,
556  tmdb.bcid);
557  rdo->push_back(raw);
558  }
559  break;
560  }
561  case 4 : // NSW 4-5
562  {
563  TGC_BYTESTREAM_NSW_POS nswpos;
564  fromBS32(bs[iBs], nswpos);
565  iBs++;
566  TGC_BYTESTREAM_NSW_ANG nswang;
567  fromBS32(bs[iBs], nswang);
568  if (nswang.type != 5){
569  ATH_MSG_DEBUG( "Error: non-consecutive NSW words " );
570  iBs--;
571  continue;
572  }
573  if (( nswpos.bcBitmap != nswang.bcBitmap )||
574  ( nswpos.cand != nswang.cand )||
575  ( nswpos.input != nswang.input )){
576  ATH_MSG_DEBUG( "Error: inconsistent NSW words" );
577  iBs--;
578  continue;
579  }
580 
581  uint16_t cand_input_bcid
582  = (nswpos.cand << TgcRawData::NSW_CAND_BITSHIFT)
584  + (nswang.bcid << TgcRawData::NSW_BCID_BITSHIFT);
585 
586  for ( int isector = 0; isector < 2; isector++ ){// duplicate for the neighboring trigger sector
587  TgcRawData* raw = new TgcRawData(nswpos.bcBitmap+1,
588  rdo->subDetectorId(),
589  rdo->rodId(),
590  rdo->l1Id(),
591  static_cast<uint16_t>(rdo->bcId()),
592  static_cast<bool>(nswpos.fwd),
593  static_cast<uint16_t>(nswpos.sector) + isector,
594  nswpos.eta,
595  nswpos.phi,
596  cand_input_bcid, // was nswpos.cand,
597  nswang.angle,
598  nswang.phires,
599  nswang.lowres,
600  nswang.nswid);
601  rdo->push_back(raw);
602  }
603  break;
604  }
605  case 6 : // RPC BIS78 6-7
606  {
608  fromBS32(bs[iBs], rpcpos);
609  iBs++;
611  fromBS32(bs[iBs], rpccoin);
612  if (rpccoin.type != 7){
613  ATH_MSG_DEBUG( "Error: non-consecutive RPCBIS78 words " );
614  iBs--;
615  continue;
616  }
617  if (( rpcpos.bcBitmap != rpccoin.bcBitmap )||
618  ( rpcpos.cand != rpccoin.cand )){
619  ATH_MSG_DEBUG( "Error: inconsistent RPCBIS78 words" );
620  iBs--;
621  continue;
622  }
623 
624  uint16_t flag_cand_bcid
625  = (rpccoin.flag << TgcRawData::RPC_FLAG_BITSHIFT)
626  + (rpccoin.cand << TgcRawData::RPC_CAND_BITSHIFT)
627  + (rpccoin.bcid << TgcRawData::RPC_BCID_BITSHIFT);
628 
629  for ( int isector = 0; isector < 2; isector++ ){// duplicate for the neighboring trigger sector
630  TgcRawData* raw = new TgcRawData(rpcpos.bcBitmap+1,
631  rdo->subDetectorId(),
632  rdo->rodId(),
633  rdo->l1Id(),
634  static_cast<uint16_t>(rdo->bcId()),
635  static_cast<bool>(rpcpos.fwd),
636  static_cast<uint16_t>(rpcpos.sector) + isector,
637  rpcpos.eta,
638  rpcpos.phi,
639  flag_cand_bcid, // was static_cast<uint16_t>(rpccoin.flag),
640  rpccoin.deta,
641  rpccoin.dphi);
642  rdo->push_back(raw);
643  }
644  break;
645  }
646  } // switch
647  } // for iBs
648 
649  ATH_MSG_DEBUG( "Decoded " << MSG::dec << rdo->size() << " elements" );
650  ATH_MSG_DEBUG( "Muon::TGC_RodDecoderReadout::byteStreamSrod2Rdo done" );
651 }

◆ fillCollection()

StatusCode Muon::TGC_RodDecoderReadout::fillCollection ( const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment robFrag,
TgcRdoContainer rdoIdc 
) const
overridevirtual

Convert ROBFragment to RDO.

Definition at line 77 of file TGC_RodDecoderReadout.cxx.

78 {
79  try
80  {
81  robFrag.check();
82  } catch (eformat::Issue &ex) {// error in fragment
83  ATH_MSG_WARNING(ex.what());
84  return StatusCode::SUCCESS;
85  }
86 
87 
88  // Get the identifier for this fragment
89  uint32_t source_id = robFrag.rod_source_id();
90  SourceIdentifier sid(source_id);
91 
92  // do not convert if the TGC collection is already in the converter
93  uint16_t rdoId = TgcRdo::calculateOnlineId(sid.subdetector_id(), sid.module_id());
94  TgcRdoIdHash rdoIdHash;
95  int idHash = rdoIdHash(rdoId);
96 
97  // Get the IDC_WriteHandle for this hash (and check if it already exists)
98  std::unique_ptr<TgcRdo> rdo(nullptr);
99  TgcRdoContainer::IDC_WriteHandle lock = rdoIdc.getWriteHandle( idHash );
100  if(lock.alreadyPresent() ){
101  ATH_MSG_DEBUG ( " TGC RDO collection already exist with collection hash = "
102  << idHash << ", ID = " << sid.human() << " - converting is skipped!");
103  ++m_nCache;
104  }
105  else{
106  ATH_MSG_DEBUG( " Created new collection with ID = " << sid.human() << ", hash = " << idHash );
107  ++m_nNotCache;
108  // Create collection
109  rdo = std::make_unique<TgcRdo>(rdoId, idHash);
110  // Adjust bytestream data
112  robFrag.rod_data(bs);
113  // Get/fill the collection
114  getCollection(robFrag, rdo.get() );
115  // Add bytestream information
116  if (sid.module_id()<13){// ROD
117  byteStream2Rdo(bs, rdo.get(), robFrag.rod_source_id() );
118  }else if (sid.module_id()>16){// SROD
119  byteStreamSrod2Rdo(bs, rdo.get(), robFrag.rod_source_id(), robFrag.rod_ndata() );
120  }else{
121  ATH_MSG_DEBUG( "Error: Invalid [S]ROD number" );
122  return StatusCode::FAILURE;
123  }
124 
125  // Add TgcRdo to the container
126  StatusCode status_lock = lock.addOrDelete( std::move( rdo ) );
127  if(status_lock != StatusCode::SUCCESS){
128  ATH_MSG_ERROR(" Failed to add TGC RDO collection to container with hash " << idHash );
129  }
130  else{
131  ATH_MSG_DEBUG(" Adding TgcRdo collection with hash " << idHash << ", source id = " << sid.human() << " to the TgcRdo Container");
132  }
133  }
134 
135  return StatusCode::SUCCESS;
136 }

◆ finalize()

StatusCode Muon::TGC_RodDecoderReadout::finalize ( )
overridevirtual

Standard AlgTool method.

Definition at line 63 of file TGC_RodDecoderReadout.cxx.

64 {
66 
67  if(m_nCache>0 || m_nNotCache>0) {
68  const float cacheFraction = ((float)m_nCache) / ((float)(m_nCache + m_nNotCache));
69  ATH_MSG_INFO("Fraction of fills that use the cache = " << cacheFraction);
70  }
71 
72  return sc;
73 }

◆ getCollection()

void Muon::TGC_RodDecoderReadout::getCollection ( const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment robFrag,
TgcRdo rdo 
) const
private

Retrieve header of ROBFragment.

Definition at line 139 of file TGC_RodDecoderReadout.cxx.

140 {
141  // Retrieve information and set in rdo
142  uint32_t source_id = robFrag.rod_source_id();
143  SourceIdentifier sid(source_id);
144 
145  uint16_t rdoId = TgcRdo::calculateOnlineId(sid.subdetector_id(), sid.module_id());
146  TgcRdoIdHash rdoIdHash;
147  int idHash = rdoIdHash(rdoId);
148 
149  rdo->setL1Id(robFrag.rod_lvl1_id());
150  rdo->setBcId(robFrag.rod_bc_id());
151  rdo->setTriggerType(robFrag.rod_lvl1_trigger_type());
152  rdo->setOnlineId(sid.subdetector_id(), sid.module_id()); // rodId = module_id (ROD: 1-12, SROD: 17-19)
153 
154  uint32_t nstatus = robFrag.rod_nstatus(); // 5 : ROD , 3 : SROD
155  ATH_MSG_DEBUG( " Number of Status Words = " << nstatus );
156  const uint32_t* status;
157  robFrag.rod_status(status);
158  if (nstatus == 5 && sid.module_id() < 13){ // ROD
159  rdo->setErrors(status[0]);
160  rdo->setRodStatus(status[1]);;
161  rdo->setLocalStatus(status[3]);
162  rdo->setOrbit(status[4]);
163  }else if (nstatus == 3 && sid.module_id() > 16){// SROD
164  rdo->setErrors(status[0]);
165  rdo->setRodStatus(status[1]);
166  rdo->setLocalStatus(status[2]);
167  }
168 
169  if(m_showStatusWords) {
170  showStatusWords(source_id, rdoId, idHash, nstatus, status);
171  }
172 
173  }

◆ initialize()

StatusCode Muon::TGC_RodDecoderReadout::initialize ( )
overridevirtual

Standard AlgTool method.

Definition at line 44 of file TGC_RodDecoderReadout.cxx.

45 {
47 
48  if(sc.isFailure()) return sc;
49 
50  // Retrieve the TgcIdHelper
51  if(detStore()->retrieve(m_tgcIdHelper, "TGCIDHELPER").isFailure())
52  {
53  ATH_MSG_FATAL( " Cannot retrieve TgcIdHelper " );
54  return StatusCode::FAILURE;
55  }
56 
57  ATH_MSG_INFO( "initialize() successful in " << name() );
58  return StatusCode::SUCCESS;
59 }

◆ showStatusWords()

void Muon::TGC_RodDecoderReadout::showStatusWords ( const uint32_t  source_id,
const uint16_t  rdoId,
const int  idHash,
const uint32_t  nstatus,
const uint32_t *  status 
) const
private

Show status words.

Definition at line 654 of file TGC_RodDecoderReadout.cxx.

655  {
656  static const unsigned int maxNStatus = 5;
657  static const std::string statusDataWord[maxNStatus] = {
658  "First status word specific|generic:", // 0
659  "TGC ROD event status :", // 1
660  "ROD VME fileter bits | SSW timeout:", // 2
661  "Local status word | presence :", // 3
662  "orbit count :" // 4
663  };
664 
665  static const unsigned int maxFirstStatus = 5;
666  static const std::string firstStatus[maxFirstStatus] = {
667  "incorrect BCID", // 0
668  "incorrect L1AID", // 1
669  "Timeout occurred in at least one of the FE links. Fragment is incomplete.", // 2
670  "Data may be incorrect, see TGC ROD event status word", // 3
671  "An overflow in one of the ROD internal buffers has occurred. The fragment is incomplete." // 4
672  };
673 
674  static const unsigned int maxTgcRodEventStatus = 31;
675  static const std::string tgcRodEventStatus[maxTgcRodEventStatus] = {
676  "EC_RXsend : Error in request to send an event via RXlink", // 0
677  "EC_FELdown : A Front End link has gone down - abandoned", // 1
678  "EC_frame : Invalid FE link framing words", // 2
679  "EC_Glnk : Front End link G-link error", // 3
680  "EC_xor : Invalid XOR event checksum", // 4
681  "EC_ovfl : Input FE event is too long or FE FIFO overflow", // 5
682  "EC_timeout : Timeout expired for at least one FE link", // 6
683  "EC_xormezz : Bad XOR checksum from mezz board", // 7
684  "EC_wc0 : Event has WC=0 or WX>max WC", // 8
685  "EC_L1ID : L1ID mismatch (TTC EVID FIFO vs local).", // 9
686  "EC_nohdr : First word is not header", // 10
687  "EC_rectype : Unrecognized record type", // 11
688  "EC_null : Unexpected nulls in FE input", // 12
689  "EC_order : Word is out of order", // 13
690  "EC_LDB : Invalid or unexpected Star Switch ID", // 14
691  "EC_RXovfl : RXfifo has overflowed", // 15
692  "EC_SSWerr : SSW reports T1C, NRC, T2C, or GlinkNoLock error", // 16
693  "EC_sbid : SBid does not match SBinfo table", // 17
694  "EC_SBtype : SBtype does not match SBinfo table", // 18
695  "EC_duprx : RX ID is duplicated in the event", // 19
696  "EC_ec4 : Unexpected SB L1 Event ID(lo 4)", // 20
697  "EC_bc : Unexpected SB BCID", // 21
698  "EC_celladr : Invalid cell address", // 22
699  "EC_hitovfl : Too many hits in event", // 23
700  "EC_trgbit : Unexpected trigger bits", // 24
701  "EC_badEoE : Bad End-of-event marker received, not 0xFCA", // 25
702  "EC_endWCnot0 : WC not 0 after End-of-event marker", // 26
703  "EC_noEoE : No End-of-event marker received", // 27
704  "EC_SLGlink : Sector Logic reports G-Link error", // 28
705  "EC_SLbc : Sector Logic BCID[2:0] does not match its SB BCID", // 29
706  "EC_unxrxid : Data from disabled SSW RX ID" // 30
707  };
708 
709  static const unsigned int maxSSWs = 12;
710 
711  static const unsigned int maxPresence = 10;
712  static const std::string presence[maxPresence] = {
713  "", // 0
714  "raw data", // 1
715  "hits in readout fmt", // 2
716  "tracklets in readout fmt", // 3
717  "hits in chamber fmt", // 4
718  "tracklets in chamber fmt", // 5
719  "", // 6
720  "", // 7
721  "HipT output", // 8
722  "Sector Logic" // 9
723  };
724 
725  static const unsigned int maxLocalStatus = 16;
726  static const std::string localStatus[maxLocalStatus] = {
727  "hit BCs are merged", // 0
728  "tracklet BCs are merged", // 1
729  "hits are sorted", // 2
730  "tracklets are sorted", // 3
731  "", // 4
732  "", // 5
733  "", // 6
734  "", // 7
735  "", // 8
736  "", // 9
737  "", // 10
738  "", // 11
739  "", // 12
740  "", // 13
741  "ROI in this fragment", // 14
742  "no L1AID, BCID check wrt ROD" // 15
743  };
744 
745  ATH_MSG_INFO("***** TGC ROD STATUS WORDS for "
746  << "source_id=0x" << source_id << ", "
747  << "rdoId=0x" << rdoId << (rdoId<16 ? " , " : ", ")
748  << "idHash=0x" << idHash << (idHash<16 ? " , " : ", ")
749  << (idHash<12 ? "A" : "C") << (idHash%12+1<10 ? "0" : "") << std::dec << idHash%12+1
750  << " ******");
751  ATH_MSG_INFO("***** Based on http://cern.ch/atlas-tgc/doc/ROBformat.pdf ****************************");
752 
753  for(uint32_t i=0; i<nstatus && i<maxNStatus; i++) {
754  ATH_MSG_INFO(statusDataWord[i] << " status[" << i << "]=0x" << std::hex << status[i]);
755 
756  if(i==0) {
757  // Table 2 ATLAS standard, first status word, all zero means no known errors
758  for(unsigned int j=0; j<maxFirstStatus; j++) {
759  if((status[i] >> j) & 0x1) {
760  ATH_MSG_INFO(std::dec << std::setw(3) << j << " : " << firstStatus[j]);
761  }
762  }
763  } else if(i==1) {
764  // Table 3 TGC ROD event status word
765  for(unsigned int j=0; j<maxTgcRodEventStatus; j++) {
766  if((status[i] >> j) & 0x1) {
767  ATH_MSG_INFO(std::dec << std::setw(3) << j << " : " << tgcRodEventStatus[j]);
768  }
769  }
770  } else if(i==2) {
771  // Table 4 Star switch time-out status and ROD VME filter bits
772  for(unsigned int j=0; j<maxSSWs; j++) {
773  if((status[i] >> j) & 0x1) {
774  ATH_MSG_INFO(std::dec << std::setw(3) << j << " : " << "time-out for SSW" << j);
775  }
776  }
777  for(unsigned int j=0+16; j<=maxSSWs+16; j++) {
778  if((status[i] >> j) & 0x1) {
779  ATH_MSG_INFO(std::dec << std::setw(3) << j << " : " << "data from SSW" << j-16 << " gave filter \"accept\"");
780  }
781  }
782  } else if(i==3) {
783  // Table 6 Presence bits
784  for(unsigned int j=0; j<maxPresence; j++) {
785  if(j==0 || j==6 || j==7) continue;
786  if((status[i] >> j) & 0x1) {
787  ATH_MSG_INFO(std::dec << std::setw(3) << j << " : " << presence[j]);
788  }
789  }
790 
791  // Table 5 Local status word
792  for(unsigned int j=0+16; j<maxLocalStatus+16; j++) {
793  if((j>=4+16 && j<=13+16)) continue;
794  if((status[i] >> j) & 0x1) {
795  ATH_MSG_INFO(std::dec << std::setw(3) << j << " : " << localStatus[j-16]);
796  }
797  }
798  }
799  }
800 
801  ATH_MSG_INFO("**************************************************************************************");
802 }

Member Data Documentation

◆ m_nCache

std::atomic<unsigned int> Muon::TGC_RodDecoderReadout::m_nCache = 0
mutableprivate

Definition at line 61 of file TGC_RodDecoderReadout.h.

◆ m_nNotCache

std::atomic<unsigned int> Muon::TGC_RodDecoderReadout::m_nNotCache = 0
mutableprivate

Definition at line 62 of file TGC_RodDecoderReadout.h.

◆ m_showStatusWords

bool Muon::TGC_RodDecoderReadout::m_showStatusWords
private

Flag for showStatusWords.

Definition at line 56 of file TGC_RodDecoderReadout.h.

◆ m_skipCoincidence

bool Muon::TGC_RodDecoderReadout::m_skipCoincidence
private

Flag for skipping coincidence objects (for TrigT1TGC running on data)

Definition at line 58 of file TGC_RodDecoderReadout.h.

◆ m_tgcIdHelper

const TgcIdHelper* Muon::TGC_RodDecoderReadout::m_tgcIdHelper
private

TGC ID helper.

Definition at line 45 of file TGC_RodDecoderReadout.h.


The documentation for this class was generated from the following files:
TGC_BYTESTREAM_SOURCEID::rodid
unsigned rodid
Definition: TgcByteStreamData.h:20
TgcRdo::identify
uint16_t identify() const
Definition: TgcRdo.h:107
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
TGC_BYTESTREAM_NSW_ANG
Definition: TgcByteStreamData.h:217
TGC_BYTESTREAM_RPCBIS78_COIN::flag
unsigned flag
Definition: TgcByteStreamData.h:252
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
TGC_BYTESTREAM_RPCBIS78_POS::fwd
unsigned fwd
Definition: TgcByteStreamData.h:242
TGC_BYTESTREAM_NSW_POS::fwd
unsigned fwd
Definition: TgcByteStreamData.h:210
TgcRawData::NSW_INPUT_BITSHIFT
static constexpr uint32_t NSW_INPUT_BITSHIFT
Definition: TgcRawData.h:217
TGC_BYTESTREAM_HIPT::hitId
unsigned hitId
Definition: TgcByteStreamData.h:131
python.tests.PyTestsLib.finalize
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
Definition: PyTestsLib.py:50
TGC_BYTESTREAM_NSL_TMDB
Definition: TgcByteStreamData.h:298
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
TGC_BYTESTREAM_HIPT_INNER::sector
unsigned sector
Definition: TgcByteStreamData.h:152
TGC_BYTESTREAM_READOUTTRACKLET::seg
unsigned seg
Definition: TgcByteStreamData.h:94
TGC_BYTESTREAM_SL::cand2plus
unsigned cand2plus
Definition: TgcByteStreamData.h:174
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.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
TGC_BYTESTREAM_NSW_ANG::nswid
unsigned nswid
Definition: TgcByteStreamData.h:222
TgcRdo::setRodStatus
void setRodStatus(uint32_t data)
Definition: TgcRdo.h:178
TGC_BYTESTREAM_READOUTHIT::sbId
unsigned sbId
Definition: TgcByteStreamData.h:77
IdentifiableContainerMT::getWriteHandle
IDC_WriteHandle getWriteHandle(IdentifierHash hash)
Definition: IdentifiableContainerMT.h:251
TGC_BYTESTREAM_READOUTTRIPLETSTRIP::slbType
unsigned slbType
Definition: TgcByteStreamData.h:120
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
Muon::TGC_RodDecoderReadout::byteStream2Rdo
void byteStream2Rdo(OFFLINE_FRAGMENTS_NAMESPACE::PointerType bs, TgcRdo *rdo, uint32_t source_id) const
Convert data contents of ROBFragment to RDO.
Definition: TGC_RodDecoderReadout.cxx:177
TGC_BYTESTREAM_NSW_ANG::lowres
unsigned lowres
Definition: TgcByteStreamData.h:220
Issue
Configuration Issue
Definition: PscIssues.h:31
TgcRawData::NSW_BCID_BITSHIFT
static constexpr uint32_t NSW_BCID_BITSHIFT
Definition: TgcRawData.h:219
TGC_BYTESTREAM_HIPT_INNER::bcBitmap
unsigned bcBitmap
Definition: TgcByteStreamData.h:155
initialize
void initialize()
Definition: run_EoverP.cxx:894
TGC_BYTESTREAM_NSW_ANG::cand
unsigned cand
Definition: TgcByteStreamData.h:225
TGC_BYTESTREAM_READOUTTRACKLET::sbId
unsigned sbId
Definition: TgcByteStreamData.h:96
TGC_BYTESTREAM_NSL_EIFI::fi
unsigned fi
Definition: TgcByteStreamData.h:268
RunTileCalibRec.tmdb
tmdb
Definition: RunTileCalibRec.py:234
TGC_BYTESTREAM_NSL_ROI::coinflag
unsigned coinflag
Definition: TgcByteStreamData.h:190
TGC_BYTESTREAM_RPCBIS78_COIN
Definition: TgcByteStreamData.h:248
TGC_BYTESTREAM_READOUTHIT::ldbId
unsigned ldbId
Definition: TgcByteStreamData.h:80
TGC_BYTESTREAM_HIPT::sector
unsigned sector
Definition: TgcByteStreamData.h:135
TGC_BYTESTREAM_NSL_EIFI::fwd
unsigned fwd
Definition: TgcByteStreamData.h:273
TgcRawData::NSW_CAND_BITSHIFT
static constexpr uint32_t NSW_CAND_BITSHIFT
Definition: TgcRawData.h:215
TGC_BYTESTREAM_READOUTTRACKLET::delta
signed delta
Definition: TgcByteStreamData.h:95
TGC_BYTESTREAM_SL::overlap
unsigned overlap
Definition: TgcByteStreamData.h:165
TGC_BYTESTREAM_NSW_POS::bcBitmap
unsigned bcBitmap
Definition: TgcByteStreamData.h:208
TgcRdo::setTriggerType
void setTriggerType(uint16_t v)
Definition: TgcRdo.h:127
TGC_BYTESTREAM_READOUTHIT::adj
unsigned adj
Definition: TgcByteStreamData.h:79
TGC_BYTESTREAM_READOUTTRACKLET::slbType
unsigned slbType
Definition: TgcByteStreamData.h:101
IdentifiableContainerMT::IDC_WriteHandle::alreadyPresent
bool alreadyPresent()
Definition: IdentifiableContainerMT.h:62
TGC_BYTESTREAM_READOUTTRIPLETSTRIP::bcBitmap
unsigned bcBitmap
Definition: TgcByteStreamData.h:117
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
TGC_BYTESTREAM_RPCBIS78_POS::bcBitmap
unsigned bcBitmap
Definition: TgcByteStreamData.h:240
TGC_BYTESTREAM_NSL_ROI::innerflag
unsigned innerflag
Definition: TgcByteStreamData.h:191
TGC_BYTESTREAM_HIPT::cand
unsigned cand
Definition: TgcByteStreamData.h:133
Muon::TGC_RodDecoderReadout::m_tgcIdHelper
const TgcIdHelper * m_tgcIdHelper
TGC ID helper.
Definition: TGC_RodDecoderReadout.h:45
TGC_BYTESTREAM_SL::threshold
unsigned threshold
Definition: TgcByteStreamData.h:166
TGC_BYTESTREAM_RPCBIS78_COIN::bcBitmap
unsigned bcBitmap
Definition: TgcByteStreamData.h:257
TGC_BYTESTREAM_RPCBIS78_POS::phi
unsigned phi
Definition: TgcByteStreamData.h:237
TgcRdo::l1Id
uint16_t l1Id() const
Definition: TgcRdo.h:150
TGC_BYTESTREAM_NSL_ROI::roi
unsigned roi
Definition: TgcByteStreamData.h:187
Muon::TGC_RodDecoderReadout::m_nCache
std::atomic< unsigned int > m_nCache
Definition: TGC_RodDecoderReadout.h:61
Muon::TGC_RodDecoderReadout::byteStreamSrod2Rdo
void byteStreamSrod2Rdo(OFFLINE_FRAGMENTS_NAMESPACE::PointerType bs, TgcRdo *rdo, uint32_t source_id, uint32_t ndata) const
Definition: TGC_RodDecoderReadout.cxx:459
TGC_BYTESTREAM_NSW_POS::phi
unsigned phi
Definition: TgcByteStreamData.h:204
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
TGC_BYTESTREAM_HIPT::hipt
unsigned hipt
Definition: TgcByteStreamData.h:132
TGC_BYTESTREAM_HIPT::bcBitmap
unsigned bcBitmap
Definition: TgcByteStreamData.h:138
TGC_BYTESTREAM_NSL_ROI::fwd
unsigned fwd
Definition: TgcByteStreamData.h:195
TGC_BYTESTREAM_READOUTTRIPLETSTRIP
The struct for triplet strip in ByteStream.
Definition: TgcByteStreamData.h:109
TgcRdo::setErrors
void setErrors(uint16_t data)
Definition: TgcRdo.h:162
TGC_BYTESTREAM_HIPT::sub
unsigned sub
Definition: TgcByteStreamData.h:130
Muon::TGC_RodDecoderReadout::m_nNotCache
std::atomic< unsigned int > m_nNotCache
Definition: TGC_RodDecoderReadout.h:62
TGC_BYTESTREAM_NSW_POS::sector
unsigned sector
Definition: TgcByteStreamData.h:209
TGC_BYTESTREAM_READOUTTRACKLET
The struct for tracklet in ByteStream.
Definition: TgcByteStreamData.h:91
TGC_BYTESTREAM_READOUTTRIPLETSTRIP::sbId
unsigned sbId
Definition: TgcByteStreamData.h:115
TGC_BYTESTREAM_NSW_POS
Definition: TgcByteStreamData.h:202
Muon::TGC_RodDecoderReadout::m_showStatusWords
bool m_showStatusWords
Flag for showStatusWords.
Definition: TGC_RodDecoderReadout.h:56
OFFLINE_FRAGMENTS_NAMESPACE::PointerType
const DataType * PointerType
Definition: RawEvent.h:25
TGC_BYTESTREAM_HIPT
The struct for HiPt in ByteStream.
Definition: TgcByteStreamData.h:128
TgcRdoIdHash
Definition: TgcRdoIdHash.h:18
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
TGC_BYTESTREAM_NSW_ANG::bcid
unsigned bcid
Definition: TgcByteStreamData.h:223
TgcRdo::subDetectorId
uint16_t subDetectorId() const
Definition: TgcRdo.h:134
TGC_BYTESTREAM_SOURCEID
The struct for source ID in ByteStream.
Definition: TgcByteStreamData.h:19
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
TGC_BYTESTREAM_NSL_HIPT
Definition: TgcByteStreamData.h:280
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:134
lumiFormat.i
int i
Definition: lumiFormat.py:85
TGC_BYTESTREAM_NSL_EIFI::sector
unsigned sector
Definition: TgcByteStreamData.h:272
TGC_BYTESTREAM_NSL_EIFI::ei
unsigned ei
Definition: TgcByteStreamData.h:267
TGC_BYTESTREAM_READOUTTRIPLETSTRIP::seg
unsigned seg
Definition: TgcByteStreamData.h:113
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
TgcRawData::RPC_FLAG_BITSHIFT
static constexpr uint32_t RPC_FLAG_BITSHIFT
Definition: TgcRawData.h:222
TGC_BYTESTREAM_RPCBIS78_COIN::dphi
unsigned dphi
Definition: TgcByteStreamData.h:251
fromBS32
void fromBS32(uint32_t data, T &s)
Definition: TgcByteStreamData.h:321
TGC_BYTESTREAM_HIPT_INNER::strip
unsigned strip
Definition: TgcByteStreamData.h:154
TGC_BYTESTREAM_READOUTTRIPLETSTRIP::ldbId
unsigned ldbId
Definition: TgcByteStreamData.h:116
IdentifiableContainerMT::IDC_WriteHandle
Definition: IdentifiableContainerMT.h:34
TGC_BYTESTREAM_READOUTHIT
The struct for hit in ByteStream.
Definition: TgcByteStreamData.h:75
TGC_BYTESTREAM_READOUTHIT::tracklet
unsigned tracklet
Definition: TgcByteStreamData.h:82
TGC_BYTESTREAM_RPCBIS78_POS::cand
unsigned cand
Definition: TgcByteStreamData.h:239
TGC_BYTESTREAM_SL::sign
unsigned sign
Definition: TgcByteStreamData.h:169
TGC_BYTESTREAM_READOUTTRIPLETSTRIP::phi
unsigned phi
Definition: TgcByteStreamData.h:110
TGC_BYTESTREAM_SL::veto
unsigned veto
Definition: TgcByteStreamData.h:175
TGC_BYTESTREAM_HIPT_INNER
The struct for Inner trigger bits in ByteStream.
Definition: TgcByteStreamData.h:146
TGC_BYTESTREAM_SL::fwd
unsigned fwd
Definition: TgcByteStreamData.h:172
TGC_BYTESTREAM_SL::bcBitmap
unsigned bcBitmap
Definition: TgcByteStreamData.h:173
TGC_BYTESTREAM_READOUTHIT::bcBitmap
unsigned bcBitmap
Definition: TgcByteStreamData.h:81
TGC_BYTESTREAM_NSL_EIFI::chamberid
unsigned chamberid
Definition: TgcByteStreamData.h:269
TGC_BYTESTREAM_SL::sector
unsigned sector
Definition: TgcByteStreamData.h:171
TGC_BYTESTREAM_FRAGMENTCOUNT::count
unsigned count
Definition: TgcByteStreamData.h:69
TGC_BYTESTREAM_NSL_ROI::charge
unsigned charge
Definition: TgcByteStreamData.h:189
TGC_BYTESTREAM_READOUTHIT::sbType
unsigned sbType
Definition: TgcByteStreamData.h:78
TgcRdo::bcId
uint16_t bcId() const
Definition: TgcRdo.h:146
TGC_BYTESTREAM_NSW_ANG::type
unsigned type
Definition: TgcByteStreamData.h:229
TGC_BYTESTREAM_NSL_EIFI
Definition: TgcByteStreamData.h:266
TGC_BYTESTREAM_READOUTTRACKLET::ldbId
unsigned ldbId
Definition: TgcByteStreamData.h:97
TGC_BYTESTREAM_HIPT::strip
unsigned strip
Definition: TgcByteStreamData.h:137
TGC_BYTESTREAM_NSW_POS::eta
unsigned eta
Definition: TgcByteStreamData.h:203
TGC_BYTESTREAM_READOUTTRACKLET::subm
unsigned subm
Definition: TgcByteStreamData.h:93
TGC_BYTESTREAM_SL::cand
unsigned cand
Definition: TgcByteStreamData.h:170
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
TGC_BYTESTREAM_READOUTTRACKLET::rphi
unsigned rphi
Definition: TgcByteStreamData.h:92
TGC_BYTESTREAM_NSW_ANG::bcBitmap
unsigned bcBitmap
Definition: TgcByteStreamData.h:226
TGC_BYTESTREAM_RPCBIS78_POS
Definition: TgcByteStreamData.h:235
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
TGC_BYTESTREAM_NSL_EIFI::bcBitmap
unsigned bcBitmap
Definition: TgcByteStreamData.h:271
TGC_BYTESTREAM_RPCBIS78_POS::eta
unsigned eta
Definition: TgcByteStreamData.h:236
TGC_BYTESTREAM_HIPT::delta
signed delta
Definition: TgcByteStreamData.h:129
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
TGC_BYTESTREAM_RPCBIS78_COIN::deta
unsigned deta
Definition: TgcByteStreamData.h:250
TgcRdo::setOnlineId
void setOnlineId(uint16_t subDetectorId, uint16_t rodId)
Definition: TgcRdo.cxx:35
IdentifiableContainerMT::IDC_WriteHandle::addOrDelete
StatusCode addOrDelete(std::unique_ptr< T > ptr)
Definition: IdentifiableContainerMT.h:56
Muon::TGC_RodDecoderReadout::m_skipCoincidence
bool m_skipCoincidence
Flag for skipping coincidence objects (for TrigT1TGC running on data)
Definition: TGC_RodDecoderReadout.h:58
TGC_BYTESTREAM_READOUTTRIPLETSTRIP::subc
unsigned subc
Definition: TgcByteStreamData.h:111
TGC_BYTESTREAM_RPCBIS78_COIN::type
unsigned type
Definition: TgcByteStreamData.h:260
TGC_BYTESTREAM_SL
The struct for SL in ByteStream.
Definition: TgcByteStreamData.h:163
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
Muon::TGC_RodDecoderReadout::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_RodDecoderReadout.cxx:654
TGC_BYTESTREAM_NSW_ANG::input
unsigned input
Definition: TgcByteStreamData.h:224
TgcRawData
An unit object of TGC ROD output.
Definition: TgcRawData.h:23
bcTag
unsigned bcTag(unsigned bcBitMap)
Definition: TgcByteStreamData.h:359
TGC_BYTESTREAM_READOUTHIT::channel
unsigned channel
Definition: TgcByteStreamData.h:76
TGC_BYTESTREAM_SOURCEID::side
unsigned side
Definition: TgcByteStreamData.h:22
TgcRawData::SLB_TYPE_INNER_STRIP
@ SLB_TYPE_INNER_STRIP
Definition: TgcRawData.h:37
TGC_BYTESTREAM_HIPT::fwd
unsigned fwd
Definition: TgcByteStreamData.h:136
TgcRawData::RPC_CAND_BITSHIFT
static constexpr uint32_t RPC_CAND_BITSHIFT
Definition: TgcRawData.h:224
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
TGC_BYTESTREAM_NSL_ROI::sector
unsigned sector
Definition: TgcByteStreamData.h:194
TGC_BYTESTREAM_NSL_ROI::pt
unsigned pt
Definition: TgcByteStreamData.h:188
TGC_BYTESTREAM_NSW_ANG::phires
unsigned phires
Definition: TgcByteStreamData.h:219
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
TGC_BYTESTREAM_NSL_ROI::type
unsigned type
Definition: TgcByteStreamData.h:196
TgcRawData::RPC_BCID_BITSHIFT
static constexpr uint32_t RPC_BCID_BITSHIFT
Definition: TgcRawData.h:226
TGC_BYTESTREAM_NSW_POS::input
unsigned input
Definition: TgcByteStreamData.h:206
test_pyathena.counter
counter
Definition: test_pyathena.py:15
TGC_BYTESTREAM_RPCBIS78_COIN::cand
unsigned cand
Definition: TgcByteStreamData.h:256
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:68
TGC_BYTESTREAM_NSL_ROI
structs for NewSL
Definition: TgcByteStreamData.h:186
TGC_BYTESTREAM_RPCBIS78_COIN::bcid
unsigned bcid
Definition: TgcByteStreamData.h:254
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:164
TGC_BYTESTREAM_HIPT_INNER::inner
unsigned inner
Definition: TgcByteStreamData.h:147
readCCLHist.float
float
Definition: readCCLHist.py:83
TGC_BYTESTREAM_NSL_ROI::bcBitmap
unsigned bcBitmap
Definition: TgcByteStreamData.h:193
TGC_BYTESTREAM_RPCBIS78_POS::sector
unsigned sector
Definition: TgcByteStreamData.h:241
TGC_BYTESTREAM_READOUTTRACKLET::bcBitmap
unsigned bcBitmap
Definition: TgcByteStreamData.h:98
TGC_BYTESTREAM_NSW_POS::cand
unsigned cand
Definition: TgcByteStreamData.h:207
hipt
bool hipt
Definition: globals.cxx:29
Muon::TGC_RodDecoderReadout::getCollection
void getCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment &robFrag, TgcRdo *rdo) const
Retrieve header of ROBFragment.
Definition: TGC_RodDecoderReadout.cxx:139
TGC_BYTESTREAM_NSW_ANG::angle
unsigned angle
Definition: TgcByteStreamData.h:218
TgcRawData::SlbType
SlbType
Definition: TgcRawData.h:31