diff --git a/InnerDetector/InDetConditions/InDetByteStreamErrorsAthenaPool/src/IDCInDetBSErrContainerCnv_p1.cxx b/InnerDetector/InDetConditions/InDetByteStreamErrorsAthenaPool/src/IDCInDetBSErrContainerCnv_p1.cxx index 77b8764023db120e80d06c66396157f5afa9f31e..95e022574e58cf5642351f19c4c86658452c3856 100644 --- a/InnerDetector/InDetConditions/InDetByteStreamErrorsAthenaPool/src/IDCInDetBSErrContainerCnv_p1.cxx +++ b/InnerDetector/InDetConditions/InDetByteStreamErrorsAthenaPool/src/IDCInDetBSErrContainerCnv_p1.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "IDCInDetBSErrContainerCnv_p1.h" @@ -23,9 +23,12 @@ void IDCInDetBSErrContainerCnv_p1::persToTrans(const InDetBSErrContainer64_p1* //================================================================ IDCInDetBSErrContainer* IDCInDetBSErrContainerCnv_p1::createTransient(const InDetBSErrContainer64_p1* persObj, MsgStream& log) { - auto maxhash = std::max_element(persObj->m_bsErrs.begin(), persObj->m_bsErrs.end()); - size_t g = maxhash->first; - std::unique_ptr<IDCInDetBSErrContainer> trans = std::make_unique<IDCInDetBSErrContainer>(g + 1, std::numeric_limits<uint64_t>::min()); + size_t g = 0; + if (persObj->m_bsErrs.begin()!=persObj->m_bsErrs.end()) { + auto maxhash = std::max_element(persObj->m_bsErrs.begin(), persObj->m_bsErrs.end()); + g = maxhash->first + 1; + } + std::unique_ptr<IDCInDetBSErrContainer> trans = std::make_unique<IDCInDetBSErrContainer>(g, std::numeric_limits<IDCInDetBSErrContainer::ErrorCode>::min()); persToTrans(persObj, trans.get(), log); return trans.release(); } diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_FlaggedConditionTestAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_FlaggedConditionTestAlg.cxx index e84e9551a182ca599eed77e2a4a8743e2fc04b00..15afb8ec7fd682a602ab813f1630ac037e8292af 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_FlaggedConditionTestAlg.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_FlaggedConditionTestAlg.cxx @@ -32,9 +32,9 @@ StatusCode SCT_FlaggedConditionTestAlg::execute(const EventContext& ctx) const { ATH_MSG_ALWAYS("------------------------------------------------------------"); ATH_MSG_ALWAYS(" numBadIds " << m_flaggedTool->numBadIds(ctx)); - const SCT_FlaggedCondData* badIds{m_flaggedTool->getBadIds(ctx)}; - for (const std::pair<const IdentifierHash, std::string>& badId : *badIds) { - ATH_MSG_ALWAYS(" Wafer hash " << badId.first << " reason " << badId.second); + const IDCInDetBSErrContainer* badIds{m_flaggedTool->getBadIds(ctx)}; + for (const std::pair<const size_t, const IDCInDetBSErrContainer::ErrorCode> badId : badIds->getAll()) { + ATH_MSG_ALWAYS(" Wafer hash " << badId.first << " reason " << m_flaggedTool->details(badId.first)); } return StatusCode::SUCCESS; diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_FlaggedConditionTestAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_FlaggedConditionTestAlg.h index 9e7df0ba4f594b320dea1b935090ceb955e2d307..c35af6b2de6bf5ac3f7f4ebc1eee69d8e2a1d1a4 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_FlaggedConditionTestAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_FlaggedConditionTestAlg.h @@ -18,7 +18,7 @@ //Athena #include "AthenaBaseComps/AthReentrantAlgorithm.h" -#include "SCT_ConditionsTools//ISCT_FlaggedConditionTool.h" +#include "SCT_ConditionsTools/ISCT_FlaggedConditionTool.h" //Gaudi #include "GaudiKernel/ToolHandle.h" diff --git a/InnerDetector/InDetConditions/SCT_ConditionsData/SCT_ConditionsData/SCT_FlaggedCondEnum.h b/InnerDetector/InDetConditions/SCT_ConditionsData/SCT_ConditionsData/SCT_FlaggedCondEnum.h new file mode 100644 index 0000000000000000000000000000000000000000..6bc7d806dbde2e320294e1baedb7621bc9b9229f --- /dev/null +++ b/InnerDetector/InDetConditions/SCT_ConditionsData/SCT_ConditionsData/SCT_FlaggedCondEnum.h @@ -0,0 +1,36 @@ +// -*- C++ -*- + +/* + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +*/ + +/** + * @file SCT_FlaggedCondEnum.h + * @brief header file for enum for SCT_Clusterization and SCT_FlaggedConditionTool. + * @author Susumu Oda + * @date 20/08/2020 + **/ + +#ifndef SCT_FLAGGEDCONDENUM_H +#define SCT_FLAGGEDCONDENUM_H + +#include <vector> + +namespace SCT_FlaggedCondEnum { + /** + * @enum ErrorType + * @brief SCT flagged condition error type enums used in SCT_Clusterization, + * SCT_FlaggedConditionTool. + +*/ + enum ErrorType { + ExceedMaxFiredStrips, // SCT_Clusterization: Exceeds max fired strips + ExceedMaxRDOs, // SCT_TrgClusterization: Exceeds max RDOs + NUM_ERROR_TYPES + }; + static const std::vector<std::string> ErrorTypeDescription = { + "SCT_Clusterization: Exceeds max fired strips", // ExceedMaxFiredStrips + "SCT_TrgClusterization: Exceeds max RDOs" // ExceedMaxRDOs + }; +} + +#endif // SCT_FLAGGEDCONDENUM_H diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/SCT_ConditionsTools/ISCT_FlaggedConditionTool.h b/InnerDetector/InDetConditions/SCT_ConditionsTools/SCT_ConditionsTools/ISCT_FlaggedConditionTool.h index 102d84e7b60c85da1eed2557150991c9e865d74b..9ce05a00f8d07443dd7842764ffa21be23a3698f 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsTools/SCT_ConditionsTools/ISCT_FlaggedConditionTool.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/SCT_ConditionsTools/ISCT_FlaggedConditionTool.h @@ -1,10 +1,10 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ /* * @file ISCT_FlaggedConditionTool.h - * interface file for service allowing one to flag modules as 'bad' with a reason + * interface file for tool allowing one to flag modules as 'bad' with a reason * @author gwilliam@mail.cern.ch */ @@ -16,9 +16,10 @@ #include "Identifier/IdentifierHash.h" // Local +#include "InDetByteStreamErrors/IDCInDetBSErrContainer.h" #include "InDetConditionsSummaryService/InDetHierarchy.h" +#include "SCT_ConditionsData/SCT_FlaggedCondEnum.h" #include "SCT_ConditionsTools/ISCT_ConditionsTool.h" -#include "SCT_ConditionsData/SCT_FlaggedCondData.h" // Forward declarations class Identifier; @@ -51,8 +52,8 @@ class ISCT_FlaggedConditionTool: virtual public ISCT_ConditionsTool { virtual int numBadIds(const EventContext& ctx) const =0; /**Get IdentifierHashs ofwafers flagged as bad + reason (per event)*/ - virtual const SCT_FlaggedCondData* getBadIds() const =0; - virtual const SCT_FlaggedCondData* getBadIds(const EventContext& ctx) const =0; + virtual const IDCInDetBSErrContainer* getBadIds() const =0; + virtual const IDCInDetBSErrContainer* getBadIds(const EventContext& ctx) const =0; private: }; diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_FlaggedConditionTool.cxx b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_FlaggedConditionTool.cxx index 594999b14fc335de4d43d10364829bde88a073bb..dc89c2afa081307d8c5fac3c0a66ee1606e43c64 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_FlaggedConditionTool.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_FlaggedConditionTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "SCT_FlaggedConditionTool.h" @@ -54,10 +54,10 @@ bool SCT_FlaggedConditionTool::isGood(const Identifier& elementId, InDetConditio // Is this element good (by IdentifierHash)? bool SCT_FlaggedConditionTool::isGood(const IdentifierHash& hashId, const EventContext& ctx) const { - const SCT_FlaggedCondData* badIds{getCondData(ctx)}; + const IDCInDetBSErrContainer* badIds{getCondData(ctx)}; if (badIds==nullptr) { if (m_numWarnForFailures<m_maxNumWarnForFailures) { - ATH_MSG_WARNING("SCT_FlaggedCondData cannot be retrieved. (isGood)"); + ATH_MSG_WARNING(m_badIds.key() << " cannot be retrieved. (isGood)"); m_numWarnForFailures++; if (m_numWarnForFailures==m_maxNumWarnForFailures) { ATH_MSG_WARNING("Disabling this type of messages from " << name()); @@ -66,7 +66,7 @@ bool SCT_FlaggedConditionTool::isGood(const IdentifierHash& hashId, const EventC return false; } - return (badIds->find(hashId) == badIds->end()); + return (not badIds->present(hashId)); } bool SCT_FlaggedConditionTool::isGood(const IdentifierHash& hashId) const { @@ -80,10 +80,10 @@ bool SCT_FlaggedConditionTool::isGood(const IdentifierHash& hashId) const { const std::string& SCT_FlaggedConditionTool::details(const IdentifierHash& hashId, const EventContext& ctx) const { static const std::string nullString; - const SCT_FlaggedCondData* badIds{getCondData(ctx)}; + const IDCInDetBSErrContainer* badIds{getCondData(ctx)}; if (badIds==nullptr) { if (m_numWarnForFailures<m_maxNumWarnForFailures) { - ATH_MSG_WARNING("SCT_FlaggedCondData cannot be retrieved. (details)"); + ATH_MSG_WARNING(m_badIds.key() << " cannot be retrieved. (details)"); m_numWarnForFailures++; if (m_numWarnForFailures==m_maxNumWarnForFailures) { ATH_MSG_WARNING("Disabling this type of messages from " << name()); @@ -92,8 +92,15 @@ const std::string& SCT_FlaggedConditionTool::details(const IdentifierHash& hashI return nullString; } - std::map<IdentifierHash, std::string>::const_iterator itr(badIds->find(hashId)); - return ((itr != badIds->end()) ? (*itr).second : nullString); + if (badIds->present(hashId)) { + const IDCInDetBSErrContainer::ErrorCode value{badIds->retrieve(hashId)}; + if (value>0) { + for (size_t error{0}; error<SCT_FlaggedCondEnum::NUM_ERROR_TYPES; error++) { + if (value & (1 << error)) return SCT_FlaggedCondEnum::ErrorTypeDescription[error]; + } + } + } + return nullString; } const std::string& SCT_FlaggedConditionTool::details(const IdentifierHash& hashId) const { @@ -114,10 +121,10 @@ const std::string& SCT_FlaggedConditionTool::details(const Identifier& Id) const } int SCT_FlaggedConditionTool::numBadIds(const EventContext& ctx) const { - const SCT_FlaggedCondData* badIds{getCondData(ctx)}; + const IDCInDetBSErrContainer* badIds{getCondData(ctx)}; if (badIds==nullptr) { if (m_numWarnForFailures<m_maxNumWarnForFailures) { - ATH_MSG_WARNING("SCT_FlaggedCondData cannot be retrieved. (numBadIds)"); + ATH_MSG_WARNING(m_badIds.key() << " cannot be retrieved. (numBadIds)"); m_numWarnForFailures++; if (m_numWarnForFailures==m_maxNumWarnForFailures) { ATH_MSG_WARNING("Disabling this type of messages from " << name()); @@ -126,7 +133,7 @@ int SCT_FlaggedConditionTool::numBadIds(const EventContext& ctx) const { return -1; } - return badIds->size(); + return static_cast<int>(badIds->numberSet()); } int SCT_FlaggedConditionTool::numBadIds() const { @@ -134,17 +141,17 @@ int SCT_FlaggedConditionTool::numBadIds() const { return numBadIds(ctx); } -const SCT_FlaggedCondData* SCT_FlaggedConditionTool::getBadIds(const EventContext& ctx) const { +const IDCInDetBSErrContainer* SCT_FlaggedConditionTool::getBadIds(const EventContext& ctx) const { return getCondData(ctx); } -const SCT_FlaggedCondData* SCT_FlaggedConditionTool::getBadIds() const { +const IDCInDetBSErrContainer* SCT_FlaggedConditionTool::getBadIds() const { const EventContext& ctx{Gaudi::Hive::currentContext()}; return getBadIds(ctx); } -const SCT_FlaggedCondData* SCT_FlaggedConditionTool::getCondData(const EventContext& ctx) const { - SG::ReadHandle<SCT_FlaggedCondData> condData{m_badIds, ctx}; +const IDCInDetBSErrContainer* SCT_FlaggedConditionTool::getCondData(const EventContext& ctx) const { + SG::ReadHandle<IDCInDetBSErrContainer> condData{m_badIds, ctx}; if (not condData.isValid()) { if (m_numWarnForFailures<m_maxNumWarnForFailures) { ATH_MSG_WARNING("Failed to get " << m_badIds.key()); diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_FlaggedConditionTool.h b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_FlaggedConditionTool.h index 60c54b3686e514ccde9d3b1821407a5ab641699a..3d0f673547186ec2d43ec388a0695d602adfe966 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_FlaggedConditionTool.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_FlaggedConditionTool.h @@ -1,12 +1,12 @@ // -*- C++ -*- /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ /* * @file SCT_FlaggedConditionTool.h - * header file for service allowing one to flag modules as 'bad' with a reason + * header file for tool allowing one to flag modules as 'bad' with a reason * @author gwilliam@mail.cern.ch */ @@ -62,20 +62,20 @@ public: virtual int numBadIds(const EventContext& ctx) const override; /**Get IdentifierHashs ofwafers flagged as bad + reason (per event)*/ - virtual const SCT_FlaggedCondData* getBadIds() const override; - virtual const SCT_FlaggedCondData* getBadIds(const EventContext& ctx) const override; + virtual const IDCInDetBSErrContainer* getBadIds() const override; + virtual const IDCInDetBSErrContainer* getBadIds(const EventContext& ctx) const override; private: // SCT_FlaggedCondData created by SCT_Clusterization // SCT_FlaggedCondData_TRIG created by SCT_TrgClusterization for InDetTrigInDetSCT_FlaggedConditionTool - SG::ReadHandleKey<SCT_FlaggedCondData> m_badIds{this, "SCT_FlaggedCondData", "SCT_FlaggedCondData", "SCT flagged conditions data"}; + SG::ReadHandleKey<IDCInDetBSErrContainer> m_badIds{this, "SCT_FlaggedCondData", "SCT_FlaggedCondData", "SCT flagged conditions data"}; UnsignedIntegerProperty m_maxNumWarnForFailures{this, "MaxNumWarnForFailures", 5}; mutable std::atomic_uint m_numWarnForFailures{0}; const SCT_ID* m_sctID{nullptr}; //!< ID helper for SCT - const SCT_FlaggedCondData* getCondData(const EventContext& ctx) const; + const IDCInDetBSErrContainer* getCondData(const EventContext& ctx) const; }; #endif // SCT_FlaggedConditionTool_h diff --git a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProvider.cxx b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProvider.cxx index c27779a91dac0da71ba38d5c9ff3dc9de99a4a5a..e8d3d7414d984991d3aee66958fb5e00a2454072 100644 --- a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProvider.cxx +++ b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProvider.cxx @@ -140,7 +140,7 @@ StatusCode PixelRawDataProvider::execute(const EventContext& ctx) const { SG::UpdateHandle<IDCInDetBSErrContainer_Cache> bsErrorsCacheHandle( m_bsErrorsCacheKey, ctx); decodingErrors = std::make_unique<IDCInDetBSErrContainer>( bsErrorsCacheHandle.ptr() ); } else { - decodingErrors = std::make_unique<IDCInDetBSErrContainer>( m_pixel_id->wafer_hash_max(), std::numeric_limits<int>::min() ); + decodingErrors = std::make_unique<IDCInDetBSErrContainer>( m_pixel_id->wafer_hash_max(), std::numeric_limits<IDCInDetBSErrContainer::ErrorCode>::min() ); } diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/share/testSCTDecode.py b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/share/testSCTDecode.py index cd5a176d56a08beca4d1ea1c0c5a4d5d3ff11c30..ecbbd1c36b37e01d554c463a276c14efcb9bb14b 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/share/testSCTDecode.py +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/share/testSCTDecode.py @@ -246,9 +246,9 @@ if doDump: outStream = AthenaPoolOutputStream("OutStream", "testSCTDecode.pool.root") outStream.ItemList = ["xAOD::EventInfo#EventInfo", "xAOD::EventAuxInfo#EventInfoAux."] outStream.ItemList += ["SCT_RDO_Container#SCT_RDOs"] - outStream.ItemList += ["InDetBSErrContainer#SCT_ByteStreamErrs"] + outStream.ItemList += ["IDCInDetBSErrContainer#SCT_ByteStreamErrs"] outStream.ItemList += ["InDet::SCT_ClusterContainer#SCT_Clusters"] - outStream.ItemList += ["SCT_FlaggedCondData#SCT_FlaggedCondData"] + outStream.ItemList += ["IDCInDetBSErrContainer#SCT_FlaggedCondData"] # outStream.ItemList += ["SpacePointContainer#SCT_SpacePoints"] outStream.ItemList += ["xAOD::SCTRawHitValidationContainer#*", "xAOD::SCTRawHitValidationAuxContainer#*"] outStream.ItemList += ["xAOD::TrackMeasurementValidationContainer#*", "xAOD::TrackMeasurementValidationAuxContainer#*"] diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.cxx b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.cxx index eafdb926726a9a57213312a0f0929f0da6e3c382..a27436fee3f8110cb4904ea9e7a0b7c8398cdb69 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.cxx +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.cxx @@ -76,7 +76,7 @@ StatusCode SCTRawDataProvider::execute(const EventContext& ctx) const SG::WriteHandle<IDCInDetBSErrContainer> bsIDCErrContainer(m_bsIDCErrContainerKey, ctx); if ( m_bsErrContainerCacheKey.key().empty() ) { - ATH_CHECK(bsIDCErrContainer.record( std::make_unique<IDCInDetBSErrContainer>(m_sctID->wafer_hash_max(), std::numeric_limits<int>::min() ))); + ATH_CHECK(bsIDCErrContainer.record( std::make_unique<IDCInDetBSErrContainer>(m_sctID->wafer_hash_max(), std::numeric_limits<IDCInDetBSErrContainer::ErrorCode>::min() ))); ATH_MSG_DEBUG("Created IDCInDetBSErrContainer w/o using external cache"); } else { // use cache SG::UpdateHandle<IDCInDetBSErrContainer_Cache> cacheHandle( m_bsErrContainerCacheKey, ctx ); diff --git a/InnerDetector/InDetExample/InDetRecExample/share/WriteInDetESD.py b/InnerDetector/InDetExample/InDetRecExample/share/WriteInDetESD.py index 5ad573951429de6859173516094790b2116bdb92..4a5db3a4d8d666bfaab0f4e62fd6fbff53a3ea4a 100755 --- a/InnerDetector/InDetExample/InDetRecExample/share/WriteInDetESD.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/WriteInDetESD.py @@ -34,7 +34,7 @@ elif InDetFlags.writePRDs(): if InDetFlags.doPixelClusterSplitting(): InDetESDList+=["InDet::PixelGangedClusterAmbiguities#"+InDetKeys.SplitClusterAmbiguityMap()] # Save SCT_FlaggedCondData for SCT_FlaggedConditionTool - InDetESDList+=['SCT_FlaggedCondData#'+'SCT_FlaggedCondData'] + InDetESDList+=['IDCInDetBSErrContainer#'+'SCT_FlaggedCondData'] # add tracks # ---------- diff --git a/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/InDetPrepRawDataFormation/SCT_Clusterization.h b/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/InDetPrepRawDataFormation/SCT_Clusterization.h index 6f7ae71459124e78355fbfaa1367584af725b45f..33bdcaca8154620f05d9460d25c9d7434ffd8578 100644 --- a/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/InDetPrepRawDataFormation/SCT_Clusterization.h +++ b/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/InDetPrepRawDataFormation/SCT_Clusterization.h @@ -19,7 +19,7 @@ #include "InDetPrepRawData/SCT_ClusterContainer.h" #include "InDetPrepRawData/SiClusterContainer.h" #include "InDetRawData/SCT_RDO_Container.h" -#include "SCT_ConditionsData/SCT_FlaggedCondData.h" +#include "InDetByteStreamErrors/IDCInDetBSErrContainer.h" /// Tool handle template parameters #include "IRegionSelector/IRegSelTool.h" @@ -95,8 +95,9 @@ private: SG::ReadHandleKey<SCT_RDO_Container> m_rdoContainerKey{this, "DataObjectName", "SCT_RDOs", "SCT RDOs"}; SG::WriteHandleKey<SCT_ClusterContainer> m_clusterContainerKey{this, "ClustersName", "SCT_Clusters", "SCT cluster container"}; SG::WriteHandleKey<SiClusterContainer> m_clusterContainerLinkKey{this, "ClustersLinkName_", "SCT_Clusters", "SCT cluster container link name (don't set this)"}; - SG::WriteHandleKey<SCT_FlaggedCondData> m_flaggedCondDataKey{this, "SCT_FlaggedCondData", "SCT_FlaggedCondData", "SCT flagged conditions data"}; + SG::WriteHandleKey<IDCInDetBSErrContainer> m_flaggedCondDataKey{this, "SCT_FlaggedCondData", "SCT_FlaggedCondData", "SCT flagged conditions data"}; SG::UpdateHandleKey<SCT_ClusterContainerCache> m_clusterContainerCacheKey; //!< For HLT cache + SG::UpdateHandleKey<IDCInDetBSErrContainer_Cache> m_flaggedCondCacheKey; //!< For HLT cache //@} /** diff --git a/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/CacheCreator.cxx b/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/CacheCreator.cxx index c1b898082ee941c13083041f097bf7cb1ba490fc..70d9844db63cf7dc83c438c5a7fcabf16666dcf1 100644 --- a/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/CacheCreator.cxx +++ b/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/CacheCreator.cxx @@ -1,5 +1,5 @@ /* -Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ @@ -30,6 +30,7 @@ namespace InDet{ ATH_CHECK( m_SCTSpacePointCacheKey.initialize(SG::AllowEmpty) ); ATH_CHECK( m_SCTRDOCacheKey.initialize(SG::AllowEmpty) ); ATH_CHECK( m_SCTBSErrCacheKey.initialize(SG::AllowEmpty) ); + ATH_CHECK( m_SCTFlaggedCondCacheKey.initialize(SG::AllowEmpty) ); ATH_CHECK( m_PixRDOCacheKey.initialize(SG::AllowEmpty) ); ATH_CHECK( m_PixBSErrCacheKey.initialize(SG::AllowEmpty) ); if (!m_disableTRT.value()) ATH_CHECK(detStore()->retrieve(m_pTRTHelper , "TRT_ID")); @@ -62,6 +63,8 @@ namespace InDet{ ATH_CHECK(createValueContainer(m_SCTBSErrCacheKey, m_sct_idHelper->wafer_hash_max(), ctx, std::numeric_limits<uint64_t>::min())); + ATH_CHECK(createValueContainer(m_SCTFlaggedCondCacheKey, m_sct_idHelper->wafer_hash_max(), ctx, std::numeric_limits<uint64_t>::min())); + ATH_CHECK(createContainer(m_PixRDOCacheKey, m_pix_idHelper->wafer_hash_max(), ctx)); ATH_CHECK(createValueContainer(m_PixBSErrCacheKey, m_pix_idHelper->wafer_hash_max(), ctx, std::numeric_limits<uint64_t>::min())); diff --git a/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/CacheCreator.h b/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/CacheCreator.h index e666b0e246dfc2534dafdfa7f4eb531949c0f932..b83bdd3297d9bbdfda71c0146adcc593049c1c1c 100644 --- a/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/CacheCreator.h +++ b/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/CacheCreator.h @@ -1,5 +1,5 @@ /* -Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ @@ -53,6 +53,8 @@ namespace InDet{ {this, "SCTRDOCacheKey", ""}; SG::WriteHandleKey<IDCInDetBSErrContainer_Cache> m_SCTBSErrCacheKey {this, "SCTBSErrCacheKey", ""}; + SG::WriteHandleKey<IDCInDetBSErrContainer_Cache> m_SCTFlaggedCondCacheKey + {this, "SCTFlaggedCondCacheKey", ""}; SG::WriteHandleKey<PixelRDO_Cache> m_PixRDOCacheKey {this, "PixRDOCacheKey", ""}; SG::WriteHandleKey<IDCInDetBSErrContainer_Cache> m_PixBSErrCacheKey diff --git a/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/SCT_Clusterization.cxx b/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/SCT_Clusterization.cxx index 1e1875b42b344217738808e8b02dff9419393893..75d96f777e81272e9a5631e0e939d627c2da26a8 100644 --- a/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/SCT_Clusterization.cxx +++ b/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/SCT_Clusterization.cxx @@ -15,12 +15,15 @@ #include "InDetIdentifier/SCT_ID.h" #include "InDetPrepRawData/SiClusterContainer.h" #include "InDetRawData/SCT_RDORawData.h" +#include "SCT_ConditionsData/SCT_FlaggedCondEnum.h" #include "StoreGate/WriteHandle.h" #include "TrigSteeringEvent/TrigRoiDescriptorCollection.h" +#include <limits> +#include <unordered_map> + namespace InDet { using namespace InDet; - static const std::string moduleFailureReason{"SCT_Clusterization: Exceeds max fired strips"}; // Constructor with parameters: SCT_Clusterization::SCT_Clusterization(const std::string& name, ISvcLocator* pSvcLocator) : @@ -28,6 +31,7 @@ namespace InDet { { // Get parameter values from jobOptions file declareProperty("ClusterContainerCacheKey", m_clusterContainerCacheKey=""); + declareProperty("FlaggedCondCacheKey", m_flaggedCondCacheKey=""); } // Initialize method: @@ -50,6 +54,7 @@ namespace InDet { ATH_CHECK(m_clusterContainerLinkKey.initialize()); ATH_CHECK(m_clusterContainerCacheKey.initialize(not m_clusterContainerCacheKey.key().empty())); ATH_CHECK(m_flaggedCondDataKey.initialize()); + ATH_CHECK(m_flaggedCondCacheKey.initialize(not m_flaggedCondCacheKey.key().empty())); // Get the clustering tool ATH_CHECK(m_clusteringTool.retrieve()); @@ -83,8 +88,17 @@ namespace InDet { ATH_CHECK(clusterContainer.isValid()); ATH_MSG_DEBUG("SCT clusters '" << clusterContainer.name() << "' symlinked in StoreGate"); - SG::WriteHandle<SCT_FlaggedCondData> flaggedCondData{m_flaggedCondDataKey, ctx}; - ATH_CHECK(flaggedCondData.record(std::make_unique<SCT_FlaggedCondData>())); + SG::WriteHandle<IDCInDetBSErrContainer> flaggedCondData{m_flaggedCondDataKey, ctx}; + if (m_flaggedCondCacheKey.key().empty()) { + ATH_CHECK(flaggedCondData.record( std::make_unique<IDCInDetBSErrContainer>(m_idHelper->wafer_hash_max(), std::numeric_limits<IDCInDetBSErrContainer::ErrorCode>::min()))); + ATH_MSG_DEBUG("Created IDCInDetBSErrContainer w/o using external cache"); + } else { + SG::UpdateHandle<IDCInDetBSErrContainer_Cache> flaggedCondCacheHandle(m_flaggedCondCacheKey, ctx); + ATH_CHECK(flaggedCondCacheHandle.isValid() ); + ATH_CHECK(flaggedCondData.record( std::make_unique<IDCInDetBSErrContainer>(flaggedCondCacheHandle.ptr())) ); + ATH_MSG_DEBUG("Created SCT IDCInDetBSErrContainer using external cache"); + } + std::unordered_map<IdentifierHash, IDCInDetBSErrContainer::ErrorCode> flaggedCondMap; // temporary store of flagged condition error // First, we have to retrieve and access the container, not because we want to // use it, but in order to generate the proxies for the collections, if they @@ -133,7 +147,11 @@ namespace InDet { unsigned int nFiredStrips{0}; for (const SCT_RDORawData* rdo: *rd) nFiredStrips += rdo->getGroupSize(); if (nFiredStrips > m_maxFiredStrips.value()) { - flaggedCondData->insert(std::make_pair(rd->identifyHash(), moduleFailureReason)); + if (flaggedCondMap.count(rd->identifyHash())==0) { + flaggedCondMap[rd->identifyHash()] = (1 << SCT_FlaggedCondEnum::ExceedMaxFiredStrips); + } else { + flaggedCondMap[rd->identifyHash()] |= (1 << SCT_FlaggedCondEnum::ExceedMaxFiredStrips); + } continue; } } @@ -179,8 +197,12 @@ namespace InDet { unsigned int nFiredStrips{0}; for (const SCT_RDORawData* rdo: *RDO_Collection) nFiredStrips += rdo->getGroupSize(); if (nFiredStrips > m_maxFiredStrips.value()) { - flaggedCondData->insert(std::make_pair(id, moduleFailureReason)); - continue; + if (flaggedCondMap.count(id)==0) { + flaggedCondMap[id] = (1 << SCT_FlaggedCondEnum::ExceedMaxFiredStrips); + } else { + flaggedCondMap[id] |= (1 << SCT_FlaggedCondEnum::ExceedMaxFiredStrips); + } + continue; } } } @@ -208,6 +230,12 @@ namespace InDet { } // Set container to const ATH_CHECK(clusterContainer.setConst()); + + // Fill flaggedCondData + for (auto [hash, error] : flaggedCondMap) { + flaggedCondData->setOrDrop(hash, error); + } + return StatusCode::SUCCESS; } diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigPrepRawDataFormat/InDetTrigPrepRawDataFormat/SCT_TrgClusterization.h b/InnerDetector/InDetTrigRecAlgs/InDetTrigPrepRawDataFormat/InDetTrigPrepRawDataFormat/SCT_TrgClusterization.h index 7d2bb47cc1d342d68aa03dd224fe3311328084f8..72e2844ccfc40925e094d1f392a646938072a7e4 100755 --- a/InnerDetector/InDetTrigRecAlgs/InDetTrigPrepRawDataFormat/InDetTrigPrepRawDataFormat/SCT_TrgClusterization.h +++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigPrepRawDataFormat/InDetTrigPrepRawDataFormat/SCT_TrgClusterization.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ ///////////////////////////////////////////////////////////////////////////// @@ -43,9 +43,9 @@ #include "InDetTrigToolInterfaces/ITrigRawDataProviderTool.h" //typedefs - cannot be declared forward +#include "InDetByteStreamErrors/IDCInDetBSErrContainer.h" #include "InDetPrepRawData/SCT_ClusterContainer.h" #include "InDetPrepRawData/SCT_ClusterCollection.h" -#include "SCT_ConditionsData/SCT_FlaggedCondData.h" #include "InDetReadoutGeometry/SiDetectorElementCollection.h" #include "StoreGate/ReadCondHandleKey.h" diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigPrepRawDataFormat/src/SCT_TrgClusterization.cxx b/InnerDetector/InDetTrigRecAlgs/InDetTrigPrepRawDataFormat/src/SCT_TrgClusterization.cxx index 2a7d5c8726378c536976a9e41a8eedcb20eca3d1..dd13ab00bd9248fb3d72a1302289a9c4e1ca6b2d 100755 --- a/InnerDetector/InDetTrigRecAlgs/InDetTrigPrepRawDataFormat/src/SCT_TrgClusterization.cxx +++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigPrepRawDataFormat/src/SCT_TrgClusterization.cxx @@ -24,6 +24,7 @@ #include "Identifier/Identifier.h" #include "AtlasDetDescr/AtlasDetectorID.h" +#include "SCT_ConditionsData/SCT_FlaggedCondEnum.h" //Gaudi includes #include "AthenaKernel/Timeout.h" @@ -37,11 +38,12 @@ #include "ByteStreamCnvSvcBase/IROBDataProviderSvc.h" #include <cmath> +#include <limits> +#include <unordered_map> namespace InDet{ using namespace InDet; - static const std::string maxRDOsReached("SCT_TrgClusterization: Exceeds max RDOs"); //---------------------------------- // Constructor: @@ -268,9 +270,10 @@ namespace InDet{ } // Prepare SCT_FlaggedCondData - SCT_FlaggedCondData* flaggedCondData{nullptr}; - if (!store()->transientContains<SCT_FlaggedCondData>(m_flaggedCondDataName)) { - flaggedCondData = new SCT_FlaggedCondData{}; + IDCInDetBSErrContainer* flaggedCondData{nullptr}; + std::unordered_map<IdentifierHash, IDCInDetBSErrContainer::ErrorCode> flaggedCondMap; + if (!store()->transientContains<IDCInDetBSErrContainer>(m_flaggedCondDataName)) { + flaggedCondData = new IDCInDetBSErrContainer {m_idHelper->wafer_hash_max(), std::numeric_limits<IDCInDetBSErrContainer::ErrorCode>::min()}; if (store()->record(flaggedCondData, m_flaggedCondDataName, true, true).isFailure()) { ATH_MSG_WARNING(" Container " << m_flaggedCondDataName << " could not be recorded in StoreGate !"); @@ -425,7 +428,12 @@ namespace InDet{ const size_t rdosize = RDO_Collection->size(); if (m_maxRDOs >0 && rdosize>m_maxRDOs){ const int hid = RDO_Collection->identifyHash(); - flaggedCondData->insert(std::make_pair(hid, maxRDOsReached)); + if (flaggedCondMap.count(hid)==0) { + flaggedCondMap[hid] = (1 << SCT_FlaggedCondEnum::ExceedMaxRDOs); + } else { + flaggedCondMap[hid] |= (1 << SCT_FlaggedCondEnum::ExceedMaxRDOs); + } + m_flaggedModules.insert(hid); m_occupancyHashId.push_back(hid); continue; @@ -500,7 +508,12 @@ namespace InDet{ if (m_maxRDOs >0 && rdosize>m_maxRDOs){ const int hid = rd->identifyHash(); - flaggedCondData->insert(std::make_pair(hid, maxRDOsReached)); + if (flaggedCondMap.count(hid)==0) { + flaggedCondMap[hid] = (1 << SCT_FlaggedCondEnum::ExceedMaxRDOs); + } else { + flaggedCondMap[hid] |= (1 << SCT_FlaggedCondEnum::ExceedMaxRDOs); + } + m_flaggedModules.insert(hid); m_occupancyHashId.push_back(hid); continue; @@ -549,6 +562,11 @@ namespace InDet{ m_timerCluster->stop(); } + // Fill flaggedCondData + for (auto [hash, error] : flaggedCondMap) { + flaggedCondData->setOrDrop(hash, error); + } + ATH_MSG_DEBUG( "REGTEST: Number of reconstructed clusters = " << m_numSctClusters ); return HLT::OK; diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/src/TrigPixRawDataProvider.cxx b/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/src/TrigPixRawDataProvider.cxx index f7e531d826b57bd3205d4f387268d6a919aaf261..a59f437c93f419e2abebf87c637d4998486422ab 100644 --- a/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/src/TrigPixRawDataProvider.cxx +++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/src/TrigPixRawDataProvider.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "InDetTrigRawDataProvider/TrigPixRawDataProvider.h" @@ -112,7 +112,7 @@ namespace InDet { } if( !evtStore()->transientContains<IDCInDetBSErrContainer>(m_decodingErrorsKey) ) { - m_decodingErrors = new IDCInDetBSErrContainer(m_id->wafer_hash_max(), std::numeric_limits<int>::min()); + m_decodingErrors = new IDCInDetBSErrContainer(m_id->wafer_hash_max(), std::numeric_limits<IDCInDetBSErrContainer::ErrorCode>::min()); ATH_CHECK(evtStore()->record(m_decodingErrors, m_decodingErrorsKey)); } else { ATH_CHECK(evtStore()->retrieve(m_decodingErrors, m_decodingErrorsKey)); diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/src/TrigSCTRawDataProvider.cxx b/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/src/TrigSCTRawDataProvider.cxx index e919472bbc15b9f29dc755099f5ced1cca4b79a1..40d1eda7c57cca80807dbcbece29df37ba4a5052 100644 --- a/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/src/TrigSCTRawDataProvider.cxx +++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/src/TrigSCTRawDataProvider.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "InDetTrigRawDataProvider/TrigSCTRawDataProvider.h" @@ -129,7 +129,7 @@ namespace InDet { m_bsErrCont = nullptr; if (!evtStore()->transientContains<IDCInDetBSErrContainer>(m_bsErrCont_Key)) { - m_bsErrCont = new IDCInDetBSErrContainer(m_id->wafer_hash_max(), std::numeric_limits<int>::min()); + m_bsErrCont = new IDCInDetBSErrContainer(m_id->wafer_hash_max(), std::numeric_limits<IDCInDetBSErrContainer::ErrorCode>::min()); if (evtStore()->record(m_bsErrCont, m_bsErrCont_Key, true, true).isFailure()) { ATH_MSG_FATAL("Unable to record " << m_bsErrCont_Key); return StatusCode::FAILURE; diff --git a/Trigger/TrigTools/TrigInDetConfig/python/InDetSetup.py b/Trigger/TrigTools/TrigInDetConfig/python/InDetSetup.py index 59ca78ff70efa492beedb0d068ca77f1018fd444..166e52f79923f7bd863df7dca8449c3c7ef0b98a 100644 --- a/Trigger/TrigTools/TrigInDetConfig/python/InDetSetup.py +++ b/Trigger/TrigTools/TrigInDetConfig/python/InDetSetup.py @@ -56,6 +56,7 @@ def makeInDetAlgs( whichSignature='', separateTrackParticleCreator='', rois = 'E ( 'SpacePointCache' , InDetCacheNames.SpacePointCachePix ), ( 'SpacePointCache' , InDetCacheNames.SpacePointCacheSCT ), ( 'IDCInDetBSErrContainer_Cache' , InDetCacheNames.SCTBSErrCacheKey ), + ( 'IDCInDetBSErrContainer_Cache' , InDetCacheNames.SCTFlaggedCondCacheKey ), ( 'xAOD::EventInfo' , 'StoreGateSvc+EventInfo' ), ( 'TagInfo' , 'DetectorStore+ProcessingTags' )] @@ -260,6 +261,7 @@ def makeInDetAlgs( whichSignature='', separateTrackParticleCreator='', rois = 'E InDetSCT_Clusterization.isRoI_Seeded = True InDetSCT_Clusterization.RoIs = rois InDetSCT_Clusterization.ClusterContainerCacheKey = InDetCacheNames.SCT_ClusterKey + InDetSCT_Clusterization.FlaggedCondCacheKey = InDetCacheNames.SCTFlaggedCondCacheKey from RegionSelector.RegSelToolConfig import makeRegSelTool_SCT InDetSCT_Clusterization.RegSelTool = makeRegSelTool_SCT() diff --git a/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetConfig.py b/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetConfig.py index 4e68aecdec7afffe5f372385d05c1bfecca616e4..8297c29179dd4d4d065b63d98dccd9557951e8aa 100644 --- a/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetConfig.py +++ b/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetConfig.py @@ -11,6 +11,7 @@ class InDetCacheNames(object): SpacePointCachePix = "PixelSpacePointCache" SpacePointCacheSCT = "SctSpacePointCache" SCTBSErrCacheKey = "SctBSErrCache" + SCTFlaggedCondCacheKey = "SctFlaggedCondCache" SCTRDOCacheKey = "SctRDOCache" PixRDOCacheKey = "PixRDOCache" PixBSErrCacheKey = "PixBSErrCache" @@ -26,6 +27,7 @@ def InDetIDCCacheCreatorCfg(): SpacePointCacheSCT = InDetCacheNames.SpacePointCacheSCT, SCTRDOCacheKey = InDetCacheNames.SCTRDOCacheKey, SCTBSErrCacheKey = InDetCacheNames.SCTBSErrCacheKey, + SCTFlaggedCondCacheKey = InDetCacheNames.SCTFlaggedCondCacheKey, PixRDOCacheKey = InDetCacheNames.PixRDOCacheKey, PixBSErrCacheKey = InDetCacheNames.PixBSErrCacheKey) @@ -198,6 +200,7 @@ def TrigInDetConfig( flags, roisKey="EMRoIs", signatureName='' ): ('SpacePointCache', 'PixelSpacePointCache'), ('SpacePointCache', 'SctSpacePointCache'), ('IDCInDetBSErrContainer_Cache', 'SctBSErrCache'), + ('IDCInDetBSErrContainer_Cache', 'SctFlaggedCondCache'), ('xAOD::EventInfo', 'StoreGateSvc+EventInfo'), # ('xAOD::TrigEMClusterContainer', 'StoreGateSvc+HLT_L2CaloEMClusters'), ('TrigRoiDescriptorCollection', 'StoreGateSvc+'+roisKey), @@ -353,6 +356,7 @@ def TrigInDetConfig( flags, roisKey="EMRoIs", signatureName='' ): InDetSCT_Clusterization.isRoI_Seeded = True InDetSCT_Clusterization.RoIs = roisKey InDetSCT_Clusterization.ClusterContainerCacheKey = InDetCacheNames.SCT_ClusterKey + InDetSCT_Clusterization.FlaggedCondCacheKey = InDetCacheNames.SCTFlaggedCondCacheKey InDetSCT_Clusterization.RegSelTool = RegSelTool_SCT diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Electron/PrecisionElectronRecoSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Electron/PrecisionElectronRecoSequences.py index 3c857bfff299bef5555a6cd15c9ebc7f004721e7..9c47c2e82a5acfa94858abb7a266e7ee88cf75c2 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Electron/PrecisionElectronRecoSequences.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Electron/PrecisionElectronRecoSequences.py @@ -35,7 +35,7 @@ def precisionElectronRecoSequence(RoIs): ( 'xAOD::CaloClusterContainer' , 'StoreGateSvc+' + precisionCaloMenuDefs.precisionCaloClusters ), ( 'CaloCellContainer' , 'StoreGateSvc+CaloCells' ), ( 'SG::AuxElement' , 'StoreGateSvc+EventInfo.AveIntPerXDecor' ), - ( 'SCT_FlaggedCondData' , 'StoreGateSvc+SCT_FlaggedCondData_TRIG' ), + ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+SCT_FlaggedCondData_TRIG' ), ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+precisionElectron' ), ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+SCT_ByteStreamErrs' )] # the load below doesn't always work diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MinBias/MinBiasChainConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MinBias/MinBiasChainConfiguration.py index 3af50555d5633b5d9f3b00f9f04169a819193611..b628b92e81c692408de90fb6ba60b76cc8d2a9b5 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MinBias/MinBiasChainConfiguration.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MinBias/MinBiasChainConfiguration.py @@ -121,7 +121,7 @@ class MinBiasChainConfig(ChainConfigurationBase): # prepare algorithms to run in views, first, inform scheduler that input data is available in parent view (has to be done by hand) idAlgs, verifier = makeInDetAlgs(whichSignature='MinBias', separateTrackParticleCreator='', rois=TrkInputMakerAlg.InViewRoIs, viewVerifier='TrkrecoSeqDataVerifier') verifier.DataObjects += [( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+InputRoI' ), - ( 'SCT_FlaggedCondData' , 'StoreGateSvc+SCT_FlaggedCondData_TRIG' ), + ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+SCT_FlaggedCondData_TRIG' ), ( 'InDet::SCT_ClusterContainer' , 'StoreGateSvc+SCT_TrigClusters' ), ( 'SpacePointContainer' , 'StoreGateSvc+SCT_TrigSpacePoints' ), ( 'InDet::PixelClusterContainer' , 'StoreGateSvc+PixelTrigClusters' ), diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py index 18459b37953b4e59b1bb901fd87187f213fd2d27..a5b96e5471e383dab44e334467092be4613a81f1 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py @@ -642,7 +642,7 @@ def muEFCBRecoSequence( RoIs, name ): ( 'Muon::RpcPrepDataContainer' , 'StoreGateSvc+RPC_Measurements' ), ( 'MuonCandidateCollection' , 'StoreGateSvc+MuonCandidates'), ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+'+RoIs ), - ( 'SCT_FlaggedCondData' , 'StoreGateSvc+SCT_FlaggedCondData' ), + ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+SCT_FlaggedCondData' ), ( 'MuonCandidateCollection' , 'StoreGateSvc+MuonCandidates_FS' ), ( 'xAOD::EventInfo' , 'StoreGateSvc+EventInfo' ), ( 'TrackCollection' , 'StoreGateSvc+Tracks' ), @@ -688,7 +688,7 @@ def muEFCBRecoSequence( RoIs, name ): ViewVerifyTrk = CfgMgr.AthViews__ViewDataVerifier("muonCBIDViewDataVerifier") ViewVerifyTrk.DataObjects = [( 'xAOD::TrackParticleContainer' , 'StoreGateSvc+'+TrackParticlesName ), ( 'TrackCollection' , 'StoreGateSvc+'+TrackCollection ), - ( 'SCT_FlaggedCondData' , 'StoreGateSvc+SCT_FlaggedCondData_TRIG' ), + ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+SCT_FlaggedCondData_TRIG' ), ( 'xAOD::IParticleContainer' , 'StoreGateSvc+'+TrackParticlesName ), ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+SCT_ByteStreamErrs' )] #seems to be necessary, despite the load below