![]() |
ATLAS Offline Software
|
Athena Algorithm Tool to decode the SCT binary format to create RDOs and inserts them to the collection. More...
#include <SCT_RodDecoder.h>
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 | |
| SCT_RodDecoder (const std::string &type, const std::string &name, const IInterface *parent) | |
| Constructor. | |
| virtual | ~SCT_RodDecoder ()=default |
| Destructor. | |
| virtual StatusCode | initialize () override |
| Initialize. | |
| virtual StatusCode | finalize () override |
| Finalize. | |
| 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. | |
Private Types | |
| enum | SCT_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. | |
| 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. | |
| StatusCode | addSingleError (const IdentifierHash &hashID, SCT_ByteStreamErrors::ErrorType error, SCT_RodDecoderErrorsHelper &errs) const |
| Add single eror. | |
| StatusCode | setFirstTempMaskedChip (const IdentifierHash &hashID, unsigned int firstTempMaskedChip, SCT_RodDecoderErrorsHelper &errs) const |
| Set first temporarily masked chip information from byte stream trailer. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| StatusCode | processABCDError (const uint16_t inData, const uint32_t robID, SharedData &data, SCT_RodDecoderErrorsHelper &errs, bool &hasError) const |
| Process ABCD error. | |
| StatusCode | processRawData (const uint16_t inData, const uint32_t robID, SharedData &data, SCT_RodDecoderErrorsHelper &errs, bool &hasError) const |
| Process raw data word. | |
| StatusCode | processTrailer (const uint16_t inData, const uint32_t robID, SharedData &data, SCT_RodDecoderErrorsHelper &errs, bool &hasError) const |
| Process trailer word. | |
Private Attributes | |
| const SCT_ID * | m_sctID {nullptr} |
| Identifier helper class for the SCT subdetector that creates compact Identifier objects and IdentifierHash or hash IDs. | |
| IdContext | m_contextSCT |
| "Context" of an expanded identifier (ExpandedIdentifier) for compact or hash versions (Identifier32 or IdentifierHash) | |
| ToolHandle< ISCT_CablingTool > | m_cabling |
| Providing mappings of online and offline identifiers and also serial numbers. | |
| ToolHandle< ISCT_ConfigurationConditionsTool > | m_configTool |
| Service that keeps track of configuration conditions. | |
| std::atomic_uint | m_singleCondHitNumber {0} |
| Total number of single strips with hit decoded in condensed mode. | |
| std::atomic_uint | m_pairedCondHitNumber {0} |
| Total number of paired strips with hit decoded in condensed mode. | |
| std::atomic_uint | m_firstExpHitNumber {0} |
| Total number of first strips with hit decoded in expanded mode. | |
| std::atomic_uint | m_evenExpHitNumber {0} |
| Total number of consecutive paired strips with hit decoded in expanded mode. | |
| std::atomic_uint | m_lastExpHitNumber {0} |
| Total number of last consecutive strips with hit decoded in expanded mode. | |
| std::atomic_uint | m_headNumber {0} |
| Total number of decoded header data. | |
| std::atomic_uint | m_trailerNumber {0} |
| Total number of decoded trailer data. | |
| std::atomic_uint | m_headErrorBCID {0} |
| Total number of BCID errors in the header data. | |
| std::atomic_uint | m_headErrorLvl1ID {0} |
| Total number of Lvl1ID errors in the header data. | |
| std::atomic_uint | m_headErrorTimeout {0} |
| Total number of timeout errors in the header data. | |
| std::atomic_uint | m_headErrorFormatter {0} |
| Total number of formatter errors in the header data. | |
| std::atomic_uint | m_headErrorPreamble {0} |
| Total number of preamble errors in the header data. | |
| std::atomic_uint | m_trailerErrorOverflow {0} |
| Total number of overflow errors in the trailer data. | |
| std::atomic_uint | m_trailerErrorLimit {0} |
| Total number of header trailer limit errors in the trailer data. | |
| std::atomic_uint | m_trailerErrorBit {0} |
| Total number of trailer bit errors. | |
| std::atomic_uint | m_configDataBit {0} |
| Total number of configuration data for raw data. | |
| std::atomic_uint | m_flagErrorBit {0} |
| Total number of flag error data. | |
| std::atomic_uint | m_condHit1Error {0} |
| Total number of first hit data errors. | |
| std::atomic_uint | m_condHit2Error {0} |
| Total number second hit data errors. | |
| std::atomic_uint | m_chipNumberError {0} |
| Total number of chip number errors. | |
| std::atomic_uint | m_unknownDataFormat {0} |
| Total number of unknown data formats. | |
| std::atomic_uint | m_nHits {0} |
| Total number of SCT hits in ByteStream. | |
| std::atomic_uint | m_nRDOs {0} |
| Total number of SCT RDOs created. | |
| std::atomic_uint | m_maskedLinkNumber {0} |
| Total number of masked links in the header data. | |
| std::atomic_uint | m_maskedRODNumber {0} |
| Total number of masked RDOs. | |
| std::atomic_uint | m_rodClockErrorNumber {0} |
| Total number of ROD clock errors. | |
| std::atomic_uint | m_truncatedRODNumber {0} |
| Total number of truncated ROBFragments. | |
| std::atomic_uint | m_numMissingLinkHeader {0} |
| Total number of missing link headers. | |
| std::vector< bool > | m_swapPhiReadoutDirection {} |
| Swap phi readout direction. | |
Athena Algorithm Tool to decode the SCT binary format to create RDOs and inserts them to the collection.
This tool is used by the SCTRawCollByteStreamTool.
Definition at line 76 of file SCT_RodDecoder.h.
|
private |
Define frequently used magic numbers.
| Enumerator | |
|---|---|
| N_SIDES | |
| N_CHIPS_PER_SIDE | |
| N_STRIPS_PER_CHIP | |
| N_STRIPS_PER_SIDE | |
Definition at line 122 of file SCT_RodDecoder.h.
| SCT_RodDecoder::SCT_RodDecoder | ( | const std::string & | type, |
| const std::string & | name, | ||
| const IInterface * | parent ) |
Constructor.
Definition at line 20 of file SCT_RodDecoder.cxx.
|
virtualdefault |
Destructor.
|
private |
Add an error for each wafer in the problematic ROD.
| rodID | Identifer of ROD. |
| errorType | Error type info. |
| errs | Byte stream error container. |
| foundHashes | FE-links whose headers are found. Used only for MissingLinkHeaderError. |
Definition at line 430 of file SCT_RodDecoder.cxx.
|
private |
Add single eror.
| hashID | Identifier for hash. |
| bsErrorType | Byte Stream error type info. |
| errs | Byte stream error container. |
error in a module using RX redundancy - add an error for the other link as well!! However, ABCDError_Chip0-ABCDError_Chip5 and TempMaskedChip0-TempMaskedChip5 are not common for two links.
Definition at line 462 of file SCT_RodDecoder.cxx.
|
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.
| robFrag | ROB fragment. |
| rdoIDCont | RDO ID Container to be filled. |
| errs | Byte stream error container. |
| vecHash | Vector of hashes. |
Unknown
Definition at line 167 of file SCT_RodDecoder.cxx.
|
overridevirtual |
Finalize.
Definition at line 62 of file SCT_RodDecoder.cxx.
|
overridevirtual |
Initialize.
Definition at line 28 of file SCT_RodDecoder.cxx.
|
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.
| isOld | if true use data.oldStrip, otherwise use data.strip. |
| data | Struct to hold data shared in methods used in fillCollection method |
| cache | Cache. |
Definition at line 360 of file SCT_RodDecoder.cxx.
|
private |
Process ABCD error.
| inData | input 16 bit data word for header |
| robID | ROB ID |
| data | Struct to hold data shared in methods used in fillCollection method |
| errs | SCT_RodDecoderErrorsHelper to fill IDCInDetBSErrContainer |
| hasError | false means no error, true means at least one error |
Definition at line 1111 of file SCT_RodDecoder.cxx.
|
private |
Process hit word in Condensed mode.
| inData | input 16 bit data word for header |
| robID | ROB ID |
| data | Struct to hold data shared in methods used in fillCollection method |
| rdoIDCont | RDO ID Container to be filled. |
| cache | Cache. |
| errs | SCT_RodDecoderErrorsHelper to fill IDCInDetBSErrContainer |
| hasError | false means no error, true means at least one error |
Definition at line 865 of file SCT_RodDecoder.cxx.
|
private |
Process hit word in Expanded mode.
| inData | input 16 bit data word for header |
| robID | ROB ID |
| data | Struct to hold data shared in methods used in fillCollection method |
| rdoIDCont | RDO ID Container to be filled. |
| cache | Cache. |
| errs | SCT_RodDecoderErrorsHelper to fill IDCInDetBSErrContainer |
| hasError | false means no error, true means at least one error |
Definition at line 999 of file SCT_RodDecoder.cxx.
|
private |
Process header word.
| inData | input 16 bit data word for header |
| robID | ROB ID |
| data | Struct to hold data shared in methods used in fillCollection method |
| rdoIDCont | RDO ID Container to be filled. |
| cache | Cache. |
| errs | SCT_RodDecoderErrorsHelper to fill IDCInDetBSErrContainer |
| hasError | false means no error, true means at least one error |
| breakNow | to tell if need to break after this method execution. |
Definition at line 657 of file SCT_RodDecoder.cxx.
|
private |
Process raw data word.
| inData | input 16 bit data word for header |
| robID | ROB ID |
| data | Struct to hold data shared in methods used in fillCollection method |
| errs | SCT_RodDecoderErrorsHelper to fill IDCInDetBSErrContainer |
| hasError | false means no error, true means at least one error |
Definition at line 1177 of file SCT_RodDecoder.cxx.
|
private |
Process hit word in Super-Condensed mode.
| inData | input 16 bit data word for header |
| robID | ROB ID |
| data | Struct to hold data shared in methods used in fillCollection method |
| rdoIDCont | RDO ID Container to be filled. |
| cache | Cache. |
| errs | SCT_RodDecoderErrorsHelper to fill IDCInDetBSErrContainer |
| hasError | false means no error, true means at least one error |
Definition at line 769 of file SCT_RodDecoder.cxx.
|
private |
Process trailer word.
| inData | input 16 bit data word for header |
| robID | ROB ID |
| data | Struct to hold data shared in methods used in fillCollection method |
| errs | SCT_RodDecoderErrorsHelper to fill IDCInDetBSErrContainer |
| hasError | false means no error, true means at least one error |
Definition at line 1202 of file SCT_RodDecoder.cxx.
|
private |
Set first temporarily masked chip information from byte stream trailer.
| hashID | Identifier for hash. |
| firstTempMaskedChip | Firt temporarily masked chip info. |
| errs | Byte stream error container. |
Definition at line 493 of file SCT_RodDecoder.cxx.
|
private |
Providing mappings of online and offline identifiers and also serial numbers.
Definition at line 428 of file SCT_RodDecoder.h.
|
mutableprivate |
|
mutableprivate |
|
mutableprivate |
|
mutableprivate |
Total number of configuration data for raw data.
Definition at line 485 of file SCT_RodDecoder.h.
|
private |
Service that keeps track of configuration conditions.
Definition at line 434 of file SCT_RodDecoder.h.
|
private |
"Context" of an expanded identifier (ExpandedIdentifier) for compact or hash versions (Identifier32 or IdentifierHash)
Definition at line 425 of file SCT_RodDecoder.h.
|
mutableprivate |
Total number of consecutive paired strips with hit decoded in expanded mode.
Definition at line 449 of file SCT_RodDecoder.h.
|
mutableprivate |
Total number of first strips with hit decoded in expanded mode.
Definition at line 446 of file SCT_RodDecoder.h.
|
mutableprivate |
|
mutableprivate |
Total number of BCID errors in the header data.
Definition at line 461 of file SCT_RodDecoder.h.
|
mutableprivate |
Total number of formatter errors in the header data.
Definition at line 470 of file SCT_RodDecoder.h.
|
mutableprivate |
Total number of Lvl1ID errors in the header data.
Definition at line 464 of file SCT_RodDecoder.h.
|
mutableprivate |
Total number of preamble errors in the header data.
Definition at line 473 of file SCT_RodDecoder.h.
|
mutableprivate |
Total number of timeout errors in the header data.
Definition at line 467 of file SCT_RodDecoder.h.
|
mutableprivate |
|
mutableprivate |
Total number of last consecutive strips with hit decoded in expanded mode.
Definition at line 452 of file SCT_RodDecoder.h.
|
mutableprivate |
Total number of masked links in the header data.
Definition at line 509 of file SCT_RodDecoder.h.
|
mutableprivate |
|
mutableprivate |
|
mutableprivate |
|
mutableprivate |
|
mutableprivate |
Total number of paired strips with hit decoded in condensed mode.
Definition at line 443 of file SCT_RodDecoder.h.
|
mutableprivate |
|
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 421 of file SCT_RodDecoder.h.
|
mutableprivate |
Total number of single strips with hit decoded in condensed mode.
Definition at line 440 of file SCT_RodDecoder.h.
|
private |
|
mutableprivate |
|
mutableprivate |
Total number of header trailer limit errors in the trailer data.
Definition at line 479 of file SCT_RodDecoder.h.
|
mutableprivate |
Total number of overflow errors in the trailer data.
Definition at line 476 of file SCT_RodDecoder.h.
|
mutableprivate |
|
mutableprivate |
|
mutableprivate |