ATLAS Offline Software
Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
ITkStripsRodDecoder Class Reference

#include <ITkStripsRodDecoder.h>

Inheritance diagram for ITkStripsRodDecoder:
Collaboration diagram for ITkStripsRodDecoder:

Classes

struct  CacheHelper
 Temp object to help with trigger caching. More...
 
struct  SharedData
 Struct to hold data shared in methods used in fillCollection method. More...
 

Public Member Functions

virtual ~ITkStripsRodDecoder ()=default
 Destructor. More...
 
virtual StatusCode initialize () override
 Initialize. More...
 
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. More...
 

Private Types

enum  ITk_DecoderNumbers { N_SIDES = 2, N_CHIPS_PER_SIDE = 6, N_STRIPS_PER_CHIP = 128, N_STRIPS_PER_SIDE = N_CHIPS_PER_SIDE*N_STRIPS_PER_CHIP }
 Define frequently used magic numbers. More...
 

Private Member Functions

int makeRDO (const bool isOld, SharedData &data, CacheHelper &cache, DataPool< SCT3_RawData > *dataItemsPool) const
 Builds RawData RDO and adds to RDO container. More...
 
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. More...
 
StatusCode addSingleError (const IdentifierHash &hashID, SCT_ByteStreamErrors::ErrorType error, SCT_RodDecoderErrorsHelper &errs) const
 Add single eror. More...
 
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. More...
 
StatusCode processRawData (const uint16_t inData, const uint32_t robID, SharedData &data, SCT_RodDecoderErrorsHelper &errs, bool &hasError) const
 Process raw data word. More...
 

Private Attributes

const SCT_IDm_itkStripsID {nullptr}
 Identifier helper class for the SCT subdetector that creates compact Identifier objects and IdentifierHash or hash IDs. More...
 
IdContext m_contextITk
 "Context" of an expanded identifier (ExpandedIdentifier) for compact or hash versions (Identifier32 or IdentifierHash) More...
 
ToolHandle< IITkStripCablingToolm_cabling
 Providing mappings of online and offline identifiers and also serial numbers. More...
 
ToolHandle< ISCT_ConfigurationConditionsToolm_configTool
 Service that keeps track of configuration conditions. More...
 
std::atomic_uint m_singleCondHitNumber {0}
 Total number of single strips with hit decoded in condensed mode. More...
 
std::atomic_uint m_pairedCondHitNumber {0}
 Total number of paired strips with hit decoded in condensed mode. More...
 
std::atomic_uint m_firstExpHitNumber {0}
 Total number of first strips with hit decoded in expanded mode. More...
 
std::atomic_uint m_evenExpHitNumber {0}
 Total number of consecutive paired strips with hit decoded in expanded mode. More...
 
std::atomic_uint m_lastExpHitNumber {0}
 Total number of last consecutive strips with hit decoded in expanded mode. More...
 
std::atomic_uint m_headNumber {0}
 Total number of decoded header data. More...
 
std::atomic_uint m_trailerNumber {0}
 Total number of decoded trailer data. More...
 
std::atomic_uint m_headErrorBCID {0}
 Total number of BCID errors in the header data. More...
 
std::atomic_uint m_headErrorLvl1ID {0}
 Total number of Lvl1ID errors in the header data. More...
 
std::atomic_uint m_headErrorTimeout {0}
 Total number of timeout errors in the header data. More...
 
std::atomic_uint m_headErrorFormatter {0}
 Total number of formatter errors in the header data. More...
 
std::atomic_uint m_headErrorPreamble {0}
 Total number of preamble errors in the header data. More...
 
std::atomic_uint m_trailerErrorOverflow {0}
 Total number of overflow errors in the trailer data. More...
 
std::atomic_uint m_trailerErrorLimit {0}
 Total number of header trailer limit errors in the trailer data. More...
 
std::atomic_uint m_trailerErrorBit {0}
 Total number of trailer bit errors. More...
 
std::atomic_uint m_configDataBit {0}
 Total number of configuration data for raw data. More...
 
std::atomic_uint m_flagErrorBit {0}
 Total number of flag error data. More...
 
std::atomic_uint m_condHit1Error {0}
 Total number of first hit data errors. More...
 
std::atomic_uint m_condHit2Error {0}
 Total number second hit data errors. More...
 
std::atomic_uint m_chipNumberError {0}
 Total number of chip number errors. More...
 
std::atomic_uint m_unknownDataFormat {0}
 Total number of unknown data formats. More...
 
std::atomic_uint m_nHits {0}
 Total number of SCT hits in ByteStream. More...
 
std::atomic_uint m_nRDOs {0}
 Total number of SCT RDOs created. More...
 
std::atomic_uint m_maskedLinkNumber {0}
 Total number of masked links in the header data. More...
 
std::atomic_uint m_maskedRODNumber {0}
 Total number of masked RDOs. More...
 
std::atomic_uint m_rodClockErrorNumber {0}
 Total number of ROD clock errors. More...
 
std::atomic_uint m_truncatedRODNumber {0}
 Total number of truncated ROBFragments. More...
 
std::atomic_uint m_numMissingLinkHeader {0}
 Total number of missing link headers. More...
 
std::vector< bool > m_swapPhiReadoutDirection {}
 Swap phi readout direction. More...
 

Detailed Description

Definition at line 73 of file ITkStripsRodDecoder.h.

Member Enumeration Documentation

◆ ITk_DecoderNumbers

Define frequently used magic numbers.

Enumerator
N_SIDES 
N_CHIPS_PER_SIDE 
N_STRIPS_PER_CHIP 
N_STRIPS_PER_SIDE 

Definition at line 115 of file ITkStripsRodDecoder.h.

115  { N_SIDES = 2,
116  N_CHIPS_PER_SIDE = 6,
117  N_STRIPS_PER_CHIP = 128,
119  }; //Check this numbers

Constructor & Destructor Documentation

◆ ~ITkStripsRodDecoder()

virtual ITkStripsRodDecoder::~ITkStripsRodDecoder ( )
virtualdefault

Destructor.

Member Function Documentation

◆ addRODError()

StatusCode ITkStripsRodDecoder::addRODError ( uint32_t  rodID,
SCT_ByteStreamErrors::ErrorType  error,
SCT_RodDecoderErrorsHelper errs,
const std::unordered_set< IdentifierHash > *  foundHashes = nullptr 
) const
private

Add an error for each wafer in the problematic ROD.

Parameters
rodIDIdentifer of ROD.
errorTypeError type info.
errsByte stream error container.
foundHashesFE-links whose headers are found. Used only for MissingLinkHeaderError.

Definition at line 200 of file ITkStripsRodDecoder.cxx.

203 {
204  return StatusCode::SUCCESS;
205 }

◆ addSingleError()

StatusCode ITkStripsRodDecoder::addSingleError ( const IdentifierHash hashID,
SCT_ByteStreamErrors::ErrorType  error,
SCT_RodDecoderErrorsHelper errs 
) const
private

Add single eror.

Parameters
hashIDIdentifier for hash.
bsErrorTypeByte Stream error type info.
errsByte stream error container.

Definition at line 209 of file ITkStripsRodDecoder.cxx.

212 {
213  return StatusCode::SUCCESS;
214 }

◆ fillCollection()

StatusCode ITkStripsRodDecoder::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
overridevirtual

Fill SCT RDO Collection with decoded ROB data.

Decode the rob data fragment and fill the collection SCT_RDO_Collection with the RDO built by the makeRDO(..) method. rdoIdc, and errs are updated based on robFrag and vecHash.

Parameters
robFragROB fragment.
rdoIDContRDO ID Container to be filled.
errsByte stream error container.
vecHashVector of hashes.

Definition at line 43 of file ITkStripsRodDecoder.cxx.

49 {
50  SCT_RodDecoderErrorsHelper errs{errorsIDC}; // on destruction will fill the IDC
51 
52  StatusCode sc{StatusCode::SUCCESS};
53 
54  SharedData data;
55  data.reset();
56 
57  CacheHelper cache; // For the trigger
58  cache.vecHash = vecHash;
59 
61  const unsigned long int vecROBDataSize{robFrag.rod_ndata()};
62 
63  robFrag.rod_data(vecROBData);
64  // Loop over header, hit element, flagged ABCD error, raw data, trailer words
65 
66  const uint8_t* vecROBData_8bits = reinterpret_cast<const uint8_t*>(vecROBData);
67  const size_t total_bytes = vecROBDataSize * sizeof(uint32_t);
68 
69  for (size_t i = 0; i + 9 < total_bytes; i += 10) { // 10 bytes per package
70  //Read Header
71  bool hasError{false};
72  uint16_t header = (vecROBData_8bits[i] << 8) | vecROBData_8bits[i + 1];
73 
74  uint8_t type = (header >> 11) & 0x1F;
75 
76  // Useful information
77  // uint8_t l0tag = (header >> 7) & 0xF;
78  // uint8_t bcid_low = (header >> 4) & 0x7;
79  // uint8_t bcid_xor = header & 0xF;
80 
81  if (type == 0x03) { // PR Header
82  bool breakNow{false};
83  ATH_MSG_DEBUG("PR Packet Found");
84  if (hasError) sc = StatusCode::RECOVERABLE;
85  if (breakNow) break;
86  } else {
87  ATH_MSG_WARNING("Unexpected packet type (not PR): 0x" << std::hex << int(type));
88  continue;
89  }
90  for (int j = 0; j < 4; ++j) {
91  uint16_t cluster = (vecROBData_8bits[i + 2 + j * 2] << 8) | vecROBData_8bits[i + 3 + j * 2];
92  if (cluster == 0x7FFF){
93  ATH_MSG_DEBUG("Cluster [" << j << "] empty ");
94  }
95  }
96  }
97 
98  // Create the last RDO of the last link of the event
99  if (data.isStripValid()) {
100  if (not data.isSaved(false) and data.isOldStripValid()) {
101  const int rdoMade{makeRDO(false, data, cache, dataItemsPool)};
102  if (rdoMade == -1) {
103  sc = StatusCode::RECOVERABLE;
104  ATH_CHECK(addSingleError(data.linkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs));
105  }
106  else {
107  data.setSaved(false, rdoMade);
108  }
109  }
110  }
111 
112  for (auto& [hash, rdoColl] : data.rdoCollMap) {
113  if (rdoColl==nullptr) continue; // nullptr means the collection is already filled.
114 
115  if (rdoColl->empty()) { // Empty collection is not filled.
116  rdoColl.reset();
117  errs.removeIfEmpty(hash); // To get the same result as before. Not sure whether we need this.
118  continue;
119  }
120 
121  ATH_CHECK(data.writeHandleMap[hash].addOrDelete(std::move(rdoColl)));
122  }
123 
124  if (sc.isFailure()) ATH_MSG_DEBUG("One or more ByteStream errors found ");
125  return sc;
126 }

◆ initialize()

StatusCode ITkStripsRodDecoder::initialize ( )
overridevirtual

Initialize.

Definition at line 20 of file ITkStripsRodDecoder.cxx.

21 {
22 
23  // Retrieve cabling tool
24  ATH_CHECK(m_cabling.retrieve());
25  ATH_MSG_DEBUG("Retrieved tool " << m_cabling);
29  ATH_CHECK(m_configTool.retrieve());
30  const InDetDD::SCT_DetectorManager* itkStripsDetManager{nullptr};
31  ATH_CHECK(detStore()->retrieve(itkStripsDetManager, "ITkStrip"));
32  const InDetDD::SiDetectorElementCollection* sctDetElementColl{itkStripsDetManager->getDetectorElementCollection()};
33  for (const InDetDD::SiDetectorElement* element: *sctDetElementColl) {
34  if (element->swapPhiReadoutDirection()) {
35  m_swapPhiReadoutDirection[element->identifyHash()] = true;
36  }
37  }
38  ATH_MSG_DEBUG("Initialization was successful");
39  return StatusCode::SUCCESS;
40 }

◆ makeRDO()

int ITkStripsRodDecoder::makeRDO ( const bool  isOld,
SharedData data,
CacheHelper cache,
DataPool< SCT3_RawData > *  dataItemsPool 
) const
private

Builds RawData RDO and adds to RDO container.

Method that builds the RawData RDO and add it to the collection rdoIdc and cache are updated based on other arguments.

Returns
Method has 3 possible return values: 1 if RDO was successfully created 0 if collection was deliberately skipped (for trigger) -1 if there was an error in the decoding - will be passed on as StatusCode::RECOVERABLE by fillCollection()
Parameters
isOldif true use data.oldStrip, otherwise use data.strip.
dataStruct to hold data shared in methods used in fillCollection method
cacheCache.

Definition at line 130 of file ITkStripsRodDecoder.cxx.

134 {
135  // If the link is already decoded, RDO will not be created.
136  SCT_RDO_Collection* rdoColl{data.rdoCollMap[data.linkIDHash].get()};
137  if (rdoColl==nullptr) return 0;
138 
139  int strip{isOld ? data.oldStrip : data.strip};
140  if (((strip & 0x7F) + (data.groupSize-1) >= N_STRIPS_PER_CHIP) or (strip<0) or (strip>=N_STRIPS_PER_SIDE)) {
141  ATH_MSG_WARNING("Cluster with " << data.groupSize << " strips, starting at strip " << strip
142  << " in collection " << data.linkIDHash << " out of range. Will not make RDO");
143  return -1;
144  }
145 
146  // This option is for the trigger, if there is a vecHash* given, test it!
147  if (cache.vecHash) {
148  if (data.linkIDHash == cache.skipHash) {
149  ATH_MSG_VERBOSE("Collection for Hash not to be decoded, skip");
150  return 0;
151  }
152  else if (data.linkIDHash != cache.lastHash) {
153  cache.lastHash = data.linkIDHash;
154  // Maybe the new hash is not in the list, so test it
155  std::vector<IdentifierHash>::const_iterator hashIDIterator{find(cache.vecHash->begin(),
156  cache.vecHash->end(),
157  data.linkIDHash)};
158  if (hashIDIterator == cache.vecHash->end()) {
159  ATH_MSG_VERBOSE("Collection for Hash not to be decoded, skip");
160  // Remember this one, so that we do not find(...) forever
161  cache.skipHash = data.linkIDHash;
162  return 0;
163  }
164  }
165  }
166 
167  // See if strips go from 0 to N_STRIPS_PER_SIDE-1(=767) or vice versa
168  if (m_swapPhiReadoutDirection[data.linkIDHash]) {
170  strip = strip-(data.groupSize-1);
171  }
172 
173  // Get identifier from the hash, this is not nice
174  const Identifier digitID{m_itkStripsID->strip_id(data.collID, strip)};
175  if (not m_itkStripsID->is_sct(digitID)) {
176  ATH_MSG_WARNING("Cluster with invalid Identifier. Will not make RDO");
177  return -1;
178  }
179 
180  const unsigned int rawDataWord{static_cast<unsigned int>(data.groupSize | (strip << 11) | (data.timeBin <<22) | (data.errors << 25))};
181 
182  ATH_MSG_DEBUG("Output Raw Data " << std::hex << " Coll " << data.collID.getString()
183  << ":-> " << m_itkStripsID->print_to_string(digitID) << std::dec);
184 
185  // Now the Collection is there for sure. Create RDO and push it into Collection.
186  m_nRDOs++;
187 
188  if(dataItemsPool){
189  SCT3_RawData* sct_rdo = dataItemsPool->nextElementPtr();
190  (*sct_rdo) = SCT3_RawData(digitID, rawDataWord, &(data.errorHit));
191  rdoColl->push_back(sct_rdo);
192  }else{
193  rdoColl->push_back(std::make_unique<SCT3_RawData>(digitID, rawDataWord, &(data.errorHit)));
194  }
195  return 1;
196 }

◆ processHeader()

StatusCode ITkStripsRodDecoder::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
private

Process header word.

Parameters
inDatainput 16 bit data word for header
robIDROB ID
dataStruct to hold data shared in methods used in fillCollection method
rdoIDContRDO ID Container to be filled.
cacheCache.
errsSCT_RodDecoderErrorsHelper to fill IDCInDetBSErrContainer
hasErrorfalse means no error, true means at least one error
breakNowto tell if need to break after this method execution.

Definition at line 216 of file ITkStripsRodDecoder.cxx.

226 {
227  StatusCode sc{StatusCode::SUCCESS};
228 
229  data.foundHeader = true;
230  m_headNumber++;
231 
232  // Create the last RDO of the previous link if any
233  if (data.isStripValid()) {
234  if (not data.isSaved(false) and data.isOldStripValid()) {
235 
236  const int rdoMade{makeRDO(false, data, cache, dataItemsPool)};
237  if (rdoMade == -1) {
238  hasError = true;
239  ATH_CHECK(addSingleError(data.linkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs));
240  }
241  else {
242  data.setSaved(false, rdoMade);
243  }
244  }
245  }
246 
247  // Everything is set to default for a new hunt of RDO
248  data.reset();
249 
250  // Link Number (or stream) in the ROD fragment
251  const int rodlinkNumber{static_cast<int>(inData & 0x7F)};
252 
253  // This is the real calculation for the offline
254  data.linkNumber = (((rodlinkNumber >>4)&0x7)*12+(rodlinkNumber &0xF));
255  const uint32_t onlineID{(robID & 0xFFFFFF) | (data.linkNumber << 24)};
257  if ((onlineID ==0) or (data.linkNumber > 95)) {
258  ATH_CHECK(addSingleError(data.linkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs));
259  hasError = true;
260  ATH_MSG_DEBUG("Header: xxx Link number out of range (skipping following data)"
261  << std::dec << data.linkNumber);
262  breakNow = true;
263  return sc;
264  }
265  else {
266  hash = m_cabling->getHashFromOnlineId(onlineID, ctx);
267  if (hash.is_valid()) {
268  data.setCollection(m_itkStripsID, hash, rdoIDCont, dataItemsPool, errs);
269  }
270  else {
271  std::stringstream msg;
272  msg <<std::hex << onlineID;
273  ATH_MSG_WARNING("Rob fragment (rob=" << robID << ") with invalid onlineID " << msg.str() << " -> " << hash << ".");
274  }
275  }
276  // Look for masked off links - bit 7
277  if ((inData >> 7) & 0x1) {
278  ATH_MSG_DEBUG("Masked link " << onlineID << " " << data.linkIDHash);
279  ATH_CHECK(addSingleError(data.linkIDHash, SCT_ByteStreamErrors::MaskedLink, errs));
280  hasError = true;
281  }
282  if (inData & 0x800) {
283  ATH_MSG_DEBUG(" Header: xxx TimeOut Error " << data.linkIDHash);
285  ATH_CHECK(addSingleError(data.linkIDHash, SCT_ByteStreamErrors::TimeOutError, errs));
286  hasError = true;
287  }
288 
289  if (inData & 0x1000) {
290  ATH_MSG_DEBUG(" Header: xxx Preamble Error " << data.linkIDHash);
292  ATH_CHECK(addSingleError(data.linkIDHash, SCT_ByteStreamErrors::PreambleError, errs));
293  hasError = true;
294  }
295 
296  if (inData & 0x400) {
297  ATH_MSG_DEBUG(" Header: xxx LVL1 ID Error " << data.linkIDHash);
299  ATH_CHECK(addSingleError(data.linkIDHash, SCT_ByteStreamErrors::LVL1IDError, errs));
300  hasError = true;
301  }
302 
303  if (inData & 0x200) {
304  ATH_MSG_DEBUG(" Header: xxx BCID Error " << data.linkIDHash);
305  m_headErrorBCID++;
307  hasError = true;
308  }
309 
310  if ((inData & 0xF) > 11) {
311  ATH_MSG_DEBUG(" Header: xxx Error in formatter " << data.linkIDHash);
313  ATH_CHECK(addSingleError(data.linkIDHash, SCT_ByteStreamErrors::FormatterError, errs));
314  hasError = true;
315  }
316  if (!hasError and not hash.is_valid()) {
317  std::stringstream msg;
318  msg <<std::hex << onlineID;
319  ATH_MSG_WARNING("Rob fragment (rob=" << robID << ") with invalid onlineID " << msg.str() << " -> " << hash << ".");
320  hasError = true;
321  }
322 
323  data.condensedMode = static_cast<bool>(inData & 0x100);
324 
325  return sc;
326 }

◆ processRawData()

StatusCode ITkStripsRodDecoder::processRawData ( const uint16_t  inData,
const uint32_t  robID,
SharedData data,
SCT_RodDecoderErrorsHelper errs,
bool &  hasError 
) const
private

Process raw data word.

Parameters
inDatainput 16 bit data word for header
robIDROB ID
dataStruct to hold data shared in methods used in fillCollection method
errsSCT_RodDecoderErrorsHelper to fill IDCInDetBSErrContainer
hasErrorfalse means no error, true means at least one error

Definition at line 328 of file ITkStripsRodDecoder.cxx.

333 {
334  StatusCode sc{StatusCode::SUCCESS};
335 
336  if (not data.foundHeader) {
337  ATH_MSG_WARNING(" Missing link header in ROD " << std::hex << robID << std::dec);
338  data.foundMissingLinkHeaderError = true;
340  hasError = true;
341  return sc;
342  }
343 
344  ATH_MSG_DEBUG(" xxx Raw Data Mode " << std::hex << inData << std::dec << ": Config Data Mode ");
345  // Too many errors in the BS for the ROD to decode the data
346  m_configDataBit++;
347  ATH_CHECK(addSingleError(data.linkIDHash, SCT_ByteStreamErrors::RawError, errs));
348  hasError = true;
349 
350  return sc;
351 }

Member Data Documentation

◆ m_cabling

ToolHandle<IITkStripCablingTool> ITkStripsRodDecoder::m_cabling
private
Initial value:
{this,
"ITkStripCablingTool",
"ITkStripCablingTool",
"Tool to retrieve ITkStrip Cabling"}

Providing mappings of online and offline identifiers and also serial numbers.

Definition at line 317 of file ITkStripsRodDecoder.h.

◆ m_chipNumberError

std::atomic_uint ITkStripsRodDecoder::m_chipNumberError {0}
mutableprivate

Total number of chip number errors.

Definition at line 386 of file ITkStripsRodDecoder.h.

◆ m_condHit1Error

std::atomic_uint ITkStripsRodDecoder::m_condHit1Error {0}
mutableprivate

Total number of first hit data errors.

Definition at line 380 of file ITkStripsRodDecoder.h.

◆ m_condHit2Error

std::atomic_uint ITkStripsRodDecoder::m_condHit2Error {0}
mutableprivate

Total number second hit data errors.

Definition at line 383 of file ITkStripsRodDecoder.h.

◆ m_configDataBit

std::atomic_uint ITkStripsRodDecoder::m_configDataBit {0}
mutableprivate

Total number of configuration data for raw data.

Definition at line 374 of file ITkStripsRodDecoder.h.

◆ m_configTool

ToolHandle<ISCT_ConfigurationConditionsTool> ITkStripsRodDecoder::m_configTool
private
Initial value:
{this,
"ConfigTool",
"SCT_ConfigurationConditionsTool/InDetSCT_ConfigurationConditionsTool",
"Tool to retrieve SCT Configuration Tool"}

Service that keeps track of configuration conditions.

Definition at line 323 of file ITkStripsRodDecoder.h.

◆ m_contextITk

IdContext ITkStripsRodDecoder::m_contextITk
private

"Context" of an expanded identifier (ExpandedIdentifier) for compact or hash versions (Identifier32 or IdentifierHash)

Definition at line 314 of file ITkStripsRodDecoder.h.

◆ m_evenExpHitNumber

std::atomic_uint ITkStripsRodDecoder::m_evenExpHitNumber {0}
mutableprivate

Total number of consecutive paired strips with hit decoded in expanded mode.

Definition at line 338 of file ITkStripsRodDecoder.h.

◆ m_firstExpHitNumber

std::atomic_uint ITkStripsRodDecoder::m_firstExpHitNumber {0}
mutableprivate

Total number of first strips with hit decoded in expanded mode.

Definition at line 335 of file ITkStripsRodDecoder.h.

◆ m_flagErrorBit

std::atomic_uint ITkStripsRodDecoder::m_flagErrorBit {0}
mutableprivate

Total number of flag error data.

Definition at line 377 of file ITkStripsRodDecoder.h.

◆ m_headErrorBCID

std::atomic_uint ITkStripsRodDecoder::m_headErrorBCID {0}
mutableprivate

Total number of BCID errors in the header data.

Definition at line 350 of file ITkStripsRodDecoder.h.

◆ m_headErrorFormatter

std::atomic_uint ITkStripsRodDecoder::m_headErrorFormatter {0}
mutableprivate

Total number of formatter errors in the header data.

Definition at line 359 of file ITkStripsRodDecoder.h.

◆ m_headErrorLvl1ID

std::atomic_uint ITkStripsRodDecoder::m_headErrorLvl1ID {0}
mutableprivate

Total number of Lvl1ID errors in the header data.

Definition at line 353 of file ITkStripsRodDecoder.h.

◆ m_headErrorPreamble

std::atomic_uint ITkStripsRodDecoder::m_headErrorPreamble {0}
mutableprivate

Total number of preamble errors in the header data.

Definition at line 362 of file ITkStripsRodDecoder.h.

◆ m_headErrorTimeout

std::atomic_uint ITkStripsRodDecoder::m_headErrorTimeout {0}
mutableprivate

Total number of timeout errors in the header data.

Definition at line 356 of file ITkStripsRodDecoder.h.

◆ m_headNumber

std::atomic_uint ITkStripsRodDecoder::m_headNumber {0}
mutableprivate

Total number of decoded header data.

Definition at line 344 of file ITkStripsRodDecoder.h.

◆ m_itkStripsID

const SCT_ID* ITkStripsRodDecoder::m_itkStripsID {nullptr}
private

Identifier helper class for the SCT subdetector that creates compact Identifier objects and IdentifierHash or hash IDs.

Also allows decoding of these IDs.

Definition at line 310 of file ITkStripsRodDecoder.h.

◆ m_lastExpHitNumber

std::atomic_uint ITkStripsRodDecoder::m_lastExpHitNumber {0}
mutableprivate

Total number of last consecutive strips with hit decoded in expanded mode.

Definition at line 341 of file ITkStripsRodDecoder.h.

◆ m_maskedLinkNumber

std::atomic_uint ITkStripsRodDecoder::m_maskedLinkNumber {0}
mutableprivate

Total number of masked links in the header data.

Definition at line 398 of file ITkStripsRodDecoder.h.

◆ m_maskedRODNumber

std::atomic_uint ITkStripsRodDecoder::m_maskedRODNumber {0}
mutableprivate

Total number of masked RDOs.

Definition at line 401 of file ITkStripsRodDecoder.h.

◆ m_nHits

std::atomic_uint ITkStripsRodDecoder::m_nHits {0}
mutableprivate

Total number of SCT hits in ByteStream.

Definition at line 392 of file ITkStripsRodDecoder.h.

◆ m_nRDOs

std::atomic_uint ITkStripsRodDecoder::m_nRDOs {0}
mutableprivate

Total number of SCT RDOs created.

Definition at line 395 of file ITkStripsRodDecoder.h.

◆ m_numMissingLinkHeader

std::atomic_uint ITkStripsRodDecoder::m_numMissingLinkHeader {0}
mutableprivate

Total number of missing link headers.

Definition at line 410 of file ITkStripsRodDecoder.h.

◆ m_pairedCondHitNumber

std::atomic_uint ITkStripsRodDecoder::m_pairedCondHitNumber {0}
mutableprivate

Total number of paired strips with hit decoded in condensed mode.

Definition at line 332 of file ITkStripsRodDecoder.h.

◆ m_rodClockErrorNumber

std::atomic_uint ITkStripsRodDecoder::m_rodClockErrorNumber {0}
mutableprivate

Total number of ROD clock errors.

Definition at line 404 of file ITkStripsRodDecoder.h.

◆ m_singleCondHitNumber

std::atomic_uint ITkStripsRodDecoder::m_singleCondHitNumber {0}
mutableprivate

Total number of single strips with hit decoded in condensed mode.

Definition at line 329 of file ITkStripsRodDecoder.h.

◆ m_swapPhiReadoutDirection

std::vector<bool> ITkStripsRodDecoder::m_swapPhiReadoutDirection {}
private

Swap phi readout direction.

Definition at line 413 of file ITkStripsRodDecoder.h.

◆ m_trailerErrorBit

std::atomic_uint ITkStripsRodDecoder::m_trailerErrorBit {0}
mutableprivate

Total number of trailer bit errors.

Definition at line 371 of file ITkStripsRodDecoder.h.

◆ m_trailerErrorLimit

std::atomic_uint ITkStripsRodDecoder::m_trailerErrorLimit {0}
mutableprivate

Total number of header trailer limit errors in the trailer data.

Definition at line 368 of file ITkStripsRodDecoder.h.

◆ m_trailerErrorOverflow

std::atomic_uint ITkStripsRodDecoder::m_trailerErrorOverflow {0}
mutableprivate

Total number of overflow errors in the trailer data.

Definition at line 365 of file ITkStripsRodDecoder.h.

◆ m_trailerNumber

std::atomic_uint ITkStripsRodDecoder::m_trailerNumber {0}
mutableprivate

Total number of decoded trailer data.

Definition at line 347 of file ITkStripsRodDecoder.h.

◆ m_truncatedRODNumber

std::atomic_uint ITkStripsRodDecoder::m_truncatedRODNumber {0}
mutableprivate

Total number of truncated ROBFragments.

Definition at line 407 of file ITkStripsRodDecoder.h.

◆ m_unknownDataFormat

std::atomic_uint ITkStripsRodDecoder::m_unknownDataFormat {0}
mutableprivate

Total number of unknown data formats.

Definition at line 389 of file ITkStripsRodDecoder.h.


The documentation for this class was generated from the following files:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
ITkStripsRodDecoder::m_headErrorFormatter
std::atomic_uint m_headErrorFormatter
Total number of formatter errors in the header data.
Definition: ITkStripsRodDecoder.h:359
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:215
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
ITkStripsRodDecoder::N_SIDES
@ N_SIDES
Definition: ITkStripsRodDecoder.h:115
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
SiliconTech::strip
@ strip
InDetDD::SCT_DetectorManager
Definition: SCT_DetectorManager.h:49
ITkStripsRodDecoder::addSingleError
StatusCode addSingleError(const IdentifierHash &hashID, SCT_ByteStreamErrors::ErrorType error, SCT_RodDecoderErrorsHelper &errs) const
Add single eror.
Definition: ITkStripsRodDecoder.cxx:209
header
Definition: hcg.cxx:526
InDetDD::SiDetectorElementCollection
Definition: SiDetectorElementCollection.h:27
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:558
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
AtlasDetectorID::is_sct
bool is_sct(Identifier id) const
Definition: AtlasDetectorID.h:777
ITkStripsRodDecoder::m_headErrorLvl1ID
std::atomic_uint m_headErrorLvl1ID
Total number of Lvl1ID errors in the header data.
Definition: ITkStripsRodDecoder.h:353
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
ITkStripsRodDecoder::m_contextITk
IdContext m_contextITk
"Context" of an expanded identifier (ExpandedIdentifier) for compact or hash versions (Identifier32 o...
Definition: ITkStripsRodDecoder.h:314
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
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
OFFLINE_FRAGMENTS_NAMESPACE::PointerType
const DataType * PointerType
Definition: RawEvent.h:25
DataPool::nextElementPtr
pointer nextElementPtr()
obtain the next available element in pool by pointer pool is resized if its limit has been reached On...
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:93
ITkStripsRodDecoder::m_cabling
ToolHandle< IITkStripCablingTool > m_cabling
Providing mappings of online and offline identifiers and also serial numbers.
Definition: ITkStripsRodDecoder.h:317
lumiFormat.i
int i
Definition: lumiFormat.py:85
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
SCT3_RawData
Definition: SCT3_RawData.h:24
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
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
ITkStripsRodDecoder::m_headNumber
std::atomic_uint m_headNumber
Total number of decoded header data.
Definition: ITkStripsRodDecoder.h:344
InDetRawDataCollection
Definition: InDetRawDataCollection.h:31
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
SCT_ID::wafer_context
IdContext wafer_context(void) const
Definition: SCT_ID.h:705
ITkStripsRodDecoder::N_CHIPS_PER_SIDE
@ N_CHIPS_PER_SIDE
Definition: ITkStripsRodDecoder.h:116
TRTByteStreamErrors::BCIDError
@ BCIDError
Definition: ITRT_ByteStream_ConditionsSvc.h:19
ITkStripsRodDecoder::m_configTool
ToolHandle< ISCT_ConfigurationConditionsTool > m_configTool
Service that keeps track of configuration conditions.
Definition: ITkStripsRodDecoder.h:323
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
AtlasDetectorID::print_to_string
std::string print_to_string(Identifier id, const IdContext *context=0) const
or provide the printout in string form
Definition: AtlasDetectorID.cxx:418
SCT_ID::wafer_hash_max
size_type wafer_hash_max(void) const
Definition: SCT_ID.cxx:645
InDetDD::SiDetectorElement
Definition: SiDetectorElement.h:109
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
ITkStripsRodDecoder::m_configDataBit
std::atomic_uint m_configDataBit
Total number of configuration data for raw data.
Definition: ITkStripsRodDecoder.h:374
CaloCondBlobAlgs_fillNoiseFromASCII.hash
dictionary hash
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:108
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
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
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
ITkStripsRodDecoder::m_headErrorTimeout
std::atomic_uint m_headErrorTimeout
Total number of timeout errors in the header data.
Definition: ITkStripsRodDecoder.h:356
SCT_ID::strip_id
Identifier strip_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int side, int strip) const
For an individual strip.
Definition: SCT_ID.h:535
ITkStripsRodDecoder::m_swapPhiReadoutDirection
std::vector< bool > m_swapPhiReadoutDirection
Swap phi readout direction.
Definition: ITkStripsRodDecoder.h:413
Identifier
Definition: IdentifierFieldParser.cxx:14