diff --git a/L1Trigger/L1TCaloLayer1/plugins/L1TCaloLayer1.cc b/L1Trigger/L1TCaloLayer1/plugins/L1TCaloLayer1.cc index 1bfd952cdade2..d12930bdd8362 100644 --- a/L1Trigger/L1TCaloLayer1/plugins/L1TCaloLayer1.cc +++ b/L1Trigger/L1TCaloLayer1/plugins/L1TCaloLayer1.cc @@ -81,6 +81,7 @@ class L1TCaloLayer1 : public edm::stream::EDProducer<> { std::vector, nCalSideBins>, nCalEtaBins> > ecalLUT; std::vector, nCalSideBins>, nCalEtaBins> > hcalLUT; std::vector, nHfEtaBins> > hfLUT; + std::vector hcalFBLUT; std::vector ePhiMap; std::vector hPhiMap; @@ -93,6 +94,7 @@ class L1TCaloLayer1 : public edm::stream::EDProducer<> { bool useECALLUT; bool useHCALLUT; bool useHFLUT; + bool useHCALFBLUT; bool verbose; bool unpackHcalMask; bool unpackEcalMask; @@ -128,7 +130,8 @@ L1TCaloLayer1::L1TCaloLayer1(const edm::ParameterSet& iConfig) useECALLUT(iConfig.getParameter("useECALLUT")), useHCALLUT(iConfig.getParameter("useHCALLUT")), useHFLUT(iConfig.getParameter("useHFLUT")), - verbose(iConfig.getParameter("verbose")), + useHCALFBLUT(iConfig.getParameter("useHCALFBLUT")), + verbose(iConfig.getUntrackedParameter("verbose")), unpackHcalMask(iConfig.getParameter("unpackHcalMask")), unpackEcalMask(iConfig.getParameter("unpackEcalMask")), fwVersion(iConfig.getParameter("firmwareVersion")) { @@ -294,6 +297,7 @@ void L1TCaloLayer1::beginRun(const edm::Run& iRun, const edm::EventSetup& iSetup ecalLUT, hcalLUT, hfLUT, + hcalFBLUT, ePhiMap, hPhiMap, hfPhiMap, @@ -302,6 +306,7 @@ void L1TCaloLayer1::beginRun(const edm::Run& iRun, const edm::EventSetup& iSetup useECALLUT, useHCALLUT, useHFLUT, + useHCALFBLUT, fwVersion)) { LOG_ERROR << "L1TCaloLayer1::beginRun: failed to fetch LUTS - using unity" << std::endl; std::array, nCalSideBins>, nCalEtaBins> eCalLayer1EtaSideEtArray; @@ -363,7 +368,8 @@ void L1TCaloLayer1::fillDescriptions(edm::ConfigurationDescriptions& description desc.add("useECALLUT", true); desc.add("useHCALLUT", true); desc.add("useHFLUT", true); - desc.add("verbose", false); + desc.add("useHCALFBLUT", false); + desc.addUntracked("verbose", false); desc.add("unpackEcalMask", false); desc.add("unpackHcalMask", false); desc.add("firmwareVersion", 1); diff --git a/L1Trigger/L1TCaloLayer1/python/simCaloStage2Layer1Digis_cfi.py b/L1Trigger/L1TCaloLayer1/python/simCaloStage2Layer1Digis_cfi.py index b5c726699d8c9..d0830734bfd71 100644 --- a/L1Trigger/L1TCaloLayer1/python/simCaloStage2Layer1Digis_cfi.py +++ b/L1Trigger/L1TCaloLayer1/python/simCaloStage2Layer1Digis_cfi.py @@ -14,7 +14,8 @@ useECALLUT = cms.bool(True), useHCALLUT = cms.bool(True), useHFLUT = cms.bool(True), - verbose = cms.bool(False), + useHCALFBLUT = cms.bool(False), + verbose = cms.untracked.bool(False), unpackEcalMask = cms.bool(False), unpackHcalMask = cms.bool(False), # See UCTLayer1.hh for firmware version diff --git a/L1Trigger/L1TCaloLayer1/src/L1TCaloLayer1FetchLUTs.cc b/L1Trigger/L1TCaloLayer1/src/L1TCaloLayer1FetchLUTs.cc index 34409f61d5ed5..f82f980fec17c 100644 --- a/L1Trigger/L1TCaloLayer1/src/L1TCaloLayer1FetchLUTs.cc +++ b/L1Trigger/L1TCaloLayer1/src/L1TCaloLayer1FetchLUTs.cc @@ -32,6 +32,7 @@ bool L1TCaloLayer1FetchLUTs( std::vector, nCalSideBins>, nCalEtaBins> > &eLUT, std::vector, nCalSideBins>, nCalEtaBins> > &hLUT, std::vector, nHfEtaBins> > &hfLUT, + std::vector &hcalFBLUT, std::vector &ePhiMap, std::vector &hPhiMap, std::vector &hfPhiMap, @@ -40,6 +41,7 @@ bool L1TCaloLayer1FetchLUTs( bool useECALLUT, bool useHCALLUT, bool useHFLUT, + bool useHCALFBLUT, int fwVersion) { int hfValid = 1; const HcalTrigTowerGeometry &pG = iSetup.getData(iTokens.geom_); @@ -128,6 +130,26 @@ bool L1TCaloLayer1FetchLUTs( "scale factors in CaloParams! Please check conditions setup."; return false; } + + // HCAL FB LUT will be a 1*28 array: + // ieta = 28 eta scale factors (1 .. 28) + // So, index = ieta + auto fbLUTUpper = caloParams.layer1HCalFBLUTUpper(); + auto fbLUTLower = caloParams.layer1HCalFBLUTLower(); + // Only check for HCAL FB LUT if useHCALFBLUT = true + if (useHCALFBLUT) { + if (fbLUTUpper.size() != nCalEtaBins) { + edm::LogError("L1TCaloLayer1FetchLUTs") + << "caloParams.layer1HCalFBLUTUpper().size() " << fbLUTUpper.size() << " != " << nCalEtaBins << " !!"; + return false; + } + if (fbLUTLower.size() != nCalEtaBins) { + edm::LogError("L1TCaloLayer1FetchLUTs") + << "caloParams.layer1HCalFBLUTLower().size() " << fbLUTLower.size() << " != " << nCalEtaBins << " !!"; + return false; + } + } + // get energy scale to convert input from ECAL - this should be linear with LSB = 0.5 GeV const double ecalLSB = 0.5; @@ -331,6 +353,15 @@ bool L1TCaloLayer1FetchLUTs( } } + // Make HCal FB LUT + for (uint32_t etaBin = 0; etaBin < nCalEtaBins; etaBin++) { + uint64_t value = 0xFFFFFFFFFFFFFFFF; + if (useHCALFBLUT) { + value = (((uint64_t)fbLUTUpper.at(etaBin)) << 32) | fbLUTLower.at(etaBin); + } + hcalFBLUT.push_back(value); + } + // plus/minus, 18 CTP7, 4 iPhi each for (uint32_t isPos = 0; isPos < 2; isPos++) { for (uint32_t iPhi = 1; iPhi <= 72; iPhi++) { diff --git a/L1Trigger/L1TCaloLayer1/src/L1TCaloLayer1FetchLUTs.hh b/L1Trigger/L1TCaloLayer1/src/L1TCaloLayer1FetchLUTs.hh index 04d745f17e2f0..d8a3f4a55b205 100644 --- a/L1Trigger/L1TCaloLayer1/src/L1TCaloLayer1FetchLUTs.hh +++ b/L1Trigger/L1TCaloLayer1/src/L1TCaloLayer1FetchLUTs.hh @@ -34,6 +34,7 @@ bool L1TCaloLayer1FetchLUTs( std::vector, l1tcalo::nCalSideBins>, l1tcalo::nCalEtaBins> > &hLUT, std::vector, l1tcalo::nHfEtaBins> > &hfLUT, + std::vector &hcalFBLUT, std::vector &ePhiMap, std::vector &hPhiMap, std::vector &hfPhiMap, @@ -42,6 +43,7 @@ bool L1TCaloLayer1FetchLUTs( bool useECALLUT = true, bool useHCALLUT = true, bool useHFLUT = true, + bool useHCALFBLUT = true, int fwVersion = 0); #endif diff --git a/L1Trigger/L1TCaloLayer1/test/testL1TCaloLayer1.py b/L1Trigger/L1TCaloLayer1/test/testL1TCaloLayer1.py index 011c75950be17..56ff1638e3e9a 100644 --- a/L1Trigger/L1TCaloLayer1/test/testL1TCaloLayer1.py +++ b/L1Trigger/L1TCaloLayer1/test/testL1TCaloLayer1.py @@ -81,6 +81,7 @@ def formatLumis(lumistring, run) : process.simCaloStage2Layer1Digis.useECALLUT = cms.bool(True) process.simCaloStage2Layer1Digis.useHCALLUT = cms.bool(True) process.simCaloStage2Layer1Digis.useHFLUT = cms.bool(True) +process.simCaloStage2Layer1Digis.useHCALFBLUT = cms.bool(False), process.simCaloStage2Layer1Digis.useLSB = cms.bool(True) process.simCaloStage2Layer1Digis.verbose = cms.bool(True) process.simCaloStage2Layer1Digis.ecalToken = cms.InputTag("simEcalTriggerPrimitiveDigis"), diff --git a/L1Trigger/L1TCaloLayer1/test/testL1TCaloLayer1EmulatorOnSpy.py b/L1Trigger/L1TCaloLayer1/test/testL1TCaloLayer1EmulatorOnSpy.py index 4628719823363..4f704513338da 100644 --- a/L1Trigger/L1TCaloLayer1/test/testL1TCaloLayer1EmulatorOnSpy.py +++ b/L1Trigger/L1TCaloLayer1/test/testL1TCaloLayer1EmulatorOnSpy.py @@ -13,6 +13,7 @@ process.simCaloStage2Layer1Digis.useECALLUT = cms.bool(False) process.simCaloStage2Layer1Digis.useHCALLUT = cms.bool(False) process.simCaloStage2Layer1Digis.useHFLUT = cms.bool(False) +process.simCaloStage2Layer1Digis.useHCALFBLUT = cms.bool(False), process.simCaloStage2Layer1Digis.useLSB = cms.bool(False) process.simCaloStage2Layer1Digis.verbose = cms.bool(True) diff --git a/L1Trigger/L1TCaloLayer1/test/testL1TCaloLayer1EmulatorWithSpy.py b/L1Trigger/L1TCaloLayer1/test/testL1TCaloLayer1EmulatorWithSpy.py index 3fb9028169a38..4dc19577f8c24 100644 --- a/L1Trigger/L1TCaloLayer1/test/testL1TCaloLayer1EmulatorWithSpy.py +++ b/L1Trigger/L1TCaloLayer1/test/testL1TCaloLayer1EmulatorWithSpy.py @@ -36,6 +36,7 @@ process.simCaloStage2Layer1Digis.useECALLUT = cms.bool(True) process.simCaloStage2Layer1Digis.useHCALLUT = cms.bool(True) process.simCaloStage2Layer1Digis.useHFLUT = cms.bool(False) +process.simCaloStage2Layer1Digis.useHCALFBLUT = cms.bool(False), process.simCaloStage2Layer1Digis.useLSB = cms.bool(True) process.simCaloStage2Layer1Digis.verbose = cms.bool(False) diff --git a/L1Trigger/L1TCalorimeter/interface/CaloParamsHelper.h b/L1Trigger/L1TCalorimeter/interface/CaloParamsHelper.h index fd115aaf9157c..f1af2c1594a6c 100644 --- a/L1Trigger/L1TCalorimeter/interface/CaloParamsHelper.h +++ b/L1Trigger/L1TCalorimeter/interface/CaloParamsHelper.h @@ -73,7 +73,9 @@ namespace l1t { jetPUSUsePhiRingFlag = 47, metPhiCalibration = 48, metHFPhiCalibration = 49, - NUM_CALOPARAMNODES = 50 + layer1HCalFBUpper = 50, + layer1HCalFBLower = 51, + NUM_CALOPARAMNODES = 52 }; CaloParamsHelper() { pnode_.resize(NUM_CALOPARAMNODES); } @@ -551,6 +553,8 @@ namespace l1t { std::vector const& layer1ECalScaleFactors() const { return pnode_[layer1ECal].dparams_; } std::vector const& layer1HCalScaleFactors() const { return pnode_[layer1HCal].dparams_; } std::vector const& layer1HFScaleFactors() const { return pnode_[layer1HF].dparams_; } + std::vector const& layer1HCalFBLUTUpper() const { return pnode_[layer1HCalFBUpper].uparams_; } + std::vector const& layer1HCalFBLUTLower() const { return pnode_[layer1HCalFBLower].uparams_; } std::vector const& layer1ECalScaleETBins() const { return pnode_[layer1ECal].iparams_; } std::vector const& layer1HCalScaleETBins() const { return pnode_[layer1HCal].iparams_; } std::vector const& layer1HFScaleETBins() const { return pnode_[layer1HF].iparams_; } @@ -560,6 +564,12 @@ namespace l1t { void setLayer1ECalScaleFactors(std::vector params) { pnode_[layer1ECal].dparams_ = std::move(params); } void setLayer1HCalScaleFactors(std::vector params) { pnode_[layer1HCal].dparams_ = std::move(params); } void setLayer1HFScaleFactors(std::vector params) { pnode_[layer1HF].dparams_ = std::move(params); } + void setLayer1HCalFBLUTUpper(std::vector params) { + pnode_[layer1HCalFBUpper].uparams_ = std::move(params); + } + void setLayer1HCalFBLUTLower(std::vector params) { + pnode_[layer1HCalFBLower].uparams_ = std::move(params); + } void setLayer1ECalScaleETBins(std::vector params) { pnode_[layer1ECal].iparams_ = std::move(params); } void setLayer1HCalScaleETBins(std::vector params) { pnode_[layer1HCal].iparams_ = std::move(params); } void setLayer1HFScaleETBins(std::vector params) { pnode_[layer1HF].iparams_ = std::move(params); } diff --git a/L1Trigger/L1TCalorimeter/plugins/L1TCaloParamsESProducer.cc b/L1Trigger/L1TCalorimeter/plugins/L1TCaloParamsESProducer.cc index 835463ed51124..6e28a5a1cc387 100644 --- a/L1Trigger/L1TCalorimeter/plugins/L1TCaloParamsESProducer.cc +++ b/L1Trigger/L1TCalorimeter/plugins/L1TCaloParamsESProducer.cc @@ -345,6 +345,8 @@ L1TCaloParamsESProducer::L1TCaloParamsESProducer(const edm::ParameterSet& conf) m_params_helper.setLayer1ECalScaleFactors(conf.getParameter>("layer1ECalScaleFactors")); m_params_helper.setLayer1HCalScaleFactors(conf.getParameter>("layer1HCalScaleFactors")); m_params_helper.setLayer1HFScaleFactors(conf.getParameter>("layer1HFScaleFactors")); + m_params_helper.setLayer1HCalFBLUTUpper(conf.getParameter>("layer1HCalFBLUTUpper")); + m_params_helper.setLayer1HCalFBLUTLower(conf.getParameter>("layer1HCalFBLUTLower")); m_params_helper.setLayer1ECalScaleETBins(conf.getParameter>("layer1ECalScaleETBins")); m_params_helper.setLayer1HCalScaleETBins(conf.getParameter>("layer1HCalScaleETBins")); diff --git a/L1Trigger/L1TCalorimeter/plugins/L1TCaloStage2ParamsESProducer.cc b/L1Trigger/L1TCalorimeter/plugins/L1TCaloStage2ParamsESProducer.cc index 5fa8a4a8daeff..77d4a54f47306 100644 --- a/L1Trigger/L1TCalorimeter/plugins/L1TCaloStage2ParamsESProducer.cc +++ b/L1Trigger/L1TCalorimeter/plugins/L1TCaloStage2ParamsESProducer.cc @@ -348,6 +348,8 @@ L1TCaloStage2ParamsESProducer::L1TCaloStage2ParamsESProducer(const edm::Paramete m_params_helper.setLayer1ECalScaleFactors(conf.getParameter>("layer1ECalScaleFactors")); m_params_helper.setLayer1HCalScaleFactors(conf.getParameter>("layer1HCalScaleFactors")); m_params_helper.setLayer1HFScaleFactors(conf.getParameter>("layer1HFScaleFactors")); + m_params_helper.setLayer1HCalFBLUTUpper(conf.getParameter>("layer1HCalFBLUTUpper")); + m_params_helper.setLayer1HCalFBLUTLower(conf.getParameter>("layer1HCalFBLUTLower")); m_params_helper.setLayer1ECalScaleETBins(conf.getParameter>("layer1ECalScaleETBins")); m_params_helper.setLayer1HCalScaleETBins(conf.getParameter>("layer1HCalScaleETBins")); diff --git a/L1Trigger/L1TCalorimeter/python/caloParamsHI_2023_v0_0_cfi.py b/L1Trigger/L1TCalorimeter/python/caloParamsHI_2023_v0_0_cfi.py new file mode 100644 index 0000000000000..60532782f903f --- /dev/null +++ b/L1Trigger/L1TCalorimeter/python/caloParamsHI_2023_v0_0_cfi.py @@ -0,0 +1,127 @@ +import FWCore.ParameterSet.Config as cms + +from L1Trigger.L1TCalorimeter.caloParams_cfi import caloParamsSource +import L1Trigger.L1TCalorimeter.caloParams_cfi +caloStage2Params = L1Trigger.L1TCalorimeter.caloParams_cfi.caloParams.clone( + + # EG + egEtaCut = 24, + egHcalThreshold = 0., + egTrimmingLUTFile = "L1Trigger/L1TCalorimeter/data/egTrimmingLUT_10_v16.01.19.txt", + egHOverEcutBarrel = 1, + egHOverEcutEndcap = 1, + egBypassExtHOverE = 1, + egBypassShape = 1, + egBypassECALFG = 1, + + egMaxHOverELUTFile = "L1Trigger/L1TCalorimeter/data/HoverEIdentification_0.995_v15.12.23.txt", + egCompressShapesLUTFile = "L1Trigger/L1TCalorimeter/data/egCompressLUT_v4.txt", + egShapeIdType = "compressed", + egShapeIdLUTFile = "L1Trigger/L1TCalorimeter/data/shapeIdentification_adapt0.99_compressedieta_compressedE_compressedshape_v15.12.08.txt", #Not used any more in the current emulator version, merged with calibration LUT + + egIsolationType = "compressed", + egIsoLUTFile = "L1Trigger/L1TCalorimeter/data/eg_IsoLUT_tight_Opt_L281_7p5_0p9_30p0_12_Jul_2022.txt", + egIsoLUTFile2 = "L1Trigger/L1TCalorimeter/data/eg_IsoLUT_loose_Opt_L137_5p0_0p9_30p0_12_Jul_2022.txt", + + egIsoVetoNrTowersPhi = 2, + egPUSParams = cms.vdouble(1,4,32), #Isolation window in firmware goes up to abs(ieta)=32 for now + egCalibrationType = "compressed", + egCalibrationVersion = 0, + egCalibrationLUTFile = "L1Trigger/L1TCalorimeter/data/egRecalibratedLUTv1_2022_v0_2.txt", + + # Tau + isoTauEtaMax = 25, + tauSeedThreshold = 0., + tauIsoLUTFile = "L1Trigger/L1TCalorimeter/data/Tau_Iso_LUT_2022_calibThr1p7_rate14kHz_V11gs_effMin0p9_G3.txt", + tauIsoLUTFile2 = "L1Trigger/L1TCalorimeter/data/Tau_Iso_LUT_2022_calibThr1p7_rate14kHz_V11gs_effMin0p9_G3.txt", + tauCalibrationLUTFile = "L1Trigger/L1TCalorimeter/data/Tau_Cal_LUT_2022_calibThr1p7_V11.txt", + tauCompressLUTFile = "L1Trigger/L1TCalorimeter/data/tauCompressAllLUT_12bit_v3.txt", + tauPUSParams = [1,4,32], + + # jets + jetSeedThreshold = 4.0, + jetPUSType = "PhiRing1", + jetPUSUsePhiRing = 1, + + # Calibration options + jetCalibrationType = "LUT", + jetCompressPtLUTFile = "L1Trigger/L1TCalorimeter/data/lut_pt_compress_2017v1.txt", + jetCompressEtaLUTFile = "L1Trigger/L1TCalorimeter/data/lut_eta_compress_2017v1.txt", + jetCalibrationLUTFile = "L1Trigger/L1TCalorimeter/data/lut_calib_2022v5_ECALZS_HI_noHFJEC.txt", + + + # sums: 0=ET, 1=HT, 2=MET, 3=MHT + etSumEtaMin = [1, 1, 1, 1, 1], + etSumEtaMax = [28, 26, 28, 26, 28], + etSumEtThreshold = [0., 30., 0., 30., 0.], # only 2nd (HT) and 4th (MHT) values applied + etSumMetPUSType = "LUT", # et threshold from this LUT supercedes et threshold in line above + etSumBypassEttPUS = 1, + etSumBypassEcalSumPUS = 1, + + etSumMetPUSLUTFile = "L1Trigger/L1TCalorimeter/data/metPumLUT_2022_HCALOff_p5.txt", + + etSumCentralityUpper = [2.0, 6.0, 53.5, 190.0, 645.0, 6000.0, 6000.0, 65535.0], + etSumCentralityLower = [0.0, 1.5, 4.0, 47.5, 157.5, 4707.0, 4857.5, 65535.0], + + # Layer 1 SF + layer1ECalScaleETBins = cms.vint32([3, 6, 9, 12, 15, 20, 25, 30, 35, 40, 45, 55, 70, 256]), + layer1ECalScaleFactors = cms.vdouble([ + 1.12, 1.13, 1.13, 1.12, 1.12, 1.12, 1.13, 1.12, 1.13, 1.12, 1.13, 1.13, 1.14, 1.13, 1.13, 1.13, 1.14, 1.26, 1.11, 1.20, 1.21, 1.22, 1.19, 1.20, 1.19, 0.00, 0.00, 0.00, + 1.12, 1.13, 1.13, 1.12, 1.12, 1.12, 1.13, 1.12, 1.13, 1.12, 1.13, 1.13, 1.14, 1.13, 1.13, 1.13, 1.14, 1.26, 1.11, 1.20, 1.21, 1.22, 1.19, 1.20, 1.19, 1.22, 0.00, 0.00, + 1.08, 1.09, 1.08, 1.08, 1.11, 1.08, 1.09, 1.09, 1.09, 1.09, 1.15, 1.09, 1.10, 1.10, 1.10, 1.10, 1.10, 1.23, 1.07, 1.15, 1.14, 1.16, 1.14, 1.14, 1.15, 1.14, 1.14, 0.00, + 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.07, 1.07, 1.07, 1.07, 1.07, 1.08, 1.07, 1.09, 1.08, 1.17, 1.06, 1.11, 1.10, 1.13, 1.10, 1.10, 1.11, 1.11, 1.11, 1.09, + 1.04, 1.05, 1.04, 1.05, 1.04, 1.05, 1.06, 1.06, 1.05, 1.05, 1.05, 1.06, 1.06, 1.06, 1.06, 1.06, 1.07, 1.15, 1.04, 1.09, 1.09, 1.10, 1.09, 1.09, 1.10, 1.10, 1.10, 1.08, + 1.04, 1.03, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.05, 1.06, 1.04, 1.05, 1.05, 1.13, 1.03, 1.07, 1.08, 1.08, 1.08, 1.07, 1.07, 1.09, 1.08, 1.07, + 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.04, 1.04, 1.05, 1.05, 1.05, 1.05, 1.05, 1.12, 1.03, 1.06, 1.06, 1.08, 1.07, 1.07, 1.06, 1.08, 1.07, 1.06, + 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.04, 1.04, 1.04, 1.04, 1.04, 1.03, 1.10, 1.02, 1.05, 1.06, 1.06, 1.06, 1.06, 1.05, 1.06, 1.06, 1.06, + 1.02, 1.02, 1.02, 1.02, 1.02, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.04, 1.03, 1.03, 1.02, 1.07, 1.02, 1.04, 1.04, 1.05, 1.06, 1.05, 1.05, 1.06, 1.06, 1.05, + 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.09, 1.02, 1.04, 1.05, 1.05, 1.05, 1.05, 1.04, 1.05, 1.06, 1.05, + 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.03, 1.03, 1.03, 1.03, 1.03, 1.08, 1.01, 1.04, 1.04, 1.05, 1.05, 1.04, 1.04, 1.05, 1.06, 1.05, + 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.02, 1.01, 1.02, 1.02, 1.02, 1.02, 1.03, 1.03, 1.03, 1.03, 1.03, 1.06, 1.01, 1.04, 1.04, 1.05, 1.04, 1.03, 1.03, 1.04, 1.05, 1.04, + 1.01, 1.00, 1.01, 1.01, 1.01, 1.01, 1.01, 1.00, 1.01, 1.02, 1.01, 1.01, 1.02, 1.02, 1.02, 1.02, 1.03, 1.04, 1.01, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.00, 1.01, + 1.02, 1.00, 1.00, 1.02, 1.00, 1.01, 1.01, 1.00, 1.00, 1.02, 1.01, 1.01, 1.02, 1.02, 1.02, 1.02, 1.02, 1.04, 1.01, 1.03, 1.03, 1.03, 1.03, 1.02, 1.02, 1.02, 1.00, 1.01 + ]), + + layer1HCalScaleETBins = cms.vint32([6, 9, 12, 15, 20, 25, 30, 35, 40, 45, 55, 70, 256]), + layer1HCalScaleFactors = cms.vdouble([ + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00 + ]), + + layer1HFScaleETBins = cms.vint32([6, 9, 12, 15, 20, 25, 30, 35, 40, 45, 55, 70, 256]), + layer1HFScaleFactors = cms.vdouble([ + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00 + ]), + + # HCal FB LUT + layer1HCalFBLUTUpper = cms.vuint32([ + 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, + ]), + + layer1HCalFBLUTLower = cms.vuint32([ + 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, + ]) +) diff --git a/L1Trigger/L1TCalorimeter/python/caloParams_2023_v0_0_cfi.py b/L1Trigger/L1TCalorimeter/python/caloParams_2023_v0_0_cfi.py new file mode 100644 index 0000000000000..a2d10cd2d8cec --- /dev/null +++ b/L1Trigger/L1TCalorimeter/python/caloParams_2023_v0_0_cfi.py @@ -0,0 +1,120 @@ +import FWCore.ParameterSet.Config as cms + +from L1Trigger.L1TCalorimeter.caloParams_cfi import caloParamsSource +import L1Trigger.L1TCalorimeter.caloParams_cfi +caloStage2Params = L1Trigger.L1TCalorimeter.caloParams_cfi.caloParams.clone( + + # EG + egHcalThreshold = 0., + egTrimmingLUTFile = "L1Trigger/L1TCalorimeter/data/egTrimmingLUT_10_v16.01.19.txt", + egHOverEcutBarrel = 3, + egHOverEcutEndcap = 4, + egBypassExtHOverE = 0, + egMaxHOverELUTFile = "L1Trigger/L1TCalorimeter/data/HoverEIdentification_0.995_v15.12.23.txt", + egCompressShapesLUTFile = "L1Trigger/L1TCalorimeter/data/egCompressLUT_v4.txt", + egShapeIdType = "compressed", + egShapeIdLUTFile = "L1Trigger/L1TCalorimeter/data/shapeIdentification_adapt0.99_compressedieta_compressedE_compressedshape_v15.12.08.txt", #Not used any more in the current emulator version, merged with calibration LUT + + egIsolationType = "compressed", + egIsoLUTFile = "L1Trigger/L1TCalorimeter/data/eg_IsoLUT_tight_Opt_L281_7p5_0p9_30p0_12_Jul_2022.txt", + egIsoLUTFile2 = "L1Trigger/L1TCalorimeter/data/eg_IsoLUT_loose_Opt_L137_5p0_0p9_30p0_12_Jul_2022.txt", + + egIsoVetoNrTowersPhi = 2, + egPUSParams = cms.vdouble(1,4,32), #Isolation window in firmware goes up to abs(ieta)=32 for now + egCalibrationType = "compressed", + egCalibrationVersion = 0, + egCalibrationLUTFile = "L1Trigger/L1TCalorimeter/data/egRecalibratedLUTv1_2022_v0_2.txt", + + # Tau + isoTauEtaMax = 25, + tauSeedThreshold = 0., + tauIsoLUTFile = "L1Trigger/L1TCalorimeter/data/Tau_Iso_LUT_2022_calibThr1p7_rate14kHz_V11gs_effMin0p9_G3.txt", + tauIsoLUTFile2 = "L1Trigger/L1TCalorimeter/data/Tau_Iso_LUT_2022_calibThr1p7_rate14kHz_V11gs_effMin0p9_G3.txt", + tauCalibrationLUTFile = "L1Trigger/L1TCalorimeter/data/Tau_Cal_LUT_2022_calibThr1p7_V11.txt", + tauCompressLUTFile = "L1Trigger/L1TCalorimeter/data/tauCompressAllLUT_12bit_v3.txt", + tauPUSParams = [1,4,32], + + # jets + jetSeedThreshold = 4.0, + jetPUSType = "ChunkyDonut", + + # Calibration options + jetCalibrationType = "LUT", + jetCompressPtLUTFile = "L1Trigger/L1TCalorimeter/data/lut_pt_compress_2017v1.txt", + jetCompressEtaLUTFile = "L1Trigger/L1TCalorimeter/data/lut_eta_compress_2017v1.txt", + jetCalibrationLUTFile = "L1Trigger/L1TCalorimeter/data/lut_calib_2022v5_ECALZS_noHFJEC.txt", + + + # sums: 0=ET, 1=HT, 2=MET, 3=MHT + etSumEtaMin = [1, 1, 1, 1, 1], + etSumEtaMax = [28, 26, 28, 26, 28], + etSumEtThreshold = [0., 30., 0., 30., 0.], # only 2nd (HT) and 4th (MHT) values applied + etSumMetPUSType = "LUT", # et threshold from this LUT supercedes et threshold in line above + etSumBypassEttPUS = 1, + etSumBypassEcalSumPUS = 1, + + etSumMetPUSLUTFile = "L1Trigger/L1TCalorimeter/data/metPumLUT_2022_HCALOff_p5.txt", + + + # Layer 1 SF + layer1ECalScaleETBins = cms.vint32([3, 6, 9, 12, 15, 20, 25, 30, 35, 40, 45, 55, 70, 256]), + layer1ECalScaleFactors = cms.vdouble([ + 1.12, 1.13, 1.13, 1.12, 1.12, 1.12, 1.13, 1.12, 1.13, 1.12, 1.13, 1.13, 1.14, 1.13, 1.13, 1.13, 1.14, 1.26, 1.11, 1.20, 1.21, 1.22, 1.19, 1.20, 1.19, 0.00, 0.00, 0.00, + 1.12, 1.13, 1.13, 1.12, 1.12, 1.12, 1.13, 1.12, 1.13, 1.12, 1.13, 1.13, 1.14, 1.13, 1.13, 1.13, 1.14, 1.26, 1.11, 1.20, 1.21, 1.22, 1.19, 1.20, 1.19, 1.22, 0.00, 0.00, + 1.08, 1.09, 1.08, 1.08, 1.11, 1.08, 1.09, 1.09, 1.09, 1.09, 1.15, 1.09, 1.10, 1.10, 1.10, 1.10, 1.10, 1.23, 1.07, 1.15, 1.14, 1.16, 1.14, 1.14, 1.15, 1.14, 1.14, 0.00, + 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.07, 1.07, 1.07, 1.07, 1.07, 1.08, 1.07, 1.09, 1.08, 1.17, 1.06, 1.11, 1.10, 1.13, 1.10, 1.10, 1.11, 1.11, 1.11, 1.09, + 1.04, 1.05, 1.04, 1.05, 1.04, 1.05, 1.06, 1.06, 1.05, 1.05, 1.05, 1.06, 1.06, 1.06, 1.06, 1.06, 1.07, 1.15, 1.04, 1.09, 1.09, 1.10, 1.09, 1.09, 1.10, 1.10, 1.10, 1.08, + 1.04, 1.03, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.05, 1.06, 1.04, 1.05, 1.05, 1.13, 1.03, 1.07, 1.08, 1.08, 1.08, 1.07, 1.07, 1.09, 1.08, 1.07, + 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.04, 1.04, 1.05, 1.05, 1.05, 1.05, 1.05, 1.12, 1.03, 1.06, 1.06, 1.08, 1.07, 1.07, 1.06, 1.08, 1.07, 1.06, + 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.04, 1.04, 1.04, 1.04, 1.04, 1.03, 1.10, 1.02, 1.05, 1.06, 1.06, 1.06, 1.06, 1.05, 1.06, 1.06, 1.06, + 1.02, 1.02, 1.02, 1.02, 1.02, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.04, 1.03, 1.03, 1.02, 1.07, 1.02, 1.04, 1.04, 1.05, 1.06, 1.05, 1.05, 1.06, 1.06, 1.05, + 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.09, 1.02, 1.04, 1.05, 1.05, 1.05, 1.05, 1.04, 1.05, 1.06, 1.05, + 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.03, 1.03, 1.03, 1.03, 1.03, 1.08, 1.01, 1.04, 1.04, 1.05, 1.05, 1.04, 1.04, 1.05, 1.06, 1.05, + 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.02, 1.01, 1.02, 1.02, 1.02, 1.02, 1.03, 1.03, 1.03, 1.03, 1.03, 1.06, 1.01, 1.04, 1.04, 1.05, 1.04, 1.03, 1.03, 1.04, 1.05, 1.04, + 1.01, 1.00, 1.01, 1.01, 1.01, 1.01, 1.01, 1.00, 1.01, 1.02, 1.01, 1.01, 1.02, 1.02, 1.02, 1.02, 1.03, 1.04, 1.01, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.00, 1.01, + 1.02, 1.00, 1.00, 1.02, 1.00, 1.01, 1.01, 1.00, 1.00, 1.02, 1.01, 1.01, 1.02, 1.02, 1.02, 1.02, 1.02, 1.04, 1.01, 1.03, 1.03, 1.03, 1.03, 1.02, 1.02, 1.02, 1.00, 1.01 + ]), + + layer1HCalScaleETBins = cms.vint32([6, 9, 12, 15, 20, 25, 30, 35, 40, 45, 55, 70, 256]), + layer1HCalScaleFactors = cms.vdouble([ + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00 + ]), + + layer1HFScaleETBins = cms.vint32([6, 9, 12, 15, 20, 25, 30, 35, 40, 45, 55, 70, 256]), + layer1HFScaleFactors = cms.vdouble([ + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00 + ]), + + # HCal FB LUT + layer1HCalFBLUTUpper = cms.vuint32([ + 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, + ]), + + layer1HCalFBLUTLower = cms.vuint32([ + 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, + ]) +) diff --git a/L1TriggerConfig/L1TConfigProducers/src/CaloParamsHelperO2O.h b/L1TriggerConfig/L1TConfigProducers/src/CaloParamsHelperO2O.h index 0fee426828e16..621526cefef11 100644 --- a/L1TriggerConfig/L1TConfigProducers/src/CaloParamsHelperO2O.h +++ b/L1TriggerConfig/L1TConfigProducers/src/CaloParamsHelperO2O.h @@ -68,7 +68,9 @@ namespace l1t { jetPUSUsePhiRingFlag = 47, metPhiCalibration = 48, metHFPhiCalibration = 49, - NUM_CALOPARAMNODES = 50 + layer1HCalFBUpper = 50, + layer1HCalFBLower = 51, + NUM_CALOPARAMNODES = 52 }; CaloParamsHelperO2O() { pnode_.resize(NUM_CALOPARAMNODES); } @@ -549,6 +551,8 @@ namespace l1t { std::vector layer1ECalScaleFactors() { return pnode_[layer1ECal].dparams_; } std::vector layer1HCalScaleFactors() { return pnode_[layer1HCal].dparams_; } std::vector layer1HFScaleFactors() { return pnode_[layer1HF].dparams_; } + std::vector layer1HCalFBLUTUpper() { return pnode_[layer1HCalFBUpper].uparams_; } + std::vector layer1HCalFBLUTLower() { return pnode_[layer1HCalFBLower].uparams_; } std::vector layer1ECalScaleETBins() { return pnode_[layer1ECal].iparams_; } std::vector layer1HCalScaleETBins() { return pnode_[layer1HCal].iparams_; } std::vector layer1HFScaleETBins() { return pnode_[layer1HF].iparams_; } @@ -558,6 +562,8 @@ namespace l1t { void setLayer1ECalScaleFactors(const std::vector params) { pnode_[layer1ECal].dparams_ = params; } void setLayer1HCalScaleFactors(const std::vector params) { pnode_[layer1HCal].dparams_ = params; } void setLayer1HFScaleFactors(const std::vector params) { pnode_[layer1HF].dparams_ = params; } + void setLayer1HCalFBLUTUpper(const std::vector params) { pnode_[layer1HCalFBUpper].uparams_ = params; } + void setLayer1HCalFBLUTLower(const std::vector params) { pnode_[layer1HCalFBLower].uparams_ = params; } void setLayer1ECalScaleETBins(const std::vector params) { pnode_[layer1ECal].iparams_ = params; } void setLayer1HCalScaleETBins(const std::vector params) { pnode_[layer1HCal].iparams_ = params; } void setLayer1HFScaleETBins(const std::vector params) { pnode_[layer1HF].iparams_ = params; } diff --git a/L1TriggerConfig/L1TConfigProducers/src/L1TCaloParamsOnlineProd.cc b/L1TriggerConfig/L1TConfigProducers/src/L1TCaloParamsOnlineProd.cc index 91218c9d46fec..0c8528a8b375e 100644 --- a/L1TriggerConfig/L1TConfigProducers/src/L1TCaloParamsOnlineProd.cc +++ b/L1TriggerConfig/L1TConfigProducers/src/L1TCaloParamsOnlineProd.cc @@ -52,7 +52,9 @@ bool L1TCaloParamsOnlineProd::readCaloLayer1OnlineSettings(l1t::CaloParamsHelper //"layer1ECalScalePhiBins", //"layer1HCalScalePhiBins", //"layer1HFScalePhiBins", - //"layer1SecondStageLUT" + //"layer1SecondStageLUT", + //"layer1HCalFBLUTUpper", + //"layer1HCalFBLUTLower" }; for (const auto param : expectedParams) { if (conf.find(param) == conf.end()) { @@ -78,6 +80,10 @@ bool L1TCaloParamsOnlineProd::readCaloLayer1OnlineSettings(l1t::CaloParamsHelper paramsHelper.setLayer1HFScalePhiBins(conf["layer1HFScalePhiBins"].getVector()); if (conf.find("layer1SecondStageLUT") != conf.end()) paramsHelper.setLayer1SecondStageLUT(conf["layer1SecondStageLUT"].getVector()); + if (conf.find("layer1HCalFBLUTUpper") != conf.end()) + paramsHelper.setLayer1HCalFBLUTUpper(conf["layer1HCalFBLUTUpper"].getVector()); + if (conf.find("layer1HCalFBLUTLower") != conf.end()) + paramsHelper.setLayer1HCalFBLUTLower(conf["layer1HCalFBLUTLower"].getVector()); return true; }