From c3d0de6b8648a7df4ef806c2c16a28964d9d8c69 Mon Sep 17 00:00:00 2001 From: Paul Thompson <paul.daniel.thompson@cern.ch> Date: Thu, 12 Oct 2023 10:06:03 +0200 Subject: [PATCH] start reading jFEX database values from September 2023 --- .../python/L1CaloFEXCondConfig.py | 3 +- .../L1CaloFEXCond/src/jFEXCondAlgo.cxx | 35 ++++++++++++++----- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXCond/python/L1CaloFEXCondConfig.py b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXCond/python/L1CaloFEXCondConfig.py index d9920dcb34f4..8532b1dd3425 100644 --- a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXCond/python/L1CaloFEXCondConfig.py +++ b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXCond/python/L1CaloFEXCondConfig.py @@ -11,8 +11,7 @@ def jFexDBConfig(flags, name="jFEXCondAlgo"): acc=ComponentAccumulator() DBCond = CompFactory.LVL1.jFEXCondAlgo(name) - # The "False" must be removed whenever ready to use the DB - After internal discussion - if not flags.Input.isMC and False: + if not flags.Input.isMC: ModSettings_folder = "/TRIGGER/L1Calo/V1/Calibration/JfexModuleSettings" NoiseCut_folder = "/TRIGGER/L1Calo/V1/Calibration/JfexNoiseCuts" diff --git a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXCond/src/jFEXCondAlgo.cxx b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXCond/src/jFEXCondAlgo.cxx index 285258102b15..60d6d19f688e 100644 --- a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXCond/src/jFEXCondAlgo.cxx +++ b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXCond/src/jFEXCondAlgo.cxx @@ -46,6 +46,15 @@ StatusCode jFEXCondAlgo::execute(const EventContext& ctx) const { //Write handle SG::WriteCondHandle<jFEXDBCondData> writeCHandle(m_jFEXDBParamsKey, ctx); + + // Date from which jFEX database parameters should be used + // noise cuts fix: 2023-09-19 + bool validTimeStamp = (ctx.eventID().time_stamp() < 1695127624) ? false : true; + + // Set DB to false if any of keys not provided + bool anyKeyEmpty = ( m_JfexModuleSettingsKey.empty() || m_JfexNoiseCutsKey.empty() || m_JfexSystemSettingsKey.empty() ); + + bool useDBparams = (!anyKeyEmpty && validTimeStamp); /***************************************/ /* */ @@ -54,7 +63,7 @@ StatusCode jFEXCondAlgo::execute(const EventContext& ctx) const { /***************************************/ int jJCalibParams[6][9]={{0}}; - if(!m_JfexModuleSettingsKey.empty()){ + if(!m_JfexModuleSettingsKey.empty() && useDBparams){ SG::ReadCondHandle <CondAttrListCollection> load_jFexModuleSet{m_JfexModuleSettingsKey, ctx }; // we should check if it is valid and the size is 6 (corresponding to the 6 jfex modules) @@ -123,7 +132,7 @@ StatusCode jFEXCondAlgo::execute(const EventContext& ctx) const { int PileUpThresholdHighFcal = jDBdefaults::PileUpThresholdHighFcal; - if(!m_JfexSystemSettingsKey.empty()) { + if(!m_JfexSystemSettingsKey.empty() && useDBparams) { SG::ReadCondHandle <CondAttrListCollection> load_SystemSet{m_JfexSystemSettingsKey, ctx}; const std::vector<std::string> myStrings{ "PileUpCorrectionJet", "PileUpCorrectionMET", "PileUpThresholdLowEm", "PileUpThresholdHighEm", "PileUpThresholdLowHadLar", "PileUpThresholdHighHadLar", "PileUpThresholdLowHadHecOverlap", "PileUpThresholdHighHadHecOverlap", "PileUpThresholdLowHadTrex", "PileUpThresholdHighHadTrex", "PileUpThresholdLowFcal", "PileUpThresholdHighFcal" }; @@ -204,7 +213,7 @@ StatusCode jFEXCondAlgo::execute(const EventContext& ctx) const { std::unordered_map< uint16_t, std::array<uint16_t,4> > PileUpWeight; - if(!m_JfexNoiseCutsKey.empty()) { + if(!m_JfexNoiseCutsKey.empty() && useDBparams) { SG::ReadCondHandle <CondAttrListCollection> load_jFexNoiseCut{m_JfexNoiseCutsKey, ctx }; @@ -293,7 +302,10 @@ StatusCode jFEXCondAlgo::execute(const EventContext& ctx) const { if(m_printVals){ std::stringstream myprint; - myprint << "Parameters obtained from m_JfexModuleSettingsKey: "<< m_JfexModuleSettingsKey << std::endl; + if (useDBparams) + myprint << "Parameters obtained from m_JfexModuleSettingsKey: "<< m_JfexModuleSettingsKey << std::endl; + else + myprint << "JfexModuleSettings obtained from jDBdefaults"<< std::endl; myprint << "jJCalibParam:" << std::endl; for(int mod=0; mod<6; mod++) { @@ -310,7 +322,11 @@ StatusCode jFEXCondAlgo::execute(const EventContext& ctx) const { std::stringstream myprint1; - myprint1 << "Parameters obtained from m_JfexSystemSettingsKey: "<< m_JfexSystemSettingsKey << std::endl; + if (useDBparams) + myprint1 << "Parameters obtained from m_JfexSystemSettingsKey: "<< m_JfexSystemSettingsKey << std::endl; + else + myprint1 << "JfexSystemSettings obtained from jDBdefaults"<< std::endl; + myprint1 << "System setting parameters: " <<std::endl; myprint1 << "PileUpCorrectionJet: " << writeDBTool->get_doPileUpJet() <<std::endl; myprint1 << "PileUpCorrectionMET: " << writeDBTool->get_doPileUpMet() <<std::endl; @@ -329,7 +345,10 @@ StatusCode jFEXCondAlgo::execute(const EventContext& ctx) const { std::stringstream myprint2; - myprint2 << "Parameters obtained from m_JfexNoiseCutsKey: "<< m_JfexNoiseCutsKey << std::endl; + if (useDBparams) + myprint2 << "Parameters obtained from m_JfexNoiseCutsKey: "<< m_JfexNoiseCutsKey << std::endl; + else + myprint2 << "JfexNoiseCuts obtained from jDBdefaults"<< std::endl; for( const auto& [key, value] : NoiseCuts) { const auto [CutJetEM, CutJetHad, CutMetEM, CutMetHad] = value; @@ -344,8 +363,8 @@ StatusCode jFEXCondAlgo::execute(const EventContext& ctx) const { - // If parameters not loaded, valid for infinity and beyond! - if(m_JfexModuleSettingsKey.empty() and m_JfexNoiseCutsKey.empty() and m_JfexSystemSettingsKey.empty() ){ + // If DB parameters not loaded, valid for infinity and beyond! + if (!useDBparams) { writeCHandle.addDependency(IOVInfiniteRange::infiniteRunLB()); // Use infinite IOV } -- GitLab