diff --git a/Calorimeter/CaloMonitoring/python/LArCellMonAlg.py b/Calorimeter/CaloMonitoring/python/LArCellMonAlg.py index f0e1d87ec017aa9d2d75883a8c1ed3f6378cb587..4a30d038f54906dd592d4f9a8ace786da6361c58 100644 --- a/Calorimeter/CaloMonitoring/python/LArCellMonAlg.py +++ b/Calorimeter/CaloMonitoring/python/LArCellMonAlg.py @@ -30,12 +30,12 @@ def LArCellMonConfigOld(inputFlags): from CaloTools.CaloNoiseCondAlg import CaloNoiseCondAlg CaloNoiseCondAlg() - LArCellMonConfigCore(helper, LArCellMonAlg,inputFlags,isCosmics, isMC) + algo = LArCellMonConfigCore(helper, LArCellMonAlg,inputFlags,isCosmics, isMC) from AthenaMonitoring.AtlasReadyFilterTool import GetAtlasReadyFilterTool - helper.monSeq.LArCellMonAlg.ReadyFilterTool = GetAtlasReadyFilterTool() + algo.ReadyFilterTool = GetAtlasReadyFilterTool() from AthenaMonitoring.BadLBFilterTool import GetLArBadLBFilterTool - helper.monSeq.LArCellMonAlg.BadLBTool = GetLArBadLBFilterTool() + algo.BadLBTool = GetLArBadLBFilterTool() return helper.result() @@ -46,15 +46,15 @@ def LArCellMonConfig(inputFlags): from AthenaMonitoring.AthMonitorCfgHelper import AthMonitorCfgHelper helper = AthMonitorCfgHelper(inputFlags,'LArCellMonAlgCfg') + from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator + cfg=ComponentAccumulator() + if not inputFlags.DQ.enableLumiAccess: mlog.warning('This algo needs Lumi access, returning empty config') - from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator - cfg=ComponentAccumulator() - cfg.merge(helper.result()) return cfg from LArGeoAlgsNV.LArGMConfig import LArGMCfg - cfg = LArGMCfg(inputFlags) + cfg.merge(LArGMCfg(inputFlags)) from TileGeoModel.TileGMConfig import TileGMCfg cfg.merge(TileGMCfg(inputFlags)) @@ -81,18 +81,17 @@ def LArCellMonConfig(inputFlags): algname=algname+'Cosmics' isCosmics = ( inputFlags.Beam.Type == 'cosmics' ) - LArCellMonConfigCore(helper, lArCellMonAlg,inputFlags, isCosmics, inputFlags.Input.isMC, algname) - - acc=helper.result() + algo = LArCellMonConfigCore(helper, lArCellMonAlg,inputFlags, isCosmics, inputFlags.Input.isMC, algname) + algo.useTrigger = inputFlags.DQ.useTrigger from AthenaMonitoring.AtlasReadyFilterConfig import AtlasReadyFilterCfg - acc.getEventAlgo(algname).ReadyFilterTool = cfg.popToolsAndMerge(AtlasReadyFilterCfg(inputFlags)) + algo.ReadyFilterTool = cfg.popToolsAndMerge(AtlasReadyFilterCfg(inputFlags)) if not inputFlags.Input.isMC: from AthenaMonitoring.BadLBFilterToolConfig import LArBadLBFilterToolCfg - acc.getEventAlgo(algname).BadLBTool=cfg.popToolsAndMerge(LArBadLBFilterToolCfg(inputFlags)) + algo.BadLBTool=cfg.popToolsAndMerge(LArBadLBFilterToolCfg(inputFlags)) - cfg.merge(acc) + cfg.merge(helper.result()) return cfg @@ -494,6 +493,7 @@ def LArCellMonConfigCore(helper, algclass, inputFlags, isCosmics=False, isMC=Fal cellMonGroup.defineTree('sporadicCellE,sporadicCellTime,sporadicCellQuality,sporadicCellID,lumiBlock,adoptedEThreshold;SporadicNoisyCellsTree', path=sporadic_hist_path, treedef='sporadicCellE/F:sporadicCellTime/F:sporadicCellQuality/s:sporadicCellID/l:lumiBlock/i') + return LArCellMonAlg if __name__=='__main__': diff --git a/Calorimeter/CaloMonitoring/src/LArCellMonAlg.cxx b/Calorimeter/CaloMonitoring/src/LArCellMonAlg.cxx index 044e8c6295af37856adaf2792ccab9a7a4d7176c..a01294498e3357086dc6af6a11540722106ee595 100644 --- a/Calorimeter/CaloMonitoring/src/LArCellMonAlg.cxx +++ b/Calorimeter/CaloMonitoring/src/LArCellMonAlg.cxx @@ -121,7 +121,7 @@ StatusCode LArCellMonAlg::initialize() { } //retrieve trigger decision tool and chain groups - if( m_useTrigger) { + if( m_useTrigger && !getTrigDecisionTool().empty() ) { const ToolHandle<Trig::TrigDecisionTool> trigTool=getTrigDecisionTool(); ATH_MSG_INFO("TrigDecisionTool retrieved"); for (size_t i=0;i<NOTA;++i) { diff --git a/Control/AthenaMonitoring/share/Run3DQTestingDriver.py b/Control/AthenaMonitoring/share/Run3DQTestingDriver.py index 30f6de92cb2dd569d34a6744149d52ff2f16f9e6..e8c450953d930697cb2cc826e4cff41c10cf3a44 100755 --- a/Control/AthenaMonitoring/share/Run3DQTestingDriver.py +++ b/Control/AthenaMonitoring/share/Run3DQTestingDriver.py @@ -92,12 +92,11 @@ if __name__=='__main__': ((ConfigFlags.DQ.Steering.InDet, "doGlobalMon") and ConfigFlags.DQ.Steering.InDet.doGlobalMon) or \ ((ConfigFlags.DQ.Steering.InDet, "doPerfMon") and ConfigFlags.DQ.Steering.InDet.doPerfMon): ConfigFlags.Detector.GeometryID = True - if hasattr(ConfigFlags.DQ.Steering, "doPixelMon") and ConfigFlags.DQ.Steering.doPixelMon: - ConfigFlags.Detector.GeometryPixel = True - if hasattr(ConfigFlags.DQ.Steering, "doSCTMon") and ConfigFlags.DQ.Steering.doSCTMon: - ConfigFlags.Detector.GeometrySCT = True - if hasattr(ConfigFlags.DQ.Steering, "doTRTMon") and ConfigFlags.DQ.Steering.doTRTMon: - ConfigFlags.Detector.GeometryTRT = True + + # Just assume we want the full ID geometry, if we are reading in geometry + ConfigFlags.Detector.GeometryPixel = True + ConfigFlags.Detector.GeometrySCT = True + ConfigFlags.Detector.GeometryTRT = True log.info('FINAL CONFIG FLAGS SETTINGS FOLLOW') ConfigFlags.dump() diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/python/SCTHitsNoiseMonAlg.py b/InnerDetector/InDetMonitoring/SCT_Monitoring/python/SCTHitsNoiseMonAlg.py index 21db3f66f76884bd29308615b09b2b4ca625fad8..8471afdb6e402d208a4084aa6d32f63f0152c2d3 100644 --- a/InnerDetector/InDetMonitoring/SCT_Monitoring/python/SCTHitsNoiseMonAlg.py +++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/python/SCTHitsNoiseMonAlg.py @@ -31,7 +31,7 @@ def SCTHitsNoiseMonAlgConfig(inputFlags): myMonAlg.TriggerChain = "" # Trigger histogram will be made only for data. - myMonAlg.doTrigger = (not inputFlags.Input.isMC) + myMonAlg.doTrigger = (not inputFlags.Input.isMC and inputFlags.DQ.useTrigger) from ROOT import SCT_Monitoring as sctMon #import SCT_MonitoringNumbers.h diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTHitsNoiseMonAlg.cxx b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTHitsNoiseMonAlg.cxx index f178fe5aad0496fddb2514cf53e19d3d8c10fda3..cbcdea075d625a3047e4ac39dd14f4a87f94951c 100644 --- a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTHitsNoiseMonAlg.cxx +++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTHitsNoiseMonAlg.cxx @@ -130,7 +130,7 @@ StatusCode SCTHitsNoiseMonAlg::generalHistsandNoise(const std::array<std::unorde bool isSelectedTrigger{false}; // EDAVIES - have now changed back to using L1_RD0_EMPTY - if (m_doTrigger) { + if (m_doTrigger and !m_trigDecTool.empty()) { if (AthMonitorAlgorithm::dataType() != AthMonitorAlgorithm::DataType_t::cosmics) { if (m_trigDecTool->isPassed(m_NOTriggerItem)) { isSelectedTrigger = true; diff --git a/LArCalorimeter/LArCellRec/python/LArCollisionTimeConfig.py b/LArCalorimeter/LArCellRec/python/LArCollisionTimeConfig.py index b78b5eb870c791433275d33ad34f058ecde859aa..75b9be3ebd216a1d09cfe46b1e9b2e9fbe724623 100644 --- a/LArCalorimeter/LArCellRec/python/LArCollisionTimeConfig.py +++ b/LArCalorimeter/LArCellRec/python/LArCollisionTimeConfig.py @@ -9,6 +9,11 @@ def LArCollisionTimeCfg(configFlags, cutIteration=False): result=ComponentAccumulator() + from LumiBlockComps.BunchCrossingCondAlgConfig import BunchCrossingCondAlgCfg + result.merge(BunchCrossingCondAlgCfg(configFlags)) + from CaloTools.CaloNoiseCondAlgConfig import CaloNoiseCondAlgCfg + result.merge(CaloNoiseCondAlgCfg(configFlags,"totalNoise")) + LArCollisionTimeAlg=CompFactory.LArCollisionTimeAlg result.addEventAlgo(LArCollisionTimeAlg("LArCollisionTimeAlg", isMC=configFlags.Input.isMC, diff --git a/LArCalorimeter/LArMonitoring/src/LArFEBMonAlg.cxx b/LArCalorimeter/LArMonitoring/src/LArFEBMonAlg.cxx index dc9494549db0e60f222b0e69c92b7fc288db9f90..7b49c6b80bfc6252eb1178ca55a910d78410b2c0 100755 --- a/LArCalorimeter/LArMonitoring/src/LArFEBMonAlg.cxx +++ b/LArCalorimeter/LArMonitoring/src/LArFEBMonAlg.cxx @@ -133,7 +133,7 @@ StatusCode LArFEBMonAlg::fillHistograms(const EventContext& ctx) const { const ToolHandle<Trig::TrigDecisionTool> trigTool=getTrigDecisionTool(); //const Trig::TrigDecisionTool *trigTool = dynamic_cast<const Trig::TrigDecisionTool * > (&*trigHdl); std::vector<std::string> l1triggers; - if(trigTool) { + if(!trigTool.empty()) { const Trig::ChainGroup* allL1 = trigTool->getChainGroup("L1_.*"); l1triggers = allL1->getListOfTriggers(); ATH_MSG_DEBUG( "lvl1 item names: [" ); @@ -382,13 +382,15 @@ StatusCode LArFEBMonAlg::fillHistograms(const EventContext& ctx) const { auto streambin=Monitored::Scalar<float>("streamBin",-1); - unsigned ie; + unsigned ie(0); for(unsigned int str=0; str<streamsThisEvent.size(); ++str) { if(streamsThisEvent[str] > m_streams.size()) break; if(trigok && streamsThisEvent[str] < m_streams.size() && (m_streams[streamsThisEvent[str]].find("CosmicCalo") != std::string::npos)) { // test excluding events - for(ie=0; ie<m_excoscalo.size(); ++ie) { - if(getTrigDecisionTool()->isPassed(m_excoscalo[ie])) break; - } + if (!getTrigDecisionTool().empty()) { + for(ie=0; ie<m_excoscalo.size(); ++ie) { + if(getTrigDecisionTool()->isPassed(m_excoscalo[ie])) break; + } + } if(ie<m_excoscalo.size()) { ATH_MSG_INFO("Skipping "<<m_excoscalo[ie]<<" for CosmicCalo "); continue; // we should skip this trigger diff --git a/LArCalorimeter/LArMonitoring/src/LArNoiseCorrelationMonAlg.cxx b/LArCalorimeter/LArMonitoring/src/LArNoiseCorrelationMonAlg.cxx index bce34abd1dde3711fb63d4678c1fb65f07b81f29..ad22286bf609a7f296916b0c86b681f30b96de46 100644 --- a/LArCalorimeter/LArMonitoring/src/LArNoiseCorrelationMonAlg.cxx +++ b/LArCalorimeter/LArMonitoring/src/LArNoiseCorrelationMonAlg.cxx @@ -136,7 +136,7 @@ LArNoiseCorrelationMonAlg::fillHistograms(const EventContext& ctx) const const ToolHandle<Trig::TrigDecisionTool> trigTool=getTrigDecisionTool(); bool passBCID; - if(trigTool) { + if(!trigTool.empty()) { // BCIDs of the abort gap const int ABORT_GAP_START = 3446; const int ABORT_GAP_END = 3563; diff --git a/LArCalorimeter/LArMonitoring/src/LArRODMonAlg.cxx b/LArCalorimeter/LArMonitoring/src/LArRODMonAlg.cxx index 0d6634bb15ad700d3454e83f9fd0c408cda86d66..0c306669a5f9e64fb3f3713587e536c95607875d 100755 --- a/LArCalorimeter/LArMonitoring/src/LArRODMonAlg.cxx +++ b/LArCalorimeter/LArMonitoring/src/LArRODMonAlg.cxx @@ -77,6 +77,7 @@ LArRODMonAlg::initialize() { ATH_CHECK(m_channelKey_fromDigits.initialize()); ATH_CHECK(m_channelKey_fromBytestream.initialize()); ATH_CHECK(m_digitContainerKey.initialize()); + ATH_CHECK(m_headerContainerKey.initialize()); ATH_CHECK(m_keyOFC.initialize()); ATH_CHECK(m_keyShape.initialize()); @@ -220,9 +221,8 @@ StatusCode LArRODMonAlg::fillHistograms(const EventContext& ctx) const { std::set<HWIdentifier> ignoreFEBs; if (m_doCheckSum || m_doRodStatus) { - const LArFebHeaderContainer* febCont=NULL; - StatusCode sc = evtStore()->retrieve(febCont); - if (sc.isFailure() || !febCont) { + const LArFebHeaderContainer* febCont = SG::get(m_headerContainerKey, ctx); + if (!febCont) { ATH_MSG_WARNING( "No LArFEB container found in TDS" ); } else { LArFebHeaderContainer::const_iterator itFEB = febCont->begin(); diff --git a/LArCalorimeter/LArMonitoring/src/LArRODMonAlg.h b/LArCalorimeter/LArMonitoring/src/LArRODMonAlg.h index c4b0b017c55e2806fc6fb504604e3f961d532009..055398044d9b015021f9869ccbcec834169485d5 100644 --- a/LArCalorimeter/LArMonitoring/src/LArRODMonAlg.h +++ b/LArCalorimeter/LArMonitoring/src/LArRODMonAlg.h @@ -26,6 +26,7 @@ class HWIdentifier; class LArOnOffIdMapping; class LArRawChannelContainer; class LArDigitContainer; +class LArFebHeaderContainer; #include <atomic> #include <fstream> @@ -134,6 +135,7 @@ private: SG::ReadHandleKey<LArRawChannelContainer> m_channelKey_fromDigits{this,"LArRawChannelKey_fromDigits","LArRawChannels_FromDigits","SG key of LArRawChannels produced offline"}; SG::ReadHandleKey<LArDigitContainer> m_digitContainerKey{this,"LArDigitContainerKey","FREE","SG key of LArDigitContainer read from Bytestream"}; + SG::ReadHandleKey<LArFebHeaderContainer> m_headerContainerKey{this,"LArFebHeaderKey","LArFebHeader","SG key of LArFebHeader"}; SG::ReadCondHandleKey<ILArOFC> m_keyOFC{this,"KeyOFC","LArOFC","SG key of LArOFC CDO"}; diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/python/TgcRawDataMonitorAlgorithm.py b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/python/TgcRawDataMonitorAlgorithm.py index 6fbcd4d033bbd2acf26d28cfbd23e29a522337e3..ad59d834352656205e340caac5c2719159baf96d 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/python/TgcRawDataMonitorAlgorithm.py +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/python/TgcRawDataMonitorAlgorithm.py @@ -14,6 +14,13 @@ def TgcRawDataMonitoringConfig(inputFlags): from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator result = ComponentAccumulator() + from MagFieldServices.MagFieldServicesConfig import MagneticFieldSvcCfg + from AtlasGeoModel.AtlasGeoModelConfig import AtlasGeometryCfg + from TrkConfig.AtlasTrackingGeometrySvcConfig import TrackingGeometrySvcCfg + result.merge(MagneticFieldSvcCfg(inputFlags)) + result.merge(AtlasGeometryCfg(inputFlags)) + result.merge(TrackingGeometrySvcCfg(inputFlags)) + from AthenaMonitoring import AthMonitorCfgHelper helper = AthMonitorCfgHelper(inputFlags,'TgcRawDataMonitorCfg') diff --git a/PhysicsAnalysis/JetTagging/JetTagMonitoring/src/JetTagMonitorAlgorithm.cxx b/PhysicsAnalysis/JetTagging/JetTagMonitoring/src/JetTagMonitorAlgorithm.cxx index cb9c2ad8fb43bc5b6f0ac08be242dc1a1ca9fc8c..052149243d102d52b619b8304a555f0007ee468f 100755 --- a/PhysicsAnalysis/JetTagging/JetTagMonitoring/src/JetTagMonitorAlgorithm.cxx +++ b/PhysicsAnalysis/JetTagging/JetTagMonitoring/src/JetTagMonitorAlgorithm.cxx @@ -213,7 +213,8 @@ StatusCode JetTagMonitorAlgorithm::fillHistograms( const EventContext& ctx ) con ////////////////////// bool useTriggerDecisionTool = true; - const auto& trigDecTool = getTrigDecisionTool(); + const auto* trigDecTool = (getTrigDecisionTool().empty() ? + nullptr : getTrigDecisionTool().operator->()); // only apply trigger selection if bool is true (false for express stream) and trigDecTool is ok if (useTriggerDecisionTool && trigDecTool != 0) { diff --git a/Reconstruction/MissingETMonitoring/src/METMonitorAlgorithm.cxx b/Reconstruction/MissingETMonitoring/src/METMonitorAlgorithm.cxx index 93b116c46f913b7597992ab03209a4cef12ce4dd..3cf835bb6001165c0b2cf0a12f0c9bc02557aa9b 100644 --- a/Reconstruction/MissingETMonitoring/src/METMonitorAlgorithm.cxx +++ b/Reconstruction/MissingETMonitoring/src/METMonitorAlgorithm.cxx @@ -94,7 +94,8 @@ StatusCode METMonitoringAlg::fillHistograms( const EventContext& ctx ) const { ATH_MSG_ERROR("evtStore() does not contain METAKt4EMTopo Collection with name "<< m_metAKt4EMTopoContainerKey); return StatusCode::FAILURE; } - const auto& trigDecTool = getTrigDecisionTool(); + const auto* trigDecTool = (getTrigDecisionTool().empty() ? + nullptr : getTrigDecisionTool().operator->()); bool isMETtopocalo = false; for (const auto& key : m_metKeys) { if (key == "MET_Topo") isMETtopocalo = true; diff --git a/Reconstruction/tauMonitoring/src/tauMonitorAlgorithm.cxx b/Reconstruction/tauMonitoring/src/tauMonitorAlgorithm.cxx index 6110d41629219cbbadfbb79796ccf261d9ada604..a40df5ef72c4d204201d7030e8ef90af0fb1de79 100644 --- a/Reconstruction/tauMonitoring/src/tauMonitorAlgorithm.cxx +++ b/Reconstruction/tauMonitoring/src/tauMonitorAlgorithm.cxx @@ -252,7 +252,8 @@ StatusCode tauMonitorAlgorithm::fillHistograms( const EventContext& ctx ) const int panModeDummy = -1 ; int panModeSubstructureDummy = -1 ; - const auto& trigDecTool = getTrigDecisionTool(); + const auto* trigDecTool = (getTrigDecisionTool().empty() ? + nullptr : getTrigDecisionTool().operator->()); if (m_etaMin < std::abs(tauEta) && std::abs(tauEta) < m_etaMax){ nTauCandidates +=1;