diff --git a/configs/V38nano/caching.yaml b/configs/V38nano/caching.yaml index 71867337..f8ff90b7 100644 --- a/configs/V38nano/caching.yaml +++ b/configs/V38nano/caching.yaml @@ -53,6 +53,7 @@ V38nano: ntuple_path: /eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/alobanov/phase2/menu/ntuples/14X/v38/VBFHToTauTau_M-125_TuneCP5_14TeV-powheg-pythia8/VBFHToTauTau_131_200PU_IBv9_wTT/240412_210701/0000/*.root trees_branches: Events: + GenPart: [pt, eta, phi, pdgId, statusFlags] GenVisTau: "all" L1nnPuppiTau: "all" L1hpsTau: "all" diff --git a/configs/V38nano/object_performance/electron_iso.yaml b/configs/V38nano/object_performance/electron_iso.yaml index ae00f6aa..32360906 100644 --- a/configs/V38nano/object_performance/electron_iso.yaml +++ b/configs/V38nano/object_performance/electron_iso.yaml @@ -15,7 +15,7 @@ ElectronsIsolation_Barrel: object: - "abs({eta}) < 1.479" test_objects: - L1tkElectron:NoIso: "relIso" + L1tkElectron:NoIsoForIso: "relIso" xlabel: "Isolation" ylabel: "Efficiency (Barrel)" binning: diff --git a/configs/V38nano/object_performance/electron_matching.yaml b/configs/V38nano/object_performance/electron_matching.yaml index ca1a7155..971fa636 100644 --- a/configs/V38nano/object_performance/electron_matching.yaml +++ b/configs/V38nano/object_performance/electron_matching.yaml @@ -16,6 +16,7 @@ ElectronsMatchingBarrel: test_objects: L1EG:default: "pt" L1tkElectron:NoIso: "pt" + L1tkElectron:NoIsoNoLowPtID: "pt" L1tkElectron:Iso: "pt" xlabel: "Gen. $p_T$ (GeV)" ylabel: "Matching Efficiency (Barrel)" @@ -68,6 +69,7 @@ ElectronsMatchingEndcap: test_objects: L1EG:default: "pt" L1tkElectron:NoIso: "pt" + L1tkElectron:NoIsoNoLowPtID: "pt" L1tkElectron:Iso: "pt" xlabel: "Gen. $p_T$ (GeV)" ylabel: "Matching Efficiency (Endcap)" diff --git a/configs/V38nano/object_performance/electron_matching_eta.yaml b/configs/V38nano/object_performance/electron_matching_eta.yaml index 8d4d5094..563626b6 100644 --- a/configs/V38nano/object_performance/electron_matching_eta.yaml +++ b/configs/V38nano/object_performance/electron_matching_eta.yaml @@ -17,6 +17,7 @@ ElectronsMatching_Eta_Pt10to25: test_objects: L1EG:default: "eta" L1tkElectron:NoIso: "eta" + L1tkElectron:NoIsoNoLowPtID: "eta" L1tkElectron:Iso: "eta" xlabel: "Gen. $\\eta$" ylabel: "Matching Efficiency ($10 < p_T < 25$ GeV)" @@ -43,6 +44,7 @@ ElectronsMatching_Eta_Pt25toInf: test_objects: L1EG:default: "eta" L1tkElectron:NoIso: "eta" + L1tkElectron:NoIsoNoLowPtID: "eta" L1tkElectron:Iso: "eta" xlabel: "Gen. $\\eta$" ylabel: "Matching Efficiency ($p_T > 25$ GeV)" diff --git a/configs/V38nano/object_performance/electron_trigger.yaml b/configs/V38nano/object_performance/electron_trigger.yaml index fa83c998..d4390612 100644 --- a/configs/V38nano/object_performance/electron_trigger.yaml +++ b/configs/V38nano/object_performance/electron_trigger.yaml @@ -16,6 +16,7 @@ ElectronsTriggerBarrel: test_objects: L1EG:default:barrel: "pt" L1tkElectron:NoIso:barrel: "pt" + # L1tkElectron:NoIsoNoLowPtID:barrel: "pt" L1tkElectron:Iso:barrel: "pt" thresholds: [10, 20, 30, 40] scalings: @@ -46,6 +47,7 @@ ElectronsTriggerEndcap: test_objects: L1EG:default:endcap: "pt" L1tkElectron:NoIso:endcap: "pt" + # L1tkElectron:NoIsoNoLowPtID:endcap: "pt" L1tkElectron:Iso:endcap: "pt" thresholds: [10, 20, 30, 40] scalings: @@ -57,63 +59,3 @@ ElectronsTriggerEndcap: min: 0 max: 100 step: 1.5 - -# ElectronsTriggerBarrel_wPrunedGenPart: -# sample: DYLL_M50 -# version: V38nano -# match_test_to_ref: True -# reference_object: -# object: "GenPart" -# x_arg: "pt" -# label: "Gen Electrons" -# cuts: -# event: -# - "(({statusFlags}>>7)&1) == 1" -# - "abs({pdgId}) == 11" -# - "abs({eta}) < 1.5" -# object: -# - "abs({eta}) < 2.8" -# test_objects: - # L1EG:default:barrel: "pt" -# L1tkElectron:NoIso:barrel: "pt" -# L1tkElectron:Iso:barrel: "pt" -# thresholds: [10, 20, 30, 40] -# scalings: -# method: "naive" -# threshold: 0.95 -# xlabel: "Gen. pT (GeV)" -# ylabel: "Trigger Efficiency (barrel, L1 $p_T > $ GeV)" -# binning: -# min: 0 -# max: 100 -# step: 1.5 - -# ElectronsTriggerEndcap_wPrunedGenPart: -# sample: DYLL_M50 -# version: V38nano -# match_test_to_ref: True -# reference_object: -# object: "GenPart" -# x_arg: "pt" -# label: "Gen Electrons" -# cuts: -# event: -# - "(({statusFlags}>>7)&1) == 1" -# - "abs({pdgId}) == 11" -# - "abs({eta}) > 1.5" -# object: -# - "abs({eta}) < 2.8" -# test_objects: -# # L1EG:default:endcap: "pt" -# L1tkElectron:NoIso:endcap: "pt" -# L1tkElectron:Iso:endcap: "pt" -# thresholds: [10, 20, 30, 40] -# scalings: -# method: "naive" -# threshold: 0.95 -# xlabel: "Gen. pT (GeV)" -# ylabel: "Trigger Efficiency (endcap, L1 $p_T > $ GeV)" -# binning: -# min: 0 -# max: 100 -# step: 1.5 diff --git a/configs/V38nano/object_performance/photons_matching.yaml b/configs/V38nano/object_performance/photons_matching.yaml index 8814dc00..b8663f64 100644 --- a/configs/V38nano/object_performance/photons_matching.yaml +++ b/configs/V38nano/object_performance/photons_matching.yaml @@ -1,56 +1,108 @@ -PhotonsMatching_Barrel: - sample: Hgg - version: V38nano - match_test_to_ref: True - reference_object: - object: "GenPart" - x_arg: "pt" - label: "Gen Photons" - cuts: - event: - - "(({statusFlags}>>7)&1) == 1" - - "abs({pdgId}) == 22" - - "abs({eta}) < 1.5" - object: - - "abs({eta}) < 2.4" - test_objects: - L1EG:default: "pt" - L1tkPhoton:NoIso: "pt" - L1tkPhoton:Iso: "pt" - xlabel: "Gen. $p_T$ (GeV)" - ylabel: "Matching Efficiency (Barrel)" - binning: - min: 0 - max: 100 - step: 3 +# PhotonsMatching_Barrel: +# sample: Hgg +# version: V38nano +# match_test_to_ref: True +# reference_object: +# object: "GenPart" +# x_arg: "pt" +# label: "Gen Photons" +# cuts: +# event: +# - "(({statusFlags}>>7)&1) == 1" +# - "abs({pdgId}) == 22" +# - "abs({eta}) < 1.5" +# object: +# - "abs({eta}) < 2.4" +# test_objects: +# L1EG:default: "pt" +# L1tkPhoton:NoIso: "pt" +# L1tkPhoton:Iso: "pt" +# xlabel: "Gen. $p_T$ (GeV)" +# ylabel: "Matching Efficiency (Barrel)" +# binning: +# min: 0 +# max: 100 +# step: 3 -PhotonsMatching_Endcap: - sample: Hgg - version: V38nano - match_test_to_ref: True - reference_object: - object: "GenPart" - x_arg: "pt" - label: "Gen Photons" - cuts: - event: - - "(({statusFlags}>>7)&1) == 1" - - "abs({pdgId}) == 22" - - "abs({eta}) > 1.5" - object: - - "abs({eta}) < 2.4" - test_objects: - L1EG:default: "pt" - L1tkPhoton:NoIso: "pt" - L1tkPhoton:Iso: "pt" - xlabel: "Gen. $p_T$ (GeV)" - ylabel: "Matching Efficiency (Endcap)" - binning: - min: 0 - max: 100 - step: 3 +# PhotonsMatching_Endcap: +# sample: Hgg +# version: V38nano +# match_test_to_ref: True +# reference_object: +# object: "GenPart" +# x_arg: "pt" +# label: "Gen Photons" +# cuts: +# event: +# - "(({statusFlags}>>7)&1) == 1" +# - "abs({pdgId}) == 22" +# - "abs({eta}) > 1.5" +# object: +# - "abs({eta}) < 2.4" +# test_objects: +# L1EG:default: "pt" +# L1tkPhoton:NoIso: "pt" +# L1tkPhoton:Iso: "pt" +# xlabel: "Gen. $p_T$ (GeV)" +# ylabel: "Matching Efficiency (Endcap)" +# binning: +# min: 0 +# max: 100 +# step: 3 + +# PhotonsMatching_Barrel_wPrunedGenParts: +# sample: Hgg +# version: V38nano +# match_test_to_ref: True +# reference_object: +# object: "GenPart" +# x_arg: "pt" +# label: "Gen Photons" +# cuts: +# event: +# - "(({statusFlags}>>7)&1) == 1" +# - "abs({pdgId}) == 22" +# - "abs({eta}) < 1.5" +# object: +# - "abs({eta}) < 2.4" +# test_objects: +# L1EG:default: "pt" +# L1tkPhoton:NoIso: "pt" +# L1tkPhoton:Iso: "pt" +# xlabel: "Gen. $p_T$ (GeV)" +# ylabel: "Matching Efficiency (Barrel)" +# binning: +# min: 0 +# max: 100 +# step: 3 + +# PhotonsMatching_Endcap_wPrunedGenParts: +# sample: Hgg +# version: V38nano +# match_test_to_ref: True +# reference_object: +# object: "GenPart" +# x_arg: "pt" +# label: "Gen Photons" +# cuts: +# event: +# - "(({statusFlags}>>7)&1) == 1" +# - "abs({pdgId}) == 22" +# - "abs({eta}) > 1.5" +# object: +# - "abs({eta}) < 2.4" +# test_objects: +# L1EG:default: "pt" +# L1tkPhoton:NoIso: "pt" +# L1tkPhoton:Iso: "pt" +# xlabel: "Gen. $p_T$ (GeV)" +# ylabel: "Matching Efficiency (Endcap)" +# binning: +# min: 0 +# max: 100 +# step: 3 -PhotonsMatching_Barrel_wPrunedGenParts: +PhotonsMatching_Barrel_Pt30: sample: Hgg version: V38nano match_test_to_ref: True @@ -69,14 +121,16 @@ PhotonsMatching_Barrel_wPrunedGenParts: L1EG:default: "pt" L1tkPhoton:NoIso: "pt" L1tkPhoton:Iso: "pt" + L1tkPhoton:NoIsoPt30: "pt" + L1tkPhoton:IsoPt30: "pt" xlabel: "Gen. $p_T$ (GeV)" ylabel: "Matching Efficiency (Barrel)" binning: min: 0 - max: 100 + max: 150 step: 3 -PhotonsMatching_Endcap_wPrunedGenParts: +PhotonsMatching_Endcap_Pt30: sample: Hgg version: V38nano match_test_to_ref: True @@ -95,9 +149,11 @@ PhotonsMatching_Endcap_wPrunedGenParts: L1EG:default: "pt" L1tkPhoton:NoIso: "pt" L1tkPhoton:Iso: "pt" + L1tkPhoton:NoIsoPt30: "pt" + L1tkPhoton:IsoPt30: "pt" xlabel: "Gen. $p_T$ (GeV)" ylabel: "Matching Efficiency (Endcap)" binning: min: 0 - max: 100 + max: 150 step: 3 diff --git a/configs/V38nano/object_performance/photons_trigger.yaml b/configs/V38nano/object_performance/photons_trigger.yaml index 7981c9f5..e9eac458 100644 --- a/configs/V38nano/object_performance/photons_trigger.yaml +++ b/configs/V38nano/object_performance/photons_trigger.yaml @@ -17,7 +17,7 @@ PhotonsTrigger_Barrel: L1EG:default:barrel: "pt" L1tkPhoton:NoIso:barrel: "pt" L1tkPhoton:Iso:barrel: "pt" - thresholds: [10, 20, 30, 40] + thresholds: [8] scalings: method: "naive" threshold: 0.95 @@ -47,7 +47,7 @@ PhotonsTrigger_Endcap: L1EG:default:endcap: "pt" L1tkPhoton:NoIso:endcap: "pt" L1tkPhoton:Iso:endcap: "pt" - thresholds: [10, 20, 30, 40] + thresholds: [8] scalings: method: "naive" threshold: 0.95 diff --git a/configs/V38nano/objects/photons.yaml b/configs/V38nano/objects/photons.yaml index 12d51f0c..2565e821 100644 --- a/configs/V38nano/objects/photons.yaml +++ b/configs/V38nano/objects/photons.yaml @@ -15,6 +15,16 @@ L1tkPhoton: - "{eleId} == 1" endcap: - "{phoId} == 1" + NoIsoPt30: + label: "L1tkPhoton, pt>30" + cuts: + inclusive: + - "abs({eta}) < 2.4" + - "{pt} > 30" + barrel: + - "{eleId} == 1" + endcap: + - "{phoId} == 1" Iso: label: "L1tkIsoPhoton" cuts: @@ -27,3 +37,15 @@ L1tkPhoton: endcap: - "abs({relIso}) < 0.205" - "{phoId} == 1" + IsoPt30: + label: "L1tkIsoPhoton, Pt>30" + cuts: + inclusive: + - "abs({eta}) < 2.4" + - "{pt} > 30" + barrel: + - "abs({relIso}) < 0.25" + - "{eleId} == 1" + endcap: + - "abs({relIso}) < 0.205" + - "{phoId} == 1" diff --git a/configs/V38nano/rate_plots/eg.yaml b/configs/V38nano/rate_plots/eg.yaml index 44d6cb62..14cdcc9e 100644 --- a/configs/V38nano/rate_plots/eg.yaml +++ b/configs/V38nano/rate_plots/eg.yaml @@ -6,6 +6,7 @@ EGRates: - L1tkElectron:NoIso - L1tkElectron:Iso - L1tkPhoton:Iso + - L1tkElectron:NoIsoNoLowPtID binning: min: 10 max: 97 diff --git a/configs/V38nano_DT12x/rate_plots/eg.yaml b/configs/V38nano_DT12x/rate_plots/eg.yaml index becfac42..63489e05 100644 --- a/configs/V38nano_DT12x/rate_plots/eg.yaml +++ b/configs/V38nano_DT12x/rate_plots/eg.yaml @@ -1,3 +1,16 @@ +# EGRates: +# sample: MinBias +# version: V38nano_DT12x +# test_objects: +# - L1EG:default +# - L1tkElectron:NoIso +# - L1tkElectron:Iso +# - L1tkPhoton:Iso +# binning: +# min: 10 +# max: 97 +# step: 3 + EGRates: sample: MinBias version: V38nano_DT12x @@ -10,3 +23,29 @@ EGRates: min: 10 max: 97 step: 3 + +EG_NoIso_RatesByRegion: + sample: MinBias + version: V38nano_DT12x + test_objects: + - L1EG:default:barrel + - L1EG:default:endcap + - L1tkElectron:NoIso:barrel + - L1tkElectron:NoIso:endcap + binning: + min: 10 + max: 97 + step: 3 + +EG_Iso_RatesByRegion: + sample: MinBias + version: V38nano_DT12x + test_objects: + - L1tkElectron:Iso:barrel + - L1tkElectron:Iso:endcap + - L1tkPhoton:Iso:barrel + - L1tkPhoton:Iso:endcap + binning: + min: 10 + max: 97 + step: 3 \ No newline at end of file diff --git a/configs/V38nano_DT12x/rate_plots/jets.yaml b/configs/V38nano_DT12x/rate_plots/jets.yaml index 5f6a9c1d..b0e0139e 100644 --- a/configs/V38nano_DT12x/rate_plots/jets.yaml +++ b/configs/V38nano_DT12x/rate_plots/jets.yaml @@ -4,29 +4,29 @@ JetDefaultRates: test_objects: # - L1puppiJetHisto:default - L1puppiJetSC4:default - # - L1caloJet:default - # - L1TrackJet:default + - L1caloJet:default + - L1TrackJet:default binning: min: 40 max: 420 step: 20 -# JetsByRegion: -# sample: MinBias -# version: V38nano_DT12x -# test_objects: -# - L1puppiJetSC4:default:barrel -# - L1puppiJetSC4:default:endcap -# - L1puppiJetSC4:default:forward -# - L1caloJet:default:barrel -# - L1caloJet:default:endcap -# - L1caloJet:default:forward -# # - L1TrackJet:default:barrel -# # - L1TrackJet:default:endcap -# binning: -# min: 40 -# max: 420 -# step: 20 +JetsByRegion: + sample: MinBias + version: V38nano_DT12x + test_objects: + - L1puppiJetSC4:default:barrel + - L1puppiJetSC4:default:endcap + - L1puppiJetSC4:default:forward + - L1caloJet:default:barrel + - L1caloJet:default:endcap + - L1caloJet:default:forward + # - L1TrackJet:default:barrel + # - L1TrackJet:default:endcap + binning: + min: 40 + max: 420 + step: 20 JetExtendedRates: sample: MinBias diff --git a/configs/V40nano/caching.yaml b/configs/V40nano/caching.yaml new file mode 100644 index 00000000..af128ce7 --- /dev/null +++ b/configs/V40nano/caching.yaml @@ -0,0 +1,44 @@ +V40nano: + DYLL_M50: + ntuple_path: /eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/alobanov/phase2/menu/ntuples/14X/140MC_content/dy_140_pilot_nano.root + trees_branches: + Events: + GenPart: "all" + # GenVisTau: "all" + # L1scJet: [pt, eta, phi] + # L1scExtJet: [pt, eta, phi, btagScore] + L1gmtTkMuon: "all" + L1gmtMuon: "all" # aka gmtMuon + L1tkElectron: "all" + # L1nnTau: "all" + ## merge below with python3.11 menu_tools/caching/merge_arrays.py + # L1EGbarrel: "all" + L1EGendcap: "all" + TT: + ntuple_path: /eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/alobanov/phase2/menu/ntuples/14X/140MC_content/tt_140_pilot_nano.root + trees_branches: + Events: + # gen + GenJet: [pt, eta, phi, partonFlavour] + GenJetAK8: [pt, eta, phi] + GenMET: "all" + # sums + L1puppiMET: [pt, phi] + # L1puppiMLMET: "all" + L1puppiJetSC4sums: [pt, phi] + L1puppiHistoJetSums: [pt, phi] + # jets + L1puppiJetSC4: [pt, eta, phi] + # L1puppiJetSC8: [pt, eta, phi] + L1puppiExtJetSC4: [pt, eta, phi, btagScore] + L1puppiJetHisto: [pt, eta, phi] + L1caloJet: [pt, eta, phi] + VBFHToTauTau: + ntuple_path: /eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/alobanov/phase2/menu/ntuples/14X/140MC_content/tt_140_pilot_nano.root + trees_branches: + Events: + GenVisTau: "all" + L1nnPuppiTau: "all" + # L1hpsTau: "all" + # L1caloTau: "all" + # L1nnCaloTau: "all" \ No newline at end of file diff --git a/configs/V40nano/object_performance/bJetEff.yaml b/configs/V40nano/object_performance/bJetEff.yaml new file mode 100644 index 00000000..791b23da --- /dev/null +++ b/configs/V40nano/object_performance/bJetEff.yaml @@ -0,0 +1,30 @@ +BJetEff_pt: + files: + JetMatching_pt_pt30ToInf_genBJets_-999_V40nano: + object: L1puppiExtJetSC4:bjetnn:inclusive + dir: outputs/object_performance/V40nano/turnons/ + label: "Signal: Matched b-jets" + JetMatching_pt_pt30ToInf_genNotBJets_-999_V40nano: + object: L1puppiExtJetSC4:bjetnn:inclusive + dir: outputs/object_performance/V40nano/turnons/ + label: "Background: Unmatched b-jets" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency" + watermark: "BJet_pt" + save_dir: "outputs/object_performance/V40nano/turnons/" + + +BJetEff_Eta: + files: + JetMatching_Eta_pt30ToInf_genBJets_-999_V40nano: + object: L1puppiExtJetSC4:bjetnn:inclusive + dir: outputs/object_performance/V40nano/turnons/ + label: "Signal: Matched b-jets" + JetMatching_Eta_pt30ToInf_genNotBJets_-999_V40nano: + object: L1puppiExtJetSC4:bjetnn:inclusive + dir: outputs/object_performance/V40nano/turnons/ + label: "Background: Unmatched b-jets" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency" + watermark: "BJet_Eta" + save_dir: "outputs/object_performance/V40nano/turnons/" diff --git a/configs/V40nano/object_performance/electron_iso.yaml b/configs/V40nano/object_performance/electron_iso.yaml new file mode 100644 index 00000000..b688bef2 --- /dev/null +++ b/configs/V40nano/object_performance/electron_iso.yaml @@ -0,0 +1,50 @@ +ElectronsIsolation_Barrel: + sample: DYLL_M50 + version: V40nano + match_test_to_ref: True + iso_vs_efficiency: True + reference_object: + object: "prunedGenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "abs({eta}) < 1.479" + object: + - "abs({eta}) < 1.479" + test_objects: + L1tkElectron:NoIso: "relIso" + xlabel: "Isolation" + ylabel: "Efficiency (Barrel)" + binning: + min: 0 + max: 0.5 + step: 0.005 + +ElectronsIsolation_Endcap: + sample: DYLL_M50 + version: V40nano + match_test_to_ref: True + iso_vs_efficiency: True + reference_object: + object: "prunedGenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "abs({eta}) > 1.479" + object: + - "abs({eta}) < 2.4" + test_objects: + L1tkElectron:NoIsoForIso: "relIso" + xlabel: "Isolation" + ylabel: "Efficiency (Endcap)" + binning: + min: 0 + max: 0.5 + step: 0.005 + diff --git a/configs/V40nano/object_performance/electron_matching.yaml b/configs/V40nano/object_performance/electron_matching.yaml new file mode 100644 index 00000000..50a265c9 --- /dev/null +++ b/configs/V40nano/object_performance/electron_matching.yaml @@ -0,0 +1,52 @@ +ElectronsMatchingBarrel: + sample: DYLL_M50 + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" # 0 - isPrompt, >>7 isHardProcess + - "abs({pdgId}) == 11" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1EG:default: "pt" + L1tkElectron:NoIso: "pt" + L1tkElectron:Iso: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Barrel)" + binning: + min: 0 + max: 100 + step: 3 + +ElectronsMatchingEndcap: + sample: DYLL_M50 + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + # - "status == 1" + - "abs({pdgId}) == 11" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1EG:default: "pt" + L1tkElectron:NoIso: "pt" + L1tkElectron:Iso: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Endcap)" + binning: + min: 0 + max: 100 + step: 3 diff --git a/configs/V40nano/object_performance/electron_matching_eta.yaml b/configs/V40nano/object_performance/electron_matching_eta.yaml new file mode 100644 index 00000000..3ecd889b --- /dev/null +++ b/configs/V40nano/object_performance/electron_matching_eta.yaml @@ -0,0 +1,52 @@ +ElectronsMatching_Eta_Pt10to25: + sample: DYLL_M50 + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "{pt} < 25" + - "{pt} > 10" + object: + - "abs({eta}) < 3.0" + test_objects: + L1EG:default: "eta" + L1tkElectron:NoIso: "eta" + L1tkElectron:Iso: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency ($10 < p_T < 25$ GeV)" + binning: + min: -3 + max: 3 + step: 0.2 + +ElectronsMatching_Eta_Pt25toInf: + sample: DYLL_M50 + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "{pt} > 25" + object: + - "abs({eta}) < 3.0" + test_objects: + L1EG:default: "eta" + L1tkElectron:NoIso: "eta" + L1tkElectron:Iso: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency ($p_T > 25$ GeV)" + binning: + min: -3 + max: 3 + step: 0.2 diff --git a/configs/V40nano/object_performance/electron_trigger.yaml b/configs/V40nano/object_performance/electron_trigger.yaml new file mode 100644 index 00000000..ad6c708c --- /dev/null +++ b/configs/V40nano/object_performance/electron_trigger.yaml @@ -0,0 +1,59 @@ +ElectronsTriggerBarrel: + sample: DYLL_M50 + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.8" + test_objects: + L1EG:default:barrel: "pt" + L1tkElectron:NoIso:barrel: "pt" + L1tkElectron:Iso:barrel: "pt" + thresholds: [10, 20, 30, 40] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (barrel, L1 $p_T > $ GeV)" + binning: + min: 0 + max: 100 + step: 1.5 + +ElectronsTriggerEndcap: + sample: DYLL_M50 + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.8" + test_objects: + L1EG:default:endcap: "pt" + L1tkElectron:NoIso:endcap: "pt" + L1tkElectron:Iso:endcap: "pt" + thresholds: [10, 20, 30, 40] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (endcap, L1 $p_T > $ GeV)" + binning: + min: 0 + max: 100 + step: 1.5 diff --git a/configs/V40nano/object_performance/jets_matching.yaml b/configs/V40nano/object_performance/jets_matching.yaml new file mode 100644 index 00000000..380fde98 --- /dev/null +++ b/configs/V40nano/object_performance/jets_matching.yaml @@ -0,0 +1,117 @@ +JetMatchingBarrel: + sample: TT + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetHisto:default: "pt" + L1puppiJetSC4:default: "pt" + L1caloJet:default: "pt" + # trackerJet:default: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (barrel)" + binning: + min: 0 + max: 500 + step: 10 + +JetMatchingEndcap: + sample: TT + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetHisto:default: "pt" + L1puppiJetSC4:default: "pt" + L1caloJet:default: "pt" + # trackerJet:default: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (endcap)" + binning: + min: 0 + max: 500 + step: 10 + +JetMatchingForward: + version: V40nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 2.4" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetHisto:default: "pt" + L1puppiJetSC4:default: "pt" + L1caloJet:default: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (forward)" + binning: + min: 0 + max: 500 + step: 10 + +JetMatchingBarrelSC8: + sample: TT + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "pt" + label: "Gen AK8 Jets" + cuts: + event: + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetSC8:default:barrel: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (barrel)" + binning: + min: 0 + max: 500 + step: 10 + +JetMatchingEndcapSC8: + sample: TT + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "pt" + label: "Gen AK8 Jets" + cuts: + event: + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetSC8:default:endcap: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (endcap)" + binning: + min: 0 + max: 500 + step: 10 \ No newline at end of file diff --git a/configs/V40nano/object_performance/jets_matching_eta.yaml b/configs/V40nano/object_performance/jets_matching_eta.yaml new file mode 100644 index 00000000..b81e08fc --- /dev/null +++ b/configs/V40nano/object_performance/jets_matching_eta.yaml @@ -0,0 +1,94 @@ +JetMatching_Eta_Pt40To100: + sample: TT + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 40" + - "{pt} < 100" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetHisto:default: "eta" + L1puppiJetSC4:default: "eta" + L1caloJet:default: "eta" + # trackerJet:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (40-100 GeV)" + binning: + min: -5 + max: 5 + step: 0.25 + +JetMatching_Eta_Pt100ToInf: + sample: TT + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 100" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetHisto:default: "eta" + L1puppiJetSC4:default: "eta" + L1caloJet:default: "eta" + # trackerJet:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>100 GeV)" + binning: + min: -5 + max: 5 + step: 0.25 + +JetMatching_Eta_Pt100ToInf_extEta: + sample: TT + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 100" + object: + - "abs({eta}) < 7" + test_objects: + L1caloJet:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>100 GeV)" + binning: + min: -5.5 + max: 5.5 + step: 0.25 + +JetMatching_Eta_SC8_Pt100ToInf: + sample: TT + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 100" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetSC8:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>100 GeV)" + binning: + min: -5 + max: 5 + step: 0.25 \ No newline at end of file diff --git a/configs/V40nano/object_performance/jets_matching_wBTag.yaml b/configs/V40nano/object_performance/jets_matching_wBTag.yaml new file mode 100644 index 00000000..33c0ded9 --- /dev/null +++ b/configs/V40nano/object_performance/jets_matching_wBTag.yaml @@ -0,0 +1,140 @@ +JetMatching_Eta_Pt40To100_ExtendedVsRegular: + sample: TT + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 40" + - "{pt} < 100" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetSC4:default: "eta" + L1puppiExtJetSC4:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (40-100 GeV)" + binning: + min: -5 + max: 5 + step: 0.25 + +JetMatching_Eta_Pt100ToInf_ExtendedVsRegular: + sample: TT + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 100" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetSC4:default: "eta" + L1puppiExtJetSC4:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>100 GeV)" + binning: + min: -5 + max: 5 + step: 0.25 + +JetMatching_Eta_Pt30ToInf_genBJets: + sample: TT + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 30" + - "abs({partonFlavour}) == 5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiExtJetSC4:bjetnn: "eta" + L1puppiJetSC4:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>30 GeV)" + binning: + min: -2.4 + max: 2.4 + step: 0.25 + +JetMatching_Eta_Pt30ToInf_genNotBJets: + sample: TT + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 30" + - "abs({partonFlavour}) != 5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiExtJetSC4:bjetnn: "eta" + L1puppiJetSC4:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>30 GeV)" + binning: + min: -2.4 + max: 2.4 + step: 0.25 + +JetMatching_Pt_Pt30ToInf_genBJets: + sample: TT + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({partonFlavour}) == 5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiExtJetSC4:bjetnn: "pt" + L1puppiJetSC4:default: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency" + binning: + min: 30 + max: 200 + step: 10 + +JetMatching_Pt_Pt30ToInf_genNotBJets: + sample: TT + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({partonFlavour}) != 5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiExtJetSC4:bjetnn: "pt" + L1puppiJetSC4:default: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency" + binning: + min: 30 + max: 200 + step: 10 diff --git a/configs/V40nano/object_performance/jets_trigger.yaml b/configs/V40nano/object_performance/jets_trigger.yaml new file mode 100644 index 00000000..578836bd --- /dev/null +++ b/configs/V40nano/object_performance/jets_trigger.yaml @@ -0,0 +1,163 @@ +JetTurnonBarrel: + version: V40nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetHisto:default:barrel: "pt" + L1puppiJetSC4:default:barrel: "pt" + L1caloJet:default: "pt" + # trackerJet:default:barrel: "pt" + thresholds: [50, 100] + # scalings: + # method: "naive" + # threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, barrel)" + binning: + min: 0 + max: 500 + step: 10 + +JetTurnonEndcap: + version: V40nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetHisto:default:endcap: "pt" + L1puppiJetSC4:default:endcap: "pt" + L1caloJet:default: "pt" + # trackerJet:default:endcap: "pt" + thresholds: [50, 100] + # scalings: + # method: "naive" + # threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, endcap)" + binning: + min: 0 + max: 500 + step: 10 + +JetTurnonForward: + version: V40nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 2.4" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetHisto:default:forward: "pt" + L1puppiJetSC4:default:forward: "pt" + L1caloJet:default: "pt" + thresholds: [50, 100] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, forward)" + binning: + min: 0 + max: 500 + step: 10 + +JetTurnonBarrelSC8: + version: V40nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetSC8:default:barrel: "pt" + thresholds: [150] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, barrel)" + binning: + min: 0 + max: 500 + step: 10 + +JetTurnonEndcapSC8: + version: V40nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetSC8:default:endcap: "pt" + thresholds: [150] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, endcap)" + binning: + min: 0 + max: 500 + step: 10 + +JetTurnonForwardSC8: + version: V40nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 2.4" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetSC8:default:forward: "pt" + thresholds: [150] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, forward)" + binning: + min: 0 + max: 500 + step: 10 diff --git a/configs/V40nano/object_performance/met_ht_mht.yaml b/configs/V40nano/object_performance/met_ht_mht.yaml new file mode 100644 index 00000000..aa620ef1 --- /dev/null +++ b/configs/V40nano/object_performance/met_ht_mht.yaml @@ -0,0 +1,73 @@ +HT_90perc: + sample: TT + version: V40nano + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen HT" + trafo: "HT" + cuts: + object: + - "abs({eta}) < 2.4" + - "{pt} > 30" + test_objects: + # trackerHT:default: "" + # phase1PuppiHT:default: "" + # seededConePuppiHT:default: "" + L1puppiJetSC4sums:HT: "pt" + thresholds: [350] + scalings: + method: "naive" + threshold: 0.90 + xlabel: "Gen. HT (GeV)" + ylabel: "Trigger Efficiency ( GeV)" + binning: + min: 0 + max: 750 + step: 20 + +MHT_50perc: + sample: TT + version: V40nano + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen MHT" + cuts: + object: + - "abs({eta}) < 2.4" + - "{pt} > 30" + trafo: "MHT" + test_objects: + L1puppiJetSC4sums:MHT: "pt" + thresholds: [70, 150] + scalings: + method: "naive" + threshold: 0.50 + xlabel: "Gen. MHT30 (GeV)" + ylabel: "Trigger Efficiency ( GeV)" + binning: + min: 0 + max: 500 + step: 20 + +MET_90perc: + sample: TT + version: V40nano + reference_object: + object: "GenMET" + x_arg: "pt" + label: "Gen MET" + test_objects: + # trackerMET:default: "" + L1puppiMET:default: "pt" + thresholds: [150] + xlabel: "Gen. MET (GeV)" + ylabel: "Trigger Efficiency ( GeV)" + scalings: + method: "naive" + threshold: 0.90 + binning: + min: 0 + max: 500 + step: 20 diff --git a/configs/V40nano/object_performance/mht.yaml b/configs/V40nano/object_performance/mht.yaml new file mode 100644 index 00000000..af7767ec --- /dev/null +++ b/configs/V40nano/object_performance/mht.yaml @@ -0,0 +1,72 @@ +MHT_debug_METrefGenMHT: + sample: TT + version: V40nano + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen MHT" + cuts: + object: + - "abs({eta}) < 2.4" + - "{pt} > 30" + trafo: "MHT" + test_objects: + L1puppiMET:default: "pt" + #thresholds: [-1, 0, 70, 150, 500] + thresholds: [150] + # scalings: + # method: "naive" + # threshold: 0.50 + xlabel: "Gen. MHT30 (GeV)" + ylabel: "Trigger Efficiency ( GeV)" + binning: + min: 0 + max: 500 + step: 20 + +MHT_debug: + sample: TT + version: V40nano + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen MHT" + cuts: + object: + - "abs({eta}) < 2.4" + - "{pt} > 30" + trafo: "MHT" + test_objects: + L1puppiJetSC4sums:MHT: "pt" + #thresholds: [-1, 0, 70, 150, 500] + thresholds: [150] + # scalings: + # method: "naive" + # threshold: 0.50 + xlabel: "Gen. MHT30 (GeV)" + ylabel: "Trigger Efficiency ( GeV)" + binning: + min: 0 + max: 500 + step: 20 + +MHT_debug_refL1MET: + sample: TT + version: V40nano + reference_object: + object: "L1puppiMET" + x_arg: "pt" + label: "Gen MHT" + test_objects: + L1puppiJetSC4sums:MHT: "pt" + # thresholds: [-1, 0, 70, 150, 500] + thresholds: [150] + # scalings: + # method: "naive" + # threshold: 0.50 + xlabel: "Gen. MHT30 (GeV)" + ylabel: "Trigger Efficiency ( GeV)" + binning: + min: 0 + max: 500 + step: 20 \ No newline at end of file diff --git a/configs/V40nano/object_performance/muon_matching.yaml b/configs/V40nano/object_performance/muon_matching.yaml new file mode 100644 index 00000000..cd300a5c --- /dev/null +++ b/configs/V40nano/object_performance/muon_matching.yaml @@ -0,0 +1,73 @@ +MuonsMatchingBarrel: + sample: DYLL_M50 + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) < 0.83" + test_objects: + L1gmtMuon:default:barrel: "pt" + L1gmtTkMuon:default:barrel: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (barrel)" + binning: + min: 0 + max: 100 + step: 3 + +MuonsMatchingOverlap: + sample: DYLL_M50 + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) > 0.83" + - "abs({eta}) < 1.24" + test_objects: + L1gmtMuon:default:overlap: "pt" + L1gmtTkMuon:default:overlap: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (overlap)" + binning: + min: 0 + max: 100 + step: 3 + +MuonsMatchingEndcap: + sample: DYLL_M50 + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) > 1.24" + - "abs({eta}) < 2.4" + test_objects: + L1gmtMuon:default:endcap: "pt" + L1gmtTkMuon:default:endcap: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (endcap)" + binning: + min: 0 + max: 100 + step: 3 diff --git a/configs/V40nano/object_performance/muon_matching_eta.yaml b/configs/V40nano/object_performance/muon_matching_eta.yaml new file mode 100644 index 00000000..9f6d2c52 --- /dev/null +++ b/configs/V40nano/object_performance/muon_matching_eta.yaml @@ -0,0 +1,50 @@ +MuonsMatching_Eta_Pt2to5: + sample: DYLL_M50 + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + - "{pt} > 2" + - "{pt} < 5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1gmtMuon:default: "eta" + L1gmtTkMuon:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (2-5 GeV)" + binning: + min: -3 + max: 3 + step: 0.2 + +MuonsMatching_Eta_Pt15toInf: + sample: DYLL_M50 + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + - "{pt} > 15" + object: + - "abs({eta}) < 2.4" + test_objects: + L1gmtMuon:default: "eta" + L1gmtTkMuon:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>15 GeV)" + binning: + min: -3 + max: 3 + step: 0.2 diff --git a/configs/V40nano/object_performance/muon_trigger.yaml b/configs/V40nano/object_performance/muon_trigger.yaml new file mode 100644 index 00000000..fb30a1c7 --- /dev/null +++ b/configs/V40nano/object_performance/muon_trigger.yaml @@ -0,0 +1,81 @@ +MuonsTrigger_Barrel: + sample: DYLL_M50 + version: V40nano + match_test_to_ref: True + reference_object: + object: "part_mu" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "{dr_0.3} < 0.15" + object: + - "abs({eta}) < 0.83" + test_objects: + gmtMuon:default:barrel: "pt" + gmtTkMuon:default:barrel: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (barrel, L1 $p_T > 20$ GeV)" + thresholds: [20, 25] + scalings: + method: "naive" + threshold: 0.95 + binning: + min: 0 + max: 50 + step: 1.5 + +MuonsTrigger_Overlap: + sample: DYLL_M50 + version: V40nano + match_test_to_ref: True + reference_object: + object: "part_mu" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "{dr_0.3} < 0.15" + object: + - "abs({eta}) > 0.83" + - "abs({eta}) < 1.24" + test_objects: + gmtMuon:default:overlap: "pt" + gmtTkMuon:default:overlap: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (overlap, L1 $p_T > 20$ GeV)" + thresholds: [20, 25] + scalings: + method: "naive" + threshold: 0.95 + binning: + min: 0 + max: 50 + step: 1.5 + +MuonsTrigger_Endcap: + sample: DYLL_M50 + version: V40nano + match_test_to_ref: True + reference_object: + object: "part_mu" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "{dr_0.3} < 0.15" + object: + - "abs({eta}) > 1.24" + test_objects: + gmtMuon:default:endcap: "pt" + gmtTkMuon:default:endcap: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (endcap, L1 $p_T > 20$ GeV)" + thresholds: [20, 25] + scalings: + method: "naive" + threshold: 0.95 + binning: + min: 0 + max: 50 + step: 1.5 diff --git a/configs/V40nano/object_performance/photon_iso.yaml b/configs/V40nano/object_performance/photon_iso.yaml new file mode 100644 index 00000000..7b3a68cc --- /dev/null +++ b/configs/V40nano/object_performance/photon_iso.yaml @@ -0,0 +1,49 @@ +PhotonIsolation_Barrel: + sample: Hgg + version: V40nano + iso_vs_efficiency: True + match_test_to_ref: True + reference_object: + object: "part_gamma" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "{dr_0.3} < 0.15" + - "abs({eta}) < 1.479" + object: + - "abs({eta}) < 1.479" + test_objects: + L1tkPhoton:NoIso:barrel: "relIso" + xlabel: "Isolation" + ylabel: "Efficiency (Barrel)" + binning: + min: 0 + max: 0.5 + step: 0.005 + +PhotonIsolation_Endcap: + sample: Hgg + version: V40nano + iso_vs_efficiency: True + match_test_to_ref: True + reference_object: + object: "part_gamma" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "{dr_0.3} < 0.15" + - "abs({eta}) > 1.479" + - "abs({eta}) < 2.4" + object: + - "abs({eta}) > 1.479" + test_objects: + L1tkPhoton:NoIso:endcap: "relIso" + xlabel: "Isolation" + ylabel: "Efficiency (Endcap)" + binning: + min: 0 + max: 0.5 + step: 0.005 + diff --git a/configs/V40nano/object_performance/photons_matching.yaml b/configs/V40nano/object_performance/photons_matching.yaml new file mode 100644 index 00000000..84bee344 --- /dev/null +++ b/configs/V40nano/object_performance/photons_matching.yaml @@ -0,0 +1,49 @@ +PhotonsMatching_Barrel: + sample: Hgg + version: V40nano + match_test_to_ref: True + reference_object: + object: "part_gamma" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "{dr_0.3} < 0.15" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + EG:default: "pt" + L1tkPhoton:NoIso: "pt" + L1tkPhoton:Iso: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Barrel)" + binning: + min: 0 + max: 100 + step: 3 + +PhotonsMatching_Endcap: + sample: Hgg + version: V40nano + match_test_to_ref: True + reference_object: + object: "part_gamma" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "{dr_0.3} < 0.15" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + EG:default: "pt" + L1tkPhoton:NoIso: "pt" + L1tkPhoton:Iso: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Endcap)" + binning: + min: 0 + max: 100 + step: 3 diff --git a/configs/V40nano/object_performance/photons_matching_eta.yaml b/configs/V40nano/object_performance/photons_matching_eta.yaml new file mode 100644 index 00000000..2689ca74 --- /dev/null +++ b/configs/V40nano/object_performance/photons_matching_eta.yaml @@ -0,0 +1,50 @@ +PhotonsMatching_Eta_pt10to25: + sample: Hgg + version: V40nano + match_test_to_ref: True + reference_object: + object: "part_gamma" + x_arg: "Eta" + label: "Gen Photons" + cuts: + event: + - "{dr_0.3} < 0.15" + - "{pt} < 25" + - "{pt} > 10" + object: + - "abs({eta}) < 3.0" + test_objects: + EG:default: "Eta" + L1tkPhoton:NoIso: "Eta" + L1tkPhoton:Iso: "Eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency ($10 < p_T < 25$ GeV)" + binning: + min: -3 + max: 3 + step: 0.2 + +PhotonsMatching_Eta_pt25toInf: + sample: Hgg + version: V40nano + match_test_to_ref: True + reference_object: + object: "part_gamma" + x_arg: "Eta" + label: "Gen Photons" + cuts: + event: + - "{dr_0.3} < 0.15" + - "{pt} >= 25" + object: + - "abs({eta}) < 3.0" + test_objects: + EG:default: "Eta" + L1tkPhoton:NoIso: "Eta" + L1tkPhoton:Iso: "Eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency ($10 < p_T < 25$ GeV)" + binning: + min: -3 + max: 3 + step: 0.2 diff --git a/configs/V40nano/object_performance/photons_trigger.yaml b/configs/V40nano/object_performance/photons_trigger.yaml new file mode 100644 index 00000000..bd9255de --- /dev/null +++ b/configs/V40nano/object_performance/photons_trigger.yaml @@ -0,0 +1,57 @@ +PhotonsTrigger_Barrel: + sample: Hgg + version: V40nano + match_test_to_ref: True + reference_object: + object: "part_gamma" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "{dr_0.3} < 0.15" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + EG:default:barrel: "pt" + L1tkPhoton:NoIso:barrel: "pt" + L1tkPhoton:Iso:barrel: "pt" + thresholds: [10, 20, 30, 40] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (barrel, L1 $p_T > $ GeV)" + binning: + min: 0 + max: 100 + step: 1.5 + +PhotonsTrigger_Endcap: + sample: Hgg + version: V40nano + match_test_to_ref: True + reference_object: + object: "part_gamma" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "{dr_0.3} < 0.15" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + EG:default:endcap: "pt" + L1tkPhoton:NoIso:endcap: "pt" + L1tkPhoton:Iso:endcap: "pt" + thresholds: [10, 20, 30, 40] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (endcap, L1 $p_T > $ GeV)" + binning: + min: 0 + max: 100 + step: 1.5 diff --git a/configs/V40nano/object_performance/tau_matching.yaml b/configs/V40nano/object_performance/tau_matching.yaml new file mode 100644 index 00000000..83bb6307 --- /dev/null +++ b/configs/V40nano/object_performance/tau_matching.yaml @@ -0,0 +1,53 @@ +TausMatchingBarrel: + sample: VBFHToTauTau + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "pt" + label: "Gen Taus" + cuts: + event: + # - "{dr_0.3} < 0.15" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnPuppiTau:default: "pt" + # L1hpsTau:default: "pt" + # L1caloTau:default: "pt" + # L1nnCaloTau:default: "pt" + # L1caloTau:PtGe20: "Pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Barrel)" + binning: + min: 0 + max: 150 + step: 6 + +TausMatchingEndcap: + sample: VBFHToTauTau + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "pt" + label: "Gen Taus" + cuts: + event: + # - "{dr_0.3} < 0.15" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnPuppiTau:default: "pt" + # L1hpsTau:default: "pt" + # L1caloTau:default: "pt" + # L1nnCaloTau:default: "pt" + # L1caloTau:PtGe20: "Pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Endcap)" + binning: + min: 0 + max: 150 + step: 6 diff --git a/configs/V40nano/object_performance/tau_matching_eta.yaml b/configs/V40nano/object_performance/tau_matching_eta.yaml new file mode 100644 index 00000000..1399dd35 --- /dev/null +++ b/configs/V40nano/object_performance/tau_matching_eta.yaml @@ -0,0 +1,46 @@ +TauMatching_Eta_Pt40To100: + sample: VBFHToTauTau + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "eta" + label: "Gen Taus" + cuts: + event: + - "{pt} > 40" + - "{pt} < 100" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnPuppiTau:default: "eta" + # L1caloTau:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (40-100 GeV)" + binning: + min: -3.0 + max: 3.0 + step: 0.2 + +TauMatching_Eta_Pt100ToInf: + sample: VBFHToTauTau + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "eta" + label: "Gen Taus" + cuts: + event: + - "{pt} > 100" + object: + - "abs({eta}) < 5" + test_objects: + L1nnPuppiTau:default: "eta" + # L1caloTau:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>100 GeV)" + binning: + min: -3 + max: 3 + step: 0.2 diff --git a/configs/V40nano/object_performance/tau_matching_wHH.yaml b/configs/V40nano/object_performance/tau_matching_wHH.yaml new file mode 100644 index 00000000..2311c8ef --- /dev/null +++ b/configs/V40nano/object_performance/tau_matching_wHH.yaml @@ -0,0 +1,47 @@ +# HHTausMatchingBarrel: +# sample: HHToTauTau +# version: V40nano +# match_test_to_ref: True +# reference_object: +# object: "part_tau" +# x_arg: "pt" +# label: "Gen Taus" +# cuts: +# event: +# - "{dr_0.3} < 0.15" +# - "abs({eta}) < 1.5" +# object: +# - "abs({eta}) < 2.4" +# test_objects: +# nnTau:default: "pt" +# caloTau:default: "pt" +# xlabel: "Gen. $p_T$ (GeV)" +# ylabel: "Matching Efficiency (Barrel)" +# binning: +# min: 0 +# max: 150 +# step: 6 + +# HHTausMatchingEndcap: +# sample: HHToTauTau +# version: V40nano +# match_test_to_ref: True +# reference_object: +# object: "part_tau" +# x_arg: "pt" +# label: "Gen Taus" +# cuts: +# event: +# - "{dr_0.3} < 0.15" +# - "abs({eta}) > 1.5" +# object: +# - "abs({eta}) < 2.4" +# test_objects: +# nnTau:default: "pt" +# caloTau:default: "pt" +# xlabel: "Gen. $p_T$ (GeV)" +# ylabel: "Matching Efficiency (Endcap)" +# binning: +# min: 0 +# max: 150 +# step: 6 diff --git a/configs/V40nano/object_performance/tau_trigger.yaml b/configs/V40nano/object_performance/tau_trigger.yaml new file mode 100644 index 00000000..6cea35a2 --- /dev/null +++ b/configs/V40nano/object_performance/tau_trigger.yaml @@ -0,0 +1,119 @@ +TauTriggerBarrel_90perc: + sample: VBFHToTauTau + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "pt" + label: "Gen Taus" + cuts: + event: + # - "{dr_0.3} < 0.15" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnTau:default: "pt" + L1hpsTau:default: "pt" + L1caloTau:default: "pt" + L1nnCaloTau:default: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (barrel, L1 $p_T > $ GeV)" + thresholds: [20, 30] + scalings: + method: "naive" + threshold: 0.90 + binning: + min: 0 + max: 150 + step: 6 + +TauTriggerEndcap_90perc: + sample: VBFHToTauTau + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "pt" + label: "Gen Taus" + cuts: + event: + # - "{dr_0.3} < 0.15" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnTau:default: "pt" + L1hpsTau:default: "pt" + L1caloTau:default: "pt" + L1nnCaloTau:default: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (endcap, L1 $p_T > $ GeV)" + thresholds: [20, 30] + scalings: + method: "naive" + threshold: 0.90 + binning: + min: 0 + max: 150 + step: 6 + +TauTriggerBarrel_50perc: + sample: VBFHToTauTau + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "pt" + label: "Gen Taus" + cuts: + event: + # - "{dr_0.3} < 0.15" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnTau:default: "pt" + L1hpsTau:default: "pt" + L1caloTau:default: "pt" + L1nnCaloTau:default: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (barrel, L1 $p_T > $ GeV)" + thresholds: [20, 30] + scalings: + method: "naive" + threshold: 0.50 + binning: + min: 0 + max: 150 + step: 6 + +TauTriggerEndcap_50perc: + sample: VBFHToTauTau + version: V40nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "pt" + label: "Gen Taus" + cuts: + event: + # - "{dr_0.3} < 0.15" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnTau:default: "pt" + L1hpsTau:default: "pt" + L1caloTau:default: "pt" + L1nnCaloTau:default: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (endcap, L1 $p_T > $ GeV)" + thresholds: [20, 30] + scalings: + method: "naive" + threshold: 0.50 + binning: + min: 0 + max: 150 + step: 6 diff --git a/configs/V40nano/objects/electrons.yaml b/configs/V40nano/objects/electrons.yaml new file mode 100644 index 00000000..cfacf196 --- /dev/null +++ b/configs/V40nano/objects/electrons.yaml @@ -0,0 +1,49 @@ +L1tkElectron: + match_dR: 0.15 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.479] + endcap: [1.479, 5] + ids: + NoIso: + label: "TkElectron" + cuts: + inclusive: + - "abs({eta}) < 2.4" + endcap: + - "({eleId} == 1) | ({pt} < 25)" + barrel: + - "{eleId} == 1" + NoIsoForIso: + # This id is exclusively used for the + # isoloation wp derivation + label: "TkElectron, no ID" + cuts: + inclusive: + - "abs({eta}) < 2.4" + Iso: + label: "TkIsoElectron" + cuts: + inclusive: + - "abs({eta}) < 2.4" + barrel: + - "abs({relIso}) < 0.13" + endcap: + - "abs({relIso}) < 0.28" + +L1EG: + match_dR: 0.2 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.479] + endcap: [1.479, 3.0] + label: "EG" + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 3.0" + barrel: + - "{eleId} == 1" + endcap: + - "{saId} == 1" diff --git a/configs/V40nano/objects/jets.yaml b/configs/V40nano/objects/jets.yaml new file mode 100644 index 00000000..b16315f7 --- /dev/null +++ b/configs/V40nano/objects/jets.yaml @@ -0,0 +1,71 @@ +L1caloJet: + match_dR: 0.35 + label: "Calo Jet" + eta_ranges: + inclusive: [0, 7] + cuts: + inclusive: + - "abs({eta}) < 7" + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 7" + +L1puppiExtJetSC4: + match_dR: 0.35 + label: "Seeded Cone Extended PuppiJet" + eta_ranges: + inclusive: [0, 7] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 5" + bjetnn: + cuts: + inclusive: + - "abs({eta}) < 2.4" + - "{btagScore} > 0.71" + +L1puppiJetHisto: + match_dR: 0.35 + label: "Histogrammed PuppiJet" + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + forward: [2.4, 5] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 7" + +L1puppiJetSC4: + match_dR: 0.35 + label: "Seeded Cone PuppiJet" + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + forward: [2.4, 5] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 7" + +L1puppiJetSC8: + match_dR: 0.35 + label: "Seeded Cone PuppiJet 8" + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + forward: [2.4, 5] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 7" \ No newline at end of file diff --git a/configs/V40nano/objects/met_ht_mht.yaml b/configs/V40nano/objects/met_ht_mht.yaml new file mode 100644 index 00000000..24c8e6d3 --- /dev/null +++ b/configs/V40nano/objects/met_ht_mht.yaml @@ -0,0 +1,35 @@ +L1puppiMET: + label: "Puppi MET" + ids: + default: {} + +L1puppiMLMET: + label: "Puppi MLMET" + ids: + default: {} + +L1puppiJetSC4sums: + ids: + HT: + label: "SeededCone HT" + cuts: + inclusive: + - "{sumType} == 0" + MHT: + label: "SeededCone MHT" + cuts: + inclusive: + - "{sumType} == 1" + +L1puppiHistoJetSums: + ids: + HT: + label: "Histogrammed Puppi HT" + cuts: + inclusive: + - "{sumType} == 0" + MHT: + label: "Histogrammed Puppi MHT" + cuts: + inclusive: + - "{sumType} == 1" diff --git a/configs/V40nano/objects/muons.yaml b/configs/V40nano/objects/muons.yaml new file mode 100644 index 00000000..08bd371a --- /dev/null +++ b/configs/V40nano/objects/muons.yaml @@ -0,0 +1,35 @@ +GenPart: + label: "Gen Muon" + eta_ranges: + inclusive: [0, 7] + ids: + gen_electron_default: + cuts: + inclusive: + - "(({statusFlags}>>7)&1) == 1" + + +L1gmtMuon: + label: "GMT Muon" + match_dR: 0.3 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 0.83] + overlap: [0.83, 1.24] + endcap: [1.24, 2.4] + ids: + default: {} + +L1gmtTkMuon: + label: "GMT TkMuon" + match_dR: 0.1 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 0.83] + overlap: [0.83, 1.24] + endcap: [1.24, 2.4] + ids: + default: + cuts: + inclusive: + - "({hwQual} > 0) | ({pt} > 8)" # quality criterion only to be appied for p_T < 8 GeV diff --git a/configs/V40nano/objects/photons.yaml b/configs/V40nano/objects/photons.yaml new file mode 100644 index 00000000..12d51f0c --- /dev/null +++ b/configs/V40nano/objects/photons.yaml @@ -0,0 +1,29 @@ +L1tkPhoton: + match_dR: 0.15 + eta_ranges: + inclusive: [0, 5] + barrel: [0, 1.479] + endcap: [1.479, 2.4] + ids: + NoIso: + label: "L1tkPhoton" + cuts: + inclusive: + - "abs({eta}) < 2.4" + - "{pt} > 5" + barrel: + - "{eleId} == 1" + endcap: + - "{phoId} == 1" + Iso: + label: "L1tkIsoPhoton" + cuts: + inclusive: + - "abs({eta}) < 2.4" + - "{pt} > 5" + barrel: + - "abs({relIso}) < 0.25" + - "{eleId} == 1" + endcap: + - "abs({relIso}) < 0.205" + - "{phoId} == 1" diff --git a/configs/V40nano/objects/taus.yaml b/configs/V40nano/objects/taus.yaml new file mode 100644 index 00000000..dd7df359 --- /dev/null +++ b/configs/V40nano/objects/taus.yaml @@ -0,0 +1,34 @@ +L1nnPuppiTau: + label: "NN Tau" + match_dR: 0.1 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 2.4" + # - "{passLooseNN}==1" + # Current IB (22 Feb recipe) does not have updated WP, so cut on NN score rather than checking passLooseNN + - "{chargedIso} > 0.22" + +L1caloTau: + label: "Calo Tau" + match_dR: 0.3 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 2.4" + PtGe20: + label: "Calo Tau, pt > 20" + cuts: + inclusive: + - "abs({eta}) < 2.4" + - "{pt} > 20" diff --git a/configs/V40nano/rate_plots/all_rate_plots.yaml b/configs/V40nano/rate_plots/all_rate_plots.yaml new file mode 100644 index 00000000..7f64c894 --- /dev/null +++ b/configs/V40nano/rate_plots/all_rate_plots.yaml @@ -0,0 +1,46 @@ +TauRates: + sample: MinBias + version: V32nano + test_objects: + - L1nnTau:default + - L1hpsTau:default + - L1caloTau:default + - L1nnCaloTau:default + binning: + min: 10 + max: 155 + step: 5 + +JetDefaultRates: + sample: MinBias + version: V32nano + test_objects: + - L1puppiJetHisto:default + - L1puppiJetSC4:default + - L1caloJet:default + binning: + min: 40 + max: 420 + step: 20 + +JetSC8Rates: + sample: MinBias + version: V32nano + test_objects: + # - L1puppiJetSC4:default + - L1puppiJetSC8:default + binning: + min: 40 + max: 420 + step: 20 + +METRates: + sample: MinBias + version: V32nano + test_objects: + - L1puppiMET:default + - L1puppiMLMET:default + binning: + min: 50 + max: 300 + step: 10 diff --git a/configs/V41nano/caching.yaml b/configs/V41nano/caching.yaml new file mode 100644 index 00000000..1c4bf929 --- /dev/null +++ b/configs/V41nano/caching.yaml @@ -0,0 +1,44 @@ +V41nano: + DYLL_M50: + ntuple_path: /eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/alobanov/phase2/menu/ntuples/14X/140MC_content/dy_140_pilot_PU200_nano.root + trees_branches: + Events: + GenPart: "all" + # GenVisTau: "all" + # L1scJet: [pt, eta, phi] + # L1scExtJet: [pt, eta, phi, btagScore] + L1gmtTkMuon: "all" + L1gmtMuon: "all" # aka gmtMuon + L1tkElectron: "all" + # L1nnTau: "all" + ## merge below with python3.11 menu_tools/caching/merge_arrays.py + # L1EGbarrel: "all" + L1EGendcap: "all" + # TT: + # ntuple_path: /eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/alobanov/phase2/menu/ntuples/14X/140MC_content/tt_140_pilot_nano.root + # trees_branches: + # Events: + # # gen + # GenJet: [pt, eta, phi, partonFlavour] + # GenJetAK8: [pt, eta, phi] + # GenMET: "all" + # # sums + # L1puppiMET: [pt, phi] + # # L1puppiMLMET: "all" + # L1puppiJetSC4sums: [pt, phi] + # L1puppiHistoJetSums: [pt, phi] + # # jets + # L1puppiJetSC4: [pt, eta, phi] + # # L1puppiJetSC8: [pt, eta, phi] + # L1puppiExtJetSC4: [pt, eta, phi, btagScore] + # L1puppiJetHisto: [pt, eta, phi] + # L1caloJet: [pt, eta, phi] + # VBFHToTauTau: + # ntuple_path: /eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/alobanov/phase2/menu/ntuples/14X/140MC_content/tt_140_pilot_nano.root + # trees_branches: + # Events: + # GenVisTau: "all" + # L1nnPuppiTau: "all" + # # L1hpsTau: "all" + # # L1caloTau: "all" + # # L1nnCaloTau: "all" \ No newline at end of file diff --git a/configs/V41nano/object_performance/bJetEff.yaml b/configs/V41nano/object_performance/bJetEff.yaml new file mode 100644 index 00000000..f3b312a5 --- /dev/null +++ b/configs/V41nano/object_performance/bJetEff.yaml @@ -0,0 +1,30 @@ +BJetEff_pt: + files: + JetMatching_pt_pt30ToInf_genBJets_-999_V41nano: + object: L1puppiExtJetSC4:bjetnn:inclusive + dir: outputs/object_performance/V41nano/turnons/ + label: "Signal: Matched b-jets" + JetMatching_pt_pt30ToInf_genNotBJets_-999_V41nano: + object: L1puppiExtJetSC4:bjetnn:inclusive + dir: outputs/object_performance/V41nano/turnons/ + label: "Background: Unmatched b-jets" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency" + watermark: "BJet_pt" + save_dir: "outputs/object_performance/V41nano/turnons/" + + +BJetEff_Eta: + files: + JetMatching_Eta_pt30ToInf_genBJets_-999_V41nano: + object: L1puppiExtJetSC4:bjetnn:inclusive + dir: outputs/object_performance/V41nano/turnons/ + label: "Signal: Matched b-jets" + JetMatching_Eta_pt30ToInf_genNotBJets_-999_V41nano: + object: L1puppiExtJetSC4:bjetnn:inclusive + dir: outputs/object_performance/V41nano/turnons/ + label: "Background: Unmatched b-jets" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency" + watermark: "BJet_Eta" + save_dir: "outputs/object_performance/V41nano/turnons/" diff --git a/configs/V41nano/object_performance/electron_iso.yaml b/configs/V41nano/object_performance/electron_iso.yaml new file mode 100644 index 00000000..af2be4d4 --- /dev/null +++ b/configs/V41nano/object_performance/electron_iso.yaml @@ -0,0 +1,50 @@ +ElectronsIsolation_Barrel: + sample: DYLL_M50 + version: V41nano + match_test_to_ref: True + iso_vs_efficiency: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "abs({eta}) < 1.479" + object: + - "abs({eta}) < 1.479" + test_objects: + L1tkElectron:NoIso: "relIso" + xlabel: "Isolation" + ylabel: "Efficiency (Barrel)" + binning: + min: 0 + max: 0.5 + step: 0.005 + +ElectronsIsolation_Endcap: + sample: DYLL_M50 + version: V41nano + match_test_to_ref: True + iso_vs_efficiency: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "abs({eta}) > 1.479" + object: + - "abs({eta}) < 2.4" + test_objects: + L1tkElectron:NoIsoForIso: "relIso" + xlabel: "Isolation" + ylabel: "Efficiency (Endcap)" + binning: + min: 0 + max: 0.5 + step: 0.005 + diff --git a/configs/V41nano/object_performance/electron_matching.yaml b/configs/V41nano/object_performance/electron_matching.yaml new file mode 100644 index 00000000..bf9449ec --- /dev/null +++ b/configs/V41nano/object_performance/electron_matching.yaml @@ -0,0 +1,52 @@ +ElectronsMatchingBarrel: + sample: DYLL_M50 + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" # 0 - isPrompt, >>7 isHardProcess + - "abs({pdgId}) == 11" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1EG:default: "pt" + L1tkElectron:NoIso: "pt" + L1tkElectron:Iso: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Barrel)" + binning: + min: 0 + max: 100 + step: 3 + +ElectronsMatchingEndcap: + sample: DYLL_M50 + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + # - "status == 1" + - "abs({pdgId}) == 11" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1EG:default: "pt" + L1tkElectron:NoIso: "pt" + L1tkElectron:Iso: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Endcap)" + binning: + min: 0 + max: 100 + step: 3 diff --git a/configs/V41nano/object_performance/electron_matching_eta.yaml b/configs/V41nano/object_performance/electron_matching_eta.yaml new file mode 100644 index 00000000..871d71d9 --- /dev/null +++ b/configs/V41nano/object_performance/electron_matching_eta.yaml @@ -0,0 +1,52 @@ +ElectronsMatching_Eta_Pt10to25: + sample: DYLL_M50 + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "{pt} < 25" + - "{pt} > 10" + object: + - "abs({eta}) < 3.0" + test_objects: + L1EG:default: "eta" + L1tkElectron:NoIso: "eta" + L1tkElectron:Iso: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency ($10 < p_T < 25$ GeV)" + binning: + min: -3 + max: 3 + step: 0.2 + +ElectronsMatching_Eta_Pt25toInf: + sample: DYLL_M50 + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "{pt} > 25" + object: + - "abs({eta}) < 3.0" + test_objects: + L1EG:default: "eta" + L1tkElectron:NoIso: "eta" + L1tkElectron:Iso: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency ($p_T > 25$ GeV)" + binning: + min: -3 + max: 3 + step: 0.2 diff --git a/configs/V41nano/object_performance/electron_trigger.yaml b/configs/V41nano/object_performance/electron_trigger.yaml new file mode 100644 index 00000000..0e600a6b --- /dev/null +++ b/configs/V41nano/object_performance/electron_trigger.yaml @@ -0,0 +1,59 @@ +ElectronsTriggerBarrel: + sample: DYLL_M50 + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.8" + test_objects: + L1EG:default:barrel: "pt" + L1tkElectron:NoIso:barrel: "pt" + L1tkElectron:Iso:barrel: "pt" + thresholds: [10, 20, 30, 40] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (barrel, L1 $p_T > $ GeV)" + binning: + min: 0 + max: 100 + step: 1.5 + +ElectronsTriggerEndcap: + sample: DYLL_M50 + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.8" + test_objects: + L1EG:default:endcap: "pt" + L1tkElectron:NoIso:endcap: "pt" + L1tkElectron:Iso:endcap: "pt" + thresholds: [10, 20, 30, 40] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (endcap, L1 $p_T > $ GeV)" + binning: + min: 0 + max: 100 + step: 1.5 diff --git a/configs/V41nano/object_performance/jets_matching.yaml b/configs/V41nano/object_performance/jets_matching.yaml new file mode 100644 index 00000000..d07e7d02 --- /dev/null +++ b/configs/V41nano/object_performance/jets_matching.yaml @@ -0,0 +1,117 @@ +JetMatchingBarrel: + sample: TT + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetHisto:default: "pt" + L1puppiJetSC4:default: "pt" + L1caloJet:default: "pt" + # trackerJet:default: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (barrel)" + binning: + min: 0 + max: 500 + step: 10 + +JetMatchingEndcap: + sample: TT + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetHisto:default: "pt" + L1puppiJetSC4:default: "pt" + L1caloJet:default: "pt" + # trackerJet:default: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (endcap)" + binning: + min: 0 + max: 500 + step: 10 + +JetMatchingForward: + version: V41nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 2.4" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetHisto:default: "pt" + L1puppiJetSC4:default: "pt" + L1caloJet:default: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (forward)" + binning: + min: 0 + max: 500 + step: 10 + +JetMatchingBarrelSC8: + sample: TT + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "pt" + label: "Gen AK8 Jets" + cuts: + event: + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetSC8:default:barrel: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (barrel)" + binning: + min: 0 + max: 500 + step: 10 + +JetMatchingEndcapSC8: + sample: TT + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "pt" + label: "Gen AK8 Jets" + cuts: + event: + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetSC8:default:endcap: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (endcap)" + binning: + min: 0 + max: 500 + step: 10 \ No newline at end of file diff --git a/configs/V41nano/object_performance/jets_matching_eta.yaml b/configs/V41nano/object_performance/jets_matching_eta.yaml new file mode 100644 index 00000000..f257c201 --- /dev/null +++ b/configs/V41nano/object_performance/jets_matching_eta.yaml @@ -0,0 +1,94 @@ +JetMatching_Eta_Pt40To100: + sample: TT + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 40" + - "{pt} < 100" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetHisto:default: "eta" + L1puppiJetSC4:default: "eta" + L1caloJet:default: "eta" + # trackerJet:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (40-100 GeV)" + binning: + min: -5 + max: 5 + step: 0.25 + +JetMatching_Eta_Pt100ToInf: + sample: TT + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 100" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetHisto:default: "eta" + L1puppiJetSC4:default: "eta" + L1caloJet:default: "eta" + # trackerJet:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>100 GeV)" + binning: + min: -5 + max: 5 + step: 0.25 + +JetMatching_Eta_Pt100ToInf_extEta: + sample: TT + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 100" + object: + - "abs({eta}) < 7" + test_objects: + L1caloJet:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>100 GeV)" + binning: + min: -5.5 + max: 5.5 + step: 0.25 + +JetMatching_Eta_SC8_Pt100ToInf: + sample: TT + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 100" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetSC8:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>100 GeV)" + binning: + min: -5 + max: 5 + step: 0.25 \ No newline at end of file diff --git a/configs/V41nano/object_performance/jets_matching_wBTag.yaml b/configs/V41nano/object_performance/jets_matching_wBTag.yaml new file mode 100644 index 00000000..5646f2be --- /dev/null +++ b/configs/V41nano/object_performance/jets_matching_wBTag.yaml @@ -0,0 +1,140 @@ +JetMatching_Eta_Pt40To100_ExtendedVsRegular: + sample: TT + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 40" + - "{pt} < 100" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetSC4:default: "eta" + L1puppiExtJetSC4:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (40-100 GeV)" + binning: + min: -5 + max: 5 + step: 0.25 + +JetMatching_Eta_Pt100ToInf_ExtendedVsRegular: + sample: TT + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 100" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetSC4:default: "eta" + L1puppiExtJetSC4:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>100 GeV)" + binning: + min: -5 + max: 5 + step: 0.25 + +JetMatching_Eta_Pt30ToInf_genBJets: + sample: TT + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 30" + - "abs({partonFlavour}) == 5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiExtJetSC4:bjetnn: "eta" + L1puppiJetSC4:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>30 GeV)" + binning: + min: -2.4 + max: 2.4 + step: 0.25 + +JetMatching_Eta_Pt30ToInf_genNotBJets: + sample: TT + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 30" + - "abs({partonFlavour}) != 5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiExtJetSC4:bjetnn: "eta" + L1puppiJetSC4:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>30 GeV)" + binning: + min: -2.4 + max: 2.4 + step: 0.25 + +JetMatching_Pt_Pt30ToInf_genBJets: + sample: TT + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({partonFlavour}) == 5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiExtJetSC4:bjetnn: "pt" + L1puppiJetSC4:default: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency" + binning: + min: 30 + max: 200 + step: 10 + +JetMatching_Pt_Pt30ToInf_genNotBJets: + sample: TT + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({partonFlavour}) != 5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiExtJetSC4:bjetnn: "pt" + L1puppiJetSC4:default: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency" + binning: + min: 30 + max: 200 + step: 10 diff --git a/configs/V41nano/object_performance/jets_trigger.yaml b/configs/V41nano/object_performance/jets_trigger.yaml new file mode 100644 index 00000000..a63552f7 --- /dev/null +++ b/configs/V41nano/object_performance/jets_trigger.yaml @@ -0,0 +1,163 @@ +JetTurnonBarrel: + version: V41nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetHisto:default:barrel: "pt" + L1puppiJetSC4:default:barrel: "pt" + L1caloJet:default: "pt" + # trackerJet:default:barrel: "pt" + thresholds: [50, 100] + # scalings: + # method: "naive" + # threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, barrel)" + binning: + min: 0 + max: 500 + step: 10 + +JetTurnonEndcap: + version: V41nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetHisto:default:endcap: "pt" + L1puppiJetSC4:default:endcap: "pt" + L1caloJet:default: "pt" + # trackerJet:default:endcap: "pt" + thresholds: [50, 100] + # scalings: + # method: "naive" + # threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, endcap)" + binning: + min: 0 + max: 500 + step: 10 + +JetTurnonForward: + version: V41nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 2.4" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetHisto:default:forward: "pt" + L1puppiJetSC4:default:forward: "pt" + L1caloJet:default: "pt" + thresholds: [50, 100] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, forward)" + binning: + min: 0 + max: 500 + step: 10 + +JetTurnonBarrelSC8: + version: V41nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetSC8:default:barrel: "pt" + thresholds: [150] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, barrel)" + binning: + min: 0 + max: 500 + step: 10 + +JetTurnonEndcapSC8: + version: V41nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetSC8:default:endcap: "pt" + thresholds: [150] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, endcap)" + binning: + min: 0 + max: 500 + step: 10 + +JetTurnonForwardSC8: + version: V41nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 2.4" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetSC8:default:forward: "pt" + thresholds: [150] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, forward)" + binning: + min: 0 + max: 500 + step: 10 diff --git a/configs/V41nano/object_performance/met_ht_mht.yaml b/configs/V41nano/object_performance/met_ht_mht.yaml new file mode 100644 index 00000000..d1bec5a3 --- /dev/null +++ b/configs/V41nano/object_performance/met_ht_mht.yaml @@ -0,0 +1,73 @@ +HT_90perc: + sample: TT + version: V41nano + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen HT" + trafo: "HT" + cuts: + object: + - "abs({eta}) < 2.4" + - "{pt} > 30" + test_objects: + # trackerHT:default: "" + # phase1PuppiHT:default: "" + # seededConePuppiHT:default: "" + L1puppiJetSC4sums:HT: "pt" + thresholds: [350] + scalings: + method: "naive" + threshold: 0.90 + xlabel: "Gen. HT (GeV)" + ylabel: "Trigger Efficiency ( GeV)" + binning: + min: 0 + max: 750 + step: 20 + +MHT_50perc: + sample: TT + version: V41nano + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen MHT" + cuts: + object: + - "abs({eta}) < 2.4" + - "{pt} > 30" + trafo: "MHT" + test_objects: + L1puppiJetSC4sums:MHT: "pt" + thresholds: [70, 150] + scalings: + method: "naive" + threshold: 0.50 + xlabel: "Gen. MHT30 (GeV)" + ylabel: "Trigger Efficiency ( GeV)" + binning: + min: 0 + max: 500 + step: 20 + +MET_90perc: + sample: TT + version: V41nano + reference_object: + object: "GenMET" + x_arg: "pt" + label: "Gen MET" + test_objects: + # trackerMET:default: "" + L1puppiMET:default: "pt" + thresholds: [150] + xlabel: "Gen. MET (GeV)" + ylabel: "Trigger Efficiency ( GeV)" + scalings: + method: "naive" + threshold: 0.90 + binning: + min: 0 + max: 500 + step: 20 diff --git a/configs/V41nano/object_performance/mht.yaml b/configs/V41nano/object_performance/mht.yaml new file mode 100644 index 00000000..2ce2fc8e --- /dev/null +++ b/configs/V41nano/object_performance/mht.yaml @@ -0,0 +1,72 @@ +MHT_debug_METrefGenMHT: + sample: TT + version: V41nano + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen MHT" + cuts: + object: + - "abs({eta}) < 2.4" + - "{pt} > 30" + trafo: "MHT" + test_objects: + L1puppiMET:default: "pt" + #thresholds: [-1, 0, 70, 150, 500] + thresholds: [150] + # scalings: + # method: "naive" + # threshold: 0.50 + xlabel: "Gen. MHT30 (GeV)" + ylabel: "Trigger Efficiency ( GeV)" + binning: + min: 0 + max: 500 + step: 20 + +MHT_debug: + sample: TT + version: V41nano + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen MHT" + cuts: + object: + - "abs({eta}) < 2.4" + - "{pt} > 30" + trafo: "MHT" + test_objects: + L1puppiJetSC4sums:MHT: "pt" + #thresholds: [-1, 0, 70, 150, 500] + thresholds: [150] + # scalings: + # method: "naive" + # threshold: 0.50 + xlabel: "Gen. MHT30 (GeV)" + ylabel: "Trigger Efficiency ( GeV)" + binning: + min: 0 + max: 500 + step: 20 + +MHT_debug_refL1MET: + sample: TT + version: V41nano + reference_object: + object: "L1puppiMET" + x_arg: "pt" + label: "Gen MHT" + test_objects: + L1puppiJetSC4sums:MHT: "pt" + # thresholds: [-1, 0, 70, 150, 500] + thresholds: [150] + # scalings: + # method: "naive" + # threshold: 0.50 + xlabel: "Gen. MHT30 (GeV)" + ylabel: "Trigger Efficiency ( GeV)" + binning: + min: 0 + max: 500 + step: 20 \ No newline at end of file diff --git a/configs/V41nano/object_performance/muon_matching.yaml b/configs/V41nano/object_performance/muon_matching.yaml new file mode 100644 index 00000000..2a0047f8 --- /dev/null +++ b/configs/V41nano/object_performance/muon_matching.yaml @@ -0,0 +1,73 @@ +MuonsMatchingBarrel: + sample: DYLL_M50 + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) < 0.83" + test_objects: + L1gmtMuon:default:barrel: "pt" + L1gmtTkMuon:default:barrel: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (barrel)" + binning: + min: 0 + max: 100 + step: 3 + +MuonsMatchingOverlap: + sample: DYLL_M50 + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) > 0.83" + - "abs({eta}) < 1.24" + test_objects: + L1gmtMuon:default:overlap: "pt" + L1gmtTkMuon:default:overlap: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (overlap)" + binning: + min: 0 + max: 100 + step: 3 + +MuonsMatchingEndcap: + sample: DYLL_M50 + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) > 1.24" + - "abs({eta}) < 2.4" + test_objects: + L1gmtMuon:default:endcap: "pt" + L1gmtTkMuon:default:endcap: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (endcap)" + binning: + min: 0 + max: 100 + step: 3 diff --git a/configs/V41nano/object_performance/muon_matching_eta.yaml b/configs/V41nano/object_performance/muon_matching_eta.yaml new file mode 100644 index 00000000..4a2f43e5 --- /dev/null +++ b/configs/V41nano/object_performance/muon_matching_eta.yaml @@ -0,0 +1,50 @@ +MuonsMatching_Eta_Pt2to5: + sample: DYLL_M50 + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + - "{pt} > 2" + - "{pt} < 5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1gmtMuon:default: "eta" + L1gmtTkMuon:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (2-5 GeV)" + binning: + min: -3 + max: 3 + step: 0.2 + +MuonsMatching_Eta_Pt15toInf: + sample: DYLL_M50 + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + - "{pt} > 15" + object: + - "abs({eta}) < 2.4" + test_objects: + L1gmtMuon:default: "eta" + L1gmtTkMuon:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>15 GeV)" + binning: + min: -3 + max: 3 + step: 0.2 diff --git a/configs/V41nano/object_performance/muon_trigger.yaml b/configs/V41nano/object_performance/muon_trigger.yaml new file mode 100644 index 00000000..1c5216c0 --- /dev/null +++ b/configs/V41nano/object_performance/muon_trigger.yaml @@ -0,0 +1,81 @@ +MuonsTrigger_Barrel: + sample: DYLL_M50 + version: V41nano + match_test_to_ref: True + reference_object: + object: "part_mu" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "{dr_0.3} < 0.15" + object: + - "abs({eta}) < 0.83" + test_objects: + gmtMuon:default:barrel: "pt" + gmtTkMuon:default:barrel: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (barrel, L1 $p_T > 20$ GeV)" + thresholds: [20, 25] + scalings: + method: "naive" + threshold: 0.95 + binning: + min: 0 + max: 50 + step: 1.5 + +MuonsTrigger_Overlap: + sample: DYLL_M50 + version: V41nano + match_test_to_ref: True + reference_object: + object: "part_mu" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "{dr_0.3} < 0.15" + object: + - "abs({eta}) > 0.83" + - "abs({eta}) < 1.24" + test_objects: + gmtMuon:default:overlap: "pt" + gmtTkMuon:default:overlap: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (overlap, L1 $p_T > 20$ GeV)" + thresholds: [20, 25] + scalings: + method: "naive" + threshold: 0.95 + binning: + min: 0 + max: 50 + step: 1.5 + +MuonsTrigger_Endcap: + sample: DYLL_M50 + version: V41nano + match_test_to_ref: True + reference_object: + object: "part_mu" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "{dr_0.3} < 0.15" + object: + - "abs({eta}) > 1.24" + test_objects: + gmtMuon:default:endcap: "pt" + gmtTkMuon:default:endcap: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (endcap, L1 $p_T > 20$ GeV)" + thresholds: [20, 25] + scalings: + method: "naive" + threshold: 0.95 + binning: + min: 0 + max: 50 + step: 1.5 diff --git a/configs/V41nano/object_performance/photon_iso.yaml b/configs/V41nano/object_performance/photon_iso.yaml new file mode 100644 index 00000000..404065b8 --- /dev/null +++ b/configs/V41nano/object_performance/photon_iso.yaml @@ -0,0 +1,49 @@ +PhotonIsolation_Barrel: + sample: Hgg + version: V41nano + iso_vs_efficiency: True + match_test_to_ref: True + reference_object: + object: "part_gamma" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "{dr_0.3} < 0.15" + - "abs({eta}) < 1.479" + object: + - "abs({eta}) < 1.479" + test_objects: + L1tkPhoton:NoIso:barrel: "relIso" + xlabel: "Isolation" + ylabel: "Efficiency (Barrel)" + binning: + min: 0 + max: 0.5 + step: 0.005 + +PhotonIsolation_Endcap: + sample: Hgg + version: V41nano + iso_vs_efficiency: True + match_test_to_ref: True + reference_object: + object: "part_gamma" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "{dr_0.3} < 0.15" + - "abs({eta}) > 1.479" + - "abs({eta}) < 2.4" + object: + - "abs({eta}) > 1.479" + test_objects: + L1tkPhoton:NoIso:endcap: "relIso" + xlabel: "Isolation" + ylabel: "Efficiency (Endcap)" + binning: + min: 0 + max: 0.5 + step: 0.005 + diff --git a/configs/V41nano/object_performance/photons_matching.yaml b/configs/V41nano/object_performance/photons_matching.yaml new file mode 100644 index 00000000..b66a3ce2 --- /dev/null +++ b/configs/V41nano/object_performance/photons_matching.yaml @@ -0,0 +1,49 @@ +PhotonsMatching_Barrel: + sample: Hgg + version: V41nano + match_test_to_ref: True + reference_object: + object: "part_gamma" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "{dr_0.3} < 0.15" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + EG:default: "pt" + L1tkPhoton:NoIso: "pt" + L1tkPhoton:Iso: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Barrel)" + binning: + min: 0 + max: 100 + step: 3 + +PhotonsMatching_Endcap: + sample: Hgg + version: V41nano + match_test_to_ref: True + reference_object: + object: "part_gamma" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "{dr_0.3} < 0.15" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + EG:default: "pt" + L1tkPhoton:NoIso: "pt" + L1tkPhoton:Iso: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Endcap)" + binning: + min: 0 + max: 100 + step: 3 diff --git a/configs/V41nano/object_performance/photons_matching_eta.yaml b/configs/V41nano/object_performance/photons_matching_eta.yaml new file mode 100644 index 00000000..5e82fd3b --- /dev/null +++ b/configs/V41nano/object_performance/photons_matching_eta.yaml @@ -0,0 +1,50 @@ +PhotonsMatching_Eta_pt10to25: + sample: Hgg + version: V41nano + match_test_to_ref: True + reference_object: + object: "part_gamma" + x_arg: "Eta" + label: "Gen Photons" + cuts: + event: + - "{dr_0.3} < 0.15" + - "{pt} < 25" + - "{pt} > 10" + object: + - "abs({eta}) < 3.0" + test_objects: + EG:default: "Eta" + L1tkPhoton:NoIso: "Eta" + L1tkPhoton:Iso: "Eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency ($10 < p_T < 25$ GeV)" + binning: + min: -3 + max: 3 + step: 0.2 + +PhotonsMatching_Eta_pt25toInf: + sample: Hgg + version: V41nano + match_test_to_ref: True + reference_object: + object: "part_gamma" + x_arg: "Eta" + label: "Gen Photons" + cuts: + event: + - "{dr_0.3} < 0.15" + - "{pt} >= 25" + object: + - "abs({eta}) < 3.0" + test_objects: + EG:default: "Eta" + L1tkPhoton:NoIso: "Eta" + L1tkPhoton:Iso: "Eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency ($10 < p_T < 25$ GeV)" + binning: + min: -3 + max: 3 + step: 0.2 diff --git a/configs/V41nano/object_performance/photons_trigger.yaml b/configs/V41nano/object_performance/photons_trigger.yaml new file mode 100644 index 00000000..f56e2d96 --- /dev/null +++ b/configs/V41nano/object_performance/photons_trigger.yaml @@ -0,0 +1,57 @@ +PhotonsTrigger_Barrel: + sample: Hgg + version: V41nano + match_test_to_ref: True + reference_object: + object: "part_gamma" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "{dr_0.3} < 0.15" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + EG:default:barrel: "pt" + L1tkPhoton:NoIso:barrel: "pt" + L1tkPhoton:Iso:barrel: "pt" + thresholds: [10, 20, 30, 40] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (barrel, L1 $p_T > $ GeV)" + binning: + min: 0 + max: 100 + step: 1.5 + +PhotonsTrigger_Endcap: + sample: Hgg + version: V41nano + match_test_to_ref: True + reference_object: + object: "part_gamma" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "{dr_0.3} < 0.15" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + EG:default:endcap: "pt" + L1tkPhoton:NoIso:endcap: "pt" + L1tkPhoton:Iso:endcap: "pt" + thresholds: [10, 20, 30, 40] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (endcap, L1 $p_T > $ GeV)" + binning: + min: 0 + max: 100 + step: 1.5 diff --git a/configs/V41nano/object_performance/tau_matching.yaml b/configs/V41nano/object_performance/tau_matching.yaml new file mode 100644 index 00000000..e9fbeeac --- /dev/null +++ b/configs/V41nano/object_performance/tau_matching.yaml @@ -0,0 +1,53 @@ +TausMatchingBarrel: + sample: VBFHToTauTau + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "pt" + label: "Gen Taus" + cuts: + event: + # - "{dr_0.3} < 0.15" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnPuppiTau:default: "pt" + # L1hpsTau:default: "pt" + # L1caloTau:default: "pt" + # L1nnCaloTau:default: "pt" + # L1caloTau:PtGe20: "Pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Barrel)" + binning: + min: 0 + max: 150 + step: 6 + +TausMatchingEndcap: + sample: VBFHToTauTau + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "pt" + label: "Gen Taus" + cuts: + event: + # - "{dr_0.3} < 0.15" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnPuppiTau:default: "pt" + # L1hpsTau:default: "pt" + # L1caloTau:default: "pt" + # L1nnCaloTau:default: "pt" + # L1caloTau:PtGe20: "Pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Endcap)" + binning: + min: 0 + max: 150 + step: 6 diff --git a/configs/V41nano/object_performance/tau_matching_eta.yaml b/configs/V41nano/object_performance/tau_matching_eta.yaml new file mode 100644 index 00000000..4133770e --- /dev/null +++ b/configs/V41nano/object_performance/tau_matching_eta.yaml @@ -0,0 +1,46 @@ +TauMatching_Eta_Pt40To100: + sample: VBFHToTauTau + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "eta" + label: "Gen Taus" + cuts: + event: + - "{pt} > 40" + - "{pt} < 100" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnPuppiTau:default: "eta" + # L1caloTau:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (40-100 GeV)" + binning: + min: -3.0 + max: 3.0 + step: 0.2 + +TauMatching_Eta_Pt100ToInf: + sample: VBFHToTauTau + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "eta" + label: "Gen Taus" + cuts: + event: + - "{pt} > 100" + object: + - "abs({eta}) < 5" + test_objects: + L1nnPuppiTau:default: "eta" + # L1caloTau:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>100 GeV)" + binning: + min: -3 + max: 3 + step: 0.2 diff --git a/configs/V41nano/object_performance/tau_matching_wHH.yaml b/configs/V41nano/object_performance/tau_matching_wHH.yaml new file mode 100644 index 00000000..e677c8fb --- /dev/null +++ b/configs/V41nano/object_performance/tau_matching_wHH.yaml @@ -0,0 +1,47 @@ +# HHTausMatchingBarrel: +# sample: HHToTauTau +# version: V41nano +# match_test_to_ref: True +# reference_object: +# object: "part_tau" +# x_arg: "pt" +# label: "Gen Taus" +# cuts: +# event: +# - "{dr_0.3} < 0.15" +# - "abs({eta}) < 1.5" +# object: +# - "abs({eta}) < 2.4" +# test_objects: +# nnTau:default: "pt" +# caloTau:default: "pt" +# xlabel: "Gen. $p_T$ (GeV)" +# ylabel: "Matching Efficiency (Barrel)" +# binning: +# min: 0 +# max: 150 +# step: 6 + +# HHTausMatchingEndcap: +# sample: HHToTauTau +# version: V41nano +# match_test_to_ref: True +# reference_object: +# object: "part_tau" +# x_arg: "pt" +# label: "Gen Taus" +# cuts: +# event: +# - "{dr_0.3} < 0.15" +# - "abs({eta}) > 1.5" +# object: +# - "abs({eta}) < 2.4" +# test_objects: +# nnTau:default: "pt" +# caloTau:default: "pt" +# xlabel: "Gen. $p_T$ (GeV)" +# ylabel: "Matching Efficiency (Endcap)" +# binning: +# min: 0 +# max: 150 +# step: 6 diff --git a/configs/V41nano/object_performance/tau_trigger.yaml b/configs/V41nano/object_performance/tau_trigger.yaml new file mode 100644 index 00000000..30d02f12 --- /dev/null +++ b/configs/V41nano/object_performance/tau_trigger.yaml @@ -0,0 +1,119 @@ +TauTriggerBarrel_90perc: + sample: VBFHToTauTau + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "pt" + label: "Gen Taus" + cuts: + event: + # - "{dr_0.3} < 0.15" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnTau:default: "pt" + L1hpsTau:default: "pt" + L1caloTau:default: "pt" + L1nnCaloTau:default: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (barrel, L1 $p_T > $ GeV)" + thresholds: [20, 30] + scalings: + method: "naive" + threshold: 0.90 + binning: + min: 0 + max: 150 + step: 6 + +TauTriggerEndcap_90perc: + sample: VBFHToTauTau + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "pt" + label: "Gen Taus" + cuts: + event: + # - "{dr_0.3} < 0.15" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnTau:default: "pt" + L1hpsTau:default: "pt" + L1caloTau:default: "pt" + L1nnCaloTau:default: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (endcap, L1 $p_T > $ GeV)" + thresholds: [20, 30] + scalings: + method: "naive" + threshold: 0.90 + binning: + min: 0 + max: 150 + step: 6 + +TauTriggerBarrel_50perc: + sample: VBFHToTauTau + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "pt" + label: "Gen Taus" + cuts: + event: + # - "{dr_0.3} < 0.15" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnTau:default: "pt" + L1hpsTau:default: "pt" + L1caloTau:default: "pt" + L1nnCaloTau:default: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (barrel, L1 $p_T > $ GeV)" + thresholds: [20, 30] + scalings: + method: "naive" + threshold: 0.50 + binning: + min: 0 + max: 150 + step: 6 + +TauTriggerEndcap_50perc: + sample: VBFHToTauTau + version: V41nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "pt" + label: "Gen Taus" + cuts: + event: + # - "{dr_0.3} < 0.15" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnTau:default: "pt" + L1hpsTau:default: "pt" + L1caloTau:default: "pt" + L1nnCaloTau:default: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (endcap, L1 $p_T > $ GeV)" + thresholds: [20, 30] + scalings: + method: "naive" + threshold: 0.50 + binning: + min: 0 + max: 150 + step: 6 diff --git a/configs/V41nano/objects/electrons.yaml b/configs/V41nano/objects/electrons.yaml new file mode 100644 index 00000000..cfacf196 --- /dev/null +++ b/configs/V41nano/objects/electrons.yaml @@ -0,0 +1,49 @@ +L1tkElectron: + match_dR: 0.15 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.479] + endcap: [1.479, 5] + ids: + NoIso: + label: "TkElectron" + cuts: + inclusive: + - "abs({eta}) < 2.4" + endcap: + - "({eleId} == 1) | ({pt} < 25)" + barrel: + - "{eleId} == 1" + NoIsoForIso: + # This id is exclusively used for the + # isoloation wp derivation + label: "TkElectron, no ID" + cuts: + inclusive: + - "abs({eta}) < 2.4" + Iso: + label: "TkIsoElectron" + cuts: + inclusive: + - "abs({eta}) < 2.4" + barrel: + - "abs({relIso}) < 0.13" + endcap: + - "abs({relIso}) < 0.28" + +L1EG: + match_dR: 0.2 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.479] + endcap: [1.479, 3.0] + label: "EG" + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 3.0" + barrel: + - "{eleId} == 1" + endcap: + - "{saId} == 1" diff --git a/configs/V41nano/objects/jets.yaml b/configs/V41nano/objects/jets.yaml new file mode 100644 index 00000000..b16315f7 --- /dev/null +++ b/configs/V41nano/objects/jets.yaml @@ -0,0 +1,71 @@ +L1caloJet: + match_dR: 0.35 + label: "Calo Jet" + eta_ranges: + inclusive: [0, 7] + cuts: + inclusive: + - "abs({eta}) < 7" + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 7" + +L1puppiExtJetSC4: + match_dR: 0.35 + label: "Seeded Cone Extended PuppiJet" + eta_ranges: + inclusive: [0, 7] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 5" + bjetnn: + cuts: + inclusive: + - "abs({eta}) < 2.4" + - "{btagScore} > 0.71" + +L1puppiJetHisto: + match_dR: 0.35 + label: "Histogrammed PuppiJet" + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + forward: [2.4, 5] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 7" + +L1puppiJetSC4: + match_dR: 0.35 + label: "Seeded Cone PuppiJet" + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + forward: [2.4, 5] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 7" + +L1puppiJetSC8: + match_dR: 0.35 + label: "Seeded Cone PuppiJet 8" + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + forward: [2.4, 5] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 7" \ No newline at end of file diff --git a/configs/V41nano/objects/met_ht_mht.yaml b/configs/V41nano/objects/met_ht_mht.yaml new file mode 100644 index 00000000..24c8e6d3 --- /dev/null +++ b/configs/V41nano/objects/met_ht_mht.yaml @@ -0,0 +1,35 @@ +L1puppiMET: + label: "Puppi MET" + ids: + default: {} + +L1puppiMLMET: + label: "Puppi MLMET" + ids: + default: {} + +L1puppiJetSC4sums: + ids: + HT: + label: "SeededCone HT" + cuts: + inclusive: + - "{sumType} == 0" + MHT: + label: "SeededCone MHT" + cuts: + inclusive: + - "{sumType} == 1" + +L1puppiHistoJetSums: + ids: + HT: + label: "Histogrammed Puppi HT" + cuts: + inclusive: + - "{sumType} == 0" + MHT: + label: "Histogrammed Puppi MHT" + cuts: + inclusive: + - "{sumType} == 1" diff --git a/configs/V41nano/objects/muons.yaml b/configs/V41nano/objects/muons.yaml new file mode 100644 index 00000000..08bd371a --- /dev/null +++ b/configs/V41nano/objects/muons.yaml @@ -0,0 +1,35 @@ +GenPart: + label: "Gen Muon" + eta_ranges: + inclusive: [0, 7] + ids: + gen_electron_default: + cuts: + inclusive: + - "(({statusFlags}>>7)&1) == 1" + + +L1gmtMuon: + label: "GMT Muon" + match_dR: 0.3 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 0.83] + overlap: [0.83, 1.24] + endcap: [1.24, 2.4] + ids: + default: {} + +L1gmtTkMuon: + label: "GMT TkMuon" + match_dR: 0.1 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 0.83] + overlap: [0.83, 1.24] + endcap: [1.24, 2.4] + ids: + default: + cuts: + inclusive: + - "({hwQual} > 0) | ({pt} > 8)" # quality criterion only to be appied for p_T < 8 GeV diff --git a/configs/V41nano/objects/photons.yaml b/configs/V41nano/objects/photons.yaml new file mode 100644 index 00000000..12d51f0c --- /dev/null +++ b/configs/V41nano/objects/photons.yaml @@ -0,0 +1,29 @@ +L1tkPhoton: + match_dR: 0.15 + eta_ranges: + inclusive: [0, 5] + barrel: [0, 1.479] + endcap: [1.479, 2.4] + ids: + NoIso: + label: "L1tkPhoton" + cuts: + inclusive: + - "abs({eta}) < 2.4" + - "{pt} > 5" + barrel: + - "{eleId} == 1" + endcap: + - "{phoId} == 1" + Iso: + label: "L1tkIsoPhoton" + cuts: + inclusive: + - "abs({eta}) < 2.4" + - "{pt} > 5" + barrel: + - "abs({relIso}) < 0.25" + - "{eleId} == 1" + endcap: + - "abs({relIso}) < 0.205" + - "{phoId} == 1" diff --git a/configs/V41nano/objects/taus.yaml b/configs/V41nano/objects/taus.yaml new file mode 100644 index 00000000..dd7df359 --- /dev/null +++ b/configs/V41nano/objects/taus.yaml @@ -0,0 +1,34 @@ +L1nnPuppiTau: + label: "NN Tau" + match_dR: 0.1 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 2.4" + # - "{passLooseNN}==1" + # Current IB (22 Feb recipe) does not have updated WP, so cut on NN score rather than checking passLooseNN + - "{chargedIso} > 0.22" + +L1caloTau: + label: "Calo Tau" + match_dR: 0.3 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 2.4" + PtGe20: + label: "Calo Tau, pt > 20" + cuts: + inclusive: + - "abs({eta}) < 2.4" + - "{pt} > 20" diff --git a/configs/V41nano/rate_plots/all_rate_plots.yaml b/configs/V41nano/rate_plots/all_rate_plots.yaml new file mode 100644 index 00000000..7f64c894 --- /dev/null +++ b/configs/V41nano/rate_plots/all_rate_plots.yaml @@ -0,0 +1,46 @@ +TauRates: + sample: MinBias + version: V32nano + test_objects: + - L1nnTau:default + - L1hpsTau:default + - L1caloTau:default + - L1nnCaloTau:default + binning: + min: 10 + max: 155 + step: 5 + +JetDefaultRates: + sample: MinBias + version: V32nano + test_objects: + - L1puppiJetHisto:default + - L1puppiJetSC4:default + - L1caloJet:default + binning: + min: 40 + max: 420 + step: 20 + +JetSC8Rates: + sample: MinBias + version: V32nano + test_objects: + # - L1puppiJetSC4:default + - L1puppiJetSC8:default + binning: + min: 40 + max: 420 + step: 20 + +METRates: + sample: MinBias + version: V32nano + test_objects: + - L1puppiMET:default + - L1puppiMLMET:default + binning: + min: 50 + max: 300 + step: 10 diff --git a/configs/V42nano/README.md b/configs/V42nano/README.md new file mode 100644 index 00000000..364b400f --- /dev/null +++ b/configs/V42nano/README.md @@ -0,0 +1,5 @@ +# V42 DT12x version + +Based on https://github.com/cms-l1-dpg/Phase2-L1Nano/tree/v38_1400pre3v9 + +Uses the Annual Review branch 1400pre3v9 and includes rerunning the TrackTrigger. \ No newline at end of file diff --git a/configs/V42nano/caching.yaml b/configs/V42nano/caching.yaml new file mode 100644 index 00000000..35b8c265 --- /dev/null +++ b/configs/V42nano/caching.yaml @@ -0,0 +1,98 @@ +V42nano: + # Hgg: + # ntuple_path: /eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/alobanov/phase2/menu/ntuples/14X/v38/GluGluHToGG_M-125_TuneCP5_14TeV-powheg-pythia8/GluGluHToGG_131_200PU_IBv9_wTT/240412_210813/0000/*.root + # trees_branches: + # Events: + # GenPart: [pt, eta, phi, pdgId, statusFlags] + # L1tkPhoton: "all" + # L1EGbarrel: "all" + # L1EGendcap: "all" + DYLL_M50: + ntuple_path: /eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/alobanov/phase2/menu/ntuples/14X/v40/DYToLL_M-50_TuneCP5_14TeV-pythia8/DY_M50_Spring24_200PU_V40_content/240905_131059/*/*.root + trees_branches: + Events: + GenPart: "all" + ## EG + L1tkElectron: "all" + # L1EGbarrel: "all" + L1EGendcap: "all" + ## Muons + L1gmtTkMuon: "all" + L1gmtMuon: "all" + L1gmtDispMuon: "all" + ## TF Muons + # L1MuonKMTF: "all" + # L1MuonOMTF: "all" + # L1MuonEMTF: "all" + # L1DispMuonKMTF: "all" + # L1DispMuonOMTF: "all" + # L1DispMuonEMTF: "all" + TT: + ntuple_path: /eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/alobanov/phase2/menu/ntuples/14X/v40/TT_TuneCP5_14TeV-powheg-pythia8/TT_Spring24_200PU_V40_content/240916_194023/0000/*.root + trees_branches: + Events: + # gen + GenJet: [pt, eta, phi, partonFlavour] + GenJetAK8: [pt, eta, phi] + GenMET: "all" + # # sums + L1puppiMET: [pt, phi] + # L1puppiMLMET: [pt] + L1puppiJetSC4sums: [pt, phi] + L1puppiHistoJetSums: [pt, phi] + # # jets + L1puppiJetSC4: [pt, eta, phi] + L1puppiJetSC8: [pt, eta, phi] + L1puppiExtJetSC4: [pt, eta, phi, btagScore] + L1puppiJetHisto: [pt, eta, phi] + L1caloJet: [pt, eta, phi] + L1TrackMET: [pt] + L1TrackHT: [ht, mht] + L1TrackJet: [pt, eta, phi] + VBFHToTauTau: + ntuple_path: /eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/alobanov/phase2/menu/ntuples/14X/v40/VBF_HToTauTau_M-125_TuneCP5_14TeV-powheg-pythia8/VBFHtoTaus_Spring24_200PU_V40_content/240916_194011/0000/*.root + trees_branches: + Events: + GenPart: [pt, eta, phi, pdgId, statusFlags] + GenVisTau: "all" + L1nnPuppiTau: "all" + # L1hpsTau: "all" + L1caloTau: "all" + # L1nnCaloTau: "all" + # MinBias: + # ntuple_path: /eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/alobanov/phase2/menu/ntuples/14X/v38/MinBias_TuneCP5_14TeV-pythia8/MinBias_131_L1Fix_IBv9_wTT/240412_211203/0000/*.root + # trees_branches: + # Events: + # # PV + # L1PV: [z0] + # ## EG + # L1tkPhoton: "all" + # L1tkElectron: "all" + # L1EGbarrel: "all" + # L1EGendcap: "all" + # ## MUONS + # L1gmtTkMuon: "all" + # L1gmtMuon: "all" # aka gmtMuon + # L1gmtDispMuon: "all" + # ## TAUS + # L1nnPuppiTau: "all" + # L1hpsTau: "all" + # L1caloTau: "all" + # L1nnCaloTau: "all" + # ## MET/Sums + # L1puppiMET: [pt, phi] + # L1puppiMLMET: [pt] + # L1puppiJetSC4sums: [pt, phi] + # L1puppiHistoJetSums: [pt, phi] + # # # jets + # L1puppiJetSC4: [pt, eta, phi] + # L1puppiJetSC8: [pt, eta, phi] + # L1puppiExtJetSC4: [pt, eta, phi, btagScore] + # L1puppiJetHisto: [pt, eta, phi] + # L1caloJet: [pt, eta, phi] + # ## track-only + # L1TrackMET: [pt] + # L1TrackHT: [ht, mht] + # L1TrackJet: [pt, eta, phi] + # L1TrackTripletWord: [pt] + # L1ExtTrackHT: [ht] \ No newline at end of file diff --git a/configs/V42nano/object_performance/electron_iso.yaml b/configs/V42nano/object_performance/electron_iso.yaml new file mode 100644 index 00000000..aa955cea --- /dev/null +++ b/configs/V42nano/object_performance/electron_iso.yaml @@ -0,0 +1,50 @@ +ElectronsIsolation_Barrel: + sample: DYLL_M50 + version: V42nano + match_test_to_ref: True + iso_vs_efficiency: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "abs({eta}) < 1.479" + object: + - "abs({eta}) < 1.479" + test_objects: + L1tkElectron:NoIso: "relIso" + xlabel: "Isolation" + ylabel: "Efficiency (Barrel)" + binning: + min: 0 + max: 0.5 + step: 0.005 + +ElectronsIsolation_Endcap: + sample: DYLL_M50 + version: V42nano + match_test_to_ref: True + iso_vs_efficiency: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "abs({eta}) > 1.479" + object: + - "abs({eta}) < 2.4" + test_objects: + L1tkElectron:NoIsoForIso: "relIso" + xlabel: "Isolation" + ylabel: "Efficiency (Endcap)" + binning: + min: 0 + max: 0.5 + step: 0.005 + diff --git a/configs/V42nano/object_performance/electron_matching.yaml b/configs/V42nano/object_performance/electron_matching.yaml new file mode 100644 index 00000000..e04edfc8 --- /dev/null +++ b/configs/V42nano/object_performance/electron_matching.yaml @@ -0,0 +1,103 @@ +ElectronsMatchingBarrel: + sample: DYLL_M50 + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1EG:default: "pt" + L1tkElectron:NoIso: "pt" + L1tkElectron:Iso: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Barrel)" + binning: + min: 0 + max: 100 + step: 3 + +# ElectronsMatchingBarrel_wPrunedGenPart: +# sample: DYLL_M50 +# version: V42nano +# match_test_to_ref: True +# reference_object: +# object: "GenPart" +# x_arg: "pt" +# label: "Gen Electrons" +# cuts: +# event: +# - "(({statusFlags}>>7)&1) == 1" +# - "abs({pdgId}) == 11" +# - "abs({eta}) < 1.5" +# object: +# - "abs({eta}) < 2.4" +# test_objects: +# L1EG:default: "pt" +# L1tkElectron:NoIso: "pt" +# L1tkElectron:Iso: "pt" +# xlabel: "Gen. $p_T$ (GeV)" +# ylabel: "Matching Efficiency (Barrel)" +# binning: +# min: 0 +# max: 100 +# step: 3 + +ElectronsMatchingEndcap: + sample: DYLL_M50 + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1EG:default: "pt" + L1tkElectron:NoIso: "pt" + L1tkElectron:Iso: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Endcap)" + binning: + min: 0 + max: 100 + step: 3 + +# ElectronsMatchingEndcap_wPrunedGenPart: +# sample: DYLL_M50 +# version: V42nano +# match_test_to_ref: True +# reference_object: +# object: "GenPart" +# x_arg: "pt" +# label: "Gen Electrons" +# cuts: +# event: +# - "(({statusFlags}>>7)&1) == 1" +# - "abs({pdgId}) == 11" +# - "abs({eta}) > 1.5" +# object: +# - "abs({eta}) < 2.4" +# test_objects: +# L1EG:default: "pt" +# L1tkElectron:NoIso: "pt" +# L1tkElectron:Iso: "pt" +# xlabel: "Gen. $p_T$ (GeV)" +# ylabel: "Matching Efficiency (Endcap)" +# binning: +# min: 0 +# max: 100 +# step: 3 diff --git a/configs/V42nano/object_performance/electron_matching_eta.yaml b/configs/V42nano/object_performance/electron_matching_eta.yaml new file mode 100644 index 00000000..f34ed59b --- /dev/null +++ b/configs/V42nano/object_performance/electron_matching_eta.yaml @@ -0,0 +1,52 @@ +ElectronsMatching_Eta_Pt10to25: + sample: DYLL_M50 + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "{pt} < 25" + - "{pt} > 10" + object: + - "abs({eta}) < 3.0" + test_objects: + L1EG:default: "eta" + L1tkElectron:NoIso: "eta" + L1tkElectron:Iso: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency ($10 < p_T < 25$ GeV)" + binning: + min: -3 + max: 3 + step: 0.2 + +ElectronsMatching_Eta_Pt25toInf: + sample: DYLL_M50 + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "{pt} > 25" + object: + - "abs({eta}) < 3.0" + test_objects: + L1EG:default: "eta" + L1tkElectron:NoIso: "eta" + L1tkElectron:Iso: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency ($p_T > 25$ GeV)" + binning: + min: -3 + max: 3 + step: 0.2 diff --git a/configs/V42nano/object_performance/electron_trigger.yaml b/configs/V42nano/object_performance/electron_trigger.yaml new file mode 100644 index 00000000..d7bf74e0 --- /dev/null +++ b/configs/V42nano/object_performance/electron_trigger.yaml @@ -0,0 +1,119 @@ +ElectronsTriggerBarrel: + sample: DYLL_M50 + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.8" + test_objects: + L1EG:default:barrel: "pt" + L1tkElectron:NoIso:barrel: "pt" + L1tkElectron:Iso:barrel: "pt" + thresholds: [10, 20, 30, 40] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (barrel, L1 $p_T > $ GeV)" + binning: + min: 0 + max: 100 + step: 1.5 + +ElectronsTriggerEndcap: + sample: DYLL_M50 + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.8" + test_objects: + L1EG:default:endcap: "pt" + L1tkElectron:NoIso:endcap: "pt" + L1tkElectron:Iso:endcap: "pt" + thresholds: [10, 20, 30, 40] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (endcap, L1 $p_T > $ GeV)" + binning: + min: 0 + max: 100 + step: 1.5 + +# ElectronsTriggerBarrel_wPrunedGenPart: +# sample: DYLL_M50 +# version: V42nano +# match_test_to_ref: True +# reference_object: +# object: "GenPart" +# x_arg: "pt" +# label: "Gen Electrons" +# cuts: +# event: +# - "(({statusFlags}>>7)&1) == 1" +# - "abs({pdgId}) == 11" +# - "abs({eta}) < 1.5" +# object: +# - "abs({eta}) < 2.8" +# test_objects: + # L1EG:default:barrel: "pt" +# L1tkElectron:NoIso:barrel: "pt" +# L1tkElectron:Iso:barrel: "pt" +# thresholds: [10, 20, 30, 40] +# scalings: +# method: "naive" +# threshold: 0.95 +# xlabel: "Gen. pT (GeV)" +# ylabel: "Trigger Efficiency (barrel, L1 $p_T > $ GeV)" +# binning: +# min: 0 +# max: 100 +# step: 1.5 + +# ElectronsTriggerEndcap_wPrunedGenPart: +# sample: DYLL_M50 +# version: V42nano +# match_test_to_ref: True +# reference_object: +# object: "GenPart" +# x_arg: "pt" +# label: "Gen Electrons" +# cuts: +# event: +# - "(({statusFlags}>>7)&1) == 1" +# - "abs({pdgId}) == 11" +# - "abs({eta}) > 1.5" +# object: +# - "abs({eta}) < 2.8" +# test_objects: +# # L1EG:default:endcap: "pt" +# L1tkElectron:NoIso:endcap: "pt" +# L1tkElectron:Iso:endcap: "pt" +# thresholds: [10, 20, 30, 40] +# scalings: +# method: "naive" +# threshold: 0.95 +# xlabel: "Gen. pT (GeV)" +# ylabel: "Trigger Efficiency (endcap, L1 $p_T > $ GeV)" +# binning: +# min: 0 +# max: 100 +# step: 1.5 diff --git a/configs/V42nano/object_performance/jets_matching.yaml b/configs/V42nano/object_performance/jets_matching.yaml new file mode 100644 index 00000000..c1bb86b6 --- /dev/null +++ b/configs/V42nano/object_performance/jets_matching.yaml @@ -0,0 +1,118 @@ +JetMatchingBarrel: + sample: TT + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetHisto:default: "pt" + L1puppiJetSC4:default: "pt" + L1caloJet:default: "pt" + L1TrackJet:default: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (barrel)" + binning: + min: 0 + max: 500 + step: 10 + +JetMatchingEndcap: + sample: TT + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetHisto:default: "pt" + L1puppiJetSC4:default: "pt" + L1caloJet:default: "pt" + L1TrackJet:default: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (endcap)" + binning: + min: 0 + max: 500 + step: 10 + +JetMatchingForward: + version: V42nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 2.4" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetHisto:default: "pt" + L1puppiJetSC4:default: "pt" + L1caloJet:default: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (forward)" + binning: + min: 0 + max: 500 + step: 10 + + +JetMatchingBarrelSC8: + sample: TT + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "pt" + label: "Gen AK8 Jets" + cuts: + event: + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetSC8:default:barrel: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (barrel)" + binning: + min: 0 + max: 500 + step: 10 + +JetMatchingEndcapSC8: + sample: TT + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "pt" + label: "Gen AK8 Jets" + cuts: + event: + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetSC8:default:endcap: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (endcap)" + binning: + min: 0 + max: 500 + step: 10 \ No newline at end of file diff --git a/configs/V42nano/object_performance/jets_matching_eta.yaml b/configs/V42nano/object_performance/jets_matching_eta.yaml new file mode 100644 index 00000000..830608cb --- /dev/null +++ b/configs/V42nano/object_performance/jets_matching_eta.yaml @@ -0,0 +1,94 @@ +JetMatching_Eta_Pt40To100: + sample: TT + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 40" + - "{pt} < 100" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetHisto:default: "eta" + L1puppiJetSC4:default: "eta" + L1caloJet:default: "eta" + L1TrackJet:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (40-100 GeV)" + binning: + min: -5 + max: 5 + step: 0.25 + +JetMatching_Eta_Pt100ToInf: + sample: TT + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 100" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetHisto:default: "eta" + L1puppiJetSC4:default: "eta" + L1caloJet:default: "eta" + L1TrackJet:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>100 GeV)" + binning: + min: -5 + max: 5 + step: 0.25 + +JetMatching_Eta_Pt100ToInf_extEta: + sample: TT + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 100" + object: + - "abs({eta}) < 7" + test_objects: + L1caloJet:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>100 GeV)" + binning: + min: -5.5 + max: 5.5 + step: 0.25 + +JetMatching_Eta_SC8_Pt100ToInf: + sample: TT + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 100" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetSC8:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>100 GeV)" + binning: + min: -5 + max: 5 + step: 0.25 \ No newline at end of file diff --git a/configs/V42nano/object_performance/jets_matching_wBTag.yaml b/configs/V42nano/object_performance/jets_matching_wBTag.yaml new file mode 100644 index 00000000..0bf317aa --- /dev/null +++ b/configs/V42nano/object_performance/jets_matching_wBTag.yaml @@ -0,0 +1,136 @@ +JetMatching_Eta_Pt40To100_ExtendedVsRegular: + sample: TT + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 40" + - "{pt} < 100" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetSC4:default: "eta" + L1puppiExtJetSC4:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (40-100 GeV)" + binning: + min: -5 + max: 5 + step: 0.25 + +JetMatching_Eta_Pt100ToInf_ExtendedVsRegular: + sample: TT + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 100" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetSC4:default: "eta" + L1puppiExtJetSC4:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>100 GeV)" + binning: + min: -5 + max: 5 + step: 0.25 + +JetMatching_Eta_Pt30ToInf_genBJets: + sample: TT + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 30" + - "abs({partonFlavour}) == 5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiExtJetSC4:bjetnn: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>30 GeV)" + binning: + min: -2.4 + max: 2.4 + step: 0.25 + +JetMatching_Eta_Pt30ToInf_genNotBJets: + sample: TT + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 30" + - "abs({partonFlavour}) != 5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiExtJetSC4:bjetnn: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>30 GeV)" + binning: + min: -2.4 + max: 2.4 + step: 0.25 + +JetMatching_Pt_Pt30ToInf_genBJets: + sample: TT + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({partonFlavour}) == 5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiExtJetSC4:bjetnn: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency" + binning: + min: 30 + max: 200 + step: 10 + +JetMatching_Pt_Pt30ToInf_genNotBJets: + sample: TT + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({partonFlavour}) != 5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiExtJetSC4:bjetnn: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency" + binning: + min: 30 + max: 200 + step: 10 diff --git a/configs/V42nano/object_performance/jets_sc8_trigger.yaml b/configs/V42nano/object_performance/jets_sc8_trigger.yaml new file mode 100644 index 00000000..ba69d3e1 --- /dev/null +++ b/configs/V42nano/object_performance/jets_sc8_trigger.yaml @@ -0,0 +1,77 @@ +JetTurnonBarrelSC8: + version: V42nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetSC8:default:barrel: "pt" + thresholds: [150] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, barrel)" + binning: + min: 0 + max: 500 + step: 10 + +JetTurnonEndcapSC8: + version: V42nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetSC8:default:endcap: "pt" + thresholds: [150] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, endcap)" + binning: + min: 0 + max: 500 + step: 10 + +JetTurnonForwardSC8: + version: V42nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 2.4" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetSC8:default:forward: "pt" + thresholds: [150] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, forward)" + binning: + min: 0 + max: 500 + step: 10 diff --git a/configs/V42nano/object_performance/jets_trigger.yaml b/configs/V42nano/object_performance/jets_trigger.yaml new file mode 100644 index 00000000..79f4bac9 --- /dev/null +++ b/configs/V42nano/object_performance/jets_trigger.yaml @@ -0,0 +1,85 @@ +JetTurnonBarrel: + version: V42nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetHisto:default:barrel: "pt" + L1puppiJetSC4:default:barrel: "pt" + L1caloJet:default:barrel: "pt" + L1TrackJet:default:barrel: "pt" + thresholds: [50, 100] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, barrel)" + binning: + min: 0 + max: 500 + step: 10 + +JetTurnonEndcap: + version: V42nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetHisto:default:endcap: "pt" + L1puppiJetSC4:default:endcap: "pt" + L1caloJet:default:endcap: "pt" + L1TrackJet:default:endcap: "pt" + thresholds: [50, 100] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, endcap)" + binning: + min: 0 + max: 500 + step: 10 + +JetTurnonForward: + version: V42nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 2.4" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetHisto:default:forward: "pt" + L1puppiJetSC4:default:forward: "pt" + L1caloJet:default:forward: "pt" + thresholds: [50, 100] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, forward)" + binning: + min: 0 + max: 500 + step: 10 diff --git a/configs/V42nano/object_performance/met_ht_mht.yaml b/configs/V42nano/object_performance/met_ht_mht.yaml new file mode 100644 index 00000000..cc84a42b --- /dev/null +++ b/configs/V42nano/object_performance/met_ht_mht.yaml @@ -0,0 +1,75 @@ +HT_90perc: + sample: TT + version: V42nano + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen HT" + trafo: "HT" + cuts: + object: + - "abs({eta}) < 2.4" + - "{pt} > 30" + test_objects: + L1puppiHistoJetSums:HT: "pt" + L1puppiJetSC4sums:HT: "pt" + L1TrackHT:HT: "ht" + thresholds: [350] + scalings: + method: "naive" + threshold: 0.90 + xlabel: "Gen. HT (GeV)" + ylabel: "Trigger Efficiency ( GeV)" + binning: + min: 0 + max: 750 + step: 20 + +MHT_50perc: + sample: TT + version: V42nano + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen MHT" + cuts: + object: + - "abs({eta}) < 2.4" + - "{pt} > 30" + trafo: "MHT" + test_objects: + L1puppiHistoJetSums:MHT: "pt" + L1puppiJetSC4sums:MHT: "pt" + L1TrackHT:MHT: "mht" + thresholds: [70, 150] + scalings: + method: "naive" + threshold: 0.50 + xlabel: "Gen. MHT30 (GeV)" + ylabel: "Trigger Efficiency ( GeV)" + binning: + min: 0 + max: 500 + step: 20 + +MET_90perc: + sample: TT + version: V42nano + reference_object: + object: "GenMET" + x_arg: "pt" + label: "Gen MET" + test_objects: + L1puppiMET:default: "pt" + L1puppiMLMET:default: "pt" + L1TrackMET:default: "pt" + thresholds: [150] + xlabel: "Gen. MET (GeV)" + ylabel: "Trigger Efficiency ( GeV)" + scalings: + method: "naive" + threshold: 0.90 + binning: + min: 0 + max: 500 + step: 20 diff --git a/configs/V42nano/object_performance/muon_matching.yaml b/configs/V42nano/object_performance/muon_matching.yaml new file mode 100644 index 00000000..34547d84 --- /dev/null +++ b/configs/V42nano/object_performance/muon_matching.yaml @@ -0,0 +1,73 @@ +MuonsMatchingBarrel: + sample: DYLL_M50 + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) < 0.83" + test_objects: + L1gmtMuon:default:barrel: "pt" + L1gmtTkMuon:default:barrel: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (barrel)" + binning: + min: 0 + max: 100 + step: 3 + +MuonsMatchingOverlap: + sample: DYLL_M50 + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) > 0.83" + - "abs({eta}) < 1.24" + test_objects: + L1gmtMuon:default:overlap: "pt" + L1gmtTkMuon:default:overlap: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (overlap)" + binning: + min: 0 + max: 100 + step: 3 + +MuonsMatchingEndcap: + sample: DYLL_M50 + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) > 1.24" + - "abs({eta}) < 2.4" + test_objects: + L1gmtMuon:default:endcap: "pt" + L1gmtTkMuon:default:endcap: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (endcap)" + binning: + min: 0 + max: 100 + step: 3 diff --git a/configs/V42nano/object_performance/muon_matching_eta.yaml b/configs/V42nano/object_performance/muon_matching_eta.yaml new file mode 100644 index 00000000..0b5edf8a --- /dev/null +++ b/configs/V42nano/object_performance/muon_matching_eta.yaml @@ -0,0 +1,50 @@ +MuonsMatching_Eta_Pt2to5: + sample: DYLL_M50 + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + - "{pt} > 2" + - "{pt} < 5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1gmtMuon:default: "eta" + L1gmtTkMuon:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (2-5 GeV)" + binning: + min: -3 + max: 3 + step: 0.2 + +MuonsMatching_Eta_Pt15toInf: + sample: DYLL_M50 + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + - "{pt} > 15" + object: + - "abs({eta}) < 2.4" + test_objects: + L1gmtMuon:default: "eta" + L1gmtTkMuon:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>15 GeV)" + binning: + min: -3 + max: 3 + step: 0.2 diff --git a/configs/V42nano/object_performance/muon_trigger.yaml b/configs/V42nano/object_performance/muon_trigger.yaml new file mode 100644 index 00000000..b781f5ef --- /dev/null +++ b/configs/V42nano/object_performance/muon_trigger.yaml @@ -0,0 +1,84 @@ +MuonsTrigger_Barrel: + sample: DYLL_M50 + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) < 0.83" + test_objects: + L1gmtMuon:default:barrel: "pt" + L1gmtTkMuon:default:barrel: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (barrel, L1 $p_T > 20$ GeV)" + thresholds: [20, 25] + scalings: + method: "naive" + threshold: 0.95 + binning: + min: 0 + max: 50 + step: 1.5 + +MuonsTrigger_Overlap: + sample: DYLL_M50 + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) > 0.83" + - "abs({eta}) < 1.24" + test_objects: + L1gmtMuon:default:overlap: "pt" + L1gmtTkMuon:default:overlap: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (overlap, L1 $p_T > 20$ GeV)" + thresholds: [20, 25] + scalings: + method: "naive" + threshold: 0.95 + binning: + min: 0 + max: 50 + step: 1.5 + +MuonsTrigger_Endcap: + sample: DYLL_M50 + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) > 1.24" + test_objects: + L1gmtMuon:default:endcap: "pt" + L1gmtTkMuon:default:endcap: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (endcap, L1 $p_T > 20$ GeV)" + thresholds: [20, 25] + scalings: + method: "naive" + threshold: 0.95 + binning: + min: 0 + max: 50 + step: 1.5 diff --git a/configs/V42nano/object_performance/photon_iso.yaml b/configs/V42nano/object_performance/photon_iso.yaml new file mode 100644 index 00000000..d538972e --- /dev/null +++ b/configs/V42nano/object_performance/photon_iso.yaml @@ -0,0 +1,51 @@ +PhotonIsolation_Barrel: + sample: Hgg + version: V42nano + iso_vs_efficiency: True + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 22" + - "abs({eta}) < 1.479" + object: + - "abs({eta}) < 1.479" + test_objects: + L1tkPhoton:NoIso:barrel: "relIso" + xlabel: "Isolation" + ylabel: "Efficiency (Barrel)" + binning: + min: 0 + max: 0.5 + step: 0.005 + +PhotonIsolation_Endcap: + sample: Hgg + version: V42nano + iso_vs_efficiency: True + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 22" + - "abs({eta}) > 1.479" + - "abs({eta}) < 2.4" + object: + - "abs({eta}) > 1.479" + test_objects: + L1tkPhoton:NoIso:endcap: "relIso" + xlabel: "Isolation" + ylabel: "Efficiency (Endcap)" + binning: + min: 0 + max: 0.5 + step: 0.005 + diff --git a/configs/V42nano/object_performance/photons_matching.yaml b/configs/V42nano/object_performance/photons_matching.yaml new file mode 100644 index 00000000..ab9af339 --- /dev/null +++ b/configs/V42nano/object_performance/photons_matching.yaml @@ -0,0 +1,103 @@ +PhotonsMatching_Barrel: + sample: Hgg + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 22" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1EG:default: "pt" + L1tkPhoton:NoIso: "pt" + L1tkPhoton:Iso: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Barrel)" + binning: + min: 0 + max: 100 + step: 3 + +PhotonsMatching_Endcap: + sample: Hgg + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 22" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1EG:default: "pt" + L1tkPhoton:NoIso: "pt" + L1tkPhoton:Iso: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Endcap)" + binning: + min: 0 + max: 100 + step: 3 + +PhotonsMatching_Barrel_wPrunedGenParts: + sample: Hgg + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 22" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1EG:default: "pt" + L1tkPhoton:NoIso: "pt" + L1tkPhoton:Iso: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Barrel)" + binning: + min: 0 + max: 100 + step: 3 + +PhotonsMatching_Endcap_wPrunedGenParts: + sample: Hgg + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 22" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1EG:default: "pt" + L1tkPhoton:NoIso: "pt" + L1tkPhoton:Iso: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Endcap)" + binning: + min: 0 + max: 100 + step: 3 diff --git a/configs/V42nano/object_performance/photons_matching_eta.yaml b/configs/V42nano/object_performance/photons_matching_eta.yaml new file mode 100644 index 00000000..e6e51634 --- /dev/null +++ b/configs/V42nano/object_performance/photons_matching_eta.yaml @@ -0,0 +1,52 @@ +PhotonsMatching_Eta_Pt10to25: + sample: Hgg + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Photons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 22" + - "{pt} < 25" + - "{pt} > 10" + object: + - "abs({eta}) < 3.0" + test_objects: + L1EG:default: "eta" + L1tkPhoton:NoIso: "eta" + L1tkPhoton:Iso: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency ($10 < p_T < 25$ GeV)" + binning: + min: -3 + max: 3 + step: 0.2 + +PhotonsMatching_Eta_Pt25toInf: + sample: Hgg + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Photons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 22" + - "{pt} >= 25" + object: + - "abs({eta}) < 3.0" + test_objects: + L1EG:default: "eta" + L1tkPhoton:NoIso: "eta" + L1tkPhoton:Iso: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency ($p_T > 25$ GeV)" + binning: + min: -3 + max: 3 + step: 0.2 diff --git a/configs/V42nano/object_performance/photons_trigger.yaml b/configs/V42nano/object_performance/photons_trigger.yaml new file mode 100644 index 00000000..899b0222 --- /dev/null +++ b/configs/V42nano/object_performance/photons_trigger.yaml @@ -0,0 +1,59 @@ +PhotonsTrigger_Barrel: + sample: Hgg + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 22" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1EG:default:barrel: "pt" + L1tkPhoton:NoIso:barrel: "pt" + L1tkPhoton:Iso:barrel: "pt" + thresholds: [10, 20, 30, 40] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (barrel, L1 $p_T > $ GeV)" + binning: + min: 0 + max: 100 + step: 1.5 + +PhotonsTrigger_Endcap: + sample: Hgg + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 22" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1EG:default:endcap: "pt" + L1tkPhoton:NoIso:endcap: "pt" + L1tkPhoton:Iso:endcap: "pt" + thresholds: [10, 20, 30, 40] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (endcap, L1 $p_T > $ GeV)" + binning: + min: 0 + max: 100 + step: 1.5 diff --git a/configs/V42nano/object_performance/tau_matching.yaml b/configs/V42nano/object_performance/tau_matching.yaml new file mode 100644 index 00000000..9acaea4c --- /dev/null +++ b/configs/V42nano/object_performance/tau_matching.yaml @@ -0,0 +1,53 @@ +TausMatchingBarrel: + sample: VBFHToTauTau + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "pt" + label: "Gen Taus" + cuts: + event: + # - "{dr_0.3} < 0.15" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnPuppiTau:default: "pt" + # L1hpsTau:default: "pt" + L1caloTau:default: "pt" + # L1nnCaloTau:default: "pt" +# L1caloTau:PtGe20: "Pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Barrel)" + binning: + min: 0 + max: 150 + step: 6 + +TausMatchingEndcap: + sample: VBFHToTauTau + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "pt" + label: "Gen Taus" + cuts: + event: + # - "{dr_0.3} < 0.15" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnPuppiTau:default: "pt" + # L1hpsTau:default: "pt" + L1caloTau:default: "pt" + # L1nnCaloTau:default: "pt" +# L1caloTau:PtGe20: "Pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Endcap)" + binning: + min: 0 + max: 150 + step: 6 diff --git a/configs/V42nano/object_performance/tau_matching_eta.yaml b/configs/V42nano/object_performance/tau_matching_eta.yaml new file mode 100644 index 00000000..c69b09a1 --- /dev/null +++ b/configs/V42nano/object_performance/tau_matching_eta.yaml @@ -0,0 +1,50 @@ +TauMatching_Eta_Pt40To100: + sample: VBFHToTauTau + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "eta" + label: "Gen Taus" + cuts: + event: + - "{pt} > 40" + - "{pt} < 100" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnPuppiTau:default: "eta" + # L1hpsTau:default: "eta" + L1caloTau:default: "eta" + # L1nnCaloTau:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (40-100 GeV)" + binning: + min: -3.0 + max: 3.0 + step: 0.2 + +TauMatching_Eta_Pt100ToInf: + sample: VBFHToTauTau + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "eta" + label: "Gen Taus" + cuts: + event: + - "{pt} > 100" + object: + - "abs({eta}) < 5" + test_objects: + L1nnPuppiTau:default: "eta" + # L1hpsTau:default: "eta" + L1caloTau:default: "eta" + # L1nnCaloTau:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>100 GeV)" + binning: + min: -3 + max: 3 + step: 0.2 diff --git a/configs/V42nano/object_performance/tau_trigger.yaml b/configs/V42nano/object_performance/tau_trigger.yaml new file mode 100644 index 00000000..91e61219 --- /dev/null +++ b/configs/V42nano/object_performance/tau_trigger.yaml @@ -0,0 +1,59 @@ +TauTriggerBarrel_90perc: + sample: VBFHToTauTau + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "pt" + label: "Gen Taus" + cuts: + event: + # - "{dr_0.3} < 0.15" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnPuppiTau:default:barrel: "pt" + # L1hpsTau:default:barrel: "pt" + L1caloTau:default:barrel: "pt" + # L1nnCaloTau:default:barrel: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (barrel, L1 $p_T > $ GeV)" + thresholds: [20, 30] + scalings: + method: "naive" + threshold: 0.90 + binning: + min: 0 + max: 150 + step: 6 + +TauTriggerEndcap_90perc: + sample: VBFHToTauTau + version: V42nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "pt" + label: "Gen Taus" + cuts: + event: + # - "{dr_0.3} < 0.15" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnPuppiTau:default:endcap: "pt" + # L1hpsTau:default:endcap: "pt" + L1caloTau:default:endcap: "pt" + # L1nnCaloTau:default:endcap: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (endcap, L1 $p_T > $ GeV)" + thresholds: [20, 30] + scalings: + method: "naive" + threshold: 0.90 + binning: + min: 0 + max: 150 + step: 6 diff --git a/configs/V42nano/objects/electrons.yaml b/configs/V42nano/objects/electrons.yaml new file mode 100644 index 00000000..cfacf196 --- /dev/null +++ b/configs/V42nano/objects/electrons.yaml @@ -0,0 +1,49 @@ +L1tkElectron: + match_dR: 0.15 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.479] + endcap: [1.479, 5] + ids: + NoIso: + label: "TkElectron" + cuts: + inclusive: + - "abs({eta}) < 2.4" + endcap: + - "({eleId} == 1) | ({pt} < 25)" + barrel: + - "{eleId} == 1" + NoIsoForIso: + # This id is exclusively used for the + # isoloation wp derivation + label: "TkElectron, no ID" + cuts: + inclusive: + - "abs({eta}) < 2.4" + Iso: + label: "TkIsoElectron" + cuts: + inclusive: + - "abs({eta}) < 2.4" + barrel: + - "abs({relIso}) < 0.13" + endcap: + - "abs({relIso}) < 0.28" + +L1EG: + match_dR: 0.2 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.479] + endcap: [1.479, 3.0] + label: "EG" + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 3.0" + barrel: + - "{eleId} == 1" + endcap: + - "{saId} == 1" diff --git a/configs/V42nano/objects/jets.yaml b/configs/V42nano/objects/jets.yaml new file mode 100644 index 00000000..d7bb0010 --- /dev/null +++ b/configs/V42nano/objects/jets.yaml @@ -0,0 +1,92 @@ +L1caloJet: + match_dR: 0.3 + label: "Calo Jet" + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + forward: [2.4, 5] + cuts: + inclusive: + - "abs({eta}) < 7" + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 7" + +L1puppiExtJetSC4: + match_dR: 0.35 + label: "Seeded Cone Extended PuppiJet" + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + forward: [2.4, 5] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 5" + bjetnn: + cuts: + inclusive: + - "abs({eta}) < 2.4" + - "{btagScore} > 0.71" + +L1puppiJetHisto: + match_dR: 0.3 + label: "Histogrammed PuppiJet" + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + forward: [2.4, 5] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 7" + +L1puppiJetSC4: + match_dR: 0.35 + label: "Seeded Cone PuppiJet" + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + forward: [2.4, 5] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 7" + +L1puppiJetSC8: + match_dR: 0.35 + label: "Seeded Cone PuppiJet 8" + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + forward: [2.4, 5] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 7" + +L1TrackJet: + match_dR: 0.4 + label: "Tracker Jet" + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 7" + + diff --git a/configs/V42nano/objects/met_ht_mht.yaml b/configs/V42nano/objects/met_ht_mht.yaml new file mode 100644 index 00000000..bb7611bd --- /dev/null +++ b/configs/V42nano/objects/met_ht_mht.yaml @@ -0,0 +1,57 @@ +# phase1PuppiHT: +# label: "Histogrammed Puppi HT" +# ids: +# default: {} + +# phase1PuppiMHT: +# label: "Phase1 Puppi MHT" +# ids: +# default: {} + +L1puppiMET: + label: "Puppi MET" + ids: + default: {} + +L1puppiMLMET: + label: "Puppi MLMET" + ids: + default: {} + +L1puppiJetSC4sums: + ids: + HT: + label: "SeededCone HT" + cuts: + inclusive: + - "{sumType} == 0" + MHT: + label: "SeededCone MHT" + cuts: + inclusive: + - "{sumType} == 1" + +L1puppiHistoJetSums: + ids: + HT: + label: "Histogrammed Puppi HT" + cuts: + inclusive: + - "{sumType} == 0" + MHT: + label: "Histogrammed Puppi MHT" + cuts: + inclusive: + - "{sumType} == 1" + +L1TrackHT: + ids: + HT: + label: "Tracker HT" + MHT: + label: "Tracker MHT" + +L1TrackMET: + label: "Tracker MET" + ids: + default: {} \ No newline at end of file diff --git a/configs/V42nano/objects/muons.yaml b/configs/V42nano/objects/muons.yaml new file mode 100644 index 00000000..08bd371a --- /dev/null +++ b/configs/V42nano/objects/muons.yaml @@ -0,0 +1,35 @@ +GenPart: + label: "Gen Muon" + eta_ranges: + inclusive: [0, 7] + ids: + gen_electron_default: + cuts: + inclusive: + - "(({statusFlags}>>7)&1) == 1" + + +L1gmtMuon: + label: "GMT Muon" + match_dR: 0.3 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 0.83] + overlap: [0.83, 1.24] + endcap: [1.24, 2.4] + ids: + default: {} + +L1gmtTkMuon: + label: "GMT TkMuon" + match_dR: 0.1 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 0.83] + overlap: [0.83, 1.24] + endcap: [1.24, 2.4] + ids: + default: + cuts: + inclusive: + - "({hwQual} > 0) | ({pt} > 8)" # quality criterion only to be appied for p_T < 8 GeV diff --git a/configs/V42nano/objects/photons.yaml b/configs/V42nano/objects/photons.yaml new file mode 100644 index 00000000..12d51f0c --- /dev/null +++ b/configs/V42nano/objects/photons.yaml @@ -0,0 +1,29 @@ +L1tkPhoton: + match_dR: 0.15 + eta_ranges: + inclusive: [0, 5] + barrel: [0, 1.479] + endcap: [1.479, 2.4] + ids: + NoIso: + label: "L1tkPhoton" + cuts: + inclusive: + - "abs({eta}) < 2.4" + - "{pt} > 5" + barrel: + - "{eleId} == 1" + endcap: + - "{phoId} == 1" + Iso: + label: "L1tkIsoPhoton" + cuts: + inclusive: + - "abs({eta}) < 2.4" + - "{pt} > 5" + barrel: + - "abs({relIso}) < 0.25" + - "{eleId} == 1" + endcap: + - "abs({relIso}) < 0.205" + - "{phoId} == 1" diff --git a/configs/V42nano/objects/taus.yaml b/configs/V42nano/objects/taus.yaml new file mode 100644 index 00000000..11e49a74 --- /dev/null +++ b/configs/V42nano/objects/taus.yaml @@ -0,0 +1,61 @@ +L1nnPuppiTau: + label: "NN Tau" + match_dR: 0.1 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 2.4" + # - "{passLooseNN}==1" + # Current IB (22 Feb recipe) does not have updated WP, so cut on NN score rather than checking passLooseNN + - "{chargedIso} > 0.22" + +L1hpsTau: + label: "HPS Tau" + match_dR: 0.1 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 2.4" + +L1caloTau: + label: "Calo Tau" + match_dR: 0.3 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 2.4" + PtGe20: + label: "Calo Tau, pt > 20" + cuts: + inclusive: + - "abs({eta}) < 2.4" + - "{pt} > 20" + +L1nnCaloTau: + label: "NN Calo Tau" + match_dR: 0.3 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 2.4" + - "{hwQual}==3" diff --git a/configs/V43nano/caching_signal.yaml b/configs/V43nano/caching_signal.yaml new file mode 100644 index 00000000..cb11626e --- /dev/null +++ b/configs/V43nano/caching_signal.yaml @@ -0,0 +1,109 @@ +V43nano: + HHToBBTauTau: + ntuple_path: /eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/alobanov/phase2/menu/ntuples/14X/v38/GluGluToHHTo2B2Tau_node_SM_TuneCP5_14TeV-madgraph-pythia8/HHTo2B2Tau_131_200PU_IBv9_wTT/240412_210926/0000/*.root + trees_branches: + Events: + # PV + L1PV: [z0] + ## EG + L1tkPhoton: "all" + L1tkElectron: "all" + L1EGbarrel: "all" + L1EGendcap: "all" + ## MUONS + L1gmtTkMuon: "all" + L1gmtMuon: "all" # aka gmtMuon + L1gmtDispMuon: "all" + ## TAUS + L1nnPuppiTau: "all" + L1hpsTau: "all" + L1caloTau: "all" + L1nnCaloTau: "all" + ## MET/Sums + L1puppiMET: [pt, phi] + L1puppiMLMET: [pt] + L1puppiJetSC4sums: [pt, phi] + L1puppiHistoJetSums: [pt, phi] + # # jets + L1puppiJetSC4: [pt, eta, phi] + L1puppiJetSC8: [pt, eta, phi] + L1puppiExtJetSC4: [pt, eta, phi, btagScore] + L1puppiJetHisto: [pt, eta, phi] + L1caloJet: [pt, eta, phi] + ## track-only + L1TrackMET: [pt] + L1TrackHT: [ht, mht] + L1TrackJet: [pt, eta, phi] + L1TrackTripletWord: [pt] + L1ExtTrackHT: [ht] + + HtoLLPto4B_M125_Phi60_ctau100: + ntuple_path: /eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/alobanov/phase2/menu/ntuples/14X/v38/HiddenGluGluH_mH-125_Phi-60_ctau-100_bbbb_TuneCP5_14TeV-pythia8/*/*/*/*.root + trees_branches: + Events: + # PV + L1PV: [z0] + ## EG + L1tkPhoton: "all" + L1tkElectron: "all" + L1EGbarrel: "all" + L1EGendcap: "all" + ## MUONS + L1gmtTkMuon: "all" + L1gmtMuon: "all" # aka gmtMuon + L1gmtDispMuon: "all" + ## TAUS + L1nnPuppiTau: "all" + L1hpsTau: "all" + L1caloTau: "all" + L1nnCaloTau: "all" + ## MET/Sums + L1puppiMET: [pt, phi] + L1puppiMLMET: [pt] + L1puppiJetSC4sums: [pt, phi] + L1puppiHistoJetSums: [pt, phi] + # # jets + L1puppiJetSC4: [pt, eta, phi] + L1puppiJetSC8: [pt, eta, phi] + L1puppiExtJetSC4: [pt, eta, phi, btagScore] + L1puppiJetHisto: [pt, eta, phi] + L1caloJet: [pt, eta, phi] + ## track-only + L1TrackMET: [pt] + L1TrackHT: [ht, mht] + L1TrackJet: [pt, eta, phi] + L1TrackTripletWord: [pt] + L1ExtTrackHT: [ht] +# # #### LLP +# # HtoLLPto4mu_Ctau900mm: +# # ntuple_path: /eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/alobanov/phase2/menu/ntuples/14X/v36/HTo2LongLivedTo4mu_MH-125_MFF-12_CTau-900mm_TuneCP5_14TeV-pythia8/HtoLLPto4mu_Ctau90cm_131_L1Fix_myIBv6_noTkTrg_resub/240403_222836/0000/L1Nano_*.root +# # trees_branches: +# # Events: +# # GenPart: "all" +# # ## Muons +# # L1gmtTkMuon: "all" +# # L1gmtMuon: "all" +# # L1gmtDispMuon: "all" +# # ## TF Muons +# # L1MuonKMTF: "all" +# # L1MuonOMTF: "all" +# # L1MuonEMTF: "all" +# # L1DispMuonKMTF: "all" +# # L1DispMuonOMTF: "all" +# # L1DispMuonEMTF: "all" +# HtoLLPto4b_M125_Phi60_ctau100: +# ntuple_path: /eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/alobanov/phase2/menu/ntuples/14X/v37/HiddenGluGluH_mH-125_Phi-60_ctau-100_bbbb_TuneCP5_14TeV-pythia8/HiddenHto4b_M125_Phi60_ctau100_IBv8_wTT/240411_082132/0000/*.root +# trees_branches: +# Events: +# GenJet: "all" +# # # jets +# L1puppiJetSC4sums: [pt, phi] +# # L1puppiJetSC4: [pt, eta, phi] +# # L1puppiJetSC8: [pt, eta, phi] +# # L1puppiExtJetSC4: [pt, eta, phi, btagScore] +# # L1caloJet: [pt, eta, phi] +# ## track-only +# # L1TrackMET: [pt] +# L1TrackHT: [ht, mht] +# L1ExtTrackHT: [ht, mht] +# # L1TrackJet: [pt, eta, phi] diff --git a/configs/V43nano/object_performance/tau_genTau_test.yaml b/configs/V43nano/object_performance/tau_genTau_test.yaml new file mode 100644 index 00000000..a7514aec --- /dev/null +++ b/configs/V43nano/object_performance/tau_genTau_test.yaml @@ -0,0 +1,117 @@ +# GenTau_TausMatchingBarrel_highPt: +# sample: VBFHToTauTau +# version: V43nano +# match_test_to_ref: True +# reference_object: +# object: "GenPart" +# x_arg: "pt" +# label: "Gen Taus" +# cuts: +# event: +# - "(({statusFlags}>>7)&1) == 1" +# - "abs({pdgId}) == 15" +# - "abs({eta}) < 1.5" +# object: +# - "abs({eta}) < 2.4" +# test_objects: +# L1nnPuppiTau:default: "pt" +# L1hpsTau:default: "pt" +# L1caloTau:default: "pt" +# L1nnCaloTau:default: "pt" +# # L1caloTau:PtGe20: "Pt" +# xlabel: "Gen. $p_T$ (GeV)" +# ylabel: "Matching Efficiency (Barrel)" +# binning: +# min: 0 +# max: 400 +# step: 20 + +# GenTau_TausMatchingEndcap_highPt: +# sample: VBFHToTauTau +# version: V43nano +# match_test_to_ref: True +# reference_object: +# object: "GenPart" +# x_arg: "pt" +# label: "Gen Taus" +# cuts: +# event: +# - "(({statusFlags}>>7)&1) == 1" +# - "abs({pdgId}) == 15" +# - "abs({eta}) > 1.5" +# object: +# - "abs({eta}) < 2.4" +# test_objects: +# L1nnPuppiTau:default: "pt" +# L1hpsTau:default: "pt" +# L1caloTau:default: "pt" +# L1nnCaloTau:default: "pt" +# # L1caloTau:PtGe20: "Pt" +# xlabel: "Gen. $p_T$ (GeV)" +# ylabel: "Matching Efficiency (Endcap)" +# binning: +# min: 0 +# max: 400 +# step: 20 + +# # GenTau_# TauTriggerBarrel_90perc_highPt: +# # sample: VBFHToTauTau +# # version: V43nano +# # match_test_to_ref: True +# # reference_object: +# # object: "GenPart" +# # x_arg: "pt" +# # label: "Gen Taus" +# # cuts: +# # event: +# # - "(({statusFlags}>>7)&1) == 1" +# # - "abs({pdgId}) == 15" +# # - "abs({eta}) < 1.5" +# # object: +# # - "abs({eta}) < 2.4" +# # test_objects: +# # L1nnPuppiTau:default:barrel: "pt" +# # L1hpsTau:default:barrel: "pt" +# # L1caloTau:default:barrel: "pt" +# # L1nnCaloTau:default:barrel: "pt" +# # xlabel: "Gen. pT (GeV)" +# # ylabel: "Trigger Efficiency (barrel, L1 $p_T > $ GeV)" +# # thresholds: [30, 50] +# # # scalings: +# # # method: "naive" +# # # threshold: 0.90 +# # binning: +# # min: 0 +# # max: 400 +# # step: 10 + +# # GenTau_# TauTriggerEndcap_90perc_highPt: +# # sample: VBFHToTauTau +# # version: V43nano +# # match_test_to_ref: True +# # reference_object: +# # object: "GenPart" +# # x_arg: "pt" +# # label: "Gen Taus" +# # cuts: +# # event: +# # - "(({statusFlags}>>7)&1) == 1" +# # - "abs({pdgId}) == 15" +# # - "abs({eta}) > 1.5" +# # object: +# # - "abs({eta}) < 2.4" +# # test_objects: +# # L1nnPuppiTau:default:endcap: "pt" +# # L1hpsTau:default:endcap: "pt" +# # L1caloTau:default:endcap: "pt" +# # L1nnCaloTau:default:endcap: "pt" +# # xlabel: "Gen. pT (GeV)" +# # ylabel: "Trigger Efficiency (endcap, L1 $p_T > $ GeV)" +# # thresholds: [30, 50] +# # # scalings: +# # # method: "naive" +# # # threshold: 0.90 +# # binning: +# # min: 0 +# # max: 400 +# # step: 10 diff --git a/configs/V43nano/object_performance/tkmuon_matching.yaml b/configs/V43nano/object_performance/tkmuon_matching.yaml new file mode 100644 index 00000000..d80facb2 --- /dev/null +++ b/configs/V43nano/object_performance/tkmuon_matching.yaml @@ -0,0 +1,85 @@ +TkMuonsMatchingBarrel: + sample: DYLL_M50 + version: V43nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) < 0.83" + test_objects: + # L1gmtMuon:default:barrel: "pt" + L1gmtTkMuon:default:barrel: "pt" + L1gmtTkMuon:VLoose:barrel: "pt" + L1gmtTkMuon:Loose:barrel: "pt" + L1gmtTkMuon:Medium:barrel: "pt" + L1gmtTkMuon:Tight:barrel: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (barrel)" + binning: + min: 0 + max: 100 + step: 3 + +TkMuonsMatchingOverlap: + sample: DYLL_M50 + version: V43nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) > 0.83" + - "abs({eta}) < 1.24" + test_objects: + # L1gmtMuon:default:overlap: "pt" + L1gmtTkMuon:default:overlap: "pt" + L1gmtTkMuon:VLoose:overlap: "pt" + L1gmtTkMuon:Loose:overlap: "pt" + L1gmtTkMuon:Medium:overlap: "pt" + L1gmtTkMuon:Tight:overlap: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (overlap)" + binning: + min: 0 + max: 100 + step: 3 + +TkMuonsMatchingEndcap: + sample: DYLL_M50 + version: V43nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) > 1.24" + - "abs({eta}) < 2.4" + test_objects: + # L1gmtMuon:default:endcap: "pt" + L1gmtTkMuon:default:endcap: "pt" + L1gmtTkMuon:VLoose:endcap: "pt" + L1gmtTkMuon:Loose:endcap: "pt" + L1gmtTkMuon:Medium:endcap: "pt" + L1gmtTkMuon:Tight:endcap: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (endcap)" + binning: + min: 0 + max: 100 + step: 3 diff --git a/configs/V43nano/object_performance/tkmuon_matching_eta.yaml b/configs/V43nano/object_performance/tkmuon_matching_eta.yaml new file mode 100644 index 00000000..8b6497d3 --- /dev/null +++ b/configs/V43nano/object_performance/tkmuon_matching_eta.yaml @@ -0,0 +1,58 @@ +TkMuonsMatching_Eta_Pt2to5: + sample: DYLL_M50 + version: V43nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + - "{pt} > 2" + - "{pt} < 5" + object: + - "abs({eta}) < 2.4" + test_objects: + # L1gmtMuon:default: "eta" + L1gmtTkMuon:default: "eta" + L1gmtTkMuon:VLoose: "eta" + L1gmtTkMuon:Loose: "eta" + L1gmtTkMuon:Medium: "eta" + L1gmtTkMuon:Tight: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (2-5 GeV)" + binning: + min: -3 + max: 3 + step: 0.2 + +TkMuonsMatching_Eta_Pt15toInf: + sample: DYLL_M50 + version: V43nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + - "{pt} > 15" + object: + - "abs({eta}) < 2.4" + test_objects: + # L1gmtMuon:default: "eta" + L1gmtTkMuon:default: "eta" + L1gmtTkMuon:VLoose: "eta" + L1gmtTkMuon:Loose: "eta" + L1gmtTkMuon:Medium: "eta" + L1gmtTkMuon:Tight: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>15 GeV)" + binning: + min: -3 + max: 3 + step: 0.2 diff --git a/configs/V43nano/object_performance/tkmuon_trigger.yaml b/configs/V43nano/object_performance/tkmuon_trigger.yaml new file mode 100644 index 00000000..6b0eaa84 --- /dev/null +++ b/configs/V43nano/object_performance/tkmuon_trigger.yaml @@ -0,0 +1,96 @@ +TkMuonsTrigger_Barrel: + sample: DYLL_M50 + version: V43nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) < 0.83" + test_objects: + # L1gmtMuon:default:barrel: "pt" + # L1gmtTkMuon:default:barrel: "pt" + L1gmtTkMuon:VLoose:barrel: "pt" + L1gmtTkMuon:Loose:barrel: "pt" + L1gmtTkMuon:Medium:barrel: "pt" + L1gmtTkMuon:Tight:barrel: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (barrel, L1 $p_T > 20$ GeV)" + thresholds: [20, 25] + scalings: + method: "naive" + threshold: 0.95 + binning: + min: 0 + max: 50 + step: 1.5 + +TkMuonsTrigger_Overlap: + sample: DYLL_M50 + version: V43nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) > 0.83" + - "abs({eta}) < 1.24" + test_objects: + # L1gmtMuon:default:overlap: "pt" + # L1gmtTkMuon:default:overlap: "pt" + L1gmtTkMuon:VLoose:overlap: "pt" + L1gmtTkMuon:Loose:overlap: "pt" + L1gmtTkMuon:Medium:overlap: "pt" + L1gmtTkMuon:Tight:overlap: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (overlap, L1 $p_T > 20$ GeV)" + thresholds: [20, 25] + scalings: + method: "naive" + threshold: 0.95 + binning: + min: 0 + max: 50 + step: 1.5 + +TkMuonsTrigger_Endcap: + sample: DYLL_M50 + version: V43nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) > 1.24" + test_objects: + # L1gmtMuon:default:endcap: "pt" + # L1gmtTkMuon:default:endcap: "pt" + L1gmtTkMuon:VLoose:endcap: "pt" + L1gmtTkMuon:Loose:endcap: "pt" + L1gmtTkMuon:Medium:endcap: "pt" + L1gmtTkMuon:Tight:endcap: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (endcap, L1 $p_T > 20$ GeV)" + thresholds: [20, 25] + scalings: + method: "naive" + threshold: 0.95 + binning: + min: 0 + max: 50 + step: 1.5 diff --git a/configs/V44nano/README.md b/configs/V44nano/README.md new file mode 100644 index 00000000..2fdfa0f2 --- /dev/null +++ b/configs/V44nano/README.md @@ -0,0 +1,5 @@ +# V44 DT12x version + +Based on https://github.com/cms-l1-dpg/Phase2-L1Nano/tree/v38_1400pre3v9 + +Uses the Annual Review branch 1400pre3v9 and includes rerunning the TrackTrigger. \ No newline at end of file diff --git a/configs/V44nano/caching.yaml b/configs/V44nano/caching.yaml new file mode 100644 index 00000000..c8a4ab76 --- /dev/null +++ b/configs/V44nano/caching.yaml @@ -0,0 +1,98 @@ +V44nano: + # Hgg: + # ntuple_path: /eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/roward/phase2/menu/ntuples/Spring24/142pre1/v44/GluGluHToGG_M-125_TuneCP5_14TeV-powheg-pythia8/Hto2gg_Spring24_200PU_V44_reL1wTT/*/0000/*.root + # trees_branches: + # Events: + # GenPart: [pt, eta, phi, pdgId, statusFlags] + # L1tkPhoton: "all" + # L1EGbarrel: "all" + # L1EGendcap: "all" + # DYLL_M50: + # ntuple_path: /eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/roward/phase2/menu/ntuples/Spring24/142pre1/v44/DYToLL_M-50_TuneCP5_14TeV-pythia8/DY_M50_Spring24_200PU_V44_reL1wTT/*/0000/*.root + # trees_branches: + # Events: + # GenPart: "all" + # ## EG + # L1tkElectron: "all" + # L1EGbarrel: "all" + # L1EGendcap: "all" + # ## Muons + # L1gmtTkMuon: "all" + # L1gmtMuon: "all" + # L1gmtDispMuon: "all" + # ## TF Muons + # L1MuonKMTF: "all" + # L1MuonOMTF: "all" + # L1MuonEMTF: "all" + # L1DispMuonKMTF: "all" + # L1DispMuonOMTF: "all" + # L1DispMuonEMTF: "all" + TT: + ntuple_path: /eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/roward/phase2/menu/ntuples/Spring24/142pre1/v44/TT_TuneCP5_14TeV-powheg-pythia8/TT_Spring24_200PU_V44_reL1wTT/*/0000/*.root + trees_branches: + Events: + # gen + GenJet: [pt, eta, phi, partonFlavour] + GenJetAK8: [pt, eta, phi] + GenMET: "all" + # # sums + L1puppiMET: [pt, phi] + L1puppiMLMET: [pt] + L1puppiJetSC4sums: [pt, phi] + L1puppiHistoJetSums: [pt, phi] + # # jets + L1puppiJetSC4: [pt, eta, phi] + L1puppiJetSC8: [pt, eta, phi] + L1puppiExtJetSC4: [pt, eta, phi, btagScore] + L1puppiJetHisto: [pt, eta, phi] + L1caloJet: [pt, eta, phi] + L1TrackMET: [pt] + L1TrackHT: [ht, mht] + L1TrackJet: [pt, eta, phi] + VBFHToTauTau: + ntuple_path: /eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/roward/phase2/menu/ntuples/Spring24/142pre1/v44/VBF_HToTauTau_M-125_TuneCP5_14TeV-powheg-pythia8/VBFHtoTaus_Spring24_200PU_V44_reL1wTT/*/0000/*.root + trees_branches: + Events: + GenPart: [pt, eta, phi, pdgId, statusFlags] + GenVisTau: "all" + L1nnPuppiTau: "all" + L1hpsTau: "all" + L1caloTau: "all" + L1nnCaloTau: "all" + MinBias: + ntuple_path: /eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/roward/phase2/menu/ntuples/Spring24/142pre1/v44/MinBias_TuneCP5_14TeV-pythia8/MinBias_Spring24_200PU_V44_reL1wTT/*/0000/*.root + trees_branches: + Events: + # PV + L1PV: [z0] + ## EG + L1tkPhoton: "all" + L1tkElectron: "all" + L1EGbarrel: "all" + L1EGendcap: "all" + ## MUONS + L1gmtTkMuon: "all" + L1gmtMuon: "all" # aka gmtMuon + L1gmtDispMuon: "all" + ## TAUS + L1nnPuppiTau: "all" + L1hpsTau: "all" + L1caloTau: "all" + L1nnCaloTau: "all" + ## MET/Sums + L1puppiMET: [pt, phi] + L1puppiMLMET: [pt] + L1puppiJetSC4sums: [pt, phi] + L1puppiHistoJetSums: [pt, phi] + # # jets + L1puppiJetSC4: [pt, eta, phi] + L1puppiJetSC8: [pt, eta, phi] + L1puppiExtJetSC4: [pt, eta, phi, btagScore] + L1puppiJetHisto: [pt, eta, phi] + L1caloJet: [pt, eta, phi] + ## track-only + L1TrackMET: [pt] + L1TrackHT: [ht, mht] + L1TrackJet: [pt, eta, phi] + L1TrackTripletWord: [pt] + L1ExtTrackHT: [ht] diff --git a/configs/V44nano/object_performance/disp_ht.yaml b/configs/V44nano/object_performance/disp_ht.yaml new file mode 100644 index 00000000..8c83784f --- /dev/null +++ b/configs/V44nano/object_performance/disp_ht.yaml @@ -0,0 +1,53 @@ +HtoLLPto4b_M125_Phi60_ctau100_promptHT: + sample: HtoLLPto4b_M125_Phi60_ctau100 + version: V44nano + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen HT" + trafo: "HT" + cuts: + object: + - "abs({eta}) < 2.4" + - "{pt} > 30" + test_objects: + L1puppiJetSC4sums:HT: "pt" + L1TrackHT:HT: "ht" + L1ExtTrackHT:HT: "ht" + thresholds: [50, 100] + # scalings: + # method: "naive" + # threshold: 0.90 + xlabel: "Gen. HT (GeV)" + ylabel: "Trigger Efficiency ( GeV)" + binning: + min: 0 + max: 750 + step: 20 + +# HtoLLPto4b_M125_Phi60_ctau100_dispHT: +# sample: HtoLLPto4b_M125_Phi60_ctau100 +# version: V44nano +# reference_object: +# object: "GenJet" +# x_arg: "pt" +# label: "Gen HT" +# trafo: "HT" +# cuts: +# object: +# - "abs({eta}) < 2.4" +# - "{pt} > 30" +# test_objects: +# L1puppiJetSC4sums:HT: "pt" +# L1TrackHT:HT: "ht" +# L1ExtTrackHT:HT: "ht" +# thresholds: [350] +# scalings: +# method: "naive" +# threshold: 0.90 +# xlabel: "Gen. HT (GeV)" +# ylabel: "Trigger Efficiency ( GeV)" +# binning: +# min: 0 +# max: 750 +# step: 20 diff --git a/configs/V44nano/object_performance/electron_iso.yaml b/configs/V44nano/object_performance/electron_iso.yaml new file mode 100644 index 00000000..64a1cf81 --- /dev/null +++ b/configs/V44nano/object_performance/electron_iso.yaml @@ -0,0 +1,50 @@ +ElectronsIsolation_Barrel: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + iso_vs_efficiency: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "abs({eta}) < 1.479" + object: + - "abs({eta}) < 1.479" + test_objects: + L1tkElectron:NoIsoForIso: "relIso" + xlabel: "Isolation" + ylabel: "Efficiency (Barrel)" + binning: + min: 0 + max: 0.5 + step: 0.005 + +ElectronsIsolation_Endcap: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + iso_vs_efficiency: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "abs({eta}) > 1.479" + object: + - "abs({eta}) < 2.4" + test_objects: + L1tkElectron:NoIsoForIso: "relIso" + xlabel: "Isolation" + ylabel: "Efficiency (Endcap)" + binning: + min: 0 + max: 0.5 + step: 0.005 + diff --git a/configs/V44nano/object_performance/electron_matching.yaml b/configs/V44nano/object_performance/electron_matching.yaml new file mode 100644 index 00000000..ed947855 --- /dev/null +++ b/configs/V44nano/object_performance/electron_matching.yaml @@ -0,0 +1,105 @@ +ElectronsMatchingBarrel: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1EG:default: "pt" + L1tkElectron:NoIso: "pt" + # L1tkElectron:NoIsoNoLowPtID: "pt" + L1tkElectron:Iso: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Barrel)" + binning: + min: 0 + max: 100 + step: 3 + +# ElectronsMatchingBarrel_wPrunedGenPart: +# sample: DYLL_M50 +# version: V44nano +# match_test_to_ref: True +# reference_object: +# object: "GenPart" +# x_arg: "pt" +# label: "Gen Electrons" +# cuts: +# event: +# - "(({statusFlags}>>7)&1) == 1" +# - "abs({pdgId}) == 11" +# - "abs({eta}) < 1.5" +# object: +# - "abs({eta}) < 2.4" +# test_objects: +# L1EG:default: "pt" +# L1tkElectron:NoIso: "pt" +# L1tkElectron:Iso: "pt" +# xlabel: "Gen. $p_T$ (GeV)" +# ylabel: "Matching Efficiency (Barrel)" +# binning: +# min: 0 +# max: 100 +# step: 3 + +ElectronsMatchingEndcap: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1EG:default: "pt" + L1tkElectron:NoIso: "pt" + # L1tkElectron:NoIsoNoLowPtID: "pt" + L1tkElectron:Iso: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Endcap)" + binning: + min: 0 + max: 100 + step: 3 + +# ElectronsMatchingEndcap_wPrunedGenPart: +# sample: DYLL_M50 +# version: V44nano +# match_test_to_ref: True +# reference_object: +# object: "GenPart" +# x_arg: "pt" +# label: "Gen Electrons" +# cuts: +# event: +# - "(({statusFlags}>>7)&1) == 1" +# - "abs({pdgId}) == 11" +# - "abs({eta}) > 1.5" +# object: +# - "abs({eta}) < 2.4" +# test_objects: +# L1EG:default: "pt" +# L1tkElectron:NoIso: "pt" +# L1tkElectron:Iso: "pt" +# xlabel: "Gen. $p_T$ (GeV)" +# ylabel: "Matching Efficiency (Endcap)" +# binning: +# min: 0 +# max: 100 +# step: 3 diff --git a/configs/V44nano/object_performance/electron_matching_eta.yaml b/configs/V44nano/object_performance/electron_matching_eta.yaml new file mode 100644 index 00000000..76c9c1a5 --- /dev/null +++ b/configs/V44nano/object_performance/electron_matching_eta.yaml @@ -0,0 +1,54 @@ +ElectronsMatching_Eta_Pt10to25: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "{pt} < 25" + - "{pt} > 10" + object: + - "abs({eta}) < 3.0" + test_objects: + L1EG:default: "eta" + L1tkElectron:NoIso: "eta" + # L1tkElectron:NoIsoNoLowPtID: "eta" + L1tkElectron:Iso: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency ($10 < p_T < 25$ GeV)" + binning: + min: -3 + max: 3 + step: 0.2 + +ElectronsMatching_Eta_Pt25toInf: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "{pt} > 25" + object: + - "abs({eta}) < 3.0" + test_objects: + L1EG:default: "eta" + L1tkElectron:NoIso: "eta" + # L1tkElectron:NoIsoNoLowPtID: "eta" + L1tkElectron:Iso: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency ($p_T > 25$ GeV)" + binning: + min: -3 + max: 3 + step: 0.2 diff --git a/configs/V44nano/object_performance/electron_purity.yaml b/configs/V44nano/object_performance/electron_purity.yaml new file mode 100644 index 00000000..8cd615f2 --- /dev/null +++ b/configs/V44nano/object_performance/electron_purity.yaml @@ -0,0 +1,53 @@ +# Purity_ElectronsBarrel: +# sample: DYLL_M50 +# version: V44nano +# match_test_to_ref: True +# reference_object: +# object: "L1tkElectron" +# x_arg: "pt" +# label: "L1tkElectron" +# cuts: +# event: +# - "{eleId} == 1" +# - "abs({eta}) < 1.5" +# object: +# - "abs({eta}) < 2.4" +# test_objects: +# GenPart:electron: "pt" +# L1EG:default: "pt" +# # L1tkElectron:NoIso: "pt" +# # L1tkElectron:NoIsoNoLowPtID: "pt" +# # L1tkElectron:Iso: "pt" +# xlabel: "L1 TkEle. $p_T$ (GeV)" +# ylabel: "Matching Efficiency (Barrel)" +# binning: +# min: 0 +# max: 100 +# step: 3 + +Purity_ElectronsEndcap: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "L1tkElectron" + x_arg: "pt" + label: "L1tkElectron" + cuts: + event: + - "{eleId} == 1" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + GenPart:electron: "pt" + L1EG:default: "pt" + # L1tkElectron:NoIso: "pt" + # L1tkElectron:NoIsoNoLowPtID: "pt" + # L1tkElectron:Iso: "pt" + xlabel: "L1 TkEle. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Barrel)" + binning: + min: 0 + max: 100 + step: 3 diff --git a/configs/V44nano/object_performance/electron_trigger.yaml b/configs/V44nano/object_performance/electron_trigger.yaml new file mode 100644 index 00000000..66dba610 --- /dev/null +++ b/configs/V44nano/object_performance/electron_trigger.yaml @@ -0,0 +1,61 @@ +ElectronsTriggerBarrel: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.8" + test_objects: + L1EG:default:barrel: "pt" + L1tkElectron:NoIso:barrel: "pt" + # L1tkElectron:NoIsoNoLowPtID:barrel: "pt" + L1tkElectron:Iso:barrel: "pt" + thresholds: [10, 20, 30, 40] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (barrel, L1 $p_T > $ GeV)" + binning: + min: 0 + max: 100 + step: 1.5 + +ElectronsTriggerEndcap: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Electrons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.8" + test_objects: + L1EG:default:endcap: "pt" + L1tkElectron:NoIso:endcap: "pt" + # L1tkElectron:NoIsoNoLowPtID:endcap: "pt" + L1tkElectron:Iso:endcap: "pt" + thresholds: [10, 20, 30, 40] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (endcap, L1 $p_T > $ GeV)" + binning: + min: 0 + max: 100 + step: 1.5 diff --git a/configs/V44nano/object_performance/jets_matching.yaml b/configs/V44nano/object_performance/jets_matching.yaml new file mode 100644 index 00000000..cff6b52f --- /dev/null +++ b/configs/V44nano/object_performance/jets_matching.yaml @@ -0,0 +1,118 @@ +JetMatchingBarrel: + sample: TT + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetHisto:default: "pt" + L1puppiJetSC4:default: "pt" + L1caloJet:default: "pt" + L1TrackJet:default: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (barrel)" + binning: + min: 0 + max: 500 + step: 10 + +JetMatchingEndcap: + sample: TT + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetHisto:default: "pt" + L1puppiJetSC4:default: "pt" + L1caloJet:default: "pt" + L1TrackJet:default: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency ( GeV, endcap)" + binning: + min: 0 + max: 500 + step: 10 + +JetMatchingForward: + version: V44nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 2.4" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetHisto:default: "pt" + L1puppiJetSC4:default: "pt" + L1caloJet:default: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency ( GeV, forward)" + binning: + min: 0 + max: 500 + step: 10 + + +JetMatchingBarrelSC8: + sample: TT + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "pt" + label: "Gen AK8 Jets" + cuts: + event: + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetSC8:default:barrel: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency ( GeV, barrel)" + binning: + min: 0 + max: 500 + step: 10 + +JetMatchingEndcapSC8: + sample: TT + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "pt" + label: "Gen AK8 Jets" + cuts: + event: + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetSC8:default:endcap: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency ( GeV, endcap)" + binning: + min: 0 + max: 500 + step: 10 \ No newline at end of file diff --git a/configs/V44nano/object_performance/jets_matching_eta.yaml b/configs/V44nano/object_performance/jets_matching_eta.yaml new file mode 100644 index 00000000..89ce4953 --- /dev/null +++ b/configs/V44nano/object_performance/jets_matching_eta.yaml @@ -0,0 +1,94 @@ +JetMatching_Eta_Pt40To100: + sample: TT + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 40" + - "{pt} < 100" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetHisto:default: "eta" + L1puppiJetSC4:default: "eta" + L1caloJet:default: "eta" + L1TrackJet:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (40-100 GeV)" + binning: + min: -5 + max: 5 + step: 0.25 + +JetMatching_Eta_Pt100ToInf: + sample: TT + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 100" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetHisto:default: "eta" + L1puppiJetSC4:default: "eta" + L1caloJet:default: "eta" + L1TrackJet:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>100 GeV)" + binning: + min: -5 + max: 5 + step: 0.25 + +JetMatching_Eta_Pt100ToInf_extEta: + sample: TT + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 100" + object: + - "abs({eta}) < 7" + test_objects: + L1caloJet:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>100 GeV)" + binning: + min: -5.5 + max: 5.5 + step: 0.25 + +JetMatching_Eta_SC8_Pt100ToInf: + sample: TT + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 100" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetSC8:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>100 GeV)" + binning: + min: -5 + max: 5 + step: 0.25 \ No newline at end of file diff --git a/configs/V44nano/object_performance/jets_matching_wBTag.yaml b/configs/V44nano/object_performance/jets_matching_wBTag.yaml new file mode 100644 index 00000000..d9409a7e --- /dev/null +++ b/configs/V44nano/object_performance/jets_matching_wBTag.yaml @@ -0,0 +1,136 @@ +JetMatching_Eta_Pt40To100_ExtendedVsRegular: + sample: TT + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 40" + - "{pt} < 100" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetSC4:default: "eta" + L1puppiExtJetSC4:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (40-100 GeV)" + binning: + min: -5 + max: 5 + step: 0.25 + +JetMatching_Eta_Pt100ToInf_ExtendedVsRegular: + sample: TT + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 100" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetSC4:default: "eta" + L1puppiExtJetSC4:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>100 GeV)" + binning: + min: -5 + max: 5 + step: 0.25 + +JetMatching_Eta_Pt30ToInf_genBJets: + sample: TT + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 30" + - "abs({partonFlavour}) == 5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiExtJetSC4:bjetnn: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>30 GeV)" + binning: + min: -2.4 + max: 2.4 + step: 0.25 + +JetMatching_Eta_Pt30ToInf_genNotBJets: + sample: TT + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "eta" + label: "Gen Jets" + cuts: + event: + - "{pt} > 30" + - "abs({partonFlavour}) != 5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiExtJetSC4:bjetnn: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>30 GeV)" + binning: + min: -2.4 + max: 2.4 + step: 0.25 + +JetMatching_Pt_Pt30ToInf_genBJets: + sample: TT + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({partonFlavour}) == 5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiExtJetSC4:bjetnn: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency" + binning: + min: 30 + max: 200 + step: 10 + +JetMatching_Pt_Pt30ToInf_genNotBJets: + sample: TT + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({partonFlavour}) != 5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiExtJetSC4:bjetnn: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency" + binning: + min: 30 + max: 200 + step: 10 diff --git a/configs/V44nano/object_performance/jets_sc8_trigger.yaml b/configs/V44nano/object_performance/jets_sc8_trigger.yaml new file mode 100644 index 00000000..e4a053b1 --- /dev/null +++ b/configs/V44nano/object_performance/jets_sc8_trigger.yaml @@ -0,0 +1,77 @@ +JetTurnonBarrelSC8: + version: V44nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetSC8:default:barrel: "pt" + thresholds: [150] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, barrel)" + binning: + min: 0 + max: 500 + step: 10 + +JetTurnonEndcapSC8: + version: V44nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1puppiJetSC8:default:endcap: "pt" + thresholds: [150] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, endcap)" + binning: + min: 0 + max: 500 + step: 10 + +JetTurnonForwardSC8: + version: V44nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJetAK8" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 2.4" + object: + - "abs({eta}) < 5" + test_objects: + L1puppiJetSC8:default:forward: "pt" + thresholds: [150] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, forward)" + binning: + min: 0 + max: 500 + step: 10 diff --git a/configs/V44nano/object_performance/jets_trigger.yaml b/configs/V44nano/object_performance/jets_trigger.yaml new file mode 100644 index 00000000..81a5a482 --- /dev/null +++ b/configs/V44nano/object_performance/jets_trigger.yaml @@ -0,0 +1,85 @@ +JetTurnonBarrel: + version: V44nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + # L1puppiJetHisto:default:barrel: "pt" + L1puppiJetSC4:default:barrel: "pt" + L1caloJet:default:barrel: "pt" + L1TrackJet:default:barrel: "pt" + thresholds: [50, 100] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, barrel)" + binning: + min: 0 + max: 500 + step: 10 + +JetTurnonEndcap: + version: V44nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + # L1puppiJetHisto:default:endcap: "pt" + L1puppiJetSC4:default:endcap: "pt" + L1caloJet:default:endcap: "pt" + L1TrackJet:default:endcap: "pt" + thresholds: [50, 100] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, endcap)" + binning: + min: 0 + max: 500 + step: 10 + +JetTurnonForward: + version: V44nano + sample: TT + match_test_to_ref: True + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen Jets" + cuts: + event: + - "abs({eta}) > 2.4" + object: + - "abs({eta}) < 5" + test_objects: + # L1puppiJetHisto:default:forward: "pt" + L1puppiJetSC4:default:forward: "pt" + L1caloJet:default:forward: "pt" + thresholds: [50, 100] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Trigger Efficiency ( GeV, forward)" + binning: + min: 0 + max: 500 + step: 10 diff --git a/configs/V44nano/object_performance/met_ht_mht.yaml b/configs/V44nano/object_performance/met_ht_mht.yaml new file mode 100644 index 00000000..6277d990 --- /dev/null +++ b/configs/V44nano/object_performance/met_ht_mht.yaml @@ -0,0 +1,124 @@ +HT_90perc: + sample: TT + version: V44nano + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen HT" + trafo: "HT" + cuts: + object: + - "abs({eta}) < 2.4" + - "{pt} > 30" + test_objects: + # L1puppiHistoJetSums:HT: "pt" + L1puppiJetSC4sums:HT: "pt" + L1TrackHT:HT: "ht" + thresholds: [350] + scalings: + method: "naive" + threshold: 0.90 + xlabel: "Gen. HT (GeV)" + ylabel: "Trigger Efficiency ( GeV)" + binning: + min: 0 + max: 750 + step: 20 + +# TkHT_90perc: +# sample: TT +# version: V44nano +# reference_object: +# object: "GenJet" +# x_arg: "pt" +# label: "Gen HT" +# trafo: "HT" +# cuts: +# object: +# - "abs({eta}) < 2.4" +# - "{pt} > 30" +# test_objects: +# # L1puppiHistoJetSums:HT: "pt" +# L1puppiJetSC4sums:HT: "pt" +# L1TrackHT:HT: "ht" +# thresholds: [150, 350] +# scalings: +# method: "naive" +# threshold: 0.90 +# xlabel: "Gen. HT (GeV)" +# ylabel: "Trigger Efficiency ( GeV)" +# binning: +# min: 0 +# max: 750 +# step: 20 + +MHT_50perc: + sample: TT + version: V44nano + reference_object: + object: "GenJet" + x_arg: "pt" + label: "Gen MHT" + cuts: + object: + - "abs({eta}) < 2.4" + - "{pt} > 30" + trafo: "MHT" + test_objects: + L1puppiHistoJetSums:MHT: "pt" + L1puppiJetSC4sums:MHT: "pt" + L1TrackHT:MHT: "mht" + thresholds: [70, 150] + scalings: + method: "naive" + threshold: 0.50 + xlabel: "Gen. MHT30 (GeV)" + ylabel: "Trigger Efficiency ( GeV)" + binning: + min: 0 + max: 500 + step: 20 + +MET_90perc: + sample: TT + version: V44nano + reference_object: + object: "GenMET" + x_arg: "pt" + label: "Gen MET" + test_objects: + L1puppiMET:default: "pt" + L1puppiMLMET:default: "pt" + L1TrackMET:default: "pt" + thresholds: [125, 150, 175, 200] + xlabel: "Gen. MET (GeV)" + ylabel: "Trigger Efficiency ( GeV)" + scalings: + method: "naive" + threshold: 0.90 + binning: + min: 0 + max: 500 + step: 20 + +# MET_90perc_scTanh: +# sample: TT +# version: V44nano +# reference_object: +# object: "GenMET" +# x_arg: "pt" +# label: "Gen MET" +# test_objects: +# L1puppiMET:default: "pt" +# L1puppiMLMET:default: "pt" +# L1TrackMET:default: "pt" +# thresholds: [125, 150, 175] +# xlabel: "Gen. MET (GeV)" +# ylabel: "Trigger Efficiency ( GeV)" +# scalings: +# method: "errf" +# threshold: 0.90 +# binning: +# min: 0 +# max: 500 +# step: 20 \ No newline at end of file diff --git a/configs/V44nano/object_performance/muonTF_matching.yaml b/configs/V44nano/object_performance/muonTF_matching.yaml new file mode 100644 index 00000000..3c0dde41 --- /dev/null +++ b/configs/V44nano/object_performance/muonTF_matching.yaml @@ -0,0 +1,82 @@ +MuonTFsMatchingBarrel: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) < 0.83" + test_objects: + L1gmtMuon:default:barrel: "pt" + L1MuonKMTF:default:barrel: "pt" + L1MuonOMTF:default:barrel: "pt" + L1MuonEMTF:default:barrel: "pt" + L1gmtTkMuon:default:barrel: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (barrel)" + binning: + min: 0 + max: 100 + step: 3 + +MuonTFsMatchingOverlap: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) > 0.83" + - "abs({eta}) < 1.24" + test_objects: + L1gmtMuon:default:overlap: "pt" + L1MuonKMTF:default:overlap: "pt" + L1MuonOMTF:default:overlap: "pt" + L1MuonEMTF:default:overlap: "pt" + L1gmtTkMuon:default:overlap: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (overlap)" + binning: + min: 0 + max: 100 + step: 3 + +MuonTFsMatchingEndcap: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) > 1.24" + - "abs({eta}) < 2.4" + test_objects: + L1gmtMuon:default:endcap: "pt" + L1MuonKMTF:default:endcap: "pt" + L1MuonOMTF:default:endcap: "pt" + L1MuonEMTF:default:endcap: "pt" + L1gmtTkMuon:default:endcap: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (endcap)" + binning: + min: 0 + max: 100 + step: 3 diff --git a/configs/V44nano/object_performance/muonTF_matching_eta.yaml b/configs/V44nano/object_performance/muonTF_matching_eta.yaml new file mode 100644 index 00000000..a3c95760 --- /dev/null +++ b/configs/V44nano/object_performance/muonTF_matching_eta.yaml @@ -0,0 +1,56 @@ +MuonTFsMatching_Eta_Pt2to5: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + - "{pt} > 2" + - "{pt} < 5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1gmtMuon:default: "eta" + L1MuonKMTF:default: "eta" + L1MuonOMTF:default: "eta" + L1MuonEMTF:default: "eta" + L1gmtTkMuon:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (2-5 GeV)" + binning: + min: -3 + max: 3 + step: 0.2 + +MuonTFsMatching_Eta_Pt15toInf: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + - "{pt} > 15" + object: + - "abs({eta}) < 2.4" + test_objects: + L1gmtMuon:default: "eta" + L1MuonKMTF:default: "eta" + L1MuonOMTF:default: "eta" + L1MuonEMTF:default: "eta" + L1gmtTkMuon:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>15 GeV)" + binning: + min: -3 + max: 3 + step: 0.2 diff --git a/configs/V44nano/object_performance/muonTF_trigger.yaml b/configs/V44nano/object_performance/muonTF_trigger.yaml new file mode 100644 index 00000000..1347a833 --- /dev/null +++ b/configs/V44nano/object_performance/muonTF_trigger.yaml @@ -0,0 +1,93 @@ +MuonTFsTrigger_Barrel: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) < 0.83" + test_objects: + L1gmtMuon:default:barrel: "pt" + L1MuonKMTF:default:barrel: "pt" + L1MuonOMTF:default:barrel: "pt" + L1MuonEMTF:default:barrel: "pt" + L1gmtTkMuon:default:barrel: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (barrel, L1 $p_T > 20$ GeV)" + thresholds: [20, 25] + # scalings: + # method: "naive" + # threshold: 0.95 + binning: + min: 0 + max: 50 + step: 1.5 + +# MuonTFsTrigger_Overlap: +# sample: DYLL_M50 +# version: V44nano +# match_test_to_ref: True +# reference_object: +# object: "GenPart" +# x_arg: "eta" +# label: "Gen Muons" +# cuts: +# event: +# - "(({statusFlags}>>7)&1) == 1" +# - "abs({pdgId}) == 13" +# object: +# - "abs({eta}) > 0.83" +# - "abs({eta}) < 1.24" +# test_objects: +# L1gmtMuon:default:overlap: "pt" +# L1MuonKMTF:default:overlap: "pt" +# L1MuonOMTF:default:overlap: "pt" +# L1MuonEMTF:default:overlap: "pt" +# L1gmtTkMuon:default:overlap: "pt" +# xlabel: "Gen. pT (GeV)" +# ylabel: "Trigger Efficiency (overlap, L1 $p_T > 20$ GeV)" +# thresholds: [20, 25] +# # scalings: +# # method: "naive" +# # threshold: 0.95 +# binning: +# min: 0 +# max: 50 +# step: 1.5 + +# MuonTFsTrigger_Endcap: +# sample: DYLL_M50 +# version: V44nano +# match_test_to_ref: True +# reference_object: +# object: "GenPart" +# x_arg: "eta" +# label: "Gen Muons" +# cuts: +# event: +# - "(({statusFlags}>>7)&1) == 1" +# - "abs({pdgId}) == 13" +# object: +# - "abs({eta}) > 1.24" +# test_objects: +# L1gmtMuon:default:endcap: "pt" +# L1MuonKMTF:default:endcap: "pt" +# L1MuonOMTF:default:endcap: "pt" +# L1MuonEMTF:default:endcap: "pt" +# L1gmtTkMuon:default:endcap: "pt" +# xlabel: "Gen. pT (GeV)" +# ylabel: "Trigger Efficiency (endcap, L1 $p_T > 20$ GeV)" +# thresholds: [20, 25] +# # scalings: +# # method: "naive" +# # threshold: 0.95 +# binning: +# min: 0 +# max: 50 +# step: 1.5 diff --git a/configs/V44nano/object_performance/muon_matching.yaml b/configs/V44nano/object_performance/muon_matching.yaml new file mode 100644 index 00000000..f28046c7 --- /dev/null +++ b/configs/V44nano/object_performance/muon_matching.yaml @@ -0,0 +1,73 @@ +MuonsMatchingBarrel: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) < 0.83" + test_objects: + L1gmtMuon:default:barrel: "pt" + L1gmtTkMuon:default:barrel: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (barrel)" + binning: + min: 0 + max: 100 + step: 3 + +MuonsMatchingOverlap: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) > 0.83" + - "abs({eta}) < 1.24" + test_objects: + L1gmtMuon:default:overlap: "pt" + L1gmtTkMuon:default:overlap: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (overlap)" + binning: + min: 0 + max: 100 + step: 3 + +MuonsMatchingEndcap: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) > 1.24" + - "abs({eta}) < 2.4" + test_objects: + L1gmtMuon:default:endcap: "pt" + L1gmtTkMuon:default:endcap: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (endcap)" + binning: + min: 0 + max: 100 + step: 3 diff --git a/configs/V44nano/object_performance/muon_matching_eta.yaml b/configs/V44nano/object_performance/muon_matching_eta.yaml new file mode 100644 index 00000000..b135e6a2 --- /dev/null +++ b/configs/V44nano/object_performance/muon_matching_eta.yaml @@ -0,0 +1,51 @@ +MuonsMatching_Eta_Pt2to5: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + - "{pt} > 2" + - "{pt} < 5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1gmtMuon:default: "eta" + L1gmtMuon:dR0p6: "eta" + L1gmtTkMuon:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (2-5 GeV)" + binning: + min: -3 + max: 3 + step: 0.2 + +MuonsMatching_Eta_Pt15toInf: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + - "{pt} > 15" + object: + - "abs({eta}) < 2.4" + test_objects: + L1gmtMuon:default: "eta" + L1gmtTkMuon:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>15 GeV)" + binning: + min: -3 + max: 3 + step: 0.2 diff --git a/configs/V44nano/object_performance/muon_trigger.yaml b/configs/V44nano/object_performance/muon_trigger.yaml new file mode 100644 index 00000000..bfa14d0b --- /dev/null +++ b/configs/V44nano/object_performance/muon_trigger.yaml @@ -0,0 +1,84 @@ +MuonsTrigger_Barrel: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) < 0.83" + test_objects: + L1gmtMuon:default:barrel: "pt" + L1gmtTkMuon:default:barrel: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (barrel, L1 $p_T > 20$ GeV)" + thresholds: [20, 25] + scalings: + method: "naive" + threshold: 0.95 + binning: + min: 0 + max: 50 + step: 1.5 + +MuonsTrigger_Overlap: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) > 0.83" + - "abs({eta}) < 1.24" + test_objects: + L1gmtMuon:default:overlap: "pt" + L1gmtTkMuon:default:overlap: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (overlap, L1 $p_T > 20$ GeV)" + thresholds: [20, 25] + scalings: + method: "naive" + threshold: 0.95 + binning: + min: 0 + max: 50 + step: 1.5 + +MuonsTrigger_Endcap: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) > 1.24" + test_objects: + L1gmtMuon:default:endcap: "pt" + L1gmtTkMuon:default:endcap: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (endcap, L1 $p_T > 20$ GeV)" + thresholds: [20, 25] + scalings: + method: "naive" + threshold: 0.95 + binning: + min: 0 + max: 50 + step: 1.5 diff --git a/configs/V44nano/object_performance/muons_purity.yaml b/configs/V44nano/object_performance/muons_purity.yaml new file mode 100644 index 00000000..52cf1867 --- /dev/null +++ b/configs/V44nano/object_performance/muons_purity.yaml @@ -0,0 +1,82 @@ +Purity_Muons_Barrel: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "L1gmtTkMuon" + x_arg: "pt" + label: "L1gmtTkMuon" + cuts: + event: + - "({hwQual}>>0)&1 == 1" + - "abs({eta}) < 0.83" + object: + - "abs({eta}) < 2.4" + test_objects: + GenPart:muon: "pt" + L1gmtMuon:default: "pt" + # L1tkElectron:NoIso: "pt" + # L1tkElectron:NoIsoNoLowPtID: "pt" + # L1tkElectron:Iso: "pt" + xlabel: "L1 TkMuon. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Barrel)" + binning: + min: 0 + max: 100 + step: 3 + +Purity_Muons_Overlap: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "L1gmtTkMuon" + x_arg: "pt" + label: "L1gmtTkMuon" + cuts: + event: + - "({hwQual}>>0)&1 == 1" + - "abs({eta}) > 0.83" + - "abs({eta}) < 1.24" + object: + - "abs({eta}) < 2.4" + test_objects: + GenPart:muon: "pt" + L1gmtMuon:default: "pt" + # L1tkElectron:NoIso: "pt" + # L1tkElectron:NoIsoNoLowPtID: "pt" + # L1tkElectron:Iso: "pt" + xlabel: "L1 TkMuon. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Overlap)" + binning: + min: 0 + max: 100 + step: 3 + +Purity_Muons_Endcap: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "L1gmtTkMuon" + x_arg: "pt" + label: "L1gmtTkMuon" + cuts: + event: + - "({hwQual}>>0)&1 == 1" + - "abs({eta}) > 1.24" + - "abs({eta}) < 2.4" + object: + - "abs({eta}) < 2.4" + test_objects: + GenPart:muon: "pt" + L1gmtMuon:default: "pt" + # L1tkElectron:NoIso: "pt" + # L1tkElectron:NoIsoNoLowPtID: "pt" + # L1tkElectron:Iso: "pt" + xlabel: "L1 TkMuon. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Endcap)" + binning: + min: 0 + max: 100 + step: 3 diff --git a/configs/V44nano/object_performance/photon_iso.yaml b/configs/V44nano/object_performance/photon_iso.yaml new file mode 100644 index 00000000..f8b5773f --- /dev/null +++ b/configs/V44nano/object_performance/photon_iso.yaml @@ -0,0 +1,51 @@ +PhotonIsolation_Barrel: + sample: Hgg + version: V44nano + iso_vs_efficiency: True + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 22" + - "abs({eta}) < 1.479" + object: + - "abs({eta}) < 1.479" + test_objects: + L1tkPhoton:NoIso:barrel: "relIso" + xlabel: "Isolation" + ylabel: "Efficiency (Barrel)" + binning: + min: 0 + max: 0.5 + step: 0.005 + +PhotonIsolation_Endcap: + sample: Hgg + version: V44nano + iso_vs_efficiency: True + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 22" + - "abs({eta}) > 1.479" + - "abs({eta}) < 2.4" + object: + - "abs({eta}) > 1.479" + test_objects: + L1tkPhoton:NoIso:endcap: "relIso" + xlabel: "Isolation" + ylabel: "Efficiency (Endcap)" + binning: + min: 0 + max: 0.5 + step: 0.005 + diff --git a/configs/V44nano/object_performance/photons_matching.yaml b/configs/V44nano/object_performance/photons_matching.yaml new file mode 100644 index 00000000..70996d43 --- /dev/null +++ b/configs/V44nano/object_performance/photons_matching.yaml @@ -0,0 +1,159 @@ +PhotonsMatching_Barrel: + sample: Hgg + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 22" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1EG:default: "pt" + L1tkPhoton:NoIso: "pt" + L1tkPhoton:Iso: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Barrel)" + binning: + min: 0 + max: 100 + step: 3 + +PhotonsMatching_Endcap: + sample: Hgg + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 22" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1EG:default: "pt" + L1tkPhoton:NoIso: "pt" + L1tkPhoton:Iso: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Endcap)" + binning: + min: 0 + max: 100 + step: 3 + +# PhotonsMatching_Barrel_wPrunedGenParts: +# sample: Hgg +# version: V44nano +# match_test_to_ref: True +# reference_object: +# object: "GenPart" +# x_arg: "pt" +# label: "Gen Photons" +# cuts: +# event: +# - "(({statusFlags}>>7)&1) == 1" +# - "abs({pdgId}) == 22" +# - "abs({eta}) < 1.5" +# object: +# - "abs({eta}) < 2.4" +# test_objects: +# L1EG:default: "pt" +# L1tkPhoton:NoIso: "pt" +# L1tkPhoton:Iso: "pt" +# xlabel: "Gen. $p_T$ (GeV)" +# ylabel: "Matching Efficiency (Barrel)" +# binning: +# min: 0 +# max: 100 +# step: 3 + +# PhotonsMatching_Endcap_wPrunedGenParts: +# sample: Hgg +# version: V44nano +# match_test_to_ref: True +# reference_object: +# object: "GenPart" +# x_arg: "pt" +# label: "Gen Photons" +# cuts: +# event: +# - "(({statusFlags}>>7)&1) == 1" +# - "abs({pdgId}) == 22" +# - "abs({eta}) > 1.5" +# object: +# - "abs({eta}) < 2.4" +# test_objects: +# L1EG:default: "pt" +# L1tkPhoton:NoIso: "pt" +# L1tkPhoton:Iso: "pt" +# xlabel: "Gen. $p_T$ (GeV)" +# ylabel: "Matching Efficiency (Endcap)" +# binning: +# min: 0 +# max: 100 +# step: 3 + +# PhotonsMatching_Barrel_Pt30: +# sample: Hgg +# version: V44nano +# match_test_to_ref: True +# reference_object: +# object: "GenPart" +# x_arg: "pt" +# label: "Gen Photons" +# cuts: +# event: +# - "(({statusFlags}>>7)&1) == 1" +# - "abs({pdgId}) == 22" +# - "abs({eta}) < 1.5" +# object: +# - "abs({eta}) < 2.4" +# test_objects: +# L1EG:default: "pt" +# L1tkPhoton:NoIso: "pt" +# L1tkPhoton:Iso: "pt" +# L1tkPhoton:NoIsoPt30: "pt" +# L1tkPhoton:IsoPt30: "pt" +# xlabel: "Gen. $p_T$ (GeV)" +# ylabel: "Matching Efficiency (Barrel)" +# binning: +# min: 0 +# max: 150 +# step: 3 + +# PhotonsMatching_Endcap_Pt30: +# sample: Hgg +# version: V44nano +# match_test_to_ref: True +# reference_object: +# object: "GenPart" +# x_arg: "pt" +# label: "Gen Photons" +# cuts: +# event: +# - "(({statusFlags}>>7)&1) == 1" +# - "abs({pdgId}) == 22" +# - "abs({eta}) > 1.5" +# object: +# - "abs({eta}) < 2.4" +# test_objects: +# L1EG:default: "pt" +# L1tkPhoton:NoIso: "pt" +# L1tkPhoton:Iso: "pt" +# L1tkPhoton:NoIsoPt30: "pt" +# L1tkPhoton:IsoPt30: "pt" +# xlabel: "Gen. $p_T$ (GeV)" +# ylabel: "Matching Efficiency (Endcap)" +# binning: +# min: 0 +# max: 150 +# step: 3 diff --git a/configs/V44nano/object_performance/photons_matching_eta.yaml b/configs/V44nano/object_performance/photons_matching_eta.yaml new file mode 100644 index 00000000..3aa25155 --- /dev/null +++ b/configs/V44nano/object_performance/photons_matching_eta.yaml @@ -0,0 +1,52 @@ +PhotonsMatching_Eta_Pt10to25: + sample: Hgg + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Photons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 22" + - "{pt} < 25" + - "{pt} > 10" + object: + - "abs({eta}) < 3.0" + test_objects: + L1EG:default: "eta" + L1tkPhoton:NoIso: "eta" + L1tkPhoton:Iso: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency ($10 < p_T < 25$ GeV)" + binning: + min: -3 + max: 3 + step: 0.2 + +PhotonsMatching_Eta_Pt25toInf: + sample: Hgg + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Photons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 22" + - "{pt} >= 25" + object: + - "abs({eta}) < 3.0" + test_objects: + L1EG:default: "eta" + L1tkPhoton:NoIso: "eta" + L1tkPhoton:Iso: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency ($p_T > 25$ GeV)" + binning: + min: -3 + max: 3 + step: 0.2 diff --git a/configs/V44nano/object_performance/photons_trigger.yaml b/configs/V44nano/object_performance/photons_trigger.yaml new file mode 100644 index 00000000..464a23a1 --- /dev/null +++ b/configs/V44nano/object_performance/photons_trigger.yaml @@ -0,0 +1,59 @@ +PhotonsTrigger_Barrel: + sample: Hgg + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 22" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1EG:default:barrel: "pt" + L1tkPhoton:NoIso:barrel: "pt" + L1tkPhoton:Iso:barrel: "pt" + thresholds: [10, 20, 30, 40] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (barrel, L1 $p_T > $ GeV)" + binning: + min: 0 + max: 100 + step: 1.5 + +PhotonsTrigger_Endcap: + sample: Hgg + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Photons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 22" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1EG:default:endcap: "pt" + L1tkPhoton:NoIso:endcap: "pt" + L1tkPhoton:Iso:endcap: "pt" + thresholds: [10, 20, 30, 40] + scalings: + method: "naive" + threshold: 0.95 + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (endcap, L1 $p_T > $ GeV)" + binning: + min: 0 + max: 100 + step: 1.5 diff --git a/configs/V44nano/object_performance/tau_matching.yaml b/configs/V44nano/object_performance/tau_matching.yaml new file mode 100644 index 00000000..d4970ede --- /dev/null +++ b/configs/V44nano/object_performance/tau_matching.yaml @@ -0,0 +1,53 @@ +TausMatchingBarrel: + sample: VBFHToTauTau + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "pt" + label: "Gen Taus" + cuts: + event: + # - "{dr_0.3} < 0.15" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnPuppiTau:default: "pt" + L1hpsTau:default: "pt" + L1caloTau:default: "pt" + L1nnCaloTau:default: "pt" +# L1caloTau:PtGe20: "Pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Barrel)" + binning: + min: 0 + max: 150 + step: 6 + +TausMatchingEndcap: + sample: VBFHToTauTau + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "pt" + label: "Gen Taus" + cuts: + event: + # - "{dr_0.3} < 0.15" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnPuppiTau:default: "pt" + L1hpsTau:default: "pt" + L1caloTau:default: "pt" + L1nnCaloTau:default: "pt" +# L1caloTau:PtGe20: "Pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (Endcap)" + binning: + min: 0 + max: 150 + step: 6 diff --git a/configs/V44nano/object_performance/tau_matching_eta.yaml b/configs/V44nano/object_performance/tau_matching_eta.yaml new file mode 100644 index 00000000..871baa97 --- /dev/null +++ b/configs/V44nano/object_performance/tau_matching_eta.yaml @@ -0,0 +1,50 @@ +TauMatching_Eta_Pt40To100: + sample: VBFHToTauTau + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "eta" + label: "Gen Taus" + cuts: + event: + - "{pt} > 40" + - "{pt} < 100" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnPuppiTau:default: "eta" + L1hpsTau:default: "eta" + L1caloTau:default: "eta" + L1nnCaloTau:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (40-100 GeV)" + binning: + min: -3.0 + max: 3.0 + step: 0.2 + +TauMatching_Eta_Pt100ToInf: + sample: VBFHToTauTau + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "eta" + label: "Gen Taus" + cuts: + event: + - "{pt} > 100" + object: + - "abs({eta}) < 5" + test_objects: + L1nnPuppiTau:default: "eta" + L1hpsTau:default: "eta" + L1caloTau:default: "eta" + L1nnCaloTau:default: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>100 GeV)" + binning: + min: -3 + max: 3 + step: 0.2 diff --git a/configs/V44nano/object_performance/tau_matching_highPt.yaml b/configs/V44nano/object_performance/tau_matching_highPt.yaml new file mode 100644 index 00000000..db936726 --- /dev/null +++ b/configs/V44nano/object_performance/tau_matching_highPt.yaml @@ -0,0 +1,113 @@ +# TausMatchingBarrel_highPt: +# sample: VBFHToTauTau +# version: V44nano +# match_test_to_ref: True +# reference_object: +# object: "GenVisTau" +# x_arg: "pt" +# label: "Gen Taus" +# cuts: +# event: +# # - "{dr_0.3} < 0.15" +# - "abs({eta}) < 1.5" +# object: +# - "abs({eta}) < 2.4" +# test_objects: +# L1nnPuppiTau:default: "pt" +# L1hpsTau:default: "pt" +# L1caloTau:default: "pt" +# L1nnCaloTau:default: "pt" +# # L1caloTau:PtGe20: "Pt" +# xlabel: "Gen. $p_T$ (GeV)" +# ylabel: "Matching Efficiency (Barrel)" +# binning: +# min: 0 +# max: 400 +# step: 20 + +# TausMatchingEndcap_highPt: +# sample: VBFHToTauTau +# version: V44nano +# match_test_to_ref: True +# reference_object: +# object: "GenVisTau" +# x_arg: "pt" +# label: "Gen Taus" +# cuts: +# event: +# # - "{dr_0.3} < 0.15" +# - "abs({eta}) > 1.5" +# object: +# - "abs({eta}) < 2.4" +# test_objects: +# L1nnPuppiTau:default: "pt" +# L1hpsTau:default: "pt" +# L1caloTau:default: "pt" +# L1nnCaloTau:default: "pt" +# # L1caloTau:PtGe20: "Pt" +# xlabel: "Gen. $p_T$ (GeV)" +# ylabel: "Matching Efficiency (Endcap)" +# binning: +# min: 0 +# max: 400 +# step: 20 + +TauTriggerBarrel_90perc_highPt: + sample: VBFHToTauTau + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "pt" + label: "Gen Taus" + cuts: + event: + # - "{dr_0.3} < 0.15" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnPuppiTau:default:barrel: "pt" + L1hpsTau:default:barrel: "pt" + L1caloTau:default:barrel: "pt" + L1nnCaloTau:default:barrel: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (barrel, L1 $p_T > $ GeV)" + thresholds: [30, 50] + # scalings: + # method: "naive" + # threshold: 0.90 + binning: + min: 0 + max: 400 + step: 10 + +TauTriggerEndcap_90perc_highPt: + sample: VBFHToTauTau + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "pt" + label: "Gen Taus" + cuts: + event: + # - "{dr_0.3} < 0.15" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnPuppiTau:default:endcap: "pt" + L1hpsTau:default:endcap: "pt" + L1caloTau:default:endcap: "pt" + L1nnCaloTau:default:endcap: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (endcap, L1 $p_T > $ GeV)" + thresholds: [30, 50] + # scalings: + # method: "naive" + # threshold: 0.90 + binning: + min: 0 + max: 400 + step: 10 diff --git a/configs/V44nano/object_performance/tau_trigger.yaml b/configs/V44nano/object_performance/tau_trigger.yaml new file mode 100644 index 00000000..cc9f1686 --- /dev/null +++ b/configs/V44nano/object_performance/tau_trigger.yaml @@ -0,0 +1,59 @@ +TauTriggerBarrel_90perc: + sample: VBFHToTauTau + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "pt" + label: "Gen Taus" + cuts: + event: + # - "{dr_0.3} < 0.15" + - "abs({eta}) < 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnPuppiTau:default:barrel: "pt" + L1hpsTau:default:barrel: "pt" + L1caloTau:default:barrel: "pt" + L1nnCaloTau:default:barrel: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (barrel, L1 $p_T > $ GeV)" + thresholds: [20, 30] + scalings: + method: "naive" + threshold: 0.90 + binning: + min: 0 + max: 150 + step: 6 + +TauTriggerEndcap_90perc: + sample: VBFHToTauTau + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenVisTau" + x_arg: "pt" + label: "Gen Taus" + cuts: + event: + # - "{dr_0.3} < 0.15" + - "abs({eta}) > 1.5" + object: + - "abs({eta}) < 2.4" + test_objects: + L1nnPuppiTau:default:endcap: "pt" + L1hpsTau:default:endcap: "pt" + L1caloTau:default:endcap: "pt" + L1nnCaloTau:default:endcap: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (endcap, L1 $p_T > $ GeV)" + thresholds: [20, 30] + scalings: + method: "naive" + threshold: 0.90 + binning: + min: 0 + max: 150 + step: 6 diff --git a/configs/V44nano/object_performance/tkmuon_matching.yaml b/configs/V44nano/object_performance/tkmuon_matching.yaml new file mode 100644 index 00000000..4cbe0281 --- /dev/null +++ b/configs/V44nano/object_performance/tkmuon_matching.yaml @@ -0,0 +1,85 @@ +TkMuonsMatchingBarrel: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) < 0.83" + test_objects: + # L1gmtMuon:default:barrel: "pt" + L1gmtTkMuon:default:barrel: "pt" + L1gmtTkMuon:VLoose:barrel: "pt" + L1gmtTkMuon:Loose:barrel: "pt" + L1gmtTkMuon:Medium:barrel: "pt" + L1gmtTkMuon:Tight:barrel: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (barrel)" + binning: + min: 0 + max: 100 + step: 3 + +TkMuonsMatchingOverlap: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) > 0.83" + - "abs({eta}) < 1.24" + test_objects: + # L1gmtMuon:default:overlap: "pt" + L1gmtTkMuon:default:overlap: "pt" + L1gmtTkMuon:VLoose:overlap: "pt" + L1gmtTkMuon:Loose:overlap: "pt" + L1gmtTkMuon:Medium:overlap: "pt" + L1gmtTkMuon:Tight:overlap: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (overlap)" + binning: + min: 0 + max: 100 + step: 3 + +TkMuonsMatchingEndcap: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "pt" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) > 1.24" + - "abs({eta}) < 2.4" + test_objects: + # L1gmtMuon:default:endcap: "pt" + L1gmtTkMuon:default:endcap: "pt" + L1gmtTkMuon:VLoose:endcap: "pt" + L1gmtTkMuon:Loose:endcap: "pt" + L1gmtTkMuon:Medium:endcap: "pt" + L1gmtTkMuon:Tight:endcap: "pt" + xlabel: "Gen. $p_T$ (GeV)" + ylabel: "Matching Efficiency (endcap)" + binning: + min: 0 + max: 100 + step: 3 diff --git a/configs/V44nano/object_performance/tkmuon_matching_eta.yaml b/configs/V44nano/object_performance/tkmuon_matching_eta.yaml new file mode 100644 index 00000000..563ed0b0 --- /dev/null +++ b/configs/V44nano/object_performance/tkmuon_matching_eta.yaml @@ -0,0 +1,58 @@ +TkMuonsMatching_Eta_Pt2to5: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + - "{pt} > 2" + - "{pt} < 5" + object: + - "abs({eta}) < 2.4" + test_objects: + # L1gmtMuon:default: "eta" + L1gmtTkMuon:default: "eta" + L1gmtTkMuon:VLoose: "eta" + L1gmtTkMuon:Loose: "eta" + L1gmtTkMuon:Medium: "eta" + L1gmtTkMuon:Tight: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (2-5 GeV)" + binning: + min: -3 + max: 3 + step: 0.2 + +TkMuonsMatching_Eta_Pt15toInf: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + - "{pt} > 15" + object: + - "abs({eta}) < 2.4" + test_objects: + # L1gmtMuon:default: "eta" + L1gmtTkMuon:default: "eta" + L1gmtTkMuon:VLoose: "eta" + L1gmtTkMuon:Loose: "eta" + L1gmtTkMuon:Medium: "eta" + L1gmtTkMuon:Tight: "eta" + xlabel: "Gen. $\\eta$" + ylabel: "Matching Efficiency (>15 GeV)" + binning: + min: -3 + max: 3 + step: 0.2 diff --git a/configs/V44nano/object_performance/tkmuon_trigger.yaml b/configs/V44nano/object_performance/tkmuon_trigger.yaml new file mode 100644 index 00000000..b125adae --- /dev/null +++ b/configs/V44nano/object_performance/tkmuon_trigger.yaml @@ -0,0 +1,96 @@ +TkMuonsTrigger_Barrel: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) < 0.83" + test_objects: + # L1gmtMuon:default:barrel: "pt" + # L1gmtTkMuon:default:barrel: "pt" + L1gmtTkMuon:VLoose:barrel: "pt" + L1gmtTkMuon:Loose:barrel: "pt" + L1gmtTkMuon:Medium:barrel: "pt" + L1gmtTkMuon:Tight:barrel: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (barrel, L1 $p_T > 20$ GeV)" + thresholds: [20, 25] + scalings: + method: "naive" + threshold: 0.95 + binning: + min: 0 + max: 50 + step: 1.5 + +TkMuonsTrigger_Overlap: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) > 0.83" + - "abs({eta}) < 1.24" + test_objects: + # L1gmtMuon:default:overlap: "pt" + # L1gmtTkMuon:default:overlap: "pt" + L1gmtTkMuon:VLoose:overlap: "pt" + L1gmtTkMuon:Loose:overlap: "pt" + L1gmtTkMuon:Medium:overlap: "pt" + L1gmtTkMuon:Tight:overlap: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (overlap, L1 $p_T > 20$ GeV)" + thresholds: [20, 25] + scalings: + method: "naive" + threshold: 0.95 + binning: + min: 0 + max: 50 + step: 1.5 + +TkMuonsTrigger_Endcap: + sample: DYLL_M50 + version: V44nano + match_test_to_ref: True + reference_object: + object: "GenPart" + x_arg: "eta" + label: "Gen Muons" + cuts: + event: + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" + object: + - "abs({eta}) > 1.24" + test_objects: + # L1gmtMuon:default:endcap: "pt" + # L1gmtTkMuon:default:endcap: "pt" + L1gmtTkMuon:VLoose:endcap: "pt" + L1gmtTkMuon:Loose:endcap: "pt" + L1gmtTkMuon:Medium:endcap: "pt" + L1gmtTkMuon:Tight:endcap: "pt" + xlabel: "Gen. pT (GeV)" + ylabel: "Trigger Efficiency (endcap, L1 $p_T > 20$ GeV)" + thresholds: [20, 25] + scalings: + method: "naive" + threshold: 0.95 + binning: + min: 0 + max: 50 + step: 1.5 diff --git a/configs/V44nano/objects/GenPart.yaml b/configs/V44nano/objects/GenPart.yaml new file mode 100644 index 00000000..20b93d9a --- /dev/null +++ b/configs/V44nano/objects/GenPart.yaml @@ -0,0 +1,21 @@ +GenPart: + match_dR: 0.15 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.479] + endcap: [1.479, 5] + ids: + electron: + label: "Gen Electron" + cuts: + inclusive: + - "abs({eta}) < 3" + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 11" + muon: + label: "Gen Muon" + cuts: + inclusive: + - "abs({eta}) < 3" + - "(({statusFlags}>>7)&1) == 1" + - "abs({pdgId}) == 13" \ No newline at end of file diff --git a/configs/V44nano/objects/electrons.yaml b/configs/V44nano/objects/electrons.yaml new file mode 100644 index 00000000..cfacf196 --- /dev/null +++ b/configs/V44nano/objects/electrons.yaml @@ -0,0 +1,49 @@ +L1tkElectron: + match_dR: 0.15 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.479] + endcap: [1.479, 5] + ids: + NoIso: + label: "TkElectron" + cuts: + inclusive: + - "abs({eta}) < 2.4" + endcap: + - "({eleId} == 1) | ({pt} < 25)" + barrel: + - "{eleId} == 1" + NoIsoForIso: + # This id is exclusively used for the + # isoloation wp derivation + label: "TkElectron, no ID" + cuts: + inclusive: + - "abs({eta}) < 2.4" + Iso: + label: "TkIsoElectron" + cuts: + inclusive: + - "abs({eta}) < 2.4" + barrel: + - "abs({relIso}) < 0.13" + endcap: + - "abs({relIso}) < 0.28" + +L1EG: + match_dR: 0.2 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.479] + endcap: [1.479, 3.0] + label: "EG" + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 3.0" + barrel: + - "{eleId} == 1" + endcap: + - "{saId} == 1" diff --git a/configs/V44nano/objects/jets.yaml b/configs/V44nano/objects/jets.yaml new file mode 100644 index 00000000..481cccda --- /dev/null +++ b/configs/V44nano/objects/jets.yaml @@ -0,0 +1,103 @@ +L1caloJet: + match_dR: 0.3 + label: "Calo Jet" + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + forward: [2.4, 5] + cuts: + inclusive: + - "abs({eta}) < 7" + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 7" + +L1puppiExtJetSC4: + match_dR: 0.35 + label: "Seeded Cone Extended PuppiJet" + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + forward: [2.4, 5] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 5" + PtGe25: + cuts: + inclusive: + - "abs({eta}) < 7" + - "abs({pt}) >= 25" + bjetnn: + label: "SC Extended PuppiJet, BtagScore > 0.71" + cuts: + inclusive: + - "abs({eta}) < 2.4" + - "{btagScore} > 0.71" + +L1puppiJetHisto: + match_dR: 0.3 + label: "Histogrammed PuppiJet" + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + forward: [2.4, 5] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 7" + +L1puppiJetSC4: + match_dR: 0.35 + label: "Seeded Cone PuppiJet" + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + forward: [2.4, 5] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 7" + PtGe25: + cuts: + inclusive: + - "abs({eta}) < 7" + - "abs({pt}) >= 25" + +L1puppiJetSC8: + match_dR: 0.35 + label: "Seeded Cone PuppiJet 8" + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + forward: [2.4, 5] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 7" + +L1TrackJet: + match_dR: 0.4 + label: "Tracker Jet" + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 7" + + diff --git a/configs/V44nano/objects/met_ht_mht.yaml b/configs/V44nano/objects/met_ht_mht.yaml new file mode 100644 index 00000000..8dbdb2fd --- /dev/null +++ b/configs/V44nano/objects/met_ht_mht.yaml @@ -0,0 +1,69 @@ +# phase1PuppiHT: +# label: "Histogrammed Puppi HT" +# ids: +# default: {} + +# phase1PuppiMHT: +# label: "Phase1 Puppi MHT" +# ids: +# default: {} + +L1puppiMET: + label: "Puppi MET" + ids: + default: {} + +L1puppiMLMET: + label: "Puppi MLMET" + ids: + default: {} + +L1puppiJetSC4sums: + ids: + HT: + label: "SeededCone HT" + cuts: + inclusive: + - "{sumType} == 0" + MHT: + label: "SeededCone MHT" + cuts: + inclusive: + - "{sumType} == 1" + +L1puppiHistoJetSums: + ids: + HT: + label: "Histogrammed Puppi HT" + cuts: + inclusive: + - "{sumType} == 0" + MHT: + label: "Histogrammed Puppi MHT" + cuts: + inclusive: + - "{sumType} == 1" + +L1TrackHT: + ids: + HT: + label: "Tracker HT" + MHT: + label: "Tracker MHT" + +L1ExtTrackHT: + ids: + HT: + label: "ext. Tracker HT" + MHT: + label: "ext. Tracker MHT" + +L1TrackMET: + label: "Tracker MET" + ids: + default: {} + +L1TrackTripletWord: + label: "Track Triplet for W3Pi" + ids: + default: {} \ No newline at end of file diff --git a/configs/V44nano/objects/muons.yaml b/configs/V44nano/objects/muons.yaml new file mode 100644 index 00000000..a9871f25 --- /dev/null +++ b/configs/V44nano/objects/muons.yaml @@ -0,0 +1,131 @@ +GenPart: + label: "Gen Muon" + eta_ranges: + inclusive: [0, 7] + ids: + gen_electron_default: + cuts: + inclusive: + - "({statusFlags}>>7)&1 == 1" + +L1gmtTkMuon: + label: "GMT TkMuon" + match_dR: 0.1 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 0.83] + overlap: [0.83, 1.24] + endcap: [1.24, 2.4] + ids: + default: + label: "GMT TkMuon" + cuts: + inclusive: + - "(({hwQual}>>1)&1 == 1) | (({pt} > 8) & (({hwQual}>>0)&1 == 1))" # Loose (bit 2) for pt < 8 VLoose (bit 1) for pt > 8 + VLoose: # x.numberOfMatches() > 0 + label: "GMT TkMuon, VLoose ID" + cuts: + inclusive: + - "({hwQual}>>0)&1 == 1" + Loose: # x.numberOfMatches() >1 + label: "GMT TkMuon, Loose ID" + cuts: + inclusive: + - "({hwQual}>>1)&1 == 1" + Medium: # x.stubs().size()>1 + label: "GMT TkMuon, Medium ID" + cuts: + inclusive: + - "({hwQual}>>2)&1 == 1" + Tight: # x.numberOfMatches()>2 + label: "GMT TkMuon, Tight ID" + cuts: + inclusive: + - "({hwQual}>>3)&1 == 1" + +L1gmtMuon: + label: "GMT Muon" + match_dR: 0.6 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 0.83] + overlap: [0.83, 1.24] + endcap: [1.24, 2.4] + ids: + default: + cuts: + overlap: + - "{hwQual} >= 12" + endcap: + - "{hwQual} >= 14" + dR0p6: + label: "GMT Muon, match dR < 0.6" + match_dR: 0.6 + cuts: {} + +L1gmtDispMuon: + label: "GMT Displaced Muon" + match_dR: 0.6 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 0.83] + overlap: [0.83, 1.24] + endcap: [1.24, 2.4] + ids: + default: {} + dXYge8: + label: "Disp. Muon, dXY>8" + cuts: + endcap: + - "{d0} >= 8" + dXYge8Qual15: + label: "Disp. Muon, dXY>8, qual>=15" + cuts: + endcap: + - "{hwQual} >= 15" + - "{d0} >= 8" + qual15: + label: "Disp. Muon, qual>=15" + cuts: + endcap: + - "{hwQual} >= 15" + qual15_Eta2p0: + label: "Disp. Muon, eta < 2, qual>=15" + cuts: + inclusive: + - "abs({eta}) < 2" + endcap: + - "{hwQual} >= 15" + +L1MuonKMTF: + label: "KMTF Muon" + match_dR: 0.3 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 0.83] + overlap: [0.83, 1.24] + endcap: [1.24, 2.4] + ids: + default: {} + +L1MuonOMTF: + label: "OMTF Muon" + match_dR: 0.3 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 0.83] + overlap: [0.83, 1.24] + endcap: [1.24, 2.4] + ids: + default: {} + +L1MuonEMTF: + label: "EMTF Muon" + match_dR: 0.3 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 0.83] + overlap: [0.83, 1.24] + endcap: [1.24, 2.4] + ids: + default: {} diff --git a/configs/V44nano/objects/photons.yaml b/configs/V44nano/objects/photons.yaml new file mode 100644 index 00000000..2565e821 --- /dev/null +++ b/configs/V44nano/objects/photons.yaml @@ -0,0 +1,51 @@ +L1tkPhoton: + match_dR: 0.15 + eta_ranges: + inclusive: [0, 5] + barrel: [0, 1.479] + endcap: [1.479, 2.4] + ids: + NoIso: + label: "L1tkPhoton" + cuts: + inclusive: + - "abs({eta}) < 2.4" + - "{pt} > 5" + barrel: + - "{eleId} == 1" + endcap: + - "{phoId} == 1" + NoIsoPt30: + label: "L1tkPhoton, pt>30" + cuts: + inclusive: + - "abs({eta}) < 2.4" + - "{pt} > 30" + barrel: + - "{eleId} == 1" + endcap: + - "{phoId} == 1" + Iso: + label: "L1tkIsoPhoton" + cuts: + inclusive: + - "abs({eta}) < 2.4" + - "{pt} > 5" + barrel: + - "abs({relIso}) < 0.25" + - "{eleId} == 1" + endcap: + - "abs({relIso}) < 0.205" + - "{phoId} == 1" + IsoPt30: + label: "L1tkIsoPhoton, Pt>30" + cuts: + inclusive: + - "abs({eta}) < 2.4" + - "{pt} > 30" + barrel: + - "abs({relIso}) < 0.25" + - "{eleId} == 1" + endcap: + - "abs({relIso}) < 0.205" + - "{phoId} == 1" diff --git a/configs/V44nano/objects/pv.yaml b/configs/V44nano/objects/pv.yaml new file mode 100644 index 00000000..25fea9c0 --- /dev/null +++ b/configs/V44nano/objects/pv.yaml @@ -0,0 +1,4 @@ +L1PV: + label: "Primary Vertex" + ids: + default: {} diff --git a/configs/V44nano/objects/taus.yaml b/configs/V44nano/objects/taus.yaml new file mode 100644 index 00000000..11e49a74 --- /dev/null +++ b/configs/V44nano/objects/taus.yaml @@ -0,0 +1,61 @@ +L1nnPuppiTau: + label: "NN Tau" + match_dR: 0.1 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 2.4" + # - "{passLooseNN}==1" + # Current IB (22 Feb recipe) does not have updated WP, so cut on NN score rather than checking passLooseNN + - "{chargedIso} > 0.22" + +L1hpsTau: + label: "HPS Tau" + match_dR: 0.1 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 2.4" + +L1caloTau: + label: "Calo Tau" + match_dR: 0.3 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 2.4" + PtGe20: + label: "Calo Tau, pt > 20" + cuts: + inclusive: + - "abs({eta}) < 2.4" + - "{pt} > 20" + +L1nnCaloTau: + label: "NN Calo Tau" + match_dR: 0.3 + eta_ranges: + inclusive: [0, 7] + barrel: [0, 1.5] + endcap: [1.5, 2.4] + ids: + default: + cuts: + inclusive: + - "abs({eta}) < 2.4" + - "{hwQual}==3" diff --git a/configs/V44nano/rate_plots/bjet.yaml b/configs/V44nano/rate_plots/bjet.yaml new file mode 100644 index 00000000..9642f9ea --- /dev/null +++ b/configs/V44nano/rate_plots/bjet.yaml @@ -0,0 +1,10 @@ +BJetRates: + sample: MinBias + version: V44nano + test_objects: + - L1puppiExtJetSC4:default + - L1puppiExtJetSC4:bjetnn + binning: + min: 40 + max: 420 + step: 20 diff --git a/configs/V44nano/rate_plots/disp_muons.yaml b/configs/V44nano/rate_plots/disp_muons.yaml new file mode 100644 index 00000000..c927e2af --- /dev/null +++ b/configs/V44nano/rate_plots/disp_muons.yaml @@ -0,0 +1,24 @@ +gmtDispMuon: + sample: MinBias + version: V44nano + test_objects: + - L1gmtMuon:default + - L1gmtDispMuon:default + binning: + min: 0 + max: 75 + step: 3 + +gmtDispMuonByRegion: + sample: MinBias + version: V44nano + test_objects: + # - L1gmtMuon:default + # - L1gmtDispMuon:default + - L1gmtDispMuon:default:barrel + - L1gmtDispMuon:default:overlap + - L1gmtDispMuon:default:endcap + binning: + min: 0 + max: 75 + step: 3 \ No newline at end of file diff --git a/configs/V44nano/rate_plots/eg.yaml b/configs/V44nano/rate_plots/eg.yaml new file mode 100644 index 00000000..03f55f9e --- /dev/null +++ b/configs/V44nano/rate_plots/eg.yaml @@ -0,0 +1,38 @@ +EGRates: + sample: MinBias + version: V44nano + test_objects: + - L1EG:default + - L1tkElectron:NoIso + - L1tkElectron:Iso + - L1tkPhoton:Iso + binning: + min: 10 + max: 97 + step: 3 + +EG_NoIso_RatesByRegion: + sample: MinBias + version: V44nano + test_objects: + - L1EG:default:barrel + - L1EG:default:endcap + - L1tkElectron:NoIso:barrel + - L1tkElectron:NoIso:endcap + binning: + min: 10 + max: 97 + step: 3 + +EG_Iso_RatesByRegion: + sample: MinBias + version: V44nano + test_objects: + - L1tkElectron:Iso:barrel + - L1tkElectron:Iso:endcap + - L1tkPhoton:Iso:barrel + - L1tkPhoton:Iso:endcap + binning: + min: 10 + max: 97 + step: 3 \ No newline at end of file diff --git a/configs/V44nano/rate_plots/ht.yaml b/configs/V44nano/rate_plots/ht.yaml new file mode 100644 index 00000000..d230f710 --- /dev/null +++ b/configs/V44nano/rate_plots/ht.yaml @@ -0,0 +1,60 @@ +HTRates: + sample: MinBias + version: V44nano + test_objects: + # - L1puppiHistoJetSums:HT + - L1puppiJetSC4sums:HT + - L1TrackHT:HT + binning: + min: 50 + max: 975 + step: 25 + +MHTRates: + sample: MinBias + version: V44nano + test_objects: + # - L1puppiHistoJetSums:MHT + - L1puppiJetSC4sums:MHT + # - L1TrackHT:MHT + binning: + min: 50 + max: 975 + step: 25 + +DispHTRates: + sample: MinBias + version: V44nano + test_objects: + # - L1puppiHistoJetSums:HT + - L1puppiJetSC4sums:HT + - L1TrackHT:HT + - L1ExtTrackHT:HT + binning: + min: 50 + max: 975 + step: 25 +# MHTRates: +# sample: MinBias +# version: V44nano +# test_objects: +# # - L1puppiHistoJetSums:MHT +# - L1puppiJetSC4sums:MHT +# - L1TrackHT:MHT +# binning: +# min: 50 +# max: 975 +# step: 25 + +# DispHTRates: +# sample: MinBias +# version: V44nano +# test_objects: +# # - L1puppiHistoJetSums:HT +# - L1puppiJetSC4sums:HT +# - L1TrackHT:HT +# - L1ExtTrackHT:HT +# binning: +# min: 50 +# max: 975 +# step: 25 diff --git a/configs/V44nano/rate_plots/jets.yaml b/configs/V44nano/rate_plots/jets.yaml new file mode 100644 index 00000000..932bb4eb --- /dev/null +++ b/configs/V44nano/rate_plots/jets.yaml @@ -0,0 +1,84 @@ +JetDefaultRates: + sample: MinBias + version: V44nano + test_objects: + # - L1puppiJetHisto:default + - L1puppiJetSC4:default + - L1caloJet:default + - L1TrackJet:default + binning: + min: 40 + max: 420 + step: 20 + +JetsByRegion: + sample: MinBias + version: V44nano + test_objects: + - L1puppiJetSC4:default:barrel + - L1puppiJetSC4:default:endcap + - L1puppiJetSC4:default:forward + - L1caloJet:default:barrel + - L1caloJet:default:endcap + - L1caloJet:default:forward + # - L1TrackJet:default:barrel + # - L1TrackJet:default:endcap + binning: + min: 40 + max: 420 + step: 20 + +JetExtendedRates: + sample: MinBias + version: V44nano + test_objects: + - L1puppiJetSC4:default:inclusive + - L1puppiExtJetSC4:default:inclusive + # - L1puppiExtJetSC4:default:barrel + # - L1puppiExtJetSC4:default:endcap + # - L1puppiExtJetSC4:default:forward + binning: + min: 40 + max: 420 + step: 20 + +JetExtendedRatesByRegion: + sample: MinBias + version: V44nano + test_objects: + # - L1puppiJetSC4:default:barrel + # - L1puppiJetSC4:default:endcap + # - L1puppiJetSC4:default:forward + - L1puppiExtJetSC4:default:barrel + - L1puppiExtJetSC4:default:endcap + - L1puppiExtJetSC4:default:forward + binning: + min: 40 + max: 420 + step: 20 + +# JetSC8Rates: +# sample: MinBias +# version: V44nano +# test_objects: +# - L1puppiJetSC4:default +# - L1puppiJetSC8:default +# binning: +# min: 40 +# max: 420 +# step: 20 + + +# JetSC8Rates_byRegion: +# sample: MinBias +# version: V44nano +# test_objects: +# # - L1puppiJetSC4:default +# - L1puppiJetSC8:default +# - L1puppiJetSC8:default:barrel +# - L1puppiJetSC8:default:endcap +# - L1puppiJetSC8:default:forward +# binning: +# min: 40 +# max: 420 +# step: 20 diff --git a/configs/V44nano/rate_plots/met.yaml b/configs/V44nano/rate_plots/met.yaml new file mode 100644 index 00000000..bf15d260 --- /dev/null +++ b/configs/V44nano/rate_plots/met.yaml @@ -0,0 +1,11 @@ +METRates: + sample: MinBias + version: V44nano + test_objects: + - L1puppiMET:default + - L1puppiMLMET:default + # - L1TrackMET:default + binning: + min: 50 + max: 500 + step: 25 diff --git a/configs/V44nano/rate_plots/muons.yaml b/configs/V44nano/rate_plots/muons.yaml new file mode 100644 index 00000000..5fc1dd20 --- /dev/null +++ b/configs/V44nano/rate_plots/muons.yaml @@ -0,0 +1,34 @@ +gmtMuonByRegion: + sample: MinBias + version: V44nano + test_objects: + - L1gmtMuon:default:barrel + - L1gmtMuon:default:overlap + - L1gmtMuon:default:endcap + binning: + min: 0 + max: 75 + step: 3 + +gmtTkMuonByRegion: + sample: MinBias + version: V44nano + test_objects: + - L1gmtTkMuon:default:barrel + - L1gmtTkMuon:default:overlap + - L1gmtTkMuon:default:endcap + binning: + min: 0 + max: 75 + step: 3 + +MuonRates: + sample: MinBias + version: V44nano + test_objects: + - L1gmtMuon:default + - L1gmtTkMuon:default + binning: + min: 0 + max: 75 + step: 3 diff --git a/configs/V44nano/rate_plots/taus.yaml b/configs/V44nano/rate_plots/taus.yaml new file mode 100644 index 00000000..50c56f44 --- /dev/null +++ b/configs/V44nano/rate_plots/taus.yaml @@ -0,0 +1,39 @@ +TauRates: + sample: MinBias + version: V44nano + test_objects: + - L1nnPuppiTau:default + # - L1hpsTau:default + - L1caloTau:default + - L1nnCaloTau:default + binning: + min: 10 + max: 155 + step: 5 + +TauRatesByRegion: + sample: MinBias + version: V44nano + test_objects: + - L1caloTau:default:barrel + - L1caloTau:default:endcap + - L1nnPuppiTau:default:barrel + - L1nnPuppiTau:default:endcap + binning: + min: 10 + max: 155 + step: 5 + +DiTauRates: + sample: MinBias + version: V44nano + nObjects: 2 + test_objects: + - L1nnPuppiTau:default + # - L1hpsTau:default + - L1caloTau:default + - L1nnCaloTau:default + binning: + min: 10 + max: 155 + step: 5 diff --git a/configs/V44nano/rate_plots/test.yml b/configs/V44nano/rate_plots/test.yml new file mode 100644 index 00000000..407cff7b --- /dev/null +++ b/configs/V44nano/rate_plots/test.yml @@ -0,0 +1,13 @@ +JetSC8Rates_byRegion2: + sample: MinBias + version: V44nano + test_objects: + # - L1puppiJetSC4:default + - L1puppiJetSC8:default + - L1puppiJetSC8:default:inclusive + - L1puppiJetSC8:default:barrel + #- L1puppiJetSC8:default:endcap + binning: + min: 40 + max: 420 + step: 20 diff --git a/configs/V44nano/rate_plots/tkmuons.yaml b/configs/V44nano/rate_plots/tkmuons.yaml new file mode 100644 index 00000000..365b02de --- /dev/null +++ b/configs/V44nano/rate_plots/tkmuons.yaml @@ -0,0 +1,51 @@ +gmtTkMuonByID: + sample: MinBias + version: V44nano + test_objects: + - L1gmtTkMuon:VLoose + - L1gmtTkMuon:Loose + - L1gmtTkMuon:Medium + - L1gmtTkMuon:Tight + binning: + min: 0 + max: 75 + step: 3 + +gmtTkMuonByID_barrel: + sample: MinBias + version: V44nano + test_objects: + - L1gmtTkMuon:VLoose:barrel + - L1gmtTkMuon:Loose:barrel + - L1gmtTkMuon:Medium:barrel + - L1gmtTkMuon:Tight:barrel + binning: + min: 0 + max: 75 + step: 3 + +gmtTkMuonByID_overlap: + sample: MinBias + version: V44nano + test_objects: + - L1gmtTkMuon:VLoose:overlap + - L1gmtTkMuon:Loose:overlap + - L1gmtTkMuon:Medium:overlap + - L1gmtTkMuon:Tight:overlap + binning: + min: 0 + max: 75 + step: 3 + +gmtTkMuonByID_endcap: + sample: MinBias + version: V44nano + test_objects: + - L1gmtTkMuon:VLoose:endcap + - L1gmtTkMuon:Loose:endcap + - L1gmtTkMuon:Medium:endcap + - L1gmtTkMuon:Tight:endcap + binning: + min: 0 + max: 75 + step: 3 \ No newline at end of file diff --git a/configs/V44nano/rate_table/step1_cfg.yml b/configs/V44nano/rate_table/step1_cfg.yml new file mode 100644 index 00000000..2f72f071 --- /dev/null +++ b/configs/V44nano/rate_table/step1_cfg.yml @@ -0,0 +1,4 @@ +version: "V44nano" +sample: "MinBias" +menu_config: "configs/V44nano/rate_table/step1_menu_cfg.yml" +table_fname: "v44_Step1Menu" \ No newline at end of file diff --git a/configs/V44nano/rate_table/step1_menu_cfg.yml b/configs/V44nano/rate_table/step1_menu_cfg.yml new file mode 100644 index 00000000..c3428fe7 --- /dev/null +++ b/configs/V44nano/rate_table/step1_menu_cfg.yml @@ -0,0 +1,445 @@ +L1_PFHTT: + cross_masks: [] + leg1: + threshold_cut: offline_pt >= 450.0 + obj: L1puppiJetSC4sums:HT +L1_PFMHTT: + cross_masks: [] + leg1: + threshold_cut: offline_pt >= 135.5 + obj: L1puppiJetSC4sums:MHT +L1_PFMet: + cross_masks: [] + leg1: + threshold_cut: offline_pt >= 200.0 + obj: L1puppiMET:default +# L1_PFMLMet: +# cross_masks: [] +# leg1: +# threshold_cut: offline_pt >= 200.0 +# obj: L1puppiMLMET:default +L1_DoubleTkMu4p5er2p0_SQ_OS_Mass7to18: + cross_masks: + - (((leg1+leg2).mass > 7.0) & (leg1.deltaR(leg2) > 0)) + - (((leg1+leg2).mass < 18.0) & (leg1.deltaR(leg2) > 0)) + - ((leg1.charge*leg2.charge < 0.0) & (leg1.deltaR(leg2) > 0)) + - ((abs(leg2.z0-leg1.z0) < 1) & (leg1.deltaR(leg2) > 0)) + leg1: + threshold_cut: pt > 4.4 + obj: L1gmtTkMuon:default + leg2: + threshold_cut: pt > 4.4 + obj: L1gmtTkMuon:default +L1_TkMu_PfJet_dRMax_DoubleJet_dEtaMax: + cross_masks: + - abs(leg2.eta) < 2.4 + - abs(leg2.z0-leg1.z0) < 1 + - leg2.deltaR(leg3) < 0.4 + - abs(leg5.eta-leg4.eta) < 1.6 + leg1: + threshold_cut: null + obj: L1PV:default + leg2: + threshold_cut: offline_pt >= 12.0 + obj: L1gmtTkMuon:default + leg3: + threshold_cut: offline_pt >= 40.0 + obj: L1puppiJetSC4:default + leg4: + threshold_cut: offline_pt >= 40.0 + obj: L1puppiJetSC4:default + leg5: + threshold_cut: offline_pt >= 40.0 + obj: L1puppiJetSC4:default +L1_DoubleTkMu0er1p5_SQ_OS_dR_Max1p4: + cross_masks: + - (abs(leg1.eta) < 1.5) + - (abs(leg2.eta) < 1.5) + - ((leg1.deltaR(leg2) < 1.4)) + - ((leg1.charge*leg2.charge < 0.0)) + - ((abs(leg2.z0-leg1.z0) < 1)) + - ((leg1.deltaR(leg2) > 0)) + leg1: + threshold_cut: pt > 0 + obj: L1gmtTkMuon:default + leg2: + threshold_cut: pt > 0 + obj: L1gmtTkMuon:default +L1_SingleTkPhoIso: + cross_masks: [] + leg1: + threshold_cut: offline_pt >= 36.0 + obj: L1tkPhoton:Iso + +L1_DoubleTkPhoIso: + cross_masks: [] + leg1: + threshold_cut: offline_pt >= 22.0 + obj: L1tkPhoton:Iso + leg2: + threshold_cut: offline_pt >= 12.0 + obj: L1tkPhoton:Iso +L1_PFTau_PFTau: + cross_masks: + - leg1.deltaR(leg2) > 0.5 + leg1: + threshold_cut: offline_pt > 90.0 + obj: L1caloTau:default + leg2: + threshold_cut: offline_pt > 90.0 + obj: L1caloTau:default +L1_SingleEGEle: + cross_masks: [] + leg1: + threshold_cut: offline_pt >= 51.0 + obj: L1EG:default:inclusive +L1_SinglePFTau: + cross_masks: [] + leg1: + threshold_cut: offline_pt > 150.0 + obj: L1caloTau:default +L1_SinglePfJet: + cross_masks: [] + leg1: + threshold_cut: offline_pt >= 230.0 + obj: L1puppiJetSC4:default +L1_SingleTkEle: + cross_masks: [] + leg1: + threshold_cut: offline_pt >= 36.0 + obj: L1tkElectron:NoIso:inclusive +L1_SingleTkEleIso: + cross_masks: [] + leg1: + threshold_cut: offline_pt > 28.0 + obj: L1tkElectron:Iso:inclusive +L1_SingleTkMu: + cross_masks: [] + leg1: + threshold_cut: offline_pt >= 22.0 + obj: L1gmtTkMuon:default +L1_TkEleIso_EG: + cross_masks: + - leg1.deltaR(leg2) > 0.1 + leg1: + threshold_cut: offline_pt >= 22.0 + obj: L1tkElectron:Iso:inclusive + leg2: + threshold_cut: offline_pt >= 12.0 + obj: L1EG:default:inclusive +L1_TkEleIso_PFHTT: + cross_masks: + - abs(leg2.z0-leg1.z0) < 1 + leg1: + threshold_cut: null + obj: L1PV:default + leg2: + threshold_cut: offline_pt >= 26.0 + obj: L1tkElectron:Iso:inclusive + leg3: + threshold_cut: offline_pt >= 190.0 + obj: L1puppiJetSC4sums:HT +L1_TkEleIso_PFIsoTau: + cross_masks: + - abs(leg2.z0-leg1.z0) < 1 + leg1: + threshold_cut: null + obj: L1PV:default + leg2: + threshold_cut: offline_pt >= 22.0 + obj: L1tkElectron:Iso:inclusive + leg3: + threshold_cut: offline_pt >= 45.0 + obj: L1nnPuppiTau:default +L1_TkEle_PFJet_dRMin: + cross_masks: + - abs(leg2.z0-leg1.z0) < 1 + - leg2.deltaR(leg3) > 0.3 + leg1: + threshold_cut: null + obj: L1PV:default + leg2: + threshold_cut: offline_pt >= 28.0 + obj: L1tkElectron:NoIso:inclusive + leg3: + threshold_cut: offline_pt >= 40.0 + obj: L1puppiJetSC4:default +L1_TkEle_TkMu: + cross_masks: + - abs(leg2.z0-leg1.z0) < 1 + leg1: + threshold_cut: offline_pt >= 10.0 + obj: L1tkElectron:NoIso:inclusive + leg2: + threshold_cut: offline_pt >= 20.0 + obj: L1gmtTkMuon:default +L1_TkMu_DoubleTkEle: + cross_masks: + - abs(leg2.z0-leg1.z0) < 1 + - abs(leg3.z0-leg1.z0) < 1 + leg1: + threshold_cut: pt > 6 + obj: L1gmtTkMuon:default + leg2: + threshold_cut: offline_pt >= 17.0 + obj: L1tkElectron:NoIso:inclusive + leg3: + threshold_cut: offline_pt >= 17.0 + obj: L1tkElectron:NoIso:inclusive +L1_TkMu_PfHTT: + cross_masks: + - abs(leg2.z0-leg1.z0) < 1 + leg1: + threshold_cut: null + obj: L1PV:default + leg2: + threshold_cut: pt > 6 + obj: L1gmtTkMuon:default + leg3: + threshold_cut: offline_pt >= 320.0 + obj: L1puppiJetSC4sums:HT +L1_TkMu_PfJet_PfMet: + cross_masks: + - abs(leg2.z0-leg1.z0) < 1 + leg1: + threshold_cut: null + obj: L1PV:default + leg2: + threshold_cut: pt > 3 + obj: L1gmtTkMuon:default + leg3: + threshold_cut: offline_pt >= 110.0 + obj: L1puppiJetSC4:default + leg4: + threshold_cut: offline_pt >= 120.0 + obj: L1puppiMET:default +L1_TkMu_TkEle: + cross_masks: + - abs(leg2.z0-leg1.z0) < 1 + leg1: + threshold_cut: pt > 7 + obj: L1gmtTkMuon:default + leg2: + threshold_cut: offline_pt >= 23.0 + obj: L1tkElectron:NoIso:inclusive +L1_TkMu_TkEleIso: + cross_masks: + - abs(leg2.z0-leg1.z0) < 1 + leg1: + threshold_cut: pt > 7 + obj: L1gmtTkMuon:default + leg2: + threshold_cut: offline_pt >= 20.0 + obj: L1tkElectron:Iso:inclusive +L1_TripleTkMu: + cross_masks: + - abs(leg2.z0-leg1.z0) < 1 + - abs(leg3.z0-leg1.z0) < 1 + leg1: + threshold_cut: pt > 5 + obj: L1gmtTkMuon:default + leg2: + threshold_cut: pt > 3 + obj: L1gmtTkMuon:default + leg3: + threshold_cut: pt > 3 + obj: L1gmtTkMuon:default +L1_TripleTkMu_5SQ_3SQ_0OQ_DoubleMu_5_3_SQ_OS_Mass_Max9: + cross_masks: + - (leg1+leg2).mass < 9.0 + - leg1.charge*leg2.charge < 0.0 + - abs(leg2.z0-leg1.z0) < 1 + - abs(leg3.z0-leg1.z0) < 1 + leg1: + threshold_cut: pt > 5 + obj: L1gmtTkMuon:default + leg2: + threshold_cut: pt > 3 + obj: L1gmtTkMuon:default + leg3: + threshold_cut: pt > 0 + obj: L1gmtTkMuon:default +L1_TripleTkMu_5_3p5_2p5_OS_Mass_5to17: + cross_masks: + - abs(leg2.z0-leg1.z0) < 1 + - leg1.charge*leg3.charge < 0.0 + - (leg1+leg3).mass > 5.0 + - (leg1+leg3).mass < 17.0 + - abs(leg3.z0-leg1.z0) < 1 + leg1: + threshold_cut: pt > 5 + obj: L1gmtTkMuon:default + leg2: + threshold_cut: pt > 3.5 + obj: L1gmtTkMuon:default + leg3: + threshold_cut: pt > 2.5 + obj: L1gmtTkMuon:default +L1_DoubleTkEle_PFHTT: + cross_masks: + - (abs(leg2.z0-leg1.z0) < 1 & (leg2.deltaR(leg3) > 0)) + - (abs(leg3.z0-leg1.z0) < 1 & (leg2.deltaR(leg3) > 0)) + - (leg3.deltaR(leg2) > 0) + leg1: + threshold_cut: null + obj: L1PV:default + leg2: + threshold_cut: offline_pt > 8.0 + obj: L1tkElectron:NoIso:inclusive + leg3: + threshold_cut: offline_pt > 8.0 + obj: L1tkElectron:NoIso:inclusive + leg4: + threshold_cut: offline_pt > 390.0 + obj: L1puppiJetSC4sums:HT +L1_DoubleEGEle: + cross_masks: + - leg1.deltaR(leg2) > 0.1 + leg1: + threshold_cut: offline_pt >= 37.0 + obj: L1EG:default:inclusive + leg2: + threshold_cut: offline_pt >= 24.0 + obj: L1EG:default:inclusive +L1_DoublePFJet_MassMin: + cross_masks: + - (leg1 + leg2).mass > 620 + leg1: + threshold_cut: offline_pt >= 160.0 + obj: L1puppiJetSC4:default + leg2: + threshold_cut: offline_pt >= 35.0 + obj: L1puppiJetSC4:default +L1_DoublePFJet_dEtaMax: + cross_masks: + - abs(leg2.eta-leg1.eta) < 1.6 + leg1: + threshold_cut: leg1.offline_pt >= 112.0 + obj: L1puppiJetSC4:default + leg2: + threshold_cut: leg2.offline_pt >= 112.0 + obj: L1puppiJetSC4:default +L1_DoubleTkEle: + cross_masks: + - abs(leg2.z0-leg1.z0) < 1 + leg1: + threshold_cut: offline_pt >= 25.0 + obj: L1tkElectron:NoIso:inclusive + leg2: + threshold_cut: offline_pt >= 12.0 + obj: L1tkElectron:NoIso:inclusive +L1_DoubleTkMu: + cross_masks: + - ((abs(leg1.z0-leg2.z0) < 1) & (leg1.deltaR(leg2) > 0)) + leg1: + threshold_cut: offline_pt > 15.0 + obj: L1gmtTkMuon:default + leg2: + threshold_cut: pt > 7 + obj: L1gmtTkMuon:default +L1_DoubleTkMu4_SQ_OS_dR_Max1p2: + cross_masks: + - ((leg1.deltaR(leg2) < 1.2) & (leg1.deltaR(leg2) > 0)) + - ((leg1.charge*leg2.charge < 0.0) & (leg1.deltaR(leg2) > 0)) + - ((abs(leg2.z0-leg1.z0) < 1) & (leg1.deltaR(leg2) > 0)) + leg1: + threshold_cut: pt > 4 + obj: L1gmtTkMuon:default + leg2: + threshold_cut: pt > 4 + obj: L1gmtTkMuon:default +L1_DoubleTkMu_PfHTT: + cross_masks: + - (abs(leg2.z0-leg1.z0) < 1 & (leg3.deltaR(leg2) > 0)) + - (abs(leg3.z0-leg1.z0) < 1 & (leg3.deltaR(leg2) > 0)) + - (leg3.deltaR(leg2) > 0) + leg1: + threshold_cut: null + obj: L1PV:default + leg2: + threshold_cut: pt > 3 + obj: L1gmtTkMuon:default + leg3: + threshold_cut: pt > 3 + obj: L1gmtTkMuon:default + leg4: + threshold_cut: offline_pt >= 300.0 + obj: L1puppiJetSC4sums:HT +L1_DoubleTkMu_PfJet_PfMet: + cross_masks: + - abs(leg2.z0-leg1.z0) < 1 + - abs(leg3.z0-leg1.z0) < 1 + leg1: + threshold_cut: null + obj: L1PV:default + leg2: + threshold_cut: pt > 3 + obj: L1gmtTkMuon:default + leg3: + threshold_cut: pt > 3 + obj: L1gmtTkMuon:default + leg4: + threshold_cut: offline_pt >= 60.0 + obj: L1puppiJetSC4:default + leg5: + threshold_cut: offline_pt >= 130.0 + obj: L1puppiMET:default +L1_DoubleTkMu_TkEle: + cross_masks: + - abs(leg2.z0-leg1.z0) < 1 + - abs(leg3.z0-leg1.z0) < 1 + leg1: + threshold_cut: pt > 5 + obj: L1gmtTkMuon:default + leg2: + threshold_cut: pt > 5 + obj: L1gmtTkMuon:default + leg3: + threshold_cut: offline_pt >= 9.0 + obj: L1tkElectron:NoIso:inclusive +L1_PFHTT_QuadJet: + cross_masks: [] + leg1: + threshold_cut: offline_pt >= 400.0 + obj: L1puppiJetSC4sums:HT + leg2: + threshold_cut: offline_pt >= 70.0 + obj: L1puppiJetSC4:default + leg3: + threshold_cut: offline_pt >= 55.0 + obj: L1puppiJetSC4:default + leg4: + threshold_cut: offline_pt >= 40.0 + obj: L1puppiJetSC4:default + leg5: + threshold_cut: offline_pt >= 40.0 + obj: L1puppiJetSC4:default +L1_PFIsoTau_PFIsoTau: + cross_masks: + - leg1.deltaR(leg2) > 0.5 + leg1: + threshold_cut: offline_pt >= 52.0 + obj: L1nnPuppiTau:default + leg2: + threshold_cut: offline_pt >= 52.0 + obj: L1nnPuppiTau:default +L1_PFIsoTau_PFMet: + cross_masks: [] + leg1: + threshold_cut: offline_pt >= 55.0 + obj: L1nnPuppiTau:default + leg2: + threshold_cut: offline_pt >= 190.0 + obj: L1puppiMET:default +L1_PFIsoTau_TkMu: + cross_masks: + - abs(leg3.z0-leg1.z0) < 1 + leg1: + threshold_cut: null + obj: L1PV:default + leg2: + threshold_cut: offline_pt >= 42.0 + obj: L1nnPuppiTau:default + leg3: + threshold_cut: offline_pt >= 18.0 + obj: L1gmtTkMuon:default diff --git a/configs/scaling_thresholds.yaml b/configs/scaling_thresholds.yaml index 75535cd4..51bb363d 100644 --- a/configs/scaling_thresholds.yaml +++ b/configs/scaling_thresholds.yaml @@ -1,9 +1,10 @@ ### General Values # Jet: [50, 100, 150] -Jet: [25, 30, 35, 40, 45, 50, 55, 60, 70, 75, 80, 85, 90, 100, 120, 125, 130, 140, 150, 175] +# Jet: [25, 30, 35, 40, 45, 50, 55, 60, 70, 75, 80, 85, 90, 100, 120, 125, 130, 140, 150, 175] +Jet: [30, 40, 50, 70, 90, 120, 150, 175] Muon: [7, 9, 10, 12, 14, 15, 17, 20, 26, 25, 27, 30] Tau: [27, 30, 40, 50, 60, 70] -EG: [7, 9, 12, 14, 15, 20, 25, 30, 40, 50] +EG: [7, 9, 12, 15, 20, 25, 30, 40, 50] MET: [30, 40, 50, 60, 70, 80, 90, 100] MHT: [70, 80, 90, 100, 125] HT: [50, 100, 150, 200, 250, 300] diff --git a/menu_tools/rate_plots/plotter.py b/menu_tools/rate_plots/plotter.py index 1d23d8c8..0189f360 100644 --- a/menu_tools/rate_plots/plotter.py +++ b/menu_tools/rate_plots/plotter.py @@ -60,11 +60,13 @@ def _style_plot(self, fig, ax0, ax1=None, legend_loc="upper right"): ax0.set_yscale("log") ax0.grid() ax0.tick_params(direction="in") + xlabel = rf"{self._online_offline} $p_T$ [GeV]" + if ax1: - ax1.set_xlabel(rf"{self._online_offline} $p_T$ [GeV]") + ax1.set_xlabel(xlabel) ax1.grid() else: - ax0.set_xlabel(rf"{self._online_offline} $p_T$ [GeV]") + ax0.set_xlabel(xlabel) fig.tight_layout() def _plot_single_version_rate_curves(self): @@ -85,6 +87,11 @@ def _plot_single_version_rate_curves(self): xvals = list(rate_values.keys()) yvals = list(rate_values.values()) label = f"{obj_instances[version].plot_label}" + xlabel = rf"{self._online_offline} $p_T$ [GeV]" + + obj_spec_split = obj_specifier.split(":") + if len(obj_spec_split) == 3: + label += f", {obj_spec_split[2]}" plot_dict[obj_specifier] = { "x_values": xvals, @@ -92,7 +99,7 @@ def _plot_single_version_rate_curves(self): "object": obj_instances[version].plot_label, "label": label, "version": version, - "xlabel": rf"{self._online_offline} $p_T$ [GeV]", + "xlabel": xlabel, } ax.plot( @@ -238,7 +245,7 @@ def _load_cached_arrays(self): return arr - def compute_rate(self, thresholds: np.ndarray) -> dict: + def compute_rate(self, thresholds: np.ndarray, nObj = 1) -> dict: """Computes rate at threholds after application of all object cuts. threshold: pt threshold for which to compute rate @@ -253,7 +260,9 @@ def compute_rate(self, thresholds: np.ndarray) -> dict: pt_field = "offline_pt" if self.apply_offline_conversion else "pt" if (max_pt_obj := self.arrays[obj_mask][pt_field]).ndim > 1: - max_pt_obj = ak.max(max_pt_obj, axis=1) + # max_pt_obj = ak.max(max_pt_obj, axis=1) + max_pt_obj = max_pt_obj[ak.argsort(max_pt_obj, axis=1, ascending=False)][:,nObj-1:] + max_pt_obj = ak.fill_none(ak.firsts(max_pt_obj), -1) cumsum = np.cumsum( np.histogram(max_pt_obj, bins=[-1] + list(thresholds) + [1e5])[0] @@ -307,7 +316,7 @@ def _compute_rates( apply_offline_conversion, ) - rate_data[version] = rate_computer.compute_rate(self.get_bins(plot_config)) + rate_data[version] = rate_computer.compute_rate(self.get_bins(plot_config), nObj = plot_config.nObjects) return rate_data @@ -328,6 +337,9 @@ def run(self, apply_offline_conversion: bool = False) -> None: plot_config = RatePlotConfig(cfg_plot, plot_name) rate_plot_data = {} + if plot_config.nObjects > 1: + print(f"## Warning! Making rates for {plot_config.nObjects} objects!") + # Iterate over test objects in plot for ( obj_specifier, diff --git a/menu_tools/rate_table/menu_table.py b/menu_tools/rate_table/menu_table.py index 69ca42ac..f608a9be 100644 --- a/menu_tools/rate_table/menu_table.py +++ b/menu_tools/rate_table/menu_table.py @@ -411,7 +411,7 @@ def dump_masks(self) -> None: f"{self.config.table_fname}_{self.config.version}_masks.parquet", ) print(f"Dumping masks of seeds to `{out_path}`") - ak.to_parquet(ak.zip(self._seed_masks), out_path) + ak.to_parquet(ak.zip(self._seed_masks), out_path, compression = "LZ4") def save_table(self) -> None: """Function that saves to file the table produced by `make_table`.""" diff --git a/menu_tools/utils/compare_json-wNano.ipynb b/menu_tools/utils/compare_json-wNano.ipynb index 418573f5..38ecd662 100644 --- a/menu_tools/utils/compare_json-wNano.ipynb +++ b/menu_tools/utils/compare_json-wNano.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "id": "d44d7c5e", "metadata": { "scrolled": true @@ -28,7 +28,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "id": "8d2dcafd", "metadata": {}, "outputs": [], @@ -40,65 +40,29 @@ ] }, { - "cell_type": "code", - "execution_count": 3, - "id": "b66a8e5f", + "cell_type": "markdown", + "id": "0401ce63", "metadata": {}, - "outputs": [], - "source": [] + "source": [ + "# Combined function for scalings and turnons" + ] }, { "cell_type": "markdown", - "id": "0401ce63", + "id": "d4ab4dbd", "metadata": {}, "source": [ - "# Combined function for scalings and turnons" + "# Compare graphs within one plot" ] }, { "cell_type": "code", "execution_count": 4, - "id": "a842c1df", + "id": "b674a828", "metadata": {}, "outputs": [], "source": [ - "def remap_nano_key(key):\n", - " if \"StaMu\" in key: key = key.replace(\"StaMu\",\"gmtMuon\")\n", - "\n", - "# print(\"before\", key)\n", - "\n", - " if \"L1puppiJetSC4sums:HT\" in key:\n", - " key = key.replace(\"L1puppiJetSC4sums:HT\",\"seededConePuppiHT:default\")\n", - " if \"L1puppiJetSC4sums:MHT\" in key:\n", - " key = key.replace(\"L1puppiJetSC4sums:MHT\",\"seededConePuppiMHT:default\")\n", - " \n", - " if \"nnPuppiTau\" in key:\n", - " key = key.replace(\"nnPuppiTau\",\"nnTau\")\n", - " \n", - " if \"L1puppiHistoJetSums:HT\" in key:\n", - " key = key.replace(\"L1puppiHistoJetSums:HT\",\"phase1PuppiHT:default\")\n", - " if \"L1puppiHistoJetSums:MHT\" in key:\n", - " key = key.replace(\"L1puppiHistoJetSums:MHT\",\"phase1PuppiMHT:default\")\n", - "\n", - " if \"L1TrackHT:HT\" in key:\n", - " key = key.replace(\"L1TrackHT:HT\",\"trackerHT:default\")\n", - " if \"L1TrackHT:MHT\" in key:\n", - " key = key.replace(\"L1TrackHT:MHT\",\"trackerMHT:default\")\n", - " if \"L1TrackMET\" in key:\n", - " key = key.replace(\"L1TrackMET\",\"trackerMET\")\n", - " if \"L1TrackJet\" in key:\n", - " key = key.replace(\"L1TrackJet\",\"trackerJet\")\n", - " \n", - " if \"puppiJetHisto\" in key: key = key.replace(\"puppiJetHisto\",\"phase1PuppiJet\")\n", - " if \"puppiJetSC4\" in key: key = key.replace(\"puppiJetSC4\",\"seededConePuppiJet\") \n", - "# if \"L1caloJet\" in key: key = key.replace(\"puppiJetHisto\",\"phase1PuppiJet\")\n", - "\n", - " key = key.replace(\"L1\",\"\")\n", - "# print(\"after\", key)\n", - "\n", - " return key\n", - "\n", - "def comp_plots(nano_plot,menu_plot, sfxs = [\"v22\",\"v27\"], ptype = \"turnon\",\n", + "def comp_nano_plots(nano_plot,menu_plot, sfxs = [\"v22\",\"v27\"], ptype = \"turnon\",\n", " lss = [\"-\",\"--\"], keys = None, markers = [\"o\",\"s\"]):\n", " \n", " fig, axs = plt.subplots(2,1,figsize=(10, 12),\n", @@ -107,31 +71,28 @@ " hep.cms.label(ax=axs[0], llabel=\"Phase-2 Simulation\", rlabel = \"14 TeV\")\n", "\n", " if keys is None: keys = nano_plot.keys()\n", + " \n", " # clean keys\n", " clean_keys = []\n", " for key in keys:\n", + "# if \"inclusive\" not in key: continue\n", + "\n", " if key in ['xlabel', 'ylabel', 'watermark']: \n", " continue\n", " if key not in nano_plot.keys():\n", " print(f\"Warning: {key} not in plot 1 keys. Skipping...\")\n", " continue\n", - " if remap_nano_key(key) not in menu_plot.keys():\n", + " if key not in menu_plot.keys():\n", " print(menu_plot.keys())\n", " print(f\"Warning: {key} not in plot 2 keys. Skipping...\")\n", " continue\n", " clean_keys.append(key)\n", " \n", - "# if ptype == \"rate\":\n", - "# xval_str = \"x_values\"\n", - "# yval_str = \"y_values\"\n", - "# else:\n", - "# xval_str = \"xvals\"\n", - "# yval_str = \"yvals\"\n", - " \n", - " \n", " for j,key in enumerate(clean_keys):\n", + "# if \"KMTF\" not in key: continue\n", + "\n", " ## plot 1\n", - " plots = [nano_plot[key],menu_plot[remap_nano_key(key)]]\n", + " plots = [nano_plot[key],menu_plot[key]]\n", " color = f\"C{j}\"\n", "\n", " for i,p1 in enumerate(plots):\n", @@ -203,7 +164,8 @@ " if ptype == \"rate\":\n", " axs[1].set_ylabel(f\"({sfxs[0]}-{sfxs[1]})/{sfxs[1]}\", fontsize = \"x-small\")\n", " axs[0].set_yscale(\"log\")\n", - " axs[1].set_xlabel(\"Threshold [GeV]\")\n", + "# axs[1].set_xlabel(\"Threshold [GeV]\")\n", + " axs[1].set_xlabel(nano_plot[key][\"xlabel\"])\n", " axs[0].set_ylabel(\"Rate [kHz]\")\n", " else:\n", " axs[1].set_ylabel(f\"{sfxs[0]} - {sfxs[1]}\", fontsize = \"x-small\")\n", @@ -226,79 +188,43 @@ }, { "cell_type": "code", - "execution_count": 7, - "id": "6011aaf0", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "V33nano_Offline_JetDefaultRates.json\n", - "V31_Offline_JetDefaultRates.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/comparisons/V33nanovsV31/object_performance/rates/V33nanovsV31_Offline_JetDefaultRates.png\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V31/object_performance/rates/V31_Offline_JetSC8Rates.json does not exist\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V31/object_performance/rates/V31_Offline_JetSC8Rates_byRegion.json does not exist\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V31/object_performance/rates/V31_Offline_JetSC8Rates_byRegion2.json does not exist\n", - "V33nano_Offline_JetsByRegion.json\n", - "V31_Offline_JetsByRegion.json\n", - "dict_keys(['phase1PuppiJet:default:barrel', 'phase1PuppiJet:default:endcap', 'phase1PuppiJet:default:forward', 'seededConePuppiJet:default:barrel', 'seededConePuppiJet:default:endcap', 'seededConePuppiJet:default:forward', 'caloJet:default:barrel', 'caloJet:default:endcap', 'caloJet:default:forward'])\n", - "Warning: L1TrackJet:default:barrel not in plot 2 keys. Skipping...\n", - "dict_keys(['phase1PuppiJet:default:barrel', 'phase1PuppiJet:default:endcap', 'phase1PuppiJet:default:forward', 'seededConePuppiJet:default:barrel', 'seededConePuppiJet:default:endcap', 'seededConePuppiJet:default:forward', 'caloJet:default:barrel', 'caloJet:default:endcap', 'caloJet:default:forward'])\n", - "Warning: L1TrackJet:default:endcap not in plot 2 keys. Skipping...\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/comparisons/V33nanovsV31/object_performance/rates/V33nanovsV31_Offline_JetsByRegion.png\n", - "V33nano_Online_JetDefaultRates.json\n", - "V31_Online_JetDefaultRates.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/comparisons/V33nanovsV31/object_performance/rates/V33nanovsV31_Online_JetDefaultRates.png\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V31/object_performance/rates/V31_Online_JetExtendedRates.json does not exist\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V31/object_performance/rates/V31_Online_JetSC8Rates.json does not exist\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V31/object_performance/rates/V31_Online_JetSC8Rates_byRegion.json does not exist\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V31/object_performance/rates/V31_Online_JetSC8Rates_byRegion2.json does not exist\n", - "V33nano_Online_JetsByRegion.json\n", - "V31_Online_JetsByRegion.json\n", - "dict_keys(['phase1PuppiJet:default:barrel', 'phase1PuppiJet:default:endcap', 'seededConePuppiJet:default:barrel', 'seededConePuppiJet:default:endcap'])\n", - "Warning: L1puppiJetSC4:default:forward not in plot 2 keys. Skipping...\n", - "dict_keys(['phase1PuppiJet:default:barrel', 'phase1PuppiJet:default:endcap', 'seededConePuppiJet:default:barrel', 'seededConePuppiJet:default:endcap'])\n", - "Warning: L1caloJet:default:barrel not in plot 2 keys. Skipping...\n", - "dict_keys(['phase1PuppiJet:default:barrel', 'phase1PuppiJet:default:endcap', 'seededConePuppiJet:default:barrel', 'seededConePuppiJet:default:endcap'])\n", - "Warning: L1caloJet:default:endcap not in plot 2 keys. Skipping...\n", - "dict_keys(['phase1PuppiJet:default:barrel', 'phase1PuppiJet:default:endcap', 'seededConePuppiJet:default:barrel', 'seededConePuppiJet:default:endcap'])\n", - "Warning: L1caloJet:default:forward not in plot 2 keys. Skipping...\n", - "dict_keys(['phase1PuppiJet:default:barrel', 'phase1PuppiJet:default:endcap', 'seededConePuppiJet:default:barrel', 'seededConePuppiJet:default:endcap'])\n", - "Warning: L1TrackJet:default:barrel not in plot 2 keys. Skipping...\n", - "dict_keys(['phase1PuppiJet:default:barrel', 'phase1PuppiJet:default:endcap', 'seededConePuppiJet:default:barrel', 'seededConePuppiJet:default:endcap'])\n", - "Warning: L1TrackJet:default:endcap not in plot 2 keys. Skipping...\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/comparisons/V33nanovsV31/object_performance/rates/V33nanovsV31_Online_JetsByRegion.png\n", - "CPU times: user 11.3 s, sys: 3.25 s, total: 14.5 s\n", - "Wall time: 16 s\n" - ] - } - ], + "execution_count": null, + "id": "d7bb1ff1", + "metadata": {}, + "outputs": [], "source": [ "%%time\n", "# %%capture\n", "\n", - "v0 = \"V33nano\"\n", - "# v0 = \"V29\"\n", - "# v0 = \"V32nano\"\n", - "# v0 = \"V31\"\n", + "# v0 = \"V39nano_DT13x\"\n", + "# v0 = \"V38nano_DT12x\"\n", "\n", - "v0_jsons = glob(\n", - "# f\"/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/tool_refact_test/object_performance/{v0}//s*/**.json\")\n", - " f\"/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/{v0}/object_performance/r*/*Jet*.json\")\n", + "v0 = \"V44nano\"\n", "\n", - "# v1 = \"V29\"\n", - "# v1 = \"V32\"\n", + "v1 = \"V38nano_DT12x\"\n", + "# v1 = \"V38nano\"\n", + "\n", + "# v1 = \"V33nano\"\n", "# v1 = \"V32nano\"\n", - "v1 = \"V31\"\n", - "# v1 = \"V30\"\n", - "# v1 = \"V29\"\n", - "# v0 = \"JetMatchingBarrel_-999\"\n", - "# v1 = \"JetMatchingBarrel_GenRefPtBelow50_-999\"\n", - "# v0 = \"90perc\"\n", - "# v1 = \"50perc\"\n", + "# v1 = \"V35nano_Tk5param\"\n", + "# v1 = \"V35nano_ModTT\"\n", + "\n", + "# v1 = \"V36nano_noTT\"\n", + "# v1 = \"V38nano\"\n", + "# v1 = \"V39nano_DT12x\"\n", + "# v1 = \"V39nano_DT13x\"\n", + "\n", + "\n", + "# v1 = \"V32nano\"\n", + "v0_jsons = glob(\n", + "# f\"/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/tool_refact_test/object_performance/{v0}//*/*.json\")\n", + " f\"/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/{v0}/object_performance/r*/*Jet*Reg*.json\")\n", + "\n", + "\n", + "# v0 = \"Run3Winter24\"\n", + "# v1 = \"Run3Summer23Bpix\"\n", + "# v0_jsons = glob(\n", + "# f\"/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//{v0}/*/*Of**.json\")\n", "\n", "# outdir = \"https://alobanov.web.cern.ch/L1T/Phase2/menu/plots/tools/comparison/%svs%s\"%(v0,v1)\n", "\n", @@ -309,15 +235,20 @@ " print(v1_json + \" does not exist\")\n", " continue\n", "# continue\n", + "\n", + " print(os.path.basename(v0_json))\n", + " print(os.path.basename(v1_json))\n", + " \n", + " if \"Offline_JetExtendedRates\" in v0_json: \n", + " print(f\"SKIPPING {v0_json}\")\n", + " continue\n", " \n", "# print(\"1\")\n", " plot1 = load_json(v0_json)\n", "# print(\"2\")\n", " plot2 = load_json(v1_json)\n", - "\n", - " print(os.path.basename(v0_json))\n", - " print(os.path.basename(v1_json))\n", " \n", + " \n", " if \"turnon\" in v0_json:\n", " ptype = \"turnon\"\n", " elif \"scaling\" in v0_json:\n", @@ -328,13 +259,13 @@ " print(\"WARNING, unsupported plot type\")\n", " continue\n", " \n", - " f = comp_plots(plot1,plot2, sfxs = [v0,v1], \n", + " f = comp_nano_plots(plot1,plot2, sfxs = [v0,v1], \n", " lss = [\"-\",\"--\"],\n", "# lss = [\"\",\"\"],\n", " markers = [\".\",\"o\"],\n", " ptype = ptype)\n", " \n", - " #outfname = v0_json.replace(v0,\"%svs%s\"%(v0,v1)).replace(\".json\",\".png\").replace(\"tools\",\"tools/comparisons\")\n", + "# outfname = v0_json.replace(v0,\"%svs%s\"%(v0,v1)).replace(\".json\",\".png\").replace(\"tools\",\"tools/comparisons\")\n", " outfname = v0_json.replace(v0,\"%svs%s\"%(v0,v1)).replace(\".json\",\".png\").replace(\"%svs%s/\"%(v0,v1), \"comparisons/%svs%s/\"%(v0,v1))\n", " \n", "# break\n", @@ -350,185 +281,53 @@ " plt.savefig(outfname)\n", " \n", " plt.close()\n", + "# \n", "# break " ] }, { - "cell_type": "markdown", - "id": "d4ab4dbd", + "cell_type": "code", + "execution_count": null, + "id": "3a2892cb", "metadata": {}, - "source": [ - "# Compare graphs within one plot" - ] + "outputs": [], + "source": [] }, { "cell_type": "code", - "execution_count": 4, - "id": "b674a828", + "execution_count": null, + "id": "493b185b", "metadata": {}, "outputs": [], - "source": [ - "def comp_nano_plots(nano_plot,menu_plot, sfxs = [\"v22\",\"v27\"], ptype = \"turnon\",\n", - " lss = [\"-\",\"--\"], keys = None, markers = [\"o\",\"s\"]):\n", - " \n", - " fig, axs = plt.subplots(2,1,figsize=(10, 12),\n", - " sharex = True,\n", - " gridspec_kw={'height_ratios': [3, 1]}) \n", - " hep.cms.label(ax=axs[0], llabel=\"Phase-2 Simulation\", rlabel = \"14 TeV\")\n", - "\n", - " if keys is None: keys = nano_plot.keys()\n", - " # clean keys\n", - " clean_keys = []\n", - " for key in keys:\n", - " if key in ['xlabel', 'ylabel', 'watermark']: \n", - " continue\n", - " if key not in nano_plot.keys():\n", - " print(f\"Warning: {key} not in plot 1 keys. Skipping...\")\n", - " continue\n", - " if key not in menu_plot.keys():\n", - " print(menu_plot.keys())\n", - " print(f\"Warning: {key} not in plot 2 keys. Skipping...\")\n", - " continue\n", - " clean_keys.append(key)\n", - " \n", - " for j,key in enumerate(clean_keys):\n", - " ## plot 1\n", - " plots = [nano_plot[key],menu_plot[key]]\n", - " color = f\"C{j}\"\n", - "\n", - " for i,p1 in enumerate(plots):\n", - " sfx = sfxs[i]\n", - " label = f\"{sfx}, {p1['label']}\"\n", - "\n", - "\n", - " if ptype == \"scalings\":\n", - " axs[0].plot(p1[\"xvals\"],p1[\"yvals\"], color = color, marker = markers[i],\n", - " label = label, ls = lss[i], mfc=\"none\" if i == 1 else color)\n", - " elif ptype == \"turnon\":\n", - " p1[\"err_kwargs\"][\"marker\"] = markers[i]\n", - " p1[\"err_kwargs\"][\"xerr\"] = None\n", - "\n", - " axs[0].errorbar(p1[\"xbins\"],p1[\"efficiency\"], yerr = p1[\"efficiency_err\"], \n", - " label = label, ls = lss[i], color = color, mfc=\"none\" if i == 1 else color,\n", - " **(p1[\"err_kwargs\"])\n", - " )\n", - " \n", - " ## Make ratios\n", - " if ptype == \"scalings\":\n", - " d_p1 = dict(zip(plots[0][\"xvals\"],plots[0][\"yvals\"]))\n", - " d_p2 = dict(zip(plots[1][\"xvals\"],plots[1][\"yvals\"]))\n", - " elif ptype == \"turnon\":\n", - " d_p1 = dict(zip(plots[0][\"xbins\"],plots[0][\"efficiency\"]))\n", - " d_p2 = dict(zip(plots[1][\"xbins\"],plots[1][\"efficiency\"]))\n", - " \n", - " # add 100% eff line\n", - "# axs[0].axhline(1,ls = \":\", alpha = 0.5, c = \"k\")\n", - " \n", - " df_p1 = pd.Series(d_p1)\n", - " df_p2 = pd.Series(d_p2)\n", - " \n", - "# ax = axs[1]\n", - "\n", - " if (df_p1.sum()!=0) and (df_p1.sum()!=0):\n", - "\n", - " diff = (df_p1 - df_p2) \n", - "# diff /= df_p2\n", - " label = p1[\"label\"].split(\",\")[0]\n", - " \n", - " diff.plot(ax = axs[1], color = color,label = label)#, marker = \".\", color = color)\n", - "# )\n", - " if ptype == \"turnon\":\n", - " if len(plots[0][\"efficiency_err\"][0]) != len(plots[1][\"efficiency_err\"][0]): continue\n", - " y_err = np.hypot(plots[0][\"efficiency_err\"][0], plots[1][\"efficiency_err\"][0])\n", - " if len(diff) != len(y_err): continue\n", - " axs[1].fill_between(diff.index,diff.values - y_err,diff.values + y_err,\n", - "# label = label, \n", - " alpha = 0.3, \n", - " color = color\n", - " )\n", - " \n", - " # make axis stuff\n", - " axs[0].legend(fontsize = \"x-small\")\n", - " #axs[1].set_ylabel(f\"({sfxs[0]}-{sfxs[1]})/{sfxs[1]}\", fontsize = \"x-small\")\n", - " axs[1].set_ylabel(f\"{sfxs[0]} - {sfxs[1]}\", fontsize = \"x-small\")\n", - " axs[1].legend(fontsize = \"x-small\")\n", - " \n", - " if ptype == \"scalings\":\n", - "# axs[0].set_ylabel(\"95 % Location [GeV]\")\n", - " axs[1].set_xlabel(\"Threshold [GeV]\")\n", - " elif ptype == \"turnon\":\n", - " axs[0].set_ylabel(nano_plot[\"ylabel\"], fontsize = \"small\")\n", - " axs[1].set_xlabel(nano_plot[\"xlabel\"])\n", - "\n", - " axs[1].set_ylim(-.1,.1)\n", - " \n", - " for ax in axs: ax.grid()\n", - " plt.tight_layout()\n", - " plt.subplots_adjust(wspace=0, hspace=0)\n", - "\n", - " return fig" - ] + "source": [] }, { "cell_type": "code", - "execution_count": 16, - "id": "d7bb1ff1", + "execution_count": null, + "id": "2377cd08", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ElectronsIsolation_Barrel_-999_V34nano.json\n", - "ElectronsIsolation_Barrel_-999_V33nano.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/comparisons/V34nanovsV33nano/object_performance/turnons/ElectronsIsolation_Barrel_-999_V34nanovsV33nano.png\n", - "ElectronsIsolation_Endcap_-999_V34nano.json\n", - "ElectronsIsolation_Endcap_-999_V33nano.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/comparisons/V34nanovsV33nano/object_performance/turnons/ElectronsIsolation_Endcap_-999_V34nanovsV33nano.png\n", - "ElectronsMatchingBarrel_-999_V34nano.json\n", - "ElectronsMatchingBarrel_-999_V33nano.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/comparisons/V34nanovsV33nano/object_performance/turnons/ElectronsMatchingBarrel_-999_V34nanovsV33nano.png\n", - "ElectronsMatchingEndcap_-999_V34nano.json\n", - "ElectronsMatchingEndcap_-999_V33nano.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/comparisons/V34nanovsV33nano/object_performance/turnons/ElectronsMatchingEndcap_-999_V34nanovsV33nano.png\n", - "ElectronsMatching_Eta_Pt10to25_-999_V34nano.json\n", - "ElectronsMatching_Eta_Pt10to25_-999_V33nano.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/comparisons/V34nanovsV33nano/object_performance/turnons/ElectronsMatching_Eta_Pt10to25_-999_V34nanovsV33nano.png\n", - "ElectronsMatching_Eta_Pt25toInf_-999_V34nano.json\n", - "ElectronsMatching_Eta_Pt25toInf_-999_V33nano.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/comparisons/V34nanovsV33nano/object_performance/turnons/ElectronsMatching_Eta_Pt25toInf_-999_V34nanovsV33nano.png\n", - "ElectronsTriggerBarrel_10_V34nano.json\n", - "ElectronsTriggerBarrel_10_V33nano.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/comparisons/V34nanovsV33nano/object_performance/turnons/ElectronsTriggerBarrel_10_V34nanovsV33nano.png\n", - "ElectronsTriggerBarrel_20_V34nano.json\n", - "ElectronsTriggerBarrel_20_V33nano.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/comparisons/V34nanovsV33nano/object_performance/turnons/ElectronsTriggerBarrel_20_V34nanovsV33nano.png\n", - "ElectronsTriggerBarrel_30_V34nano.json\n", - "ElectronsTriggerBarrel_30_V33nano.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/comparisons/V34nanovsV33nano/object_performance/turnons/ElectronsTriggerBarrel_30_V34nanovsV33nano.png\n", - "CPU times: user 9.56 s, sys: 2.32 s, total: 11.9 s\n", - "Wall time: 10.3 s\n" - ] - } - ], + "outputs": [], "source": [ "%%time\n", "# %%capture\n", "\n", - "v0 = \"V34nano\"\n", - "v1 = \"V33nano\"\n", - "\n", "# v0 = \"V33nano\"\n", - "# v1 = \"V32nano\"\n", - "v0_jsons = glob(\n", - "# f\"/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/tool_refact_test/object_performance/{v0}//*/*.json\")\n", - " f\"/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/{v0}/object_performance/*/*El*.json\")\n", + "# v0 = \"V29\"\n", + "v0 = \"Run3Winter24\"\n", + "# v0 = \"V32\"\n", "\n", + "v0_jsons = glob(\n", + " f\"/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//{v0}/*/*Iso*.json\")\n", "\n", - "# v0 = \"Run3Winter24\"\n", - "# v1 = \"Run3Summer23Bpix\"\n", - "# v0_jsons = glob(\n", - "# f\"/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//{v0}/*/*Of**.json\")\n", + "# v1 = \"V29\"\n", + "v1 = \"Run3Summer23Bpix\"\n", + "# v1 = \"V31\"\n", + "# v1 = \"V30\"\n", + "# v1 = \"V29\"\n", + "# v0 = \"JetMatchingBarrel_-999\"\n", + "# v1 = \"JetMatchingBarrel_GenRefPtBelow50_-999\"\n", + "# v0 = \"90perc\"\n", + "# v1 = \"50perc\"\n", "\n", "# outdir = \"https://alobanov.web.cern.ch/L1T/Phase2/menu/plots/tools/comparison/%svs%s\"%(v0,v1)\n", "\n", @@ -554,8 +353,7 @@ " markers = [\".\",\"o\"],\n", " ptype = \"turnon\" if \"turnon\" in v0_json else \"scalings\")\n", " \n", - "# outfname = v0_json.replace(v0,\"%svs%s\"%(v0,v1)).replace(\".json\",\".png\").replace(\"tools\",\"tools/comparisons\")\n", - " outfname = v0_json.replace(v0,\"%svs%s\"%(v0,v1)).replace(\".json\",\".png\").replace(\"%svs%s/\"%(v0,v1), \"comparisons/%svs%s/\"%(v0,v1))\n", + " outfname = v0_json.replace(v0,\"%svs%s\"%(v0,v1)).replace(\".json\",\".png\").replace(\"tools\",\"tools/comparisons\")\n", " \n", "# break\n", " \n", @@ -567,6 +365,7 @@ "\n", " # save pdf\n", " outfname = outfname.replace(\".png\",\".pdf\")\n", + " print(outfname)\n", " plt.savefig(outfname)\n", " \n", " plt.close()\n", @@ -576,201 +375,11 @@ }, { "cell_type": "code", - "execution_count": null, - "id": "3a2892cb", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "493b185b", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "2377cd08", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "HHbbWW_MET_90perc_Run3Winter24.json\n", - "HHbbWW_MET_90perc_Run3Summer23Bpix.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/scalings/HHbbWW_MET_90perc_Run3Winter24vsRun3Summer23Bpix.png\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/scalings/HHbbWW_MET_90perc_Run3Winter24vsRun3Summer23Bpix.pdf\n", - "JetTurnonBarrel_HHbbWW_Run3Winter24.json\n", - "JetTurnonBarrel_HHbbWW_Run3Summer23Bpix.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/scalings/JetTurnonBarrel_HHbbWW_Run3Winter24vsRun3Summer23Bpix.png\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/scalings/JetTurnonBarrel_HHbbWW_Run3Winter24vsRun3Summer23Bpix.pdf\n", - "JetTurnonEndcap_HHbbWW_Run3Winter24.json\n", - "JetTurnonEndcap_HHbbWW_Run3Summer23Bpix.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/scalings/JetTurnonEndcap_HHbbWW_Run3Winter24vsRun3Summer23Bpix.png\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/scalings/JetTurnonEndcap_HHbbWW_Run3Winter24vsRun3Summer23Bpix.pdf\n", - "JetTurnonForward_HHbbWW_Run3Winter24.json\n", - "JetTurnonForward_HHbbWW_Run3Summer23Bpix.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/scalings/JetTurnonForward_HHbbWW_Run3Winter24vsRun3Summer23Bpix.png\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/scalings/JetTurnonForward_HHbbWW_Run3Winter24vsRun3Summer23Bpix.pdf\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Summer23Bpix/scalings/MET_90perc_Run3Summer23Bpix.json does not exist\n", - "VBFHinv_MET_90perc_Run3Winter24.json\n", - "VBFHinv_MET_90perc_Run3Summer23Bpix.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/scalings/VBFHinv_MET_90perc_Run3Winter24vsRun3Summer23Bpix.png\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/scalings/VBFHinv_MET_90perc_Run3Winter24vsRun3Summer23Bpix.pdf\n", - "HHbbWW_MET_90perc_150_Run3Winter24.json\n", - "HHbbWW_MET_90perc_150_Run3Summer23Bpix.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/HHbbWW_MET_90perc_150_Run3Winter24vsRun3Summer23Bpix.png\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/HHbbWW_MET_90perc_150_Run3Winter24vsRun3Summer23Bpix.pdf\n", - "HHbbWW_MET_90perc_90_Run3Winter24.json\n", - "HHbbWW_MET_90perc_90_Run3Summer23Bpix.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/HHbbWW_MET_90perc_90_Run3Winter24vsRun3Summer23Bpix.png\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/HHbbWW_MET_90perc_90_Run3Winter24vsRun3Summer23Bpix.pdf\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Summer23Bpix/turnons/JetMatchingBarrel_HHbbWW_-999_Run3Summer23Bpix.json does not exist\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Summer23Bpix/turnons/JetMatchingEndcap_2p1_HHbbWW_-999_Run3Summer23Bpix.json does not exist\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Summer23Bpix/turnons/JetMatchingEndcap_HHbbWW_-999_Run3Summer23Bpix.json does not exist\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Summer23Bpix/turnons/JetMatchingForward_HHbbWW_-999_Run3Summer23Bpix.json does not exist\n", - "JetMatching_Eta_Pt100ToInf_HHbbWW_-999_Run3Winter24.json\n", - "JetMatching_Eta_Pt100ToInf_HHbbWW_-999_Run3Summer23Bpix.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/JetMatching_Eta_Pt100ToInf_HHbbWW_-999_Run3Winter24vsRun3Summer23Bpix.png\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/JetMatching_Eta_Pt100ToInf_HHbbWW_-999_Run3Winter24vsRun3Summer23Bpix.pdf\n", - "JetMatching_Eta_Pt100ToInf_VBFHinv_-999_Run3Winter24.json\n", - "JetMatching_Eta_Pt100ToInf_VBFHinv_-999_Run3Summer23Bpix.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/JetMatching_Eta_Pt100ToInf_VBFHinv_-999_Run3Winter24vsRun3Summer23Bpix.png\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/JetMatching_Eta_Pt100ToInf_VBFHinv_-999_Run3Winter24vsRun3Summer23Bpix.pdf\n", - "JetMatching_Eta_Pt40To100_HHbbWW_-999_Run3Winter24.json\n", - "JetMatching_Eta_Pt40To100_HHbbWW_-999_Run3Summer23Bpix.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/JetMatching_Eta_Pt40To100_HHbbWW_-999_Run3Winter24vsRun3Summer23Bpix.png\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/JetMatching_Eta_Pt40To100_HHbbWW_-999_Run3Winter24vsRun3Summer23Bpix.pdf\n", - "JetMatching_Eta_Pt40To100_VBFHinv_-999_Run3Winter24.json\n", - "JetMatching_Eta_Pt40To100_VBFHinv_-999_Run3Summer23Bpix.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/JetMatching_Eta_Pt40To100_VBFHinv_-999_Run3Winter24vsRun3Summer23Bpix.png\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/JetMatching_Eta_Pt40To100_VBFHinv_-999_Run3Winter24vsRun3Summer23Bpix.pdf\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Summer23Bpix/turnons/JetTrigger_Eta_Pt100ToInf_HHbbWW_100_Run3Summer23Bpix.json does not exist\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Summer23Bpix/turnons/JetTrigger_Eta_Pt100ToInf_HHbbWW_50_Run3Summer23Bpix.json does not exist\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Summer23Bpix/turnons/JetTrigger_Eta_Pt40To100_HHbbWW_100_Run3Summer23Bpix.json does not exist\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Summer23Bpix/turnons/JetTrigger_Eta_Pt40To100_HHbbWW_50_Run3Summer23Bpix.json does not exist\n", - "JetTurnonBarrel_HHbbWW_100_Run3Winter24.json\n", - "JetTurnonBarrel_HHbbWW_100_Run3Summer23Bpix.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/JetTurnonBarrel_HHbbWW_100_Run3Winter24vsRun3Summer23Bpix.png\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/JetTurnonBarrel_HHbbWW_100_Run3Winter24vsRun3Summer23Bpix.pdf\n", - "JetTurnonBarrel_HHbbWW_50_Run3Winter24.json\n", - "JetTurnonBarrel_HHbbWW_50_Run3Summer23Bpix.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/JetTurnonBarrel_HHbbWW_50_Run3Winter24vsRun3Summer23Bpix.png\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/JetTurnonBarrel_HHbbWW_50_Run3Winter24vsRun3Summer23Bpix.pdf\n", - "JetTurnonEndcap_HHbbWW_100_Run3Winter24.json\n", - "JetTurnonEndcap_HHbbWW_100_Run3Summer23Bpix.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/JetTurnonEndcap_HHbbWW_100_Run3Winter24vsRun3Summer23Bpix.png\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/JetTurnonEndcap_HHbbWW_100_Run3Winter24vsRun3Summer23Bpix.pdf\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "JetTurnonEndcap_HHbbWW_50_Run3Winter24.json\n", - "JetTurnonEndcap_HHbbWW_50_Run3Summer23Bpix.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/JetTurnonEndcap_HHbbWW_50_Run3Winter24vsRun3Summer23Bpix.png\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/JetTurnonEndcap_HHbbWW_50_Run3Winter24vsRun3Summer23Bpix.pdf\n", - "JetTurnonForward_HHbbWW_100_Run3Winter24.json\n", - "JetTurnonForward_HHbbWW_100_Run3Summer23Bpix.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/JetTurnonForward_HHbbWW_100_Run3Winter24vsRun3Summer23Bpix.png\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/JetTurnonForward_HHbbWW_100_Run3Winter24vsRun3Summer23Bpix.pdf\n", - "JetTurnonForward_HHbbWW_50_Run3Winter24.json\n", - "JetTurnonForward_HHbbWW_50_Run3Summer23Bpix.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/JetTurnonForward_HHbbWW_50_Run3Winter24vsRun3Summer23Bpix.png\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/JetTurnonForward_HHbbWW_50_Run3Winter24vsRun3Summer23Bpix.pdf\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Summer23Bpix/turnons/MET_90perc_150_Run3Summer23Bpix.json does not exist\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Summer23Bpix/turnons/MET_90perc_90_Run3Summer23Bpix.json does not exist\n", - "VBFHinv_MET_90perc_150_Run3Winter24.json\n", - "VBFHinv_MET_90perc_150_Run3Summer23Bpix.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/VBFHinv_MET_90perc_150_Run3Winter24vsRun3Summer23Bpix.png\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/VBFHinv_MET_90perc_150_Run3Winter24vsRun3Summer23Bpix.pdf\n", - "VBFHinv_MET_90perc_90_Run3Winter24.json\n", - "VBFHinv_MET_90perc_90_Run3Summer23Bpix.json\n", - "Saving plot /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/VBFHinv_MET_90perc_90_Run3Winter24vsRun3Summer23Bpix.png\n", - "/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//Run3Winter24vsRun3Summer23Bpix/turnons/VBFHinv_MET_90perc_90_Run3Winter24vsRun3Summer23Bpix.pdf\n", - "CPU times: user 26.5 s, sys: 7.43 s, total: 33.9 s\n", - "Wall time: 34.8 s\n" - ] - } - ], - "source": [ - "%%time\n", - "# %%capture\n", - "\n", - "# v0 = \"V33nano\"\n", - "# v0 = \"V29\"\n", - "v0 = \"Run3Winter24\"\n", - "# v0 = \"V32\"\n", - "\n", - "v0_jsons = glob(\n", - " f\"/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/test_run3/object_performance//{v0}/*/*.json\")\n", - "\n", - "# v1 = \"V29\"\n", - "v1 = \"Run3Summer23Bpix\"\n", - "# v1 = \"V31\"\n", - "# v1 = \"V30\"\n", - "# v1 = \"V29\"\n", - "# v0 = \"JetMatchingBarrel_-999\"\n", - "# v1 = \"JetMatchingBarrel_GenRefPtBelow50_-999\"\n", - "# v0 = \"90perc\"\n", - "# v1 = \"50perc\"\n", - "\n", - "# outdir = \"https://alobanov.web.cern.ch/L1T/Phase2/menu/plots/tools/comparison/%svs%s\"%(v0,v1)\n", - "\n", - "for v0_json in v0_jsons:\n", - " \n", - " v1_json = v0_json.replace(v0,v1)\n", - " if not os.path.exists(v1_json): \n", - " print(v1_json + \" does not exist\")\n", - " continue\n", - "# continue\n", - " \n", - "# print(\"1\")\n", - " plot1 = load_json(v0_json)\n", - "# print(\"2\")\n", - " plot2 = load_json(v1_json)\n", - " \n", - " print(os.path.basename(v0_json))\n", - " print(os.path.basename(v1_json))\n", - " \n", - " f = comp_nano_plots(plot1,plot2, sfxs = [v0,v1], \n", - " lss = [\"-\",\"--\"],\n", - "# lss = [\"\",\"\"],\n", - " markers = [\".\",\"o\"],\n", - " ptype = \"turnon\" if \"turnon\" in v0_json else \"scalings\")\n", - " \n", - " outfname = v0_json.replace(v0,\"%svs%s\"%(v0,v1)).replace(\".json\",\".png\").replace(\"tools\",\"tools/comparisons\")\n", - " \n", - "# break\n", - " \n", - " outdir = os.path.dirname(outfname)\n", - " if not os.path.exists(outdir): os.makedirs(outdir)\n", - " \n", - " print(\"Saving plot %s\" %outfname)\n", - " plt.savefig(outfname)\n", - "\n", - " # save pdf\n", - " outfname = outfname.replace(\".png\",\".pdf\")\n", - " print(outfname)\n", - " plt.savefig(outfname)\n", - " \n", - " plt.close()\n", - "# \n", - "# break " - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "5ba17e2d", - "metadata": { - "scrolled": false - }, + "execution_count": 8, + "id": "5ba17e2d", + "metadata": { + "scrolled": false + }, "outputs": [], "source": [ "# %%time\n", @@ -847,918 +456,271 @@ "# # break " ] }, - { - "cell_type": "code", - "execution_count": null, - "id": "a652a7bd", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "39333245", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "321a51f7", - "metadata": {}, - "source": [ - "# Below is for dev" - ] - }, { "cell_type": "markdown", - "id": "b660a1c8", + "id": "a652a7bd", "metadata": {}, "source": [ - "## With ratio" + "## For nano to pre nano comparisons" ] }, { "cell_type": "code", - "execution_count": 15, - "id": "8234b18f", + "execution_count": null, + "id": "af206f7e", "metadata": {}, "outputs": [], "source": [ - "def comp_turnons(plot1,plot2, sfxs = [\"v22\",\"v27\"], lss = [\"-\",\"--\"], keys = None,markers = [\"o\",\"s\"]):\n", - " fig, axs = plt.subplots(2,1,figsize=(10, 10),\n", - " sharex = True,gridspec_kw={'height_ratios': [3, 1]}) \n", - "\n", - " hep.cms.label(ax=axs[0], llabel=\"Phase-2 Simulation\", rlabel = \"14 TeV\")\n", - "\n", - " if keys is None:\n", - " keys = plot1.keys()\n", - " # or hardcode \n", - " # keys = [\"EG\"]\n", - " \n", - " for j,key in enumerate(keys):\n", - " if key in ['xlabel', 'ylabel', 'watermark']: continue\n", - " if key not in plot1.keys():\n", - " print(f\"Warning: {key} not in plot 1 keys. Skipping...\")\n", - " if key not in plot2.keys():\n", - " print(f\"Warning: {key} not in plot 2 keys. Skipping...\")\n", - " continue\n", - "\n", - " ## plot 1\n", - " plots = [plot1[key],plot2[key]]\n", - " color = f\"C{j-3}\"\n", - "# print(color)\n", - "\n", - " for i,p1 in enumerate(plots):\n", - " sfx = sfxs[i]\n", - "\n", - "\n", - " #label = p1[\"label\"] + \", \" + sfx\n", - " label = f\"{sfx}, {p1['label']}\"\n", - " p1[\"err_kwargs\"][\"marker\"] = markers[i]\n", - " if i == 1: \n", - " p1[\"err_kwargs\"][\"markerfacecolor\"] ='none'\n", - "# mfc='w'\n", - "\n", - " axs[0].errorbar(p1[\"xbins\"],p1[\"efficiency\"],yerr = p1[\"efficiency_err\"], \n", - " label = label, ls = lss[i], color = color,\n", - " **(p1[\"err_kwargs\"]))\n", - "\n", - " # axs[]\n", - " x = plots[0][\"xbins\"]\n", - " y = plots[0][\"efficiency\"]\n", - " d_p1 = dict(zip(x,y))\n", - "\n", - " x = plots[1][\"xbins\"]\n", - " y = plots[1][\"efficiency\"]\n", - " d_p2 = dict(zip(x,y))\n", - "\n", - " (pd.Series(d_p1) - pd.Series(d_p2)).plot(ax = axs[1], label = p1[\"label\"], marker = \".\")\n", + "def remap_nano_key(key):\n", + " if \"StaMu\" in key: key = key.replace(\"StaMu\",\"gmtMuon\")\n", "\n", - " axs[0].legend(ncol = 1)\n", - " axs[1].legend()\n", + "# print(\"before\", key)\n", "\n", - " axs[0].set_ylabel(plot1[\"ylabel\"], fontsize = \"small\")\n", + " if \"L1puppiJetSC4sums:HT\" in key:\n", + " key = key.replace(\"L1puppiJetSC4sums:HT\",\"seededConePuppiHT:default\")\n", + " if \"L1puppiJetSC4sums:MHT\" in key:\n", + " key = key.replace(\"L1puppiJetSC4sums:MHT\",\"seededConePuppiMHT:default\")\n", + " \n", + " if \"nnPuppiTau\" in key:\n", + " key = key.replace(\"nnPuppiTau\",\"nnTau\")\n", + " \n", + " if \"L1puppiHistoJetSums:HT\" in key:\n", + " key = key.replace(\"L1puppiHistoJetSums:HT\",\"phase1PuppiHT:default\")\n", + " if \"L1puppiHistoJetSums:MHT\" in key:\n", + " key = key.replace(\"L1puppiHistoJetSums:MHT\",\"phase1PuppiMHT:default\")\n", "\n", - " axs[1].set_xlabel(plot1[\"xlabel\"])\n", - " axs[1].set_ylabel(f\"{sfxs[0]} - {sfxs[1]}\")\n", - " \n", - " plt.subplots_adjust(wspace=0, hspace=0)\n", - " for ax in axs: ax.grid()\n", - " \n", - " return fig" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "3e6690d0", - "metadata": { - "scrolled": false - }, - "outputs": [], - "source": [ - "# f = comp_turnons(plot1,plot2, sfxs = [\"v22\",\"v27\"], lss = [\"-\",\"--\"])" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "3519a529", - "metadata": {}, - "outputs": [], - "source": [ - "v0_jsons = glob(\"/eos/user/a/alobanov/www/L1T/Phase2/menu/plots/tools/V27/turnons/*.json\")" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "bf4f8055", - "metadata": {}, - "outputs": [], - "source": [ - "%%capture\n", + " if \"L1TrackHT:HT\" in key:\n", + " key = key.replace(\"L1TrackHT:HT\",\"trackerHT:default\")\n", + " if \"L1TrackHT:MHT\" in key:\n", + " key = key.replace(\"L1TrackHT:MHT\",\"trackerMHT:default\")\n", + " if \"L1TrackMET\" in key:\n", + " key = key.replace(\"L1TrackMET\",\"trackerMET\")\n", + " if \"L1TrackJet\" in key:\n", + " key = key.replace(\"L1TrackJet\",\"trackerJet\")\n", + " \n", + " if \"puppiJetHisto\" in key: key = key.replace(\"puppiJetHisto\",\"phase1PuppiJet\")\n", + " if \"puppiJetSC4\" in key: key = key.replace(\"puppiJetSC4\",\"seededConePuppiJet\") \n", + "# if \"L1caloJet\" in key: key = key.replace(\"puppiJetHisto\",\"phase1PuppiJet\")\n", "\n", - "v0 = \"V27\"\n", - "v1 = \"V22\"\n", + " key = key.replace(\"L1\",\"\")\n", + "# print(\"after\", key)\n", "\n", - "outdir = \"/eos/user/a/alobanov/www/L1T/Phase2/menu/plots/tools/%svs%s\"%(v0,v1)\n", + " return key\n", "\n", - "for v0_json in v0_jsons[:100]:\n", - "# print(\"he\")\n", - " \n", - " #v1_json = v0_json.replace(\"V27\",\"V26\")\n", - " v1_json = v0_json.replace(v0,v1)#.replace(\"_V26\",\"\")\n", - " if not os.path.exists(v1_json): \n", - " print(v1_json + \" does not exist\")\n", - " continue\n", - " \n", - " plot1 = load_json(v0_json)\n", - " plot2 = load_json(v1_json)\n", - " \n", - " print(os.path.basename(v0_json))\n", - " f = comp_turnons(plot1,plot2, sfxs = [v0,v1], lss = [\"-\",\"--\"])\n", - " \n", - " outfname = v0_json.replace(v0,\"%svs%s\"%(v0,v1)).replace(\".json\",\".png\")\n", - " \n", - " outdir = os.path.dirname(outfname)\n", - " if not os.path.exists(outdir): os.makedirs(outdir)\n", - " \n", - "# print(\"here\")\n", - " plt.savefig(outfname)\n", + "def comp_plots(nano_plot,menu_plot, sfxs = [\"v22\",\"v27\"], ptype = \"turnon\",\n", + " lss = [\"-\",\"--\"], keys = None, markers = [\"o\",\"s\"]):\n", " \n", - " outfname = outfname.replace(\".png\",\".pdf\")\n", - " plt.savefig(outfname)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "71098c6e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "48" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(v0_jsons)" - ] - }, - { - "cell_type": "markdown", - "id": "8b49ca38", - "metadata": {}, - "source": [ - "# scalings" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "id": "16201359", - "metadata": {}, - "outputs": [], - "source": [ - "def comp_scalings(plot1,plot2, sfxs = [\"v22\",\"v27\"], lss = [\"-\",\"--\"], keys = None, markers = [\"o\",\"s\"]):\n", - " fig, axs = plt.subplots(2,1,figsize=(10, 10),\n", + " fig, axs = plt.subplots(2,1,figsize=(10, 12),\n", " sharex = True,\n", " gridspec_kw={'height_ratios': [3, 1]}) \n", " hep.cms.label(ax=axs[0], llabel=\"Phase-2 Simulation\", rlabel = \"14 TeV\")\n", "\n", - " if keys is None:\n", - " keys = plot1.keys()\n", - " # or hardcode \n", - " # keys = [\"EG\"]\n", - "# markers = [\"o-\",\"s--\"]\n", - " \n", - " for j,key in enumerate(keys):\n", - " if key in ['xlabel', 'ylabel', 'watermark']: continue\n", - " if key not in plot1.keys():\n", + " if keys is None: keys = nano_plot.keys()\n", + " # clean keys\n", + " clean_keys = []\n", + " for key in keys:\n", + " if key in ['xlabel', 'ylabel', 'watermark']: \n", + " continue\n", + " if key not in nano_plot.keys():\n", " print(f\"Warning: {key} not in plot 1 keys. Skipping...\")\n", - " if key not in plot2.keys():\n", + " continue\n", + " if remap_nano_key(key) not in menu_plot.keys():\n", + " print(menu_plot.keys())\n", " print(f\"Warning: {key} not in plot 2 keys. Skipping...\")\n", " continue\n", - "\n", + " clean_keys.append(key)\n", + " \n", + "# if ptype == \"rate\":\n", + "# xval_str = \"x_values\"\n", + "# yval_str = \"y_values\"\n", + "# else:\n", + "# xval_str = \"xvals\"\n", + "# yval_str = \"yvals\"\n", + " \n", + " \n", + " for j,key in enumerate(clean_keys):\n", " ## plot 1\n", - " plots = [plot1[key],plot2[key]]\n", - " color = f\"C{j-1}\"\n", + " plots = [nano_plot[key],menu_plot[remap_nano_key(key)]]\n", + " color = f\"C{j}\"\n", "\n", " for i,p1 in enumerate(plots):\n", " sfx = sfxs[i]\n", + " label = f\"{sfx}, {p1['label']}\"\n", "\n", - " label = sfx + \", \" + p1[\"label\"]\n", - " \n", - " axs[0].plot(p1[\"xvals\"],p1[\"yvals\"], color = color, marker = markers[i],\n", - " label = label, ls = lss[i], mfc=\"none\" if i == 1 else color)\n", + " if ptype == \"scalings\":\n", + " axs[0].plot(p1[\"xvals\"],p1[\"yvals\"], color = color, marker = markers[i],\n", + " label = label, ls = lss[i], mfc=\"none\" if i == 1 else color)\n", + " elif ptype == \"rate\":\n", + " axs[0].plot(p1[\"x_values\"],p1[\"y_values\"], color = color, marker = markers[i],\n", + " label = label, ls = lss[i], mfc=\"none\" if i == 1 else color)\n", + " elif ptype == \"turnon\":\n", + " p1[\"err_kwargs\"][\"marker\"] = markers[i]\n", + " p1[\"err_kwargs\"][\"xerr\"] = None\n", + "\n", + " axs[0].errorbar(p1[\"xbins\"],p1[\"efficiency\"], yerr = p1[\"efficiency_err\"], \n", + " label = label, ls = lss[i], color = color, mfc=\"none\" if i == 1 else color,\n", + " **(p1[\"err_kwargs\"])\n", + " )\n", + " \n", + " ## Make ratios\n", + " if ptype == \"scalings\":\n", + " d_p1 = dict(zip(plots[0][\"xvals\"],plots[0][\"yvals\"]))\n", + " d_p2 = dict(zip(plots[1][\"xvals\"],plots[1][\"yvals\"]))\n", + " elif ptype == \"rate\":\n", + " d_p1 = dict(zip(plots[0][\"x_values\"],plots[0][\"y_values\"]))\n", + " d_p2 = dict(zip(plots[1][\"x_values\"],plots[1][\"y_values\"]))\n", + " elif ptype == \"turnon\":\n", + " d_p1 = dict(zip(plots[0][\"xbins\"],plots[0][\"efficiency\"]))\n", + " d_p2 = dict(zip(plots[1][\"xbins\"],plots[1][\"efficiency\"]))\n", + " \n", + " # add 100% eff line\n", + "# axs[0].axhline(1,ls = \":\", alpha = 0.5, c = \"k\")\n", " \n", - " x = plots[0][\"xvals\"]\n", - " y = plots[0][\"yvals\"]\n", - " d_p1 = dict(zip(x,y))\n", + " df_p1 = pd.Series(d_p1)\n", + " df_p2 = pd.Series(d_p2)\n", + " \n", + "# ax = axs[1]\n", "\n", - " x = plots[1][\"xvals\"]\n", - " y = plots[1][\"yvals\"]\n", - " d_p2 = dict(zip(x,y))\n", + " if (df_p1.sum()!=0) and (df_p1.sum()!=0):\n", "\n", - " (pd.Series(d_p1) - pd.Series(d_p2)).plot(ax = axs[1], label = p1[\"label\"], marker = \".\")\n", + " diff = (df_p1 - df_p2) \n", + " if ptype == \"rate\":\n", + " diff /= df_p2\n", + " label = p1[\"label\"].split(\",\")[0]\n", " \n", - " \n", - " ax = axs[0]\n", - "# ax.set_ylabel(\"95 % Location [GeV]\")\n", - " axs[0].legend(fontsize = \"small\")\n", + " diff.plot(ax = axs[1], color = color, label = label)#, marker = \".\", color = color)\n", + "# axs[1].errorbar(p1[\"xbins\"],df_p1 - df_p2,\n", + "# yerr = np.hypot(plots[0][\"efficiency_err\"], plots[1][\"efficiency_err\"]),\n", + "# label = label, marker = \".\", color = color\n", + "# # label = label, ls = lss[i], color = color, mfc=\"none\" if i == 1 else color,\n", + "# # **(p1[\"err_kwargs\"])\n", + "# )\n", + " if ptype == \"turnon\":\n", + " if len(plots[0][\"efficiency_err\"][0]) != len(plots[1][\"efficiency_err\"][0]): continue\n", + " y_err = np.hypot(plots[0][\"efficiency_err\"][0], plots[1][\"efficiency_err\"][0])\n", + " if len(diff) != len(y_err): continue\n", + " axs[1].fill_between(diff.index,diff.values - y_err,diff.values + y_err,\n", + " # label = label, \n", + " alpha = 0.3, \n", + " color = color\n", + " )\n", " \n", - "# axs[0].set_ylabel(plot1[\"ylabel\"], fontsize = \"x-small\")\n", - "\n", - "# axs[1].set_xlabel(plot1[\"xlabel\"])\n", - " axs[1].set_ylabel(f\"{sfxs[0]} - {sfxs[1]}\")\n", - " axs[1].set_xlabel(\"Threshold [GeV]\")\n", + " # make axis stuff\n", + " axs[0].legend(fontsize = \"x-small\")\n", + " axs[1].legend(fontsize = \"x-small\")\n", " \n", + " if ptype == \"rate\":\n", + " axs[1].set_ylabel(f\"({sfxs[0]}-{sfxs[1]})/{sfxs[1]}\", fontsize = \"x-small\")\n", + " axs[0].set_yscale(\"log\")\n", + " axs[1].set_xlabel(\"Threshold [GeV]\")\n", + " axs[0].set_ylabel(\"Rate [kHz]\")\n", + " else:\n", + " axs[1].set_ylabel(f\"{sfxs[0]} - {sfxs[1]}\", fontsize = \"x-small\")\n", + " \n", + " if ptype == \"scalings\":\n", + " axs[0].set_ylabel(\"95 % Location [GeV]\")\n", + " axs[1].set_xlabel(\"L1 threshold [GeV]\")\n", + " elif ptype == \"turnon\":\n", + " axs[0].set_ylabel(nano_plot[\"ylabel\"], fontsize = \"small\")\n", + " axs[1].set_xlabel(nano_plot[\"xlabel\"])\n", + "\n", + " axs[1].set_ylim(-.1,.1)\n", + " \n", " for ax in axs: ax.grid()\n", + " plt.tight_layout()\n", " plt.subplots_adjust(wspace=0, hspace=0)\n", - "# plt.tight_layout()\n", "\n", " return fig" ] }, { "cell_type": "code", - "execution_count": 11, - "id": "d6481abf", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['/eos/user/a/alobanov/www/L1T/Phase2/menu/plots/tools/V27/scalings/ElectronsTriggerBarrel.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/plots/tools/V27/scalings/ElectronsTriggerEndcap.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/plots/tools/V27/scalings/HT.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/plots/tools/V27/scalings/JetTurnonBarrel.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/plots/tools/V27/scalings/JetTurnonEndcap.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/plots/tools/V27/scalings/JetTurnonForward.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/plots/tools/V27/scalings/MET.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/plots/tools/V27/scalings/MHT15.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/plots/tools/V27/scalings/MHT30.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/plots/tools/V27/scalings/MuonsTrigger.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/plots/tools/V27/scalings/TauTriggerBarrel.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/plots/tools/V27/scalings/TauTriggerEndcap.json']" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "v0_jsons = glob(\"/eos/user/a/alobanov/www/L1T/Phase2/menu/plots/tools/V27/scalings/*.json\")\n", - "len(v0_jsons)\n", - "v0_jsons" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "c6b393ae", + "execution_count": null, + "id": "7f9e468a", "metadata": {}, "outputs": [], "source": [ - "%%capture\n", - "# %matplotlib auto\n", + "# %%time\n", + "# # %%capture\n", + "\n", + "# v0 = \"V36nano_noTT\"\n", + "# # v0 = \"V33nano\"\n", + "# # v0 = \"V29\"\n", + "# # v0 = \"V32nano\"\n", + "# # v0 = \"V31\"\n", "\n", - "v0 = \"V27\"\n", - "v1 = \"V22\"\n", + "# v0_jsons = glob(\n", + "# # f\"/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/tool_refact_test/object_performance/{v0}//s*/**.json\")\n", + "# f\"/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/{v0}/object_performance/*/*.json\")\n", "\n", - "for v0_json in v0_jsons[:100]:\n", - " print(v0_json)\n", + "# # v1 = \"V29\"\n", + "# # v1 = \"V32\"\n", + "# # v1 = \"V32nano\"\n", + "# v1 = \"V31\"\n", + "# # v1 = \"V30\"\n", + "# # v1 = \"V29\"\n", + "# # v0 = \"JetMatchingBarrel_-999\"\n", + "# # v1 = \"JetMatchingBarrel_GenRefPtBelow50_-999\"\n", + "# # v0 = \"90perc\"\n", + "# # v1 = \"50perc\"\n", + "\n", + "# # outdir = \"https://alobanov.web.cern.ch/L1T/Phase2/menu/plots/tools/comparison/%svs%s\"%(v0,v1)\n", + "\n", + "# for v0_json in v0_jsons:\n", " \n", - " v22_json = v0_json.replace(v0,v1)\n", - " if not os.path.exists(v22_json): \n", - " print(v22_json + \" does not exist\")\n", - " continue\n", - " \n", - "# continue \n", + "# v1_json = v0_json.replace(v0,v1)\n", + "# if not os.path.exists(v1_json): \n", + "# print(v1_json + \" does not exist\")\n", + "# continue\n", + "# # continue\n", " \n", - " plot1 = load_json(v0_json)\n", - " plot2 = load_json(v22_json)\n", + "# # print(\"1\")\n", + "# plot1 = load_json(v0_json)\n", + "# # print(\"2\")\n", + "# plot2 = load_json(v1_json)\n", + "\n", + "# print(os.path.basename(v0_json))\n", + "# print(os.path.basename(v1_json))\n", " \n", - " print(os.path.basename(v0_json))\n", - " f = comp_scalings(plot1,plot2, sfxs = [v0,v1], lss = [\"-\",\"--\"])\n", + "# if \"turnon\" in v0_json:\n", + "# ptype = \"turnon\"\n", + "# elif \"scaling\" in v0_json:\n", + "# ptype = \"scalings\"\n", + "# elif \"rate\" in v0_json:\n", + "# ptype = \"rate\"\n", + "# else:\n", + "# print(\"WARNING, unsupported plot type\")\n", + "# continue\n", " \n", - " outfname = v0_json.replace(v0,f\"{v0}vs{v1}\").replace(\".json\",\".png\")\n", + "# f = comp_plots(plot1,plot2, sfxs = [v0,v1], \n", + "# lss = [\"-\",\"--\"],\n", + "# # lss = [\"\",\"\"],\n", + "# markers = [\".\",\"o\"],\n", + "# ptype = ptype)\n", " \n", - " outdir = os.path.dirname(outfname)\n", - " if not os.path.exists(outdir): os.makedirs(outdir)\n", + "# #outfname = v0_json.replace(v0,\"%svs%s\"%(v0,v1)).replace(\".json\",\".png\").replace(\"tools\",\"tools/comparisons\")\n", + "# outfname = v0_json.replace(v0,\"%svs%s\"%(v0,v1)).replace(\".json\",\".png\").replace(\"%svs%s/\"%(v0,v1), \"comparisons/%svs%s/\"%(v0,v1))\n", + " \n", + "# # break\n", + " \n", + "# outdir = os.path.dirname(outfname)\n", + "# if not os.path.exists(outdir): os.makedirs(outdir)\n", " \n", - " plt.savefig(outfname)" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "id": "c3f90920", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "f = comp_scalings(plot1,plot2, sfxs = [\"v27\",\"v22\"], lss = [\"-\",\"--\"])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f423e0b1", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "9066d279", - "metadata": {}, - "outputs": [], - "source": [ - "import awkward as ak" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "id": "0f435e43", - "metadata": {}, - "outputs": [], - "source": [ - "a = ak.from_parquet(\"/eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/alobanov/phase2/menu/ntuples/cache/V29_13X/V29_13X_ZEE_tkElectron.parquet\")" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "id": "83100525", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "a" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e8a9ef5f", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d848dfbc", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "00233512", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Offline_EGRates.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Offline_HTRates.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Offline_JetDefaultRates.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Offline_JetSC8Rates.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Offline_JetSC8Rates_byRegion.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Offline_JetSC8Rates_byRegion2.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Offline_JetsByRegion.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Offline_METRates.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Offline_MHTRates.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Offline_TauRates.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Offline_TauRatesByRegion.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Online_EGRates.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Online_HTRates.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Online_JetDefaultRates.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Online_JetSC8Rates.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Online_JetSC8Rates_byRegion.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Online_JetSC8Rates_byRegion2.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Online_JetsByRegion.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Online_METRates.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Online_MHTRates.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Online_MuonRates.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Online_TauRates.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Online_TauRatesByRegion.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Online_gmtMuonByRegion.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/rates/V33nano_Online_gmtTkMuonByRegion.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/scalings/ElectronsTriggerBarrel_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/scalings/ElectronsTriggerEndcap_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/scalings/HT_90perc_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/scalings/JetTurnonBarrelSC8_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/scalings/JetTurnonBarrel_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/scalings/JetTurnonEndcapSC8_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/scalings/JetTurnonEndcap_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/scalings/JetTurnonForwardSC8_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/scalings/JetTurnonForward_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/scalings/MET_90perc_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/scalings/MHT_50perc_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/scalings/MuonsTrigger_Barrel_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/scalings/MuonsTrigger_Endcap_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/scalings/MuonsTrigger_Overlap_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/scalings/PhotonsTrigger_Barrel_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/scalings/PhotonsTrigger_Endcap_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/scalings/TauTriggerBarrel_90perc_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/scalings/TauTriggerEndcap_90perc_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/ElectronsIsolation_Barrel_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/ElectronsIsolation_Endcap_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/ElectronsMatchingBarrel_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/ElectronsMatchingEndcap_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/ElectronsMatching_Eta_Pt10to25_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/ElectronsMatching_Eta_Pt25toInf_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/ElectronsTriggerBarrel_10_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/ElectronsTriggerBarrel_20_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/ElectronsTriggerBarrel_30_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/ElectronsTriggerBarrel_40_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/ElectronsTriggerEndcap_10_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/ElectronsTriggerEndcap_20_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/ElectronsTriggerEndcap_30_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/ElectronsTriggerEndcap_40_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/HT_90perc_350_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetMatchingBarrelSC8_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetMatchingBarrel_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetMatchingEndcapSC8_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetMatchingEndcap_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetMatchingForward_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetMatching_Eta_Pt100ToInf_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetMatching_Eta_Pt100ToInf_ExtendedVsRegular_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetMatching_Eta_Pt100ToInf_extEta_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetMatching_Eta_Pt30ToInf_genBJets_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetMatching_Eta_Pt30ToInf_genNotBJets_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetMatching_Eta_Pt40To100_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetMatching_Eta_Pt40To100_ExtendedVsRegular_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetMatching_Eta_SC8_Pt100ToInf_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetMatching_Pt_Pt30ToInf_genBJets_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetMatching_Pt_Pt30ToInf_genNotBJets_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetTurnonBarrelSC8_150_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetTurnonBarrel_100_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetTurnonBarrel_50_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetTurnonEndcapSC8_150_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetTurnonEndcap_100_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetTurnonEndcap_50_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetTurnonForwardSC8_150_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetTurnonForward_100_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/JetTurnonForward_50_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/MET_90perc_150_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/MHT_50perc_150_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/MHT_50perc_70_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/MuonsMatchingBarrel_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/MuonsMatchingEndcap_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/MuonsMatchingOverlap_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/MuonsMatching_Eta_Pt15toInf_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/MuonsMatching_Eta_Pt2to5_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/MuonsTrigger_Barrel_20_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/MuonsTrigger_Barrel_25_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/MuonsTrigger_Endcap_20_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/MuonsTrigger_Endcap_25_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/MuonsTrigger_Overlap_20_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/MuonsTrigger_Overlap_25_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/PhotonIsolation_Barrel_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/PhotonIsolation_Endcap_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/PhotonsMatching_Barrel_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/PhotonsMatching_Barrel_wPrunedGenParts_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/PhotonsMatching_Endcap_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/PhotonsMatching_Endcap_wPrunedGenParts_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/PhotonsMatching_Eta_Pt10to25_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/PhotonsMatching_Eta_Pt25toInf_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/PhotonsTrigger_Barrel_10_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/PhotonsTrigger_Barrel_20_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/PhotonsTrigger_Barrel_30_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/PhotonsTrigger_Barrel_40_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/PhotonsTrigger_Endcap_10_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/PhotonsTrigger_Endcap_20_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/PhotonsTrigger_Endcap_30_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/PhotonsTrigger_Endcap_40_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/TauMatching_Eta_Pt100ToInf_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/TauMatching_Eta_Pt40To100_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/TauTriggerBarrel_50perc_20_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/TauTriggerBarrel_50perc_30_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/TauTriggerBarrel_90perc_20_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/TauTriggerBarrel_90perc_30_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/TauTriggerEndcap_50perc_20_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/TauTriggerEndcap_50perc_30_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/TauTriggerEndcap_90perc_20_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/TauTriggerEndcap_90perc_30_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/TausMatchingBarrel_-999_V33nano.json',\n", - " '/eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/TausMatchingEndcap_-999_V33nano.json']" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "v0_jsons" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "id": "ec38ad27", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "total 12720\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 189 Mar 3 15:53 EGRates.yaml\r\n", - " 76 -rw-r--r--. 1 alobanov 1399 77607 Mar 5 12:26 ElectronsIsolation_Barrel_-999_V33nano.png\r\n", - " 23 -rw-r--r--. 1 alobanov 1399 23179 Mar 5 12:26 ElectronsIsolation_Barrel_-999_V33nano.pdf\r\n", - " 12 -rw-r--r--. 1 alobanov 1399 12197 Mar 5 12:26 ElectronsIsolation_Barrel_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 498 Mar 5 12:26 ElectronsIsolation_Barrel_-999_V33nano.yaml\r\n", - " 79 -rw-r--r--. 1 alobanov 1399 80731 Mar 5 12:26 ElectronsIsolation_Endcap_-999_V33nano.png\r\n", - " 23 -rw-r--r--. 1 alobanov 1399 23481 Mar 5 12:26 ElectronsIsolation_Endcap_-999_V33nano.pdf\r\n", - " 12 -rw-r--r--. 1 alobanov 1399 12222 Mar 5 12:26 ElectronsIsolation_Endcap_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 502 Mar 5 12:26 ElectronsIsolation_Endcap_-999_V33nano.yaml\r\n", - "132 -rw-r--r--. 1 alobanov 1399 134322 Mar 5 12:26 ElectronsMatching_Eta_Pt10to25_-999_V33nano.png\r\n", - " 30 -rw-r--r--. 1 alobanov 1399 29969 Mar 5 12:26 ElectronsMatching_Eta_Pt10to25_-999_V33nano.pdf\r\n", - " 16 -rw-r--r--. 1 alobanov 1399 15384 Mar 5 12:26 ElectronsMatching_Eta_Pt10to25_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 555 Mar 5 12:26 ElectronsMatching_Eta_Pt10to25_-999_V33nano.yaml\r\n", - "115 -rw-r--r--. 1 alobanov 1399 116760 Mar 5 12:27 ElectronsMatching_Eta_Pt25toInf_-999_V33nano.png\r\n", - " 30 -rw-r--r--. 1 alobanov 1399 29913 Mar 5 12:27 ElectronsMatching_Eta_Pt25toInf_-999_V33nano.pdf\r\n", - " 16 -rw-r--r--. 1 alobanov 1399 15556 Mar 5 12:27 ElectronsMatching_Eta_Pt25toInf_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 531 Mar 5 12:27 ElectronsMatching_Eta_Pt25toInf_-999_V33nano.yaml\r\n", - "110 -rw-r--r--. 1 alobanov 1399 111935 Mar 5 12:27 ElectronsMatchingBarrel_-999_V33nano.png\r\n", - " 29 -rw-r--r--. 1 alobanov 1399 29359 Mar 5 12:27 ElectronsMatchingBarrel_-999_V33nano.pdf\r\n", - " 16 -rw-r--r--. 1 alobanov 1399 15588 Mar 5 12:27 ElectronsMatchingBarrel_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 520 Mar 5 12:27 ElectronsMatchingBarrel_-999_V33nano.yaml\r\n", - "116 -rw-r--r--. 1 alobanov 1399 117806 Mar 5 12:27 ElectronsMatchingEndcap_-999_V33nano.png\r\n", - " 29 -rw-r--r--. 1 alobanov 1399 29143 Mar 5 12:27 ElectronsMatchingEndcap_-999_V33nano.pdf\r\n", - " 16 -rw-r--r--. 1 alobanov 1399 15543 Mar 5 12:27 ElectronsMatchingEndcap_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 520 Mar 5 12:27 ElectronsMatchingEndcap_-999_V33nano.yaml\r\n", - "163 -rw-r--r--. 1 alobanov 1399 166499 Mar 5 12:51 JetMatching_Eta_Pt40To100_-999_V33nano.png\r\n", - " 34 -rw-r--r--. 1 alobanov 1399 34731 Mar 5 12:51 JetMatching_Eta_Pt40To100_-999_V33nano.pdf\r\n", - " 24 -rw-r--r--. 1 alobanov 1399 24261 Mar 5 12:51 JetMatching_Eta_Pt40To100_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 509 Mar 5 12:51 JetMatching_Eta_Pt40To100_-999_V33nano.yaml\r\n", - "133 -rw-r--r--. 1 alobanov 1399 136082 Mar 5 12:51 JetMatching_Eta_Pt100ToInf_-999_V33nano.png\r\n", - " 34 -rw-r--r--. 1 alobanov 1399 34133 Mar 5 12:51 JetMatching_Eta_Pt100ToInf_-999_V33nano.pdf\r\n", - " 22 -rw-r--r--. 1 alobanov 1399 22485 Mar 5 12:52 JetMatching_Eta_Pt100ToInf_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 488 Mar 5 12:52 JetMatching_Eta_Pt100ToInf_-999_V33nano.yaml\r\n", - " 81 -rw-r--r--. 1 alobanov 1399 82634 Mar 5 12:52 JetMatching_Eta_Pt100ToInf_extEta_-999_V33nano.png\r\n", - " 25 -rw-r--r--. 1 alobanov 1399 24712 Mar 5 12:52 JetMatching_Eta_Pt100ToInf_extEta_-999_V33nano.pdf\r\n", - " 6 -rw-r--r--. 1 alobanov 1399 5811 Mar 5 12:52 JetMatching_Eta_Pt100ToInf_extEta_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 407 Mar 5 12:52 JetMatching_Eta_Pt100ToInf_extEta_-999_V33nano.yaml\r\n", - " 86 -rw-r--r--. 1 alobanov 1399 88028 Mar 5 12:52 JetMatching_Eta_SC8_Pt100ToInf_-999_V33nano.png\r\n", - " 25 -rw-r--r--. 1 alobanov 1399 25274 Mar 5 12:52 JetMatching_Eta_SC8_Pt100ToInf_-999_V33nano.pdf\r\n", - " 6 -rw-r--r--. 1 alobanov 1399 5820 Mar 5 12:52 JetMatching_Eta_SC8_Pt100ToInf_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 407 Mar 5 12:52 JetMatching_Eta_SC8_Pt100ToInf_-999_V33nano.yaml\r\n", - "113 -rw-r--r--. 1 alobanov 1399 115073 Mar 5 12:52 JetMatching_Eta_Pt40To100_ExtendedVsRegular_-999_V33nano.png\r\n", - " 28 -rw-r--r--. 1 alobanov 1399 28534 Mar 5 12:52 JetMatching_Eta_Pt40To100_ExtendedVsRegular_-999_V33nano.pdf\r\n", - " 13 -rw-r--r--. 1 alobanov 1399 12427 Mar 5 12:52 JetMatching_Eta_Pt40To100_ExtendedVsRegular_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 473 Mar 5 12:52 JetMatching_Eta_Pt40To100_ExtendedVsRegular_-999_V33nano.yaml\r\n", - "100 -rw-r--r--. 1 alobanov 1399 101556 Mar 5 12:52 JetMatching_Eta_Pt100ToInf_ExtendedVsRegular_-999_V33nano.png\r\n", - " 28 -rw-r--r--. 1 alobanov 1399 28547 Mar 5 12:52 JetMatching_Eta_Pt100ToInf_ExtendedVsRegular_-999_V33nano.pdf\r\n", - " 12 -rw-r--r--. 1 alobanov 1399 11407 Mar 5 12:52 JetMatching_Eta_Pt100ToInf_ExtendedVsRegular_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 452 Mar 5 12:52 JetMatching_Eta_Pt100ToInf_ExtendedVsRegular_-999_V33nano.yaml\r\n", - " 77 -rw-r--r--. 1 alobanov 1399 78289 Mar 5 12:53 JetMatching_Eta_Pt30ToInf_genBJets_-999_V33nano.png\r\n", - " 25 -rw-r--r--. 1 alobanov 1399 25264 Mar 5 12:53 JetMatching_Eta_Pt30ToInf_genBJets_-999_V33nano.pdf\r\n", - " 4 -rw-r--r--. 1 alobanov 1399 3538 Mar 5 12:53 JetMatching_Eta_Pt30ToInf_genBJets_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 448 Mar 5 12:53 JetMatching_Eta_Pt30ToInf_genBJets_-999_V33nano.yaml\r\n", - " 77 -rw-r--r--. 1 alobanov 1399 78332 Mar 5 12:53 JetMatching_Eta_Pt30ToInf_genNotBJets_-999_V33nano.png\r\n", - " 25 -rw-r--r--. 1 alobanov 1399 25441 Mar 5 12:53 JetMatching_Eta_Pt30ToInf_genNotBJets_-999_V33nano.pdf\r\n", - " 4 -rw-r--r--. 1 alobanov 1399 3549 Mar 5 12:53 JetMatching_Eta_Pt30ToInf_genNotBJets_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 451 Mar 5 12:53 JetMatching_Eta_Pt30ToInf_genNotBJets_-999_V33nano.yaml\r\n", - " 75 -rw-r--r--. 1 alobanov 1399 76781 Mar 5 12:53 JetMatching_Pt_Pt30ToInf_genBJets_-999_V33nano.png\r\n", - " 25 -rw-r--r--. 1 alobanov 1399 25283 Mar 5 12:53 JetMatching_Pt_Pt30ToInf_genBJets_-999_V33nano.pdf\r\n", - " 3 -rw-r--r--. 1 alobanov 1399 3061 Mar 5 12:53 JetMatching_Pt_Pt30ToInf_genBJets_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 416 Mar 5 12:53 JetMatching_Pt_Pt30ToInf_genBJets_-999_V33nano.yaml\r\n", - " 71 -rw-r--r--. 1 alobanov 1399 72688 Mar 5 12:53 JetMatching_Pt_Pt30ToInf_genNotBJets_-999_V33nano.png\r\n", - " 25 -rw-r--r--. 1 alobanov 1399 25442 Mar 5 12:53 JetMatching_Pt_Pt30ToInf_genNotBJets_-999_V33nano.pdf\r\n", - " 4 -rw-r--r--. 1 alobanov 1399 3075 Mar 5 12:53 JetMatching_Pt_Pt30ToInf_genNotBJets_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 419 Mar 5 12:53 JetMatching_Pt_Pt30ToInf_genNotBJets_-999_V33nano.yaml\r\n", - "119 -rw-r--r--. 1 alobanov 1399 121328 Mar 5 12:54 JetMatchingBarrel_-999_V33nano.png\r\n", - " 36 -rw-r--r--. 1 alobanov 1399 35853 Mar 5 12:54 JetMatchingBarrel_-999_V33nano.pdf\r\n", - " 29 -rw-r--r--. 1 alobanov 1399 28839 Mar 5 12:54 JetMatchingBarrel_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 498 Mar 5 12:54 JetMatchingBarrel_-999_V33nano.yaml\r\n", - "128 -rw-r--r--. 1 alobanov 1399 130115 Mar 5 12:54 JetMatchingEndcap_-999_V33nano.png\r\n", - " 35 -rw-r--r--. 1 alobanov 1399 35056 Mar 5 12:54 JetMatchingEndcap_-999_V33nano.pdf\r\n", - " 28 -rw-r--r--. 1 alobanov 1399 28412 Mar 5 12:54 JetMatchingEndcap_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 498 Mar 5 12:54 JetMatchingEndcap_-999_V33nano.yaml\r\n", - "128 -rw-r--r--. 1 alobanov 1399 130747 Mar 5 12:55 JetMatchingForward_-999_V33nano.png\r\n", - " 32 -rw-r--r--. 1 alobanov 1399 31977 Mar 5 12:55 JetMatchingForward_-999_V33nano.pdf\r\n", - " 21 -rw-r--r--. 1 alobanov 1399 20665 Mar 5 12:55 JetMatchingForward_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 471 Mar 5 12:55 JetMatchingForward_-999_V33nano.yaml\r\n", - " 77 -rw-r--r--. 1 alobanov 1399 78129 Mar 5 12:55 JetMatchingBarrelSC8_-999_V33nano.png\r\n", - " 26 -rw-r--r--. 1 alobanov 1399 26312 Mar 5 12:55 JetMatchingBarrelSC8_-999_V33nano.pdf\r\n", - " 7 -rw-r--r--. 1 alobanov 1399 6437 Mar 5 12:55 JetMatchingBarrelSC8_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 430 Mar 5 12:55 JetMatchingBarrelSC8_-999_V33nano.yaml\r\n", - " 89 -rw-r--r--. 1 alobanov 1399 90504 Mar 5 12:55 JetMatchingEndcapSC8_-999_V33nano.png\r\n", - " 26 -rw-r--r--. 1 alobanov 1399 25734 Mar 5 12:55 JetMatchingEndcapSC8_-999_V33nano.pdf\r\n", - " 7 -rw-r--r--. 1 alobanov 1399 6364 Mar 5 12:55 JetMatchingEndcapSC8_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 430 Mar 5 12:55 JetMatchingEndcapSC8_-999_V33nano.yaml\r\n", - " 92 -rw-r--r--. 1 alobanov 1399 93683 Mar 5 12:55 JetTurnonBarrelSC8_150_V33nano.png\r\n", - " 25 -rw-r--r--. 1 alobanov 1399 25355 Mar 5 12:55 JetTurnonBarrelSC8_150_V33nano.pdf\r\n", - " 7 -rw-r--r--. 1 alobanov 1399 6257 Mar 5 12:55 JetTurnonBarrelSC8_150_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 496 Mar 5 12:55 JetTurnonBarrelSC8_150_V33nano.yaml\r\n", - " 96 -rw-r--r--. 1 alobanov 1399 97755 Mar 5 12:55 JetTurnonEndcapSC8_150_V33nano.png\r\n", - " 25 -rw-r--r--. 1 alobanov 1399 24743 Mar 5 12:55 JetTurnonEndcapSC8_150_V33nano.pdf\r\n", - " 7 -rw-r--r--. 1 alobanov 1399 6262 Mar 5 12:55 JetTurnonEndcapSC8_150_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 496 Mar 5 12:55 JetTurnonEndcapSC8_150_V33nano.yaml\r\n", - " 97 -rw-r--r--. 1 alobanov 1399 99072 Mar 5 12:56 JetTurnonForwardSC8_150_V33nano.png\r\n", - " 25 -rw-r--r--. 1 alobanov 1399 24769 Mar 5 12:56 JetTurnonForwardSC8_150_V33nano.pdf\r\n", - " 6 -rw-r--r--. 1 alobanov 1399 5714 Mar 5 12:56 JetTurnonForwardSC8_150_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 497 Mar 5 12:56 JetTurnonForwardSC8_150_V33nano.yaml\r\n", - "134 -rw-r--r--. 1 alobanov 1399 136815 Mar 5 13:04 JetTurnonBarrel_50_V33nano.png\r\n", - " 35 -rw-r--r--. 1 alobanov 1399 35335 Mar 5 13:04 JetTurnonBarrel_50_V33nano.pdf\r\n", - " 29 -rw-r--r--. 1 alobanov 1399 28814 Mar 5 13:04 JetTurnonBarrel_50_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 603 Mar 5 13:04 JetTurnonBarrel_50_V33nano.yaml\r\n", - "142 -rw-r--r--. 1 alobanov 1399 144707 Mar 5 13:04 JetTurnonBarrel_100_V33nano.png\r\n", - " 36 -rw-r--r--. 1 alobanov 1399 36130 Mar 5 13:04 JetTurnonBarrel_100_V33nano.pdf\r\n", - " 29 -rw-r--r--. 1 alobanov 1399 29536 Mar 5 13:04 JetTurnonBarrel_100_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 603 Mar 5 13:04 JetTurnonBarrel_100_V33nano.yaml\r\n", - "148 -rw-r--r--. 1 alobanov 1399 150552 Mar 5 13:05 JetTurnonEndcap_50_V33nano.png\r\n", - " 34 -rw-r--r--. 1 alobanov 1399 34641 Mar 5 13:05 JetTurnonEndcap_50_V33nano.pdf\r\n", - " 28 -rw-r--r--. 1 alobanov 1399 27988 Mar 5 13:05 JetTurnonEndcap_50_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 603 Mar 5 13:05 JetTurnonEndcap_50_V33nano.yaml\r\n", - "163 -rw-r--r--. 1 alobanov 1399 166561 Mar 5 13:05 JetTurnonEndcap_100_V33nano.png\r\n", - " 35 -rw-r--r--. 1 alobanov 1399 35629 Mar 5 13:05 JetTurnonEndcap_100_V33nano.pdf\r\n", - " 29 -rw-r--r--. 1 alobanov 1399 28954 Mar 5 13:05 JetTurnonEndcap_100_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 603 Mar 5 13:05 JetTurnonEndcap_100_V33nano.yaml\r\n", - "123 -rw-r--r--. 1 alobanov 1399 125789 Mar 5 13:06 JetTurnonForward_50_V33nano.png\r\n", - " 31 -rw-r--r--. 1 alobanov 1399 30840 Mar 5 13:06 JetTurnonForward_50_V33nano.pdf\r\n", - " 19 -rw-r--r--. 1 alobanov 1399 19156 Mar 5 13:06 JetTurnonForward_50_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 572 Mar 5 13:06 JetTurnonForward_50_V33nano.yaml\r\n", - "135 -rw-r--r--. 1 alobanov 1399 137784 Mar 5 13:06 JetTurnonForward_100_V33nano.png\r\n", - " 31 -rw-r--r--. 1 alobanov 1399 31164 Mar 5 13:06 JetTurnonForward_100_V33nano.pdf\r\n", - " 19 -rw-r--r--. 1 alobanov 1399 19352 Mar 5 13:06 JetTurnonForward_100_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 572 Mar 5 13:06 JetTurnonForward_100_V33nano.yaml\r\n", - " 73 -rw-r--r--. 1 alobanov 1399 74114 Mar 5 14:15 PhotonIsolation_Barrel_-999_V33nano.png\r\n", - " 24 -rw-r--r--. 1 alobanov 1399 24031 Mar 5 14:15 PhotonIsolation_Barrel_-999_V33nano.pdf\r\n", - " 12 -rw-r--r--. 1 alobanov 1399 12187 Mar 5 14:15 PhotonIsolation_Barrel_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 493 Mar 5 14:15 PhotonIsolation_Barrel_-999_V33nano.yaml\r\n", - " 73 -rw-r--r--. 1 alobanov 1399 73930 Mar 5 14:15 PhotonIsolation_Endcap_-999_V33nano.png\r\n", - " 24 -rw-r--r--. 1 alobanov 1399 23799 Mar 5 14:15 PhotonIsolation_Endcap_-999_V33nano.pdf\r\n", - " 12 -rw-r--r--. 1 alobanov 1399 12189 Mar 5 14:15 PhotonIsolation_Endcap_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 518 Mar 5 14:15 PhotonIsolation_Endcap_-999_V33nano.yaml\r\n", - "151 -rw-r--r--. 1 alobanov 1399 153947 Mar 5 14:16 PhotonsMatching_Eta_Pt10to25_-999_V33nano.png\r\n", - " 29 -rw-r--r--. 1 alobanov 1399 28831 Mar 5 14:16 PhotonsMatching_Eta_Pt10to25_-999_V33nano.pdf\r\n", - " 15 -rw-r--r--. 1 alobanov 1399 14563 Mar 5 14:16 PhotonsMatching_Eta_Pt10to25_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 542 Mar 5 14:16 PhotonsMatching_Eta_Pt10to25_-999_V33nano.yaml\r\n", - "113 -rw-r--r--. 1 alobanov 1399 115541 Mar 5 14:16 PhotonsMatching_Eta_Pt25toInf_-999_V33nano.png\r\n", - " 29 -rw-r--r--. 1 alobanov 1399 29419 Mar 5 14:16 PhotonsMatching_Eta_Pt25toInf_-999_V33nano.pdf\r\n", - " 16 -rw-r--r--. 1 alobanov 1399 15489 Mar 5 14:16 PhotonsMatching_Eta_Pt25toInf_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 519 Mar 5 14:16 PhotonsMatching_Eta_Pt25toInf_-999_V33nano.yaml\r\n", - "113 -rw-r--r--. 1 alobanov 1399 115616 Mar 5 14:16 PhotonsMatching_Barrel_-999_V33nano.png\r\n", - " 30 -rw-r--r--. 1 alobanov 1399 29754 Mar 5 14:16 PhotonsMatching_Barrel_-999_V33nano.pdf\r\n", - " 16 -rw-r--r--. 1 alobanov 1399 15530 Mar 5 14:16 PhotonsMatching_Barrel_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 508 Mar 5 14:16 PhotonsMatching_Barrel_-999_V33nano.yaml\r\n", - "118 -rw-r--r--. 1 alobanov 1399 120570 Mar 5 14:17 PhotonsMatching_Endcap_-999_V33nano.png\r\n", - " 29 -rw-r--r--. 1 alobanov 1399 28906 Mar 5 14:17 PhotonsMatching_Endcap_-999_V33nano.pdf\r\n", - " 15 -rw-r--r--. 1 alobanov 1399 15354 Mar 5 14:17 PhotonsMatching_Endcap_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 508 Mar 5 14:17 PhotonsMatching_Endcap_-999_V33nano.yaml\r\n", - "116 -rw-r--r--. 1 alobanov 1399 118065 Mar 5 14:17 PhotonsMatching_Barrel_wPrunedGenParts_-999_V33nano.png\r\n", - " 30 -rw-r--r--. 1 alobanov 1399 30451 Mar 5 14:17 PhotonsMatching_Barrel_wPrunedGenParts_-999_V33nano.pdf\r\n", - " 16 -rw-r--r--. 1 alobanov 1399 15546 Mar 5 14:17 PhotonsMatching_Barrel_wPrunedGenParts_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 524 Mar 5 14:17 PhotonsMatching_Barrel_wPrunedGenParts_-999_V33nano.yaml\r\n", - "120 -rw-r--r--. 1 alobanov 1399 122878 Mar 5 14:17 PhotonsMatching_Endcap_wPrunedGenParts_-999_V33nano.png\r\n", - " 29 -rw-r--r--. 1 alobanov 1399 29556 Mar 5 14:17 PhotonsMatching_Endcap_wPrunedGenParts_-999_V33nano.pdf\r\n", - " 16 -rw-r--r--. 1 alobanov 1399 15370 Mar 5 14:18 PhotonsMatching_Endcap_wPrunedGenParts_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 524 Mar 5 14:18 PhotonsMatching_Endcap_wPrunedGenParts_-999_V33nano.yaml\r\n", - "104 -rw-r--r--. 1 alobanov 1399 106363 Mar 5 14:18 PhotonsTrigger_Barrel_10_V33nano.png\r\n", - " 31 -rw-r--r--. 1 alobanov 1399 31277 Mar 5 14:18 PhotonsTrigger_Barrel_10_V33nano.pdf\r\n", - " 25 -rw-r--r--. 1 alobanov 1399 25481 Mar 5 14:18 PhotonsTrigger_Barrel_10_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 646 Mar 5 14:18 PhotonsTrigger_Barrel_10_V33nano.yaml\r\n", - "110 -rw-r--r--. 1 alobanov 1399 112502 Mar 5 14:18 PhotonsTrigger_Barrel_20_V33nano.png\r\n", - " 32 -rw-r--r--. 1 alobanov 1399 32506 Mar 5 14:18 PhotonsTrigger_Barrel_20_V33nano.pdf\r\n", - " 27 -rw-r--r--. 1 alobanov 1399 26892 Mar 5 14:18 PhotonsTrigger_Barrel_20_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 646 Mar 5 14:18 PhotonsTrigger_Barrel_20_V33nano.yaml\r\n", - "112 -rw-r--r--. 1 alobanov 1399 113831 Mar 5 14:19 PhotonsTrigger_Barrel_30_V33nano.png\r\n", - " 32 -rw-r--r--. 1 alobanov 1399 32487 Mar 5 14:19 PhotonsTrigger_Barrel_30_V33nano.pdf\r\n", - " 27 -rw-r--r--. 1 alobanov 1399 26954 Mar 5 14:19 PhotonsTrigger_Barrel_30_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 646 Mar 5 14:19 PhotonsTrigger_Barrel_30_V33nano.yaml\r\n", - "111 -rw-r--r--. 1 alobanov 1399 112900 Mar 5 14:19 PhotonsTrigger_Barrel_40_V33nano.png\r\n", - " 32 -rw-r--r--. 1 alobanov 1399 32154 Mar 5 14:19 PhotonsTrigger_Barrel_40_V33nano.pdf\r\n", - " 27 -rw-r--r--. 1 alobanov 1399 26639 Mar 5 14:19 PhotonsTrigger_Barrel_40_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 646 Mar 5 14:19 PhotonsTrigger_Barrel_40_V33nano.yaml\r\n", - " 94 -rw-r--r--. 1 alobanov 1399 95269 Mar 5 14:20 PhotonsTrigger_Endcap_10_V33nano.png\r\n", - " 28 -rw-r--r--. 1 alobanov 1399 28011 Mar 5 14:20 PhotonsTrigger_Endcap_10_V33nano.pdf\r\n", - " 23 -rw-r--r--. 1 alobanov 1399 23024 Mar 5 14:20 PhotonsTrigger_Endcap_10_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 646 Mar 5 14:20 PhotonsTrigger_Endcap_10_V33nano.yaml\r\n", - "108 -rw-r--r--. 1 alobanov 1399 110536 Mar 5 14:20 PhotonsTrigger_Endcap_20_V33nano.png\r\n", - " 30 -rw-r--r--. 1 alobanov 1399 29936 Mar 5 14:20 PhotonsTrigger_Endcap_20_V33nano.pdf\r\n", - " 25 -rw-r--r--. 1 alobanov 1399 24683 Mar 5 14:20 PhotonsTrigger_Endcap_20_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 646 Mar 5 14:20 PhotonsTrigger_Endcap_20_V33nano.yaml\r\n", - "112 -rw-r--r--. 1 alobanov 1399 114151 Mar 5 14:21 PhotonsTrigger_Endcap_30_V33nano.png\r\n", - " 31 -rw-r--r--. 1 alobanov 1399 30744 Mar 5 14:21 PhotonsTrigger_Endcap_30_V33nano.pdf\r\n", - " 25 -rw-r--r--. 1 alobanov 1399 25577 Mar 5 14:21 PhotonsTrigger_Endcap_30_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 646 Mar 5 14:21 PhotonsTrigger_Endcap_30_V33nano.yaml\r\n", - "110 -rw-r--r--. 1 alobanov 1399 112334 Mar 5 14:21 PhotonsTrigger_Endcap_40_V33nano.png\r\n", - " 31 -rw-r--r--. 1 alobanov 1399 30741 Mar 5 14:21 PhotonsTrigger_Endcap_40_V33nano.pdf\r\n", - " 26 -rw-r--r--. 1 alobanov 1399 25629 Mar 5 14:21 PhotonsTrigger_Endcap_40_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 646 Mar 5 14:21 PhotonsTrigger_Endcap_40_V33nano.yaml\r\n", - "104 -rw-r--r--. 1 alobanov 1399 105700 Mar 5 14:55 ElectronsTriggerBarrel_10_V33nano.png\r\n", - " 32 -rw-r--r--. 1 alobanov 1399 32110 Mar 5 14:55 ElectronsTriggerBarrel_10_V33nano.pdf\r\n", - " 27 -rw-r--r--. 1 alobanov 1399 27253 Mar 5 14:55 ElectronsTriggerBarrel_10_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 658 Mar 5 14:55 ElectronsTriggerBarrel_10_V33nano.yaml\r\n", - "110 -rw-r--r--. 1 alobanov 1399 112112 Mar 5 14:55 ElectronsTriggerBarrel_20_V33nano.png\r\n", - " 32 -rw-r--r--. 1 alobanov 1399 32165 Mar 5 14:55 ElectronsTriggerBarrel_20_V33nano.pdf\r\n", - " 27 -rw-r--r--. 1 alobanov 1399 27045 Mar 5 14:55 ElectronsTriggerBarrel_20_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 658 Mar 5 14:55 ElectronsTriggerBarrel_20_V33nano.yaml\r\n", - "110 -rw-r--r--. 1 alobanov 1399 112444 Mar 5 14:56 ElectronsTriggerBarrel_30_V33nano.png\r\n", - " 32 -rw-r--r--. 1 alobanov 1399 31851 Mar 5 14:56 ElectronsTriggerBarrel_30_V33nano.pdf\r\n", - " 27 -rw-r--r--. 1 alobanov 1399 26759 Mar 5 14:56 ElectronsTriggerBarrel_30_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 658 Mar 5 14:56 ElectronsTriggerBarrel_30_V33nano.yaml\r\n", - "110 -rw-r--r--. 1 alobanov 1399 112569 Mar 5 14:57 ElectronsTriggerBarrel_40_V33nano.png\r\n", - " 31 -rw-r--r--. 1 alobanov 1399 31289 Mar 5 14:57 ElectronsTriggerBarrel_40_V33nano.pdf\r\n", - " 26 -rw-r--r--. 1 alobanov 1399 26189 Mar 5 14:57 ElectronsTriggerBarrel_40_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 658 Mar 5 14:57 ElectronsTriggerBarrel_40_V33nano.yaml\r\n", - "102 -rw-r--r--. 1 alobanov 1399 104394 Mar 5 14:57 ElectronsTriggerEndcap_10_V33nano.png\r\n", - " 29 -rw-r--r--. 1 alobanov 1399 29301 Mar 5 14:57 ElectronsTriggerEndcap_10_V33nano.pdf\r\n", - " 24 -rw-r--r--. 1 alobanov 1399 24487 Mar 5 14:57 ElectronsTriggerEndcap_10_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 658 Mar 5 14:57 ElectronsTriggerEndcap_10_V33nano.yaml\r\n", - "108 -rw-r--r--. 1 alobanov 1399 110230 Mar 5 14:58 ElectronsTriggerEndcap_20_V33nano.png\r\n", - " 31 -rw-r--r--. 1 alobanov 1399 30984 Mar 5 14:58 ElectronsTriggerEndcap_20_V33nano.pdf\r\n", - " 26 -rw-r--r--. 1 alobanov 1399 26147 Mar 5 14:58 ElectronsTriggerEndcap_20_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 658 Mar 5 14:58 ElectronsTriggerEndcap_20_V33nano.yaml\r\n", - "107 -rw-r--r--. 1 alobanov 1399 108881 Mar 5 14:59 ElectronsTriggerEndcap_30_V33nano.png\r\n", - " 31 -rw-r--r--. 1 alobanov 1399 30990 Mar 5 14:59 ElectronsTriggerEndcap_30_V33nano.pdf\r\n", - " 26 -rw-r--r--. 1 alobanov 1399 26156 Mar 5 14:59 ElectronsTriggerEndcap_30_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 658 Mar 5 14:59 ElectronsTriggerEndcap_30_V33nano.yaml\r\n", - "112 -rw-r--r--. 1 alobanov 1399 114149 Mar 5 14:59 ElectronsTriggerEndcap_40_V33nano.png\r\n", - " 31 -rw-r--r--. 1 alobanov 1399 31071 Mar 5 14:59 ElectronsTriggerEndcap_40_V33nano.pdf\r\n", - " 26 -rw-r--r--. 1 alobanov 1399 26177 Mar 5 14:59 ElectronsTriggerEndcap_40_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 658 Mar 5 14:59 ElectronsTriggerEndcap_40_V33nano.yaml\r\n", - "128 -rw-r--r--. 1 alobanov 1399 130118 Mar 7 10:15 TauMatching_Eta_Pt40To100_-999_V33nano.png\r\n", - " 31 -rw-r--r--. 1 alobanov 1399 30746 Mar 7 10:15 TauMatching_Eta_Pt40To100_-999_V33nano.pdf\r\n", - " 17 -rw-r--r--. 1 alobanov 1399 17098 Mar 7 10:15 TauMatching_Eta_Pt40To100_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 520 Mar 7 10:15 TauMatching_Eta_Pt40To100_-999_V33nano.yaml\r\n", - "156 -rw-r--r--. 1 alobanov 1399 159609 Mar 7 10:16 TauMatching_Eta_Pt100ToInf_-999_V33nano.png\r\n", - " 31 -rw-r--r--. 1 alobanov 1399 31511 Mar 7 10:16 TauMatching_Eta_Pt100ToInf_-999_V33nano.pdf\r\n", - " 20 -rw-r--r--. 1 alobanov 1399 19633 Mar 7 10:16 TauMatching_Eta_Pt100ToInf_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 493 Mar 7 10:16 TauMatching_Eta_Pt100ToInf_-999_V33nano.yaml\r\n", - "126 -rw-r--r--. 1 alobanov 1399 128665 Mar 7 10:16 TausMatchingBarrel_-999_V33nano.png\r\n", - " 31 -rw-r--r--. 1 alobanov 1399 31699 Mar 7 10:16 TausMatchingBarrel_-999_V33nano.pdf\r\n", - " 16 -rw-r--r--. 1 alobanov 1399 16251 Mar 7 10:16 TausMatchingBarrel_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 488 Mar 7 10:16 TausMatchingBarrel_-999_V33nano.yaml\r\n", - "145 -rw-r--r--. 1 alobanov 1399 147646 Mar 7 10:16 TausMatchingEndcap_-999_V33nano.png\r\n", - " 31 -rw-r--r--. 1 alobanov 1399 31494 Mar 7 10:16 TausMatchingEndcap_-999_V33nano.pdf\r\n", - " 16 -rw-r--r--. 1 alobanov 1399 16136 Mar 7 10:16 TausMatchingEndcap_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 488 Mar 7 10:16 TausMatchingEndcap_-999_V33nano.yaml\r\n", - "117 -rw-r--r--. 1 alobanov 1399 119326 Mar 7 10:37 TauTriggerBarrel_50perc_20_V33nano.png\r\n", - " 30 -rw-r--r--. 1 alobanov 1399 29886 Mar 7 10:37 TauTriggerBarrel_50perc_20_V33nano.pdf\r\n", - " 15 -rw-r--r--. 1 alobanov 1399 14617 Mar 7 10:37 TauTriggerBarrel_50perc_20_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 594 Mar 7 10:37 TauTriggerBarrel_50perc_20_V33nano.yaml\r\n", - "145 -rw-r--r--. 1 alobanov 1399 147718 Mar 7 10:37 TauTriggerBarrel_50perc_30_V33nano.png\r\n", - " 31 -rw-r--r--. 1 alobanov 1399 31138 Mar 7 10:37 TauTriggerBarrel_50perc_30_V33nano.pdf\r\n", - " 16 -rw-r--r--. 1 alobanov 1399 15836 Mar 7 10:37 TauTriggerBarrel_50perc_30_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 594 Mar 7 10:37 TauTriggerBarrel_50perc_30_V33nano.yaml\r\n", - "113 -rw-r--r--. 1 alobanov 1399 115524 Mar 7 10:38 TauTriggerEndcap_50perc_20_V33nano.png\r\n", - " 29 -rw-r--r--. 1 alobanov 1399 29537 Mar 7 10:38 TauTriggerEndcap_50perc_20_V33nano.pdf\r\n", - " 14 -rw-r--r--. 1 alobanov 1399 14298 Mar 7 10:38 TauTriggerEndcap_50perc_20_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 594 Mar 7 10:38 TauTriggerEndcap_50perc_20_V33nano.yaml\r\n", - "146 -rw-r--r--. 1 alobanov 1399 149052 Mar 7 10:38 TauTriggerEndcap_50perc_30_V33nano.png\r\n", - " 31 -rw-r--r--. 1 alobanov 1399 30895 Mar 7 10:38 TauTriggerEndcap_50perc_30_V33nano.pdf\r\n", - " 16 -rw-r--r--. 1 alobanov 1399 15599 Mar 7 10:38 TauTriggerEndcap_50perc_30_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 594 Mar 7 10:38 TauTriggerEndcap_50perc_30_V33nano.yaml\r\n", - "118 -rw-r--r--. 1 alobanov 1399 119980 Mar 7 10:44 TauTriggerBarrel_90perc_20_V33nano.png\r\n", - " 30 -rw-r--r--. 1 alobanov 1399 29884 Mar 7 10:44 TauTriggerBarrel_90perc_20_V33nano.pdf\r\n", - " 15 -rw-r--r--. 1 alobanov 1399 14610 Mar 7 10:44 TauTriggerBarrel_90perc_20_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 622 Mar 7 10:44 TauTriggerBarrel_90perc_20_V33nano.yaml\r\n", - "145 -rw-r--r--. 1 alobanov 1399 147705 Mar 7 10:44 TauTriggerBarrel_90perc_30_V33nano.png\r\n", - " 31 -rw-r--r--. 1 alobanov 1399 31158 Mar 7 10:44 TauTriggerBarrel_90perc_30_V33nano.pdf\r\n", - " 16 -rw-r--r--. 1 alobanov 1399 15818 Mar 7 10:44 TauTriggerBarrel_90perc_30_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 622 Mar 7 10:44 TauTriggerBarrel_90perc_30_V33nano.yaml\r\n", - "113 -rw-r--r--. 1 alobanov 1399 115339 Mar 7 10:45 TauTriggerEndcap_90perc_20_V33nano.png\r\n", - " 29 -rw-r--r--. 1 alobanov 1399 29548 Mar 7 10:45 TauTriggerEndcap_90perc_20_V33nano.pdf\r\n", - " 14 -rw-r--r--. 1 alobanov 1399 14311 Mar 7 10:45 TauTriggerEndcap_90perc_20_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 622 Mar 7 10:45 TauTriggerEndcap_90perc_20_V33nano.yaml\r\n", - "146 -rw-r--r--. 1 alobanov 1399 148894 Mar 7 10:45 TauTriggerEndcap_90perc_30_V33nano.png\r\n", - " 31 -rw-r--r--. 1 alobanov 1399 30924 Mar 7 10:45 TauTriggerEndcap_90perc_30_V33nano.pdf\r\n", - " 16 -rw-r--r--. 1 alobanov 1399 15592 Mar 7 10:45 TauTriggerEndcap_90perc_30_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 622 Mar 7 10:45 TauTriggerEndcap_90perc_30_V33nano.yaml\r\n", - "116 -rw-r--r--. 1 alobanov 1399 118002 Mar 7 11:21 HT_90perc_350_V33nano.png\r\n", - " 31 -rw-r--r--. 1 alobanov 1399 30814 Mar 7 11:21 HT_90perc_350_V33nano.pdf\r\n", - " 18 -rw-r--r--. 1 alobanov 1399 17600 Mar 7 11:21 HT_90perc_350_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 484 Mar 7 11:21 HT_90perc_350_V33nano.yaml\r\n", - "108 -rw-r--r--. 1 alobanov 1399 109976 Mar 7 11:21 MHT_50perc_70_V33nano.png\r\n", - " 28 -rw-r--r--. 1 alobanov 1399 28199 Mar 7 11:21 MHT_50perc_70_V33nano.pdf\r\n", - " 12 -rw-r--r--. 1 alobanov 1399 11334 Mar 7 11:21 MHT_50perc_70_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 501 Mar 7 11:21 MHT_50perc_70_V33nano.yaml\r\n", - "110 -rw-r--r--. 1 alobanov 1399 112418 Mar 7 11:21 MHT_50perc_150_V33nano.png\r\n", - " 28 -rw-r--r--. 1 alobanov 1399 28094 Mar 7 11:21 MHT_50perc_150_V33nano.pdf\r\n", - " 12 -rw-r--r--. 1 alobanov 1399 11470 Mar 7 11:21 MHT_50perc_150_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 501 Mar 7 11:21 MHT_50perc_150_V33nano.yaml\r\n", - "129 -rw-r--r--. 1 alobanov 1399 131776 Mar 7 11:21 MET_90perc_150_V33nano.png\r\n", - " 27 -rw-r--r--. 1 alobanov 1399 27441 Mar 7 11:21 MET_90perc_150_V33nano.pdf\r\n", - " 12 -rw-r--r--. 1 alobanov 1399 12161 Mar 7 11:21 MET_90perc_150_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 406 Mar 7 11:21 MET_90perc_150_V33nano.yaml\r\n", - " 99 -rw-r--r--. 1 alobanov 1399 100428 Mar 7 14:07 MuonsTrigger_Barrel_20_V33nano.png\r\n", - " 27 -rw-r--r--. 1 alobanov 1399 26703 Mar 7 14:07 MuonsTrigger_Barrel_20_V33nano.pdf\r\n", - " 10 -rw-r--r--. 1 alobanov 1399 9344 Mar 7 14:07 MuonsTrigger_Barrel_20_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 578 Mar 7 14:07 MuonsTrigger_Barrel_20_V33nano.yaml\r\n", - " 99 -rw-r--r--. 1 alobanov 1399 100978 Mar 7 14:08 MuonsTrigger_Barrel_25_V33nano.png\r\n", - " 26 -rw-r--r--. 1 alobanov 1399 26612 Mar 7 14:08 MuonsTrigger_Barrel_25_V33nano.pdf\r\n", - " 10 -rw-r--r--. 1 alobanov 1399 9252 Mar 7 14:08 MuonsTrigger_Barrel_25_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 578 Mar 7 14:08 MuonsTrigger_Barrel_25_V33nano.yaml\r\n", - "103 -rw-r--r--. 1 alobanov 1399 104911 Mar 7 14:08 MuonsTrigger_Overlap_20_V33nano.png\r\n", - " 27 -rw-r--r--. 1 alobanov 1399 26707 Mar 7 14:08 MuonsTrigger_Overlap_20_V33nano.pdf\r\n", - " 10 -rw-r--r--. 1 alobanov 1399 9573 Mar 7 14:08 MuonsTrigger_Overlap_20_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 608 Mar 7 14:08 MuonsTrigger_Overlap_20_V33nano.yaml\r\n", - "103 -rw-r--r--. 1 alobanov 1399 105116 Mar 7 14:08 MuonsTrigger_Overlap_25_V33nano.png\r\n", - " 27 -rw-r--r--. 1 alobanov 1399 26639 Mar 7 14:08 MuonsTrigger_Overlap_25_V33nano.pdf\r\n", - " 10 -rw-r--r--. 1 alobanov 1399 9474 Mar 7 14:08 MuonsTrigger_Overlap_25_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 608 Mar 7 14:08 MuonsTrigger_Overlap_25_V33nano.yaml\r\n", - "104 -rw-r--r--. 1 alobanov 1399 105680 Mar 7 14:08 MuonsTrigger_Endcap_20_V33nano.png\r\n", - " 26 -rw-r--r--. 1 alobanov 1399 26455 Mar 7 14:08 MuonsTrigger_Endcap_20_V33nano.pdf\r\n", - " 10 -rw-r--r--. 1 alobanov 1399 9769 Mar 7 14:08 MuonsTrigger_Endcap_20_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 578 Mar 7 14:08 MuonsTrigger_Endcap_20_V33nano.yaml\r\n", - "104 -rw-r--r--. 1 alobanov 1399 105958 Mar 7 14:09 MuonsTrigger_Endcap_25_V33nano.png\r\n", - " 26 -rw-r--r--. 1 alobanov 1399 26432 Mar 7 14:09 MuonsTrigger_Endcap_25_V33nano.pdf\r\n", - " 10 -rw-r--r--. 1 alobanov 1399 9736 Mar 7 14:09 MuonsTrigger_Endcap_25_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 578 Mar 7 14:09 MuonsTrigger_Endcap_25_V33nano.yaml\r\n", - "106 -rw-r--r--. 1 alobanov 1399 108026 Mar 13 11:53 MuonsMatching_Eta_Pt2to5_-999_V33nano.png\r\n", - " 26 -rw-r--r--. 1 alobanov 1399 25721 Mar 13 11:53 MuonsMatching_Eta_Pt2to5_-999_V33nano.pdf\r\n", - " 8 -rw-r--r--. 1 alobanov 1399 8000 Mar 13 11:53 MuonsMatching_Eta_Pt2to5_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 511 Mar 13 11:53 MuonsMatching_Eta_Pt2to5_-999_V33nano.yaml\r\n", - " 82 -rw-r--r--. 1 alobanov 1399 83299 Mar 13 11:53 MuonsMatching_Eta_Pt15toInf_-999_V33nano.png\r\n", - " 26 -rw-r--r--. 1 alobanov 1399 26464 Mar 13 11:53 MuonsMatching_Eta_Pt15toInf_-999_V33nano.pdf\r\n", - " 9 -rw-r--r--. 1 alobanov 1399 8693 Mar 13 11:53 MuonsMatching_Eta_Pt15toInf_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 496 Mar 13 11:53 MuonsMatching_Eta_Pt15toInf_-999_V33nano.yaml\r\n", - " 95 -rw-r--r--. 1 alobanov 1399 96432 Mar 13 11:53 MuonsMatchingBarrel_-999_V33nano.png\r\n", - " 27 -rw-r--r--. 1 alobanov 1399 27157 Mar 13 11:53 MuonsMatchingBarrel_-999_V33nano.pdf\r\n", - " 11 -rw-r--r--. 1 alobanov 1399 10367 Mar 13 11:53 MuonsMatchingBarrel_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 483 Mar 13 11:53 MuonsMatchingBarrel_-999_V33nano.yaml\r\n", - " 96 -rw-r--r--. 1 alobanov 1399 98012 Mar 13 11:54 MuonsMatchingOverlap_-999_V33nano.png\r\n", - " 27 -rw-r--r--. 1 alobanov 1399 26901 Mar 13 11:54 MuonsMatchingOverlap_-999_V33nano.pdf\r\n", - " 11 -rw-r--r--. 1 alobanov 1399 10290 Mar 13 11:54 MuonsMatchingOverlap_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 513 Mar 13 11:54 MuonsMatchingOverlap_-999_V33nano.yaml\r\n", - " 96 -rw-r--r--. 1 alobanov 1399 97953 Mar 13 11:54 MuonsMatchingEndcap_-999_V33nano.png\r\n", - " 26 -rw-r--r--. 1 alobanov 1399 26603 Mar 13 11:54 MuonsMatchingEndcap_-999_V33nano.pdf\r\n", - " 11 -rw-r--r--. 1 alobanov 1399 10584 Mar 13 11:54 MuonsMatchingEndcap_-999_V33nano.json\r\n", - " 1 -rw-r--r--. 1 alobanov 1399 508 Mar 13 11:54 MuonsMatchingEndcap_-999_V33nano.yaml\r\n" - ] - } - ], - "source": [ - "! ls -lsrt /eos/user/a/alobanov/www/L1T/Phase2/menu/Validation/NewMenuTools/V33nano/object_performance/turnons/" + "# print(\"Saving plot %s\" %outfname)\n", + "# plt.savefig(outfname)\n", + "\n", + "# # save pdf\n", + "# outfname = outfname.replace(\".png\",\".pdf\")\n", + "# plt.savefig(outfname)\n", + " \n", + "# plt.close()\n", + "# # break " ] }, { "cell_type": "code", "execution_count": null, - "id": "9e2ddbd3", + "id": "39333245", "metadata": {}, "outputs": [], "source": [] @@ -1766,7 +728,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "prod_ph2-menu-tools", "language": "python", "name": "python3" }, @@ -1780,7 +742,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.5" + "version": "3.11.7" } }, "nbformat": 4, diff --git a/menu_tools/utils/config.py b/menu_tools/utils/config.py index 05419827..ff6e31aa 100644 --- a/menu_tools/utils/config.py +++ b/menu_tools/utils/config.py @@ -33,6 +33,13 @@ def version(self) -> str: except KeyError: raise KeyError(f"No version configured for {self.plot_name}!") + @property + def nObjects(self) -> int: + if "nObjects" in self._cfg: + return int(self._cfg["nObjects"]) + else: + return 1 + @property def bin_width(self) -> float: return float(self._cfg["binning"]["step"])