ATLAS Offline Software
ITkStripsRodDecoder.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ITKRAWDATABYTESTREAM_ITK_STRIPS_RODDECODER_H
6 #define ITKRAWDATABYTESTREAM_ITK_STRIPS_RODDECODER_H
7 
10 
12 #include "InDetIdentifier/SCT_ID.h"
17 #include "Identifier/IdContext.h"
18 
19 #include "GaudiKernel/ToolHandle.h"
20 
21 #include <atomic>
22 #include <cstdint>
23 #include <string>
24 #include <unordered_map>
25 #include <unordered_set>
26 #include <vector>
27 #include <array>
28 
29 class IdentifierHash;
30 
39 public:
41  : errorsIDC{ idcContainer } {}
43  for (auto [id, err]: accumulatedErrors) {
44  errorsIDC.setOrDrop(id, err);
45  }
46  }
47  void noerror(const IdentifierHash id) {
48  accumulatedErrors[id]; // this adds 0 (no error) for an ID
49  }
50 
53  }
54 
55  void removeIfEmpty(const IdentifierHash id) {
56  if (accumulatedErrors[id]==0) {
57  accumulatedErrors.erase(id);
58  }
59  }
60 
61  std::map<IdentifierHash, IDCInDetBSErrContainer::ErrorCode> accumulatedErrors;
63 };
64 
65 
73 class ITkStripsRodDecoder : public extends<AthAlgTool, IITkStripsRodDecoder>
74 {
76  struct CacheHelper {
78  const std::vector<IdentifierHash>* vecHash;
79  };
80 
81  public:
82 
83  using base_class::base_class;
84 
86  virtual ~ITkStripsRodDecoder() = default;
87 
89  virtual StatusCode initialize() override;
90 
103  SCT_RDO_Container& rdoIDCont,
105  DataPool<SCT3_RawData>* dataItemsPool,
106  const EventContext& ctx,
107  const std::vector<IdentifierHash>* vecHash = nullptr) const override;
108 
109  private:
110 
119  }; //Check this numbers
120 
122  struct SharedData {
123  static constexpr int INVALID_STRIP = N_STRIPS_PER_SIDE;
124 
125  bool condensedMode{true}; // Condensed mode or Expanded mode for each link if superCondensedMode is false
126 
127  // Variables necessary for makeRDO
129  int groupSize{0};
130  int timeBin{0};
131  IdentifierHash linkIDHash; // Determined from header and changed for links using Rx redundancy (waferHash)
132  Identifier collID; // Determined from linkIDHash (waferID)
133  int errors{0}; // Encodes the errors on the header (bit 4: error in condensed mode 1st hit, bit 5: error in condensed mode 2nd hit)
134  CacheHelper cache{}; // For the trigger
135  std::vector<int> errorHit;
136 
137  int side {-1};
138  int oldSide {-1};
140  int linkNumber{0}; // Determined from header and may be changed for links using Rx redundancy
141 
142  std::array<bool, N_STRIPS_PER_SIDE*N_SIDES> saved{};//defaults to false
143 
144  // For MissingLinkHeaderError
146  std::unordered_set<IdentifierHash> foundHashes;
147  struct Hasher {
148  std::size_t operator()(const IdentifierHash &hash) const { return hash.value();}
149  };
150  std::unordered_map<IdentifierHash, std::unique_ptr<SCT_RDO_Collection>, Hasher> rdoCollMap; // If SCT_RDO_Collection* is nullptr, it means the collection is already present in the container.
151  std::unordered_map<IdentifierHash, SCT_RDO_Container::IDC_WriteHandle, Hasher> writeHandleMap;
152 
153  bool foundHeader{false};
154 
156  writeHandleMap.reserve( 72);
157  rdoCollMap.reserve( 72 );
158  }
159 
160  void reset() {
163  oldSide = -1;
164  groupSize = 0;
165  errors = 0;
166  saved.fill(false);
167  errorHit.clear();
168  };
169  void setOld() {
170  oldStrip = strip;
171  oldSide = side;
172  groupSize = 0;
173  }
174  void setSaved(const bool isOld, const int code) {
175  if (isOld) {
177  }
178  else {
180  }
181  }
182  bool isSaved(const bool isOld) {
183  if (isOld) {
184  unsigned int idx = static_cast<std::size_t>(oldSide*N_STRIPS_PER_SIDE + oldStrip);
185  return idx < saved.size() ? saved[idx] : true;
186  }
187  else {
188  const unsigned int idx = static_cast<unsigned int>(side*N_STRIPS_PER_SIDE + strip);
189  return idx < saved.size() ? saved[idx] : true;
190  }
191  }
192  bool isStripValid() const {
193  return static_cast<unsigned int>(strip) < N_STRIPS_PER_SIDE;
194  }
195  bool isOldStripValid() const {
196  return static_cast<unsigned int>(oldStrip) < N_STRIPS_PER_SIDE;
197  }
200  }
201  void setCollection(const SCT_ID* sctID,
202  const IdentifierHash& waferHash,
203  SCT_RDO_Container& rdoIDCont,
204  DataPool<SCT3_RawData>* dataItemsPool,
206  linkIDHash = waferHash;
207  collID = sctID->wafer_id(linkIDHash);
208  foundHashes.insert(linkIDHash);
209  if (rdoCollMap.count(linkIDHash)==0) { // The collection is not in the local map.
210  writeHandleMap.insert(std::pair<IdentifierHash, SCT_RDO_Container::IDC_WriteHandle>(linkIDHash, rdoIDCont.getWriteHandle(linkIDHash)));
211  if (writeHandleMap[linkIDHash].alreadyPresent()) { // The collection is already in the container.
212  rdoCollMap[linkIDHash] = nullptr;
213  writeHandleMap.erase(linkIDHash); // lock is released
214  }
215  else { // Create a new collection for linkIDHash
216  std::unique_ptr<SCT_RDO_Collection> rdoColl{std::make_unique<SCT_RDO_Collection>(linkIDHash)};
217  rdoColl->setIdentifier(collID);
218  if(dataItemsPool){
219  //pool will own
220  rdoColl->clear(SG::VIEW_ELEMENTS);
221  }
222  rdoCollMap[linkIDHash] = std::move(rdoColl);
223  errs.noerror(linkIDHash); // make sure the error information is filled for this hash
224  }
225  }
226  }
227  };
228 
243  int makeRDO(const bool isOld,
244  SharedData& data,
245  CacheHelper& cache,
246  DataPool<SCT3_RawData>* dataItemsPool) const;
247 
258  const std::unordered_set<IdentifierHash>* foundHashes=nullptr) const;
268  SCT_RodDecoderErrorsHelper& errs) const;
269 
282  StatusCode processHeader(const uint16_t inData,
283  const uint32_t robID,
284  SharedData& data,
285  SCT_RDO_Container& rdoIDCont,
286  DataPool<SCT3_RawData>* dataItemsPool,
287  CacheHelper& cache,
289  bool& hasError,
290  bool& breakNow,
291  const EventContext& ctx) const;
292 
302  StatusCode processRawData(const uint16_t inData,
303  const uint32_t robID,
304  SharedData& data,
306  bool& hasError) const;
307 
310  const SCT_ID* m_itkStripsID{nullptr};
311 
315 
317  ToolHandle<IITkStripCablingTool> m_cabling{this,
318  "ITkStripCablingTool",
319  "ITkStripCablingTool",
320  "Tool to retrieve ITkStrip Cabling"};
321 
323  ToolHandle<ISCT_ConfigurationConditionsTool> m_configTool{this,
324  "ConfigTool",
325  "SCT_ConfigurationConditionsTool/InDetSCT_ConfigurationConditionsTool",
326  "Tool to retrieve SCT Configuration Tool"};
327 
329  mutable std::atomic_uint m_singleCondHitNumber{0};
330 
332  mutable std::atomic_uint m_pairedCondHitNumber{0};
333 
335  mutable std::atomic_uint m_firstExpHitNumber{0};
336 
338  mutable std::atomic_uint m_evenExpHitNumber{0};
339 
341  mutable std::atomic_uint m_lastExpHitNumber{0};
342 
344  mutable std::atomic_uint m_headNumber{0};
345 
347  mutable std::atomic_uint m_trailerNumber{0};
348 
350  mutable std::atomic_uint m_headErrorBCID{0};
351 
353  mutable std::atomic_uint m_headErrorLvl1ID{0};
354 
356  mutable std::atomic_uint m_headErrorTimeout{0};
357 
359  mutable std::atomic_uint m_headErrorFormatter{0};
360 
362  mutable std::atomic_uint m_headErrorPreamble{0};
363 
365  mutable std::atomic_uint m_trailerErrorOverflow{0};
366 
368  mutable std::atomic_uint m_trailerErrorLimit{0};
369 
371  mutable std::atomic_uint m_trailerErrorBit{0};
372 
374  mutable std::atomic_uint m_configDataBit{0};
375 
377  mutable std::atomic_uint m_flagErrorBit{0};
378 
380  mutable std::atomic_uint m_condHit1Error{0};
381 
383  mutable std::atomic_uint m_condHit2Error{0};
384 
386  mutable std::atomic_uint m_chipNumberError{0};
387 
389  mutable std::atomic_uint m_unknownDataFormat{0};
390 
392  mutable std::atomic_uint m_nHits{0};
393 
395  mutable std::atomic_uint m_nRDOs{0};
396 
398  mutable std::atomic_uint m_maskedLinkNumber{0};
399 
401  mutable std::atomic_uint m_maskedRODNumber{0};
402 
404  mutable std::atomic_uint m_rodClockErrorNumber{0};
405 
407  mutable std::atomic_uint m_truncatedRODNumber{0};
408 
410  mutable std::atomic_uint m_numMissingLinkHeader{0};
411 
413  std::vector<bool> m_swapPhiReadoutDirection{};
414 };
415 
416 #endif //ITKSTRIP_RAWDATABYTESTREAM_ITKSTRIP_RODDECODER_H
ITkStripsRodDecoder::m_condHit2Error
std::atomic_uint m_condHit2Error
Total number second hit data errors.
Definition: ITkStripsRodDecoder.h:383
ITkStripsRodDecoder::m_headErrorFormatter
std::atomic_uint m_headErrorFormatter
Total number of formatter errors in the header data.
Definition: ITkStripsRodDecoder.h:359
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
ISCT_ByteStreamErrorsTool.h
ITkStripsRodDecoder::N_SIDES
@ N_SIDES
Definition: ITkStripsRodDecoder.h:115
ITkStripsRodDecoder::m_flagErrorBit
std::atomic_uint m_flagErrorBit
Total number of flag error data.
Definition: ITkStripsRodDecoder.h:377
ITkStripsRodDecoder::makeRDO
int makeRDO(const bool isOld, SharedData &data, CacheHelper &cache, DataPool< SCT3_RawData > *dataItemsPool) const
Builds RawData RDO and adds to RDO container.
Definition: ITkStripsRodDecoder.cxx:130
ITkStripsRodDecoder::CacheHelper
Temp object to help with trigger caching.
Definition: ITkStripsRodDecoder.h:76
SCT_ID.h
This is an Identifier helper class for the SCT subdetector. This class is a factory for creating comp...
ITkStripsRodDecoder::fillCollection
virtual StatusCode fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment &robFrag, SCT_RDO_Container &rdoIDCont, IDCInDetBSErrContainer &errs, DataPool< SCT3_RawData > *dataItemsPool, const EventContext &ctx, const std::vector< IdentifierHash > *vecHash=nullptr) const override
Fill SCT RDO Collection with decoded ROB data.
Definition: ITkStripsRodDecoder.cxx:43
ITkStripsRodDecoder::addSingleError
StatusCode addSingleError(const IdentifierHash &hashID, SCT_ByteStreamErrors::ErrorType error, SCT_RodDecoderErrorsHelper &errs) const
Add single eror.
Definition: ITkStripsRodDecoder.cxx:209
SCT_RodDecoderErrorsHelper::~SCT_RodDecoderErrorsHelper
~SCT_RodDecoderErrorsHelper()
Definition: ITkStripsRodDecoder.h:42
SCT_ByteStreamErrors::addError
void addError(IDCInDetBSErrContainer::ErrorCode &errWord, ErrorType errType)
Definition: ISCT_ByteStreamErrorsTool.h:43
IdentifiableContainerMT::getWriteHandle
IDC_WriteHandle getWriteHandle(IdentifierHash hash)
Definition: IdentifiableContainerMT.h:248
SG::VIEW_ELEMENTS
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Definition: OwnershipPolicy.h:18
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
ITkStripsRodDecoder::m_truncatedRODNumber
std::atomic_uint m_truncatedRODNumber
Total number of truncated ROBFragments.
Definition: ITkStripsRodDecoder.h:407
SCT_RodDecoderErrorsHelper::add
void add(const IdentifierHash id, SCT_ByteStreamErrors::ErrorType etype)
Definition: ITkStripsRodDecoder.h:51
ITkStripsRodDecoder::m_nHits
std::atomic_uint m_nHits
Total number of SCT hits in ByteStream.
Definition: ITkStripsRodDecoder.h:392
ITkStripsRodDecoder::SharedData::setSaved
void setSaved(const bool isOld, const int code)
Definition: ITkStripsRodDecoder.h:174
ITkStripsRodDecoder::SharedData::condensedMode
bool condensedMode
Definition: ITkStripsRodDecoder.h:125
ITkStripsRodDecoder::SharedData::reset
void reset()
Definition: ITkStripsRodDecoder.h:160
IDCInDetBSErrContainer
IDC like storage for BS errors, TODO, customise implementation further so that we store int rather th...
Definition: IDCInDetBSErrContainer.h:19
ITkStripsRodDecoder::m_chipNumberError
std::atomic_uint m_chipNumberError
Total number of chip number errors.
Definition: ITkStripsRodDecoder.h:386
ITkStripsRodDecoder::m_trailerNumber
std::atomic_uint m_trailerNumber
Total number of decoded trailer data.
Definition: ITkStripsRodDecoder.h:347
ITkStripsRodDecoder::SharedData::oldStrip
int oldStrip
Definition: ITkStripsRodDecoder.h:139
ITkStripsRodDecoder::SharedData::isSaved
bool isSaved(const bool isOld)
Definition: ITkStripsRodDecoder.h:182
ITkStripsRodDecoder::processHeader
StatusCode processHeader(const uint16_t inData, const uint32_t robID, SharedData &data, SCT_RDO_Container &rdoIDCont, DataPool< SCT3_RawData > *dataItemsPool, CacheHelper &cache, SCT_RodDecoderErrorsHelper &errs, bool &hasError, bool &breakNow, const EventContext &ctx) const
Process header word.
Definition: ITkStripsRodDecoder.cxx:216
ITkStripsRodDecoder::m_condHit1Error
std::atomic_uint m_condHit1Error
Total number of first hit data errors.
Definition: ITkStripsRodDecoder.h:380
ITkStripsRodDecoder::addRODError
StatusCode addRODError(uint32_t rodID, SCT_ByteStreamErrors::ErrorType error, SCT_RodDecoderErrorsHelper &errs, const std::unordered_set< IdentifierHash > *foundHashes=nullptr) const
Add an error for each wafer in the problematic ROD.
Definition: ITkStripsRodDecoder.cxx:200
ITkStripsRodDecoder::m_headErrorLvl1ID
std::atomic_uint m_headErrorLvl1ID
Total number of Lvl1ID errors in the header data.
Definition: ITkStripsRodDecoder.h:353
InDetRawDataContainer
Definition: InDetRawDataContainer.h:27
ITkStripsRodDecoder::m_trailerErrorBit
std::atomic_uint m_trailerErrorBit
Total number of trailer bit errors.
Definition: ITkStripsRodDecoder.h:371
ITkStripsRodDecoder::SharedData::foundMissingLinkHeaderError
bool foundMissingLinkHeaderError
Definition: ITkStripsRodDecoder.h:145
ITkStripsRodDecoder::SharedData::oldSide
int oldSide
Definition: ITkStripsRodDecoder.h:138
ITkStripsRodDecoder::m_contextITk
IdContext m_contextITk
"Context" of an expanded identifier (ExpandedIdentifier) for compact or hash versions (Identifier32 o...
Definition: ITkStripsRodDecoder.h:314
ITkStripsRodDecoder::SharedData::errorHit
std::vector< int > errorHit
Definition: ITkStripsRodDecoder.h:135
ITkStripsRodDecoder::m_maskedLinkNumber
std::atomic_uint m_maskedLinkNumber
Total number of masked links in the header data.
Definition: ITkStripsRodDecoder.h:398
ITkStripsRodDecoder::m_firstExpHitNumber
std::atomic_uint m_firstExpHitNumber
Total number of first strips with hit decoded in expanded mode.
Definition: ITkStripsRodDecoder.h:335
ITkStripsRodDecoder::~ITkStripsRodDecoder
virtual ~ITkStripsRodDecoder()=default
Destructor.
ITkStripsRodDecoder::m_headErrorBCID
std::atomic_uint m_headErrorBCID
Total number of BCID errors in the header data.
Definition: ITkStripsRodDecoder.h:350
ITkStripsRodDecoder::m_nRDOs
std::atomic_uint m_nRDOs
Total number of SCT RDOs created.
Definition: ITkStripsRodDecoder.h:395
ITkStripsRodDecoder::m_itkStripsID
const SCT_ID * m_itkStripsID
Identifier helper class for the SCT subdetector that creates compact Identifier objects and Identifie...
Definition: ITkStripsRodDecoder.h:310
ITkStripsRodDecoder::m_singleCondHitNumber
std::atomic_uint m_singleCondHitNumber
Total number of single strips with hit decoded in condensed mode.
Definition: ITkStripsRodDecoder.h:329
ITkStripsRodDecoder::m_rodClockErrorNumber
std::atomic_uint m_rodClockErrorNumber
Total number of ROD clock errors.
Definition: ITkStripsRodDecoder.h:404
ITkStripsRodDecoder::SharedData::side
int side
Definition: ITkStripsRodDecoder.h:137
ITkStripsRodDecoder::CacheHelper::skipHash
IdentifierHash skipHash
Definition: ITkStripsRodDecoder.h:77
histSizes.code
code
Definition: histSizes.py:129
ITkStripsRodDecoder::SharedData::saved
std::array< bool, N_STRIPS_PER_SIDE *N_SIDES > saved
Definition: ITkStripsRodDecoder.h:142
ITkStripsRodDecoder::ITk_DecoderNumbers
ITk_DecoderNumbers
Define frequently used magic numbers.
Definition: ITkStripsRodDecoder.h:115
SCT_RodDecoderErrorsHelper::SCT_RodDecoderErrorsHelper
SCT_RodDecoderErrorsHelper(IDCInDetBSErrContainer &idcContainer)
Definition: ITkStripsRodDecoder.h:40
ITkStripsRodDecoder::SharedData::INVALID_STRIP
static constexpr int INVALID_STRIP
Definition: ITkStripsRodDecoder.h:123
IdContext.h
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:93
dqt_zlumi_pandas.err
err
Definition: dqt_zlumi_pandas.py:183
ITkStripsRodDecoder::m_cabling
ToolHandle< IITkStripCablingTool > m_cabling
Providing mappings of online and offline identifiers and also serial numbers.
Definition: ITkStripsRodDecoder.h:317
eformat::ROBFragment
Definition: L1CaloBsDecoderUtil.h:12
ITkStripsRodDecoder::SharedData::Hasher
Definition: ITkStripsRodDecoder.h:147
ITkStripsRodDecoder::N_STRIPS_PER_SIDE
@ N_STRIPS_PER_SIDE
Definition: ITkStripsRodDecoder.h:118
ITkStripsRodDecoder::N_STRIPS_PER_CHIP
@ N_STRIPS_PER_CHIP
Definition: ITkStripsRodDecoder.h:117
IITkStripsRodDecoder.h
ITkStripsRodDecoder::SharedData
Struct to hold data shared in methods used in fillCollection method.
Definition: ITkStripsRodDecoder.h:122
ITkStripsRodDecoder::m_numMissingLinkHeader
std::atomic_uint m_numMissingLinkHeader
Total number of missing link headers.
Definition: ITkStripsRodDecoder.h:410
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ITkStripsRodDecoder::m_maskedRODNumber
std::atomic_uint m_maskedRODNumber
Total number of masked RDOs.
Definition: ITkStripsRodDecoder.h:401
ITkStripsRodDecoder::m_headNumber
std::atomic_uint m_headNumber
Total number of decoded header data.
Definition: ITkStripsRodDecoder.h:344
ITkStripsRodDecoder::m_pairedCondHitNumber
std::atomic_uint m_pairedCondHitNumber
Total number of paired strips with hit decoded in condensed mode.
Definition: ITkStripsRodDecoder.h:332
ITkStripsRodDecoder::SharedData::isStripValid
bool isStripValid() const
Definition: ITkStripsRodDecoder.h:192
AthAlgTool.h
ITkStripsRodDecoder::CacheHelper::vecHash
const std::vector< IdentifierHash > * vecHash
Definition: ITkStripsRodDecoder.h:78
ITkStripsRodDecoder::SharedData::foundHeader
bool foundHeader
Definition: ITkStripsRodDecoder.h:153
SCT_RodDecoderErrorsHelper::accumulatedErrors
std::map< IdentifierHash, IDCInDetBSErrContainer::ErrorCode > accumulatedErrors
Definition: ITkStripsRodDecoder.h:61
ITkStripsRodDecoder::N_CHIPS_PER_SIDE
@ N_CHIPS_PER_SIDE
Definition: ITkStripsRodDecoder.h:116
ITkStripsRodDecoder::m_lastExpHitNumber
std::atomic_uint m_lastExpHitNumber
Total number of last consecutive strips with hit decoded in expanded mode.
Definition: ITkStripsRodDecoder.h:341
SCT_RodDecoderErrorsHelper::removeIfEmpty
void removeIfEmpty(const IdentifierHash id)
Definition: ITkStripsRodDecoder.h:55
IITkStripCablingTool.h
IdentifiableValueContainer::setOrDrop
bool setOrDrop(size_t i, const T &value)
Set the value for the given hash.
Definition: IdentifiableValueContainer.h:129
SCT_RodDecoderErrorsHelper::errorsIDC
IDCInDetBSErrContainer & errorsIDC
Definition: ITkStripsRodDecoder.h:62
ITkStripsRodDecoder::SharedData::strip
int strip
Definition: ITkStripsRodDecoder.h:128
ITkStripsRodDecoder::SharedData::errors
int errors
Definition: ITkStripsRodDecoder.h:133
ITkStripsRodDecoder::m_configTool
ToolHandle< ISCT_ConfigurationConditionsTool > m_configTool
Service that keeps track of configuration conditions.
Definition: ITkStripsRodDecoder.h:323
ITkStripsRodDecoder
Definition: ITkStripsRodDecoder.h:74
ITkStripsRodDecoder::SharedData::rdoCollMap
std::unordered_map< IdentifierHash, std::unique_ptr< SCT_RDO_Collection >, Hasher > rdoCollMap
Definition: ITkStripsRodDecoder.h:150
ITkStripsRodDecoder::SharedData::linkIDHash
IdentifierHash linkIDHash
Definition: ITkStripsRodDecoder.h:131
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:239
SCT_ByteStreamErrors::ErrorType
ErrorType
SCT byte stream error type enums used in SCT_RodDecoder, SCT_ByteStreamErrorsTool,...
Definition: SCT_ByteStreamErrors.h:178
ITkStripsRodDecoder::SharedData::setOld
void setOld()
Definition: ITkStripsRodDecoder.h:169
SCT_RodDecoderErrorsHelper
allows to accumulate errors in one fillColection call
Definition: ITkStripsRodDecoder.h:38
ITkStripsRodDecoder::m_headErrorPreamble
std::atomic_uint m_headErrorPreamble
Total number of preamble errors in the header data.
Definition: ITkStripsRodDecoder.h:362
ISCT_ConfigurationConditionsTool.h
ITkStripsRodDecoder::m_configDataBit
std::atomic_uint m_configDataBit
Total number of configuration data for raw data.
Definition: ITkStripsRodDecoder.h:374
ITkStripsRodDecoder::m_unknownDataFormat
std::atomic_uint m_unknownDataFormat
Total number of unknown data formats.
Definition: ITkStripsRodDecoder.h:389
ITkStripsRodDecoder::SharedData::writeHandleMap
std::unordered_map< IdentifierHash, SCT_RDO_Container::IDC_WriteHandle, Hasher > writeHandleMap
Definition: ITkStripsRodDecoder.h:151
ITkStripsRodDecoder::CacheHelper::lastHash
IdentifierHash lastHash
Definition: ITkStripsRodDecoder.h:77
ITkStripsRodDecoder::SharedData::isOldStripValid
bool isOldStripValid() const
Definition: ITkStripsRodDecoder.h:195
CaloCondBlobAlgs_fillNoiseFromASCII.hash
dictionary hash
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:108
SCT_ID
Definition: SCT_ID.h:68
IDCInDetBSErrContainer.h
ITkStripsRodDecoder::SharedData::SharedData
SharedData()
Definition: ITkStripsRodDecoder.h:155
ITkStripsRodDecoder::SharedData::linkNumber
int linkNumber
Definition: ITkStripsRodDecoder.h:140
ITkStripsRodDecoder::SharedData::collID
Identifier collID
Definition: ITkStripsRodDecoder.h:132
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
ITkStripsRodDecoder::SharedData::setCollection
void setCollection(const SCT_ID *sctID, const IdentifierHash &waferHash, SCT_RDO_Container &rdoIDCont, DataPool< SCT3_RawData > *dataItemsPool, SCT_RodDecoderErrorsHelper &errs)
Definition: ITkStripsRodDecoder.h:201
ITkStripsRodDecoder::SharedData::Hasher::operator()
std::size_t operator()(const IdentifierHash &hash) const
Definition: ITkStripsRodDecoder.h:148
DataPool
a typed memory pool that saves time spent allocation small object. This is typically used by containe...
Definition: DataPool.h:63
ITkStripsRodDecoder::SharedData::cache
CacheHelper cache
Definition: ITkStripsRodDecoder.h:134
ITkStripsRodDecoder::m_trailerErrorOverflow
std::atomic_uint m_trailerErrorOverflow
Total number of overflow errors in the trailer data.
Definition: ITkStripsRodDecoder.h:365
ITkStripsRodDecoder::SharedData::foundHashes
std::unordered_set< IdentifierHash > foundHashes
Definition: ITkStripsRodDecoder.h:146
ITkStripsRodDecoder::initialize
virtual StatusCode initialize() override
Initialize.
Definition: ITkStripsRodDecoder.cxx:20
SCT_ID::wafer_id
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int side) const
For a single side of module.
Definition: SCT_ID.h:464
IdentifierHash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Definition: IdentifierHash.h:25
ITkStripsRodDecoder::SharedData::timeBin
int timeBin
Definition: ITkStripsRodDecoder.h:130
ITkStripsRodDecoder::m_trailerErrorLimit
std::atomic_uint m_trailerErrorLimit
Total number of header trailer limit errors in the trailer data.
Definition: ITkStripsRodDecoder.h:368
error
Definition: IImpactPoint3dEstimator.h:70
IdContext
This class saves the "context" of an expanded identifier (ExpandedIdentifier) for compact or hash ver...
Definition: IdContext.h:26
ITkStripsRodDecoder::m_evenExpHitNumber
std::atomic_uint m_evenExpHitNumber
Total number of consecutive paired strips with hit decoded in expanded mode.
Definition: ITkStripsRodDecoder.h:338
SCT_ByteStreamErrors.h
Define SCT byte stream errors and utility methods.
ITkStripsRodDecoder::SharedData::setStripInvalid
void setStripInvalid()
Definition: ITkStripsRodDecoder.h:198
SCT_RodDecoderErrorsHelper::noerror
void noerror(const IdentifierHash id)
Definition: ITkStripsRodDecoder.h:47
ITkStripsRodDecoder::SharedData::groupSize
int groupSize
Definition: ITkStripsRodDecoder.h:129
ITkStripsRodDecoder::processRawData
StatusCode processRawData(const uint16_t inData, const uint32_t robID, SharedData &data, SCT_RodDecoderErrorsHelper &errs, bool &hasError) const
Process raw data word.
Definition: ITkStripsRodDecoder.cxx:328
ITkStripsRodDecoder::m_headErrorTimeout
std::atomic_uint m_headErrorTimeout
Total number of timeout errors in the header data.
Definition: ITkStripsRodDecoder.h:356
ITkStripsRodDecoder::m_swapPhiReadoutDirection
std::vector< bool > m_swapPhiReadoutDirection
Swap phi readout direction.
Definition: ITkStripsRodDecoder.h:413
Identifier
Definition: IdentifierFieldParser.cxx:14