From cacbefb1d80de229b1388cb9835c2719e025e925 Mon Sep 17 00:00:00 2001 From: Stewart Martin-Haugh <stewart.martin-haugh@cern.ch> Date: Thu, 22 Oct 2020 07:25:57 +0000 Subject: [PATCH] Pass EventContext down --- .../src/PixelRawDataProvider.cxx | 2 +- .../src/PixelRawDataProviderTool.cxx | 4 ++-- .../ISCTRawDataProviderTool.h | 5 +++-- .../SCT_RawDataByteStreamCnv/ISCT_RodDecoder.h | 3 ++- .../src/SCTRawDataProvider.cxx | 6 +++--- .../src/SCTRawDataProviderTool.cxx | 7 ++++--- .../src/SCTRawDataProviderTool.h | 3 ++- .../SCT_RawDataByteStreamCnv/src/SCT_RodDecoder.cxx | 8 +++++--- .../SCT_RawDataByteStreamCnv/src/SCT_RodDecoder.h | 4 +++- .../InDetRecToolInterfaces/ISiDetElementsRoadMaker.h | 5 +++-- .../SiDetElementsRoadMaker_xk.h | 7 ++++--- .../src/SiDetElementsRoadMaker_xk.cxx | 11 +++++++---- .../src/TrigSCTRawDataProvider.cxx | 3 ++- 13 files changed, 41 insertions(+), 27 deletions(-) diff --git a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProvider.cxx b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProvider.cxx index 53f53c1041a..abe679742d7 100644 --- a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProvider.cxx +++ b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProvider.cxx @@ -119,7 +119,7 @@ StatusCode PixelRawDataProvider::execute(const EventContext& ctx) const { } std::vector<const ROBFragment*> listOfRobf; - m_robDataProvider->getROBData( listOfRobs, listOfRobf); + m_robDataProvider->getROBData(ctx, listOfRobs, listOfRobf); #ifdef PIXEL_DEBUG ATH_MSG_DEBUG("Number of ROB fragments " << listOfRobf.size() diff --git a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProviderTool.cxx b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProviderTool.cxx index 1462f149d26..2a284b4cfd9 100644 --- a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProviderTool.cxx +++ b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProviderTool.cxx @@ -66,12 +66,12 @@ StatusCode PixelRawDataProviderTool::convert(std::vector<const ROBFragment*>& ve // are we working on a new event ? bool isNewEvent = (m_checkLVL1ID ? ((*rob_it)->rod_lvl1_id() != ent->m_LastLvl1ID) : true); if (isNewEvent) { - LVL1Collection = SG::makeHandle(m_LVL1CollectionKey); + LVL1Collection = SG::makeHandle(m_LVL1CollectionKey,ctx); ATH_CHECK(LVL1Collection.record(std::make_unique<InDetTimeCollection>())); ATH_MSG_DEBUG("InDetTimeCollection " << LVL1Collection.name() << " registered in StoreGate"); LVL1Collection->reserve(vecRobs.size()); - BCIDCollection = SG::makeHandle(m_BCIDCollectionKey); + BCIDCollection = SG::makeHandle(m_BCIDCollectionKey,ctx); ATH_CHECK(BCIDCollection.record(std::make_unique<InDetTimeCollection>())); ATH_MSG_DEBUG("InDetTimeCollection " << BCIDCollection.name() << " registered in StoreGate"); BCIDCollection->reserve(vecRobs.size()); diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/SCT_RawDataByteStreamCnv/ISCTRawDataProviderTool.h b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/SCT_RawDataByteStreamCnv/ISCTRawDataProviderTool.h index b54dcd33195..fc87f612579 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/SCT_RawDataByteStreamCnv/ISCTRawDataProviderTool.h +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/SCT_RawDataByteStreamCnv/ISCTRawDataProviderTool.h @@ -1,7 +1,7 @@ // -*- 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 */ /** @@ -39,7 +39,8 @@ class ISCTRawDataProviderTool : virtual public IAlgTool /** Main decoding methods */ virtual StatusCode convert(std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*>&, SCT_RDO_Container&, - IDCInDetBSErrContainer& errs) const = 0; + IDCInDetBSErrContainer& errs, + const EventContext& ctx) 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 4493f052e7c..4c3a799c0b4 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/SCT_RawDataByteStreamCnv/ISCT_RodDecoder.h +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/SCT_RawDataByteStreamCnv/ISCT_RodDecoder.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 */ /** @@ -37,6 +37,7 @@ class ISCT_RodDecoder : virtual public IAlgTool virtual StatusCode fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment&, SCT_RDO_Container&, IDCInDetBSErrContainer& errs, + const EventContext& ctx, 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 a27436fee3f..5d2f3df9017 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.cxx +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.cxx @@ -91,7 +91,7 @@ StatusCode SCTRawDataProvider::execute(const EventContext& ctx) const if (not m_roiSeeded.value()) { std::vector<uint32_t> rodList; m_cabling->getAllRods(rodList, ctx); - m_robDataProvider->getROBData(rodList , vecROBFrags); + m_robDataProvider->getROBData(ctx, rodList, vecROBFrags); } else { // Only load ROBs from RoI @@ -106,7 +106,7 @@ StatusCode SCTRawDataProvider::execute(const EventContext& ctx) const } m_regionSelector->ROBIDList(superRoI, listOfROBs); m_regionSelector->HashIDList(superRoI, hashIDs); - m_robDataProvider->getROBData(listOfROBs, vecROBFrags); + m_robDataProvider->getROBData(ctx, listOfROBs, vecROBFrags); } @@ -152,7 +152,7 @@ StatusCode SCTRawDataProvider::execute(const EventContext& ctx) const // Ask SCTRawDataProviderTool to decode it and to fill the IDC if (m_rawDataTool->convert(vecROBFrags, *(rdoContainer.ptr()), - *bsIDCErrContainer).isFailure()) { + *bsIDCErrContainer,ctx).isFailure()) { ATH_MSG_WARNING("BS conversion into RDOs failed"); } diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProviderTool.cxx b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProviderTool.cxx index 72d70a4b865..a9e9ce545e1 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProviderTool.cxx +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProviderTool.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 "SCTRawDataProviderTool.h" @@ -28,7 +28,8 @@ StatusCode SCTRawDataProviderTool::initialize() // Convert method StatusCode SCTRawDataProviderTool::convert(std::vector<const ROBFragment*>& vecROBFrags, SCT_RDO_Container& rdoIDCont, - IDCInDetBSErrContainer& errs) const + IDCInDetBSErrContainer& errs, + const EventContext& ctx) const { if (vecROBFrags.empty()) return StatusCode::SUCCESS; ATH_MSG_DEBUG("SCTRawDataProviderTool::convert()"); @@ -38,7 +39,7 @@ StatusCode SCTRawDataProviderTool::convert(std::vector<const ROBFragment*>& vecR StatusCode sc{StatusCode::SUCCESS}; for (const ROBFragment* robFrag : vecROBFrags) { // get the ID of this ROB/ROD - sc = m_decoder->fillCollection(*robFrag, rdoIDCont, errs); + sc = m_decoder->fillCollection(*robFrag, rdoIDCont, errs, ctx); if (sc == StatusCode::FAILURE) { if (m_decodeErrCount <= 100) { if (100 == m_decodeErrCount) { diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProviderTool.h b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProviderTool.h index 6af06ee63f8..f61e7c8bf6a 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProviderTool.h +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProviderTool.h @@ -51,7 +51,8 @@ class SCTRawDataProviderTool : public extends<AthAlgTool, ISCTRawDataProviderToo * */ virtual StatusCode convert(std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*>& vecROBFrags, SCT_RDO_Container& rdoIDCont, - IDCInDetBSErrContainer& errs) const override; + IDCInDetBSErrContainer& errs, + const EventContext& ctx) const override; private: diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodDecoder.cxx b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodDecoder.cxx index 729c6a24af1..1c520ea2199 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodDecoder.cxx +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodDecoder.cxx @@ -167,6 +167,7 @@ StatusCode SCT_RodDecoder::finalize() StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment& robFrag, SCT_RDO_Container& rdoIDCont, IDCInDetBSErrContainer& errorsIDC, + const EventContext& ctx, const std::vector<IdentifierHash>* vecHash) const { SCT_RodDecoderErrorsHelper errs{errorsIDC}; // on destruction will fill the IDC @@ -255,7 +256,7 @@ StatusCode SCT_RodDecoder::fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROB bool hasError{false}; if (((data16[n]>>13) & 0x7) == 0x1) { // Header bool breakNow{false}; - ATH_CHECK(processHeader(data16[n], robID, data, rdoIDCont, cache, errs, hasError, breakNow)); + ATH_CHECK(processHeader(data16[n], robID, data, rdoIDCont, cache, errs, hasError, breakNow,ctx)); if (hasError) sc = StatusCode::RECOVERABLE; if (breakNow) break; continue; @@ -630,7 +631,8 @@ StatusCode SCT_RodDecoder::processHeader(const uint16_t inData, CacheHelper& cache, SCT_RodDecoderErrorsHelper& errs, bool& hasError, - bool& breakNow) const + bool& breakNow, + const EventContext& ctx) const { StatusCode sc{StatusCode::SUCCESS, true}; @@ -668,7 +670,7 @@ StatusCode SCT_RodDecoder::processHeader(const uint16_t inData, return sc; } else { - data.setCollection(m_sctID, m_cabling->getHashFromOnlineId(onlineID), rdoIDCont, errs); + data.setCollection(m_sctID, m_cabling->getHashFromOnlineId(onlineID, ctx), rdoIDCont, errs); } // Look for masked off links - bit 7 if ((inData >> 7) & 0x1) { diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodDecoder.h b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodDecoder.h index a62464ee515..5825fdcfb0f 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodDecoder.h +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCT_RodDecoder.h @@ -108,6 +108,7 @@ class SCT_RodDecoder : public extends<AthAlgTool, ISCT_RodDecoder> virtual StatusCode fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment& robFrag, SCT_RDO_Container& rdoIDCont, IDCInDetBSErrContainer& errs, + const EventContext& ctx, const std::vector<IdentifierHash>* vecHash = nullptr) const override; private: @@ -275,7 +276,8 @@ class SCT_RodDecoder : public extends<AthAlgTool, ISCT_RodDecoder> CacheHelper& cache, SCT_RodDecoderErrorsHelper& errs, bool& hasError, - bool& breakNow) const; + bool& breakNow, + const EventContext& ctx) const; /** * @brief Process hit word in Super-Condensed mode diff --git a/InnerDetector/InDetRecTools/InDetRecToolInterfaces/InDetRecToolInterfaces/ISiDetElementsRoadMaker.h b/InnerDetector/InDetRecTools/InDetRecToolInterfaces/InDetRecToolInterfaces/ISiDetElementsRoadMaker.h index 7a2b0e2f8a4..567b451edea 100644 --- a/InnerDetector/InDetRecTools/InDetRecToolInterfaces/InDetRecToolInterfaces/ISiDetElementsRoadMaker.h +++ b/InnerDetector/InDetRecTools/InDetRecToolInterfaces/InDetRecToolInterfaces/ISiDetElementsRoadMaker.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 */ ///////////////////////////////////////////////////////////////////////////////// @@ -69,7 +69,8 @@ namespace InDet { ( std::list<Amg::Vector3D>& globalPositions, std::list<const InDetDD::SiDetectorElement*>& Road, bool testDirection, - InDet::SiDetElementRoadMakerData_xk & roadMakerData) const=0; + InDet::SiDetElementRoadMakerData_xk & roadMakerData, + const EventContext& ctx) const=0; /// This is the signature used in most ATLAS clients. /// @param[in] ctx: Event context diff --git a/InnerDetector/InDetRecTools/SiDetElementsRoadTool_xk/SiDetElementsRoadTool_xk/SiDetElementsRoadMaker_xk.h b/InnerDetector/InDetRecTools/SiDetElementsRoadTool_xk/SiDetElementsRoadTool_xk/SiDetElementsRoadMaker_xk.h index 0136496eaff..2d15d814233 100644 --- a/InnerDetector/InDetRecTools/SiDetElementsRoadTool_xk/SiDetElementsRoadTool_xk/SiDetElementsRoadMaker_xk.h +++ b/InnerDetector/InDetRecTools/SiDetElementsRoadTool_xk/SiDetElementsRoadTool_xk/SiDetElementsRoadMaker_xk.h @@ -95,7 +95,8 @@ namespace InDet{ (std::list<Amg::Vector3D>& globalPositions, std::list<const InDetDD::SiDetectorElement*>& Road, bool testDirection, - SiDetElementRoadMakerData_xk & roadMakerData) const override; + SiDetElementRoadMakerData_xk & roadMakerData, + const EventContext& ctx) const override; /// This is the signature used in most ATLAS clients. @@ -176,8 +177,8 @@ namespace InDet{ MsgStream& dumpConditions(MsgStream& out) const; inline - const SiDetElementsLayerVectors_xk *getLayers() const { - SG::ReadCondHandle<SiDetElementsLayerVectors_xk> layerVec(m_layerVecKey); + const SiDetElementsLayerVectors_xk *getLayers(const EventContext& ctx) const { + SG::ReadCondHandle<SiDetElementsLayerVectors_xk> layerVec(m_layerVecKey,ctx); if (not layerVec.isValid()) { ATH_MSG_ERROR("Failed to get " << m_layerVecKey.key()); } diff --git a/InnerDetector/InDetRecTools/SiDetElementsRoadTool_xk/src/SiDetElementsRoadMaker_xk.cxx b/InnerDetector/InDetRecTools/SiDetElementsRoadTool_xk/src/SiDetElementsRoadMaker_xk.cxx index b82051bccb7..92576b24e94 100644 --- a/InnerDetector/InDetRecTools/SiDetElementsRoadTool_xk/src/SiDetElementsRoadMaker_xk.cxx +++ b/InnerDetector/InDetRecTools/SiDetElementsRoadTool_xk/src/SiDetElementsRoadMaker_xk.cxx @@ -140,7 +140,9 @@ MsgStream& InDet::SiDetElementsRoadMaker_xk::dumpConditions(MsgStream& out) cons for (int i=0; i<n; ++i) s6.append(" "); s6.append("|"); - const SiDetElementsLayerVectors_xk &layer = *getLayers(); + const EventContext& ctx = Gaudi::Hive::currentContext(); + + const SiDetElementsLayerVectors_xk &layer = *getLayers(ctx); int maps = 0; if (layer[0].size()) ++maps; @@ -303,7 +305,8 @@ void InDet::SiDetElementsRoadMaker_xk::detElementsRoad (std::list<Amg::Vector3D>& globalPositions, std::list<const InDetDD::SiDetectorElement*>& Road, bool testDirection, - SiDetElementRoadMakerData_xk & roadMakerData) const + SiDetElementRoadMakerData_xk & roadMakerData, + const EventContext& ctx) const { if (!m_usePIX && !m_useSCT) return; @@ -318,7 +321,7 @@ void InDet::SiDetElementsRoadMaker_xk::detElementsRoad /// for same r in phi. /// For the barrel, we first sort in R, then for same R in phi, then for same /// phi in Z. - const SiDetElementsLayerVectors_xk &layer = *getLayers(); + const SiDetElementsLayerVectors_xk &layer = *getLayers(ctx); /// iterators over the positions to consider std::list<Amg::Vector3D>::iterator currentPosition=globalPositions.begin(), endPositions=globalPositions.end(); @@ -583,7 +586,7 @@ void InDet::SiDetElementsRoadMaker_xk::detElementsRoad } } /// now perform the road building using our set of positions - detElementsRoad(G, Road,testDirection, roadMakerData); + detElementsRoad(G, Road,testDirection, roadMakerData,ctx); } diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/src/TrigSCTRawDataProvider.cxx b/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/src/TrigSCTRawDataProvider.cxx index aeac885a8d5..20af5fa8fa0 100644 --- a/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/src/TrigSCTRawDataProvider.cxx +++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/src/TrigSCTRawDataProvider.cxx @@ -177,7 +177,8 @@ 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); + auto ctx = Gaudi::Hive::currentContext(); + scon = m_rawDataTool->convert(listOfRobf,*m_container,*m_bsErrCont,ctx); if (scon==StatusCode::FAILURE) msg(MSG::ERROR) << "BS conversion into RDOs failed" << endmsg; } -- GitLab