diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/SCT_RawDataByteStreamCnv/ISCTRawDataProviderTool.h b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/SCT_RawDataByteStreamCnv/ISCTRawDataProviderTool.h index d6df64553ea0f005820fea92991eda3c6578b833..42cbe06792de5f1a18996d53abf6148ab14eba0d 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/SCT_RawDataByteStreamCnv/ISCTRawDataProviderTool.h +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/SCT_RawDataByteStreamCnv/ISCTRawDataProviderTool.h @@ -14,7 +14,7 @@ #define SCT_RAWDATABYTESTREAMCNV_ISCTRAWDATAPROVIDERTOOL_H #include "ByteStreamData/RawEvent.h" -#include "InDetByteStreamErrors/InDetBSErrContainer.h" +#include "InDetByteStreamErrors/IDCInDetBSErrContainer.h" #include "InDetRawData/SCT_RDO_Container.h" #include "GaudiKernel/IAlgTool.h" @@ -39,7 +39,7 @@ class ISCTRawDataProviderTool : virtual public IAlgTool /** Main decoding methods */ virtual StatusCode convert(std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*>&, ISCT_RDO_Container&, - InDetBSErrContainer* errs) const = 0; + IDCInDetBSErrContainer& errs) const = 0; }; diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/SCT_RawDataByteStreamCnv/ISCT_RodDecoder.h b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/SCT_RawDataByteStreamCnv/ISCT_RodDecoder.h index 7c2c89d73ec09893d1b52e54966152a732381115..442c07060ddaa7d2ade164447da08f38f13eea63 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/SCT_RawDataByteStreamCnv/ISCT_RodDecoder.h +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/SCT_RawDataByteStreamCnv/ISCT_RodDecoder.h @@ -16,7 +16,7 @@ #include "InDetRawData/SCT_RDO_Container.h" #include "ByteStreamData/RawEvent.h" -#include "InDetByteStreamErrors/InDetBSErrContainer.h" +#include "InDetByteStreamErrors/IDCInDetBSErrContainer.h" #include <vector> @@ -36,7 +36,7 @@ class ISCT_RodDecoder : virtual public IAlgTool /** Fill Collection method */ virtual StatusCode fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment&, ISCT_RDO_Container&, - InDetBSErrContainer* errs, + IDCInDetBSErrContainer& errs, const std::vector<IdentifierHash>* vecHash = nullptr) const = 0; }; diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.cxx b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.cxx index 071a7d6cd0d06bf800d388e6a22c1f5a95a969f6..6bded2e91d5c286defd6e340ee64e5a1146c16cb 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.cxx +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.cxx @@ -46,7 +46,6 @@ StatusCode SCTRawDataProvider::initialize() ATH_CHECK(m_rdoContainerKey.initialize()); ATH_CHECK(m_lvl1CollectionKey.initialize()); ATH_CHECK(m_bcIDCollectionKey.initialize()); - ATH_CHECK(m_bsErrContainerKey.initialize()); ATH_CHECK(m_bsIDCErrContainerKey.initialize()); ATH_CHECK(m_rdoContainerCacheKey.initialize(!m_rdoContainerCacheKey.key().empty())); ATH_CHECK(m_bsErrContainerCacheKey.initialize(!m_bsErrContainerCacheKey.key().empty())); @@ -83,12 +82,9 @@ StatusCode SCTRawDataProvider::execute(const EventContext& ctx) const SG::UpdateHandle<IDCInDetBSErrContainer_Cache> cacheHandle( m_bsErrContainerCacheKey, ctx ); ATH_CHECK( cacheHandle.isValid() ); ATH_CHECK(bsIDCErrContainer.record( std::make_unique<IDCInDetBSErrContainer>(cacheHandle.ptr())) ); + ATH_MSG_DEBUG("Created SCT IDCInDetBSErrContainer using external cache"); } - SG::WriteHandle<InDetBSErrContainer> bsErrContainer(m_bsErrContainerKey, ctx); - ATH_CHECK(bsErrContainer.record(std::make_unique<InDetBSErrContainer>())); - - // Ask ROBDataProviderSvc for the vector of ROBFragment for all SCT ROBIDs std::vector<const ROBFragment*> vecROBFrags; if (not m_roiSeeded.value()) { @@ -152,17 +148,10 @@ StatusCode SCTRawDataProvider::execute(const EventContext& ctx) const // Ask SCTRawDataProviderTool to decode it and to fill the IDC if (m_rawDataTool->convert(vecROBFrags, *rdoInterface, - bsErrContainer.ptr()).isFailure()) { + *bsIDCErrContainer).isFailure()) { ATH_MSG_WARNING("BS conversion into RDOs failed"); } if (dummyRDO) ATH_CHECK(dummyRDO->MergeToRealContainer(rdoContainer.ptr())); - - // copy decoding errorrs to the IDC container, TODO, move this code to converter - for ( const std::pair<IdentifierHash, int>* hashErrorPair : *bsErrContainer ) { - bsIDCErrContainer->setOrDrop( hashErrorPair->first , hashErrorPair->second); - } - - return StatusCode::SUCCESS; } diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.h b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.h index 651870df07243996436aa2a8e05c788d434f9432..737c7a71f74d5ff794cd83694c47a60e9978a0b7 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.h +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.h @@ -115,16 +115,11 @@ class SCTRawDataProvider : public AthReentrantAlgorithm "SCT_BCID", "SCT BCID key"}; - /** Write handle for Inner Detector ByteStream error container. */ - SG::WriteHandleKey<InDetBSErrContainer> m_bsErrContainerKey{this, - "ByteStreamErrContainer", - "SCT_ByteStreamErrs", - "SCT BS error key"}; - + /** Write handle for Inner Detector ByteStream error container. */ SG::WriteHandleKey<IDCInDetBSErrContainer> m_bsIDCErrContainerKey{this, - "IDCByteStreamErrContainer", - "SCT_ByteStreamErrs", - "SCT BS error key for IDC variant"}; + "IDCByteStreamErrContainer", + "SCT_ByteStreamErrs", + "SCT BS error key for IDC variant"}; /** Update handle for SCT RDO and Erorrs Cache. */ diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProviderTool.cxx b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProviderTool.cxx index 867d7e0f172ba7eb2673a11430eec0703b712f37..43228e7102ae6739bb1438b9b2841d5cebbefb84 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProviderTool.cxx +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProviderTool.cxx @@ -28,7 +28,7 @@ StatusCode SCTRawDataProviderTool::initialize() // Convert method StatusCode SCTRawDataProviderTool::convert(std::vector<const ROBFragment*>& vecROBFrags, ISCT_RDO_Container& rdoIDCont, - InDetBSErrContainer* errs) const + IDCInDetBSErrContainer& errs) const { if (vecROBFrags.empty()) return StatusCode::SUCCESS; ATH_MSG_DEBUG("SCTRawDataProviderTool::convert()"); diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProviderTool.h b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProviderTool.h index f605133876126dbca7ccdd4b8611cb432c0fcac7..d52f6ed9cb452a879e5acec6211f60c4283bf498 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProviderTool.h +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProviderTool.h @@ -51,7 +51,7 @@ class SCTRawDataProviderTool : public extends<AthAlgTool, ISCTRawDataProviderToo * */ virtual StatusCode convert(std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*>& vecROBFrags, ISCT_RDO_Container& rdoIDCont, - InDetBSErrContainer* errs) const override; + IDCInDetBSErrContainer& errs) const override; private: diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodDecoder.cxx b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodDecoder.cxx index 37769d4ce788dc913c17e2029b74e611472a2f43..a92e527f09b0145f14d16dafb18180e4f2f8a9fb 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodDecoder.cxx +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodDecoder.cxx @@ -173,14 +173,14 @@ StatusCode SCT_RodDecoder::finalize() StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment& robFrag, ISCT_RDO_Container& rdoIDCont, - InDetBSErrContainer* errs, + IDCInDetBSErrContainer& errs, const std::vector<IdentifierHash>* vecHash) const { const uint32_t robID{robFrag.rod_source_id()}; // Determine whether this data was generated using the ROD simulator const uint32_t rodDataType{robFrag.rod_detev_type()}; const bool rodSimulatedData{static_cast<bool>((rodDataType >> 20) & 1)}; - if (rodSimulatedData) addRODError(robID, SCT_ByteStreamErrors::RODSimulatedData, errs); + if (rodSimulatedData) ATH_CHECK(addRODError(robID, SCT_ByteStreamErrors::RODSimulatedData, errs)); // Look for the bit that denotes "Super-condensed" mode const bool superCondensedMode{static_cast<bool>((rodDataType >> 21) & 1)}; @@ -224,20 +224,20 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB ATH_MSG_DEBUG("ROB status word for robID " << std::hex << robID << " is non-zero " << (*robStatus) << std::dec); // First store generic "ROBFragmentError" error type. - addRODError(robID, SCT_ByteStreamErrors::ROBFragmentError, errs); + ATH_CHECK(addRODError(robID, SCT_ByteStreamErrors::ROBFragmentError, errs)); sc = StatusCode::RECOVERABLE; // Now look for specific problems, e.g. truncated or masked-off RODs if (((*robStatus) >> 27) & 0x1) { ATH_MSG_DEBUG("ROB status word for robID " << std::hex << robID << std::dec << " indicates data truncation."); - addRODError(robID, SCT_ByteStreamErrors::TruncatedROD, errs); + ATH_CHECK(addRODError(robID, SCT_ByteStreamErrors::TruncatedROD, errs)); m_truncatedRODNumber++; return sc; } if ((((*robStatus) >> 29) & 0x1) or (((*robStatus) >> 31) & 0x1)) { ATH_MSG_DEBUG("ROB status word for robID " << std::hex << robID << std::dec << " indicates resource was masked off."); - addRODError(robID, SCT_ByteStreamErrors::MaskedROD, errs); + ATH_CHECK(addRODError(robID, SCT_ByteStreamErrors::MaskedROD, errs)); m_maskedRODNumber++; return sc; } @@ -257,7 +257,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB const int bocClockError{static_cast<int>((statusWord >> 17) & 0x1)}; if (timClockError or bocClockError) { ATH_MSG_DEBUG(" Clock error in ROD status word: " << timClockError << " " << bocClockError); - addRODError(robID, SCT_ByteStreamErrors::RODClockError, errs); + ATH_CHECK(addRODError(robID, SCT_ByteStreamErrors::RODClockError, errs)); m_rodClockErrorNumber++; sc=StatusCode::RECOVERABLE; } @@ -287,7 +287,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB if (data16[n]&0x8000) { if (not foundHeader) { ATH_MSG_INFO(" Missing link header in ROD " << std::hex << robID << std::dec); - addRODError(robID, SCT_ByteStreamErrors::MissingLinkHeaderError, errs); + ATH_CHECK(addRODError(robID, SCT_ByteStreamErrors::MissingLinkHeaderError, errs)); m_numMissingLinkHeader++; sc = StatusCode::RECOVERABLE; continue; @@ -309,7 +309,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB ATH_MSG_DEBUG(" Hit super-condensed : xxx Chip number = " << chip << " > 5 " << " for hit " << std::hex << data16[n]); m_chipNumberError++; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK( addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs) ); sc=StatusCode::RECOVERABLE; continue; } @@ -321,7 +321,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB const int rdoMade{makeRDO(oldStrip, groupSize, timeBin, onlineID, errors, rdoIDCont, cache, errorHit)}; if (rdoMade == -1) { sc=StatusCode::RECOVERABLE; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs)); } else { saved[oldSide*768+oldStrip] = rdoMade; @@ -338,7 +338,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB const int rdoMade{makeRDO(oldStrip, groupSize, timeBin, onlineID, errors, rdoIDCont, cache, errorHit)}; if (rdoMade == -1) { sc=StatusCode::RECOVERABLE; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs)); } else { saved[oldSide*768+oldStrip] = rdoMade; @@ -361,7 +361,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB const int rdoMade{makeRDO(oldStrip, groupSize, timeBin, onlineID, errors, rdoIDCont, cache, errorHit)}; if (rdoMade == -1) { sc=StatusCode::RECOVERABLE; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs)); } else { saved[oldSide*768+oldStrip] = rdoMade; @@ -387,7 +387,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB ATH_MSG_DEBUG(" Hit condensed : xxx Chip number = " << chip << " > 5 " << " for hit " << std::hex << data16[n]); m_chipNumberError++; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs)); sc=StatusCode::RECOVERABLE; continue; } @@ -399,7 +399,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB const int rdoMade{makeRDO(oldStrip, groupSize, timeBin, onlineID, errors, rdoIDCont, cache, errorHit)}; if (rdoMade == -1) { sc=StatusCode::RECOVERABLE; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs)); } else { saved[oldSide*768+oldStrip] = rdoMade; @@ -416,7 +416,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB const int rdoMade{makeRDO(oldStrip, groupSize, timeBin, onlineID, errors, rdoIDCont, cache, errorHit)}; if (rdoMade == -1) { sc=StatusCode::RECOVERABLE; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs)); } else { saved[oldSide*768+oldStrip] = rdoMade; @@ -439,7 +439,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB const int rdoMade{makeRDO(oldStrip, groupSize, timeBin, onlineID, errors, rdoIDCont, cache, errorHit)}; if (rdoMade == -1) { sc=StatusCode::RECOVERABLE; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs)); } else { saved[oldSide*768+oldStrip] = rdoMade; @@ -460,7 +460,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB } else { // 2-hits if (strip > 767) { - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs)); sc=StatusCode::RECOVERABLE; ATH_MSG_DEBUG("Condensed mode - strip number out of range"); @@ -473,7 +473,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB const int rdoMade{makeRDO(oldStrip, groupSize, timeBin, onlineID, errors, rdoIDCont, cache, errorHit)}; if (rdoMade == -1) { sc=StatusCode::RECOVERABLE; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs)); } else { saved[oldSide*768+oldStrip] = rdoMade; @@ -515,7 +515,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB if (chip>5) { ATH_MSG_DEBUG("Expanded hit: First hit xxx ERROR chip Nb = " << chip << " > 5"); m_chipNumberError++; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs)); continue; } @@ -532,7 +532,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB const int rdoMade{makeRDO(strip, groupSize, timeBin, onlineID, errors, rdoIDCont, cache, errorHit)}; if (rdoMade == -1) { sc=StatusCode::RECOVERABLE; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs)); } else { saved[side*768+strip] = rdoMade; @@ -542,7 +542,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB else { // Next hits cluster expanded if (data16[n]&0x80) { // Paired hits if (strip > 767) { - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs)); sc=StatusCode::RECOVERABLE; ATH_MSG_DEBUG("Expanded mode - strip number out of range"); continue; @@ -551,7 +551,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB if (chip>5) { ATH_MSG_DEBUG("Expanded Hit: paired hits xxx ERROR chip Nb = " << chip << " > 5"); m_chipNumberError++; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs)); continue; } // First hit from the pair @@ -561,7 +561,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB const int rdoMade1{makeRDO(strip, groupSize, timeBin, onlineID, errors, rdoIDCont, cache, errorHit)}; if (rdoMade1 == -1) { sc=StatusCode::RECOVERABLE; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs)); } else { saved[side*768+strip] = rdoMade1; @@ -572,7 +572,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB const int rdoMade2{makeRDO(strip, groupSize, timeBin, onlineID, errors, rdoIDCont, cache, errorHit)}; if (rdoMade2 == -1) { sc=StatusCode::RECOVERABLE; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs)); } else { saved[side*768+strip] = rdoMade2; @@ -584,7 +584,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB if (chip>5) { ATH_MSG_DEBUG("Expanded Hit: last hit xxx ERROR chip Nb = " << chip << " > 5"); m_chipNumberError++; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs)); continue; } strip++; @@ -593,7 +593,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB const int rdoMade{makeRDO(strip, groupSize, timeBin, onlineID, errors, rdoIDCont, cache, errorHit)}; if (rdoMade == -1) { sc=StatusCode::RECOVERABLE; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs)); } else { saved[side*768+strip] = rdoMade; @@ -614,7 +614,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB const int rdoMade{makeRDO(strip, groupSize, timeBin, onlineID, errors, rdoIDCont, cache, errorHit)}; if (rdoMade == -1) { sc=StatusCode::RECOVERABLE; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs)); } else { saved[side*768+strip] = rdoMade; @@ -637,7 +637,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB linkNumber = (((rodlinkNumber >>4)&0x7)*12+(rodlinkNumber &0xF)); onlineID = ((robID & 0xFFFFFF)|(linkNumber << 24)); if ((onlineID ==0) or (linkNumber > 95)) { - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs)); sc=StatusCode::RECOVERABLE; ATH_MSG_DEBUG("Header: xxx Link number out of range (skipping following data)" << std::dec << linkNumber); @@ -649,41 +649,41 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB // Look for masked off links - bit 7 if (data16[n] >> 7 & 0x1) { ATH_MSG_DEBUG("Masked link " << onlineID << " " << currentLinkIDHash); - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::MaskedLink, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::MaskedLink, errs)); sc=StatusCode::RECOVERABLE; } if (data16[n]&0x800) { ATH_MSG_DEBUG(" Header: xxx TimeOut Error " << currentLinkIDHash); m_headErrorTimeout++; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::TimeOutError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::TimeOutError, errs)); sc=StatusCode::RECOVERABLE; } if (data16[n]&0x1000) { ATH_MSG_DEBUG(" Header: xxx Preamble Error " << currentLinkIDHash); m_headErrorPreamble++; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::PreambleError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::PreambleError, errs)); sc=StatusCode::RECOVERABLE; } if (data16[n]&0x400) { ATH_MSG_DEBUG(" Header: xxx LVL1 ID Error " << currentLinkIDHash); m_headErrorLvl1ID++; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::LVL1IDError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::LVL1IDError, errs)); sc=StatusCode::RECOVERABLE; } if (data16[n]&0x200) { ATH_MSG_DEBUG(" Header: xxx BCID Error " << currentLinkIDHash); m_headErrorBCID++; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::BCIDError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::BCIDError, errs)); sc=StatusCode::RECOVERABLE; } if ((data16[n]&0xF) > 11) { ATH_MSG_DEBUG(" Header: xxx Error in formatter " << currentLinkIDHash); m_headErrorFormatter++; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::FormatterError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::FormatterError, errs)); sc=StatusCode::RECOVERABLE; } @@ -702,7 +702,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB if (data16[n]&0x1000) { ATH_MSG_DEBUG(" Trailer: xxx Trailer ERROR " << std::hex << data16[n]); m_trailerErrorBit++; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::TrailerError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::TrailerError, errs)); sc=StatusCode::RECOVERABLE; } @@ -712,7 +712,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB // http://www-eng.lbl.gov/~jmjoseph/Atlas-SiROD/Manuals/usersManual-v164.pdf ATH_MSG_DEBUG(" Trailer: xxx Header-Trailer limit ERROR " << std::hex << data16[n]); m_trailerErrorLimit++; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::HeaderTrailerLimitError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::HeaderTrailerLimitError, errs)); sc=StatusCode::RECOVERABLE; } @@ -720,7 +720,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB // Not sure if there are hit elements before (probably yes but in principle they are fine) ATH_MSG_DEBUG(" Trailer: xxx Data Overflow ERROR " << std::hex << data16[n]); m_trailerErrorOverflow++; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::TrailerOverflowError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::TrailerOverflowError, errs)); sc=StatusCode::RECOVERABLE; } if (data16[n] & 0xF) { @@ -758,7 +758,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB // No data should appear for that chip but how do we want to transmit this information? IdentifierHash flagIDHash{0}; if (onlineID == 0) { - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs)); continue; } else { @@ -772,7 +772,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB ATH_MSG_DEBUG("ABCD error has an invalid error code " << abcError << " the 16-bit word is 0x" << std::hex << data16[n] << std::dec << " for hash " << flagIDHash); - addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Invalid, errs); + ATH_CHECK(addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Invalid, errs)); } else { // Chip is 4 bits. The highest bit 3 represents side. Chip 0-5 on side 0 and chip 8-13 on side 1. @@ -790,22 +790,22 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB ATH_MSG_DEBUG("ABCD error has an invalid chip 0x" << std::hex << chip << std::dec << " the 16-bit word is 0x" << std::hex << data16[n] << std::dec << " for hash " << flagIDHash.value()); - addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Invalid, errs); + ATH_CHECK(addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Invalid, errs)); } else { - if ( abcError==0x1) addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Error1, errs); - else if (abcError==0x2) addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Error2, errs); - else if (abcError==0x4) addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Error4, errs); - else if (abcError==0x7) addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Error7, errs); - if ( chip%8==0) addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Chip0, errs); - else if (chip%8==1) addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Chip1, errs); - else if (chip%8==2) addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Chip2, errs); - else if (chip%8==3) addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Chip3, errs); - else if (chip%8==4) addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Chip4, errs); - else if (chip%8==5) addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Chip5, errs); + if ( abcError==0x1) ATH_CHECK(addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Error1, errs)); + else if (abcError==0x2) ATH_CHECK(addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Error2, errs)); + else if (abcError==0x4) ATH_CHECK(addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Error4, errs)); + else if (abcError==0x7) ATH_CHECK(addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Error7, errs)); + if ( chip%8==0) ATH_CHECK(addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Chip0, errs)); + else if (chip%8==1) ATH_CHECK(addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Chip1, errs)); + else if (chip%8==2) ATH_CHECK(addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Chip2, errs)); + else if (chip%8==3) ATH_CHECK(addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Chip3, errs)); + else if (chip%8==4) ATH_CHECK(addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Chip4, errs)); + else if (chip%8==5) ATH_CHECK(addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError_Chip5, errs)); } } - addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError, errs); + ATH_CHECK(addSingleError(flagIDHash, SCT_ByteStreamErrors::ABCDError, errs)); sc=StatusCode::RECOVERABLE; continue; } @@ -813,7 +813,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB // Raw Data IdentifierHash rawIDHash{0}; if (onlineID == 0) { - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs)); continue; } else { @@ -823,14 +823,14 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB ATH_MSG_DEBUG(" xxx Raw Data Mode " << std::hex << data16[n] << std::dec << ": Config Data Mode "); // Too many errors in the BS for the ROD to decode the data m_configDataBit++; - addSingleError(rawIDHash, SCT_ByteStreamErrors::RawError, errs); + ATH_CHECK(addSingleError(rawIDHash, SCT_ByteStreamErrors::RawError, errs)); sc=StatusCode::RECOVERABLE; continue; } else { ATH_MSG_DEBUG("Data word format unknown "); m_unknownDataFormat++; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs)); sc=StatusCode::RECOVERABLE; } } // End of 16-bit word loop @@ -841,7 +841,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB const int rdoMade{makeRDO(strip, groupSize, timeBin, onlineID, errors, rdoIDCont, cache, errorHit)}; if (rdoMade == -1) { sc=StatusCode::RECOVERABLE; - addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs); + ATH_CHECK(addSingleError(currentLinkIDHash, SCT_ByteStreamErrors::ByteStreamParseError, errs)); } else { saved[side*768+strip] = rdoMade; @@ -949,44 +949,45 @@ int SCT_RodDecoder::makeRDO(int strip, int groupSize, int timeBin, uint32_t onli // addRODError method -void SCT_RodDecoder::addRODError(uint32_t rodID, int errorType, - InDetBSErrContainer* errs) const +StatusCode SCT_RodDecoder::addRODError(uint32_t rodID, int errorType, + IDCInDetBSErrContainer& errs) const { std::vector<IdentifierHash> hashIDs; m_cabling->getHashesForRod(hashIDs, rodID); for (const IdentifierHash& hash: hashIDs) { - addSingleError(hash, errorType, errs); + ATH_CHECK( addSingleError(hash, errorType, errs) ); } - return; + return StatusCode::SUCCESS; } // addSingleError method -bool SCT_RodDecoder::addSingleError(const IdentifierHash& hashID, - int bsErrorType, - InDetBSErrContainer* errs) const +StatusCode SCT_RodDecoder::addSingleError(const IdentifierHash& hashID, + int bsErrorType, + IDCInDetBSErrContainer& errs) const { - const bool ok{hashID.is_valid() and errs!=nullptr}; - if (ok) { - errs->push_back(std::make_unique<std::pair<IdentifierHash, int> >(hashID, bsErrorType)); + if ( not hashID.is_valid() ) { + ATH_MSG_INFO("addSingleError hashID " << hashID << " is invalid."); + return StatusCode::RECOVERABLE; } - return ok; + errs.setOrDrop(hashID, bsErrorType); + return StatusCode::SUCCESS; } // setFirstTempMaskedChip method -void SCT_RodDecoder::setFirstTempMaskedChip(const IdentifierHash& hashID, - unsigned int firstTempMaskedChip, - InDetBSErrContainer* errs) const +StatusCode SCT_RodDecoder::setFirstTempMaskedChip(const IdentifierHash& hashID, + unsigned int firstTempMaskedChip, + IDCInDetBSErrContainer& errs) const { if (not hashID.is_valid()) { ATH_MSG_INFO("setFirstTempMaskedChip hashID " << hashID << " is invalid."); - return; + return StatusCode::RECOVERABLE; } if (firstTempMaskedChip==0) { ATH_MSG_WARNING("setFirstTempMaskedChip: firstTempMaskedChip should be greater than 0. firstTempMaskedChip is " << firstTempMaskedChip); - return; + return StatusCode::RECOVERABLE; } // wafer hash -> wafer id -> module id -> wafer hash on side-0, wafer hash on side-1 @@ -1021,12 +1022,12 @@ void SCT_RodDecoder::setFirstTempMaskedChip(const IdentifierHash& hashID, else if (badLinks.first and badLinks.second) { // Both link-0 and link-1 are working ATH_MSG_WARNING("setFirstTempMaskedChip: Both link-0 and link-1 are working. But Rx redundancy is used... Why?"); - return; + return StatusCode::RECOVERABLE; } else { // Both link-0 and link-1 are broken ATH_MSG_WARNING("setFirstTempMaskedChip: Both link-0 and link-1 are broken. But data are coming... Why?"); - return; + return StatusCode::RECOVERABLE; } } @@ -1101,12 +1102,12 @@ void SCT_RodDecoder::setFirstTempMaskedChip(const IdentifierHash& hashID, if (firstTempMaskedChipSide0>0) { for (unsigned int iChip{firstTempMaskedChipSide0-1}; iChip<6; iChip++) { - addSingleError(hashSide0, SCT_ByteStreamErrors::TempMaskedChip0+iChip, errs); + ATH_CHECK( addSingleError(hashSide0, SCT_ByteStreamErrors::TempMaskedChip0+iChip, errs) ); } } if (firstTempMaskedChipSide1>6) { for (unsigned int iChip{firstTempMaskedChipSide1-1}; iChip<12; iChip++) { - addSingleError(hashSide1, SCT_ByteStreamErrors::TempMaskedChip0+iChip-6, errs); + ATH_CHECK( addSingleError(hashSide1, SCT_ByteStreamErrors::TempMaskedChip0+iChip-6, errs) ); } } } @@ -1117,8 +1118,8 @@ void SCT_RodDecoder::setFirstTempMaskedChip(const IdentifierHash& hashID, int jChip{chipOrder[type][iChip]}; if (jChip==static_cast<int>(firstTempMaskedChip-1)) toBeMasked = true; if (toBeMasked) { - if (jChip<6) addSingleError(hashSide0, SCT_ByteStreamErrors::TempMaskedChip0+jChip, errs); - else addSingleError(hashSide1, SCT_ByteStreamErrors::TempMaskedChip0+jChip-6, errs); + if (jChip<6) ATH_CHECK( addSingleError(hashSide0, SCT_ByteStreamErrors::TempMaskedChip0+jChip, errs)); + else ATH_CHECK( addSingleError(hashSide1, SCT_ByteStreamErrors::TempMaskedChip0+jChip-6, errs)); } } } @@ -1132,4 +1133,5 @@ void SCT_RodDecoder::setFirstTempMaskedChip(const IdentifierHash& hashID, << " phi_module " << m_sctID->phi_module(waferID) << " side " << m_sctID->side(waferID) << " firstTempMaskedChip " << firstTempMaskedChip); + return StatusCode::SUCCESS; } diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodDecoder.h b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodDecoder.h index b22019023ec52beaa243dda7e66689572d28d03c..4d6dcd95bc94c9e598d0fb98842661e6ef225f52 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodDecoder.h +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodDecoder.h @@ -10,7 +10,7 @@ #include "SCT_RawDataByteStreamCnv/ISCT_RodDecoder.h" #include "AthenaBaseComps/AthAlgTool.h" -#include "InDetByteStreamErrors/InDetBSErrContainer.h" +#include "InDetByteStreamErrors/IDCInDetBSErrContainer.h" #include "SCT_ConditionsData/SCT_ByteStreamErrors.h" #include "SCT_Cabling/ISCT_CablingTool.h" #include "SCT_ConditionsTools/ISCT_ConfigurationConditionsTool.h" @@ -68,7 +68,7 @@ class SCT_RodDecoder : public extends<AthAlgTool, ISCT_RodDecoder> */ virtual StatusCode fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment& robFrag, ISCT_RDO_Container& rdoIDCont, - InDetBSErrContainer* errs, + IDCInDetBSErrContainer& errs, const std::vector<IdentifierHash>* vecHash = nullptr) const override; private: @@ -105,8 +105,8 @@ class SCT_RodDecoder : public extends<AthAlgTool, ISCT_RodDecoder> * @param errorType Error type info. * @param errs Byte stream error container. */ - void addRODError(uint32_t rodID, int errorType, - InDetBSErrContainer* errs) const; + StatusCode addRODError(uint32_t rodID, int errorType, + IDCInDetBSErrContainer& errs) const; /** * @brief Add single eror * @@ -114,9 +114,9 @@ class SCT_RodDecoder : public extends<AthAlgTool, ISCT_RodDecoder> * @param bsErrorType Byte Stream error type info. * @param errs Byte stream error container. */ - bool addSingleError(const IdentifierHash& hashID, - int bsErrorType, - InDetBSErrContainer* errs) const; + StatusCode addSingleError(const IdentifierHash& hashID, + int bsErrorType, + IDCInDetBSErrContainer& errs) const; /** * @brief Set first temporarily masked chip information from byte stream trailer @@ -125,9 +125,9 @@ class SCT_RodDecoder : public extends<AthAlgTool, ISCT_RodDecoder> * @param firstTempMaskedChip Firt temporarily masked chip info. * @param errs Byte stream error container. */ - void setFirstTempMaskedChip(const IdentifierHash& hashID, - unsigned int firstTempMaskedChip, - InDetBSErrContainer* errs) const; + StatusCode setFirstTempMaskedChip(const IdentifierHash& hashID, + unsigned int firstTempMaskedChip, + IDCInDetBSErrContainer& errs) const; /** Identifier helper class for the SCT subdetector that creates compact Identifier objects and IdentifierHash or hash IDs. Also allows decoding of these IDs. */ diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/InDetTrigRawDataProvider/TrigSCTRawDataProvider.h b/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/InDetTrigRawDataProvider/TrigSCTRawDataProvider.h index 7c13ed5d1239964365a8228e35e40e450da15517..6b9091979554117c971a67a0e68881ab6e55c466 100644 --- a/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/InDetTrigRawDataProvider/TrigSCTRawDataProvider.h +++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/InDetTrigRawDataProvider/TrigSCTRawDataProvider.h @@ -69,7 +69,7 @@ namespace InDet { const SCT_ID* m_id; //! the RDO container SCT_RDO_Container* m_container; - InDetBSErrContainer* m_bsErrCont; + IDCInDetBSErrContainer* m_bsErrCont; std::string m_RDO_Key; std::string m_bsErrCont_Key; diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/src/TrigSCTRawDataProvider.cxx b/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/src/TrigSCTRawDataProvider.cxx index 451d844bb7af361c8414a60829fb0f6e9ce7efac..f700a0d7d786c2588a790b92a3d5f104e706e84b 100644 --- a/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/src/TrigSCTRawDataProvider.cxx +++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/src/TrigSCTRawDataProvider.cxx @@ -128,8 +128,8 @@ namespace InDet { } m_bsErrCont = nullptr; - if (!evtStore()->transientContains<InDetBSErrContainer>(m_bsErrCont_Key)) { - m_bsErrCont = new InDetBSErrContainer(); + if (!evtStore()->transientContains<IDCInDetBSErrContainer>(m_bsErrCont_Key)) { + m_bsErrCont = new IDCInDetBSErrContainer(m_id->wafer_hash_max(), std::numeric_limits<int>::min()); if (evtStore()->record(m_bsErrCont, m_bsErrCont_Key, true, true).isFailure()) { ATH_MSG_FATAL("Unable to record " << m_bsErrCont_Key); return StatusCode::FAILURE; @@ -181,7 +181,7 @@ namespace InDet { // ask SCTRawDataProviderTool to decode it and to fill the IDC StatusCode scon = StatusCode::FAILURE; if (m_container){ - scon = m_rawDataTool->convert(listOfRobf,*m_container,m_bsErrCont); + scon = m_rawDataTool->convert(listOfRobf,*m_container,*m_bsErrCont); if (scon==StatusCode::FAILURE) msg(MSG::ERROR) << "BS conversion into RDOs failed" << endmsg; } diff --git a/Trigger/TrigTools/TrigOnlineSpacePointTool/src/SCT_ClusterCacheTool.cxx b/Trigger/TrigTools/TrigOnlineSpacePointTool/src/SCT_ClusterCacheTool.cxx index a4e15504abe1cb5a9ec15cf79d7367b5c8c1e200..515b7779bbcbd2c8e60b5de16483f100a3d24b9c 100644 --- a/Trigger/TrigTools/TrigOnlineSpacePointTool/src/SCT_ClusterCacheTool.cxx +++ b/Trigger/TrigTools/TrigOnlineSpacePointTool/src/SCT_ClusterCacheTool.cxx @@ -221,10 +221,10 @@ StatusCode SCT_ClusterCacheTool::convertBStoClusters(std::vector<const ROBF*>& r << " is found in StoreGate"); } - InDetBSErrContainer* bsErrCont{nullptr}; + IDCInDetBSErrContainer* bsErrCont{nullptr}; if (m_useOfflineDecoder) { if (!evtStore()->transientContains<InDetBSErrContainer>(m_bsErrContainerName)) { - bsErrCont = new InDetBSErrContainer(); + bsErrCont = new IDCInDetBSErrContainer(m_sct_id->wafer_hash_max(), std::numeric_limits<int>::min()); if (evtStore()->record(bsErrCont, m_bsErrContainerName, true, true).isFailure()) { ATH_MSG_FATAL("Unable to record " << m_bsErrContainerName); return StatusCode::FAILURE; @@ -341,10 +341,10 @@ StatusCode SCT_ClusterCacheTool::convertBStoClusters(std::vector<const ROBF*>& r StatusCode scRod = StatusCode::SUCCESS; if(!isFullScan) { - scRod=m_offlineDecoder->fillCollection(*robFrag,*m_rdoContainer,bsErrCont,&reducedList); + scRod=m_offlineDecoder->fillCollection(*robFrag,*m_rdoContainer,*bsErrCont,&reducedList); } else { - scRod=m_offlineDecoder->fillCollection(*robFrag,*m_rdoContainer,bsErrCont,NULL); + scRod=m_offlineDecoder->fillCollection(*robFrag,*m_rdoContainer,*bsErrCont,NULL); } if(scRod.isRecoverable()) { diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Electron/PrecisionElectronRecoSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Electron/PrecisionElectronRecoSequences.py index d6363a6b1d2c81b398cd82ddcad4b88d613324b2..b4f16674155848dd0a5b66c309e6f9d5bac0b99b 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Electron/PrecisionElectronRecoSequences.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Electron/PrecisionElectronRecoSequences.py @@ -41,8 +41,7 @@ def precisionElectronRecoSequence(RoIs): ('SCT_FlaggedCondData','StoreGateSvc+SCT_FlaggedCondData_TRIG')] if globalflags.InputFormat.is_bytestream(): - ViewVerifyTrk.DataObjects += [( 'InDetBSErrContainer' , 'StoreGateSvc+SCT_ByteStreamErrs' ) , - ( 'InDetBSErrContainer' , 'StoreGateSvc+PixelByteStreamErrs' ), + ViewVerifyTrk.DataObjects += [( 'InDetBSErrContainer' , 'StoreGateSvc+PixelByteStreamErrs' ), ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+SCT_ByteStreamErrs' ) ] # AlgSequence.SGInputLoader.Load.append([ ('InDetBSErrContainer','StoreGateSvc+PixelByteStreamErrs') ]) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py index 290626a42f0b9cd61afe0ea0b25c3eb3e7239dee..8d07776441d9c6a51975031002584a770690d80b 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py @@ -507,8 +507,7 @@ def muEFCBRecoSequence( RoIs, name ): ( 'xAOD::IParticleContainer' , 'StoreGateSvc+'+TrackParticlesName )] if globalflags.InputFormat.is_bytestream(): - ViewVerifyTrk.DataObjects += [( 'InDetBSErrContainer' , 'StoreGateSvc+SCT_ByteStreamErrs' ) , - ( 'InDetBSErrContainer' , 'StoreGateSvc+PixelByteStreamErrs' ), + ViewVerifyTrk.DataObjects += [( 'InDetBSErrContainer' , 'StoreGateSvc+PixelByteStreamErrs' ), ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+SCT_ByteStreamErrs' ) ] muEFCBRecoSequence += ViewVerifyTrk