ATLAS Offline Software
SCT_RodDecoder.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 
3 /*
4  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 #ifndef INDETRAWDATABYTESTREAM_SCT_RODDECODER_H
8 #define INDETRAWDATABYTESTREAM_SCT_RODDECODER_H
9 
12 
14 #include "InDetIdentifier/SCT_ID.h"
19 #include "Identifier/IdContext.h"
20 
21 #include "GaudiKernel/ToolHandle.h"
22 
23 #include <atomic>
24 #include <cstdint>
25 #include <string>
26 #include <unordered_map>
27 #include <unordered_set>
28 #include <vector>
29 #include <array>
30 
31 class IdentifierHash;
32 
33 
42 public:
44  : errorsIDC{ idcContainer } {}
46  for (auto [id, err]: accumulatedErrors) {
47  errorsIDC.setOrDrop(id, err);
48  }
49  }
50  void noerror(const IdentifierHash id) {
51  accumulatedErrors[id]; // this adds 0 (no error) for an ID
52  }
53 
56  }
57 
58  void removeIfEmpty(const IdentifierHash id) {
59  if (accumulatedErrors[id]==0) {
60  accumulatedErrors.erase(id);
61  }
62  }
63 
64  std::map<IdentifierHash, IDCInDetBSErrContainer::ErrorCode> accumulatedErrors;
66 };
67 
68 
76 class SCT_RodDecoder : public extends<AthAlgTool, ISCT_RodDecoder>
77 {
79  struct CacheHelper {
81  const std::vector<IdentifierHash>* vecHash;
82  };
83 
84  public:
85 
87  SCT_RodDecoder(const std::string& type, const std::string& name, const IInterface* parent);
88 
90  virtual ~SCT_RodDecoder() = default;
91 
93  virtual StatusCode initialize() override;
94 
96  virtual StatusCode finalize() override;
97 
110  SCT_RDO_Container& rdoIDCont,
112  DataPool<SCT3_RawData>* dataItemsPool,
113  const EventContext& ctx,
114  const std::vector<IdentifierHash>* vecHash = nullptr) const override;
115 
116  private:
117 
126  };
127 
129  struct SharedData {
130  static constexpr int INVALID_STRIP = N_STRIPS_PER_SIDE;
131 
132  bool condensedMode{true}; // Condensed mode or Expanded mode for each link if superCondensedMode is false
133 
134  // Variables necessary for makeRDO
136  int groupSize{0};
137  int timeBin{0};
138  IdentifierHash linkIDHash; // Determined from header and changed for links using Rx redundancy (waferHash)
139  Identifier collID; // Determined from linkIDHash (waferID)
140  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)
141  CacheHelper cache{}; // For the trigger
142  std::vector<int> errorHit;
143 
144  int side {-1};
145  int oldSide {-1};
147  int linkNumber{0}; // Determined from header and may be changed for links using Rx redundancy
148 
149  std::array<bool, N_STRIPS_PER_SIDE*N_SIDES> saved{};//defaults to false
150 
151  // For MissingLinkHeaderError
153  std::unordered_set<IdentifierHash> foundHashes;
154  struct Hasher {
155  std::size_t operator()(const IdentifierHash &hash) const { return hash.value();}
156  };
157  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.
158  std::unordered_map<IdentifierHash, SCT_RDO_Container::IDC_WriteHandle, Hasher> writeHandleMap;
159 
160  bool foundHeader{false};
161 
163  writeHandleMap.reserve( 72);
164  rdoCollMap.reserve( 72 );
165  }
166 
167  void reset() {
170  oldSide = -1;
171  groupSize = 0;
172  errors = 0;
173  saved.fill(false);
174  errorHit.clear();
175  };
176  void setOld() {
177  oldStrip = strip;
178  oldSide = side;
179  groupSize = 0;
180  }
181  void setSaved(const bool isOld, const int code) {
182  if (isOld) {
184  }
185  else {
187  }
188  }
189  bool isSaved(const bool isOld) {
190  if (isOld) {
191  unsigned int idx = static_cast<std::size_t>(oldSide*N_STRIPS_PER_SIDE + oldStrip);
192  return idx < saved.size() ? saved[idx] : true;
193  }
194  else {
195  const unsigned int idx = static_cast<unsigned int>(side*N_STRIPS_PER_SIDE + strip);
196  return idx < saved.size() ? saved[idx] : true;
197  }
198  }
199  bool isStripValid() const {
200  return static_cast<unsigned int>(strip) < N_STRIPS_PER_SIDE;
201  }
202  bool isOldStripValid() const {
203  return static_cast<unsigned int>(oldStrip) < N_STRIPS_PER_SIDE;
204  }
207  }
208  void setCollection(const SCT_ID* sctID,
209  const IdentifierHash& waferHash,
210  SCT_RDO_Container& rdoIDCont,
211  DataPool<SCT3_RawData>* dataItemsPool,
213  linkIDHash = waferHash;
214  collID = sctID->wafer_id(linkIDHash);
215  foundHashes.insert(linkIDHash);
216  if (rdoCollMap.count(linkIDHash)==0) { // The collection is not in the local map.
217  writeHandleMap.insert(std::pair<IdentifierHash, SCT_RDO_Container::IDC_WriteHandle>(linkIDHash, rdoIDCont.getWriteHandle(linkIDHash)));
218  if (writeHandleMap[linkIDHash].alreadyPresent()) { // The collection is already in the container.
219  rdoCollMap[linkIDHash] = nullptr;
220  writeHandleMap.erase(linkIDHash); // lock is released
221  }
222  else { // Create a new collection for linkIDHash
223  std::unique_ptr<SCT_RDO_Collection> rdoColl{std::make_unique<SCT_RDO_Collection>(linkIDHash)};
224  rdoColl->setIdentifier(collID);
225  if(dataItemsPool){
226  //pool will own
227  rdoColl->clear(SG::VIEW_ELEMENTS);
228  }
229  rdoCollMap[linkIDHash] = std::move(rdoColl);
230  errs.noerror(linkIDHash); // make sure the error information is filled for this hash
231  }
232  }
233  }
234  };
235 
250  int makeRDO(const bool isOld,
251  SharedData& data,
252  CacheHelper& cache,
253  DataPool<SCT3_RawData>* dataItemsPool) const;
254 
265  const std::unordered_set<IdentifierHash>* foundHashes=nullptr) const;
275  SCT_RodDecoderErrorsHelper& errs) const;
276 
285  unsigned int firstTempMaskedChip,
286  SCT_RodDecoderErrorsHelper& errs) const;
287 
300  StatusCode processHeader(const uint16_t inData,
301  const uint32_t robID,
302  SharedData& data,
303  SCT_RDO_Container& rdoIDCont,
304  DataPool<SCT3_RawData>* dataItemsPool,
305  CacheHelper& cache,
307  bool& hasError,
308  bool& breakNow,
309  const EventContext& ctx) const;
310 
323  const uint32_t robID,
324  SharedData& data,
325  SCT_RDO_Container& rdoIDCont,
326  DataPool<SCT3_RawData>* dataItemsPool,
327  CacheHelper& cache,
329  bool& hasError,
330  const EventContext& ctx) const;
331 
344  const uint32_t robID,
345  SharedData& data,
346  SCT_RDO_Container& rdoIDCont,
347  DataPool<SCT3_RawData>* dataItemsPool,
348  CacheHelper& cache,
350  bool& hasError,
351  const EventContext& ctx) const;
352 
365  const uint32_t robID,
366  SharedData& data,
367  SCT_RDO_Container& rdoIDCont,
368  DataPool<SCT3_RawData>* dataItemsPool,
369  CacheHelper& cache,
371  bool& hasError,
372  const EventContext& ctx) const;
373 
383  StatusCode processABCDError(const uint16_t inData,
384  const uint32_t robID,
385  SharedData& data,
387  bool& hasError) const;
388 
398  StatusCode processRawData(const uint16_t inData,
399  const uint32_t robID,
400  SharedData& data,
402  bool& hasError) const;
403 
413  StatusCode processTrailer(const uint16_t inData,
414  const uint32_t robID,
415  SharedData& data,
417  bool& hasError) const;
418 
421  const SCT_ID* m_sctID{nullptr};
422 
426 
428  ToolHandle<ISCT_CablingTool> m_cabling{this,
429  "SCT_CablingTool",
430  "SCT_CablingTool",
431  "Tool to retrieve SCT Cabling"};
432 
434  ToolHandle<ISCT_ConfigurationConditionsTool> m_configTool{this,
435  "ConfigTool",
436  "SCT_ConfigurationConditionsTool/InDetSCT_ConfigurationConditionsTool",
437  "Tool to retrieve SCT Configuration Tool"};
438 
440  mutable std::atomic_uint m_singleCondHitNumber{0};
441 
443  mutable std::atomic_uint m_pairedCondHitNumber{0};
444 
446  mutable std::atomic_uint m_firstExpHitNumber{0};
447 
449  mutable std::atomic_uint m_evenExpHitNumber{0};
450 
452  mutable std::atomic_uint m_lastExpHitNumber{0};
453 
455  mutable std::atomic_uint m_headNumber{0};
456 
458  mutable std::atomic_uint m_trailerNumber{0};
459 
461  mutable std::atomic_uint m_headErrorBCID{0};
462 
464  mutable std::atomic_uint m_headErrorLvl1ID{0};
465 
467  mutable std::atomic_uint m_headErrorTimeout{0};
468 
470  mutable std::atomic_uint m_headErrorFormatter{0};
471 
473  mutable std::atomic_uint m_headErrorPreamble{0};
474 
476  mutable std::atomic_uint m_trailerErrorOverflow{0};
477 
479  mutable std::atomic_uint m_trailerErrorLimit{0};
480 
482  mutable std::atomic_uint m_trailerErrorBit{0};
483 
485  mutable std::atomic_uint m_configDataBit{0};
486 
488  mutable std::atomic_uint m_flagErrorBit{0};
489 
491  mutable std::atomic_uint m_condHit1Error{0};
492 
494  mutable std::atomic_uint m_condHit2Error{0};
495 
497  mutable std::atomic_uint m_chipNumberError{0};
498 
500  mutable std::atomic_uint m_unknownDataFormat{0};
501 
503  mutable std::atomic_uint m_nHits{0};
504 
506  mutable std::atomic_uint m_nRDOs{0};
507 
509  mutable std::atomic_uint m_maskedLinkNumber{0};
510 
512  mutable std::atomic_uint m_maskedRODNumber{0};
513 
515  mutable std::atomic_uint m_rodClockErrorNumber{0};
516 
518  mutable std::atomic_uint m_truncatedRODNumber{0};
519 
521  mutable std::atomic_uint m_numMissingLinkHeader{0};
522 
524  std::vector<bool> m_swapPhiReadoutDirection{};
525 };
526 
527 #endif //SCT_RAWDATABYTESTREAM_SCT_RODDECODER_H
SCT_RodDecoder::N_STRIPS_PER_SIDE
@ N_STRIPS_PER_SIDE
Definition: SCT_RodDecoder.h:125
SCT_RodDecoder::SharedData::oldSide
int oldSide
Definition: SCT_RodDecoder.h:145
SCT_RodDecoder::processRawData
StatusCode processRawData(const uint16_t inData, const uint32_t robID, SharedData &data, SCT_RodDecoderErrorsHelper &errs, bool &hasError) const
Process raw data word.
Definition: SCT_RodDecoder.cxx:1177
SCT_RodDecoder::m_headErrorPreamble
std::atomic_uint m_headErrorPreamble
Total number of preamble errors in the header data.
Definition: SCT_RodDecoder.h:473
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
ISCT_ByteStreamErrorsTool.h
SCT_RodDecoder::N_SIDES
@ N_SIDES
Definition: SCT_RodDecoder.h:122
SCT_RodDecoder::m_nHits
std::atomic_uint m_nHits
Total number of SCT hits in ByteStream.
Definition: SCT_RodDecoder.h:503
SCT_RodDecoder::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: SCT_RodDecoder.cxx:657
SCT_ID.h
This is an Identifier helper class for the SCT subdetector. This class is a factory for creating comp...
SCT_RodDecoder::m_condHit2Error
std::atomic_uint m_condHit2Error
Total number second hit data errors.
Definition: SCT_RodDecoder.h:494
SCT_RodDecoder::SharedData::INVALID_STRIP
static constexpr int INVALID_STRIP
Definition: SCT_RodDecoder.h:130
SCT_RodDecoderErrorsHelper::~SCT_RodDecoderErrorsHelper
~SCT_RodDecoderErrorsHelper()
Definition: SCT_RodDecoder.h:45
SCT_ByteStreamErrors::addError
void addError(IDCInDetBSErrContainer::ErrorCode &errWord, ErrorType errType)
Definition: ISCT_ByteStreamErrorsTool.h:43
SCT_RodDecoder::SharedData::linkNumber
int linkNumber
Definition: SCT_RodDecoder.h:147
IdentifiableContainerMT::getWriteHandle
IDC_WriteHandle getWriteHandle(IdentifierHash hash)
Definition: IdentifiableContainerMT.h:251
SCT_RodDecoder::m_maskedLinkNumber
std::atomic_uint m_maskedLinkNumber
Total number of masked links in the header data.
Definition: SCT_RodDecoder.h:509
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
SCT_RodDecoder::m_trailerErrorLimit
std::atomic_uint m_trailerErrorLimit
Total number of header trailer limit errors in the trailer data.
Definition: SCT_RodDecoder.h:479
SCT_RodDecoderErrorsHelper::add
void add(const IdentifierHash id, SCT_ByteStreamErrors::ErrorType etype)
Definition: SCT_RodDecoder.h:54
SCT_RodDecoder::SharedData::foundHashes
std::unordered_set< IdentifierHash > foundHashes
Definition: SCT_RodDecoder.h:153
SCT_RodDecoder::m_trailerErrorOverflow
std::atomic_uint m_trailerErrorOverflow
Total number of overflow errors in the trailer data.
Definition: SCT_RodDecoder.h:476
IDCInDetBSErrContainer
IDC like storage for BS errors, TODO, customise implementation further so that we store int rather th...
Definition: IDCInDetBSErrContainer.h:19
SCT_RodDecoder::m_maskedRODNumber
std::atomic_uint m_maskedRODNumber
Total number of masked RDOs.
Definition: SCT_RodDecoder.h:512
SCT_RodDecoder::N_STRIPS_PER_CHIP
@ N_STRIPS_PER_CHIP
Definition: SCT_RodDecoder.h:124
SCT_RodDecoder::m_pairedCondHitNumber
std::atomic_uint m_pairedCondHitNumber
Total number of paired strips with hit decoded in condensed mode.
Definition: SCT_RodDecoder.h:443
SCT_RodDecoder::SharedData::linkIDHash
IdentifierHash linkIDHash
Definition: SCT_RodDecoder.h:138
SCT_RodDecoder::m_flagErrorBit
std::atomic_uint m_flagErrorBit
Total number of flag error data.
Definition: SCT_RodDecoder.h:488
SCT_RodDecoder::m_headErrorTimeout
std::atomic_uint m_headErrorTimeout
Total number of timeout errors in the header data.
Definition: SCT_RodDecoder.h:467
SCT_RodDecoder::m_contextSCT
IdContext m_contextSCT
"Context" of an expanded identifier (ExpandedIdentifier) for compact or hash versions (Identifier32 o...
Definition: SCT_RodDecoder.h:425
InDetRawDataContainer
Definition: InDetRawDataContainer.h:27
SCT_RodDecoder::processExpandedHit
StatusCode processExpandedHit(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, const EventContext &ctx) const
Process hit word in Expanded mode.
Definition: SCT_RodDecoder.cxx:999
SCT_RodDecoder::SharedData::side
int side
Definition: SCT_RodDecoder.h:144
SCT_RodDecoder::SharedData::oldStrip
int oldStrip
Definition: SCT_RodDecoder.h:146
SCT_RodDecoder::SCT_RodDecoder
SCT_RodDecoder(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
Definition: SCT_RodDecoder.cxx:20
SCT_RodDecoder::SharedData::reset
void reset()
Definition: SCT_RodDecoder.h:167
SCT_RodDecoder::m_unknownDataFormat
std::atomic_uint m_unknownDataFormat
Total number of unknown data formats.
Definition: SCT_RodDecoder.h:500
SCT_RodDecoder::processTrailer
StatusCode processTrailer(const uint16_t inData, const uint32_t robID, SharedData &data, SCT_RodDecoderErrorsHelper &errs, bool &hasError) const
Process trailer word.
Definition: SCT_RodDecoder.cxx:1202
SCT_RodDecoder::SharedData
Struct to hold data shared in methods used in fillCollection method.
Definition: SCT_RodDecoder.h:129
SCT_RodDecoder::SharedData::Hasher
Definition: SCT_RodDecoder.h:154
SCT_RodDecoder::SharedData::saved
std::array< bool, N_STRIPS_PER_SIDE *N_SIDES > saved
Definition: SCT_RodDecoder.h:149
SCT_RodDecoder::m_headErrorFormatter
std::atomic_uint m_headErrorFormatter
Total number of formatter errors in the header data.
Definition: SCT_RodDecoder.h:470
SCT_RodDecoder::m_firstExpHitNumber
std::atomic_uint m_firstExpHitNumber
Total number of first strips with hit decoded in expanded mode.
Definition: SCT_RodDecoder.h:446
SCT_RodDecoder::m_truncatedRODNumber
std::atomic_uint m_truncatedRODNumber
Total number of truncated ROBFragments.
Definition: SCT_RodDecoder.h:518
SCT_RodDecoder::setFirstTempMaskedChip
StatusCode setFirstTempMaskedChip(const IdentifierHash &hashID, unsigned int firstTempMaskedChip, SCT_RodDecoderErrorsHelper &errs) const
Set first temporarily masked chip information from byte stream trailer.
Definition: SCT_RodDecoder.cxx:493
SCT_RodDecoder::SharedData::setStripInvalid
void setStripInvalid()
Definition: SCT_RodDecoder.h:205
histSizes.code
code
Definition: histSizes.py:129
SCT_RodDecoder::SharedData::setCollection
void setCollection(const SCT_ID *sctID, const IdentifierHash &waferHash, SCT_RDO_Container &rdoIDCont, DataPool< SCT3_RawData > *dataItemsPool, SCT_RodDecoderErrorsHelper &errs)
Definition: SCT_RodDecoder.h:208
SCT_RodDecoder::SharedData::isOldStripValid
bool isOldStripValid() const
Definition: SCT_RodDecoder.h:202
SCT_RodDecoderErrorsHelper::SCT_RodDecoderErrorsHelper
SCT_RodDecoderErrorsHelper(IDCInDetBSErrContainer &idcContainer)
Definition: SCT_RodDecoder.h:43
SCT_RodDecoder::SharedData::foundHeader
bool foundHeader
Definition: SCT_RodDecoder.h:160
IdContext.h
SCT_RodDecoder::m_condHit1Error
std::atomic_uint m_condHit1Error
Total number of first hit data errors.
Definition: SCT_RodDecoder.h:491
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
dqt_zlumi_pandas.err
err
Definition: dqt_zlumi_pandas.py:182
SCT_RodDecoder::SharedData::errors
int errors
Definition: SCT_RodDecoder.h:140
eformat::ROBFragment
Definition: L1CaloBsDecoderUtil.h:12
SCT_RodDecoder::m_trailerNumber
std::atomic_uint m_trailerNumber
Total number of decoded trailer data.
Definition: SCT_RodDecoder.h:458
SCT_RodDecoder::processABCDError
StatusCode processABCDError(const uint16_t inData, const uint32_t robID, SharedData &data, SCT_RodDecoderErrorsHelper &errs, bool &hasError) const
Process ABCD error.
Definition: SCT_RodDecoder.cxx:1111
SCT_RodDecoderErrorsHelper::accumulatedErrors
std::map< IdentifierHash, IDCInDetBSErrContainer::ErrorCode > accumulatedErrors
Definition: SCT_RodDecoder.h:64
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
SCT_RodDecoder::SharedData::strip
int strip
Definition: SCT_RodDecoder.h:135
SCT_RodDecoder::SharedData::rdoCollMap
std::unordered_map< IdentifierHash, std::unique_ptr< SCT_RDO_Collection >, Hasher > rdoCollMap
Definition: SCT_RodDecoder.h:157
SCT_RodDecoder::m_singleCondHitNumber
std::atomic_uint m_singleCondHitNumber
Total number of single strips with hit decoded in condensed mode.
Definition: SCT_RodDecoder.h:440
AthAlgTool.h
SCT_RodDecoder::SharedData::isStripValid
bool isStripValid() const
Definition: SCT_RodDecoder.h:199
test_pyathena.parent
parent
Definition: test_pyathena.py:15
SCT_RodDecoder::m_rodClockErrorNumber
std::atomic_uint m_rodClockErrorNumber
Total number of ROD clock errors.
Definition: SCT_RodDecoder.h:515
SCT_RodDecoder::CacheHelper::skipHash
IdentifierHash skipHash
Definition: SCT_RodDecoder.h:80
SCT_RodDecoder::m_cabling
ToolHandle< ISCT_CablingTool > m_cabling
Providing mappings of online and offline identifiers and also serial numbers.
Definition: SCT_RodDecoder.h:428
SCT_RodDecoder::m_configTool
ToolHandle< ISCT_ConfigurationConditionsTool > m_configTool
Service that keeps track of configuration conditions.
Definition: SCT_RodDecoder.h:434
SCT_RodDecoder::m_configDataBit
std::atomic_uint m_configDataBit
Total number of configuration data for raw data.
Definition: SCT_RodDecoder.h:485
SCT_RodDecoderErrorsHelper::removeIfEmpty
void removeIfEmpty(const IdentifierHash id)
Definition: SCT_RodDecoder.h:58
SCT_RodDecoder::CacheHelper
Temp object to help with trigger caching.
Definition: SCT_RodDecoder.h:79
IdentifiableValueContainer::setOrDrop
bool setOrDrop(size_t i, const T &value)
Set the value for the given hash.
Definition: IdentifiableValueContainer.h:129
SCT_RodDecoder::SCT_DecoderNumbers
SCT_DecoderNumbers
Define frequently used magic numbers.
Definition: SCT_RodDecoder.h:122
SCT_RodDecoder::SharedData::foundMissingLinkHeaderError
bool foundMissingLinkHeaderError
Definition: SCT_RodDecoder.h:152
SCT_RodDecoder::~SCT_RodDecoder
virtual ~SCT_RodDecoder()=default
Destructor.
SCT_RodDecoder
Athena Algorithm Tool to decode the SCT binary format to create RDOs and inserts them to the collecti...
Definition: SCT_RodDecoder.h:77
SCT_RodDecoder::m_headNumber
std::atomic_uint m_headNumber
Total number of decoded header data.
Definition: SCT_RodDecoder.h:455
SCT_RodDecoder::m_evenExpHitNumber
std::atomic_uint m_evenExpHitNumber
Total number of consecutive paired strips with hit decoded in expanded mode.
Definition: SCT_RodDecoder.h:449
SCT_RodDecoder::SharedData::SharedData
SharedData()
Definition: SCT_RodDecoder.h:162
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:220
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
SCT_RodDecoder::N_CHIPS_PER_SIDE
@ N_CHIPS_PER_SIDE
Definition: SCT_RodDecoder.h:123
SCT_ByteStreamErrors::ErrorType
ErrorType
SCT byte stream error type enums used in SCT_RodDecoder, SCT_ByteStreamErrorsTool,...
Definition: SCT_ByteStreamErrors.h:178
SCT_RodDecoder::finalize
virtual StatusCode finalize() override
Finalize.
Definition: SCT_RodDecoder.cxx:62
SCT_RodDecoder::CacheHelper::vecHash
const std::vector< IdentifierHash > * vecHash
Definition: SCT_RodDecoder.h:81
SCT_RodDecoderErrorsHelper
allows to accumulate errors in one fillColection call
Definition: SCT_RodDecoder.h:41
SCT_RodDecoder::SharedData::Hasher::operator()
std::size_t operator()(const IdentifierHash &hash) const
Definition: SCT_RodDecoder.h:155
SCT_RodDecoder::m_numMissingLinkHeader
std::atomic_uint m_numMissingLinkHeader
Total number of missing link headers.
Definition: SCT_RodDecoder.h:521
SCT_RodDecoder::CacheHelper::lastHash
IdentifierHash lastHash
Definition: SCT_RodDecoder.h:80
ISCT_ConfigurationConditionsTool.h
SCT_RodDecoder::SharedData::groupSize
int groupSize
Definition: SCT_RodDecoder.h:136
SCT_RodDecoder::SharedData::setSaved
void setSaved(const bool isOld, const int code)
Definition: SCT_RodDecoder.h:181
SCT_RodDecoder::SharedData::setOld
void setOld()
Definition: SCT_RodDecoder.h:176
SCT_RodDecoder::SharedData::collID
Identifier collID
Definition: SCT_RodDecoder.h:139
CaloCondBlobAlgs_fillNoiseFromASCII.hash
dictionary hash
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:109
SCT_ID
Definition: SCT_ID.h:68
SCT_RodDecoder::m_headErrorLvl1ID
std::atomic_uint m_headErrorLvl1ID
Total number of Lvl1ID errors in the header data.
Definition: SCT_RodDecoder.h:464
SCT_RodDecoder::m_headErrorBCID
std::atomic_uint m_headErrorBCID
Total number of BCID errors in the header data.
Definition: SCT_RodDecoder.h:461
SCT_RodDecoder::m_swapPhiReadoutDirection
std::vector< bool > m_swapPhiReadoutDirection
Swap phi readout direction.
Definition: SCT_RodDecoder.h:524
IDCInDetBSErrContainer.h
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
SCT_RodDecoder::m_trailerErrorBit
std::atomic_uint m_trailerErrorBit
Total number of trailer bit errors.
Definition: SCT_RodDecoder.h:482
SCT_RodDecoder::m_lastExpHitNumber
std::atomic_uint m_lastExpHitNumber
Total number of last consecutive strips with hit decoded in expanded mode.
Definition: SCT_RodDecoder.h:452
SCT_RodDecoder::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: SCT_RodDecoder.cxx:167
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
SCT_RodDecoder::SharedData::errorHit
std::vector< int > errorHit
Definition: SCT_RodDecoder.h:142
DataPool
a typed memory pool that saves time spent allocation small object. This is typically used by containe...
Definition: DataPool.h:47
SCT_RodDecoderErrorsHelper::errorsIDC
IDCInDetBSErrContainer & errorsIDC
Definition: SCT_RodDecoder.h:65
SCT_RodDecoder::processSuperCondensedHit
StatusCode processSuperCondensedHit(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, const EventContext &ctx) const
Process hit word in Super-Condensed mode.
Definition: SCT_RodDecoder.cxx:769
ISCT_RodDecoder.h
ISCT_CablingTool.h
SCT_RodDecoder::SharedData::isSaved
bool isSaved(const bool isOld)
Definition: SCT_RodDecoder.h:189
SCT_RodDecoder::addSingleError
StatusCode addSingleError(const IdentifierHash &hashID, SCT_ByteStreamErrors::ErrorType error, SCT_RodDecoderErrorsHelper &errs) const
Add single eror.
Definition: SCT_RodDecoder.cxx:462
SCT_RodDecoder::m_chipNumberError
std::atomic_uint m_chipNumberError
Total number of chip number errors.
Definition: SCT_RodDecoder.h:497
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
SCT_RodDecoder::m_sctID
const SCT_ID * m_sctID
Identifier helper class for the SCT subdetector that creates compact Identifier objects and Identifie...
Definition: SCT_RodDecoder.h:421
SCT_RodDecoder::SharedData::writeHandleMap
std::unordered_map< IdentifierHash, SCT_RDO_Container::IDC_WriteHandle, Hasher > writeHandleMap
Definition: SCT_RodDecoder.h:158
error
Definition: IImpactPoint3dEstimator.h:70
SCT_RodDecoder::makeRDO
int makeRDO(const bool isOld, SharedData &data, CacheHelper &cache, DataPool< SCT3_RawData > *dataItemsPool) const
Builds RawData RDO and adds to RDO container.
Definition: SCT_RodDecoder.cxx:360
SCT_RodDecoder::SharedData::cache
CacheHelper cache
Definition: SCT_RodDecoder.h:141
IdContext
This class saves the "context" of an expanded identifier (ExpandedIdentifier) for compact or hash ver...
Definition: IdContext.h:26
SCT_ByteStreamErrors.h
Define SCT byte stream errors and utility methods.
SCT_RodDecoder::SharedData::timeBin
int timeBin
Definition: SCT_RodDecoder.h:137
SCT_RodDecoder::processCondensedHit
StatusCode processCondensedHit(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, const EventContext &ctx) const
Process hit word in Condensed mode.
Definition: SCT_RodDecoder.cxx:865
SCT_RodDecoderErrorsHelper::noerror
void noerror(const IdentifierHash id)
Definition: SCT_RodDecoder.h:50
SCT_RodDecoder::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: SCT_RodDecoder.cxx:430
SCT_RodDecoder::initialize
virtual StatusCode initialize() override
Initialize.
Definition: SCT_RodDecoder.cxx:28
SCT_RodDecoder::m_nRDOs
std::atomic_uint m_nRDOs
Total number of SCT RDOs created.
Definition: SCT_RodDecoder.h:506
SCT_RodDecoder::SharedData::condensedMode
bool condensedMode
Definition: SCT_RodDecoder.h:132
Identifier
Definition: IdentifierFieldParser.cxx:14