diff --git a/InnerDetector/InDetConditions/InDetConditionsSummaryService/InDetConditionsSummaryService/IInDetConditionsTool.h b/InnerDetector/InDetConditions/InDetConditionsSummaryService/InDetConditionsSummaryService/IInDetConditionsTool.h index 70a80995c9ea4071502365ae17f3ca676f5dbfc0..d3f663ec1b04c96412b912d9c104b07cf6a62e77 100644 --- a/InnerDetector/InDetConditions/InDetConditionsSummaryService/InDetConditionsSummaryService/IInDetConditionsTool.h +++ b/InnerDetector/InDetConditions/InDetConditionsSummaryService/InDetConditionsSummaryService/IInDetConditionsTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration */ /** @@ -53,6 +53,7 @@ public: virtual bool hasBSError(const IdentifierHash& elementHash, const EventContext& ctx) const =0; virtual bool hasBSError(const IdentifierHash& elementHash, Identifier elementId, const EventContext& ctx) const =0; virtual uint64_t getBSErrorWord(const IdentifierHash& elementHash, const EventContext& ctx) const =0; + virtual uint64_t getBSErrorWord(const IdentifierHash& elementHash, const int index, const EventContext& ctx) const =0; }; diff --git a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelConfigCondAlg.h b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelConfigCondAlg.h index c2c2cd6087151fa583342d10ca7fef8f38ccaf0b..7dacac1a898a54e9ed321c379a23c8d73d20c840 100644 --- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelConfigCondAlg.h +++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelConfigCondAlg.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration */ /** * @file PixelConditionsAlgorithms/PixelConfigCondAlg.h diff --git a/InnerDetector/InDetConditions/PixelConditionsTools/CMakeLists.txt b/InnerDetector/InDetConditions/PixelConditionsTools/CMakeLists.txt index b76593f2e4a158ece54aee8d4f042b04c74d14fc..ff8a5f0dbca253208196ea5f28bf9f8cbaf612ff 100644 --- a/InnerDetector/InDetConditions/PixelConditionsTools/CMakeLists.txt +++ b/InnerDetector/InDetConditions/PixelConditionsTools/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( PixelConditionsTools ) @@ -13,7 +13,7 @@ atlas_add_library( PixelConditionsToolsLib atlas_add_component( PixelConditionsTools src/*.cxx src/components/*.cxx - LINK_LIBRARIES AthenaBaseComps AthenaKernel CxxUtils GaudiKernel Identifier InDetByteStreamErrors InDetConditionsSummaryService InDetIdentifier PixelCablingLib PixelConditionsData PixelConditionsToolsLib StoreGateLib ) + LINK_LIBRARIES AthenaBaseComps AthenaKernel CxxUtils GaudiKernel Identifier InDetByteStreamErrors InDetConditionsSummaryService InDetIdentifier PixelCablingLib PixelConditionsData InDetReadoutGeometry PixelReadoutGeometry PixelConditionsToolsLib StoreGateLib ) # Install files from the package: atlas_install_joboptions( share/*.py ) diff --git a/InnerDetector/InDetConditions/PixelConditionsTools/python/PixelConditionsSummaryConfig.py b/InnerDetector/InDetConditions/PixelConditionsTools/python/PixelConditionsSummaryConfig.py index 1af6d831107f9d26addf62145143952e5561507d..fe52b0b93515da8c954400df6c2a099dab3c912e 100644 --- a/InnerDetector/InDetConditions/PixelConditionsTools/python/PixelConditionsSummaryConfig.py +++ b/InnerDetector/InDetConditions/PixelConditionsTools/python/PixelConditionsSummaryConfig.py @@ -1,6 +1,6 @@ """Define a function to configure PixelConditionsSummaryCfg -Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration """ from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory @@ -12,7 +12,8 @@ from PixelConditionsAlgorithms.PixelConditionsConfig import ( def PixelConditionsSummaryCfg(flags, name="PixelConditionsSummary", **kwargs): """Return configured ComponentAccumulator with tool for Pixel Conditions""" acc = ComponentAccumulator() - kwargs.setdefault("UseByteStream", not flags.Input.isMC) + kwargs.setdefault("UseByteStreamFEI4", not flags.Input.isMC) + kwargs.setdefault("UseByteStreamFEI3", not flags.Input.isMC) acc.merge(PixelDCSCondStateAlgCfg(flags)) acc.merge(PixelDCSCondStatusAlgCfg(flags)) acc.merge(PixelDeadMapCondAlgCfg(flags)) diff --git a/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelConditionsSummaryTool.cxx b/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelConditionsSummaryTool.cxx index ae27d679a2e615e0f861b7673da94aeebf44fff4..36296cbb2994139daed4542b8c7df017634c8885 100644 --- a/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelConditionsSummaryTool.cxx +++ b/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelConditionsSummaryTool.cxx @@ -1,20 +1,20 @@ /* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration */ #include "PixelConditionsSummaryTool.h" +#include "InDetReadoutGeometry/SiDetectorElement.h" +#include "PixelReadoutGeometry/PixelModuleDesign.h" PixelConditionsSummaryTool::PixelConditionsSummaryTool(const std::string& type, const std::string& name, const IInterface* parent) :AthAlgTool(type, name, parent), - m_pixelID(nullptr), - m_useByteStream(false) + m_pixelID(nullptr) { m_isActiveStatus.push_back("OK"); m_isActiveStates.push_back("READY"); declareProperty("IsActiveStatus", m_isActiveStatus); declareProperty("IsActiveStates", m_isActiveStates); - declareProperty("UseByteStream", m_useByteStream, "Switch for usage of the ByteStream error service"); } PixelConditionsSummaryTool::~PixelConditionsSummaryTool(){} @@ -24,13 +24,17 @@ StatusCode PixelConditionsSummaryTool::initialize(){ ATH_CHECK(m_condDCSStateKey.initialize()); ATH_CHECK(m_condDCSStatusKey.initialize()); - ATH_CHECK(m_BSErrContReadKey.initialize(m_useByteStream && !m_BSErrContReadKey.empty())); +// const EventContext& ctx{Gaudi::Hive::currentContext()}; +// bool useByteStream = (SG::ReadCondHandle<PixelModuleData>(m_configKey,ctx)->getUseByteStreamErrFEI4() || SG::ReadCondHandle<PixelModuleData>(m_configKey,ctx)->getUseByteStreamErrFEI3()); + bool useByteStream = (m_useByteStreamFEI4 || m_useByteStreamFEI3); +// ATH_CHECK(m_BSErrContReadKey.initialize(useByteStream && !m_BSErrContReadKey.empty())); + ATH_CHECK(m_BSErrContReadKey.initialize(useByteStream && !m_BSErrContReadKey.empty())); ATH_CHECK(detStore()->retrieve(m_pixelID,"PixelID")); - ATH_CHECK(m_condTDAQKey.initialize( !m_condTDAQKey.empty() )); ATH_CHECK(m_condDeadMapKey.initialize()); ATH_CHECK(m_pixelCabling.retrieve()); + ATH_CHECK(m_pixelDetEleCollKey.initialize()); for (unsigned int istate=0; istate<m_isActiveStates.size(); istate++) { if (m_isActiveStates[istate]=="READY") { m_activeState.push_back(PixelDCSStateData::DCSModuleState::READY); } @@ -83,14 +87,34 @@ PixelConditionsSummaryTool::IDCCacheEntry* PixelConditionsSummaryTool::getCacheE } uint64_t PixelConditionsSummaryTool::getBSErrorWord(const IdentifierHash& moduleHash, const EventContext& ctx) const { - if (!m_useByteStream) { return 0; } + return getBSErrorWord(moduleHash, moduleHash, ctx); +} + +uint64_t PixelConditionsSummaryTool::getBSErrorWord(const IdentifierHash& moduleHash, const int index, const EventContext& ctx) const { + + if (moduleHash>=m_pixelID->wafer_hash_max()) { + ATH_MSG_WARNING("invalid moduleHash : " << moduleHash << " exceed maximum hash id: " << m_pixelID->wafer_hash_max()); + return 0; + } + + SG::ReadCondHandle<InDetDD::SiDetectorElementCollection> pixelDetEleHandle(m_pixelDetEleCollKey, ctx); + const InDetDD::SiDetectorElementCollection* elements(*pixelDetEleHandle); + if (not pixelDetEleHandle.isValid() or elements==nullptr) { + ATH_MSG_WARNING(m_pixelDetEleCollKey.fullKey() << " is not available."); + return 0; + } + const InDetDD::SiDetectorElement *element = elements->getDetectorElement(moduleHash); + const InDetDD::PixelModuleDesign *p_design = static_cast<const InDetDD::PixelModuleDesign*>(&element->design()); + + if (!m_useByteStreamFEI4 && p_design->getReadoutTechnology()==InDetDD::PixelModuleDesign::FEI4) { return 0; } + if (!m_useByteStreamFEI3 && p_design->getReadoutTechnology()==InDetDD::PixelModuleDesign::FEI3) { return 0; } std::scoped_lock<std::mutex> lock{*m_cacheMutex.get(ctx)}; auto idcCachePtr = getCacheEntry(ctx)->IDCCache; if (idcCachePtr==nullptr) { ATH_MSG_ERROR("PixelConditionsSummaryTool No cache! " ); } - uint64_t word = (uint64_t)idcCachePtr->retrieve(moduleHash); + uint64_t word = (uint64_t)idcCachePtr->retrieve(index); return word<m_missingErrorInfo ? word : 0; } @@ -105,8 +129,6 @@ bool PixelConditionsSummaryTool::hasBSError(const IdentifierHash& moduleHash, Id } bool PixelConditionsSummaryTool::hasBSError(const IdentifierHash& moduleHash, const EventContext& ctx) const { - if (!m_useByteStream) { return false; } - uint64_t word = getBSErrorWord(moduleHash,ctx); if (PixelByteStreamErrors::hasError(word,PixelByteStreamErrors::TruncatedROB)) { return true; } if (PixelByteStreamErrors::hasError(word,PixelByteStreamErrors::MaskedROB)) { return true; } @@ -124,8 +146,6 @@ bool PixelConditionsSummaryTool::hasBSError(const IdentifierHash& moduleHash, co } bool PixelConditionsSummaryTool::hasBSError(const IdentifierHash& moduleHash, Identifier pixid, const EventContext& ctx) const { - if (!m_useByteStream) { return false; } - if (hasBSError(moduleHash, ctx)) { return true; } int maxHash = m_pixelID->wafer_hash_max(); @@ -133,7 +153,7 @@ bool PixelConditionsSummaryTool::hasBSError(const IdentifierHash& moduleHash, Id int chFE = m_pixelCabling->getFE(&pixid,moduleID); int indexFE = (1+chFE)*maxHash+(int)moduleHash; // (FE_channel+1)*2048 + moduleHash - uint64_t word = getBSErrorWord(indexFE,ctx); + uint64_t word = getBSErrorWord(moduleHash,indexFE,ctx); if (PixelByteStreamErrors::hasError(word,PixelByteStreamErrors::Preamble)) { return true; } if (PixelByteStreamErrors::hasError(word,PixelByteStreamErrors::TimeOut)) { return true; } if (PixelByteStreamErrors::hasError(word,PixelByteStreamErrors::LVL1ID)) { return true; } @@ -170,7 +190,8 @@ bool PixelConditionsSummaryTool::isActive(const IdentifierHash& moduleHash, cons // The index array is defined in PixelRawDataProviderTool::SizeOfIDCInDetBSErrContainer() // Here, 52736 is a separator beween error flags and isActive flags. - if (m_useByteStream && getBSErrorWord(moduleHash+52736,ctx)!=1) { return false; } + bool useByteStream = (m_useByteStreamFEI4 || m_useByteStreamFEI3); + if (useByteStream && getBSErrorWord(moduleHash,moduleHash+52736,ctx)!=1) { return false; } SG::ReadCondHandle<PixelDCSStateData> dcsstate_data(m_condDCSStateKey,ctx); bool isDCSActive = false; @@ -190,7 +211,8 @@ bool PixelConditionsSummaryTool::isActive(const IdentifierHash& moduleHash, cons // The index array is defined in PixelRawDataProviderTool::SizeOfIDCInDetBSErrContainer() // Here, 52736 is a separator beween error flags and isActive flags. - if (m_useByteStream && getBSErrorWord(moduleHash+52736,ctx)!=1) { return false; } + bool useByteStream = (m_useByteStreamFEI4 || m_useByteStreamFEI3); + if (useByteStream && getBSErrorWord(moduleHash,moduleHash+52736,ctx)!=1) { return false; } SG::ReadCondHandle<PixelDCSStateData> dcsstate_data(m_condDCSStateKey,ctx); bool isDCSActive = false; @@ -233,7 +255,7 @@ bool PixelConditionsSummaryTool::isGood(const Identifier& elementId, const InDet Identifier moduleID = m_pixelID->wafer_id(elementId); IdentifierHash moduleHash = m_pixelID->wafer_hash(moduleID); - if (m_useByteStream && hasBSError(moduleHash, ctx)) { return false; } + if (hasBSError(moduleHash, ctx)) { return false; } SG::ReadCondHandle<PixelDCSStateData> dcsstate_data(m_condDCSStateKey, ctx); bool isDCSActive = false; @@ -255,7 +277,7 @@ bool PixelConditionsSummaryTool::isGood(const Identifier& elementId, const InDet if (h==InDetConditions::PIXEL_CHIP) { if (!checkChipStatus(moduleHash, elementId)) { return false; } - if (m_useByteStream && hasBSError(moduleHash, elementId, ctx)) { return false; } + if (hasBSError(moduleHash, elementId, ctx)) { return false; } } return true; @@ -263,7 +285,7 @@ bool PixelConditionsSummaryTool::isGood(const Identifier& elementId, const InDet bool PixelConditionsSummaryTool::isGood(const IdentifierHash& moduleHash, const EventContext& ctx) const { - if (m_useByteStream && hasBSError(moduleHash, ctx)) { return false; } + if (hasBSError(moduleHash, ctx)) { return false; } SG::ReadCondHandle<PixelDCSStateData> dcsstate_data(m_condDCSStateKey, ctx); bool isDCSActive = false; @@ -288,7 +310,7 @@ bool PixelConditionsSummaryTool::isGood(const IdentifierHash& moduleHash, const bool PixelConditionsSummaryTool::isGood(const IdentifierHash & moduleHash, const Identifier &elementId, const EventContext& ctx) const { - if (m_useByteStream && hasBSError(moduleHash, ctx)) { return false; } + if (hasBSError(moduleHash, ctx)) { return false; } SG::ReadCondHandle<PixelDCSStateData> dcsstate_data(m_condDCSStateKey, ctx); bool isDCSActive = false; @@ -310,7 +332,7 @@ bool PixelConditionsSummaryTool::isGood(const IdentifierHash & moduleHash, const if (!checkChipStatus(moduleHash, elementId)) { return false; } - if (m_useByteStream && hasBSError(moduleHash, elementId, ctx)) { return false; } + if (hasBSError(moduleHash, elementId, ctx)) { return false; } return true; } @@ -343,12 +365,7 @@ double PixelConditionsSummaryTool::goodFraction(const IdentifierHash & moduleHas for (int i=std::min(phiStart,phiEnd); i<=std::max(phiStart,phiEnd); i++) { for (int j=std::min(etaStart,etaEnd); j<=std::max(etaStart,etaEnd); j++) { if (checkChipStatus(moduleHash, m_pixelID->pixel_id(moduleID,i,j), ctx)) { - if (m_useByteStream) { - if (!hasBSError(moduleHash, m_pixelID->pixel_id(moduleID,i,j), ctx)) { nGood++; } - } - else { - nGood++; - } + if (!hasBSError(moduleHash, m_pixelID->pixel_id(moduleID,i,j), ctx)) { nGood++; } } } } diff --git a/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelConditionsSummaryTool.h b/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelConditionsSummaryTool.h index ee460a28b423d10d98a8069b324b2591febcef7f..b015d1a0e473c7af57392e66dc5171220e881b3c 100644 --- a/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelConditionsSummaryTool.h +++ b/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelConditionsSummaryTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration */ /** * @file PixelConditionsTools/PixelConditionsSummaryTool.h @@ -15,6 +15,7 @@ #include "AthenaBaseComps/AthAlgTool.h" #include "GaudiKernel/ServiceHandle.h" +#include "Gaudi/Property.h" #include "InDetConditionsSummaryService/IInDetConditionsTool.h" #include "AthenaKernel/SlotSpecificObj.h" @@ -23,7 +24,6 @@ #include "Identifier/IdentifierHash.h" #include "InDetIdentifier/PixelID.h" -#include "PixelConditionsData/PixelModuleData.h" #include "PixelConditionsData/PixelDeadMapCondData.h" #include "PixelConditionsData/PixelDCSStateData.h" #include "PixelConditionsData/PixelDCSStatusData.h" @@ -31,6 +31,7 @@ #include "PixelConditionsData/PixelByteStreamErrors.h" #include "StoreGate/ReadCondHandleKey.h" #include "PixelCabling/IPixelCablingSvc.h" +#include "InDetReadoutGeometry/SiDetectorElementCollection.h" class PixelConditionsSummaryTool: public AthAlgTool, public IInDetConditionsTool{ public: @@ -65,6 +66,7 @@ class PixelConditionsSummaryTool: public AthAlgTool, public IInDetConditionsTool virtual bool hasBSError(const IdentifierHash& moduleHash, const EventContext& ctx) const override final; virtual bool hasBSError(const IdentifierHash& moduleHash, Identifier pixid, const EventContext& ctx) const override final; virtual uint64_t getBSErrorWord(const IdentifierHash& moduleHash, const EventContext& ctx) const override final; + virtual uint64_t getBSErrorWord(const IdentifierHash& moduleHash, const int index, const EventContext& ctx) const override final; bool checkChipStatus(IdentifierHash moduleHash, Identifier pixid) const; bool checkChipStatus(IdentifierHash moduleHash, Identifier pixid, const EventContext& ctx) const; @@ -77,7 +79,11 @@ class PixelConditionsSummaryTool: public AthAlgTool, public IInDetConditionsTool std::vector<int> m_activeState; std::vector<int> m_activeStatus; - bool m_useByteStream; + Gaudi::Property<bool> m_useByteStreamFEI4 + {this, "UseByteStreamFEI4", false, "Switch of the ByteStream error for FEI4"}; + + Gaudi::Property<bool> m_useByteStreamFEI3 + {this, "UseByteStreamFEI3", false, "Switch of the ByteStream error for FEI3"}; SG::ReadCondHandleKey<PixelDCSStateData> m_condDCSStateKey {this, "PixelDCSStateCondData", "PixelDCSStateCondData", "Pixel FSM state key"}; @@ -97,6 +103,9 @@ class PixelConditionsSummaryTool: public AthAlgTool, public IInDetConditionsTool SG::ReadHandleKey<IDCInDetBSErrContainer> m_BSErrContReadKey {this, "PixelByteStreamErrs", "PixelByteStreamErrs", "PixelByteStreamErrs container key"}; + SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> m_pixelDetEleCollKey + {this, "PixelDetEleCollKey", "PixelDetectorElementCollection", "Key of SiDetectorElementCollection for Pixel"}; + const uint64_t m_missingErrorInfo{std::numeric_limits<uint64_t>::max()-3000000000}; mutable SG::SlotSpecificObj<std::mutex> m_cacheMutex ATLAS_THREAD_SAFE; diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ConditionsSummaryTool.cxx b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ConditionsSummaryTool.cxx index 931263fb47de037451d9cbf2baff7fb8e1c0c8b1..3b4b180a0a169106fe5ecb3ed7abd0f43fd12f09 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ConditionsSummaryTool.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ConditionsSummaryTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration */ /** @@ -188,3 +188,9 @@ SCT_ConditionsSummaryTool::getBSErrorWord(const IdentifierHash& /*moduleHash*/, return 0; } +uint64_t +SCT_ConditionsSummaryTool::getBSErrorWord(const IdentifierHash& /*moduleHash*/, const int /*index*/, const EventContext& /*ctx*/) const { + ATH_MSG_WARNING("getBSErrorWord() is not implemented for SCT_ConditionsSummaryTool"); + return 0; +} + diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ConditionsSummaryTool.h b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ConditionsSummaryTool.h index c6baa8060ae892dfba3f36f469610a29c89f5731..f43ce30ef00fc0ea6dd3d870c1446e98b548c799 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ConditionsSummaryTool.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ConditionsSummaryTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration */ /** @@ -65,6 +65,7 @@ public: virtual bool hasBSError(const IdentifierHash& elementHash, const EventContext& ctx) const override; virtual bool hasBSError(const IdentifierHash& elementHash, Identifier elementId, const EventContext& ctx) const override; virtual uint64_t getBSErrorWord(const IdentifierHash& moduleHash, const EventContext& ctx) const override; + virtual uint64_t getBSErrorWord(const IdentifierHash& moduleHash, const int index, const EventContext& ctx) const override; //@} private: StringArrayProperty m_reportingTools; //!< list of tools to be used diff --git a/InnerDetector/InDetConfig/python/InDetRecToolConfig.py b/InnerDetector/InDetConfig/python/InDetRecToolConfig.py index 8009a7a76b5348469e390f2444fe56421a1da452..06d51e0bdc64734455876fd5e2acd8e4f809670a 100644 --- a/InnerDetector/InDetConfig/python/InDetRecToolConfig.py +++ b/InnerDetector/InDetConfig/python/InDetRecToolConfig.py @@ -167,7 +167,8 @@ def PixelConditionsSummaryToolCfg(flags, name = "InDetPixelConditionsSummaryTool #FIXME - fix the duplication in TrigInDetConfig.py and PixelConditionsSummaryConfig.py from PixelConditionsAlgorithms.PixelConditionsConfig import PixelConfigCondAlgCfg, PixelDCSCondStateAlgCfg, PixelDCSCondStatusAlgCfg, PixelDeadMapCondAlgCfg - kwargs.setdefault( "UseByteStream", not flags.Input.isMC) + kwargs.setdefault( "UseByteStreamFEI4", not flags.Input.isMC) + kwargs.setdefault( "UseByteStreamFEI3", not flags.Input.isMC) if flags.InDet.usePixelDCS: kwargs.setdefault( "IsActiveStates", [ 'READY', 'ON', 'UNKNOWN', 'TRANSITION', 'UNDEFINED' ] ) diff --git a/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py b/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py index 279efe9963c89e12ab0ed0e35693d18fec5a8f29..6b392f0814120161eb3a794d0a36a09815d4c962 100644 --- a/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py +++ b/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration from AthenaCommon import CfgMgr from Digitization.DigitizationFlags import digitizationFlags @@ -69,7 +69,9 @@ def SensorSimTool(name="SensorSimTool", **kwargs): def FrontEndSimTool(name="FrontEndSimTool", **kwargs): from PixelConditionsTools.PixelConditionsToolsConf import PixelConditionsSummaryTool - pixelConditionsSummaryToolSetup = PixelConditionsSummaryTool("PixelConditionsSummaryTool", UseByteStream=False) + pixelConditionsSummaryToolSetup = PixelConditionsSummaryTool("PixelConditionsSummaryTool", + UseByteStreamFEI4=False, + UseByteStreamFEI3=False) kwargs.setdefault("PixelConditionsSummaryTool", pixelConditionsSummaryToolSetup) return CfgMgr.FrontEndSimTool(name, **kwargs) @@ -87,7 +89,9 @@ def BarrelFEI4SimTool(name="BarrelFEI4SimTool", **kwargs): kwargs.setdefault("BarrelEC", 0) kwargs.setdefault("DoNoise", digitizationFlags.doInDetNoise.get_Value()) from PixelConditionsTools.PixelConditionsToolsConf import PixelConditionsSummaryTool - pixelConditionsSummaryToolSetup = PixelConditionsSummaryTool("PixelConditionsSummaryTool", UseByteStream=False) + pixelConditionsSummaryToolSetup = PixelConditionsSummaryTool("PixelConditionsSummaryTool", + UseByteStreamFEI4=False, + UseByteStreamFEI3=False) kwargs.setdefault("PixelConditionsSummaryTool", pixelConditionsSummaryToolSetup) return CfgMgr.FEI4SimTool(name, **kwargs) @@ -95,21 +99,27 @@ def DBMFEI4SimTool(name="DBMFEI4SimTool", **kwargs): kwargs.setdefault("BarrelEC", 4) kwargs.setdefault("DoNoise", digitizationFlags.doInDetNoise.get_Value()) from PixelConditionsTools.PixelConditionsToolsConf import PixelConditionsSummaryTool - pixelConditionsSummaryToolSetup = PixelConditionsSummaryTool("PixelConditionsSummaryTool", UseByteStream=False) + pixelConditionsSummaryToolSetup = PixelConditionsSummaryTool("PixelConditionsSummaryTool", + UseByteStreamFEI4=False, + UseByteStreamFEI3=False) kwargs.setdefault("PixelConditionsSummaryTool", pixelConditionsSummaryToolSetup) return CfgMgr.FEI4SimTool(name, **kwargs) def BarrelFEI3SimTool(name="BarrelFEI3SimTool", **kwargs): kwargs.setdefault("BarrelEC", 0) from PixelConditionsTools.PixelConditionsToolsConf import PixelConditionsSummaryTool - pixelConditionsSummaryToolSetup = PixelConditionsSummaryTool("PixelConditionsSummaryTool", UseByteStream=False) + pixelConditionsSummaryToolSetup = PixelConditionsSummaryTool("PixelConditionsSummaryTool", + UseByteStreamFEI4=False, + UseByteStreamFEI3=False) kwargs.setdefault("PixelConditionsSummaryTool", pixelConditionsSummaryToolSetup) return CfgMgr.FEI3SimTool(name, **kwargs) def EndcapFEI3SimTool(name="EndcapFEI3SimTool", **kwargs): kwargs.setdefault("BarrelEC", 2) from PixelConditionsTools.PixelConditionsToolsConf import PixelConditionsSummaryTool - pixelConditionsSummaryToolSetup = PixelConditionsSummaryTool("PixelConditionsSummaryTool", UseByteStream=False) + pixelConditionsSummaryToolSetup = PixelConditionsSummaryTool("PixelConditionsSummaryTool", + UseByteStreamFEI4=False, + UseByteStreamFEI3=False) kwargs.setdefault("PixelConditionsSummaryTool", pixelConditionsSummaryToolSetup) return CfgMgr.FEI3SimTool(name, **kwargs) diff --git a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRodDecoder.cxx b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRodDecoder.cxx index 3926185870eab9d66c243daceef581753e25cc23..471a2b4b37089aa6093f2c29b159c7fd09490440 100644 --- a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRodDecoder.cxx +++ b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRodDecoder.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration */ #include "PixelRodDecoder.h" @@ -240,7 +240,7 @@ StatusCode PixelRodDecoder::fillCollection( const ROBFragment *robFrag, IPixelRD int indexModule = -1; int indexFE = -1; - if (word_type!=PRB_LINKHEADER) { +// if (word_type!=PRB_LINKHEADER) { if (offlineIdHash!=0xffffffff) { // now write the error word to the service isIBLModule = false; isDBMModule = false; @@ -260,7 +260,7 @@ StatusCode PixelRodDecoder::fillCollection( const ROBFragment *robFrag, IPixelRD indexModule = static_cast<int>(offlineIdHash); // [0,2047] indexFE = (1+chFE)*m_pixel_id->wafer_hash_max()+static_cast<int>(offlineIdHash); // index for IDCInDetBSErrContainer } - } +// } bool headerErr_decoding = false; bool headerErr_flagged = false; @@ -398,13 +398,26 @@ StatusCode PixelRodDecoder::fillCollection( const ROBFragment *robFrag, IPixelRD else { mLVL1A=mLVL1A+mBCID_max_pix; } } - // Fill header error word per module - if (headerErr_decoding) { PixelByteStreamErrors::addError(bsErrWord[static_cast<int>(offlineIdHash)],PixelByteStreamErrors::Decoding); } - if (headerErr_flagged) { PixelByteStreamErrors::addError(bsErrWord[static_cast<int>(offlineIdHash)],PixelByteStreamErrors::Flagged); } - if (headerErr_preamble) { PixelByteStreamErrors::addError(bsErrWord[static_cast<int>(offlineIdHash)],PixelByteStreamErrors::Preamble); } - if (headerErr_timeout) { PixelByteStreamErrors::addError(bsErrWord[static_cast<int>(offlineIdHash)],PixelByteStreamErrors::TimeOut); } - if (headerErr_lvl1id) { PixelByteStreamErrors::addError(bsErrWord[static_cast<int>(offlineIdHash)],PixelByteStreamErrors::LVL1ID); } - if (headerErr_bcid) { PixelByteStreamErrors::addError(bsErrWord[static_cast<int>(offlineIdHash)],PixelByteStreamErrors::BCID); } + // Fill header error word per IBL FE + if (isIBLModule || isDBMModule) { + if (indexFE>-1) { + if (headerErr_decoding) { PixelByteStreamErrors::addError(bsErrWord[indexFE],PixelByteStreamErrors::Decoding); } + if (headerErr_flagged) { PixelByteStreamErrors::addError(bsErrWord[indexFE],PixelByteStreamErrors::Flagged); } + if (headerErr_preamble) { PixelByteStreamErrors::addError(bsErrWord[indexFE],PixelByteStreamErrors::Preamble); } + if (headerErr_timeout) { PixelByteStreamErrors::addError(bsErrWord[indexFE],PixelByteStreamErrors::TimeOut); } + if (headerErr_lvl1id) { PixelByteStreamErrors::addError(bsErrWord[indexFE],PixelByteStreamErrors::LVL1ID); } + if (headerErr_bcid) { PixelByteStreamErrors::addError(bsErrWord[indexFE],PixelByteStreamErrors::BCID); } + } + } + else { + // Fill header error word per module + if (headerErr_decoding) { PixelByteStreamErrors::addError(bsErrWord[static_cast<int>(offlineIdHash)],PixelByteStreamErrors::Decoding); } + if (headerErr_flagged) { PixelByteStreamErrors::addError(bsErrWord[static_cast<int>(offlineIdHash)],PixelByteStreamErrors::Flagged); } + if (headerErr_preamble) { PixelByteStreamErrors::addError(bsErrWord[static_cast<int>(offlineIdHash)],PixelByteStreamErrors::Preamble); } + if (headerErr_timeout) { PixelByteStreamErrors::addError(bsErrWord[static_cast<int>(offlineIdHash)],PixelByteStreamErrors::TimeOut); } + if (headerErr_lvl1id) { PixelByteStreamErrors::addError(bsErrWord[static_cast<int>(offlineIdHash)],PixelByteStreamErrors::LVL1ID); } + if (headerErr_bcid) { PixelByteStreamErrors::addError(bsErrWord[static_cast<int>(offlineIdHash)],PixelByteStreamErrors::BCID); } + } #ifdef PIXEL_DEBUG @@ -513,7 +526,6 @@ StatusCode PixelRodDecoder::fillCollection( const ROBFragment *robFrag, IPixelRD else { // it is an IBL/DBM hit word, but it hasn't been recognised generalwarning("In ROB 0x" << std::hex << robId << ", FE: 0x" << mLink << ": IBL/DBM hit word 0x" << rawDataWord << " not recognised" << std::dec); m_numDecodingErrors++; - if (indexModule>-1) { PixelByteStreamErrors::addError(bsErrWord[indexModule],PixelByteStreamErrors::Decoding); } if (indexFE>-1) { PixelByteStreamErrors::addError(bsErrWord[indexFE],PixelByteStreamErrors::Decoding); } continue; } @@ -554,12 +566,11 @@ StatusCode PixelRodDecoder::fillCollection( const ROBFragment *robFrag, IPixelRD // Decode only modules in provided list of hashes (i.e. not doing full scan) // Disabled for now. if (offlineIdHash == skipHash) continue; - if(offlineIdHash != lastHash){ + if (offlineIdHash != lastHash) { lastHash = offlineIdHash; - if(vecHash!=nullptr ){ + if (vecHash!=nullptr) { std::vector<IdentifierHash>::iterator p = std::find(vecHash->begin(),vecHash->end(),offlineIdHash); - - if (p == vecHash->end()){ // is the Hash to be skipped (not in the request list)? + if (p == vecHash->end()) { // is the Hash to be skipped (not in the request list)? skipHash = offlineIdHash; continue; } @@ -619,7 +630,6 @@ StatusCode PixelRodDecoder::fillCollection( const ROBFragment *robFrag, IPixelRD if (pixelId == invalidPixelId) { generalwarning("In ROB 0x" << std::hex << robId << ", FE 0x" << mLink << ": Illegal pixelId - hit word 0x" << rawDataWord << " decodes to ToT1 = 0" << (tot[i] >> 4) << ", ToT2 = 0x" << (tot[i] & 0xF) << ", row = " << std::dec << row[i] << " col = " << col[i] << std::dec); m_numInvalidIdentifiers++; - if (indexModule>-1) { PixelByteStreamErrors::addError(bsErrWord[indexModule],PixelByteStreamErrors::Invalid); } if (indexFE>-1) { PixelByteStreamErrors::addError(bsErrWord[indexFE],PixelByteStreamErrors::Invalid); } continue; } @@ -661,7 +671,6 @@ StatusCode PixelRodDecoder::fillCollection( const ROBFragment *robFrag, IPixelRD if ((row[i] + 1) > 336) { // FIXME: hardcoded number - but it should still be ok, because it's a feature of the FE-I4! // this should never happen. If row[i] == 336, (row[i]+1) == 337. This row does not exist, so the TOT(337) should always be 0 (== no hit) generalwarning("In ROB = 0x" << std::hex << robId << ", link 0x" << mLink << ": Illegal IBL row number for second ToT field, hit word 0x" << rawDataWord << " decodes to row = " << std::dec << row[i]+1 << " col = " << col[i] << " (ToT1 = 0x" << std::hex << IBLtot[0] << " ToT2 = 0x" << IBLtot[1] << ")"); - if (indexModule>-1) { PixelByteStreamErrors::addError(bsErrWord[indexModule],PixelByteStreamErrors::Invalid); } if (indexFE>-1) { PixelByteStreamErrors::addError(bsErrWord[indexFE],PixelByteStreamErrors::Invalid); } m_numInvalidIdentifiers++; continue; @@ -683,7 +692,6 @@ StatusCode PixelRodDecoder::fillCollection( const ROBFragment *robFrag, IPixelRD if (pixelId == invalidPixelId) { generalwarning("In ROB 0x" << std::hex << robId << ", FE 0x" << mLink << ": Illegal pixelId - hit word 0x" << rawDataWord << " decodes to ToT1 = 0" << (tot[i] >> 4) << ", ToT2 = 0x" << (tot[i] & 0xF) << ", row = " << std::dec << row[i] << " col = " << col[i] << std::dec); m_numInvalidIdentifiers++; - if (indexModule>-1) { PixelByteStreamErrors::addError(bsErrWord[indexModule],PixelByteStreamErrors::Invalid); } if (indexFE>-1) { PixelByteStreamErrors::addError(bsErrWord[indexFE],PixelByteStreamErrors::Invalid); } continue; } @@ -704,7 +712,6 @@ StatusCode PixelRodDecoder::fillCollection( const ROBFragment *robFrag, IPixelRD else { generalwarning("In ROB = 0x" << std::hex << robId << ", link 0x" << mLink << ": Illegal IBL row/col number, hit word 0x" << rawDataWord << " decodes to row = " << std::dec << row[i] << " col = " << col[i] << " (ToT1 = 0x" << std::hex << (tot[i] >> 4) << " ToT2 = 0x" << (tot[i] & 0xF) << ")"); m_numInvalidIdentifiers++; - if (indexModule>-1) { PixelByteStreamErrors::addError(bsErrWord[indexModule],PixelByteStreamErrors::Invalid); } if (indexFE>-1) { PixelByteStreamErrors::addError(bsErrWord[indexFE],PixelByteStreamErrors::Invalid); } continue; } @@ -765,43 +772,35 @@ StatusCode PixelRodDecoder::fillCollection( const ROBFragment *robFrag, IPixelRD if (trailerError & (1 << 8)) { // time out error bit => E m_numTimeOutErrors++; - if (indexModule>-1) { PixelByteStreamErrors::addError(bsErrWord[indexModule],PixelByteStreamErrors::TimeOut); } if (indexFE>-1) { PixelByteStreamErrors::addError(bsErrWord[indexFE],PixelByteStreamErrors::TimeOut); } } if (trailerError & (1 << 6)) {// link masked by PPC => P m_numLinkMaskedByPPC++; - if (indexModule>-1) { PixelByteStreamErrors::addError(bsErrWord[indexModule],PixelByteStreamErrors::LinkMaskedByPPC); } if (indexFE>-1) { PixelByteStreamErrors::addError(bsErrWord[indexFE],PixelByteStreamErrors::LinkMaskedByPPC); } } if (trailerError & (1 << 5)) { // preamble error bit => p m_numPreambleErrors++; - if (indexModule>-1) { PixelByteStreamErrors::addError(bsErrWord[indexModule],PixelByteStreamErrors::Preamble); } if (indexFE>-1) { PixelByteStreamErrors::addError(bsErrWord[indexFE],PixelByteStreamErrors::Preamble); } } if (trailerError & (1 << 4)) { // LVL1 error bit => l m_numLVL1IDErrors++; - if (indexModule>-1) { PixelByteStreamErrors::addError(bsErrWord[indexModule],PixelByteStreamErrors::LVL1ID); } if (indexFE>-1) { PixelByteStreamErrors::addError(bsErrWord[indexFE],PixelByteStreamErrors::LVL1ID); } } if (trailerError & (1 << 3)) {// BCID error bit => b m_numBCIDErrors++; - if (indexModule>-1) { PixelByteStreamErrors::addError(bsErrWord[indexModule],PixelByteStreamErrors::BCID); } if (indexFE>-1) { PixelByteStreamErrors::addError(bsErrWord[indexFE],PixelByteStreamErrors::BCID); } } if (trailerError & (1 << 2)) { // trailer error bit => z m_numTrailerErrors++; - if (indexModule>-1) { PixelByteStreamErrors::addError(bsErrWord[indexModule],PixelByteStreamErrors::Trailer); } if (indexFE>-1) { PixelByteStreamErrors::addError(bsErrWord[indexFE],PixelByteStreamErrors::Trailer); } } if (trailerError & (1 << 1)) { // header/trailer limit error=> h m_numLimitError++; - if (indexModule>-1) { PixelByteStreamErrors::addError(bsErrWord[indexModule],PixelByteStreamErrors::Limit); } if (indexFE>-1) { PixelByteStreamErrors::addError(bsErrWord[indexFE],PixelByteStreamErrors::Limit); } } if (trailerError & (1 << 0)) { // data overflow error=> v m_numInvalidIdentifiers++; - if (indexModule>-1) { PixelByteStreamErrors::addError(bsErrWord[indexModule],PixelByteStreamErrors::Invalid); } if (indexFE>-1) { PixelByteStreamErrors::addError(bsErrWord[indexFE],PixelByteStreamErrors::Invalid); } } diff --git a/InnerDetector/InDetExample/InDetRecExample/python/TrackingCommon.py b/InnerDetector/InDetExample/InDetRecExample/python/TrackingCommon.py index ee8158ebc1beff5f67a08dc7da16746b4b117b2e..c599895f8c32b0981d862cd9ef11b657c92cb948 100644 --- a/InnerDetector/InDetExample/InDetRecExample/python/TrackingCommon.py +++ b/InnerDetector/InDetExample/InDetRecExample/python/TrackingCommon.py @@ -829,7 +829,8 @@ def getInDetPixelConditionsSummaryTool() : from InDetRecExample.InDetJobProperties import InDetFlags from PixelConditionsTools.PixelConditionsToolsConf import PixelConditionsSummaryTool pixelConditionsSummaryToolSetup = PixelConditionsSummaryTool("PixelConditionsSummaryTool", - UseByteStream=(globalflags.DataSource=='data')) + UseByteStreamFEI4=(globalflags.DataSource=='data'), + UseByteStreamFEI3=(globalflags.DataSource=='data')) if InDetFlags.usePixelDCS(): pixelConditionsSummaryToolSetup.IsActiveStates = [ 'READY', 'ON', 'UNKNOWN', 'TRANSITION', 'UNDEFINED' ] pixelConditionsSummaryToolSetup.IsActiveStatus = [ 'OK', 'WARNING', 'ERROR', 'FATAL' ] diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecCabling.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecCabling.py index be661423a42a62fa45a267ab772d237687e6440b..4a59aceb0fbef87a70c29c65414d03ba733448cb 100755 --- a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecCabling.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecCabling.py @@ -25,7 +25,6 @@ if DetFlags.detdescr.pixel_on() and not 'PixelCabling' in dir(): from PixelDigitization.PixelDigitizationConfig import PixelConfigCondAlg_MC, IdMapping condSeq += PixelConfigCondAlg_MC() IdMappingDat=IdMapping() - elif (globalflags.DataSource=='data'): from RecExConfig.AutoConfiguration import GetRunNumber runNum = GetRunNumber() diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecConditionsAccess.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecConditionsAccess.py index ca2f0b40a55ee3207ae9f1847b9c6b987e48184e..1aef82796b995267c178959114d4d00949bd40e1 100644 --- a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecConditionsAccess.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecConditionsAccess.py @@ -75,6 +75,7 @@ if DetFlags.pixel_on(): alg = PixelConfigCondAlg(name="PixelConfigCondAlg", CablingMapFileName=IdMappingDat) + if jobproperties.Beam.beamType() == 'cosmics': alg.BarrelTimeJitter=[25.0,25.0,25.0,25.0] alg.EndcapTimeJitter=[25.0,25.0,25.0] diff --git a/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigConfigConditions.py b/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigConfigConditions.py index 3594105de89770452070fe843d1dd154bd423167..15ce094fa56a631d4adf887f0e57bfc77a52e500 100644 --- a/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigConfigConditions.py +++ b/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigConfigConditions.py @@ -199,7 +199,8 @@ class PixelConditionsServicesSetup: from PixelConditionsTools.PixelConditionsToolsConf import PixelConditionsSummaryTool TrigPixelConditionsSummaryTool = PixelConditionsSummaryTool(name=self.instanceName('PixelConditionsSummaryTool'), - UseByteStream=self.useBS) + UseByteStreamFEI4=self.useBS, + UseByteStreamFEI3=self.useBS) if self.useDCS and not self.onlineMode: TrigPixelConditionsSummaryTool.IsActiveStates = [ 'READY', 'ON' ] diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelAthErrorMonAlg.cxx b/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelAthErrorMonAlg.cxx index fa6d2577f3ebe423dd3f3482a659ac0cf4359c9e..536215a235f1afe39b439aa9e6d4653812b83a08 100644 --- a/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelAthErrorMonAlg.cxx +++ b/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelAthErrorMonAlg.cxx @@ -172,7 +172,7 @@ StatusCode PixelAthErrorMonAlg::fillHistograms( const EventContext& ctx ) const for (int iFE=0; iFE<nFE; iFE++) { int offsetFE = (1+iFE)*maxHash + modHash; // (FE index+1)*2048 + moduleHash - uint64_t fe_errorword = m_pixelCondSummaryTool->getBSErrorWord(offsetFE, ctx); + uint64_t fe_errorword = m_pixelCondSummaryTool->getBSErrorWord(modHash, offsetFE, ctx); fillErrorCatRODmod(fe_errorword, is_fei4, nerrors_cat_rodmod, iFE); @@ -218,7 +218,7 @@ StatusCode PixelAthErrorMonAlg::fillHistograms( const EventContext& ctx ) const Identifier pixelIDperFEI4 = m_pixelCablingSvc->getPixelIdfromHash(modHash, iFE, 1, 1); // index = offset + (serviceCode)*(#IBL*nFE) + (moduleHash-156)*nFE + FE int serviceCodeCounterIndex = serviceRecordFieldOffset + serviceCodeOffset + moduleOffset + iFE; - uint64_t serviceCodeCounter = m_pixelCondSummaryTool->getBSErrorWord(serviceCodeCounterIndex, ctx); + uint64_t serviceCodeCounter = m_pixelCondSummaryTool->getBSErrorWord(modHash, serviceCodeCounterIndex, ctx); if (serviceCodeCounter>0) { float payload = serviceCodeCounter; // NB: + 1, as in rel 21, is now added upstream diff --git a/Tools/PROCTools/data/master_q431_AOD_digest.ref b/Tools/PROCTools/data/master_q431_AOD_digest.ref index fa7194dfd35bf013b8502adea860043314ec573e..627cd35b48ff68183ed2796efc589b5e803f4833 100644 --- a/Tools/PROCTools/data/master_q431_AOD_digest.ref +++ b/Tools/PROCTools/data/master_q431_AOD_digest.ref @@ -2,11 +2,11 @@ 330470 1183722158 1 0 0 0 330470 1183722342 394 428 16 0 330470 1183727953 532 590 11 4 - 330470 1183732647 467 485 12 1 + 330470 1183732647 467 484 12 1 330470 1183733040 381 288 6 1 330470 1183734651 361 368 14 3 330470 1183735332 406 385 9 1 - 330470 1183736475 741 684 15 1 + 330470 1183736475 741 683 15 1 330470 1183738728 1 0 0 0 330470 1183738949 368 444 9 1 330470 1183742489 152 127 2 1 @@ -22,5 +22,5 @@ 330470 1183773832 307 209 7 0 330470 1183775209 57 0 0 0 330470 1183787124 431 383 10 2 - 330470 1183787946 321 324 5 1 + 330470 1183787946 321 325 5 1 330470 1183795329 458 355 18 0 diff --git a/Tools/PROCTools/python/RunTier0TestsTools.py b/Tools/PROCTools/python/RunTier0TestsTools.py index 2a10997d33f209c38de97fcb876179e0874efd81..796037059eedde17ee248c85593df21a70e1e43d 100644 --- a/Tools/PROCTools/python/RunTier0TestsTools.py +++ b/Tools/PROCTools/python/RunTier0TestsTools.py @@ -34,7 +34,7 @@ ciRefFileMap = { 'overlay-d1592-22.0' : 'v8', 'overlay-bkg-21.0' : 'v1', 'overlay-bkg-22.0' : 'v4', - 'dataoverlay-d1590-22.0' : 'v10', + 'dataoverlay-d1590-22.0' : 'v11', 'dataoverlay-hits-22.0' : 'v1', } diff --git a/Trigger/TrigTools/TrigInDetConfig/python/InDetSetup.py b/Trigger/TrigTools/TrigInDetConfig/python/InDetSetup.py index ba0dc02cf41942aeb27a048ef85db6ab0cf17190..17b314032cc4d44d557eceeaefa87fd73361f3c6 100644 --- a/Trigger/TrigTools/TrigInDetConfig/python/InDetSetup.py +++ b/Trigger/TrigTools/TrigInDetConfig/python/InDetSetup.py @@ -156,7 +156,9 @@ def makeInDetAlgs( config = None, rois = 'EMViewRoIs', doFTF = True, viewVerifie ToolSvc += InDetClusterMakerTool from PixelConditionsTools.PixelConditionsToolsConf import PixelConditionsSummaryTool - idPixelSummary = PixelConditionsSummaryTool("PixelConditionsSummaryTool", UseByteStream=globalflags.InputFormat.is_bytestream()) + idPixelSummary = PixelConditionsSummaryTool("PixelConditionsSummaryTool", + UseByteStreamFEI4=globalflags.InputFormat.is_bytestream(), + UseByteStreamFEI3=globalflags.InputFormat.is_bytestream()) from SiClusterizationTool.SiClusterizationToolConf import InDet__MergedPixelsTool InDetMergedPixelsTool = InDet__MergedPixelsTool(name = "InDetMergedPixelsTool_" + signature,