diff --git a/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelByteStreamErrors.h b/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelByteStreamErrors.h new file mode 100644 index 0000000000000000000000000000000000000000..6cc69039f86e8eacfd2380cb8d8cb1ff71509d6a --- /dev/null +++ b/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelByteStreamErrors.h @@ -0,0 +1,24 @@ +/* + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef PixelConditionsData_PixelByteStreamErrors_h +#define PixelConditionsData_PixelByteStreamErrors_h +#include "InDetByteStreamErrors/IDCInDetBSErrContainer.h" + +// errors can coexist per hashID so we need to reserve separate bit for them +namespace PixelByteStreamErrors { + + //!< Possible errors in pixel data decoding, exactl clone of definition in: PixelConditionsTools/IPixelByteStreamErrorsTool.h, the later will be removed + enum ErrorType {TimeOut=0, firstErrType=TimeOut, BCID=1, LVL1ID=2, Preamble=3, Trailer=4, + Flagged=5, DisableFE=6, ROD=7, Decoding=8, Invalid=9, LinkMaskedByPPC=10, Limit=11, lastErrType=Limit, ErrorsNumber=lastErrType+1 }; + + //!< @brief helper to be used in clients to fetch error information + inline bool hasError(IDCInDetBSErrContainer::ErrorCode errWord, PixelErrorsEnum errType ) { return errWord & (1<<errType); } + + //!< @brief helper to set the error: @example errors[hashId] = addError( errors[hashId], PixelByteStreamErrors::Invalid ) + inline IDCInDetBSErrContainer::ErrorCode addError(IDCInDetBSErrContainer::ErrorCode errWord, PixelErrorsEnum errType ) { return errWord | (1<<errType); } +} + + +#endif //PixelConditionsData_PixelByteStreamErrors_h diff --git a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/PixelRawDataByteStreamCnv/IPixelRawDataProviderTool.h b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/PixelRawDataByteStreamCnv/IPixelRawDataProviderTool.h index 2b618dc8feac35f3710360121766600cbd9b5b6b..9b47e86b95b2bc391ab5586d457ac8e78f6f77a0 100644 --- a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/PixelRawDataByteStreamCnv/IPixelRawDataProviderTool.h +++ b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/PixelRawDataByteStreamCnv/IPixelRawDataProviderTool.h @@ -8,7 +8,7 @@ #include "GaudiKernel/IAlgTool.h" #include "ByteStreamData/RawEvent.h" #include "InDetRawData/PixelRDO_Container.h" - +#include "InDetByteStreamErrors/IDCInDetBSErrContainer.h" // the tool to decode a ROB frament class IPixelRawDataProviderTool : virtual public IAlgTool { @@ -23,7 +23,9 @@ class IPixelRawDataProviderTool : virtual public IAlgTool //! this is the main decoding method virtual StatusCode convert( std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*>& vecRobs, - IPixelRDO_Container* rdoIdc ) const = 0; + IPixelRDO_Container* rdoIdc, + IDCInDetBSErrContainer& decodingErrors + ) const = 0; }; diff --git a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/PixelRawDataByteStreamCnv/IPixelRodDecoder.h b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/PixelRawDataByteStreamCnv/IPixelRodDecoder.h index 8da9b48d86e190768ed720b4064c1e3fb398ca6a..6589e59b9663814f8e48bada73680ba1f2df4ad0 100644 --- a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/PixelRawDataByteStreamCnv/IPixelRodDecoder.h +++ b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/PixelRawDataByteStreamCnv/IPixelRodDecoder.h @@ -8,6 +8,7 @@ #include "GaudiKernel/IAlgTool.h" #include "InDetRawData/PixelRDO_Container.h" +#include "InDetByteStreamErrors/IDCInDetBSErrContainer.h" #include "ByteStreamData/RawEvent.h" class IPixelRodDecoder : virtual public IAlgTool{ @@ -18,7 +19,10 @@ class IPixelRodDecoder : virtual public IAlgTool{ // destructor virtual ~IPixelRodDecoder(){}; - virtual StatusCode fillCollection (const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment *robFrag, IPixelRDO_Container* rdoIdc, std::vector<IdentifierHash>* vecHash = NULL) const = 0; + virtual StatusCode fillCollection (const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment *robFrag, + IPixelRDO_Container* rdoIdc, + IDCInDetBSErrContainer& decodingErrors, + std::vector<IdentifierHash>* vecHash = NULL) const = 0; virtual StatusCode StoreBSError() const =0; }; diff --git a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProvider.cxx b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProvider.cxx index cafbe73e56216be563123ae340afa46b78f4faf9..cd1b22de22b41f949bb10eea24848e575dd3fdf1 100644 --- a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProvider.cxx +++ b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProvider.cxx @@ -5,10 +5,7 @@ #include "PixelRawDataProvider.h" #include <memory> -#include "PixelRawDataByteStreamCnv/IPixelRawDataProviderTool.h" #include "InDetIdentifier/PixelID.h" -#include "ByteStreamCnvSvcBase/IROBDataProviderSvc.h" -#include "IRegionSelector/IRegSelSvc.h" #include "EventContainers/IdentifiableContTemp.h" using OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment; @@ -18,27 +15,14 @@ using OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment; PixelRawDataProvider::PixelRawDataProvider(const std::string& name, ISvcLocator* pSvcLocator) : - AthAlgorithm(name, pSvcLocator), - m_regionSelector ("RegSelSvc", name), - m_robDataProvider ("ROBDataProviderSvc",name), - m_rawDataTool ("PixelRawDataProviderTool", this), //make private - m_pixel_id (nullptr), - m_roiSeeded(false), - m_roiCollectionKey(""), - m_rdoContainerKey(""), - m_rdoCacheKey("") -{ - declareProperty("RoIs", m_roiCollectionKey = std::string(""), "RoIs to read in"); - declareProperty("isRoI_Seeded", m_roiSeeded = false, "Use RoI"); - declareProperty("RDOKey", m_rdoContainerKey = std::string("PixelRDOs")); - declareProperty ("ROBDataProvider", m_robDataProvider); - declareProperty ("ProviderTool", m_rawDataTool); - declareProperty ("RDOCacheKey", m_rdoCacheKey); + AthAlgorithm(name, pSvcLocator) { + declareProperty("RDOCacheKey", m_rdoCacheKey); + declareProperty("BSErrorsCacheKey", m_bsErrorsCacheKey); } // Destructor -PixelRawDataProvider::~PixelRawDataProvider(){ +PixelRawDataProvider::~PixelRawDataProvider() { } // -------------------------------------------------------------------- @@ -147,7 +131,9 @@ StatusCode PixelRawDataProvider::execute() { IPixelRDO_Container *containerInterface = tempcont ? static_cast< IPixelRDO_Container* >(tempcont.get()) : static_cast< IPixelRDO_Container* >(rdoContainer.ptr()); // ask PixelRawDataProviderTool to decode it and to fill the IDC - if (m_rawDataTool->convert(listOfRobf, containerInterface).isFailure()) + // TODO: temporarily unused errors container + IDCInDetBSErrContainer decodingErrors(0, std::numeric_limits<int>::min()); // we will use IDC Errors from elswhere + if (m_rawDataTool->convert(listOfRobf, containerInterface, decodingErrors).isFailure()) ATH_MSG_ERROR("BS conversion into RDOs failed"); if(tempcont) ATH_CHECK(tempcont->MergeToRealContainer(rdoContainer.ptr())); diff --git a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProvider.h b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProvider.h index 491ef89447c218ccc6b58e8bdb2d13cd7921861d..94caa17924045e0a44f623fbbb8b95f29ab503d9 100644 --- a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProvider.h +++ b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProvider.h @@ -16,17 +16,18 @@ #include "StoreGate/ReadHandleKey.h" #include "StoreGate/WriteHandleKey.h" #include "InDetRawData/PixelRDO_Container.h" +#include "InDetByteStreamErrors/IDCInDetBSErrContainer.h" #include "TrigSteeringEvent/TrigRoiDescriptorCollection.h" #include <string> #include "PixelConditionsData/PixelCablingCondData.h" #include "StoreGate/ReadCondHandleKey.h" +#include "ByteStreamCnvSvcBase/IROBDataProviderSvc.h" +#include "PixelRawDataByteStreamCnv/IPixelRawDataProviderTool.h" +#include "IRegionSelector/IRegSelSvc.h" // Forward declarations -class IPixelRawDataProviderTool; class PixelID; -class IROBDataProviderSvc; -class IRegSelSvc; class PixelRawDataProvider : public AthAlgorithm { @@ -46,19 +47,17 @@ class PixelRawDataProvider : public AthAlgorithm { ~PixelRawDataProvider(); private: - - ServiceHandle<IRegSelSvc> m_regionSelector; - ServiceHandle<IROBDataProviderSvc> m_robDataProvider; - ToolHandle<IPixelRawDataProviderTool> m_rawDataTool; - const PixelID* m_pixel_id; - bool m_roiSeeded; - SG::ReadHandleKey<TrigRoiDescriptorCollection> m_roiCollectionKey; - SG::WriteHandleKey<PixelRDO_Container> m_rdoContainerKey; + const PixelID* m_pixel_id { nullptr }; + + ServiceHandle<IRegSelSvc> m_regionSelector { this, "RegSelSvc", "RegSelSvc", "Region selector" }; + ServiceHandle<IROBDataProviderSvc> m_robDataProvider { this, "ROBDataProvider", "ROBDataProviderSvc" }; + ToolHandle<IPixelRawDataProviderTool> m_rawDataTool { this, "ProviderTool", "PixelRawDataProviderTool"}; + Gaudi::Property<bool> m_roiSeeded { this, "isRoI_Seeded", false, "Use RoI" }; // TODO, doubled information, empty RoIs collection name would be sufficent + SG::ReadHandleKey<TrigRoiDescriptorCollection> m_roiCollectionKey { this, "RoIs", "", "If RoI driven unpacking to be used, this is the key"}; + SG::WriteHandleKey<PixelRDO_Container> m_rdoContainerKey { this, "RDOKey", "PixelRDOs"}; SG::UpdateHandleKey<PixelRDO_Cache> m_rdoCacheKey; - - SG::ReadCondHandleKey<PixelCablingCondData> m_condCablingKey - {this, "PixelCablingCondData", "PixelCablingCondData", "Pixel cabling key"}; - + SG::UpdateHandleKey<IDCInDetBSErrContainer_Cache> m_bsErrorsCacheKey; + SG::ReadCondHandleKey<PixelCablingCondData> m_condCablingKey { this, "PixelCablingCondData", "PixelCablingCondData", "Pixel cabling key"}; }; #endif diff --git a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProviderTool.cxx b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProviderTool.cxx index c0f6bae77a3b8c17e9d1b0dd838fd23bbea09a05..a49c6afa43d1a4af751a6d69e695b18fed06ee50 100644 --- a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProviderTool.cxx +++ b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProviderTool.cxx @@ -40,7 +40,8 @@ StatusCode PixelRawDataProviderTool::finalize() { return StatusCode::SUCCESS; } -StatusCode PixelRawDataProviderTool::convert(std::vector<const ROBFragment*>& vecRobs, IPixelRDO_Container* rdoIdc) const { +StatusCode PixelRawDataProviderTool::convert(std::vector<const ROBFragment*>& vecRobs, IPixelRDO_Container* rdoIdc, + IDCInDetBSErrContainer& decodingErrors ) const { if (vecRobs.size()==0) { return StatusCode::SUCCESS; } @@ -108,7 +109,7 @@ StatusCode PixelRawDataProviderTool::convert(std::vector<const ROBFragment*>& ve // here the code for the timing monitoring should be reinserted // using 1 container per event and subdetector - StatusCode sc = m_decoder->fillCollection(&**rob_it, rdoIdc); + StatusCode sc = m_decoder->fillCollection(&**rob_it, rdoIdc, decodingErrors); diff --git a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProviderTool.h b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProviderTool.h index 957ebe68b7753550519b047cde28b02ccc9c4722..8fa60a092dd7863cf51aaf29e58a56e78f28eccc 100644 --- a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProviderTool.h +++ b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProviderTool.h @@ -38,7 +38,8 @@ class PixelRawDataProviderTool : virtual public IPixelRawDataProviderTool, publi //! this is the main decoding method StatusCode convert( std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*>& vecRobs, - IPixelRDO_Container* rdoIdc ) const final; + IPixelRDO_Container* rdoIdc, + IDCInDetBSErrContainer& decodingErrors) const final; private: diff --git a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRodDecoder.cxx b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRodDecoder.cxx index 0d954116aed5feada4e270d62d2dc45f1bf11293..9eaa339c84cd8b0088ab60c0c4a24fd307675005 100644 --- a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRodDecoder.cxx +++ b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRodDecoder.cxx @@ -98,8 +98,9 @@ StatusCode PixelRodDecoder::finalize() { } -//---------------------------------------------------------------------------------------------------- fillCollection +//---------------------------------------------------------------------------------------------------- fillCixollection StatusCode PixelRodDecoder::fillCollection( const ROBFragment *robFrag, IPixelRDO_Container* rdoIdc, + IDCInDetBSErrContainer& /*decodingErrors*/, std::vector<IdentifierHash>* vecHash) const { #ifdef PIXEL_DEBUG diff --git a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRodDecoder.h b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRodDecoder.h index cb39c47853a40f0ba7dd49359cbe5058f5602b67..42181c88ab20e154ca3381aa9228a683cd459db8 100644 --- a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRodDecoder.h +++ b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRodDecoder.h @@ -40,7 +40,9 @@ class PixelRodDecoder : virtual public IPixelRodDecoder, public AthAlgTool { StatusCode initialize() override; StatusCode finalize() override; - StatusCode fillCollection (const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment *robFrag, IPixelRDO_Container* rdoIdc, + StatusCode fillCollection (const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment *robFrag, + IPixelRDO_Container* rdoIdc, + IDCInDetBSErrContainer& decodingErrors, std::vector<IdentifierHash>* vecHash = NULL) const override; StatusCode StoreBSError() const override; diff --git a/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/CacheCreator.cxx b/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/CacheCreator.cxx index ca2c267b5c30f90a16525adf4d7e1d4777f61468..17d6f70d4fcfe3011668888db988a7339a5e9ad4 100644 --- a/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/CacheCreator.cxx +++ b/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/CacheCreator.cxx @@ -32,6 +32,7 @@ namespace InDet{ ATH_CHECK( m_SCTRDOCacheKey.initialize(!m_SCTRDOCacheKey.key().empty()) ); ATH_CHECK( m_SCTBSErrCacheKey.initialize(!m_SCTBSErrCacheKey.key().empty()) ); ATH_CHECK( m_PixRDOCacheKey.initialize(!m_PixRDOCacheKey.key().empty()) ); + ATH_CHECK( m_PixBSErrCacheKey.initialize(!m_PixBSErrCacheKey.key().empty()) ); if (!m_disableTRT.value()) ATH_CHECK(detStore()->retrieve(m_pTRTHelper , "TRT_ID")); ATH_CHECK(detStore()->retrieve(m_sct_idHelper, "SCT_ID")); ATH_CHECK(detStore()->retrieve(m_pix_idHelper, "PixelID")); @@ -74,6 +75,8 @@ namespace InDet{ 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<int>::min())); + return StatusCode::SUCCESS; } } diff --git a/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/CacheCreator.h b/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/CacheCreator.h index 276b2978592883f3874ce6c24c0ada8c00a99e1f..b21bc974c6181d8db63afb0d000bfd6cd007a429 100644 --- a/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/CacheCreator.h +++ b/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/CacheCreator.h @@ -60,6 +60,9 @@ namespace InDet{ {this, "SCTBSErrCacheKey", ""}; SG::WriteHandleKey<PixelRDO_Cache> m_PixRDOCacheKey {this, "PixRDOCacheKey", ""}; + SG::WriteHandleKey<IDCInDetBSErrContainer_Cache> m_PixBSErrCacheKey + {this, "PixBSErrCacheKey", ""}; + BooleanProperty m_disableTRT{this, "disableTRT", false}; BooleanProperty m_disableWarning{this, "DisableViewWarning", false}; mutable std::atomic_bool m_disableWarningCheck; diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/InDetTrigRawDataProvider/TrigPixRawDataProvider.h b/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/InDetTrigRawDataProvider/TrigPixRawDataProvider.h index 80c363d8600b35ea5d0078c64e6671584a953ea9..0c6feddca7897b7275f1f66bb4f5b6e30dc63285 100644 --- a/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/InDetTrigRawDataProvider/TrigPixRawDataProvider.h +++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/InDetTrigRawDataProvider/TrigPixRawDataProvider.h @@ -24,7 +24,7 @@ //typedef #include "InDetRawData/PixelRDO_Container.h" - +#include "InDetByteStreamErrors/IDCInDetBSErrContainer.h" #include <string> @@ -61,8 +61,11 @@ namespace InDet { const PixelID* m_id; PixelRDO_Container* m_container; + std::string m_RDO_Key; + IDCInDetBSErrContainer* m_decodingErrors; + std::string m_decodingErrorsKey; // }; diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/src/TrigPixRawDataProvider.cxx b/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/src/TrigPixRawDataProvider.cxx index 9e0cf3537ab4bba2402a764d563e15808b24d306..09e026709559a19b013b16165a1c217fe351dee1 100644 --- a/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/src/TrigPixRawDataProvider.cxx +++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/src/TrigPixRawDataProvider.cxx @@ -30,11 +30,13 @@ namespace InDet { m_robDataProvider ("ROBDataProviderSvc", name), m_rawDataTool ("PixelRawDataProviderTool"), m_id(0), - m_container(0) + m_container(0), + m_decodingErrors(0) { declareInterface<InDet::ITrigRawDataProviderTool>(this); declareProperty("RDOKey", m_RDO_Key = "PixelRDOs_EFID"); declareProperty("RawDataProviderTool", m_rawDataTool); + declareProperty("DecodingErrorsKey", m_decodingErrorsKey="PixBSErr"); } TrigPixRawDataProvider::~TrigPixRawDataProvider(){ @@ -108,6 +110,14 @@ namespace InDet { << m_RDO_Key << endmsg; } } + + if( !evtStore()->transientContains<IDCInDetBSErrContainer>(m_decodingErrorsKey) ) { + m_decodingErrors = new IDCInDetBSErrContainer(m_id->wafer_hash_max(), std::numeric_limits<int>::min()); + ATH_CHECK(evtStore()->record(m_decodingErrors, m_decodingErrorsKey)); + } else { + ATH_CHECK(evtStore()->retrieve(m_decodingErrors, m_decodingErrorsKey)); + } + return sc; } @@ -144,7 +154,7 @@ namespace InDet { StatusCode scon = StatusCode::FAILURE; if (m_container){ - scon = m_rawDataTool->convert(listOfRobf,m_container); + scon = m_rawDataTool->convert(listOfRobf,m_container, *m_decodingErrors); if (scon==StatusCode::FAILURE) msg(MSG::ERROR) << "BS conversion into RDOs failed" << endmsg; } diff --git a/Trigger/TrigTools/TrigInDetConfig/python/InDetConfig.py b/Trigger/TrigTools/TrigInDetConfig/python/InDetConfig.py index c25b7238f721f21de1c0923530a6338c29b0925e..c25b9815b2bfc75401813b065f104777e68a01d5 100644 --- a/Trigger/TrigTools/TrigInDetConfig/python/InDetConfig.py +++ b/Trigger/TrigTools/TrigInDetConfig/python/InDetConfig.py @@ -13,6 +13,7 @@ class InDetCacheNames(object): SCTBSErrCacheKey = "SctBSErrCache" SCTRDOCacheKey = "SctRDOCache" PixRDOCacheKey = "PixRDOCache" + PixBSErrCacheKey = "PixBSErrCache" def InDetIDCCacheCreatorCfg(): #Create IdentifiableCaches @@ -25,7 +26,8 @@ def InDetIDCCacheCreatorCfg(): SpacePointCacheSCT = InDetCacheNames.SpacePointCacheSCT, SCTRDOCacheKey = InDetCacheNames.SCTRDOCacheKey, SCTBSErrCacheKey = InDetCacheNames.SCTBSErrCacheKey, - PixRDOCacheKey = InDetCacheNames.PixRDOCacheKey) + PixRDOCacheKey = InDetCacheNames.PixRDOCacheKey, + PixBSErrCacheKey = InDetCacheNames.PixBSErrCacheKey) acc.addEventAlgo( InDetCacheCreatorTrig ) return acc