diff --git a/Datacards/BambooDatacardProducer b/Datacards/BambooDatacardProducer index d8491fbe..c8f39712 160000 --- a/Datacards/BambooDatacardProducer +++ b/Datacards/BambooDatacardProducer @@ -1 +1 @@ -Subproject commit d8491fbe06ec7b41e469d4b8d3963772365f4a5b +Subproject commit c8f39712b5b48010a8b85e71a8e96a7af900a434 diff --git a/Datacards/configs/cat_SL_nonresonant_channel.yml b/Datacards/configs/cat_SL_nonresonant_channel.yml index 13a6ecc3..c0206543 100644 --- a/Datacards/configs/cat_SL_nonresonant_channel.yml +++ b/Datacards/configs/cat_SL_nonresonant_channel.yml @@ -31,16 +31,11 @@ HH_SL_m_boosted_VBF: # Background categories # -HH_SL_e_inclusive_WJets: + +HH_SL_e_inclusive_other: - El_Has1FakeableElWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedResolvedExclusiveResolved2b01WJets_DNNOutput_WJets - El_Has1FakeableElWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedResolvedExclusiveResolved1b01WJets_DNNOutput_WJets - El_Has1FakeableElWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedBoosted01WJets_DNNOutput_WJets -HH_SL_m_inclusive_WJets: - - Mu_Has1FakeableMuWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedResolvedExclusiveResolved1b01WJets_DNNOutput_WJets - - Mu_Has1FakeableMuWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedResolvedExclusiveResolved2b01WJets_DNNOutput_WJets - - Mu_Has1FakeableMuWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedBoosted01WJets_DNNOutput_WJets - -HH_SL_e_inclusive_other: - El_Has1FakeableElWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedResolvedExclusiveResolved1b01Other_DNNOutput_Other - El_Has1FakeableElWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedResolvedExclusiveResolved2b01Other_DNNOutput_Other - El_Has1FakeableElWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedBoosted01Other_DNNOutput_Other @@ -48,6 +43,9 @@ HH_SL_e_inclusive_other: - El_Has1FakeableElWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedResolvedExclusiveResolved2b01ST_DNNOutput_ST - El_Has1FakeableElWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedBoosted01ST_DNNOutput_ST HH_SL_m_inclusive_other: + - Mu_Has1FakeableMuWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedResolvedExclusiveResolved1b01WJets_DNNOutput_WJets + - Mu_Has1FakeableMuWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedResolvedExclusiveResolved2b01WJets_DNNOutput_WJets + - Mu_Has1FakeableMuWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedBoosted01WJets_DNNOutput_WJets - Mu_Has1FakeableMuWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedResolvedExclusiveResolved2b01Other_DNNOutput_Other - Mu_Has1FakeableMuWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedResolvedExclusiveResolved1b01Other_DNNOutput_Other - Mu_Has1FakeableMuWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedBoosted01Other_DNNOutput_Other diff --git a/Datacards/configs/cat_SL_nonresonant_regroup.yml b/Datacards/configs/cat_SL_nonresonant_regroup.yml deleted file mode 100644 index 6254d66e..00000000 --- a/Datacards/configs/cat_SL_nonresonant_regroup.yml +++ /dev/null @@ -1,38 +0,0 @@ -HH_SL_resolved1b_GGF: - - HH_SL_e_resolved1b_GGF - - HH_SL_m_resolved1b_GGF -HH_SL_resolved1b_VBF: - - HH_SL_e_resolved1b_VBF - - HH_SL_m_resolved1b_VBF - -HH_SL_resolved2b_GGF: - - HH_SL_e_resolved2b_GGF - - HH_SL_m_resolved2b_GGF - -HH_SL_resolved2b_VBF: - - HH_SL_e_resolved2b_VBF - - HH_SL_m_resolved2b_VBF - -HH_SL_boosted_GGF: - - HH_SL_e_boosted_GGF - - HH_SL_m_boosted_GGF - -HH_SL_boosted_VBF: - - HH_SL_e_boosted_VBF - - HH_SL_m_boosted_VBF - -HH_SL_inclusive_WJets: - - HH_SL_e_inclusive_WJets - - HH_SL_m_inclusive_WJets - -HH_SL_inclusive_other: - - HH_SL_e_inclusive_other - - HH_SL_m_inclusive_other - -HH_SL_resolved_TopH: - - HH_SL_e_resolved_TopH - - HH_SL_m_resolved_TopH - -HH_SL_boosted_TopH: - - HH_SL_e_boosted_TopH - - HH_SL_m_boosted_TopH diff --git a/Datacards/configs/cat_comb_nonresonant.yml b/Datacards/configs/cat_comb_nonresonant.yml index 3e5ee8e0..c030f40f 100644 --- a/Datacards/configs/cat_comb_nonresonant.yml +++ b/Datacards/configs/cat_comb_nonresonant.yml @@ -125,16 +125,13 @@ HH_DL_boosted_other: - ElMu_Has2FakeableElMuOSWithTriggersPtCutsPreMllCutOutZTightSelectedjetPUIDReweightingBtagAk4SFBtagAk8SFOneAk8JetInclusiveBoostedOneBtag11H_DNNOutput_H - MuMu_Has2FakeableMuMuOSWithTriggersPtCutsPreMllCutOutZTightSelectedjetPUIDReweightingBtagAk4SFBtagAk8SFOneAk8JetInclusiveBoostedOneBtag11H_DNNOutput_H - -HH_SL_inclusive_WJets: +HH_SL_inclusive_other: - El_Has1FakeableElWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedResolvedExclusiveResolved2b01WJets_DNNOutput_WJets - El_Has1FakeableElWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedResolvedExclusiveResolved1b01WJets_DNNOutput_WJets - El_Has1FakeableElWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedBoosted01WJets_DNNOutput_WJets - Mu_Has1FakeableMuWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedResolvedExclusiveResolved1b01WJets_DNNOutput_WJets - Mu_Has1FakeableMuWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedResolvedExclusiveResolved2b01WJets_DNNOutput_WJets - Mu_Has1FakeableMuWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedBoosted01WJets_DNNOutput_WJets - -HH_SL_inclusive_other: - El_Has1FakeableElWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedResolvedExclusiveResolved1b01Other_DNNOutput_Other - El_Has1FakeableElWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedResolvedExclusiveResolved2b01Other_DNNOutput_Other - El_Has1FakeableElWithTriggersPtCutsPreMllCutOutZnoTauTightSelectedBoosted01Other_DNNOutput_Other diff --git a/Datacards/configs/combine_DL_nonres.yml b/Datacards/configs/combine_DL_nonres.yml deleted file mode 100644 index 3de69543..00000000 --- a/Datacards/configs/combine_DL_nonres.yml +++ /dev/null @@ -1,67 +0,0 @@ - gof: - mode: gof - command: "combine -M GoodnessOfFit --algo=saturated --toysFrequentist" - toys: 500 - toys-per-job: 10 - combine_bins: True - combine_eras: True - split_bins: True - split_eras: True - plotting: - n_bins : 32 - #left_margin : 200 - #right_margin : 20 - submit : - time: '0-04:00:00' - mem : 3000 - bins: - - HH_DL_inclusive_DY_VVV - - HH_DL_resolved_other - - HH_DL_boosted_other - pulls: - mode: pulls_impacts - command: "combine -M MultiDimFit --verbose 3 --mass 125.0 --redefineSignalPOIs r --setParameterRanges r=-6000.0,6000.0 --cminDefaultMinimizerType Minuit2 --cminDefaultMinimizerStrategy 1 --cminDefaultMinimizerTolerance 0.1 --cminFallbackAlgo Minuit2,0:0.2 --cminFallbackAlgo Minuit2,0:0.4 --floatOtherPOIs 1 --saveInactivePOI 1 --saveNLL --X-rtd REMOVE_CONSTANT_ZERO_POINT=1 --X-rtd MINIMIZER_freezeDisassociatedParams --X-rtd MINIMIZER_multiMin_hideConstants --X-rtd MINIMIZER_multiMin_maskConstraints --X-rtd MINIMIZER_multiMin_maskChannels=2 --X-rtd MINIMIZER_no_analytic" - #command: "combine -M MultiDimFit -d {} --verbose 3 --redefineSignalPOIs r --setParameterRanges r=-6000.0,6000.0 --keepFailures --robustFit 1 --cminDefaultMinimizerType Minuit2 --cminDefaultMinimizerStrategy 0 --cminFallbackAlgo Minuit2,0:1.0 --X-rtd MINIMIZER_no_analytic" - mc_stats: False - unblind: True - submit : - time: '0-01:00:00' - mem : 3000 - plotting: - left_margin : 400 - right_margin : 20 - label_size : 18 - parameters_per_page : 200 - order_by_impact : False - impact_range : 10 - bins: - - HH_DL_inclusive_DY_VVV - - HH_DL_resolved_other - - HH_DL_boosted_other - impacts: - mode: pulls_impacts - command: "combine -M MultiDimFit --verbose 3 --mass 125.0 --redefineSignalPOIs r --setParameters r=1.0 --cminDefaultMinimizerType Minuit2 --cminDefaultMinimizerStrategy 1 --cminDefaultMinimizerTolerance 0.1 --cminFallbackAlgo Minuit2,0:0.2 --cminFallbackAlgo Minuit2,0:0.4 --floatOtherPOIs 1 --saveInactivePOI 1 --X-rtd MINIMIZER_no_analytic --X-rtd REMOVE_CONSTANT_ZERO_POINT=1 --saveNLL" - - #command: "combine -M MultiDimFit -d {} --verbose 3 --redefineSignalPOIs r --setParameters r=1.0 --setParameterRanges r=-6000.0,6000.0 --keepFailures --robustFit 1 --cminDefaultMinimizerType Minuit2 --cminDefaultMinimizerStrategy 0 --cminFallbackAlgo Minuit2,0:1.0 --X-rtd MINIMIZER_no_analytic " - # --cminDefaultMinimizerType Minuit2 --cminDefaultMinimizerStrategy 0 --cminFallbackAlgo Minuit2,0:1.0 --X-rtd MINIMIZER_no_analytic --robustHesse true - mc_stats: False - submit : - time: '0-01:00:00' - mem : 3000 - plotting: - left_margin : 400 - right_margin : 20 - label_size : 18 - parameters_per_page : 200 - order_by_impact : False - #impact_range : 10 - bins: - - HH_DL_resolved1b_GGF - - HH_DL_resolved2b_GGF - - HH_DL_boosted_GGF - - HH_DL_resolved1b_VBF - - HH_DL_resolved2b_VBF - - HH_DL_boosted_VBF - - HH_DL_inclusive_DY_VVV - - HH_DL_resolved_other - - HH_DL_boosted_other diff --git a/Datacards/configs/datacard_SL_FNC_MCClosure_2016.yml b/Datacards/configs/datacard_SL_FNC_MCClosure_2016.yml deleted file mode 100644 index 5f245598..00000000 --- a/Datacards/configs/datacard_SL_FNC_MCClosure_2016.yml +++ /dev/null @@ -1,30 +0,0 @@ -path: /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/FakeNC_SL_2016_MCClosure -use_syst: False - -outputDir: /home/ucl/cp3/fbury/scratch/Datacards/datacard_SL_FNC_MCClosure_2016 - -yamlName: plots.yml - -produce_plots: True - -era: 2016 - -legend: - position: - - 0.8 - - 0.6 - - 0.99 - - 0.99 - - -histConverter: !include cat_SL_nonresonant_channel.yml - -groups: - TT: - fill-color: '#cc7a16' - legend: 't#bar{t}' - order: 1 - type: mc - files: - - TTToHadronic.root - diff --git a/Datacards/configs/datacard_SL_FNC_MCClosure_2017.yml b/Datacards/configs/datacard_SL_FNC_MCClosure_2017.yml deleted file mode 100644 index fdfbc8bb..00000000 --- a/Datacards/configs/datacard_SL_FNC_MCClosure_2017.yml +++ /dev/null @@ -1,30 +0,0 @@ -path: /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/FakeNC_SL_2017_MCClosure -use_syst: False - -outputDir: /home/ucl/cp3/fbury/scratch/Datacards/datacard_SL_FNC_MCClosure_2017 - -yamlName: plots.yml - -produce_plots: True - -era: 2017 - -legend: - position: - - 0.8 - - 0.6 - - 0.99 - - 0.99 - - -histConverter: !include cat_SL_nonresonant_channel.yml - -groups: - TT: - fill-color: '#cc7a16' - legend: 't#bar{t}' - order: 1 - type: mc - files: - - TTToHadronic.root - diff --git a/Datacards/configs/datacard_SL_FNC_MCClosure_2018.yml b/Datacards/configs/datacard_SL_FNC_MCClosure_2018.yml deleted file mode 100644 index 5a65d4e6..00000000 --- a/Datacards/configs/datacard_SL_FNC_MCClosure_2018.yml +++ /dev/null @@ -1,30 +0,0 @@ -path: /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/FakeNC_SL_2018_MCClosure -use_syst: False - -outputDir: /home/ucl/cp3/fbury/scratch/Datacards/datacard_SL_FNC_MCClosure_2018 - -yamlName: plots.yml - -produce_plots: True - -era: 2018 - -legend: - position: - - 0.8 - - 0.6 - - 0.99 - - 0.99 - - -histConverter: !include cat_SL_nonresonant_channel.yml - -groups: - TT: - fill-color: '#cc7a16' - legend: 't#bar{t}' - order: 1 - type: mc - files: - - TTToHadronic.root - diff --git a/Datacards/configs/datacard_SL_FNC_MCFakes_2016.yml b/Datacards/configs/datacard_SL_FNC_MCFakes_2016.yml deleted file mode 100644 index 87d33d3a..00000000 --- a/Datacards/configs/datacard_SL_FNC_MCFakes_2016.yml +++ /dev/null @@ -1,30 +0,0 @@ -path: /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/FakeNC_SL_2016_MCFakes/ -use_syst: False - -outputDir: /home/ucl/cp3/fbury/scratch/Datacards/bbww_sl/NonResonant/datacard_SL_FNC_MCFakes_2016 - -yamlName: plots.yml - -produce_plots: True - -era: 2016 - -legend: - position: - - 0.8 - - 0.6 - - 0.99 - - 0.99 - - -histConverter: !include cat_SL_nonresonant_channel.yml - -groups: - TT: - fill-color: '#cc7a16' - legend: 't#bar{t}' - order: 1 - type: mc - files: - - TTToHadronic.root - diff --git a/Datacards/configs/datacard_SL_FNC_MCFakes_2017.yml b/Datacards/configs/datacard_SL_FNC_MCFakes_2017.yml deleted file mode 100644 index bdb4c4f3..00000000 --- a/Datacards/configs/datacard_SL_FNC_MCFakes_2017.yml +++ /dev/null @@ -1,30 +0,0 @@ -path: /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/FakeNC_SL_2017_MCFakes/ -use_syst: False - -outputDir: /home/ucl/cp3/fbury/scratch/Datacards/bbww_sl/NonResonant/datacard_SL_FNC_MCFakes_2017 - -yamlName: plots.yml - -produce_plots: True - -era: 2017 - -legend: - position: - - 0.8 - - 0.6 - - 0.99 - - 0.99 - - -histConverter: !include cat_SL_nonresonant_channel.yml - -groups: - TT: - fill-color: '#cc7a16' - legend: 't#bar{t}' - order: 1 - type: mc - files: - - TTToHadronic.root - diff --git a/Datacards/configs/datacard_SL_FNC_MCFakes_2018.yml b/Datacards/configs/datacard_SL_FNC_MCFakes_2018.yml deleted file mode 100644 index 24dbda02..00000000 --- a/Datacards/configs/datacard_SL_FNC_MCFakes_2018.yml +++ /dev/null @@ -1,30 +0,0 @@ -path: /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/FakeNC_SL_2018_MCFakes/ -use_syst: False - -outputDir: /home/ucl/cp3/fbury/scratch/Datacards/bbww_sl/NonResonant/datacard_SL_FNC_MCFakes_2018 - -yamlName: plots.yml - -produce_plots: True - -era: 2018 - -legend: - position: - - 0.8 - - 0.6 - - 0.99 - - 0.99 - - -histConverter: !include cat_SL_nonresonant_channel.yml - -groups: - TT: - fill-color: '#cc7a16' - legend: 't#bar{t}' - order: 1 - type: mc - files: - - TTToHadronic.root - diff --git a/Datacards/configs/datacard_fit_NonResonant_COMB_BM_GGFNLO_base_FR2.yml b/Datacards/configs/datacard_fit_NonResonant_COMB_BM_GGFNLO_base_FR2.yml index 7df3217a..df4997e3 100644 --- a/Datacards/configs/datacard_fit_NonResonant_COMB_BM_GGFNLO_base_FR2.yml +++ b/Datacards/configs/datacard_fit_NonResonant_COMB_BM_GGFNLO_base_FR2.yml @@ -1,37 +1,38 @@ path: 2016: # DL # - - /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/full2016NanoV7_NonResonant_DNN11_Fake_DYEstimation_Resolved1B - - /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/full2016NanoV7_NonResonant_DNN11_Fake_DYEstimation_Resolved2B - - /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/full2016NanoV7_NonResonant_DNN11_Fake_DYEstimation_Boosted1B - - /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/full2016NanoV7_NonResonant_DNN11_Fake_DYEstimation_GGFNLO_Benchmark{BM} + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2016NanoV7_DL_NonResonant_DNN11_Fake_DYEstimation_Boosted1B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2016NanoV7_DL_NonResonant_DNN11_Fake_DYEstimation_Resolved1B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2016NanoV7_DL_NonResonant_DNN11_Fake_DYEstimation_Resolved2B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2016NanoV7_DL_NonResonant_DNN11_GGFNLO_Benchmark{BM} # SL # - - /nfs/scratch/fynu/gsaha/PlotNoSyst2018SL_Debug/full2016NanoV7_TTHIDLoose_Fake_DNNSL01_Boosted - - /nfs/scratch/fynu/gsaha/PlotNoSyst2018SL_Debug/full2016NanoV7_TTHIDLoose_Fake_DNNSL01_Resolved1B - - /nfs/scratch/fynu/gsaha/PlotNoSyst2018SL_Debug/full2016NanoV7_TTHIDLoose_Fake_DNNSL01_Resolved2B - - /nfs/scratch/fynu/gsaha/SL_EFT_Syst/full2016NanoV7_TTHIDLoose_Fake_SL_DNN01_GGFNLO_Benchmark{BM} + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2016NanoV7_SL_NonResonant_DNN01_Fake_Boosted + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2016NanoV7_SL_NonResonant_DNN01_Fake_Resolved1B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2016NanoV7_SL_NonResonant_DNN01_Fake_Resolved2B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2016NanoV7_SL_NonResonant_DNN01_GGFNLO_Benchmark{BM} 2017: # DL # - - /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/full2017NanoV7_NonResonant_DNN11_Fake_DYEstimation_Resolved1B - - /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/full2017NanoV7_NonResonant_DNN11_Fake_DYEstimation_Resolved2B - - /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/full2017NanoV7_NonResonant_DNN11_Fake_DYEstimation_Boosted1B - - /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/full2017NanoV7_NonResonant_DNN11_Fake_DYEstimation_GGFNLO_Benchmark{BM} + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2017NanoV7_DL_NonResonant_DNN11_Fake_DYEstimation_Boosted1B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2017NanoV7_DL_NonResonant_DNN11_Fake_DYEstimation_Resolved1B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2017NanoV7_DL_NonResonant_DNN11_Fake_DYEstimation_Resolved2B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2017NanoV7_DL_NonResonant_DNN11_GGFNLO_Benchmark{BM} # SL # - - /nfs/scratch/fynu/gsaha/PlotNoSyst2018SL_Debug/full2017NanoV7_TTHIDLoose_Fake_DNNSL01_Boosted - - /nfs/scratch/fynu/gsaha/PlotNoSyst2018SL_Debug/full2017NanoV7_TTHIDLoose_Fake_DNNSL01_Resolved1B - - /nfs/scratch/fynu/gsaha/PlotNoSyst2018SL_Debug/full2017NanoV7_TTHIDLoose_Fake_DNNSL01_Resolved2B - - /nfs/scratch/fynu/gsaha/SL_EFT_Syst/full2017NanoV7_TTHIDLoose_Fake_SL_DNN01_GGFNLO_Benchmark{BM} + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2017NanoV7_SL_NonResonant_DNN01_Fake_Boosted + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2017NanoV7_SL_NonResonant_DNN01_Fake_Resolved1B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2017NanoV7_SL_NonResonant_DNN01_Fake_Resolved2B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2017NanoV7_SL_NonResonant_DNN01_GGFNLO_Benchmark{BM} 2018: # DL # - - /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/full2018NanoV7_NonResonant_DNN11_Fake_DYEstimation_Resolved1B - - /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/full2018NanoV7_NonResonant_DNN11_Fake_DYEstimation_Resolved2B - - /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/full2018NanoV7_NonResonant_DNN11_Fake_DYEstimation_Boosted1B - - /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/full2018NanoV7_NonResonant_DNN11_Fake_DYEstimation_GGFNLO_Benchmark{BM} + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2018NanoV7_DL_NonResonant_DNN11_Fake_DYEstimation_Boosted1B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2018NanoV7_DL_NonResonant_DNN11_Fake_DYEstimation_Resolved1B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2018NanoV7_DL_NonResonant_DNN11_Fake_DYEstimation_Resolved2B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2018NanoV7_DL_NonResonant_DNN11_GGFNLO_Benchmark{BM} # SL # - - /nfs/scratch/fynu/gsaha/PlotNoSyst2018SL_Debug/full2018NanoV7_TTHIDLoose_Fake_DNNSL01_Boosted - - /nfs/scratch/fynu/gsaha/PlotNoSyst2018SL_Debug/full2018NanoV7_TTHIDLoose_Fake_DNNSL01_Resolved1B - - /nfs/scratch/fynu/gsaha/PlotNoSyst2018SL_Debug/full2018NanoV7_TTHIDLoose_Fake_DNNSL01_Resolved2B - - /nfs/scratch/fynu/gsaha/SL_EFT_Syst/full2018NanoV7_TTHIDLoose_Fake_SL_DNN01_GGFNLO_Benchmark{BM} + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2018NanoV7_SL_NonResonant_DNN01_Fake_Boosted + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2018NanoV7_SL_NonResonant_DNN01_Fake_Resolved1B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2018NanoV7_SL_NonResonant_DNN01_Fake_Resolved2B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2018NanoV7_SL_NonResonant_DNN01_GGFNLO_Benchmark{BM} + outputDir: /home/ucl/cp3/fbury/scratch/Datacards/bbww/NonResonant/datacard_fit_NonResonant_BM_GGFNLO_{BM}_syst_FR2/ @@ -74,7 +75,6 @@ combineConfigs: - HH_SL_resolved1b_VBF - HH_SL_resolved2b_VBF - HH_SL_boosted_VBF - - HH_SL_inclusive_WJets - HH_SL_inclusive_other - HH_SL_resolved_TopH - HH_SL_boosted_TopH @@ -107,7 +107,6 @@ combineConfigs: - HH_SL_resolved1b_VBF - HH_SL_resolved2b_VBF - HH_SL_boosted_VBF - - HH_SL_inclusive_WJets - HH_SL_inclusive_other - HH_SL_resolved_TopH - HH_SL_boosted_TopH @@ -115,19 +114,18 @@ combineConfigs: -legend: - position: - - 0.2 - - 0.7 - - 0.9 - - 0.9 - columns: 3 +plotIt: !include plotIt_nonres_COMB.yml + +era: + - 2016 + - 2017 + - 2018 normSyst : !include norm_comb_nonres.yml shapeSyst : !include shape_comb_systematics.yml -rebin: !include rebin_comb_nonresonant_BM.yml +rebin: !include rebin_comb_nonresonant.yml histCorrections: !include nonclosure_nonres.yml diff --git a/Datacards/configs/datacard_fit_NonResonant_COMB_FR2.yml b/Datacards/configs/datacard_fit_NonResonant_COMB_FR2.yml index 0959c9ab..fbb5af06 100644 --- a/Datacards/configs/datacard_fit_NonResonant_COMB_FR2.yml +++ b/Datacards/configs/datacard_fit_NonResonant_COMB_FR2.yml @@ -1,31 +1,32 @@ path: 2016: # DL # - - /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/full2016NanoV7_NonResonant_DNN11_Fake_DYEstimation_Resolved1B - - /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/full2016NanoV7_NonResonant_DNN11_Fake_DYEstimation_Resolved2B - - /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/full2016NanoV7_NonResonant_DNN11_Fake_DYEstimation_Boosted1B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2016NanoV7_DL_NonResonant_DNN11_Fake_DYEstimation_Boosted1B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2016NanoV7_DL_NonResonant_DNN11_Fake_DYEstimation_Resolved1B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2016NanoV7_DL_NonResonant_DNN11_Fake_DYEstimation_Resolved2B # SL # - - /nfs/scratch/fynu/gsaha/PlotNoSyst2018SL_Debug/full2016NanoV7_TTHIDLoose_Fake_DNNSL01_Boosted - - /nfs/scratch/fynu/gsaha/PlotNoSyst2018SL_Debug/full2016NanoV7_TTHIDLoose_Fake_DNNSL01_Resolved1B - - /nfs/scratch/fynu/gsaha/PlotNoSyst2018SL_Debug/full2016NanoV7_TTHIDLoose_Fake_DNNSL01_Resolved2B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2016NanoV7_SL_NonResonant_DNN01_Fake_Boosted + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2016NanoV7_SL_NonResonant_DNN01_Fake_Resolved1B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2016NanoV7_SL_NonResonant_DNN01_Fake_Resolved2B 2017: # DL # - - /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/full2017NanoV7_NonResonant_DNN11_Fake_DYEstimation_Resolved1B - - /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/full2017NanoV7_NonResonant_DNN11_Fake_DYEstimation_Resolved2B - - /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/full2017NanoV7_NonResonant_DNN11_Fake_DYEstimation_Boosted1B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2017NanoV7_DL_NonResonant_DNN11_Fake_DYEstimation_Boosted1B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2017NanoV7_DL_NonResonant_DNN11_Fake_DYEstimation_Resolved1B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2017NanoV7_DL_NonResonant_DNN11_Fake_DYEstimation_Resolved2B # SL # - - /nfs/scratch/fynu/gsaha/PlotNoSyst2018SL_Debug/full2017NanoV7_TTHIDLoose_Fake_DNNSL01_Boosted - - /nfs/scratch/fynu/gsaha/PlotNoSyst2018SL_Debug/full2017NanoV7_TTHIDLoose_Fake_DNNSL01_Resolved1B - - /nfs/scratch/fynu/gsaha/PlotNoSyst2018SL_Debug/full2017NanoV7_TTHIDLoose_Fake_DNNSL01_Resolved2B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2017NanoV7_SL_NonResonant_DNN01_Fake_Boosted + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2017NanoV7_SL_NonResonant_DNN01_Fake_Resolved1B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2017NanoV7_SL_NonResonant_DNN01_Fake_Resolved2B 2018: # DL # - - /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/full2018NanoV7_NonResonant_DNN11_Fake_DYEstimation_Resolved1B - - /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/full2018NanoV7_NonResonant_DNN11_Fake_DYEstimation_Resolved2B - - /nfs/scratch/fynu/fbury/BambooOutputHHtobbWW/full2018NanoV7_NonResonant_DNN11_Fake_DYEstimation_Boosted1B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2018NanoV7_DL_NonResonant_DNN11_Fake_DYEstimation_Boosted1B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2018NanoV7_DL_NonResonant_DNN11_Fake_DYEstimation_Resolved1B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2018NanoV7_DL_NonResonant_DNN11_Fake_DYEstimation_Resolved2B # SL # - - /nfs/scratch/fynu/gsaha/PlotNoSyst2018SL_Debug/full2018NanoV7_TTHIDLoose_Fake_DNNSL01_Boosted - - /nfs/scratch/fynu/gsaha/PlotNoSyst2018SL_Debug/full2018NanoV7_TTHIDLoose_Fake_DNNSL01_Resolved1B - - /nfs/scratch/fynu/gsaha/PlotNoSyst2018SL_Debug/full2018NanoV7_TTHIDLoose_Fake_DNNSL01_Resolved2B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2018NanoV7_SL_NonResonant_DNN01_Fake_Boosted + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2018NanoV7_SL_NonResonant_DNN01_Fake_Resolved1B + - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/NonResonant/full2018NanoV7_SL_NonResonant_DNN01_Fake_Resolved2B + outputDir: /home/ucl/cp3/fbury/scratch/Datacards/bbww/NonResonant/datacard_fit_NonResonant_syst_FR2/ @@ -42,7 +43,7 @@ era: - 2017 - 2018 -combineConfigs: !include combine_DL_nonres.yml +combineConfigs: !include combine_nonres.yml normSyst : !include norm_comb_nonres.yml diff --git a/Datacards/configs/datacard_fit_NonResonant_DL_DNN11_UE.yml b/Datacards/configs/datacard_fit_NonResonant_DL_DNN11_UE.yml deleted file mode 100644 index 3a74b745..00000000 --- a/Datacards/configs/datacard_fit_NonResonant_DL_DNN11_UE.yml +++ /dev/null @@ -1,66 +0,0 @@ -path: - 2016: - - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/full2016NanoV7_NonResonant_DNN11_UE - 2017: - - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/full2017NanoV7_NonResonant_DNN11_UE - 2018: - - /home/ucl/cp3/fbury/scratch/BambooOutputHHtobbWW/full2018NanoV7_NonResonant_DNN11_UE - -outputDir: /home/ucl/cp3/fbury/scratch/Datacards/bbww_dl/NonResonant/datacard_fit_NonResonant_DL_syst_UE/ - -use_syst: False - -yamlName: - - plots.yml - -era: - - 2016 - - 2017 - - 2018 - -histConverter: !include cat_DL_nonresonant.yml - -groups: - ST_UE_nom: - type: mc - files: - - ST_schannel_4f_UE_nom.root - - ST_tchannel_antitop_4f_UE_nom.root - - ST_tchannel_top_4f_UE_nom.root - - ST_tW_antitop_5f_UE_nom.root - - ST_tW_top_5f_UE_nom.root - TT_UE_nom: - type: mc - files: - - TTTo2L2Nu_UE_nom.root - - TTToHadronic_UE_nom.root - - TTToSemiLeptonic_UE_nom.root - ST_UE_down: - type: mc - files: - - ST_schannel_4f_UE_down.root - - ST_tchannel_antitop_4f_UE_down.root - - ST_tchannel_top_4f_UE_down.root - - ST_tW_antitop_5f_UE_down.root - - ST_tW_top_5f_UE_down.root - TT_UE_down: - type: mc - files: - - TTTo2L2Nu_UE_down.root - - TTToHadronic_UE_down.root - - TTToSemiLeptonic_UE_down.root - ST_UE_up: - type: mc - files: - - ST_schannel_4f_UE_up.root - - ST_tchannel_antitop_4f_UE_up.root - - ST_tchannel_top_4f_UE_up.root - - ST_tW_antitop_5f_UE_up.root - - ST_tW_top_5f_UE_up.root - TT_UE_up: - type: mc - files: - - TTTo2L2Nu_UE_up.root - - TTToHadronic_UE_up.root - - TTToSemiLeptonic_UE_up.root - diff --git a/Datacards/configs/factors_SL_Fake_2016.json b/Datacards/configs/factors_SL_Fake_2016.json deleted file mode 100644 index bbbfa8b0..00000000 --- a/Datacards/configs/factors_SL_Fake_2016.json +++ /dev/null @@ -1,202 +0,0 @@ -{ - "HH_SL_e_boosted_GGF_2016": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_e_boosted_TopH_2016": { - "cog": 0.4744229131432943, - "nom": 1.0954708846681387, - "slope": 3.422231378926821 - }, - "HH_SL_e_boosted_VBF_2016": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_e_inclusive_WJets_2016": { - "cog": 0.40167005133940936, - "nom": 0.9821904862710092, - "slope": -1.1898712981608093 - }, - "HH_SL_e_inclusive_other_2016": { - "cog": 0.37420008122967546, - "nom": 1.188063230107982, - "slope": -0.26412727776046746 - }, - "HH_SL_e_resolved1b_GGF_2016": { - "cog": 0.24913702321544895, - "nom": 1.6319574140088382, - "slope": 2.666666666666667 - }, - "HH_SL_e_resolved1b_VBF_2016": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_e_resolved2b_GGF_2016": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_e_resolved2b_VBF_2016": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_e_resolved_TopH_2016": { - "cog": 0.41011071166978635, - "nom": 1.2020316059774412, - "slope": 1.1371065557008175 - }, - "HH_SL_m_boosted_GGF_2016": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_m_boosted_TopH_2016": { - "cog": 0.44656687590898186, - "nom": 1.2114492080156753, - "slope": -0.21460707599519335 - }, - "HH_SL_m_boosted_VBF_2016": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_m_inclusive_WJets_2016": { - "cog": 0.3801454039311388, - "nom": 1.4377684001300053, - "slope": -0.5339755934162387 - }, - "HH_SL_m_inclusive_other_2016": { - "cog": 0.36510028984745213, - "nom": 1.4422746427255222, - "slope": -0.7723927743916909 - }, - "HH_SL_m_resolved1b_GGF_2016": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_m_resolved1b_VBF_2016": { - "cog": 0.3004719299392267, - "nom": 2, - "slope": -0.7723927743916909 - }, - "HH_SL_m_resolved2b_GGF_2016": { - "cog": 0.3793794161546652, - "nom": 2, - "slope": -0.7723927743916909 - }, - "HH_SL_m_resolved2b_VBF_2016": { - "cog": 0.29591836734693877, - "nom": 0.33928607490776713, - "slope": -0.7723927743916909 - }, - "HH_SL_m_resolved_TopH_2016": { - "cog": 0.40365857117567167, - "nom": 1.4106920997823515, - "slope": 0.31163015096778585 - }, - "HH_e_SL_boosted_GGF_2016": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_e_SL_boosted_TopH_2016": { - "cog": 0.4744229131432943, - "nom": 1.0954708846681387, - "slope": 3.422231378926821 - }, - "HH_e_SL_boosted_VBF_2016": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_e_SL_inclusive_WJets_2016": { - "cog": 0.40167005133940936, - "nom": 0.9821904862710092, - "slope": -1.1898712981608093 - }, - "HH_e_SL_inclusive_other_2016": { - "cog": 0.37420008122967546, - "nom": 1.188063230107982, - "slope": -0.26412727776046746 - }, - "HH_e_SL_resolved1b_GGF_2016": { - "cog": 0.24913702321544895, - "nom": 1.6319574140088382, - "slope": 2.666666666666667 - }, - "HH_e_SL_resolved1b_VBF_2016": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_e_SL_resolved2b_GGF_2016": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_e_SL_resolved2b_VBF_2016": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_e_SL_resolved_TopH_2016": { - "cog": 0.41011071166978635, - "nom": 1.2020316059774412, - "slope": 1.1371065557008175 - }, - "HH_m_SL_boosted_GGF_2016": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_m_SL_boosted_TopH_2016": { - "cog": 0.44656687590898186, - "nom": 1.2114492080156753, - "slope": -0.21460707599519335 - }, - "HH_m_SL_boosted_VBF_2016": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_m_SL_inclusive_WJets_2016": { - "cog": 0.3801454039311388, - "nom": 1.4377684001300053, - "slope": -0.5339755934162387 - }, - "HH_m_SL_inclusive_other_2016": { - "cog": 0.36510028984745213, - "nom": 1.4422746427255222, - "slope": -0.7723927743916909 - }, - "HH_m_SL_resolved1b_GGF_2016": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_m_SL_resolved1b_VBF_2016": { - "cog": 0.3004719299392267, - "nom": 2, - "slope": -0.7723927743916909 - }, - "HH_m_SL_resolved2b_GGF_2016": { - "cog": 0.3793794161546652, - "nom": 2, - "slope": -0.7723927743916909 - }, - "HH_m_SL_resolved2b_VBF_2016": { - "cog": 0.29591836734693877, - "nom": 0.33928607490776713, - "slope": -0.7723927743916909 - }, - "HH_m_SL_resolved_TopH_2016": { - "cog": 0.40365857117567167, - "nom": 1.4106920997823515, - "slope": 0.31163015096778585 - } -} \ No newline at end of file diff --git a/Datacards/configs/factors_SL_Fake_2017.json b/Datacards/configs/factors_SL_Fake_2017.json deleted file mode 100644 index 4ace2b13..00000000 --- a/Datacards/configs/factors_SL_Fake_2017.json +++ /dev/null @@ -1,202 +0,0 @@ -{ - "HH_SL_e_boosted_GGF_2017": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_e_boosted_TopH_2017": { - "cog": 0.4444863318620527, - "nom": 0.9394709616730599, - "slope": 2.8956761834988702 - }, - "HH_SL_e_boosted_VBF_2017": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_e_inclusive_WJets_2017": { - "cog": 0.4225832059437568, - "nom": 0.777174219243938, - "slope": 0.11957539064398769 - }, - "HH_SL_e_inclusive_other_2017": { - "cog": 0.36686657654280985, - "nom": 0.6413569220712119, - "slope": 0.9683887130583632 - }, - "HH_SL_e_resolved1b_GGF_2017": { - "cog": 0.32584976333925486, - "nom": 2, - "slope": 4.566777378320686 - }, - "HH_SL_e_resolved1b_VBF_2017": { - "cog": 0.2989822161241807, - "nom": 2, - "slope": -1.6335263219144627 - }, - "HH_SL_e_resolved2b_GGF_2017": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_e_resolved2b_VBF_2017": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_e_resolved_TopH_2017": { - "cog": 0.4042293010930484, - "nom": 0.6203462602274673, - "slope": 1.4956489647259568 - }, - "HH_SL_m_boosted_GGF_2017": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_m_boosted_TopH_2017": { - "cog": 0.430178251503067, - "nom": 1.2652144564483794, - "slope": 0.9519993221834915 - }, - "HH_SL_m_boosted_VBF_2017": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_m_inclusive_WJets_2017": { - "cog": 0.39634292570076785, - "nom": 1.4935795027607346, - "slope": -0.2800329139578429 - }, - "HH_SL_m_inclusive_other_2017": { - "cog": 0.3532356062842414, - "nom": 1.2643671921856137, - "slope": -0.5841395287439386 - }, - "HH_SL_m_resolved1b_GGF_2017": { - "cog": 0.35222903409020595, - "nom": 2, - "slope": 1.319998162668889 - }, - "HH_SL_m_resolved1b_VBF_2017": { - "cog": 0.3907985433507772, - "nom": 1.9376138597887003, - "slope": 1.4197285657544993 - }, - "HH_SL_m_resolved2b_GGF_2017": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_m_resolved2b_VBF_2017": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_m_resolved_TopH_2017": { - "cog": 0.39521814801208005, - "nom": 1.139827788632094, - "slope": -3.274702797097221 - }, - "HH_e_SL_boosted_GGF_2017": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_e_SL_boosted_TopH_2017": { - "cog": 0.4444863318620527, - "nom": 0.9394709616730599, - "slope": 2.8956761834988702 - }, - "HH_e_SL_boosted_VBF_2017": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_e_SL_inclusive_WJets_2017": { - "cog": 0.4225832059437568, - "nom": 0.777174219243938, - "slope": 0.11957539064398769 - }, - "HH_e_SL_inclusive_other_2017": { - "cog": 0.36686657654280985, - "nom": 0.6413569220712119, - "slope": 0.9683887130583632 - }, - "HH_e_SL_resolved1b_GGF_2017": { - "cog": 0.32584976333925486, - "nom": 2, - "slope": 4.566777378320686 - }, - "HH_e_SL_resolved1b_VBF_2017": { - "cog": 0.2989822161241807, - "nom": 2, - "slope": -1.6335263219144627 - }, - "HH_e_SL_resolved2b_GGF_2017": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_e_SL_resolved2b_VBF_2017": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_e_SL_resolved_TopH_2017": { - "cog": 0.4042293010930484, - "nom": 0.6203462602274673, - "slope": 1.4956489647259568 - }, - "HH_m_SL_boosted_GGF_2017": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_m_SL_boosted_TopH_2017": { - "cog": 0.430178251503067, - "nom": 1.2652144564483794, - "slope": 0.9519993221834915 - }, - "HH_m_SL_boosted_VBF_2017": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_m_SL_inclusive_WJets_2017": { - "cog": 0.39634292570076785, - "nom": 1.4935795027607346, - "slope": -0.2800329139578429 - }, - "HH_m_SL_inclusive_other_2017": { - "cog": 0.3532356062842414, - "nom": 1.2643671921856137, - "slope": -0.5841395287439386 - }, - "HH_m_SL_resolved1b_GGF_2017": { - "cog": 0.35222903409020595, - "nom": 2, - "slope": 1.319998162668889 - }, - "HH_m_SL_resolved1b_VBF_2017": { - "cog": 0.3907985433507772, - "nom": 1.9376138597887003, - "slope": 1.4197285657544993 - }, - "HH_m_SL_resolved2b_GGF_2017": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_m_SL_resolved2b_VBF_2017": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_m_SL_resolved_TopH_2017": { - "cog": 0.39521814801208005, - "nom": 1.139827788632094, - "slope": -3.274702797097221 - } -} \ No newline at end of file diff --git a/Datacards/configs/factors_SL_Fake_2018.json b/Datacards/configs/factors_SL_Fake_2018.json deleted file mode 100644 index 566f3f64..00000000 --- a/Datacards/configs/factors_SL_Fake_2018.json +++ /dev/null @@ -1,202 +0,0 @@ -{ - "HH_SL_e_boosted_GGF_2018": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_e_boosted_TopH_2018": { - "cog": 0.43534683204658897, - "nom": 1.3122703094743537, - "slope": -0.3914687499129579 - }, - "HH_SL_e_boosted_VBF_2018": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_e_inclusive_WJets_2018": { - "cog": 0.4003959684548021, - "nom": 1.0340754809150408, - "slope": -2.184063834183952 - }, - "HH_SL_e_inclusive_other_2018": { - "cog": 0.3849207647624964, - "nom": 0.8883955933271528, - "slope": 1.3817127622982706 - }, - "HH_SL_e_resolved1b_GGF_2018": { - "cog": 0.2691961963559874, - "nom": 0.7557134369277646, - "slope": 1.3817127622982706 - }, - "HH_SL_e_resolved1b_VBF_2018": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_e_resolved2b_GGF_2018": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_e_resolved2b_VBF_2018": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_e_resolved_TopH_2018": { - "cog": 0.40340646462444163, - "nom": 0.811690730336687, - "slope": 1.3682277494757131 - }, - "HH_SL_m_boosted_GGF_2018": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_m_boosted_TopH_2018": { - "cog": 0.4238550973346174, - "nom": 1.2617077505991443, - "slope": 1.7759811670339856 - }, - "HH_SL_m_boosted_VBF_2018": { - "cog": 0.5408163265306122, - "nom": 0.2891707268625276, - "slope": 1.7759811670339856 - }, - "HH_SL_m_inclusive_WJets_2018": { - "cog": 0.3718065018359186, - "nom": 1.0791078292129077, - "slope": -1.9932101781016285 - }, - "HH_SL_m_inclusive_other_2018": { - "cog": 0.3704028561918399, - "nom": 1.093820911342342, - "slope": 0.26883133558858907 - }, - "HH_SL_m_resolved1b_GGF_2018": { - "cog": 0.36441949034388416, - "nom": 2, - "slope": 0.26883133558858907 - }, - "HH_SL_m_resolved1b_VBF_2018": { - "cog": 0.3795298033343633, - "nom": 1.754525933289544, - "slope": 4.513366540273047 - }, - "HH_SL_m_resolved2b_GGF_2018": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_m_resolved2b_VBF_2018": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_SL_m_resolved_TopH_2018": { - "cog": 0.39590013068825985, - "nom": 1.006603990789201, - "slope": -0.33699407018484856 - }, - "HH_e_SL_boosted_GGF_2018": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_e_SL_boosted_TopH_2018": { - "cog": 0.43534683204658897, - "nom": 1.3122703094743537, - "slope": -0.3914687499129579 - }, - "HH_e_SL_boosted_VBF_2018": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_e_SL_inclusive_WJets_2018": { - "cog": 0.4003959684548021, - "nom": 1.0340754809150408, - "slope": -2.184063834183952 - }, - "HH_e_SL_inclusive_other_2018": { - "cog": 0.3849207647624964, - "nom": 0.8883955933271528, - "slope": 1.3817127622982706 - }, - "HH_e_SL_resolved1b_GGF_2018": { - "cog": 0.2691961963559874, - "nom": 0.7557134369277646, - "slope": 1.3817127622982706 - }, - "HH_e_SL_resolved1b_VBF_2018": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_e_SL_resolved2b_GGF_2018": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_e_SL_resolved2b_VBF_2018": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_e_SL_resolved_TopH_2018": { - "cog": 0.40340646462444163, - "nom": 0.811690730336687, - "slope": 1.3682277494757131 - }, - "HH_m_SL_boosted_GGF_2018": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_m_SL_boosted_TopH_2018": { - "cog": 0.4238550973346174, - "nom": 1.2617077505991443, - "slope": 1.7759811670339856 - }, - "HH_m_SL_boosted_VBF_2018": { - "cog": 0.5408163265306122, - "nom": 0.2891707268625276, - "slope": 1.7759811670339856 - }, - "HH_m_SL_inclusive_WJets_2018": { - "cog": 0.3718065018359186, - "nom": 1.0791078292129077, - "slope": -1.9932101781016285 - }, - "HH_m_SL_inclusive_other_2018": { - "cog": 0.3704028561918399, - "nom": 1.093820911342342, - "slope": 0.26883133558858907 - }, - "HH_m_SL_resolved1b_GGF_2018": { - "cog": 0.36441949034388416, - "nom": 2, - "slope": 0.26883133558858907 - }, - "HH_m_SL_resolved1b_VBF_2018": { - "cog": 0.3795298033343633, - "nom": 1.754525933289544, - "slope": 4.513366540273047 - }, - "HH_m_SL_resolved2b_GGF_2018": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_m_SL_resolved2b_VBF_2018": { - "cog": 0.49999999999999994, - "nom": 2, - "slope": 1 - }, - "HH_m_SL_resolved_TopH_2018": { - "cog": 0.39590013068825985, - "nom": 1.006603990789201, - "slope": -0.33699407018484856 - } -} \ No newline at end of file diff --git a/Datacards/configs/nonclosure_DY_nonres.yml b/Datacards/configs/nonclosure_DY_nonres.yml deleted file mode 100644 index 299af824..00000000 --- a/Datacards/configs/nonclosure_DY_nonres.yml +++ /dev/null @@ -1,44 +0,0 @@ -2016: - - module: nonclosure.py:NonClosureDY - init: - path_json : config/fit_results_NonRes.json - categories: - HH_DL_inclusive_DY_VVV : - key: HH_inclusive_DY_VVV_2016 - systName: dy_inclusive_nonclosure_dy_vvv - HH_DL_resolved_other: - key: HH_resolved_other_2016 - systName: dy_resolved_nonclosure_other - HH_DL_boosted_other: - key: HH_boosted_other - systName: dy_boosted_nonclosure_other -2017: - - module: nonclosure.py:NonClosureDY - init: - path_json : config/fit_results_NonRes.json - categories: - HH_DL_inclusive_DY_VVV : - key: HH_inclusive_DY_VVV_2017 - systName: dy_inclusive_nonclosure_dy_vvv - HH_DL_resolved_other: - key: HH_resolved_other_2017 - systName: dy_resolved_nonclosure_other - HH_DL_boosted_other: - key: HH_boosted_other - systName: dy_boosted_nonclosure_other -2018: - - module: nonclosure.py:NonClosureDY - init: - path_json : config/fit_results_NonRes.json - categories: - HH_DL_inclusive_DY_VVV : - key: HH_inclusive_DY_VVV_2018 - systName: dy_inclusive_nonclosure_dy_vvv - HH_DL_resolved_other: - key: HH_resolved_other_2018 - systName: dy_resolved_nonclosure_other - HH_DL_boosted_other: - key: HH_boosted_other - systName: dy_boosted_nonclosure_other - - diff --git a/Datacards/configs/nonclosure_Fake_SL_nonres.yml b/Datacards/configs/nonclosure_Fake_SL_nonres.yml deleted file mode 100644 index c887a929..00000000 --- a/Datacards/configs/nonclosure_Fake_SL_nonres.yml +++ /dev/null @@ -1,200 +0,0 @@ - ############### 2016 ################### - module: nonclosure.py:NonClosureFake - init: - path_json: config/factors_SL_Fake_2016.json - categories: - HH_e_resolved1b_GGF: - key: HH_e_resolved1b_GGF_2016 - systName: fake_nc_e_res1b_GGF - HH_m_resolved1b_GGF: - key: HH_m_resolved1b_GGF_2016 - systName: fake_nc_m_res1b_GGF - HH_e_resolved1b_VBF: - key: HH_e_resolved1b_VBF_2016 - systName: fake_nc_e_res1b_VBF - HH_m_resolved1b_VBF: - key: HH_m_resolved1b_VBF_2016 - systName: fake_nc_m_res1b_VBF - HH_e_resolved2b_GGF: - key: HH_e_resolved2b_GGF_2016 - systName: fake_nc_e_res2b_GGF - HH_m_resolved2b_GGF: - key: HH_m_resolved2b_GGF_2016 - systName: fake_nc_m_res2b_GGF - HH_e_resolved2b_VBF: - key: HH_e_resolved2b_VBF_2016 - systName: fake_nc_e_res2b_VBF - HH_m_resolved2b_VBF: - key: HH_m_resolved2b_VBF_2016 - systName: fake_nc_m_res2b_VBF - HH_e_boosted_GGF: - key: HH_e_boosted_GGF_2016 - systName: fake_nc_e_boosted_GGF - HH_m_boosted_GGF: - key: HH_m_boosted_GGF_2016 - systName: fake_nc_m_boosted_GGF - HH_e_boosted_VBF: - key: HH_e_boosted_VBF_2016 - systName: fake_nc_e_boosted_VBF - HH_m_boosted_VBF: - key: HH_m_boosted_VBF_2016 - systName: fake_nc_m_boosted_VBF - HH_e_inclusive_WJets: - key: HH_e_inclusive_WJets_2016 - systName: fake_nc_e_inc_wjets - HH_m_inclusive_WJets: - key: HH_m_inclusive_WJets_2016 - systName: fake_nc_m_inc_wjets - HH_e_inclusive_OtherH: - key: HH_e_inclusive_OtherH_2016 - systName: fake_nc_e_inc_otherh - HH_m_inclusive_OtherH: - key: HH_m_inclusive_OtherH_2016 - systName: fake_nc_m_inc_otherh - HH_e_resolved_Top: - key: HH_e_resolved_Top_2016 - systName: fake_nc_e_res_top - HH_m_resolved_Top: - key: HH_m_resolved_Top_2016 - systName: fake_nc_m_res_top - HH_e_boosted_Top: - key: HH_e_boosted_Top_2016 - systName: fake_nc_e_boosted_top - HH_m_boosted_Top: - key: HH_m_boosted_Top_2016 - systName: fake_nc_m_boosted_top - - ############### 2017 ################### - module: nonclosure.py:NonClosureFake - init: - path_json: config/factors_SL_Fake_2017.json - categories: - HH_e_resolved1b_GGF: - key: HH_e_resolved1b_GGF_2017 - systName: fake_nc_e_res1b_GGF - HH_m_resolved1b_GGF: - key: HH_m_resolved1b_GGF_2017 - systName: fake_nc_m_res1b_GGF - HH_e_resolved1b_VBF: - key: HH_e_resolved1b_VBF_2017 - systName: fake_nc_e_res1b_VBF - HH_m_resolved1b_VBF: - key: HH_m_resolved1b_VBF_2017 - systName: fake_nc_m_res1b_VBF - HH_e_resolved2b_GGF: - key: HH_e_resolved2b_GGF_2017 - systName: fake_nc_e_res2b_GGF - HH_m_resolved2b_GGF: - key: HH_m_resolved2b_GGF_2017 - systName: fake_nc_m_res2b_GGF - HH_e_resolved2b_VBF: - key: HH_e_resolved2b_VBF_2017 - systName: fake_nc_e_res2b_VBF - HH_m_resolved2b_VBF: - key: HH_m_resolved2b_VBF_2017 - systName: fake_nc_m_res2b_VBF - HH_e_boosted_GGF: - key: HH_e_boosted_GGF_2017 - systName: fake_nc_e_boosted_GGF - HH_m_boosted_GGF: - key: HH_m_boosted_GGF_2017 - systName: fake_nc_m_boosted_GGF - HH_e_boosted_VBF: - key: HH_e_boosted_VBF_2017 - systName: fake_nc_e_boosted_VBF - HH_m_boosted_VBF: - key: HH_m_boosted_VBF_2017 - systName: fake_nc_m_boosted_VBF - HH_e_inclusive_WJets: - key: HH_e_inclusive_WJets_2017 - systName: fake_nc_e_inc_wjets - HH_m_inclusive_WJets: - key: HH_m_inclusive_WJets_2017 - systName: fake_nc_m_inc_wjets - HH_e_inclusive_OtherH: - key: HH_e_inclusive_OtherH_2017 - systName: fake_nc_e_inc_otherh - HH_m_inclusive_OtherH: - key: HH_m_inclusive_OtherH_2017 - systName: fake_nc_m_inc_otherh - HH_e_resolved_Top: - key: HH_e_resolved_Top_2017 - systName: fake_nc_e_res_top - HH_m_resolved_Top: - key: HH_m_resolved_Top_2017 - systName: fake_nc_m_res_top - HH_e_boosted_Top: - key: HH_e_boosted_Top_2017 - systName: fake_nc_e_boosted_top - HH_m_boosted_Top: - key: HH_m_boosted_Top_2017 - systName: fake_nc_m_boosted_top - - - ############### 2018 ################### - module: nonclosure.py:NonClosureFake - init: - path_json: config/factors_SL_Fake_2018.json - categories: - HH_e_resolved1b_GGF: - key: HH_e_resolved1b_GGF_2018 - systName: fake_nc_e_res1b_GGF - HH_m_resolved1b_GGF: - key: HH_m_resolved1b_GGF_2018 - systName: fake_nc_m_res1b_GGF - HH_e_resolved1b_VBF: - key: HH_e_resolved1b_VBF_2018 - systName: fake_nc_e_res1b_VBF - HH_m_resolved1b_VBF: - key: HH_m_resolved1b_VBF_2018 - systName: fake_nc_m_res1b_VBF - HH_e_resolved2b_GGF: - key: HH_e_resolved2b_GGF_2018 - systName: fake_nc_e_res2b_GGF - HH_m_resolved2b_GGF: - key: HH_m_resolved2b_GGF_2018 - systName: fake_nc_m_res2b_GGF - HH_e_resolved2b_VBF: - key: HH_e_resolved2b_VBF_2018 - systName: fake_nc_e_res2b_VBF - HH_m_resolved2b_VBF: - key: HH_m_resolved2b_VBF_2018 - systName: fake_nc_m_res2b_VBF - HH_e_boosted_GGF: - key: HH_e_boosted_GGF_2018 - systName: fake_nc_e_boosted_GGF - HH_m_boosted_GGF: - key: HH_m_boosted_GGF_2018 - systName: fake_nc_m_boosted_GGF - HH_e_boosted_VBF: - key: HH_e_boosted_VBF_2018 - systName: fake_nc_e_boosted_VBF - HH_m_boosted_VBF: - key: HH_m_boosted_VBF_2018 - systName: fake_nc_m_boosted_VBF - HH_e_inclusive_WJets: - key: HH_e_inclusive_WJets_2018 - systName: fake_nc_e_inc_wjets - HH_m_inclusive_WJets: - key: HH_m_inclusive_WJets_2018 - systName: fake_nc_m_inc_wjets - HH_e_inclusive_OtherH: - key: HH_e_inclusive_OtherH_2018 - systName: fake_nc_e_inc_otherh - HH_m_inclusive_OtherH: - key: HH_m_inclusive_OtherH_2018 - systName: fake_nc_m_inc_otherh - HH_e_resolved_Top: - key: HH_e_resolved_Top_2018 - systName: fake_nc_e_res_top - HH_m_resolved_Top: - key: HH_m_resolved_Top_2018 - systName: fake_nc_m_res_top - HH_e_boosted_Top: - key: HH_e_boosted_Top_2018 - systName: fake_nc_e_boosted_top - HH_m_boosted_Top: - key: HH_m_boosted_Top_2018 - systName: fake_nc_m_boosted_top - - diff --git a/Datacards/configs/nonclosure_nonres.yml b/Datacards/configs/nonclosure_nonres.yml index d1fe6b4d..92d5ee3d 100644 --- a/Datacards/configs/nonclosure_nonres.yml +++ b/Datacards/configs/nonclosure_nonres.yml @@ -6,20 +6,20 @@ path_json : ../configs/fit_results_NonRes.json categories: HH_DL_inclusive_DY_VVV : - key: HH_inclusive_DY_VVV_2016 + key: HH_DL_inclusive_DY_VVV_2016 systName: dy_inclusive_nonclosure_dy_vvv HH_DL_resolved_other: - key: HH_resolved_other_2016 + key: HH_DL_resolved_other_2016 systName: dy_resolved_nonclosure_other HH_DL_boosted_other: - key: HH_boosted_other + key: HH_DL_boosted_other systName: dy_boosted_nonclosure_other ####### Fakes ####### - module: nonclosure.py:NonClosureFake init: - path_json: ../configs/factors_SL_Fake_2016.json + path_json: ../configs/factors_SL_Fake.json histConverter: !include cat_SL_nonresonant_channel.yml - regroup: !include cat_SL_nonresonant_regroup.yml + aggregation: !include cat_SL_nonresonant_aggregation.yml categories: HH_SL_e_resolved1b_GGF: key: HH_SL_e_resolved1b_GGF_2016 @@ -57,34 +57,28 @@ HH_SL_m_boosted_VBF: key: HH_SL_m_boosted_VBF_2016 systName: fake_nc_m_boosted_VBF - HH_SL_e_inclusive_WJets: - key: HH_SL_e_inclusive_WJets_2016 - systName: fake_nc_e_inc_wjets - HH_SL_m_inclusive_WJets: - key: HH_SL_m_inclusive_WJets_2016 - systName: fake_nc_m_inc_wjets HH_SL_e_inclusive_other: key: HH_SL_e_inclusive_other_2016 - systName: fake_nc_e_inc_otherh + systName: fake_nc_e_inc_other HH_SL_m_inclusive_other: key: HH_SL_m_inclusive_other_2016 - systName: fake_nc_m_inc_otherh + systName: fake_nc_m_inc_other HH_SL_e_resolved_TopH: key: HH_SL_e_resolved_TopH_2016 - systName: fake_nc_e_res_top + systName: fake_nc_e_res_toph HH_SL_m_resolved_TopH: key: HH_SL_m_resolved_TopH_2016 - systName: fake_nc_m_res_top + systName: fake_nc_m_res_toph HH_SL_e_boosted_TopH: key: HH_SL_e_boosted_TopH_2016 - systName: fake_nc_e_boosted_top + systName: fake_nc_e_boosted_toph HH_SL_m_boosted_TopH: key: HH_SL_m_boosted_TopH_2016 - systName: fake_nc_m_boosted_top + systName: fake_nc_m_boosted_toph ####### Underlying event ####### - module: nonclosure.py:UnderlyingEvent init: - path_json: ../configs/UE_NonRes2016.json + path_json: ../configs/UE_NonRes.json categories: HH_DL_resolved1b_GGF: systName: underlying_event @@ -104,6 +98,25 @@ systName: underlying_event HH_DL_boosted_other: systName: underlying_event + HH_SL_resolved1b_GGF: + systName: underlying_event + HH_SL_resolved1b_VBF: + systName: underlying_event + HH_SL_resolved2b_GGF: + systName: underlying_event + HH_SL_resolved2b_GGF: + systName: underlying_event + HH_SL_boosted_GGF: + systName: underlying_event + HH_SL_boosted_VBF: + systName: underlying_event + HH_SL_inclusive_other: + systName: underlying_event + HH_SL_resolved_TopH: + systName: underlying_event + HH_SL_boosted_TopH: + systName: underlying_event + ################# 2017 ################### @@ -114,18 +127,20 @@ path_json : ../configs/fit_results_NonRes.json categories: HH_DL_inclusive_DY_VVV : - key: HH_inclusive_DY_VVV_2017 + key: HH_DL_inclusive_DY_VVV_2017 systName: dy_inclusive_nonclosure_dy_vvv HH_DL_resolved_other: - key: HH_resolved_other_2017 + key: HH_DL_resolved_other_2017 systName: dy_resolved_nonclosure_other HH_DL_boosted_other: - key: HH_boosted_other + key: HH_DL_boosted_other systName: dy_boosted_nonclosure_other ####### Fakes ####### - module: nonclosure.py:NonClosureFake init: - path_json: ../configs/factors_SL_Fake_2017.json + path_json: ../configs/factors_SL_Fake.json + histConverter: !include cat_SL_nonresonant_channel.yml + aggregation: !include cat_SL_nonresonant_aggregation.yml categories: HH_SL_e_resolved1b_GGF: key: HH_SL_e_resolved1b_GGF_2017 @@ -163,34 +178,28 @@ HH_SL_m_boosted_VBF: key: HH_SL_m_boosted_VBF_2017 systName: fake_nc_m_boosted_VBF - HH_SL_e_inclusive_WJets: - key: HH_SL_e_inclusive_WJets_2017 - systName: fake_nc_e_inc_wjets - HH_SL_m_inclusive_WJets: - key: HH_SL_m_inclusive_WJets_2017 - systName: fake_nc_m_inc_wjets HH_SL_e_inclusive_other: key: HH_SL_e_inclusive_other_2017 - systName: fake_nc_e_inc_otherh + systName: fake_nc_e_inc_other HH_SL_m_inclusive_other: key: HH_SL_m_inclusive_other_2017 - systName: fake_nc_m_inc_otherh + systName: fake_nc_m_inc_other HH_SL_e_resolved_TopH: key: HH_SL_e_resolved_TopH_2017 - systName: fake_nc_e_res_top + systName: fake_nc_e_res_toph HH_SL_m_resolved_TopH: key: HH_SL_m_resolved_TopH_2017 - systName: fake_nc_m_res_top + systName: fake_nc_m_res_toph HH_SL_e_boosted_TopH: key: HH_SL_e_boosted_TopH_2017 - systName: fake_nc_e_boosted_top + systName: fake_nc_e_boosted_toph HH_SL_m_boosted_TopH: key: HH_SL_m_boosted_TopH_2017 - systName: fake_nc_m_boosted_top + systName: fake_nc_m_boosted_toph ####### Underlying event ####### - module: nonclosure.py:UnderlyingEvent init: - path_json: ../configs/UE_NonRes2017.json + path_json: ../configs/UE_NonRes.json categories: HH_DL_resolved1b_GGF: systName: underlying_event @@ -210,7 +219,24 @@ systName: underlying_event HH_DL_boosted_other: systName: underlying_event - + HH_SL_resolved1b_GGF: + systName: underlying_event + HH_SL_resolved1b_VBF: + systName: underlying_event + HH_SL_resolved2b_GGF: + systName: underlying_event + HH_SL_resolved2b_GGF: + systName: underlying_event + HH_SL_boosted_GGF: + systName: underlying_event + HH_SL_boosted_VBF: + systName: underlying_event + HH_SL_inclusive_other: + systName: underlying_event + HH_SL_resolved_TopH: + systName: underlying_event + HH_SL_boosted_TopH: + systName: underlying_event ################# 2018 ################### @@ -221,18 +247,20 @@ path_json : ../configs/fit_results_NonRes.json categories: HH_DL_inclusive_DY_VVV : - key: HH_inclusive_DY_VVV_2018 + key: HH_DL_inclusive_DY_VVV_2018 systName: dy_inclusive_nonclosure_dy_vvv HH_DL_resolved_other: - key: HH_resolved_other_2018 + key: HH_DL_resolved_other_2018 systName: dy_resolved_nonclosure_other HH_DL_boosted_other: - key: HH_boosted_other + key: HH_DL_boosted_other systName: dy_boosted_nonclosure_other ####### Fakes ####### - module: nonclosure.py:NonClosureFake init: - path_json: ../configs/factors_SL_Fake_2018.json + path_json: ../configs/factors_SL_Fake.json + histConverter: !include cat_SL_nonresonant_channel.yml + aggregation: !include cat_SL_nonresonant_aggregation.yml categories: HH_SL_e_resolved1b_GGF: key: HH_SL_e_resolved1b_GGF_2018 @@ -270,34 +298,28 @@ HH_SL_m_boosted_VBF: key: HH_SL_m_boosted_VBF_2018 systName: fake_nc_m_boosted_VBF - HH_SL_e_inclusive_WJets: - key: HH_SL_e_inclusive_WJets_2018 - systName: fake_nc_e_inc_wjets - HH_SL_m_inclusive_WJets: - key: HH_SL_m_inclusive_WJets_2018 - systName: fake_nc_m_inc_wjets HH_SL_e_inclusive_other: key: HH_SL_e_inclusive_other_2018 - systName: fake_nc_e_inc_otherh + systName: fake_nc_e_inc_other HH_SL_m_inclusive_other: key: HH_SL_m_inclusive_other_2018 - systName: fake_nc_m_inc_otherh + systName: fake_nc_m_inc_other HH_SL_e_resolved_TopH: key: HH_SL_e_resolved_TopH_2018 - systName: fake_nc_e_res_top + systName: fake_nc_e_res_toph HH_SL_m_resolved_TopH: key: HH_SL_m_resolved_TopH_2018 - systName: fake_nc_m_res_top + systName: fake_nc_m_res_toph HH_SL_e_boosted_TopH: key: HH_SL_e_boosted_TopH_2018 - systName: fake_nc_e_boosted_top + systName: fake_nc_e_boosted_toph HH_SL_m_boosted_TopH: key: HH_SL_m_boosted_TopH_2018 - systName: fake_nc_m_boosted_top + systName: fake_nc_m_boosted_toph ####### Underlying event ####### - module: nonclosure.py:UnderlyingEvent init: - path_json: ../configs/UE_NonRes2018.json + path_json: ../configs/UE_NonRes.json categories: HH_DL_resolved1b_GGF: systName: underlying_event @@ -317,7 +339,22 @@ systName: underlying_event HH_DL_boosted_other: systName: underlying_event - - - + HH_SL_resolved1b_GGF: + systName: underlying_event + HH_SL_resolved1b_VBF: + systName: underlying_event + HH_SL_resolved2b_GGF: + systName: underlying_event + HH_SL_resolved2b_GGF: + systName: underlying_event + HH_SL_boosted_GGF: + systName: underlying_event + HH_SL_boosted_VBF: + systName: underlying_event + HH_SL_inclusive_other: + systName: underlying_event + HH_SL_resolved_TopH: + systName: underlying_event + HH_SL_boosted_TopH: + systName: underlying_event diff --git a/Datacards/configs/norm_DL_dipolRecoil_2016.yml b/Datacards/configs/norm_DL_dipolRecoil_2016.yml deleted file mode 100644 index 334d2118..00000000 --- a/Datacards/configs/norm_DL_dipolRecoil_2016.yml +++ /dev/null @@ -1,4 +0,0 @@ -################################# -# Dipole recoil on # -################################# -qqHH_pythiaDipoleOn diff --git a/Datacards/configs/norm_all_nonres.yml b/Datacards/configs/norm_all_nonres.yml deleted file mode 100644 index 85e476c3..00000000 --- a/Datacards/configs/norm_all_nonres.yml +++ /dev/null @@ -1,34 +0,0 @@ - 2016: - - !include norm_lumi.yml - - !include norm_BR.yml - - !include norm_QCDscale.yml - - !include norm_alpha_s.yml - - !include norm_pdf.yml - - !include norm_misc.yml - - !include norm_DL_nonres_process.yml - - !include norm_fakes_2016.yml - - !include norm_DY_NonRes.yml - - footer: !include norm_footer_DL.yml - 2017: - - !include norm_lumi.yml - - !include norm_BR.yml - - !include norm_QCDscale.yml - - !include norm_alpha_s.yml - - !include norm_pdf.yml - - !include norm_misc.yml - - !include norm_DL_nonres_process.yml - - !include norm_fakes_2017.yml - - !include norm_DY_NonRes.yml - - footer: !include norm_footer_DL.yml - 2018: - - !include norm_lumi.yml - - !include norm_BR.yml - - !include norm_QCDscale.yml - - !include norm_alpha_s.yml - - !include norm_pdf.yml - - !include norm_misc.yml - - !include norm_DL_nonres_process.yml - - !include norm_fakes_2018.yml - - !include norm_DY_NonRes.yml - - footer: !include norm_footer_DL.yml - diff --git a/Datacards/configs/norm_comb_nonres.yml b/Datacards/configs/norm_comb_nonres.yml index 882bbb1f..ee551cc3 100644 --- a/Datacards/configs/norm_comb_nonres.yml +++ b/Datacards/configs/norm_comb_nonres.yml @@ -1,34 +1,12 @@ - 2016: - - !include norm_lumi.yml - - !include norm_BR.yml - - !include norm_QCDscale.yml - - !include norm_alpha_s.yml - - !include norm_pdf.yml - - !include norm_misc.yml - - !include norm_comb_nonres_process.yml - - !include norm_fakes_2016.yml - - !include norm_DY_NonRes.yml - - footer: !include norm_footer_comb.yml - 2017: - - !include norm_lumi.yml - - !include norm_BR.yml - - !include norm_QCDscale.yml - - !include norm_alpha_s.yml - - !include norm_pdf.yml - - !include norm_misc.yml - - !include norm_comb_nonres_process.yml - - !include norm_fakes_2017.yml - - !include norm_DY_NonRes.yml - - footer: !include norm_footer_comb.yml - 2018: - - !include norm_lumi.yml - - !include norm_BR.yml - - !include norm_QCDscale.yml - - !include norm_alpha_s.yml - - !include norm_pdf.yml - - !include norm_misc.yml - - !include norm_comb_nonres_process.yml - - !include norm_fakes_2018.yml - - !include norm_DY_NonRes.yml - - footer: !include norm_footer_comb.yml +- !include norm_lumi.yml +- !include norm_BR.yml +- !include norm_QCDscale.yml +- !include norm_alpha_s.yml +- !include norm_pdf.yml +- !include norm_misc.yml +- !include norm_comb_nonres_process.yml +#- !include norm_fakes.yml +- !include norm_DY_NonRes.yml +- !include norm_dipolRecoil.yml +- footer: !include norm_footer_comb.yml diff --git a/Datacards/configs/norm_comb_nonres_process.yml b/Datacards/configs/norm_comb_nonres_process.yml index 8619b84b..3edd7254 100644 --- a/Datacards/configs/norm_comb_nonres_process.yml +++ b/Datacards/configs/norm_comb_nonres_process.yml @@ -1,71 +1,67 @@ ################################# # Ad hoc norm # ################################# -CMS_bbww_TT_norm: +CMS_bbwwsl_fakes_norm_2016: + era: '2016' + cat: ['.*SL.*'] + group: Fakes + val: 1.3 +CMS_bbwwsl_fakes_norm_2017: + era: '2017' + cat: ['.*SL.*'] + group: Fakes + val: 1.3 +CMS_bbwwsl_fakes_norm_2018: + era: '2018' + cat: ['.*SL.*'] + group: Fakes + val: 1.3 + + +CMS_bbwwdl_tt_norm: group: - TT val: 1.2 - -CMS_bbww_ST_norm: + cat: ['.*DL.*'] +CMS_bbwwdl_st_norm: group: - ST val: 1.2 - -CMS_bbww_WJets_norm: + cat: ['.*DL.*'] +CMS_bbwwdl_tt_norm_boost: group: - - WJets + - TT + cat: ['.*DL.*boosted.*'] val: 1.2 - -CMS_bbwwsl_fakes_norm: - group: - - Fakes - val: 1.3 - cat: - - HH_SL_resolved1b_GGF - - HH_SL_resolved2b_GGF - - HH_SL_boosted_GGF - - HH_SL_resolved1b_VBF - - HH_SL_resolved2b_VBF - - HH_SL_boosted_VBF - - HH_SL_inclusive_WJets - - HH_SL_inclusive_other - - HH_SL_resolved_TopH - - HH_SL_boosted_TopH - -CMS_bbwwsl_ST_norm_boost: - cat: - - HH_SL_boosted_GGF - - HH_SL_boosted_VBF - - HH_SL_boosted_TopH +CMS_bbwwdl_st_norm_boost: group: - ST + cat: ['.*DL.*boosted.*'] val: 1.2 -CMS_bbwwsl_TT_norm_boost: - cat: - - HH_SL_boosted_GGF - - HH_SL_boosted_VBF - - HH_SL_boosted_TopH +CMS_bbwwsl_tt_norm: group: - TT val: 1.2 - -CMS_bbwwdl_ST_norm_boost: - cat: - - HH_DL_boosted_GGF - - HH_DL_boosted_VBF - - HH_DL_boosted_other + cat: ['.*SL.*'] +CMS_bbwwsl_st_norm: group: - ST val: 1.2 - -CMS_bbwwdl_TT_norm_boost: - cat: - - HH_DL_boosted_GGF - - HH_DL_boosted_VBF - - HH_DL_boosted_other + cat: ['.*SL.*'] +CMS_bbwwsl_wjets_norm: + group: + - WJets + val: 1.2 + cat: ['.*SL.*'] +CMS_bbwwsl_tt_norm_boost: group: - TT + cat: ['.*SL.*boosted.*'] + val: 1.2 +CMS_bbwwsl_st_norm_boost: + group: + - ST + cat: ['.*SL.*boosted.*'] val: 1.2 - diff --git a/Datacards/configs/norm_fakes_2016.yml b/Datacards/configs/norm_fakes_2016.yml deleted file mode 100644 index 96acfb8e..00000000 --- a/Datacards/configs/norm_fakes_2016.yml +++ /dev/null @@ -1,28 +0,0 @@ -CMS_bbwwdl_fakes_norm_boosted_DY_VVV_2016: - cat: HH_DL_boosted_DY_VVV - group: Fakes - val: 1.3 -CMS_bbwwdl_fakes_norm_resolved_DY_VVV_2016: - cat: HH_DL_resolved_DY_VVV - group: Fakes - val: 1.3 -CMS_bbwwdl_fakes_norm_boosted_other_2016: - cat: HH_DL_boosted_other - group: Fakes - val: 1.3 -CMS_bbwwdl_fakes_norm_resolved_other_2016: - cat: HH_DL_resolved_other - group: Fakes - val: 1.3 -CMS_bbwwdl_fakes_norm_boosted_GGF_2016: - cat: HH_DL_boosted_GGF - group: Fakes - val: 1.3 -CMS_bbwwdl_fakes_norm_resolved1b_GGF_2016: - cat: HH_DL_resolved1b_GGF - group: Fakes - val: 1.3 -CMS_bbwwdl_fakes_norm_resolved2b_GGF_2016: - cat: HH_DL_resolved2b_GGF - group: Fakes - val: 1.3 diff --git a/Datacards/configs/norm_fakes_2017.yml b/Datacards/configs/norm_fakes_2017.yml deleted file mode 100644 index efb32238..00000000 --- a/Datacards/configs/norm_fakes_2017.yml +++ /dev/null @@ -1,28 +0,0 @@ -CMS_bbwwdl_fakes_norm_boosted_DY_VVV_2017: - cat: HH_DL_boosted_DY_VVV - group: Fakes - val: 1.3 -CMS_bbwwdl_fakes_norm_resolved_DY_VVV_2017: - cat: HH_DL_resolved_DY_VVV - group: Fakes - val: 1.3 -CMS_bbwwdl_fakes_norm_boosted_other_2017: - cat: HH_DL_boosted_other - group: Fakes - val: 1.3 -CMS_bbwwdl_fakes_norm_resolved_other_2017: - cat: HH_DL_resolved_other - group: Fakes - val: 1.3 -CMS_bbwwdl_fakes_norm_boosted_GGF_2017: - cat: HH_DL_boosted_GGF - group: Fakes - val: 1.3 -CMS_bbwwdl_fakes_norm_resolved1b_GGF_2017: - cat: HH_DL_resolved1b_GGF - group: Fakes - val: 1.3 -CMS_bbwwdl_fakes_norm_resolved2b_GGF_2017: - cat: HH_DL_resolved2b_GGF - group: Fakes - val: 1.3 diff --git a/Datacards/configs/norm_fakes_2018.yml b/Datacards/configs/norm_fakes_2018.yml deleted file mode 100644 index 6b3de65b..00000000 --- a/Datacards/configs/norm_fakes_2018.yml +++ /dev/null @@ -1,36 +0,0 @@ -CMS_bbwwdl_fakes_norm_inclusive_DY_VVV_2018: - cat: HH_DL_inclusive_DY_VVV - group: Fakes - val: 1.3 -CMS_bbwwdl_fakes_norm_boosted_other_2018: - cat: HH_DL_boosted_other - group: Fakes - val: 1.3 -CMS_bbwwdl_fakes_norm_resolved_other_2018: - cat: HH_DL_resolved_other - group: Fakes - val: 1.3 -CMS_bbwwdl_fakes_norm_boosted_GGF_2018: - cat: HH_DL_boosted_GGF - group: Fakes - val: 1.3 -CMS_bbwwdl_fakes_norm_resolved1b_GGF_2018: - cat: HH_DL_resolved1b_GGF - group: Fakes - val: 1.3 -CMS_bbwwdl_fakes_norm_resolved2b_GGF_2018: - cat: HH_DL_resolved2b_GGF - group: Fakes - val: 1.3 -CMS_bbwwdl_fakes_norm_boosted_VBF_2018: - cat: HH_DL_boosted_VBF - group: Fakes - val: 1.3 -CMS_bbwwdl_fakes_norm_resolved1b_VBF_2018: - cat: HH_DL_resolved1b_VBF - group: Fakes - val: 1.3 -CMS_bbwwdl_fakes_norm_resolved2b_VBF_2018: - cat: HH_DL_resolved2b_VBF - group: Fakes - val: 1.3 diff --git a/Datacards/configs/norm_footer_comb.yml b/Datacards/configs/norm_footer_comb.yml index 701db8b1..a0b85223 100644 --- a/Datacards/configs/norm_footer_comb.yml +++ b/Datacards/configs/norm_footer_comb.yml @@ -1,32 +1,38 @@ -- line: "nuisance edit rename TT * CMS_bbwwsl_ps_fsr CMS_bbwwsl_ps_fsr_TT" +- line: "nuisance edit rename TT * CMS_bbwwdl_ps_fsr CMS_bbwwdl_ps_fsr_tt" + cat : [".*DL.*"] +- line: "nuisance edit rename DY * CMS_bbwwdl_ps_isr CMS_bbwwdl_ps_fsr_dy" + cat : [".*DL.*"] +- line: "nuisance edit rename ST * CMS_bbwwdl_ps_isr CMS_bbwwdl_ps_fsr_st" + cat : [".*DL.*"] +- line: "nuisance edit rename TT * CMS_bbwwdl_ps_isr CMS_bbwwdl_ps_isr_tt" + cat : [".*DL.*"] +- line: "nuisance edit rename DY * CMS_bbwwdl_ps_isr CMS_bbwwdl_ps_isr_dy" + cat : [".*DL.*"] +- line: "nuisance edit rename ST * CMS_bbwwdl_ps_isr CMS_bbwwdl_ps_isr_st" + cat : [".*DL.*"] +- line: "nuisance edit rename TT * CMS_bbwwdl_thu_shape CMS_bbwwdl_thu_shape_tt" + cat : [".*DL.*"] +- line: "nuisance edit rename DY * CMS_bbwwdl_thu_shape CMS_bbwwdl_thu_shape_dy" + cat : [".*DL.*"] +- line: "nuisance edit rename ST * CMS_bbwwdl_thu_shape CMS_bbwwdl_thu_shape_st" + cat : [".*DL.*"] + +- line: "nuisance edit rename TT * CMS_bbwwsl_ps_fsr CMS_bbwwsl_ps_fsr_tt" cat : [".*SL.*"] -- line: "nuisance edit rename ST * CMS_bbwwsl_ps_fsr CMS_bbwwsl_ps_fsr_ST" +- line: "nuisance edit rename WJets * CMS_bbwwsl_ps_isr CMS_bbwwsl_ps_fsr_wjets" cat : [".*SL.*"] -- line: "nuisance edit rename WJets * CMS_bbwwsl_ps_fsr CMS_bbwwsl_ps_fsr_WJets" +- line: "nuisance edit rename ST * CMS_bbwwsl_ps_isr CMS_bbwwsl_ps_fsr_st" cat : [".*SL.*"] -- line: "nuisance edit rename TT * CMS_bbwwsl_ps_isr CMS_bbwwsl_ps_isr_TT" +- line: "nuisance edit rename TT * CMS_bbwwsl_ps_isr CMS_bbwwsl_ps_isr_tt" cat : [".*SL.*"] -- line: "nuisance edit rename ST * CMS_bbwwsl_ps_isr CMS_bbwwsl_ps_isr_ST" +- line: "nuisance edit rename WJets * CMS_bbwwsl_ps_isr CMS_bbwwsl_ps_isr_wjets" cat : [".*SL.*"] -- line: "nuisance edit rename WJets * CMS_bbwwsl_ps_isr CMS_bbwwsl_ps_isr_WJets" +- line: "nuisance edit rename ST * CMS_bbwwsl_ps_isr CMS_bbwwsl_ps_isr_st" cat : [".*SL.*"] -- line: "nuisance edit rename TT * CMS_bbwwsl_thu_shape CMS_bbwwsl_thu_shape_TT" +- line: "nuisance edit rename TT * CMS_bbwwsl_thu_shape CMS_bbwwsl_thu_shape_tt" cat : [".*SL.*"] -- line: "nuisance edit rename ST * CMS_bbwwsl_thu_shape CMS_bbwwsl_thu_shape_ST" +- line: "nuisance edit rename WJets * CMS_bbwwsl_thu_shape CMS_bbwwsl_thu_shape_wjets" cat : [".*SL.*"] -- line: "nuisance edit rename WJets * CMS_bbwwsl_thu_shape CMS_bbwwsl_thu_shape_WJets" +- line: "nuisance edit rename ST * CMS_bbwwsl_thu_shape CMS_bbwwsl_thu_shape_st" cat : [".*SL.*"] -- line: "nuisance edit rename TT * CMS_bbwwdl_ps_fsr CMS_bbwwdl_ps_fsr_TT" - cat : [".*DL.*"] -- line: "nuisance edit rename DY * CMS_bbwwdl_ps_isr CMS_bbwwdl_ps_isr_DY" - cat : [".*DL.*"] -- line: "nuisance edit rename TT * CMS_bbwwdl_ps_fsr CMS_bbwwdl_ps_fsr_TT" - cat : [".*DL.*"] -- line: "nuisance edit rename DY * CMS_bbwwdl_ps_isr CMS_bbwwdl_ps_isr_DY" - cat : [".*DL.*"] -- line: "nuisance edit rename TT * CMS_bbwwdl_thu_shape CMS_bbwwdl_thu_shape_TT" - cat : [".*DL.*"] -- line: "nuisance edit rename ST * CMS_bbwwdl_thu_shape CMS_bbwwdl_thu_shape_ST" - cat : [".*DL.*"] - diff --git a/Datacards/configs/rebin_comb_nonresonant.yml b/Datacards/configs/rebin_comb_nonresonant.yml index 8eae8bbf..2a34d327 100644 --- a/Datacards/configs/rebin_comb_nonresonant.yml +++ b/Datacards/configs/rebin_comb_nonresonant.yml @@ -14,7 +14,7 @@ HH_DL_resolved2b_GGF: HH_DL_boosted_GGF: method: threshold2 params: - - [1.0, 4.0, 9.0, 16.0, 25.0, 36.0, 49.0, 64.0] + - [1.0, 4.0, 9.0, 16.0, 25.0] - [TT,ST,DY] HH_DL_resolved1b_VBF: @@ -30,7 +30,7 @@ HH_DL_resolved2b_VBF: HH_DL_boosted_VBF: method: threshold2 params: - - [1.0, 4.0, 9.0, 16.0, 25.0, 36.0, 49.0, 64.0] + - [1.0, 4.0, 9.0, 16.0, 25.0] - [TT,ST,DY] HH_SL_resolved1b_GGF: @@ -46,7 +46,7 @@ HH_SL_resolved2b_GGF: HH_SL_boosted_GGF: method: threshold2 params: - - [1.0, 4.0, 9.0, 16.0, 25.0, 36.0, 49.0, 64.0] + - [1.0, 4.0, 9.0, 16.0, 25.0] - [TT,ST,WJets] HH_SL_resolved1b_VBF: @@ -62,7 +62,7 @@ HH_SL_resolved2b_VBF: HH_SL_boosted_VBF: method: threshold2 params: - - [1.0, 4.0, 9.0, 16.0, 25.0, 36.0, 49.0, 64.0] + - [1.0, 4.0, 9.0, 16.0, 25.0] - [TT,ST,WJets] @@ -85,12 +85,6 @@ HH_DL_boosted_other: - [0.,0.33,0.66,1.] - *back -HH_SL_inclusive_WJets: - method : quantile - params : - - [0.,0.2,0.4,0.6,0.8,1.] - - *back - HH_SL_inclusive_other: method : quantile params : diff --git a/Datacards/configs/rebin_comb_nonresonant_BM.yml b/Datacards/configs/rebin_comb_nonresonant_BM.yml deleted file mode 100644 index b803b305..00000000 --- a/Datacards/configs/rebin_comb_nonresonant_BM.yml +++ /dev/null @@ -1,146 +0,0 @@ -# Signal categories # -HH_DL_resolved1b_GGF: - method: threshold - params: - - [1.e-05, 1.0, 4.0, 9.0, 16.0, 25.0, 36.0, 49.0, 64.0, 81.0, 100.0, 121.0, 144.0, 169.0, 196.0] - - [TT,ST,DY] - - 15 - - 0.075 - - [ggHH_BM_{BM}_hbbhww,ggHH_BM_{BM}_hbbhtt] -HH_DL_resolved2b_GGF: - method: threshold - params: - - [1.e-05, 1.0, 4.0, 9.0, 16.0, 25.0, 36.0, 49.0, 64.0, 81.0, 100.0, 121.0, 144.0, 169.0, 196.0] - - [TT,ST,DY] - - 15 - - 0.075 - - [ggHH_BM_{BM}_hbbhww,ggHH_BM_{BM}_hbbhtt] -HH_DL_boosted_GGF: - method: threshold - params: - - [1.e-05, 1.0, 4.0] - - [TT,ST,DY] - - 3 - - 0.075 - - [ggHH_BM_{BM}_hbbhww,ggHH_BM_{BM}_hbbhtt] - -HH_DL_resolved1b_VBF: - method: threshold - params: - - [1.e-05, 1.0, 4.0, 9.0, 16.0, 25.0, 36.0, 49.0, 64.0, 81.0, 100.0, 121.0, 144.0, 169.0, 196.0] - - [TT,ST,DY] - - 15 - - 0.075 - - [qqHH_CV_1_C2V_1_kl_1_hbbhww,qqHH_CV_1_C2V_1_kl_1_hbbhtt] -HH_DL_resolved2b_VBF: - method: threshold - params: - - [1.e-05, 1.0, 4.0, 9.0, 16.0, 25.0, 36.0, 49.0, 64.0, 81.0, 100.0, 121.0, 144.0, 169.0, 196.0] - - [TT,ST,DY] - - 15 - - 0.075 - - [qqHH_CV_1_C2V_1_kl_1_hbbhww,qqHH_CV_1_C2V_1_kl_1_hbbhtt] -HH_DL_boosted_VBF: - method: threshold - params: - - [1.e-05, 1.0, 4.0] - - [TT,ST,DY] - - 3 - - 0.075 - - [qqHH_CV_1_C2V_1_kl_1_hbbhww,qqHH_CV_1_C2V_1_kl_1_hbbhtt] - -HH_SL_resolved1b_GGF: - method: threshold - params: - - [1.e-05, 1.0, 4.0, 9.0, 16.0, 25.0, 36.0, 49.0, 64.0, 81.0, 100.0, 121.0, 144.0, 169.0, 196.0] - - [TT,ST,DY] - - 15 - - 0.075 - - [ggHH_BM_{BM}_hbbhww,ggHH_BM_{BM}_hbbhtt] -HH_SL_resolved2b_GGF: - method: threshold - params: - - [1.e-05, 1.0, 4.0, 9.0, 16.0, 25.0, 36.0, 49.0, 64.0, 81.0, 100.0, 121.0, 144.0, 169.0, 196.0] - - [TT,ST,DY] - - 15 - - 0.075 - - [ggHH_BM_{BM}_hbbhww,ggHH_BM_{BM}_hbbhtt] -HH_SL_boosted_GGF: - method: threshold - params: - - [1.e-05, 1.0, 4.0] - - [TT,ST,DY] - - 3 - - 0.075 - - [ggHH_BM_{BM}_hbbhww,ggHH_BM_{BM}_hbbhtt] - -HH_SL_resolved1b_VBF: - method: threshold - params: - - [1.e-05, 1.0, 4.0, 9.0, 16.0, 25.0, 36.0, 49.0, 64.0, 81.0, 100.0, 121.0, 144.0, 169.0, 196.0] - - [TT,ST,WJets] - - 15 - - 0.075 - - [qqHH_CV_1_C2V_1_kl_1_hbbhww,qqHH_CV_1_C2V_1_kl_1_hbbhtt] -HH_SL_resolved2b_VBF: - method: threshold - params: - - [1.e-05, 1.0, 4.0, 9.0, 16.0, 25.0, 36.0, 49.0, 64.0, 81.0, 100.0, 121.0, 144.0, 169.0, 196.0] - - [TT,ST,WJets] - - 15 - - 0.075 - - [qqHH_CV_1_C2V_1_kl_1_hbbhww,qqHH_CV_1_C2V_1_kl_1_hbbhtt] -HH_SL_boosted_VBF: - method: threshold - params: - - [1.e-05, 1.0, 4.0] - - [TT,ST,WJets] - - 3 - - 0.075 - - [qqHH_CV_1_C2V_1_kl_1_hbbhww,qqHH_CV_1_C2V_1_kl_1_hbbhtt] - - -# Background categories # -backgrounds : &back [TT,ST,DY,WJets,VV,VVV,Other_bbWW,ggH_hbb,ggH_hgg,ggH_hmm,ggH_htt,ggH_hww,ggH_hzz,qqH_hbb,qqH_hgg,qqH_hmm,qqH_htt,qqH_hww,qqH_hzz,ttH_hbb,ttH_hww,WH_hbb,ZH_hbb,ZH_htt,ZH_hww,tHq_hww,tHW_hww,VH_hww] - -HH_DL_inclusive_DY_VVV: - method : quantile - params : - - [0.,0.2,0.4,0.6,0.8,1.] - - *back - -HH_DL_resolved_other: - method : quantile - params : - - [0.,0.2,0.4,0.6,0.8,1.] - - *back -HH_DL_boosted_other: - method : quantile - params : - - [0.,0.33,0.66,1.] - - *back - -HH_SL_inclusive_WJets: - method : quantile - params : - - [0.,0.2,0.4,0.6,0.8,1.] - - *back - -HH_SL_inclusive_other: - method : quantile - params : - - [0.,0.2,0.4,0.6,0.8,1.] - - *back - -HH_SL_resolved_TopH: - method : quantile - params : - - [0.,0.2,0.4,0.6,0.8,1.] - - *back - -HH_SL_boosted_TopH: - method : quantile - params : - - [0.,0.33,0.66,1.] - - *back - diff --git a/Datacards/configs/shape_comb_systematics.yml b/Datacards/configs/shape_comb_systematics.yml index 24404745..bf51f4e4 100644 --- a/Datacards/configs/shape_comb_systematics.yml +++ b/Datacards/configs/shape_comb_systematics.yml @@ -63,13 +63,13 @@ ttH_electronMuon_trigSF: # Lepton SF # -el_looseeff: CMS_eff_e_id_loose01_{era} -el_looseid: CMS_eff_e_id_loose02_{era} -el_loosereco: CMS_eff_e_reco_{era} -el_tightmva: CMS_eff_e_id_tth_{era} +el_loose: CMS_eff_e_id_loose_{era} +el_tight: CMS_eff_e_id_tight_{era} +el_tth: CMS_eff_e_id_tth_{era} +mu_loose: CMS_eff_m_id_loose_{era} +mu_tight: CMS_eff_m_id_tight_{era} +mu_tth: CMS_eff_m_id_tth_{era} -mu_loose: CMS_eff_m_idiso_{era} -mu_tightmva: CMS_eff_m_id_tth_{era} # FakeRates # el_FR_Loose_SL_pt_syst: @@ -184,10 +184,10 @@ dy_resolved_nonclosure_top_shape2 : CMS_bbwwdl_DY_ncc2_resolved_top_{era}: cat: [".*DL.*"] dy_boosted_nonclosure_top_shape1 : - CMS_bbwwdl_DY_ncc1_boosted_top_{era}: + CMS_bbwwdl_DY_ncc1_boosted_toph_{era}: cat: [".*DL.*"] dy_boosted_nonclosure_top_shape2 : - CMS_bbwwdl_DY_ncc2_boosted_top_{era}: + CMS_bbwwdl_DY_ncc2_boosted_toph_{era}: cat: [".*DL.*"] dy_boosted_nonclosure_dy_vvv_shape1 : CMS_bbwwdl_DY_ncc1_boost_dy_vvv: @@ -227,43 +227,39 @@ dy_inclusive_nonclosure_otherh_shape2 : cat: [".*DL.*"] # Fake non closure # -fake_nc_e_res1b_GGF_nom: CMS_bbwwsl_FakeRate_nc_nom_e_res1b_GGF -fake_nc_e_res1b_GGF_slope: CMS_bbwwsl_FakeRate_nc_slope_mu_res1b_GGF -fake_nc_m_res1b_GGF_nom: CMS_bbwwsl_FakeRate_nc_nom_mu_res1b_GGF -fake_nc_m_res1b_GGF_slope: CMS_bbwwsl_FakeRate_nc_slope_mu_res1b_GGF -fake_nc_e_res1b_VBF_nom: CMS_bbwwsl_FakeRate_nc_nom_e_res1b_VBF -fake_nc_e_res1b_VBF_slope: CMS_bbwwsl_FakeRate_nc_slope_e_res1b_VBF -fake_nc_m_res1b_VBF_nom: CMS_bbwwsl_FakeRate_nc_nom_mu_res1b_VBF -fake_nc_m_res1b_VBF_slope: CMS_bbwwsl_FakeRate_nc_slope_mu_res1b_VBF -fake_nc_e_res2b_GGF_nom: CMS_bbwwsl_FakeRate_nc_nom_e_res2b_GGF -fake_nc_e_res2b_GGF_slope: CMS_bbwwsl_FakeRate_nc_slope_e_res2b_GGF -fake_nc_m_res2b_GGF_nom: CMS_bbwwsl_FakeRate_nc_nom_mu_res2b_GGF -fake_nc_m_res2b_GGF_slope: CMS_bbwwsl_FakeRate_nc_slope_mu_res2b_GGF -fake_nc_e_res2b_VBF_nom: CMS_bbwwsl_FakeRate_nc_nom_e_res2b_VBF -fake_nc_e_res2b_VBF_slope: CMS_bbwwsl_FakeRate_nc_slope_e_res2b_VBF -fake_nc_m_res2b_VBF_nom: CMS_bbwwsl_FakeRate_nc_nom_mu_res2b_VBF -fake_nc_m_res2b_VBF_slope: CMS_bbwwsl_FakeRate_nc_slope_mu_res2b_VBF -fake_nc_e_boosted_GGF_nom: CMS_bbwwsl_FakeRate_nc_nom_e_boosted_GGF -fake_nc_e_boosted_GGF_slope: CMS_bbwwsl_FakeRate_nc_slope_e_boosted_GGF -fake_nc_m_boosted_GGF_nom: CMS_bbwwsl_FakeRate_nc_nom_mu_boosted_GGF -fake_nc_m_boosted_GGF_slope: CMS_bbwwsl_FakeRate_nc_slope_mu_boosted_GGF -fake_nc_e_boosted_VBF_nom: CMS_bbwwsl_FakeRate_nc_nom_e_boosted_VBF -fake_nc_e_boosted_VBF_slope: CMS_bbwwsl_FakeRate_nc_slope_e_boosted_VBF -fake_nc_m_boosted_VBF_nom: CMS_bbwwsl_FakeRate_nc_nom_mu_boosted_VBF -fake_nc_m_boosted_VBF_slope: CMS_bbwwsl_FakeRate_nc_slope_mu_boosted_VBF -fake_nc_e_inc_wjets_nom: CMS_bbwwsl_FakeRate_nc_nom_e_inc_wjets -fake_nc_e_inc_wjets_slope: CMS_bbwwsl_FakeRate_nc_slope_e_inc_wjets -fake_nc_m_inc_wjets_nom: CMS_bbwwsl_FakeRate_nc_nom_mu_inc_wjets -fake_nc_m_inc_wjets_slope: CMS_bbwwsl_FakeRate_nc_slope_mu_inc_wjets -fake_nc_e_inc_otherh_nom: CMS_bbwwsl_FakeRate_nc_nom_e_inc_otherh -fake_nc_e_inc_otherh_slope: CMS_bbwwsl_FakeRate_nc_slope_e_inc_otherh -fake_nc_m_inc_otherh_nom: CMS_bbwwsl_FakeRate_nc_nom_mu_inc_otherh -fake_nc_m_inc_otherh_slope: CMS_bbwwsl_FakeRate_nc_slope_mu_inc_otherh -fake_nc_e_res_top_nom: CMS_bbwwsl_FakeRate_nc_nom_e_res_top -fake_nc_e_res_top_slope: CMS_bbwwsl_FakeRate_nc_slope_e_res_top -fake_nc_m_res_top_nom: CMS_bbwwsl_FakeRate_nc_nom_mu_res_top -fake_nc_m_res_top_slope: CMS_bbwwsl_FakeRate_nc_slope_mu_res_top -fake_nc_e_boosted_top_nom: CMS_bbwwsl_FakeRate_nc_nom_e_boosted_top -fake_nc_e_boosted_top_slope: CMS_bbwwsl_FakeRate_nc_slope_e_boosted_top -fake_nc_m_boosted_top_nom: CMS_bbwwsl_FakeRate_nc_nom_mu_boosted_top -fake_nc_m_boosted_top_slope: CMS_bbwwsl_FakeRate_nc_slope_mu_boosted_top +fake_nc_e_res1b_GGF_nom: CMS_bbwwsl_Clos_nom_e_res1b_GGF +fake_nc_e_res1b_GGF_slope: CMS_bbwwsl_Clos_slope_mu_res1b_GGF +fake_nc_m_res1b_GGF_nom: CMS_bbwwsl_Clos_nom_mu_res1b_GGF +fake_nc_m_res1b_GGF_slope: CMS_bbwwsl_Clos_slope_mu_res1b_GGF +fake_nc_e_res1b_VBF_nom: CMS_bbwwsl_Clos_nom_e_res1b_VBF +fake_nc_e_res1b_VBF_slope: CMS_bbwwsl_Clos_slope_e_res1b_VBF +fake_nc_m_res1b_VBF_nom: CMS_bbwwsl_Clos_nom_mu_res1b_VBF +fake_nc_m_res1b_VBF_slope: CMS_bbwwsl_Clos_slope_mu_res1b_VBF +fake_nc_e_res2b_GGF_nom: CMS_bbwwsl_Clos_nom_e_res2b_GGF +fake_nc_e_res2b_GGF_slope: CMS_bbwwsl_Clos_slope_e_res2b_GGF +fake_nc_m_res2b_GGF_nom: CMS_bbwwsl_Clos_nom_mu_res2b_GGF +fake_nc_m_res2b_GGF_slope: CMS_bbwwsl_Clos_slope_mu_res2b_GGF +fake_nc_e_res2b_VBF_nom: CMS_bbwwsl_Clos_nom_e_res2b_VBF +fake_nc_e_res2b_VBF_slope: CMS_bbwwsl_Clos_slope_e_res2b_VBF +fake_nc_m_res2b_VBF_nom: CMS_bbwwsl_Clos_nom_mu_res2b_VBF +fake_nc_m_res2b_VBF_slope: CMS_bbwwsl_Clos_slope_mu_res2b_VBF +fake_nc_e_boosted_GGF_nom: CMS_bbwwsl_Clos_nom_e_boosted_GGF +fake_nc_e_boosted_GGF_slope: CMS_bbwwsl_Clos_slope_e_boosted_GGF +fake_nc_m_boosted_GGF_nom: CMS_bbwwsl_Clos_nom_mu_boosted_GGF +fake_nc_m_boosted_GGF_slope: CMS_bbwwsl_Clos_slope_mu_boosted_GGF +fake_nc_e_boosted_VBF_nom: CMS_bbwwsl_Clos_nom_e_boosted_VBF +fake_nc_e_boosted_VBF_slope: CMS_bbwwsl_Clos_slope_e_boosted_VBF +fake_nc_m_boosted_VBF_nom: CMS_bbwwsl_Clos_nom_mu_boosted_VBF +fake_nc_m_boosted_VBF_slope: CMS_bbwwsl_Clos_slope_mu_boosted_VBF +fake_nc_e_inc_other_nom: CMS_bbwwsl_Clos_nom_e_inc_other +fake_nc_e_inc_other_slope: CMS_bbwwsl_Clos_slope_e_inc_other +fake_nc_m_inc_other_nom: CMS_bbwwsl_Clos_nom_mu_inc_other +fake_nc_m_inc_other_slope: CMS_bbwwsl_Clos_slope_mu_inc_other +fake_nc_e_res_toph_nom: CMS_bbwwsl_Clos_nom_e_res_toph +fake_nc_e_res_toph_slope: CMS_bbwwsl_Clos_slope_e_res_toph +fake_nc_m_res_toph_nom: CMS_bbwwsl_Clos_nom_mu_res_toph +fake_nc_m_res_toph_slope: CMS_bbwwsl_Clos_slope_mu_res_toph +fake_nc_e_boosted_toph_nom: CMS_bbwwsl_Clos_nom_e_boosted_toph +fake_nc_e_boosted_toph_slope: CMS_bbwwsl_Clos_slope_e_boosted_toph +fake_nc_m_boosted_toph_nom: CMS_bbwwsl_Clos_nom_mu_boosted_toph +fake_nc_m_boosted_toph_slope: CMS_bbwwsl_Clos_slope_mu_boosted_toph diff --git a/Datacards/scripts/compareUE.py b/Datacards/scripts/compareUE.py index 0c2928b1..fdbe556c 100644 --- a/Datacards/scripts/compareUE.py +++ b/Datacards/scripts/compareUE.py @@ -50,7 +50,6 @@ def findEra(cat): for cat in plotDict.keys(): results[cat] = {} for sample in plotDict[cat].keys(): - print (cat,sample) results[cat][sample] = [] h_nom = plotDict[cat][sample]['nom'] h_down = plotDict[cat][sample]['down'] @@ -65,7 +64,6 @@ def findEra(cat): y_nom = h_nom.GetBinContent(i) y_down = h_down.GetBinContent(i) y_up = h_up.GetBinContent(i) - print (edges,y_nom,y_up,y_down) results[cat][sample].append({'bin': edges, 'up': y_up / y_nom if y_nom > 1e-5 else 1., 'down': y_down / y_nom if y_nom > 1e-5 else 1.}) diff --git a/PlotterHHtobbWWSLbasic.py b/PlotterHHtobbWWSLbasic.py index 0e5e689a..dfd54bc6 100644 --- a/PlotterHHtobbWWSLbasic.py +++ b/PlotterHHtobbWWSLbasic.py @@ -12,6 +12,7 @@ from bamboo import treefunctions as op from bamboo.plots import CutFlowReport, Plot, EquidistantBinning, SummedPlot +from bamboo.analysisutils import printCutFlowReports, addPrintout sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)))) # Add scripts in this directory from BaseHHtobbWW import BaseNanoHHtobbWW @@ -24,6 +25,28 @@ import ROOT from functools import partial +if not hasattr(gbl, "bamboo_printEntry"): + gbl.gInterpreter.Declare(""" + bool bamboo_printEntry(long entry, float val) { + std::cout << "Processing entry #" << entry << ": val " << val << std::endl; + return true; + }""") + gbl.gInterpreter.Declare(""" + bool bamboo_printComb3_(long entry, const rdfhelpers::Combination<3>& comb, std::size_t idx, double value, UInt_t nJets, UInt_t nComb, const ROOT::VecOps::RVec>& combs, const ROOT::VecOps::RVec& rng) { + std::cout << "Combination #" << idx << " (value " << value << ") for " << entry << ": " << comb.get(0) << ", " << comb.get(1) << ", " << comb.get(2) << ", nJets=" << nJets << ", nSelJets=" << rng.size() << ", nCombinations=" << nComb << std::endl; + if ( ( comb.get(0) >= nJets ) || ( comb.get(1) >= nJets ) || ( comb.get(2) >= nJets ) ) { + std::cout << "All combinations: " << std::endl; + for ( const auto& icomb : combs ) { + std::cout << " - " << icomb.get(0) << ", " << icomb.get(1) << ", " << icomb.get(2) << std::endl; + } + std::cout << "From range with size " << rng.size() << ": "; + for ( auto idx : rng) { + std::cout << " " << idx; + } + std::cout << std::endl; + } + return true; + }""") #===============================================================================================# # PlotterHHtobbWW # #===============================================================================================# @@ -46,6 +69,10 @@ def definePlots(self, t, noSel, sample=None, sampleCfg=None): noSel = super(PlotterNanoHHtobbWWSL,self).prepareObjects(t, noSel, sample, sampleCfg, 'SL') era = sampleCfg['era'] plots = [] + + if hasattr(self,'base_plots'): + plots.extend(self.base_plots) + cutFlowPlots = [] #----- Machine Learning Model -----# @@ -69,8 +96,13 @@ def definePlots(self, t, noSel, sample=None, sampleCfg=None): self.yieldPlots = makeYieldPlots(self.args.Synchronization) + #yields = CutFlowReport("yields") + #plots.append(yields) + + #----- Singleleptons -----# - ElSelObj,MuSelObj = makeSingleLeptonSelection(self,noSel,plot_yield=True) + #ElSelObj,MuSelObj = makeSingleLeptonSelection(self,noSel,plot_yield=True) + ElSelObj,MuSelObj = makeSingleLeptonSelection(self,noSel,plot_yield=True,use_dd=True,fake_selection=self.args.FakeCR) #----- Apply jet corrections -----# self.beforeJetselection(ElSelObj.sel,'El') @@ -116,11 +148,12 @@ def definePlots(self, t, noSel, sample=None, sampleCfg=None): commonItems = ['channel','sel','suffix'] selObjectDictList = [] + # ========================== Resolved Categories ========================= # if any(item in resolved_args for item in jetsel_level): ChannelDictListR = [] logger.info ("... Processing Ak4Jets Selection for Resolved category : nAk4Jets >= 3 + nAk4BJets >= 1 + nAk8BJets == 0") - ElSelObjResolved = makeResolvedSelection(self,ElSelObj,copy_sel=True,plot_yield=True) - MuSelObjResolved = makeResolvedSelection(self,MuSelObj,copy_sel=True,plot_yield=True) + ElSelObjResolved = makeResolvedSelection(self,ElSelObj,copy_sel=True) + MuSelObjResolved = makeResolvedSelection(self,MuSelObj,copy_sel=True) if "Resolved2Btag" in jetplot_level: logger.info ('Resolved2Btag Node Selection') @@ -130,11 +163,17 @@ def definePlots(self, t, noSel, sample=None, sampleCfg=None): selObjectDictList.append({'channel':'El','selObject':ElSelObjResolved2b,'category':'Resolved','VBFJets':self.VBFJetPairsResolved}) selObjectDictList.append({'channel':'Mu','selObject':MuSelObjResolved2b,'category':'Resolved','VBFJets':self.VBFJetPairsResolved}) - if self.args.onlypost: - ElSelObjResolved2b.record_yields = True - MuSelObjResolved2b.record_yields = True - ElSelObjResolved2b.yieldTitle = 'Resolved2b Channel $e^{\pm}$' - MuSelObjResolved2b.yieldTitle = 'Resolved2b Channel $\mu^{\pm}$' + #if self.args.onlypost: + ElSelObjResolved2b.record_yields = True + MuSelObjResolved2b.record_yields = True + ElSelObjResolved2b.yieldTitle = 'Resolved2b Channel $e^{\pm}$' + MuSelObjResolved2b.yieldTitle = 'Resolved2b Channel $\mu^{\pm}$' + if self.args.PrintYield: + self.yields.add(ElSelObjResolved2b.sel) + self.yields.add(MuSelObjResolved2b.sel) + + #addPrintout(ElSelObjResolved2b.sel, "bamboo_printEntry", op.extVar("ULong_t", "rdfentry_"), t.event) + #addPrintout(MuSelObjResolved2b.sel, "bamboo_printEntry", op.extVar("ULong_t", "rdfentry_"), t.event) if not self.args.OnlyYield: ChannelDictListR.append({'channel':'El','selObj':ElSelObjResolved2b,'sel':ElSelObjResolved2b.sel, @@ -155,14 +194,25 @@ def definePlots(self, t, noSel, sample=None, sampleCfg=None): ElSelObjResolved1b = makeExclusiveResolvedSelection(self, ElSelObjResolved, nbJet=1, copy_sel=True) MuSelObjResolved1b = makeExclusiveResolvedSelection(self, MuSelObjResolved, nbJet=1, copy_sel=True) + plots.append(CutFlowReport("ElSelObjResolved1b", ElSelObjResolved1b.sel)) + plots.append(CutFlowReport("MuSelObjResolved1b", MuSelObjResolved1b.sel)) + selObjectDictList.append({'channel':'El','selObject':ElSelObjResolved1b,'category':'Resolved','VBFJets':self.VBFJetPairsResolved}) selObjectDictList.append({'channel':'Mu','selObject':MuSelObjResolved1b,'category':'Resolved','VBFJets':self.VBFJetPairsResolved}) - - if self.args.onlypost: - ElSelObjResolved1b.record_yields = True - MuSelObjResolved1b.record_yields = True - ElSelObjResolved1b.yieldTitle = 'Resolved1b Channel $e^{\pm}$' - MuSelObjResolved1b.yieldTitle = 'Resolved1b Channel $\mu^{\pm}$' + self.yields.add(ElSelObjResolved1b.sel, "ElSelObjResolved1b") + self.yields.add(MuSelObjResolved1b.sel, "MuSelObjResolved1b") + + #if self.args.onlypost: + ElSelObjResolved1b.record_yields = True + MuSelObjResolved1b.record_yields = True + ElSelObjResolved1b.yieldTitle = 'Resolved1b Channel $e^{\pm}$' + MuSelObjResolved1b.yieldTitle = 'Resolved1b Channel $\mu^{\pm}$' + if self.args.PrintYield: + self.yields.add(ElSelObjResolved1b.sel) + self.yields.add(MuSelObjResolved1b.sel) + + #addPrintout(ElSelObjResolved1b.sel, "bamboo_printEntry", op.extVar("ULong_t", "rdfentry_"), t.event) + #addPrintout(MuSelObjResolved1b.sel, "bamboo_printEntry", op.extVar("ULong_t", "rdfentry_"), t.event) if not self.args.OnlyYield: ChannelDictListR.append({'channel':'El','selObj':ElSelObjResolved1b,'sel':ElSelObjResolved1b.sel, @@ -192,18 +242,29 @@ def definePlots(self, t, noSel, sample=None, sampleCfg=None): ##plots.extend(makeHighLevelPlotsResolved(**{k:channelDict[k] for k in ResolvedKeys},HLL=self.HLL)) ''' - # ========================== JPA Boosted Categories ========================= # + # ========================== Boosted Categories ========================= # if any(item in boosted_args for item in jetsel_level): ChannelDictListB = [] FatJetKeys = ['channel','sel','jet1','jet2','jet3','jet4','has1fat1slim','has1fat2slim','suffix'] logger.info ("...... Processing Boosted Category : nAk8BJets >= 1, nAk4JetsCleanedFromAk8b >= 1") - ElSelObjBoosted = makeBoostedSelection(self,ElSelObj,copy_sel=True,plot_yield=True) - MuSelObjBoosted = makeBoostedSelection(self,MuSelObj,copy_sel=True,plot_yield=True) + ElSelObjBoosted = makeBoostedSelection(self,ElSelObj,copy_sel=True) + MuSelObjBoosted = makeBoostedSelection(self,MuSelObj,copy_sel=True) selObjectDictList.append({'channel':'El','selObject':ElSelObjBoosted,'category':'Boosted','VBFJets':self.VBFJetPairsBoosted}) selObjectDictList.append({'channel':'Mu','selObject':MuSelObjBoosted,'category':'Boosted','VBFJets':self.VBFJetPairsBoosted}) + ElSelObjBoosted.record_yields = True + MuSelObjBoosted.record_yields = True + ElSelObjBoosted.yieldTitle = 'Boosted Channel $e^{\pm}$' + MuSelObjBoosted.yieldTitle = 'Boosted Channel $\mu^{\pm}$' + if self.args.PrintYield: + self.yields.add(ElSelObjBoosted.sel) + self.yields.add(MuSelObjBoosted.sel) + + #addPrintout(ElSelObjBoosted.sel, "bamboo_printEntry", op.extVar("ULong_t", "rdfentry_"), t.event) + #addPrintout(MuSelObjBoosted.sel, "bamboo_printEntry", op.extVar("ULong_t", "rdfentry_"), t.event) + if not self.args.OnlyYield: ChannelDictListB.append({'channel':'El','selObj':ElSelObjBoosted, 'sel':ElSelObjBoosted.sel, 'lep':ElColl[0],'met':self.corrMET,'jets':self.ak4JetsCleanedFromAk8b, @@ -231,27 +292,6 @@ def definePlots(self, t, noSel, sample=None, sampleCfg=None): #plots.extend(makeMETPlots(**{k:channelDict[k] for k in commonItems}, met=self.corrMET)) # HighLevel # ##plots.extend(makeHighLevelPlotsBoosted(**{k:channelDict[k] for k in BoostedKeys}, HLL=self.HLL)) - - - inputsCommon = returnCommonInputs_Boosted(self) - inputsClassic = returnClassicInputs_Boosted(self, **{k:channelDict[k] for k in ClassicInputKeys}) - inputsLBN = returnLBNInputs_Boosted(self, **{k:channelDict[k] for k in LBNInputKeys}) - input_names = [key[0] for key in inputsClassic.keys()] + ['LBN_inputs','eventnr'] - inputs_array = [op.array("double",val) for val in inputStaticCast(inputsCommon,"float")] - inputs_array.append(op.array("double",*inputStaticCast(inputsClassic,"float"))) - inputs_array.append(op.array("double",*inputStaticCast(inputsLBN,"float"))) - inputs_array.append(op.array("long",*inputStaticCast(inputsEventNr,"long"))) - - DNN_SM = op.mvaEvaluator (path_model_boosted_SM, mvaType='Tensorflow',otherArgs=(input_names, output_name)) - DNN_BSM = op.mvaEvaluator(path_model_boosted_BSM, mvaType='Tensorflow',otherArgs=(input_names, output_name)) - DNN_Score_SM = DNN_SM (*inputs_array) - DNN_Score_BSM = DNN_BSM (*inputs_array) - - selObjNodesDict_SM = makeDNNOutputNodesSelections(self,channelDict['selObj'],DNN_Score_SM,suffix='_SM_') - selObjNodesDict_BSM = makeDNNOutputNodesSelections(self,channelDict['selObj'],DNN_Score_BSM,suffix='_BSM_') - logger.info('Filling DNN responses Boosted') - plots.extend(makeDoubleLeptonMachineLearningOutputPlots(selObjNodesDict_SM,DNN_Score_SM,self.nodes,channel=selObjectDNNDict['channel'])) - plots.extend(makeDoubleLeptonMachineLearningOutputPlots(selObjNodesDict_BSM,DNN_Score_BSM,self.nodes,channel=selObjectDNNDict['channel'])) ''' # ML @@ -263,7 +303,7 @@ def definePlots(self, t, noSel, sample=None, sampleCfg=None): lepton = leptonCont[channel] vbf = selObjectDict['VBFJets'] inputsLeps = mvaEvaluatorSL_nonres.returnLeptonsMVAInputs (self = self, lep = lepton) - inputsJets = mvaEvaluatorSL_nonres.returnJetsMVAInputs (self = self, jets = self.ak4Jets) + inputsJets = mvaEvaluatorSL_nonres.returnJetsMVAInputs (self = self, bjets = self.bJetsByScore, jets = self.probableWJets) inputsMET = mvaEvaluatorSL_nonres.returnMETMVAInputs (self = self, met = self.corrMET) inputsFatjet = mvaEvaluatorSL_nonres.returnFatjetMVAInputs (self = self, fatjets = self.ak8Jets) inputsHL = mvaEvaluatorSL_nonres.returnHighLevelMVAInputs (self = self, @@ -275,22 +315,22 @@ def definePlots(self, t, noSel, sample=None, sampleCfg=None): inputsParam = mvaEvaluatorSL_nonres.returnParamMVAInputs (self) inputsEventNr = mvaEvaluatorSL_nonres.returnEventNrMVAInputs (self,t) - print ("Lepton variables : %d"%len(inputsLeps)) - print ("Jet variables : %d"%len(inputsJets)) - print ("Fatjet variables : %d"%len(inputsFatjet)) - print ("MET variables : %d"%len(inputsMET)) - print ("HL variables : %d"%len(inputsHL)) - print ("Param variables : %d"%len(inputsParam)) - print ("Event variables : %d"%len(inputsEventNr)) - - #plots.extend(makeSingleLeptonMachineLearningInputPlots(selObjectDict['selObject'].sel,selObjectDict['selObject'].selName,selObjectDict['channel'],inputsLeps)) - #plots.extend(makeSingleLeptonMachineLearningInputPlots(selObjectDict['selObject'].sel,selObjectDict['selObject'].selName,selObjectDict['channel'],inputsJets)) - #plots.extend(makeSingleLeptonMachineLearningInputPlots(selObjectDict['selObject'].sel,selObjectDict['selObject'].selName,selObjectDict['channel'],inputsFatjet)) - #plots.extend(makeSingleLeptonMachineLearningInputPlots(selObjectDict['selObject'].sel,selObjectDict['selObject'].selName,selObjectDict['channel'],inputsMET)) - #plots.extend(makeSingleLeptonMachineLearningInputPlots(selObjectDict['selObject'].sel,selObjectDict['selObject'].selName,selObjectDict['channel'],inputsHL)) - #plots.extend(makeDoubleLeptonMachineLearningInputPlots(selObjectDict['selObject'].sel,selObjectDict['selObject'].selName,selObjectDict['channel'],inputsParam)) - #plots.extend(makeDoubleLeptonMachineLearningInputPlots(selObjectDict['selObject'].sel,selObjectDict['selObject'].selName,selObjectDict['channel'],inputsEventNr)) + print ("Lepton variables : %d"%len(inputsLeps)) + print ("Jet variables : %d"%len(inputsJets)) + print ("Fatjet variables : %d"%len(inputsFatjet)) + print ("MET variables : %d"%len(inputsMET)) + print ("HL variables : %d"%len(inputsHL)) + print ("Param variables : %d"%len(inputsParam)) + print ("Event variables : %d"%len(inputsEventNr)) + plots.extend(makeSingleLeptonMachineLearningInputPlots(selObjectDict['selObject'].sel,selObjectDict['selObject'].selName,selObjectDict['channel'],inputsLeps)) + plots.extend(makeSingleLeptonMachineLearningInputPlots(selObjectDict['selObject'].sel,selObjectDict['selObject'].selName,selObjectDict['channel'],inputsJets)) + plots.extend(makeSingleLeptonMachineLearningInputPlots(selObjectDict['selObject'].sel,selObjectDict['selObject'].selName,selObjectDict['channel'],inputsFatjet)) + plots.extend(makeSingleLeptonMachineLearningInputPlots(selObjectDict['selObject'].sel,selObjectDict['selObject'].selName,selObjectDict['channel'],inputsMET)) + plots.extend(makeSingleLeptonMachineLearningInputPlots(selObjectDict['selObject'].sel,selObjectDict['selObject'].selName,selObjectDict['channel'],inputsHL)) + plots.extend(makeDoubleLeptonMachineLearningInputPlots(selObjectDict['selObject'].sel,selObjectDict['selObject'].selName,selObjectDict['channel'],inputsParam)) + plots.extend(makeDoubleLeptonMachineLearningInputPlots(selObjectDict['selObject'].sel,selObjectDict['selObject'].selName,selObjectDict['channel'],inputsEventNr)) + from mvaEvaluatorSL_nonres import inputStaticCast inputs = [op.array("double",*inputStaticCast(inputsLeps,"float")), @@ -312,12 +352,11 @@ def definePlots(self, t, noSel, sample=None, sampleCfg=None): if self.args.PrintYield: for selNode in selObjNodesDict.values(): self.yields.add(selNode.sel) - - #----- Add the Yield plots -----# if self.args.PrintYield or self.args.OnlyYield: plots.append(self.yields) + #plots.append(yields) return plots diff --git a/Yaml/analysis2016_v7_bkg.yml b/Yaml/analysis2016_v7_bkg.yml index 00031193..00aaa8ea 100644 --- a/Yaml/analysis2016_v7_bkg.yml +++ b/Yaml/analysis2016_v7_bkg.yml @@ -22,7 +22,7 @@ DYToLL_0J: cross-section: 4843.6 #pb group: DY era: '2016' - split: 20 + split: 30 DYToLL_1J: db: ["das:/DYToLL_1J_13TeV-amcatnloFXFX-pythia8/RunIISummer16NanoAODv7-PUMoriond17_Nano02Apr2020_102X_mcRun2_asymptotic_v8_ext1-v1/NANOAODSIM","das:/DYToLL_1J_13TeV-amcatnloFXFX-pythia8/RunIISummer16NanoAODv7-PUMoriond17_Nano02Apr2020_backup_102X_mcRun2_asymptotic_v8-v1/NANOAODSIM"] generated-events: 'genEventSumw' @@ -82,14 +82,14 @@ ST_tchannel_antitop_4f: cross-section: 80.95 group: ST era: '2016' - split: 15 + split: 20 ST_tchannel_top_4f: db: das:/ST_t-channel_top_4f_inclusiveDecays_13TeV-powhegV2-madspin-pythia8_TuneCUETP8M1/RunIISummer16NanoAODv7-PUMoriond17_Nano02Apr2020_102X_mcRun2_asymptotic_v8-v2/NANOAODSIM generated-events: 'genEventSumw' cross-section: 136.02 group: ST era: '2016' - split: 15 + split: 30 ST_schannel_4f: db: ["das:/ST_s-channel_4f_leptonDecays_13TeV-amcatnlo-pythia8_TuneCUETP8M1/RunIISummer16NanoAODv7-PUMoriond17_Nano02Apr2020_102X_mcRun2_asymptotic_v8-v1/NANOAODSIM","das:/ST_s-channel_4f_leptonDecays_13TeV_PSweights-amcatnlo-pythia8/RunIISummer16NanoAODv7-PUMoriond17_Nano02Apr2020_102X_mcRun2_asymptotic_v8-v1/NANOAODSIM"] generated-events: 'genEventSumw' @@ -147,7 +147,7 @@ GluGluHToBB: cross-section: 28.293 group: SM era: '2016' - split: 3 + split: 5 GluGluHToGG: db: das:/GluGluHToGG_M125_13TeV_amcatnloFXFX_pythia8/RunIISummer16NanoAODv7-PUMoriond17_Nano02Apr2020_102X_mcRun2_asymptotic_v8_ext2-v1/NANOAODSIM generated-events: 'genEventSumw' @@ -245,7 +245,7 @@ ZH_HToBB_ZToLL: cross-section: 0.05198 group: SM era: '2016' - split: 1 + split: 5 ZHToTauTau: db: das:/ZHToTauTau_M125_13TeV_powheg_pythia8/RunIISummer16NanoAODv7-PUMoriond17_Nano02Apr2020_102X_mcRun2_asymptotic_v8-v1/NANOAODSIM generated-events: 'genEventSumw' @@ -282,14 +282,14 @@ ZZTo2L2Q: cross-section: 5.52 group: VVV era: '2016' - split: 10 + split: 20 ZZTo4L: db: das:/ZZTo4L_13TeV_powheg_pythia8/RunIISummer16NanoAODv7-PUMoriond17_Nano02Apr2020_102X_mcRun2_asymptotic_v8-v1/NANOAODSIM generated-events: 'genEventSumw' cross-section: 1.256 group: VVV era: '2016' - split: 40 + split: 50 WWTo2L2Nu: db: das:/WWTo2L2Nu_13TeV-powheg/RunIISummer16NanoAODv7-PUMoriond17_Nano02Apr2020_102X_mcRun2_asymptotic_v8-v1/NANOAODSIM generated-events: 'genEventSumw' @@ -310,7 +310,7 @@ WZTo3LNu: cross-section: 4.43 group: VVV era: '2016' - split: 5 + split: 10 WZTo2L2Q: db: das:/WZTo2L2Q_13TeV_amcatnloFXFX_madspin_pythia8/RunIISummer16NanoAODv7-PUMoriond17_Nano02Apr2020_102X_mcRun2_asymptotic_v8-v1/NANOAODSIM generated-events: 'genEventSumw' @@ -526,7 +526,7 @@ WGToLNuG: cross-section: 191.6 group: Rares era: '2016' - split: 3 + split: 5 TGJets: db: das:/TGJets_leptonDecays_13TeV_amcatnlo_madspin_pythia8/RunIISummer16NanoAODv7-PUMoriond17_Nano02Apr2020_102X_mcRun2_asymptotic_v8-v1/NANOAODSIM generated-events: 'genEventSumw' diff --git a/Yaml/analysis2017_v7_bkg.yml b/Yaml/analysis2017_v7_bkg.yml index 2db8cf74..d84f4bce 100644 --- a/Yaml/analysis2017_v7_bkg.yml +++ b/Yaml/analysis2017_v7_bkg.yml @@ -26,7 +26,7 @@ DYToLL_0J: era: '2017' generated-events: 'genEventSumw' group: DY - split: 20 + split: 30 DYToLL_1J: cross-section: 897.8 db: das:/DYJetsToLL_1J_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIIFall17NanoAODv7-PU2017_12Apr2018_Nano02Apr2020_102X_mc2017_realistic_v8-v1/NANOAODSIM @@ -86,14 +86,14 @@ ST_tchannel_antitop_4f: era: '2017' generated-events: 'genEventSumw' group: ST - split: 15 + split: 20 ST_tchannel_top_4f: cross-section: 136.02 db: das:/ST_t-channel_top_4f_inclusiveDecays_TuneCP5_13TeV-powhegV2-madspin-pythia8/RunIIFall17NanoAODv7-PU2017_12Apr2018_Nano02Apr2020_new_pmx_102X_mc2017_realistic_v8-v1/NANOAODSIM era: '2017' generated-events: 'genEventSumw' group: ST - split: 15 + split: 30 ST_schannel_4f: cross-section: 3.364 db: das:/ST_s-channel_4f_leptonDecays_TuneCP5_13TeV-amcatnlo-pythia8/RunIIFall17NanoAODv7-PU2017_12Apr2018_Nano02Apr2020_102X_mc2017_realistic_v8-v1/NANOAODSIM @@ -164,7 +164,7 @@ GluGluHToBB: era: '2017' generated-events: 'genEventSumw' group: SM - split: 3 + split: 5 GluGluHToGG: cross-section: 0.11028 db: das:/GluGluHToGG_M125_13TeV_amcatnloFXFX_pythia8/RunIIFall17NanoAODv7-PU2017_12Apr2018_Nano02Apr2020_EXT_102X_mc2017_realistic_v8-v1/NANOAODSIM @@ -266,7 +266,7 @@ ZH_HToBB_ZToLL: era: '2017' generated-events: 'genEventSumw' group: SM - split: 1 + split: 5 ZHToTauTau: cross-section: 0.05544 db: das:/ZHToTauTau_M125_13TeV_powheg_pythia8/RunIIFall17NanoAODv7-PU2017_12Apr2018_Nano02Apr2020_102X_mc2017_realistic_v8-v1/NANOAODSIM @@ -303,7 +303,7 @@ ZZTo2L2Q: era: '2017' generated-events: 'genEventSumw' group: VVV - split: 10 + split: 20 ZZTo4L: cross-section: 1.256 db: @@ -313,7 +313,7 @@ ZZTo4L: era: '2017' generated-events: 'genEventSumw' group: VVV - split: 40 + split: 50 WWTo2L2Nu: cross-section: 12.2 db: das:/WWTo2L2Nu_NNPDF31_TuneCP5_13TeV-powheg-pythia8/RunIIFall17NanoAODv7-PU2017_12Apr2018_Nano02Apr2020_102X_mc2017_realistic_v8-v1/NANOAODSIM @@ -334,7 +334,7 @@ WZTo3LNu: era: '2017' generated-events: 'genEventSumw' group: VVV - split: 5 + split: 10 WWToLNuQQ: cross-section: 50.45 db: @@ -552,7 +552,7 @@ WGToLNuG: era: '2017' generated-events: 'genEventSumw' group: Rares - split: 3 + split: 5 TGJets: cross-section: 1.018 db: das:/TGJets_leptonDecays_TuneCP5_PSweights_13TeV-amcatnlo-pythia8/RunIIFall17NanoAODv7-PU2017_12Apr2018_Nano02Apr2020_102X_mc2017_realistic_v8-v1/NANOAODSIM diff --git a/Yaml/analysis2018_v7_bkg.yml b/Yaml/analysis2018_v7_bkg.yml index eebda9e9..39f35c83 100644 --- a/Yaml/analysis2018_v7_bkg.yml +++ b/Yaml/analysis2018_v7_bkg.yml @@ -24,7 +24,7 @@ DYToLL_0J: era: '2018' generated-events: 'genEventSumw' group: DY - split: 20 + split: 30 DYToLL_1J: cross-section: 897.8 db: das:/DYJetsToLL_1J_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIIAutumn18NanoAODv7-Nano02Apr2020_102X_upgrade2018_realistic_v21-v1/NANOAODSIM @@ -84,14 +84,14 @@ ST_tchannel_antitop_4f: era: '2018' generated-events: 'genEventSumw' group: ST - split: 15 + split: 20 ST_tchannel_top_4f: cross-section: 136.02 db: das:/ST_t-channel_top_4f_InclusiveDecays_TuneCP5_13TeV-powheg-madspin-pythia8/RunIIAutumn18NanoAODv7-Nano02Apr2020_102X_upgrade2018_realistic_v21-v1/NANOAODSIM era: '2018' generated-events: 'genEventSumw' group: ST - split: 15 + split: 30 ST_schannel_4f: cross-section: 3.364 db: das:/ST_s-channel_4f_leptonDecays_TuneCP5_13TeV-madgraph-pythia8/RunIIAutumn18NanoAODv7-Nano02Apr2020_102X_upgrade2018_realistic_v21_ext2-v1/NANOAODSIM @@ -158,7 +158,7 @@ GluGluHToBB: era: '2018' generated-events: 'genEventSumw' group: SM - split: 3 + split: 5 GluGluHToGG: cross-section: 0.11028 db: das:/GluGluHToGG_M125_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIIAutumn18NanoAODv7-Nano02Apr2020_102X_upgrade2018_realistic_v21-v1/NANOAODSIM @@ -299,7 +299,7 @@ ZZTo2L2Q: era: '2018' generated-events: 'genEventSumw' group: VVV - split: 10 + split: 20 ZZTo4L: cross-section: 1.256 db: @@ -308,7 +308,7 @@ ZZTo4L: era: '2018' generated-events: 'genEventSumw' group: VVV - split: 40 + split: 50 WWTo2L2Nu: cross-section: 12.2 db: das:/WWTo2L2Nu_NNPDF31_TuneCP5_13TeV-powheg-pythia8/RunIIAutumn18NanoAODv7-Nano02Apr2020_102X_upgrade2018_realistic_v21-v1/NANOAODSIM @@ -331,7 +331,7 @@ WZTo3LNu: era: '2018' generated-events: 'genEventSumw' group: VVV - split: 5 + split: 10 WZTo2L2Q: cross-section: 5.6 db: das:/WZTo2L2Q_13TeV_amcatnloFXFX_madspin_pythia8/RunIIAutumn18NanoAODv7-Nano02Apr2020_102X_upgrade2018_realistic_v21-v1/NANOAODSIM @@ -544,14 +544,14 @@ TTZH: group: ttVX split: 5 -##### Rares +##### Rares/ WGToLNuG: cross-section: 191.6 db: das:/WGToLNuG_01J_5f_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIIAutumn18NanoAODv7-Nano02Apr2020_102X_upgrade2018_realistic_v21_ext1-v1/NANOAODSIM era: '2018' generated-events: 'genEventSumw' group: Rares - split: 3 + split: 5 TGJets: cross-section: 1.018 db: das:/TGJets_leptonDecays_TuneCP5_13TeV-madgraph-pythia8/RunIIAutumn18NanoAODv7-Nano02Apr2020_102X_upgrade2018_realistic_v21_ext1-v1/NANOAODSIM diff --git a/mvaEvaluatorSL_nonres.py b/mvaEvaluatorSL_nonres.py index 88a7b112..4419231f 100644 --- a/mvaEvaluatorSL_nonres.py +++ b/mvaEvaluatorSL_nonres.py @@ -1,76 +1,45 @@ from bamboo import treefunctions as op from highlevelLambdas import highlevelLambdas -# ----------------------------------------- VBF ---------------------------------------- # -''' -def VBFJetPairs_Resolved(self,bjets, wjets): - lambda_isNotClean = lambda j, xjets : op.rng_any(xjets, lambda xj : op.deltaR(xj.p4, j.p4) < 0.8) - lambda_vbfTag = lambda j : op.NOT(op.OR(lambda_isNotClean(j, bjets), lambda_isNotClean(j, wjets))) - cleanVbfJetPairs = op.combine(op.select(self.VBFJets, lambda_vbfTag), N=2, pred=self.lambda_VBFPair) - return op.sort(cleanVbfJetPairs, lambda dijet : -op.invariant_mass(dijet[0].p4,dijet[1].p4)) - -def VBFJetPairs_Boosted(self,fatJet, wjets): - lambda_isNotClean = lambda j, xjets : op.rng_any(xjets, lambda xj : op.deltaR(xj.p4, j.p4) < 0.8) - lambda_vbfTag = lambda j : op.NOT(op.OR(lambda_isNotClean(j, wjets), op.deltaR(j.p4, fatJet.p4) < 1.2)) - cleanVbfJetPairs = op.combine(op.select(self.VBFJets, lambda_vbfTag), N=2, pred=self.lambda_VBFPair) - return op.sort(cleanVbfJetPairs, lambda dijet : -op.invariant_mass(dijet[0].p4,dijet[1].p4)) - -def VBFJetPairs_Resolved(self): - #lambda_isNotCleanedAgainstWjets = lambda j : op.switch(op.rng_len(self.probableWJets) == 1, op.deltaR(self.probableWJets[0].p4, j.p4) < 0.8, - # op.rng_any(self.wJetsPairs, lambda xp : op.OR(op.deltaR(xp[0].p4, j.p4) < 0.8, op.deltaR(xp[1].p4, j.p4) < 0.8))) - lambda_isOverlappedWithWjets = lambda j : op.rng_any(self.wJetsPairs, lambda wjp : op.OR(op.deltaR(wjp[0].p4, j.p4) < 0.8, op.deltaR(wjp[1].p4, j.p4) < 0.8)) - lambda_isOverlappedWithBjets = lambda j : op.rng_any(self.bJetsByScore, lambda bj : op.deltaR(bj.p4, j.p4) < 0.8) - lambda_vbfTag = lambda j : op.NOT(op.OR(lambda_isOverlappedWithBjets(j), lambda_isOverlappedWithWjets(j))) - cleanVbfJetPairs = op.combine(op.select(self.VBFJets, lambda_vbfTag), N=2, pred=self.lambda_VBFPair) - return op.sort(cleanVbfJetPairs, lambda dijet : -op.invariant_mass(dijet[0].p4,dijet[1].p4)) - -def VBFJetPairs_Boosted(self): - #lambda_isNotClean = lambda j : op.rng_any(self.ak4JetsCleanedFromAk8b, lambda xj : op.deltaR(xj.p4, j.p4) < 0.8) - #lambda_vbfTag = lambda j : op.switch(op.rng_len(self.ak4JetsCleanedFromAk8b) > 0, op.NOT(op.OR(lambda_isNotClean(j), op.deltaR(j.p4, self.ak8BJets[0].p4) < 1.2)), - # op.NOT(op.deltaR(j.p4, self.ak8BJets[0].p4) < 1.2)) - lambda_vbfTag = lambda j : op.NOT(op.deltaR(j.p4, self.ak8BJets[0].p4) < 1.2) - cleanVbfJetPairs = op.combine(op.select(self.VBFJets, lambda_vbfTag), N=2, pred=self.lambda_VBFPair) - return op.sort(cleanVbfJetPairs, lambda dijet : -op.invariant_mass(dijet[0].p4,dijet[1].p4)) -''' def returnLeptonsMVAInputs(self,lep): return {('lep_E', 'Lead lepton E [GeV]', (50,0.,500.)) : lep.p4.E(), ('lep_Px', 'Lead lepton P_x [GeV]', (40,-200.,200.)) : lep.p4.Px(), ('lep_Py', 'Lead lepton P_y [GeV]', (40,-200.,200.)) : lep.p4.Py(), ('lep_Pz', 'Lead lepton P_z [GeV]', (40,-200.,200.)) : lep.p4.Pz(), - ('lep_charge', 'Lead lepton charge', (2,0.,2.) ) : lep.charge, - ('lep_pdgId', 'Lead lepton pdg ID', (45,-22.,22.) ) : lep.pdgId} + ('lep_pdgId', 'Lead lepton pdg ID', (45,-22.,22.) ) : lep.pdgId, + ('lep_charge', 'Lead lepton charge', (2,0.,2.) ) : lep.charge} -def returnJetsMVAInputs(self,jets): - return {('j1_E', 'Lead jet E [GeV]', (50,0.,500.)) : op.switch(op.rng_len(jets)>0,jets[0].p4.E(),op.c_float(0.)), - ('j1_Px', 'Lead jet P_x [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>0,jets[0].p4.Px(),op.c_float(0.)), - ('j1_Py', 'Lead jet P_y [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>0,jets[0].p4.Py(),op.c_float(0.)), - ('j1_Pz', 'Lead jet P_z [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>0,jets[0].p4.Pz(),op.c_float(0.)), - ('j1_btag', 'Lead jet btag score', (50,0.,1.) ) : op.switch(op.rng_len(jets)>0,jets[0].btagDeepFlavB,op.c_float(0.)), - ('j2_E', 'Sublead jet E [GeV]', (50,0.,500.)) : op.switch(op.rng_len(jets)>1,jets[1].p4.E(),op.c_float(0.)), - ('j2_Px', 'Sublead jet P_x [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>1,jets[1].p4.Px(),op.c_float(0.)), - ('j2_Py', 'Sublead jet P_y [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>1,jets[1].p4.Py(),op.c_float(0.)), - ('j2_Pz', 'Sublead jet P_z [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>1,jets[1].p4.Pz(),op.c_float(0.)), - ('j2_btag', 'Sublead jet btag score', (50,0.,1.) ) : op.switch(op.rng_len(jets)>1,jets[1].btagDeepFlavB,op.c_float(0.)), - ('j3_E', 'Subsublead jet E [GeV]', (50,0.,500.)) : op.switch(op.rng_len(jets)>2,jets[2].p4.E(),op.c_float(0.)), - ('j3_Px', 'Subsublead jet P_x [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>2,jets[2].p4.Px(),op.c_float(0.)), - ('j3_Py', 'Subsublead jet P_y [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>2,jets[2].p4.Py(),op.c_float(0.)), - ('j3_Pz', 'Subsublead jet P_z [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>2,jets[2].p4.Pz(),op.c_float(0.)), - ('j3_btag', 'Subsublead jet btag score', (50,0.,1.) ) : op.switch(op.rng_len(jets)>2,jets[2].btagDeepFlavB,op.c_float(0.)), - ('j4_E', 'Subsubsublead jet E [GeV]', (50,0.,500.)) : op.switch(op.rng_len(jets)>3,jets[3].p4.E(),op.c_float(0.)), - ('j4_Px', 'Subsubsublead jet P_x [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>3,jets[3].p4.Px(),op.c_float(0.)), - ('j4_Py', 'Subsubsublead jet P_y [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>3,jets[3].p4.Py(),op.c_float(0.)), - ('j4_Pz', 'Subsubsublead jet P_z [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>3,jets[3].p4.Pz(),op.c_float(0.)), - ('j4_btag', 'Subsubsublead jet btag score', (50,0.,1.) ) : op.switch(op.rng_len(jets)>3,jets[3].btagDeepFlavB,op.c_float(0.)), - ('j5_E', 'Subsublead jet E [GeV]', (50,0.,500.)) : op.switch(op.rng_len(jets)>4,jets[4].p4.E(),op.c_float(0.)), - ('j5_Px', 'Subsublead jet P_x [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>4,jets[4].p4.Px(),op.c_float(0.)), - ('j5_Py', 'Subsublead jet P_y [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>4,jets[4].p4.Py(),op.c_float(0.)), - ('j5_Pz', 'Subsublead jet P_z [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>4,jets[4].p4.Pz(),op.c_float(0.)), - ('j5_btag', 'Subsublead jet btag score', (50,0.,1.) ) : op.switch(op.rng_len(jets)>4,jets[4].btagDeepFlavB,op.c_float(0.)), - ('j6_E', 'Subsublead jet E [GeV]', (50,0.,500.)) : op.switch(op.rng_len(jets)>5,jets[5].p4.E(),op.c_float(0.)), - ('j6_Px', 'Subsublead jet P_x [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>5,jets[5].p4.Px(),op.c_float(0.)), - ('j6_Py', 'Subsublead jet P_y [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>5,jets[5].p4.Py(),op.c_float(0.)), - ('j6_Pz', 'Subsublead jet P_z [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>5,jets[5].p4.Pz(),op.c_float(0.)), - ('j6_btag', 'Subsublead jet btag score', (50,0.,1.) ) : op.switch(op.rng_len(jets)>5,jets[5].btagDeepFlavB,op.c_float(0.))} +def returnJetsMVAInputs(self, bjets, jets): + return {('j1_E', 'Lead jet E [GeV]', (50,0.,500.)) : op.switch(op.rng_len(bjets)>0,bjets[0].p4.E(),op.c_float(0.)), + ('j1_Px', 'Lead jet P_x [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(bjets)>0,bjets[0].p4.Px(),op.c_float(0.)), + ('j1_Py', 'Lead jet P_y [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(bjets)>0,bjets[0].p4.Py(),op.c_float(0.)), + ('j1_Pz', 'Lead jet P_z [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(bjets)>0,bjets[0].p4.Pz(),op.c_float(0.)), + ('j1_btag', 'Lead jet btag score', (50,0.,1.) ) : op.switch(op.rng_len(bjets)>0,bjets[0].btagDeepFlavB,op.c_float(0.)), + ('j2_E', 'Sublead jet E [GeV]', (50,0.,500.)) : op.switch(op.rng_len(bjets)>1,bjets[1].p4.E(),op.c_float(0.)), + ('j2_Px', 'Sublead jet P_x [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(bjets)>1,bjets[1].p4.Px(),op.c_float(0.)), + ('j2_Py', 'Sublead jet P_y [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(bjets)>1,bjets[1].p4.Py(),op.c_float(0.)), + ('j2_Pz', 'Sublead jet P_z [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(bjets)>1,bjets[1].p4.Pz(),op.c_float(0.)), + ('j2_btag', 'Sublead jet btag score', (50,0.,1.) ) : op.switch(op.rng_len(bjets)>1,bjets[1].btagDeepFlavB,op.c_float(0.)), + ('j3_E', 'Subsublead jet E [GeV]', (50,0.,500.)) : op.switch(op.rng_len(jets)>0,jets[0].p4.E(),op.c_float(0.)), + ('j3_Px', 'Subsublead jet P_x [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>0,jets[0].p4.Px(),op.c_float(0.)), + ('j3_Py', 'Subsublead jet P_y [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>0,jets[0].p4.Py(),op.c_float(0.)), + ('j3_Pz', 'Subsublead jet P_z [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>0,jets[0].p4.Pz(),op.c_float(0.)), + ('j3_btag', 'Subsublead jet btag score', (50,0.,1.) ) : op.switch(op.rng_len(jets)>0,jets[0].btagDeepFlavB,op.c_float(0.)), + ('j4_E', 'Subsubsublead jet E [GeV]', (50,0.,500.)) : op.switch(op.rng_len(jets)>1,jets[1].p4.E(),op.c_float(0.)), + ('j4_Px', 'Subsubsublead jet P_x [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>1,jets[1].p4.Px(),op.c_float(0.)), + ('j4_Py', 'Subsubsublead jet P_y [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>1,jets[1].p4.Py(),op.c_float(0.)), + ('j4_Pz', 'Subsubsublead jet P_z [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>1,jets[1].p4.Pz(),op.c_float(0.)), + ('j4_btag', 'Subsubsublead jet btag score', (50,0.,1.) ) : op.switch(op.rng_len(jets)>1,jets[1].btagDeepFlavB,op.c_float(0.)), + ('j5_E', 'Subsublead jet E [GeV]', (50,0.,500.)) : op.switch(op.rng_len(jets)>2,jets[2].p4.E(),op.c_float(0.)), + ('j5_Px', 'Subsublead jet P_x [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>2,jets[2].p4.Px(),op.c_float(0.)), + ('j5_Py', 'Subsublead jet P_y [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>2,jets[2].p4.Py(),op.c_float(0.)), + ('j5_Pz', 'Subsublead jet P_z [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>2,jets[2].p4.Pz(),op.c_float(0.)), + ('j5_btag', 'Subsublead jet btag score', (50,0.,1.) ) : op.switch(op.rng_len(jets)>2,jets[2].btagDeepFlavB,op.c_float(0.)), + ('j6_E', 'Subsublead jet E [GeV]', (50,0.,500.)) : op.switch(op.rng_len(jets)>3,jets[3].p4.E(),op.c_float(0.)), + ('j6_Px', 'Subsublead jet P_x [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>3,jets[3].p4.Px(),op.c_float(0.)), + ('j6_Py', 'Subsublead jet P_y [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>3,jets[3].p4.Py(),op.c_float(0.)), + ('j6_Pz', 'Subsublead jet P_z [GeV]', (40,-200.,200.)) : op.switch(op.rng_len(jets)>3,jets[3].p4.Pz(),op.c_float(0.)), + ('j6_btag', 'Subsublead jet btag score', (50,0.,1.) ) : op.switch(op.rng_len(jets)>3,jets[3].btagDeepFlavB,op.c_float(0.))} # this is the leading fat bJet or normal fat jet? def returnFatjetMVAInputs(self,fatjets): diff --git a/selectionDef.py b/selectionDef.py index 2a02bc7b..d8059810 100644 --- a/selectionDef.py +++ b/selectionDef.py @@ -69,8 +69,10 @@ def makeSingleLeptonSelection(self,baseSel,plot_yield=False,use_dd=True,fake_sel """ #--- Lambdas ---# # Fakeable lambdas # - lambdaElPtCut = lambda lepColl: lepColl[0].pt > 32 - lambdaMuPtCut = lambda lepColl: lepColl[0].pt > 25 + #lambdaElPtCut = lambda lepColl: lepColl[0].pt > 32 + #lambdaMuPtCut = lambda lepColl: lepColl[0].pt > 25 + lambdaElPtCut = lambda lepColl: self.electron_conept[lepColl[0].idx] > 32.0 + lambdaMuPtCut = lambda lepColl: self.muon_conept[lepColl[0].idx] > 25.0 # Tight # lambda_tight_ele = lambda ele : op.AND(self.lambda_is_matched(ele) , self.lambda_electronTightSel(ele)) @@ -228,9 +230,9 @@ def makeSingleLeptonSelection(self,baseSel,plot_yield=False,use_dd=True,fake_sel elif fake_selection: # Only return the datadriven CR selection (eg, skimmer or non closure) # ElSelObject.refine(cut = [lambda_fake_ele(self.electronsFakeSel[0]), op.rng_len(self.electronsTightSel)+op.rng_len(self.muonsTightSel)<=1], - weight = lambda_FF_ele(self.electronsFakeSel[0])+ElTightSF(self.electronsFakeSel[0])) + weight = lambda_FF_ele(self.electronsFakeSel[0])) MuSelObject.refine(cut = [lambda_fake_mu(self.muonsFakeSel[0]), op.rng_len(self.electronsTightSel)+op.rng_len(self.muonsTightSel)<=1], - weight = lambda_FF_mu(self.muonsFakeSel[0])+MuTightSF(self.muonsFakeSel[0])) + weight = lambda_FF_mu(self.muonsFakeSel[0])) # -> in SR : lead lepton is self.electronsTightSel[0] or self.muonsTightSel[0] # -> in Fake CR : lead lepton is self.electronsFakeSel[0] or self.muonsFakeSel[0] else: