ATLAS Offline Software
TgcRODReadOut.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUONTGC_CNVTOOLS_TGCRODREADOUT_H
6 #define MUONTGC_CNVTOOLS_TGCRODREADOUT_H
7 
8 #include <inttypes.h>
9 #include <vector>
10 
11 #include "MuonRDO/TgcRdo.h"
14 
15 namespace Muon
16 {
17  class TgcSlbData;
18  class TgcSlbDataHelper;
19 
20 
36  {
37  private:
39 
40  public:
44  virtual ~TgcRODReadOut();
45 
48  TgcRdo& tgcRdo,
49  uint32_t source_id) const;
52  StatusCode check(const ByteStream& bs,
53  TgcRdo& tgcRdo,
54  uint32_t source_id) const;
56  StatusCode compare(TgcRdo* rdo, TgcRdo* newRdo) const;
58  static bool isMatched(const TgcRawData* rdo1,
59  const TgcRawData* rdo2) ;
62  const ByteStream& vData,
63  uint16_t subDetectorId,
64  uint16_t rodId,
65  uint32_t l1Id,
66  uint16_t bcId) const;
67 
68  protected:
69  enum {
70  RawDataFragMask =0xFF000000, // RawData Fragment HEADER Mask
71  FragmentIdMask =0xFF000000, // Fragmen ID Mask
72  FragmentCountMask =0x00FFFFFF, // Fragmen ID Mask
73  HeaderMask =0xE0000000, //
74  HeaderEvent =0x00000000, // Event Header
75  HeaderError =0x20000000, // Error Report
76  HeaderSLB10 =0x40000000, // SLB Header 10
77  HeaderSLB11 =0x60000000, // SLB Header 11
78  HeaderSLBC =0x80000000, // central bunch
79  HeaderSLBP =0xA0000000, // previous bunch
80  HeaderSLBN =0xC0000000, // next bunch
81  HeaderTrailer =0x70000000, // SLB Header 11
82 
83  ROD_START = 0xEE1234EE,
85  ROD_STATUS_SIZE = 0x05
86  };
87 
89  bool setSbLoc(uint16_t subDetectorId,
90  uint16_t rodId,
91  TgcSlbData * slb, int rxId) const;
92 
93  private:
95  enum NROD_SIDE {
96  NROD = 24+1,
97  NSROD = 6+1,
98  ASIDE = 0x67, // 103
99  CSIDE = 0x68 // 104
100  };
102  mutable std::atomic<unsigned int> m_failedDecodeRodToRdo[NROD+1];
104  mutable std::atomic<unsigned int> m_failedHeaderSizeRawData[NROD+1];
106  mutable std::atomic<unsigned int> m_failedSetSbLoc[NROD+1];
108  mutable std::atomic<unsigned int> m_failedSetType[NROD+1];
110  mutable std::atomic<unsigned int> m_failedGetSLBIDfromRxID[NROD+1];
112  mutable std::atomic<unsigned int> m_failedGetReadoutIDfromSLBID[NROD+1];
113 
116 
119 
122  };
123 
124 } // end of namespace
125 
126 #endif // MUONTGC_CNVTOOLS_TGCRODREADOUT_H
Muon::TgcRODReadOut::FragmentIdMask
@ FragmentIdMask
Definition: TgcRODReadOut.h:71
Muon::TgcRODReadOut::NROD
@ NROD
Definition: TgcRODReadOut.h:96
Muon::TgcRODReadOut::m_failedGetSLBIDfromRxID
std::atomic< unsigned int > m_failedGetSLBIDfromRxID[NROD+1]
The number of failures on getSLBIDfromRxID.
Definition: TgcRODReadOut.h:110
Muon::TgcRODReadOut::isMatched
static bool isMatched(const TgcRawData *rdo1, const TgcRawData *rdo2)
Compare two RDOs.
Definition: TgcRODReadOut.cxx:214
ITGCcablingSvc
Definition: ITGCcablingSvc.h:31
Muon::TgcRODReadOut::HeaderTrailer
@ HeaderTrailer
Definition: TgcRODReadOut.h:81
Muon::TgcRODReadOut::HeaderSLBP
@ HeaderSLBP
Definition: TgcRODReadOut.h:79
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
Muon::TgcRODReadOut::m_failedDecodeRodToRdo
std::atomic< unsigned int > m_failedDecodeRodToRdo[NROD+1]
The number of failures on decodeRodToRdo.
Definition: TgcRODReadOut.h:102
Muon::TgcRODReadOut::FragmentCountMask
@ FragmentCountMask
Definition: TgcRODReadOut.h:72
Muon::TgcRODReadOut::HeaderError
@ HeaderError
Definition: TgcRODReadOut.h:75
ReadCellNoiseFromCool.cabling
cabling
Definition: ReadCellNoiseFromCool.py:154
Muon::TgcRODReadOut::HeaderSLB10
@ HeaderSLB10
Definition: TgcRODReadOut.h:76
Muon::TgcRODReadOut::m_cabling
const ITGCcablingSvc & m_cabling
TGC Cabling Svc.
Definition: TgcRODReadOut.h:115
Muon::TgcRODReadOut::m_failedSetType
std::atomic< unsigned int > m_failedSetType[NROD+1]
The number of failures on setType.
Definition: TgcRODReadOut.h:108
Muon::TgcRODReadOut::CSIDE
@ CSIDE
Definition: TgcRODReadOut.h:99
Muon::TgcRODReadOut::ROD_STATUS_SIZE
@ ROD_STATUS_SIZE
Definition: TgcRODReadOut.h:85
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
Muon::TgcRODReadOut::~TgcRODReadOut
virtual ~TgcRODReadOut()
Destructor.
Definition: TgcRODReadOut.cxx:28
Muon::TgcSlbDataHelper
Definition: TgcSlbDataHelper.h:33
Muon::TgcRODReadOut::setSbLoc
bool setSbLoc(uint16_t subDetectorId, uint16_t rodId, TgcSlbData *slb, int rxId) const
Set sbLoc.
Definition: TgcRODReadOut.cxx:640
OFFLINE_FRAGMENTS_NAMESPACE::PointerType
const DataType * PointerType
Definition: RawEvent.h:25
Muon::TgcRODReadOut
Definition: TgcRODReadOut.h:36
ITGCcablingSvc.h
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
Muon::TgcRODReadOut::m_failedHeaderSizeRawData
std::atomic< unsigned int > m_failedHeaderSizeRawData[NROD+1]
The number of strange header and SizeRawData.
Definition: TgcRODReadOut.h:104
Muon::TgcRODReadOut::HeaderSLB11
@ HeaderSLB11
Definition: TgcRODReadOut.h:77
RawEvent.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Muon::TgcRODReadOut::HeaderSLBN
@ HeaderSLBN
Definition: TgcRODReadOut.h:80
Muon::TgcRODReadOut::HeaderEvent
@ HeaderEvent
Definition: TgcRODReadOut.h:74
TgcRdo.h
Muon::TgcSlbData
Definition: TgcSlbData.h:22
Muon::TgcRODReadOut::ROD_HEADER_SIZE
@ ROD_HEADER_SIZE
Definition: TgcRODReadOut.h:84
Muon::TgcRODReadOut::TgcRODReadOut
TgcRODReadOut(const TgcRODReadOut &)
bcId
uint16_t bcId(uint32_t data)
Definition: TgcByteStreamData.h:329
Muon::TgcRODReadOut::byteStream2Rdo
StatusCode byteStream2Rdo(const ByteStream &bs, TgcRdo &tgcRdo, uint32_t source_id) const
Convert BS (ROB fragment) to RDO.
Definition: TgcRODReadOut.cxx:64
Muon::TgcRODReadOut::ASIDE
@ ASIDE
Definition: TgcRODReadOut.h:98
Muon::TgcRODReadOut::decodeRodToRdo
StatusCode decodeRodToRdo(TgcRdo &tgcRdo, const ByteStream &vData, uint16_t subDetectorId, uint16_t rodId, uint32_t l1Id, uint16_t bcId) const
Decode BS to RDO container.
Definition: TgcRODReadOut.cxx:269
Muon::TgcRODReadOut::HeaderMask
@ HeaderMask
Definition: TgcRODReadOut.h:73
Muon::TgcRODReadOut::m_failedSetSbLoc
std::atomic< unsigned int > m_failedSetSbLoc[NROD+1]
The number of failures on setSbLoc.
Definition: TgcRODReadOut.h:106
Muon::TgcRODReadOut::TgcRODReadOut
TgcRODReadOut(const ITGCcablingSvc &cabling)
Constructor.
Definition: TgcRODReadOut.cxx:12
TgcRawData
An unit object of TGC ROD output.
Definition: TgcRawData.h:23
Muon::TgcRODReadOut::m_tgcSlbDataHelper
TgcSlbDataHelper * m_tgcSlbDataHelper
TGC SLB data helper.
Definition: TgcRODReadOut.h:118
Muon::TgcRODReadOut::ByteStream
OFFLINE_FRAGMENTS_NAMESPACE::PointerType ByteStream
Definition: TgcRODReadOut.h:38
Muon::TgcRODReadOut::NROD_SIDE
NROD_SIDE
The number of RODs (1-24 for 12-fold, 0-15 for 8-fold)
Definition: TgcRODReadOut.h:95
TgcRdo
Definition: TgcRdo.h:22
Muon::TgcRODReadOut::NSROD
@ NSROD
Definition: TgcRODReadOut.h:97
Muon::TgcRODReadOut::ROD_START
@ ROD_START
Definition: TgcRODReadOut.h:83
Muon::TgcRODReadOut::HeaderSLBC
@ HeaderSLBC
Definition: TgcRODReadOut.h:78
ByteStream
Transient data object, holding BS content of the event.
Definition: ByteStream.h:17
Muon::TgcRODReadOut::check
StatusCode check(const ByteStream &bs, TgcRdo &tgcRdo, uint32_t source_id) const
Convert BS (ROB fragment) to RDO and compare decoded RDO container and another RDO container decoded ...
Definition: TgcRODReadOut.cxx:105
Muon::TgcRODReadOut::operator=
TgcRODReadOut & operator=(const TgcRODReadOut &right)
Muon::TgcRODReadOut::m_failedGetReadoutIDfromSLBID
std::atomic< unsigned int > m_failedGetReadoutIDfromSLBID[NROD+1]
The number of failures on getReadoutIDfromSLBID.
Definition: TgcRODReadOut.h:112
Muon::TgcRODReadOut::compare
StatusCode compare(TgcRdo *rdo, TgcRdo *newRdo) const
Compare two RDO containers.
Definition: TgcRODReadOut.cxx:145
Muon::TgcRODReadOut::RawDataFragMask
@ RawDataFragMask
Definition: TgcRODReadOut.h:70