From 7fed038ba2be22d5e75280758435d0242f6aa8ad Mon Sep 17 00:00:00 2001 From: Rostyslav Shevchenko Date: Sun, 26 Jun 2016 18:36:05 +0200 Subject: [PATCH 1/2] JERs in NTuplizer --- Analysis/Ntuplizer/.DS_Store | Bin 0 -> 8196 bytes Analysis/Ntuplizer/._.DS_Store | Bin 0 -> 4096 bytes Analysis/Ntuplizer/BuildFile.xml | 2 + ...Fall15_25nsV2_DATA_PhiResolution_AK4PF.txt | Bin 0 -> 4096 bytes ...5_25nsV2_DATA_PhiResolution_AK4PFPuppi.txt | Bin 0 -> 4096 bytes ...l15_25nsV2_DATA_PhiResolution_AK4PFchs.txt | Bin 0 -> 4096 bytes ...Fall15_25nsV2_DATA_PhiResolution_AK8PF.txt | Bin 0 -> 4096 bytes ...5_25nsV2_DATA_PhiResolution_AK8PFPuppi.txt | Bin 0 -> 4096 bytes ...l15_25nsV2_DATA_PhiResolution_AK8PFchs.txt | Bin 0 -> 4096 bytes ..._Fall15_25nsV2_DATA_PtResolution_AK4PF.txt | Bin 0 -> 4096 bytes ...15_25nsV2_DATA_PtResolution_AK4PFPuppi.txt | Bin 0 -> 4096 bytes ...ll15_25nsV2_DATA_PtResolution_AK4PFchs.txt | Bin 0 -> 4096 bytes ..._Fall15_25nsV2_DATA_PtResolution_AK8PF.txt | Bin 0 -> 4096 bytes ...15_25nsV2_DATA_PtResolution_AK8PFPuppi.txt | Bin 0 -> 4096 bytes ...ll15_25nsV2_DATA_PtResolution_AK8PFchs.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_DATA_SF_AK4PF.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_DATA_SF_AK4PFPuppi.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_DATA_SF_AK4PFchs.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_DATA_SF_AK8PF.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_DATA_SF_AK8PFPuppi.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_DATA_SF_AK8PFchs.txt | Bin 0 -> 4096 bytes ...._Fall15_25nsV2_MC_PhiResolution_AK4PF.txt | Bin 0 -> 4096 bytes ...l15_25nsV2_MC_PhiResolution_AK4PFPuppi.txt | Bin 0 -> 4096 bytes ...all15_25nsV2_MC_PhiResolution_AK4PFchs.txt | Bin 0 -> 4096 bytes ...._Fall15_25nsV2_MC_PhiResolution_AK8PF.txt | Bin 0 -> 4096 bytes ...l15_25nsV2_MC_PhiResolution_AK8PFPuppi.txt | Bin 0 -> 4096 bytes ...all15_25nsV2_MC_PhiResolution_AK8PFchs.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_MC_PtResolution_AK4PF.txt | Bin 0 -> 4096 bytes ...ll15_25nsV2_MC_PtResolution_AK4PFPuppi.txt | Bin 0 -> 4096 bytes ...Fall15_25nsV2_MC_PtResolution_AK4PFchs.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_MC_PtResolution_AK8PF.txt | Bin 0 -> 4096 bytes ...ll15_25nsV2_MC_PtResolution_AK8PFPuppi.txt | Bin 0 -> 4096 bytes ...Fall15_25nsV2_MC_PtResolution_AK8PFchs.txt | Bin 0 -> 4096 bytes .../jer_files/._Fall15_25nsV2_MC_SF_AK4PF.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_MC_SF_AK4PFPuppi.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_MC_SF_AK4PFchs.txt | Bin 0 -> 4096 bytes .../jer_files/._Fall15_25nsV2_MC_SF_AK8PF.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_MC_SF_AK8PFPuppi.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_MC_SF_AK8PFchs.txt | Bin 0 -> 4096 bytes .../data/jer_files/Fall15_25nsV2_DATA.db | Bin 0 -> 68608 bytes ...Fall15_25nsV2_DATA_PhiResolution_AK4PF.txt | 105 ++++++ ...5_25nsV2_DATA_PhiResolution_AK4PFPuppi.txt | 105 ++++++ ...l15_25nsV2_DATA_PhiResolution_AK4PFchs.txt | 105 ++++++ ...Fall15_25nsV2_DATA_PhiResolution_AK8PF.txt | 105 ++++++ ...5_25nsV2_DATA_PhiResolution_AK8PFPuppi.txt | 105 ++++++ ...l15_25nsV2_DATA_PhiResolution_AK8PFchs.txt | 105 ++++++ .../Fall15_25nsV2_DATA_PtResolution_AK4PF.txt | 105 ++++++ ...15_25nsV2_DATA_PtResolution_AK4PFPuppi.txt | 105 ++++++ ...ll15_25nsV2_DATA_PtResolution_AK4PFchs.txt | 105 ++++++ .../Fall15_25nsV2_DATA_PtResolution_AK8PF.txt | 105 ++++++ ...15_25nsV2_DATA_PtResolution_AK8PFPuppi.txt | 105 ++++++ ...ll15_25nsV2_DATA_PtResolution_AK8PFchs.txt | 105 ++++++ .../jer_files/Fall15_25nsV2_DATA_SF_AK4PF.txt | 2 + .../Fall15_25nsV2_DATA_SF_AK4PFPuppi.txt | 2 + .../Fall15_25nsV2_DATA_SF_AK4PFchs.txt | 2 + .../jer_files/Fall15_25nsV2_DATA_SF_AK8PF.txt | 2 + .../Fall15_25nsV2_DATA_SF_AK8PFPuppi.txt | 2 + .../Fall15_25nsV2_DATA_SF_AK8PFchs.txt | 2 + .../data/jer_files/Fall15_25nsV2_MC.db | Bin 0 -> 69632 bytes .../Fall15_25nsV2_MC_PhiResolution_AK4PF.txt | 105 ++++++ ...l15_25nsV2_MC_PhiResolution_AK4PFPuppi.txt | 105 ++++++ ...all15_25nsV2_MC_PhiResolution_AK4PFchs.txt | 105 ++++++ .../Fall15_25nsV2_MC_PhiResolution_AK8PF.txt | 105 ++++++ ...l15_25nsV2_MC_PhiResolution_AK8PFPuppi.txt | 105 ++++++ ...all15_25nsV2_MC_PhiResolution_AK8PFchs.txt | 105 ++++++ .../Fall15_25nsV2_MC_PtResolution_AK4PF.txt | 105 ++++++ ...ll15_25nsV2_MC_PtResolution_AK4PFPuppi.txt | 105 ++++++ ...Fall15_25nsV2_MC_PtResolution_AK4PFchs.txt | 105 ++++++ .../Fall15_25nsV2_MC_PtResolution_AK8PF.txt | 105 ++++++ ...ll15_25nsV2_MC_PtResolution_AK8PFPuppi.txt | 105 ++++++ ...Fall15_25nsV2_MC_PtResolution_AK8PFchs.txt | 105 ++++++ .../jer_files/Fall15_25nsV2_MC_SF_AK4PF.txt | 27 ++ .../Fall15_25nsV2_MC_SF_AK4PFPuppi.txt | 27 ++ .../Fall15_25nsV2_MC_SF_AK4PFchs.txt | 27 ++ .../jer_files/Fall15_25nsV2_MC_SF_AK8PF.txt | 27 ++ .../Fall15_25nsV2_MC_SF_AK8PFPuppi.txt | 27 ++ .../Fall15_25nsV2_MC_SF_AK8PFchs.txt | 27 ++ Analysis/Ntuplizer/interface/Candidates.h | 20 +- Analysis/Ntuplizer/interface/EventFilter.h | 14 +- Analysis/Ntuplizer/interface/Metadata.h | 24 +- Analysis/Ntuplizer/plugins/BuildFile.xml | 1 + Analysis/Ntuplizer/plugins/Ntuplizer.cc | 56 ++- Analysis/Ntuplizer/src/Candidates.cc | 67 +++- Analysis/Ntuplizer/src/TriggerAccepts.cc | 3 +- Analysis/Ntuplizer/test/.DS_Store | Bin 0 -> 8196 bytes Analysis/Ntuplizer/test/._.DS_Store | Bin 0 -> 4096 bytes .../Ntuplizer/test/._Fall15_25nsV2_DATA.db | Bin 0 -> 4096 bytes Analysis/Ntuplizer/test/._Fall15_25nsV2_MC.db | Bin 0 -> 4096 bytes Analysis/Ntuplizer/test/.__afs07A4 | Bin 0 -> 63 bytes Analysis/Ntuplizer/test/.__afs6B88 | Bin 0 -> 63 bytes Analysis/Ntuplizer/test/.__afs8106 | Bin 0 -> 63 bytes .../Ntuplizer/test/._btagcsv_76x_expert.py | Bin 0 -> 4096 bytes Analysis/Ntuplizer/test/._jetHT_data.py | Bin 0 -> 4096 bytes Analysis/Ntuplizer/test/._jetht_76x_expert.py | Bin 0 -> 4096 bytes .../test/._ntuplizer_data_76x_expert.py | Bin 0 -> 4096 bytes .../test/._ntuplizer_mc_76x_expert.py | Bin 0 -> 4096 bytes .../test/._pythia8_qcd_76x_expert.py | Bin 0 -> 4096 bytes Analysis/Ntuplizer/test/Rainer.py | 270 ++++++++++++++ Analysis/Ntuplizer/test/btag_data.py | 186 ++++++++++ .../Ntuplizer/test/btag_data_PromptReco4.py | 186 ++++++++++ .../Ntuplizer/test/btagcsv_2016_80x_expert.py | 334 +++++++++++++++++ Analysis/Ntuplizer/test/btagcsv_76x_expert.py | 315 ++++++++++++++++ Analysis/Ntuplizer/test/gc_btagData.conf | 78 ++++ Analysis/Ntuplizer/test/gc_jetHt.conf | 69 ++++ Analysis/Ntuplizer/test/gc_mc.conf | 88 +++++ Analysis/Ntuplizer/test/ht_qcd_mc.py | 230 ++++++++++++ ...Fall15_25nsV2_DATA_PhiResolution_AK4PF.txt | Bin 0 -> 4096 bytes ...5_25nsV2_DATA_PhiResolution_AK4PFPuppi.txt | Bin 0 -> 4096 bytes ...l15_25nsV2_DATA_PhiResolution_AK4PFchs.txt | Bin 0 -> 4096 bytes ...Fall15_25nsV2_DATA_PhiResolution_AK8PF.txt | Bin 0 -> 4096 bytes ...5_25nsV2_DATA_PhiResolution_AK8PFPuppi.txt | Bin 0 -> 4096 bytes ...l15_25nsV2_DATA_PhiResolution_AK8PFchs.txt | Bin 0 -> 4096 bytes ..._Fall15_25nsV2_DATA_PtResolution_AK4PF.txt | Bin 0 -> 4096 bytes ...15_25nsV2_DATA_PtResolution_AK4PFPuppi.txt | Bin 0 -> 4096 bytes ...ll15_25nsV2_DATA_PtResolution_AK4PFchs.txt | Bin 0 -> 4096 bytes ..._Fall15_25nsV2_DATA_PtResolution_AK8PF.txt | Bin 0 -> 4096 bytes ...15_25nsV2_DATA_PtResolution_AK8PFPuppi.txt | Bin 0 -> 4096 bytes ...ll15_25nsV2_DATA_PtResolution_AK8PFchs.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_DATA_SF_AK4PF.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_DATA_SF_AK4PFPuppi.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_DATA_SF_AK4PFchs.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_DATA_SF_AK8PF.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_DATA_SF_AK8PFPuppi.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_DATA_SF_AK8PFchs.txt | Bin 0 -> 4096 bytes ...._Fall15_25nsV2_MC_PhiResolution_AK4PF.txt | Bin 0 -> 4096 bytes ...l15_25nsV2_MC_PhiResolution_AK4PFPuppi.txt | Bin 0 -> 4096 bytes ...all15_25nsV2_MC_PhiResolution_AK4PFchs.txt | Bin 0 -> 4096 bytes ...._Fall15_25nsV2_MC_PhiResolution_AK8PF.txt | Bin 0 -> 4096 bytes ...l15_25nsV2_MC_PhiResolution_AK8PFPuppi.txt | Bin 0 -> 4096 bytes ...all15_25nsV2_MC_PhiResolution_AK8PFchs.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_MC_PtResolution_AK4PF.txt | Bin 0 -> 4096 bytes ...ll15_25nsV2_MC_PtResolution_AK4PFPuppi.txt | Bin 0 -> 4096 bytes ...Fall15_25nsV2_MC_PtResolution_AK4PFchs.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_MC_PtResolution_AK8PF.txt | Bin 0 -> 4096 bytes ...ll15_25nsV2_MC_PtResolution_AK8PFPuppi.txt | Bin 0 -> 4096 bytes ...Fall15_25nsV2_MC_PtResolution_AK8PFchs.txt | Bin 0 -> 4096 bytes .../jer_files/._Fall15_25nsV2_MC_SF_AK4PF.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_MC_SF_AK4PFPuppi.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_MC_SF_AK4PFchs.txt | Bin 0 -> 4096 bytes .../jer_files/._Fall15_25nsV2_MC_SF_AK8PF.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_MC_SF_AK8PFPuppi.txt | Bin 0 -> 4096 bytes .../._Fall15_25nsV2_MC_SF_AK8PFchs.txt | Bin 0 -> 4096 bytes .../test/jer_files/Fall15_25nsV2_DATA.db | Bin 0 -> 68608 bytes ...Fall15_25nsV2_DATA_PhiResolution_AK4PF.txt | 105 ++++++ ...5_25nsV2_DATA_PhiResolution_AK4PFPuppi.txt | 105 ++++++ ...l15_25nsV2_DATA_PhiResolution_AK4PFchs.txt | 105 ++++++ ...Fall15_25nsV2_DATA_PhiResolution_AK8PF.txt | 105 ++++++ ...5_25nsV2_DATA_PhiResolution_AK8PFPuppi.txt | 105 ++++++ ...l15_25nsV2_DATA_PhiResolution_AK8PFchs.txt | 105 ++++++ .../Fall15_25nsV2_DATA_PtResolution_AK4PF.txt | 105 ++++++ ...15_25nsV2_DATA_PtResolution_AK4PFPuppi.txt | 105 ++++++ ...ll15_25nsV2_DATA_PtResolution_AK4PFchs.txt | 105 ++++++ .../Fall15_25nsV2_DATA_PtResolution_AK8PF.txt | 105 ++++++ ...15_25nsV2_DATA_PtResolution_AK8PFPuppi.txt | 105 ++++++ ...ll15_25nsV2_DATA_PtResolution_AK8PFchs.txt | 105 ++++++ .../jer_files/Fall15_25nsV2_DATA_SF_AK4PF.txt | 2 + .../Fall15_25nsV2_DATA_SF_AK4PFPuppi.txt | 2 + .../Fall15_25nsV2_DATA_SF_AK4PFchs.txt | 2 + .../jer_files/Fall15_25nsV2_DATA_SF_AK8PF.txt | 2 + .../Fall15_25nsV2_DATA_SF_AK8PFPuppi.txt | 2 + .../Fall15_25nsV2_DATA_SF_AK8PFchs.txt | 2 + .../test/jer_files/Fall15_25nsV2_MC.db | Bin 0 -> 69632 bytes .../Fall15_25nsV2_MC_PhiResolution_AK4PF.txt | 105 ++++++ ...l15_25nsV2_MC_PhiResolution_AK4PFPuppi.txt | 105 ++++++ ...all15_25nsV2_MC_PhiResolution_AK4PFchs.txt | 105 ++++++ .../Fall15_25nsV2_MC_PhiResolution_AK8PF.txt | 105 ++++++ ...l15_25nsV2_MC_PhiResolution_AK8PFPuppi.txt | 105 ++++++ ...all15_25nsV2_MC_PhiResolution_AK8PFchs.txt | 105 ++++++ .../Fall15_25nsV2_MC_PtResolution_AK4PF.txt | 105 ++++++ ...ll15_25nsV2_MC_PtResolution_AK4PFPuppi.txt | 105 ++++++ ...Fall15_25nsV2_MC_PtResolution_AK4PFchs.txt | 105 ++++++ .../Fall15_25nsV2_MC_PtResolution_AK8PF.txt | 105 ++++++ ...ll15_25nsV2_MC_PtResolution_AK8PFPuppi.txt | 105 ++++++ ...Fall15_25nsV2_MC_PtResolution_AK8PFchs.txt | 105 ++++++ .../jer_files/Fall15_25nsV2_MC_SF_AK4PF.txt | 27 ++ .../Fall15_25nsV2_MC_SF_AK4PFPuppi.txt | 27 ++ .../Fall15_25nsV2_MC_SF_AK4PFchs.txt | 27 ++ .../jer_files/Fall15_25nsV2_MC_SF_AK8PF.txt | 27 ++ .../Fall15_25nsV2_MC_SF_AK8PFPuppi.txt | 27 ++ .../Fall15_25nsV2_MC_SF_AK8PFchs.txt | 27 ++ Analysis/Ntuplizer/test/jetHT_data.py | 181 +++++++++ Analysis/Ntuplizer/test/jetht_76x_expert.py | 342 ++++++++++++++++++ Analysis/Ntuplizer/test/nickProducer.py | 109 ++++++ .../test/ntuplizer_data_76x_expert.py | 40 +- .../test/ntuplizer_data_76x_jer_test.py | 289 +++++++++++++++ .../Ntuplizer/test/ntuplizer_mc_76x_expert.py | 66 ++-- .../Ntuplizer/test/pythia8_qcd_76x_expert.py | 96 +++-- Analysis/Ntuplizer/test/qcd_mc.py | 227 ++++++++++++ Analysis/Ntuplizer/test/signal_76x_expert.py | 114 +++++- 189 files changed, 8682 insertions(+), 113 deletions(-) create mode 100644 Analysis/Ntuplizer/.DS_Store create mode 100644 Analysis/Ntuplizer/._.DS_Store create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK4PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK8PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK8PFchs.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK4PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK8PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK8PFchs.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_SF_AK4PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_SF_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_SF_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_SF_AK8PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_SF_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_SF_AK8PFchs.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK4PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK8PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK8PFchs.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PtResolution_AK4PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PtResolution_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PtResolution_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PtResolution_AK8PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PtResolution_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PtResolution_AK8PFchs.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_SF_AK4PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_SF_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_SF_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_SF_AK8PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_SF_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_SF_AK8PFchs.txt create mode 100644 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA.db create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_PhiResolution_AK4PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_PhiResolution_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_PhiResolution_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_PhiResolution_AK8PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_PhiResolution_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_PhiResolution_AK8PFchs.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_PtResolution_AK4PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_PtResolution_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_PtResolution_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_PtResolution_AK8PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_PtResolution_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_PtResolution_AK8PFchs.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_SF_AK4PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_SF_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_SF_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_SF_AK8PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_SF_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_SF_AK8PFchs.txt create mode 100644 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_MC.db create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_MC_PhiResolution_AK4PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_MC_PhiResolution_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_MC_PhiResolution_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_MC_PhiResolution_AK8PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_MC_PhiResolution_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_MC_PhiResolution_AK8PFchs.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_MC_PtResolution_AK4PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_MC_PtResolution_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_MC_PtResolution_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_MC_PtResolution_AK8PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_MC_PtResolution_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_MC_PtResolution_AK8PFchs.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_MC_SF_AK4PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_MC_SF_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_MC_SF_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_MC_SF_AK8PF.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_MC_SF_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_MC_SF_AK8PFchs.txt create mode 100644 Analysis/Ntuplizer/test/.DS_Store create mode 100644 Analysis/Ntuplizer/test/._.DS_Store create mode 100644 Analysis/Ntuplizer/test/._Fall15_25nsV2_DATA.db create mode 100644 Analysis/Ntuplizer/test/._Fall15_25nsV2_MC.db create mode 100644 Analysis/Ntuplizer/test/.__afs07A4 create mode 100644 Analysis/Ntuplizer/test/.__afs6B88 create mode 100644 Analysis/Ntuplizer/test/.__afs8106 create mode 100644 Analysis/Ntuplizer/test/._btagcsv_76x_expert.py create mode 100644 Analysis/Ntuplizer/test/._jetHT_data.py create mode 100644 Analysis/Ntuplizer/test/._jetht_76x_expert.py create mode 100644 Analysis/Ntuplizer/test/._ntuplizer_data_76x_expert.py create mode 100644 Analysis/Ntuplizer/test/._ntuplizer_mc_76x_expert.py create mode 100644 Analysis/Ntuplizer/test/._pythia8_qcd_76x_expert.py create mode 100644 Analysis/Ntuplizer/test/Rainer.py create mode 100644 Analysis/Ntuplizer/test/btag_data.py create mode 100644 Analysis/Ntuplizer/test/btag_data_PromptReco4.py create mode 100644 Analysis/Ntuplizer/test/btagcsv_2016_80x_expert.py create mode 100644 Analysis/Ntuplizer/test/btagcsv_76x_expert.py create mode 100644 Analysis/Ntuplizer/test/gc_btagData.conf create mode 100644 Analysis/Ntuplizer/test/gc_jetHt.conf create mode 100644 Analysis/Ntuplizer/test/gc_mc.conf create mode 100644 Analysis/Ntuplizer/test/ht_qcd_mc.py create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK4PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK8PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK8PFchs.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK4PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK8PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK8PFchs.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_SF_AK4PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_SF_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_SF_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_SF_AK8PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_SF_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_SF_AK8PFchs.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK4PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK8PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK8PFchs.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PtResolution_AK4PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PtResolution_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PtResolution_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PtResolution_AK8PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PtResolution_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PtResolution_AK8PFchs.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_SF_AK4PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_SF_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_SF_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_SF_AK8PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_SF_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_SF_AK8PFchs.txt create mode 100644 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA.db create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PhiResolution_AK4PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PhiResolution_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PhiResolution_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PhiResolution_AK8PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PhiResolution_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PhiResolution_AK8PFchs.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PtResolution_AK4PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PtResolution_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PtResolution_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PtResolution_AK8PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PtResolution_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PtResolution_AK8PFchs.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_SF_AK4PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_SF_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_SF_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_SF_AK8PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_SF_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_SF_AK8PFchs.txt create mode 100644 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_MC.db create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_MC_PhiResolution_AK4PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_MC_PhiResolution_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_MC_PhiResolution_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_MC_PhiResolution_AK8PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_MC_PhiResolution_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_MC_PhiResolution_AK8PFchs.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_MC_PtResolution_AK4PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_MC_PtResolution_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_MC_PtResolution_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_MC_PtResolution_AK8PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_MC_PtResolution_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_MC_PtResolution_AK8PFchs.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_MC_SF_AK4PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_MC_SF_AK4PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_MC_SF_AK4PFchs.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_MC_SF_AK8PF.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_MC_SF_AK8PFPuppi.txt create mode 100755 Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_MC_SF_AK8PFchs.txt create mode 100644 Analysis/Ntuplizer/test/jetHT_data.py create mode 100644 Analysis/Ntuplizer/test/jetht_76x_expert.py create mode 100644 Analysis/Ntuplizer/test/nickProducer.py create mode 100644 Analysis/Ntuplizer/test/ntuplizer_data_76x_jer_test.py create mode 100644 Analysis/Ntuplizer/test/qcd_mc.py diff --git a/Analysis/Ntuplizer/.DS_Store b/Analysis/Ntuplizer/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..7a73364016b9018dae679d4f5999f8f1c7975c55 GIT binary patch literal 8196 zcmeHMO-vkB9RL3pO6O6a4+>?wNZk~Xid$u|r9qpz3tMcZP0(z=5I`2M7azLYF|khpH`#@QZ6x3Hg?4LZp1imYsaow6oN|wJAC<1PlZW z1PlZW1PlZW{2v&gHCq&An{{7$gF0X!U|>fwAifV#x&$VCT$bp4I;irt0EA)-;1z0f z(IAZanDB8~B6+BwOeK`5=x;GlrjtGD$0dARmMGH!{mlpZPey--g5J~V{!uR+Fd;Fh z0|o*HHZvf8KGooY4i30$_wU)fX*h0A&kBaBs(01wR#+{ShFad(@K}1zE~j19Ejj~g z;eyvQG(GFLM^tyN(jK*KbG5Bz#|^za!kr8(1SdB2RI zxpOnTWu%~&D0M`&^l`&6vW986PcbSAo8hgCi@m+aV$q{ZvFKv_zP@-Y+TR~vTH;HJ z(stLe$MlE$-mszdh1B`#BOlvfpbG9a8G|v-m z4Yw=G1z{g7=u}HHi-r#|t}3Gr4NcynlXWrfu+b-J`ebT1iz!@VW2TzbO=-H9#T7ox zG9@{FX*|mMltzrPiJUz@Pa|}sxj+1X!oO7>7tcPcI_~+rZv8W=2Nh*fc#@i?Yf4Ar zu$;e+M2~E6v5*{q7@UM5n1UQwP==S`6?hfihAVIlK84TWI(!4)!T0bZ+=LbQ8GeD^ z;1Bo{{z5>8wOEJs*o19(8y>{l@eVwK_h1jk@i-U?=ZTB{LH7INM_JyhmZ(2C*Ls=mcHOAh3~#0qFIz3@|4WM z>qj~xT?)yVhorkZ5)&fjRnqH;Ph)(S^pfm^V0pFl_A`>(Fyl3{doq#`>f?$G?u?|E z!f^|sZ7Z{PNo1eE7w{#C><9P>eudxR7742cIqt_+jF7O}@lNc*ZoHeM)km`G$NTXF zp28tKjc0HeM@e28obcqO;YFN90}JS25lgs$&*F3VJidT0;%oRiz99v-L2jojLX+sp zaaC@mbip!hYnFT!d9Du+dOLxED*2LOvHw4{{rUe+pdxt3fPo#$09L2csR4TZ?G^*E z*N)Ql1YM$txMhi63RUY40;s?Ghat726e@BOJ}yfn3zdKUARt)(-C+Iqq_?B1zX4(3 B#ybE2 literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/._.DS_Store b/Analysis/Ntuplizer/._.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..efdcc70fe1230221ca6d98b59d03375ebd0605c4 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIk*Y|peR=07!nf1 zz`(r^qJyCVtD;fC(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@RpmGQ>0?h+q zFpvw$$ShVUN-fSWElN&RNXswER>;gNNzE(C%+E{A$*EMxNlhzJNXkjf%LaCJp}K}N Ph3bE}S7aFE{{II6F6|v( literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/BuildFile.xml b/Analysis/Ntuplizer/BuildFile.xml index 1dba737..de4de32 100644 --- a/Analysis/Ntuplizer/BuildFile.xml +++ b/Analysis/Ntuplizer/BuildFile.xml @@ -1,5 +1,6 @@ + @@ -15,6 +16,7 @@ + diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK4PF.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK4PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..8cd82d9116546b63aba53362b3b630b38e54a73b GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCE z0nx!Q1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{c-}GZO#+ literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK4PFPuppi.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK4PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..95572ec3b51c7064a83de0f3188b51dbec588169 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoBZ z1JS`S1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{e$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoBZ z1<}DU1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{d$MGbI23 literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK8PF.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK8PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..76f97cd0c1e4af0e8ca3301b544ba6631264b7b7 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCE z1<}DU1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{d{IGZg>; literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK8PFPuppi.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK8PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..9c41e51fb66144a9e206ce6822648f61e0065530 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCE z1JS`S1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{f5cGZz2= literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK8PFchs.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK8PFchs.txt new file mode 100755 index 0000000000000000000000000000000000000000..f2364d881a8d5b6ddbf70cd07d6d4f0035a0043f GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoBZ z2hqVW1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{f|!GbsQ7 literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK4PF.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK4PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..aeb99d89fce5b6d3fd5128dcb375d1632b124f3a GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCE z2hqVW1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{gEwGZ_E? literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK4PFPuppi.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK4PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..975b9abdac507e330613213ea173c701352cc18f GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoC^ z1ku4T1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{iGHGc5oB literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK4PFchs.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK4PFchs.txt new file mode 100755 index 0000000000000000000000000000000000000000..7044a06399622f3cda9c1f869a509eaa61a7a17f GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoC^ z0MWrP1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{h6|Gb;c9 literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK8PF.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK8PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..6937fa949d5be75bd95e2802b6233839a3904317 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoBZ z0MWrP1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{hN^GaCQ^ literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK8PFPuppi.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK8PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..ad1537e22893b0d7394f13a24d8f68671510f2eb GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoA0 zss`y`m;uC=Xj&K%;-bm$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoC^ z0@1-R1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{aJpGcN!D literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_SF_AK4PF.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_SF_AK4PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..adabf6bc704a745fa086b317f270fca80586b53d GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoBZ z0@1-R1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{aalGamo| literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_SF_AK4PFPuppi.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_SF_AK4PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..7f1d408d97bc121948a044bf7cbdfb191fabc55c GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoC^ z0nx!Q1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{cc6Gcy1H literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_SF_AK4PFchs.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_SF_AK4PFchs.txt new file mode 100755 index 0000000000000000000000000000000000000000..0bdfbc5c317b39683e3f43819f6d0dedcff58531 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoC^ z2GPMV1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{bS-Gcf=F literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_SF_AK8PF.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_SF_AK8PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..36524706631249e29a96e0d572288472dc8b1897 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoBZ z2GPMV1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{bj(Ga&!~ literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_SF_AK8PFPuppi.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_SF_AK8PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..4d0cb09e3b22389a493a73f043fb9bbcaa8a8f0c GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoBZ z0nx!Q1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{ct2Ga~>1 literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_SF_AK8PFchs.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_DATA_SF_AK8PFchs.txt new file mode 100755 index 0000000000000000000000000000000000000000..9c24505cab5679c001ab2b8d714ffd839ebb40b4 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoC^ z1<}DU1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{dlQGc^DJ literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK4PF.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK4PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..c754743ea8663699c938ef1b04025fb3956e948f GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCk z0@1-R1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{b2ZGVcHY literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK4PFPuppi.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK4PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..f210eaa458f02f168f7807c7447a2b551efa8b24 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCk z0nx!Q1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{dK>GV=fc literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK4PFchs.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK4PFchs.txt new file mode 100755 index 0000000000000000000000000000000000000000..f97d738aef82dd883b232eb77c12bf77c89163ec GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCk z2GPMV1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{cBtGVuTa literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK8PF.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK8PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..1a6ee41d0284f96d3232b876621b64d2945c4e39 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCk z1<}DU1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{eUAGW7re literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK8PFPuppi.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK8PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..d2c420edce60bc4e74f866bfc55b6efc3d56c074 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCk z2hqVW1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{gmoGWh@i literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK8PFchs.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK8PFchs.txt new file mode 100755 index 0000000000000000000000000000000000000000..0526424c337104451e580c3ff4b0cbdc7dcdad78 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCk z1JS`S1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{fdUGWP%g literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PtResolution_AK4PF.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PtResolution_AK4PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..1fc0702a231e23213915c64590c11e5b8e66a9c2 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoAu z0MWrP1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{hv+GW!4k literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PtResolution_AK4PFPuppi.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PtResolution_AK4PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..31d1816e8f6acd4143d577d0eb57843c4d87f45e GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoAu z0@1-R1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{a+dGXDSo literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PtResolution_AK4PFchs.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PtResolution_AK4PFchs.txt new file mode 100755 index 0000000000000000000000000000000000000000..481324ab3792e37cc6c0defe59f100638963e94a GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoAu z1ku4T1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{i(5GW`Gm literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PtResolution_AK8PF.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PtResolution_AK8PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..6714f364b6fb83aabc2ceaf1747089f583cbc428 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoAu z2GPMV1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{b_xGXVeq literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PtResolution_AK8PFPuppi.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PtResolution_AK8PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..37cedfa2013ea2d5ede819a76b063963cff3a5f9 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoAu z1<}DU1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{eDEGX($u literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PtResolution_AK8PFchs.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_PtResolution_AK8PFchs.txt new file mode 100755 index 0000000000000000000000000000000000000000..d750ef7d9e381a95694254b5b5c7b7e370e5e96b GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoAu z0nx!Q1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{d3_GXnqs literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_SF_AK4PF.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_SF_AK4PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..24b958f01312e93fb397a4a238043bb39eae1f6c GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoAu z1JS`S1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{fMYGY0?w literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_SF_AK4PFPuppi.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_SF_AK4PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..73d914c1d0a831657e1ec9212ec926208f4b7c1f GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCE z0MWrP1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{he=GYbF! literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_SF_AK4PFchs.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_SF_AK4PFchs.txt new file mode 100755 index 0000000000000000000000000000000000000000..7d0a0ebff17bc966d0b4043712727490ffd5f947 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoAu z2hqVW1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{gVsGYJ3y literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_SF_AK8PF.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_SF_AK8PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..fd839495837c274282f492508b547d6b106e469a GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCE z1ku4T1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{io9GYtR$ literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_SF_AK8PFPuppi.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_SF_AK8PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..8811d69a5fe5d7487d41eafed1e1cf2f91304e8e GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCE z2GPMV1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{b!#GZ6p) literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_SF_AK8PFchs.txt b/Analysis/Ntuplizer/data/jer_files/._Fall15_25nsV2_MC_SF_AK8PFchs.txt new file mode 100755 index 0000000000000000000000000000000000000000..87ff4829d492d7f0ffeb0e7e6486de94ab87002c GIT binary patch literal 4096 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 &btagAlgos = std::vector(), const std::vector & btagAlgosAlias = std::vector() ); // void Init(const std::map & btagVars = std::map() ); // void Init(const std::vector & btagVars = std::vector() ); - void Init(const std::vector & , const std::string & ); + void Init(const std::vector & , const std::string & , const std::string &, const edm::EDGetTokenT & rho); + void Init(const std::vector & , const std::string & , const std::string & , const std::string & , const std::string &, const edm::EDGetTokenT & rho); void Init(const std::vector & ); void Init(); void Branches(); @@ -77,8 +79,13 @@ namespace analysis { std::string configParameter_; edm::InputTag input_collection_; - std::string jecRecord_; + std::string jecRecord_{}; + std::string jerRecord_{}; + std::string jerResFile_; + std::string jerSfFile_; std::unique_ptr jecUnc_; + JME::JetResolution res_; + JME::JetResolutionScaleFactor res_sf_; // particles kinematics for the ntuple int n_; @@ -101,11 +108,20 @@ namespace analysis { float jetid_[15][maxCandidates]; float jecUncert_[maxCandidates]; + float jerResolution_[maxCandidates]; + float jerSF_[maxCandidates]; + float jerSFUp_[maxCandidates]; + float jerSFDown_[maxCandidates]; int pdg_[maxCandidates]; int status_[maxCandidates]; bool lastcopy_[maxCandidates]; bool higgs_dau_[maxCandidates]; + double x1_; + double x2_; + double mHat_; + double rho_; + edm::EDGetTokenT RhoToken_; // met specifics float sigxx_[maxCandidates]; diff --git a/Analysis/Ntuplizer/interface/EventFilter.h b/Analysis/Ntuplizer/interface/EventFilter.h index 3cbf7aa..388fa2d 100644 --- a/Analysis/Ntuplizer/interface/EventFilter.h +++ b/Analysis/Ntuplizer/interface/EventFilter.h @@ -65,13 +65,13 @@ namespace analysis { private: // ----------member data --------------------------- - unsigned int nTotal_; - unsigned int nFiltr_; - double efficiency_; - unsigned int nTried_; - double wTotal_; - double wFiltr_; - double wEfficiency_; + unsigned int nTotal_{}; + unsigned int nFiltr_{}; + double efficiency_{}; + unsigned int nTried_{}; + double wTotal_{}; + double wFiltr_{}; + double wEfficiency_{}; std::vector collections_; diff --git a/Analysis/Ntuplizer/interface/Metadata.h b/Analysis/Ntuplizer/interface/Metadata.h index d074de6..92f4a2b 100644 --- a/Analysis/Ntuplizer/interface/Metadata.h +++ b/Analysis/Ntuplizer/interface/Metadata.h @@ -94,14 +94,14 @@ namespace analysis { // ----------member data --------------------------- // edm::Service * fs_; - TFileDirectory mainDir_; - TFileDirectory mHatDir_; + TFileDirectory mainDir_{}; + TFileDirectory mHatDir_{}; std::vector vdefinitions_; - bool isGenFilter_; - bool isEvtFilter_; - bool isMHatEvtFilter_; + bool isGenFilter_{}; + bool isEvtFilter_{}; + bool isMHatEvtFilter_{}; pGenFilter genfilter_; pEvtFilter evtfilter_; pEvtFilter mHatEvtFilter_; @@ -111,16 +111,16 @@ namespace analysis { // Cross sections tree TTree * treeXS_; - double myXSec_; - double XSec_; - double internalXSec_; - double externalXSecLO_; - double externalXSecNLO_; - unsigned int runXS_; + double myXSec_{}; + double XSec_{}; + double internalXSec_{}; + double externalXSecLO_{}; + double externalXSecNLO_{}; + unsigned int runXS_{}; // Dataset tree TTree * treeDS_; - bool is_mc_; + bool is_mc_{}; diff --git a/Analysis/Ntuplizer/plugins/BuildFile.xml b/Analysis/Ntuplizer/plugins/BuildFile.xml index 4993d4d..fd4757a 100644 --- a/Analysis/Ntuplizer/plugins/BuildFile.xml +++ b/Analysis/Ntuplizer/plugins/BuildFile.xml @@ -12,4 +12,5 @@ + diff --git a/Analysis/Ntuplizer/plugins/Ntuplizer.cc b/Analysis/Ntuplizer/plugins/Ntuplizer.cc index 57a2c15..66dd392 100644 --- a/Analysis/Ntuplizer/plugins/Ntuplizer.cc +++ b/Analysis/Ntuplizer/plugins/Ntuplizer.cc @@ -77,6 +77,7 @@ #include "SimDataFormats/PileupSummaryInfo/interface/PileupSummaryInfo.h" #include "SimDataFormats/GeneratorProducts/interface/GenEventInfoProduct.h" +#include "JetMETCorrections/Modules/interface/JetResolution.h" #include "Analysis/Ntuplizer/interface/EventFilter.h" @@ -199,6 +200,7 @@ class Ntuplizer : public edm::EDAnalyzer { std::vector< std::string > triggerObjectLabels_; std::vector< TitleAlias > btagVars_; std::vector< std::string > jecRecords_; + std::vector< std::string > jerRecords_; std::map > l1JetTokens_; std::map > l1MuonTokens_; @@ -233,7 +235,8 @@ class Ntuplizer : public edm::EDAnalyzer { edm::EDGetTokenT genRunInfoToken_; edm::EDGetTokenT > pileupInfoToken_; - edm::EDGetTokenT genEventInfoToken_; + edm::EDGetTokenT genEventInfoToken_; + edm::EDGetTokenT Rho_; InputTags eventCounters_; InputTags mHatEventCounters_; @@ -342,6 +345,9 @@ Ntuplizer::Ntuplizer(const edm::ParameterSet& config) //: // initialization of } + //Rho for JER + Rho_ = consumes(config_.getParameter("Rho")); + } @@ -436,6 +442,7 @@ void Ntuplizer::analyze(const edm::Event& event, const edm::EventSetup& iSetup) // trigger objects for ( auto & collection : triggerobjects_collections_ ) collection -> Fill(event); + } @@ -470,7 +477,6 @@ Ntuplizer::beginJob() if ( config_.exists("UseFullName") ) use_full_name_ = config_.getParameter ("UseFullName"); - edm::Service fs; TFileDirectory eventsDir = fs -> mkdir("Events"); @@ -513,11 +519,27 @@ Ntuplizer::beginJob() } // JEC Record (from CondDB) + std::vector m_resolutions_files; + std::vector m_scale_factors_files; jecRecords_.clear(); if ( do_patjets_ && config_.exists("JECRecords") ) { jecRecords_ = config_.getParameter< std::vector >("JECRecords"); + if(config_.exists("JERResFiles")){ + m_resolutions_files = config_.getParameter< std::vector >("JERResFiles"); + } + if(config_.exists("JERSfFiles")){ + m_scale_factors_files = config_.getParameter< std::vector >("JERSfFiles"); + } + + } + + //JER Records (from .txt file or GT) + jerRecords_.clear(); + if( do_patjets_ && config_.exists("JERRecords")){ + jerRecords_ = config_.getParameter< std::vector< std::string> >("JERRecords"); } + // size_t nPatJets = 0; if ( do_patjets_ ) @@ -525,10 +547,22 @@ Ntuplizer::beginJob() if ( nPatJets > jecRecords_.size() && jecRecords_.size() != 0 ) { - std::cout << "*** ERROR *** Ntuplizer: Number of JEC Records less than the number of PatJet collections." << std::endl;; + std::cout << "*** ERROR *** Ntuplizer: Number of JEC Records less than the number of PatJet collections." << std::endl; + exit(-1); + } + + if ( nPatJets > jerRecords_.size() && jerRecords_.size() != 0 ) + { + std::cout << "*** ERROR *** Ntuplizer: Number of JER Records less than the number of PatJet collections." << std::endl; exit(-1); } + if ( jerRecords_.size() != 0 && m_resolutions_files.size() != 0 && m_scale_factors_files.size()!=0 &&(jerRecords_.size() != m_resolutions_files.size() || jerRecords_.size() != m_scale_factors_files.size()) ) + { + std::cerr << "*** ERROR *** Ntuplizer: Number of JER Records are not the same as number of provided input files. " < 0 ) std::cout << "*** Jet Energy Corrections Records - PatJets ***" << std::endl; + if ( patJetCounter == 0 && jerRecords_.size() > 0 ) std::cout << "*** Jet Energy Resolutions Records - PatJets ***" << std::endl; patjets_collections_.push_back( pPatJetCandidates( new PatJetCandidates(collection, tree_[name], is_mc_ ) )); - if ( jecRecords_.size() > 0 ) + if ( jecRecords_.size() > 0 && jerRecords_.size() > 0 ) { - patjets_collections_.back() -> Init(btagVars_,jecRecords_[patJetCounter]); - if ( jecRecords_[patJetCounter] != "" ) - std::cout << name << " => " << jecRecords_[patJetCounter] << std::endl; + if(m_resolutions_files.size() != 0 && m_resolutions_files[patJetCounter] != "" && m_scale_factors_files[patJetCounter] != ""){ + patjets_collections_.back() -> Init(btagVars_,jecRecords_[patJetCounter],jerRecords_[patJetCounter],m_resolutions_files[patJetCounter],m_scale_factors_files[patJetCounter],Rho_); + } + + else { + patjets_collections_.back() -> Init(btagVars_,jecRecords_[patJetCounter],jerRecords_[patJetCounter],Rho_); + } + if ( jecRecords_[patJetCounter] != "" ) std::cout << name << " => " << jecRecords_[patJetCounter] << std::endl; + if ( jerRecords_[patJetCounter] != "") std::cout<<"JER: "< SetEventFilter(eventCounters_); if ( nMHatCounters == 2) metadata_ -> SetMHatEventFilter(mHatEventCounters_); - std::cout<::Kinematics() { jecUncert_[n] = -1.; } + + //JER + if(jerRecord_ != ""){ + // SetUp Jet parameters + JME::JetParameters jerParamRes; + jerParamRes.setJetPt(pt_[n]); + jerParamRes.setJetEta(eta_[n]); + jerParamRes.setRho(rho_); + + // Return JER + jerResolution_[n] = res_.getResolution(jerParamRes); + + JME::JetParameters jerParamSF; + jerParamSF.set(JME::Binning::JetEta, eta_[n]); + jerParamSF.set(JME::Binning::Rho, rho_); + + jerSF_[n] = res_sf_.getScaleFactor(jerParamSF); + jerSFUp_[n] = res_sf_. getScaleFactor(jerParamSF,Variation::UP); + jerSFDown_[n] = res_sf_. getScaleFactor(jerParamSF,Variation::DOWN); + + } + else{ + jerResolution_[n] = -1; + jerSF_[n] = -1; + jerSFUp_[n] = -1; + jerSFDown_[n] = -1; + } } if ( is_pfjet_ ) { @@ -354,6 +383,22 @@ void Candidates::Fill(const edm::Event& event, const edm::EventSetup& setup) jecUnc_ = std::unique_ptr(new JetCorrectionUncertainty(JetCorPar)); } + if (jerRecord_ != "" ){ + if(jerResFile_ != "" && jerSfFile_ != ""){ + res_ = JME::JetResolution(jerResFile_); + res_sf_ = JME::JetResolutionScaleFactor(jerSfFile_); + } + else { + std::string label_pt = jerRecord_ + "_pt"; + res_ = JME::JetResolution::get(setup,label_pt); + std::string label_sf = jerRecord_; + res_sf_ = JME::JetResolutionScaleFactor::get(setup,label_sf); + } + edm::Handle rho; + event.getByToken(RhoToken_, rho); + rho_ = *rho; + } + Fill(event); } @@ -395,6 +440,11 @@ void Candidates::Branches() // if ( jecRecord_ != "" ) tree_->Branch("jecUncert", jecUncert_, "jecUncert[n]/F"); + tree_->Branch("jerResolution",jerResolution_,"jerResolution[n]/F"); + tree_->Branch("jerSF",jerSF_,"jerSF[n]/F"); + tree_->Branch("jerSFUp",jerSFUp_,"jerSFUp[n]/F"); + tree_->Branch("jerSFDown",jerSFDown_,"jerSFDown[n]/F"); + tree_->Branch("Rho",&rho_,"Rho/D"); } if ( is_pfjet_ || is_patjet_ ) @@ -430,9 +480,22 @@ void Candidates::Branches() } template -void Candidates::Init( const std::vector & btagVars, const std::string & jr ) +void Candidates::Init( const std::vector & btagVars, const std::string & jec, const std::string & jer, const edm::EDGetTokenT &RhoToken) { - jecRecord_ = jr; + jecRecord_ = jec; + jerRecord_ = jer; + RhoToken_ = RhoToken; + Init(btagVars); +} + +template +void Candidates::Init( const std::vector & btagVars, const std::string & jec, const std::string & jer, const std::string &res_file, const std::string & sf_file, const edm::EDGetTokenT & RhoToken) +{ + jecRecord_ = jec; + jerRecord_ = jer; + jerResFile_ = res_file; + jerSfFile_ = sf_file; + RhoToken_ = RhoToken; Init(btagVars); } diff --git a/Analysis/Ntuplizer/src/TriggerAccepts.cc b/Analysis/Ntuplizer/src/TriggerAccepts.cc index 6e6d8d1..5623fe1 100644 --- a/Analysis/Ntuplizer/src/TriggerAccepts.cc +++ b/Analysis/Ntuplizer/src/TriggerAccepts.cc @@ -90,7 +90,7 @@ void TriggerAccepts::Fill(const edm::Event& event, const edm::EventSetup & setup { for (size_t i = 0; i < paths_.size() ; ++i ) { - if ( hlt_config_.triggerName(j).find(paths_[i]) == 0 ) + if ( hlt_config_.triggerName(j).find(paths_[i]) == 0 && triggers.accept(j) ) { #ifndef CMSSWOLD std::pair< int, int > ps = hlt_prescale_->prescaleValues (event, setup, hlt_config_.triggerName(j)); @@ -102,6 +102,7 @@ void TriggerAccepts::Fill(const edm::Event& event, const edm::EventSetup & setup // psl1_[i] = 1; // pshlt_[i] = 1; if ( triggers.accept(j) ) accept_[i] = true; + } } } diff --git a/Analysis/Ntuplizer/test/.DS_Store b/Analysis/Ntuplizer/test/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..45cfaef684ade89850e3e99816ee8a6c0f85ef4a GIT binary patch literal 8196 zcmeI1O>Epm6vy97($>>9>1>)NZo|T=X`m@7G-;DI&{msG`rWF5d~A}2F5b1<7#urV zdv^=bLJ*=L1PJkQ;DSW?DD(msE^tAJB0dfr=%KwLA>f3>si(r58E;7QA#OlbkK}nX z^XA#J|M}V0^8x^-3T6j@4geY*!tym#Em4GD9E(a-I8s9vDIVYq*x-N#ezvq|b~F$v z5GfET5GfET5Gn9~P=MaqqG-#!_mwxQBLyM_Zc7Ek^C3Zpu*uNQDk~oyRLK;8tVjW5 zp*H0KGA0q)WN2rVm7#P_l|5h>ieZX@DxCZYF`aBOw6n^pa6lCf7+x8}3PUe|fyD}l+lRqpl(Xj{Ge3X#r?ZZiCGYj@v}60hjvd#qs=8*y%2gU$O{H!% zkJUXgIO&xJ10yK-DIpXUaK?OOSHp%ZD_ zHN8^GE4ZdVF{sX$w#{HN!#51%ts;dE7_K#9`*zlL?BEGTMPnJ>G&9rL+0~xdRc=qr zbnNWzXixO?bd<}ytZB_{UA-s9rpqs0c=x^cKe+hemtQF{FnplE`UT=#URoK)FAgYW zsvfE+b9GJ`wnp!5NcCknFZkBOmSY5V(dst>%g^w2K8bZC=egl;NasAKFy)dbmNT4O zfhJqMjx%UKY5AjpbuJLCao@`aeRATcO|fDu!|R0xC#M73bNvx3?~`Th(%KE1?rhn* zy>s{8E46j&IICw3>7o$Hv4%@RzcItlS*~fjXU9oZH?YsxR-VPGkFp`xn6j?$x^=aU zO*)$}X(=Z>Q}|8(sm7$Ixk=Yg2~S_%qT19nIeb?_XG1SL zs&B%}@1s?X316>iiZy91$*pQ9Tar6egNv8TMreoqa1h2J2QHN0C3qQLfw$lST!K&F zGq?<2!?*Aq`~X+sXZQtvh2P*0xB-76Aj3N37{hvO#sqH07Tki{aVK_RH}1wH9>$}1 z43Fb5o<;++m_r9=u#8XP)A$0uhOgrr_$I!M7u9;ID#-P#ex=5bsI|n+NXUgZV^w-7 zz&&^iPU^vBqWLgNk?V(7wqg!@LeGsH*RWX@nOQr zI=2wx3f_E`f@Ncq-pCScvt*isjNZ~3kMk;`Sd-nhZE?n{C9C4xgkhYokW`8;0myib z|5Tjv4rRF z8GII>!}It&zWO(M3&1;EK~7l-<`Uo)2lKAuxo2rs1=*Vequ#BoK($)DF7p2a%YXmB zm49Ni_DF$9fqzf{Yx)QKQ#5J0hrGzO6LdUEhbUs+tgQSAPN7{?+mT literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/._.DS_Store b/Analysis/Ntuplizer/test/._.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c30e3a139e78b3130648a31651ebb3dff10fedd5 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIk*Y|peR=07!nf1 zz#!BQ(ZNuGRne&6Xb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeDP&ot`f#!iQ z7|4ZWWELwFr55Lx7A2=Dq~#Z7D`e)Cq~?`m=I15m4jn|NjF3y#F0H literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/._Fall15_25nsV2_DATA.db b/Analysis/Ntuplizer/test/._Fall15_25nsV2_DATA.db new file mode 100644 index 0000000000000000000000000000000000000000..7fb1c832c051e2e4a774acb8736d509efa100608 GIT binary patch literal 4096 zcmeH~&2G~`5XZ+w6@^MwB?KoF`NDyNKa$wB+nn55kw8?4CIT)f8ru`%dhHFn8&y0G zya1dL2Y404V}QygY5H-f;DCDCk=8S_tN-lI&!>U)2e)Aj;1F~B`M`c{pV@p5?&#G4 z*!rx!&bNL5SS=m@#ggIh2w?NeQUSlTO6OPXmd^A(>;l}+dF|qK%E)~;LxGJd8`4Ks zs6To=zBsQ*VSx(ws>Ae&qB`X#4dYl)k)m2?j3wLiN`e?0gRiTEuCXh z-qR!99A+rVt5GTv-r&WvQc=HTB)vW|)(%IVu#qo2qcj;NZjp_)2dnza+Se7#7|;H> z>c(cZZ0Nkl`Cq(j-!CU7HUta-L%L7Uwjjx8 sA}4#yMP-+ZsjK9T9;V*gjK<2&7&eujg>U|~|Nq9T{h!x=2(8o8KRcA5MF0Q* literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/._Fall15_25nsV2_MC.db b/Analysis/Ntuplizer/test/._Fall15_25nsV2_MC.db new file mode 100644 index 0000000000000000000000000000000000000000..5993dc72ba2a7b1b56753b514506c488ab4b4fde GIT binary patch literal 4096 zcmeH~&2G~`5XZ+sh(e{R5`t3|`NE+Gf5gOf+?>*wNT3GPCZb3jqP4vt+pN7|ccY3| z-~~9-C*T2!#G{}-2dGSvrWB;AJyhytM_SL!uKu$-Kc5EfKYaidfG)}GH$D5EeQvWo zc!($SSm@T0b~wbco0Vf#fK@5JeZGo^k1tM$Bf z^81JUT=}x{2yaHStc9QRI}hjX@ltebRR-(tM_NzRw&zK5wiK1RXl%~?_?d>v6JB(B1bqMFRa1ey0dK(P7Z8uK`>wC-Ui^^A( zOSwpISaW5SEt<=*}p9=s0 literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/.__afs07A4 b/Analysis/Ntuplizer/test/.__afs07A4 new file mode 100644 index 0000000000000000000000000000000000000000..ee602ed9b0ba7f32ea5175a04df65b6717d864af GIT binary patch literal 63 zcmXTQ&o5zMcx}qSz>osO?|>Kv7=a8w79as)Kma4p^CMd{4hue;F7CKuW%IuG06r}Z ANdN!< literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/.__afs6B88 b/Analysis/Ntuplizer/test/.__afs6B88 new file mode 100644 index 0000000000000000000000000000000000000000..58fea1992e262401d34a092748d6ded24e6286ef GIT binary patch literal 63 zcmXTQ&o5zMcx}qSz>osO?|>Kv7=a8w79as)KmemTosOFMt>Z7=a8A79as)KmcQ;uJxx!hJsJ0i)*b|*}U&P05iS} Al>h($ literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/._btagcsv_76x_expert.py b/Analysis/Ntuplizer/test/._btagcsv_76x_expert.py new file mode 100644 index 0000000000000000000000000000000000000000..7a0ee73b875aca600e76d396988d491dc9e09ce3 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoC8 z0nx!Q2dJDMO$#HC4;2?r&d=3LEGWoH)eA|jC~?h8&QHnAO9v__ElJb0ur@R{F)}o_ zv@k(4Vw5`?0;3@?8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71=Apq)Zf-o4!g=AzF zD-@*`=a&{Grz)i77iBAC=9Q%8m1O4UCFbN*D&(Z5l_(_TB<5uU`@&FNLz+VMKin%a J408Yf0|4W2DW3oU literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/._jetHT_data.py b/Analysis/Ntuplizer/test/._jetHT_data.py new file mode 100644 index 0000000000000000000000000000000000000000..5120b4c4a8a292fc45dc2658cc9e95b2a9faf2b4 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqjqT z3(>(a2dJDMO$#HC4;2?r&d=3LEGWoH)eA|jC~?h8&QHnAO9v__ElJb0ur@R{F)}o_ zv@k(4Vw5`?0;3@?8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71=Apq)Zf-o4!g=AzF zD-@*`=a&{Grz)i77iBAC=9Q%8m1O4UCFbN*D&(Z5l_(_TB<5uU`@&FNLz+VMKin%a J408Yf0|2QvDZBsx literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/._jetht_76x_expert.py b/Analysis/Ntuplizer/test/._jetht_76x_expert.py new file mode 100644 index 0000000000000000000000000000000000000000..6c21c315f9e96d3559e696685d0fedcab3f2321f GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoAo z0MWrP2dJDMO$#HC4;2?r&d=3LEGWoH)eA|jC~?h8&QHnAO9v__ElJb0ur@R{F)}o_ zv@k(4Vw5`?0;3@?8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71=Apq)Zf-o4!g=AzF zD-@*`=a&{Grz)i77iBAC=9Q%8m1O4UCFbN*D&(Z5l_(_TB<5uU`@&FNLz+VMKin%a J408Yf0|0C3DTe?6 literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/._ntuplizer_data_76x_expert.py b/Analysis/Ntuplizer/test/._ntuplizer_data_76x_expert.py new file mode 100644 index 0000000000000000000000000000000000000000..f6e3df5b7fd844a95105b605c8779643a4ade0de GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqg$a zh3H_I160nBriBs6hl-0Q=jZAr78K;9>V>3Ml(^<4=ci=mr2`d|mZa%gSQ{Ff7#W&d zT9}|2G0Ghcfzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!3i`5CC;HK^P3=LNYRo z6^c@e^Gl18Qx($ki?S6m^GZ_lN;32F5_57Y6>?J3N)(cE67#ZwePO7sAx)wBAMO$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqjqH zfaqYD160nBriBs6hl-0Q=jZAr78K;9>V>3Ml(^<4=ci=mr2`d|mZa%gSQ{Ff7#W&d zT9}|2G0Ghcfzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!3i`5CC;HK^P3=LNYRo z6^c@e^Gl18Qx($ki?S6m^GZ_lN;32F5_57Y6>?J3N)(cE67#ZwePO7sAx)wBAMO$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoAo z3emwZ2dJDMO$#HC4;2?r&d=3LEGWoH)eA|jC~?h8&QHnAO9v__ElJb0ur@R{F)}o_ zv@k(4Vw5`?0;3@?8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71=Apq)Zf-o4!g=AzF zD-@*`=a&{Grz)i77iBAC=9Q%8m1O4UCFbN*D&(Z5l_(_TB<5uU`@&FNLz+VMKin%a J408Yf0|2@rDU1LB literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/Rainer.py b/Analysis/Ntuplizer/test/Rainer.py new file mode 100644 index 0000000..d8d40e4 --- /dev/null +++ b/Analysis/Ntuplizer/test/Rainer.py @@ -0,0 +1,270 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("MssmHbb") + +process.load("FWCore.MessageService.MessageLogger_cfi") +process.MessageLogger.cerr.FwkReport.reportEvery = cms.untracked.int32(1000) + +## Using MINIAOD. GlobalTag just in case jet re-clustering, L1 trigger filter etc is needed to be done +process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") +from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag as customiseGlobalTag +process.GlobalTag = customiseGlobalTag(process.GlobalTag, globaltag = '76X_mcRun2_asymptotic_RunIIFall15DR76_v1') +process.GlobalTag.connect = 'frontier://FrontierProd/CMS_CONDITIONS' +process.GlobalTag.pfnPrefix = cms.untracked.string('frontier://FrontierProd/') +for pset in process.GlobalTag.toGet.value(): + pset.connect = pset.connect.value().replace('frontier://FrontierProd/', 'frontier://FrontierProd/') +## fix for multi-run processing +process.GlobalTag.RefreshEachRun = cms.untracked.bool( False ) +process.GlobalTag.ReconnectEachRun = cms.untracked.bool( False ) + +process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) + +output_file = 'output.root' +## TFileService +process.TFileService = cms.Service("TFileService", + fileName = cms.string(output_file) +) + +# ## ============ TRIGGER FILTER =============== BE CAREFUL!!! +# ## Enable below at cms.Path if needed +# process.triggerSelection = cms.EDFilter( "TriggerResultsFilter", +# triggerConditions = cms.vstring( +# "HLT_ZeroBias_v*", +# ), +# hltResults = cms.InputTag( "TriggerResults", "", "HLT" ), +# l1tResults = cms.InputTag( "" ), +# l1tIgnoreMask = cms.bool( False ), +# l1techIgnorePrescales = cms.bool( False ), +# daqPartitions = cms.uint32( 1 ), +# throw = cms.bool( True ) +# ) +# + +## ============ RE-APPLY JET ENERGY CORRECTIONS =============== BE CAREFUL!!! +## Enable below at cms.Path if needed +from PhysicsTools.PatAlgos.producersLayer1.jetUpdater_cff import patJetCorrFactorsUpdated +process.slimmedJetsCorrFactorsReapplyJEC = patJetCorrFactorsUpdated.clone( + src = cms.InputTag("slimmedJets","","PAT"), + levels = ['L1FastJet', + 'L2Relative', + 'L3Absolute'], + payload = 'AK4PFchs' ) # Make sure to choose the appropriate levels and payload here! + + +process.slimmedJetsPuppiCorrFactorsReapplyJEC = patJetCorrFactorsUpdated.clone( + src = cms.InputTag("slimmedJetsPuppi","","PAT"), + levels = ['L1FastJet', + 'L2Relative', + 'L3Absolute'], + payload = 'AK4PFPuppi' ) # Make sure to choose the appropriate levels and payload here! + +process.slimmedJetsAK8PFCorrFactorsReapplyJEC = patJetCorrFactorsUpdated.clone( + src = cms.InputTag("slimmedJetsAK8PFCHSSoftDropPacked","SubJets","PAT"), + levels = ['L1FastJet', + 'L2Relative', + 'L3Absolute'], + payload = 'AK8PFchs' ) # Make sure to choose the appropriate levels and payload here! + + +from PhysicsTools.PatAlgos.producersLayer1.jetUpdater_cff import patJetsUpdated +process.slimmedJetsReapplyJEC = patJetsUpdated.clone( + jetSource = cms.InputTag("slimmedJets","","PAT"), + jetCorrFactorsSource = cms.VInputTag(cms.InputTag("slimmedJetsCorrFactorsReapplyJEC")) + ) + +process.slimmedJetsPuppiReapplyJEC = patJetsUpdated.clone( + jetSource = cms.InputTag("slimmedJetsPuppi","","PAT"), + jetCorrFactorsSource = cms.VInputTag(cms.InputTag("slimmedJetsPuppiCorrFactorsReapplyJEC")) + ) + +process.slimmedJetsAK8PFCHSSoftDropPackedReapplyJEC = patJetsUpdated.clone( + jetSource = cms.InputTag("slimmedJetsAK8PFCHSSoftDropPacked","SubJets","PAT"), + jetCorrFactorsSource = cms.VInputTag(cms.InputTag("slimmedJetsAK8PFCorrFactorsReapplyJEC")) + ) + + +## ============ EVENT FILTER COUNTER =============== +## Filter counter (maybe more useful for MC) +process.TotalEvents = cms.EDProducer("EventCountProducer") +process.FilteredEvents = cms.EDProducer("EventCountProducer") + +## ============ PRIMARY VERTEX FILTER =============== +process.primaryVertexFilter = cms.EDFilter("VertexSelector", + src = cms.InputTag("offlineSlimmedPrimaryVertices"), # primary vertex collection name + cut = cms.string("!isFake && ndof > 4 && abs(z) <= 24 && position.Rho <= 2"), # ndof>thr=4 corresponds to sum(track_weigths) > (thr+3)/2 = 3.5 so typically 4 good tracks + filter = cms.bool(True), # otherwise it won't filter the events, just produce an empty vertex collection. +) +## =========== JET N FILTER ============== +process.jetCounterFilter = cms.EDFilter("CandViewCountFilter", + src = cms.InputTag("slimmedJetsPuppiReapplyJEC"), # new slimmed Jets + minNumber = cms.uint32(2), + ) + +## ============ KINEMATIC JET FILTER =============== +process.jetKinematicFilter = cms.EDFilter("kinematicJetFilter", + src = cms.InputTag("slimmedJetsPuppiReapplyJEC"), + pt = cms.vdouble(85.,85.), + eta = cms.vdouble(2.5,2.5), +) + +## ============ BTAG JET FILTER =============== +process.jetBTagFilter = cms.EDFilter("btagJetFilter", + src = cms.InputTag("slimmedJetsPuppiReapplyJEC"), + algo = cms.string("pfCombinedInclusiveSecondaryVertexV2BJetTags"), + btag = cms.vdouble(0.5,0.5), +) + +## ============ THE NTUPLIZER!!! =============== +process.MssmHbb = cms.EDAnalyzer("Ntuplizer", + MonteCarlo = cms.bool(True), + CrossSection = cms.double(1), # in pb + UseFullName = cms.bool(False), + ## Monte Carlo only + GenFilterInfo = cms.InputTag("genFilterEfficiencyProducer"), + GenRunInfo = cms.InputTag("generator"), + GenEventInfo = cms.InputTag("generator"), + GenJets = cms.VInputTag(cms.InputTag("slimmedGenJets")), + GenParticles = cms.VInputTag(cms.InputTag("prunedGenParticles")), + PileupInfo = cms.InputTag("slimmedAddPileupInfo"), + ################### + TotalEvents = cms.InputTag("TotalEvents"), + FilteredEvents = cms.InputTag("FilteredEvents"), + PatJets = cms.VInputTag( # Be careful with the correction uncertainties!!! +# cms.InputTag("slimmedJets","","PAT"), +# cms.InputTag("slimmedJetsPuppi","","PAT"), +# cms.InputTag("slimmedJetsAK8PFCHSSoftDropPacked","SubJets","PAT"), + cms.InputTag("slimmedJetsReapplyJEC"), + cms.InputTag("slimmedJetsPuppiReapplyJEC"), + cms.InputTag("slimmedJetsAK8PFCHSSoftDropPackedReapplyJEC") + ), + JECRecords = cms.vstring ( +# "", +# "", +# "", + "AK4PFchs", + "AK4PFPuppi", + "AK8PFchs", + ), + PatMETs = cms.VInputTag( + cms.InputTag("slimmedMETs","","PAT"), + cms.InputTag("slimmedMETsPuppi","","PAT") + ), + PatMuons = cms.VInputTag( + cms.InputTag("slimmedMuons","","PAT") + ), + PrimaryVertices = cms.VInputTag( + cms.InputTag("offlineSlimmedPrimaryVertices","","PAT") + ), + BTagAlgorithms = cms.vstring ( + "pfCombinedInclusiveSecondaryVertexV2BJetTags", +# "combinedSecondaryVertexBJetTags", +# "pfJetBProbabilityBJetTags", +# "pfJetProbabilityBJetTags", +# "pfTrackCountingHighPurBJetTags", +# "pfTrackCountingHighEffBJetTags", +# "pfSimpleSecondaryVertexHighEffBJetTags", +# "pfSimpleSecondaryVertexHighPurBJetTags", + "pfCombinedSecondaryVertexV2BJetTags", +# "pfCombinedSecondaryVertexSoftLeptonBJetTags", + "pfCombinedMVAV2BJetTags", + ), + BTagAlgorithmsAlias = cms.vstring ( + "btag_csvivf", +# "btag_csv", +# "btag_jetbprob", +# "btag_jetprob", +# "btag_tchp", +# "btag_tche", +# "btag_svhe", +# "btag_svhp", + "btag_csvv2", +# "btag_csvlep", + "btag_csvmva", + ), + TriggerResults = cms.VInputTag(cms.InputTag("TriggerResults","","HLT")), + TriggerPaths = cms.vstring ( + ## I recommend using the version number explicitly to be able to compare + ## however for production one has to be careful that all versions are included. + ## Thinking of a better solution... + 'HLT_DoubleJetsC100_DoubleBTagCSV0p85_DoublePFJetsC160_v', + 'HLT_DoubleJetsC100_DoubleBTagCSV0p9_DoublePFJetsC100MaxDeta1p6_v', + 'HLT_DoubleJetsC112_DoubleBTagCSV0p85_DoublePFJetsC172_v', + 'HLT_DoubleJetsC112_DoubleBTagCSV0p9_DoublePFJetsC112MaxDeta1p6_v', + 'HLT_PFJet60_v', + 'HLT_PFJet80_v', + 'HLT_PFJet140_v', + ), + TriggerObjectStandAlone = cms.VInputTag( + cms.InputTag("selectedPatTrigger","","PAT"), + ), + TriggerObjectLabels = cms.vstring ( + "hltL1sL1DoubleJetC100", + "hltDoubleJetsC100", + "hltDoublePFJetsC100", + "hltDoublePFJetsC100MaxDeta1p6", + "hltDoublePFJetsC160", + "hltDoubleBTagCSV0p85", + "hltDoubleBTagCSV0p9", + "hltL1sL1DoubleJetC112", + "hltDoubleJetsC112", + "hltDoublePFJetsC112", + "hltDoublePFJetsC112MaxDeta1p6", + "hltDoublePFJetsC172", + "hltL1sL1SingleJet36", + "hltSingleCaloJet40", + "hltPFJetsCorrectedMatchedToCaloJets40", + "hltSinglePFJet60", + "hltL1sL1SingleJet52", + "hltPFJetsCorrectedMatchedToCaloJets50", + "hltSingleCaloJet50", + "hltSinglePFJet80", + "hltL1sL1SingleJet92", + "hltPFJetsCorrectedMatchedToCaloJets110", + "hltSingleCaloJet110", + "hltSinglePFJet140", + ), +# L1ExtraJets = cms.VInputTag( +# cms.InputTag("l1extraParticles","Central","RECO"), +# cms.InputTag("l1extraParticles","Forward","RECO"), +# cms.InputTag("l1extraParticles","Tau","RECO") +# ), +# L1ExtraMuons = cms.VInputTag( +# cms.InputTag("l1extraParticles","","RECO") +# ), +) + +process.p = cms.Path( + process.TotalEvents * + process.primaryVertexFilter * + process.slimmedJetsCorrFactorsReapplyJEC * process. slimmedJetsReapplyJEC * + process.slimmedJetsPuppiCorrFactorsReapplyJEC * process. slimmedJetsPuppiReapplyJEC * + process.slimmedJetsAK8PFCorrFactorsReapplyJEC * process. slimmedJetsAK8PFCHSSoftDropPackedReapplyJEC * + process.jetCounterFilter * process.jetKinematicFilter * + process.FilteredEvents * + process.MssmHbb + ) + + +readFiles = cms.untracked.vstring() +secFiles = cms.untracked.vstring() +process.source = cms.Source ("PoolSource",fileNames = readFiles, secondaryFileNames = secFiles) +readFiles.extend( [ + '/store/mc/RunIIFall15MiniAODv2/SUSYGluGluToBBHToBB_M-1100_TuneCUETP8M1_13TeV-pythia8/MINIAODSIM/PU25nsData2015v1_76X_mcRun2_asymptotic_v12-v1/10000/08569244-E4B8-E511-8D20-141877410E71.root', + +# '/store/mc/RunIIFall15MiniAODv2/SUSYGluGluToBBHToTauTau_M-3200_TuneCUETP8M1_13TeV-pythia8/MINIAODSIM/PU25nsData2015v1_76X_mcRun2_asymptotic_v12-v1/20000/788D0EEF-28BF-E511-B312-00221981866E.root', + +# '/store/mc/RunIIFall15MiniAODv2/SUSYGluGluToBBHToTauTau_M-100_TuneCUETP8M1_13TeV-pythia8/MINIAODSIM/PU25nsData2015v1_76X_mcRun2_asymptotic_v12-v1/20000/1C96EEF0-AFB8-E511-ABE3-0CC47A4C8F18.root', + +# '/store/mc/RunIIFall15MiniAODv2/SUSYGluGluToBBHToTauTau_M-1200_TuneCUETP8M1_13TeV-pythia8/MINIAODSIM/PU25nsData2015v1_76X_mcRun2_asymptotic_v12-v1/10000/1E809BEC-52B8-E511-BF19-001EC9ADE6A4.root', +''' + '/store/mc/RunIIFall15MiniAODv2/QCD_Pt_800to1000_TuneCUETP8M1_13TeV_pythia8/MINIAODSIM/PU25nsData2015v1_76X_mcRun2_asymptotic_v12-v1/60000/0659E975-5BB8-E511-BBD9-C81F66B7ED99.root', + '/store/mc/RunIIFall15MiniAODv2/QCD_Pt_800to1000_TuneCUETP8M1_13TeV_pythia8/MINIAODSIM/PU25nsData2015v1_76X_mcRun2_asymptotic_v12-v1/60000/08F6536B-5CB8-E511-B0F0-0025905A60D0.root', + '/store/mc/RunIIFall15MiniAODv2/QCD_Pt_800to1000_TuneCUETP8M1_13TeV_pythia8/MINIAODSIM/PU25nsData2015v1_76X_mcRun2_asymptotic_v12-v1/60000/10236D50-5BB8-E511-AB57-0025905B8582.root', + '/store/mc/RunIIFall15MiniAODv2/QCD_Pt_800to1000_TuneCUETP8M1_13TeV_pythia8/MINIAODSIM/PU25nsData2015v1_76X_mcRun2_asymptotic_v12-v1/60000/1644DB69-5CB8-E511-BD02-0025905A6088.root', + '/store/mc/RunIIFall15MiniAODv2/QCD_Pt_800to1000_TuneCUETP8M1_13TeV_pythia8/MINIAODSIM/PU25nsData2015v1_76X_mcRun2_asymptotic_v12-v1/60000/1657938B-5BB8-E511-AE90-0025905A6066.root', +''' +] ); + + +secFiles.extend( [ + ] ) diff --git a/Analysis/Ntuplizer/test/btag_data.py b/Analysis/Ntuplizer/test/btag_data.py new file mode 100644 index 0000000..2496654 --- /dev/null +++ b/Analysis/Ntuplizer/test/btag_data.py @@ -0,0 +1,186 @@ +import os +import FWCore.ParameterSet.Config as cms + +process = cms.Process("MssmHbb") + +process.load("FWCore.MessageService.MessageLogger_cfi") +process.MessageLogger.cerr.FwkReport.reportEvery = cms.untracked.int32(-1) + +## Using MINIAOD. GlobalTag just in case jet re-clustering, L1 trigger filter etc is needed to be done +process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") +from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag as customiseGlobalTag +#process.GlobalTag = customiseGlobalTag(process.GlobalTag, globaltag = '74X_dataRun2_Prompt_v1') +process.GlobalTag = customiseGlobalTag(process.GlobalTag, globaltag = '74X_dataRun2_v5') +process.GlobalTag.connect = 'frontier://FrontierProd/CMS_CONDITIONS' +process.GlobalTag.pfnPrefix = cms.untracked.string('frontier://FrontierProd/') +for pset in process.GlobalTag.toGet.value(): + pset.connect = pset.connect.value().replace('frontier://FrontierProd/', 'frontier://FrontierProd/') +## fix for multi-run processing +process.GlobalTag.RefreshEachRun = cms.untracked.bool( False ) +process.GlobalTag.ReconnectEachRun = cms.untracked.bool( False ) + +process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) + +output_file = 'output.root' +## TFileService +process.TFileService = cms.Service("TFileService", + fileName = cms.string(output_file) +) + +## ============ TRIGGER FILTER =============== +## Enable below at cms.Path if needed (not recommended for Monte Carlo samples) +process.triggerSelection = cms.EDFilter( "TriggerResultsFilter", + triggerConditions = cms.vstring( + "HLT_DoubleJetsC100_DoubleBTagCSV0p9_DoublePFJetsC100MaxDeta1p6_v*", + "HLT_DoubleJetsC100_DoubleBTagCSV0p85_DoublePFJetsC160_v*", + "HLT_DoubleJetsC112_DoubleBTagCSV0p9_DoublePFJetsC112MaxDeta1p6_v*", + "HLT_DoubleJetsC112_DoubleBTagCSV0p85_DoublePFJetsC172_v*", + "HLT_DoubleJet90_Double30_TripleBTagCSV0p67_v*", + "HLT_QuadJet45_DoubleBTagCSV0p67_v*", + "HLT_QuadJet45_TripleBTagCSV0p67_v*", + "HLT_QuadPFJet_DoubleBTagCSV_VBF_Mqq200_v*", + "HLT_QuadPFJet_DoubleBTagCSV_VBF_Mqq240_v*", + "HLT_QuadPFJet_SingleBTagCSV_VBF_Mqq460_v*", + "HLT_QuadPFJet_SingleBTagCSV_VBF_Mqq500_v*", + + ), + hltResults = cms.InputTag( "TriggerResults", "", "HLT" ), + l1tResults = cms.InputTag( "" ), + l1tIgnoreMask = cms.bool( False ), + l1techIgnorePrescales = cms.bool( False ), + daqPartitions = cms.uint32( 1 ), + throw = cms.bool( True ) +) + +## ============ EVENT FILTER COUNTER =============== +## Filter counter (maybe more useful for MC) +process.TotalEvents = cms.EDProducer("EventCountProducer") +process.FilteredEvents = cms.EDProducer("EventCountProducer") + +## ============ PRIMARY VERTEX FILTER =============== +process.primaryVertexFilter = cms.EDFilter("VertexSelector", + src = cms.InputTag("offlineSlimmedPrimaryVertices"), # primary vertex collection name + cut = cms.string("!isFake && ndof > 4 && abs(z) <= 24 && position.Rho <= 2"), # ndof>thr=4 corresponds to sum(track_weigths) > (thr+3)/2 = 3.5 so typically 4 good tracks + filter = cms.bool(True), # otherwise it won't filter the events, just produce an empty vertex collection. +) + + + + +## ============ THE NTUPLIZER!!! =============== +process.MssmHbb = cms.EDAnalyzer("Ntuplizer", + MonteCarlo = cms.bool(False), + UseFullName = cms.bool(False), + TotalEvents = cms.InputTag("TotalEvents"), + FilteredEvents = cms.InputTag("FilteredEvents"), + PatJets = cms.VInputTag( + cms.InputTag("slimmedJetsPuppi","","PAT"), + cms.InputTag("slimmedJetsAK8PFCHSSoftDropPacked","SubJets","PAT") + ), + PatMETs = cms.VInputTag( + cms.InputTag("slimmedMETs","","PAT"), + cms.InputTag("slimmedMETsPuppi","","PAT") + ), + PatMuons = cms.VInputTag( + cms.InputTag("slimmedMuons","","PAT") + ), + PrimaryVertices = cms.VInputTag( + cms.InputTag("offlineSlimmedPrimaryVertices","","PAT") + ), + BTagAlgorithms = cms.vstring ( + "pfCombinedInclusiveSecondaryVertexV2BJetTags", + "combinedSecondaryVertexBJetTags", + "pfJetBProbabilityBJetTags", + "pfJetProbabilityBJetTags", + "pfTrackCountingHighPurBJetTags", + "pfTrackCountingHighEffBJetTags", + "pfSimpleSecondaryVertexHighEffBJetTags", + "pfSimpleSecondaryVertexHighPurBJetTags", + "pfCombinedSecondaryVertexV2BJetTags", + "pfCombinedSecondaryVertexSoftLeptonBJetTags", + "pfCombinedMVABJetTags", + ), + BTagAlgorithmsAlias = cms.vstring ( + "btag_csvivf", + "btag_csv", + "btag_jetbprob", + "btag_jetprob", + "btag_tchp", + "btag_tche", + "btag_svhe", + "btag_svhp", + "btag_csvv2", + "btag_csvlep", + "btag_csvmva", + ), + TriggerResults = cms.VInputTag(cms.InputTag("TriggerResults","","HLT")), + TriggerPaths = cms.vstring ( + ## I recommend using the version number explicitly to be able to compare + ## however for production one has to be careful that all versions are included. + ## Thinking of a better solution... + "HLT_DoubleJetsC100_DoubleBTagCSV0p9_DoublePFJetsC100MaxDeta1p6_v", + "HLT_DoubleJetsC100_DoubleBTagCSV0p85_DoublePFJetsC160_v", + "HLT_DoubleJetsC112_DoubleBTagCSV0p9_DoublePFJetsC112MaxDeta1p6_v", + "HLT_DoubleJetsC112_DoubleBTagCSV0p85_DoublePFJetsC172_v", + "HLT_DoubleJet90_Double30_TripleBTagCSV0p67_v", + "HLT_QuadJet45_DoubleBTagCSV0p67_v", + "HLT_QuadJet45_TripleBTagCSV0p67_v", + "HLT_QuadPFJet_DoubleBTagCSV_VBF_Mqq200_v", + "HLT_QuadPFJet_DoubleBTagCSV_VBF_Mqq240_v", + "HLT_QuadPFJet_SingleBTagCSV_VBF_Mqq460_v", + "HLT_QuadPFJet_SingleBTagCSV_VBF_Mqq500_v", + ), + TriggerObjectStandAlone = cms.VInputTag( + cms.InputTag("selectedPatTrigger","","PAT"), + ), + TriggerObjectLabels = cms.vstring ( + "hltL1sL1DoubleJetC100", + "hltDoubleJetsC100", + "hltDoublePFJetsC100", + "hltDoublePFJetsC100MaxDeta1p6", + "hltDoublePFJetsC160", + "hltDoubleBTagCSV0p85", + "hltDoubleBTagCSV0p9", + "hltL1sL1DoubleJetC112", + "hltDoubleJetsC112", + "hltDoublePFJetsC112", + "hltDoublePFJetsC112MaxDeta1p6", + "hltDoublePFJetsC172", + ), +# L1ExtraJets = cms.VInputTag( +# cms.InputTag("l1extraParticles","Central","RECO"), +# cms.InputTag("l1extraParticles","Forward","RECO"), +# cms.InputTag("l1extraParticles","Tau","RECO") +# ), +# L1ExtraMuons = cms.VInputTag( +# cms.InputTag("l1extraParticles","","RECO") +# ), +) + +process.p = cms.Path( + process.TotalEvents * + process.primaryVertexFilter * + process.triggerSelection * + process.FilteredEvents * + process.MssmHbb + ) + +readFiles = cms.untracked.vstring() +secFiles = cms.untracked.vstring() +process.source = cms.Source ("PoolSource",fileNames = readFiles, secondaryFileNames = secFiles) + +readFiles.extend( [ + + '/store/data/Run2015D/BTagCSV/MINIAOD/05Oct2015-v1/30000/0887DF7D-766F-E511-A040-0025905A6136.root', + '/store/data/Run2015D/BTagCSV/MINIAOD/05Oct2015-v1/30000/0CD9A7F9-726F-E511-9BB0-0025905A60A6.root', + '/store/data/Run2015D/BTagCSV/MINIAOD/05Oct2015-v1/30000/0E2F6212-7A6F-E511-88FB-00261894387C.root', + '/store/data/Run2015D/BTagCSV/MINIAOD/05Oct2015-v1/30000/10258F15-7A6F-E511-9633-002590593878.root', + '/store/data/Run2015D/BTagCSV/MINIAOD/05Oct2015-v1/30000/14C59C7B-766F-E511-B494-003048FFD7C2.root', + '/store/data/Run2015D/BTagCSV/MINIAOD/05Oct2015-v1/30000/187A1DD3-7B6F-E511-A2F0-002590596498.root', + '/store/data/Run2015D/BTagCSV/MINIAOD/05Oct2015-v1/30000/1A46877D-766F-E511-B79A-0025905B8590.root' +] ); + + +secFiles.extend( [ + ] ) + diff --git a/Analysis/Ntuplizer/test/btag_data_PromptReco4.py b/Analysis/Ntuplizer/test/btag_data_PromptReco4.py new file mode 100644 index 0000000..dfe2192 --- /dev/null +++ b/Analysis/Ntuplizer/test/btag_data_PromptReco4.py @@ -0,0 +1,186 @@ +import os +import FWCore.ParameterSet.Config as cms + +process = cms.Process("MssmHbb") + +process.load("FWCore.MessageService.MessageLogger_cfi") +process.MessageLogger.cerr.FwkReport.reportEvery = cms.untracked.int32(-1) + +## Using MINIAOD. GlobalTag just in case jet re-clustering, L1 trigger filter etc is needed to be done +process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") +from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag as customiseGlobalTag +#process.GlobalTag = customiseGlobalTag(process.GlobalTag, globaltag = '74X_dataRun2_Prompt_v1') +process.GlobalTag = customiseGlobalTag(process.GlobalTag, globaltag = '74X_dataRun2_v5') +process.GlobalTag.connect = 'frontier://FrontierProd/CMS_CONDITIONS' +process.GlobalTag.pfnPrefix = cms.untracked.string('frontier://FrontierProd/') +for pset in process.GlobalTag.toGet.value(): + pset.connect = pset.connect.value().replace('frontier://FrontierProd/', 'frontier://FrontierProd/') +## fix for multi-run processing +process.GlobalTag.RefreshEachRun = cms.untracked.bool( False ) +process.GlobalTag.ReconnectEachRun = cms.untracked.bool( False ) + +process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) + +output_file = 'output.root' +## TFileService +process.TFileService = cms.Service("TFileService", + fileName = cms.string(output_file) +) + +## ============ TRIGGER FILTER =============== +## Enable below at cms.Path if needed (not recommended for Monte Carlo samples) +process.triggerSelection = cms.EDFilter( "TriggerResultsFilter", + triggerConditions = cms.vstring( + "HLT_DoubleJetsC100_DoubleBTagCSV0p9_DoublePFJetsC100MaxDeta1p6_v*", + "HLT_DoubleJetsC100_DoubleBTagCSV0p85_DoublePFJetsC160_v*", + "HLT_DoubleJetsC112_DoubleBTagCSV0p9_DoublePFJetsC112MaxDeta1p6_v*", + "HLT_DoubleJetsC112_DoubleBTagCSV0p85_DoublePFJetsC172_v*", + "HLT_DoubleJet90_Double30_TripleBTagCSV0p67_v*", + "HLT_QuadJet45_DoubleBTagCSV0p67_v*", + "HLT_QuadJet45_TripleBTagCSV0p67_v*", + "HLT_QuadPFJet_DoubleBTagCSV_VBF_Mqq200_v*", + "HLT_QuadPFJet_DoubleBTagCSV_VBF_Mqq240_v*", + "HLT_QuadPFJet_SingleBTagCSV_VBF_Mqq460_v*", + "HLT_QuadPFJet_SingleBTagCSV_VBF_Mqq500_v*", + + ), + hltResults = cms.InputTag( "TriggerResults", "", "HLT" ), + l1tResults = cms.InputTag( "" ), + l1tIgnoreMask = cms.bool( False ), + l1techIgnorePrescales = cms.bool( False ), + daqPartitions = cms.uint32( 1 ), + throw = cms.bool( True ) +) + +## ============ EVENT FILTER COUNTER =============== +## Filter counter (maybe more useful for MC) +process.TotalEvents = cms.EDProducer("EventCountProducer") +process.FilteredEvents = cms.EDProducer("EventCountProducer") + +## ============ PRIMARY VERTEX FILTER =============== +process.primaryVertexFilter = cms.EDFilter("VertexSelector", + src = cms.InputTag("offlineSlimmedPrimaryVertices"), # primary vertex collection name + cut = cms.string("!isFake && ndof > 4 && abs(z) <= 24 && position.Rho <= 2"), # ndof>thr=4 corresponds to sum(track_weigths) > (thr+3)/2 = 3.5 so typically 4 good tracks + filter = cms.bool(True), # otherwise it won't filter the events, just produce an empty vertex collection. +) + + + + +## ============ THE NTUPLIZER!!! =============== +process.MssmHbb = cms.EDAnalyzer("Ntuplizer", + MonteCarlo = cms.bool(False), + UseFullName = cms.bool(False), + TotalEvents = cms.InputTag("TotalEvents"), + FilteredEvents = cms.InputTag("FilteredEvents"), + PatJets = cms.VInputTag( + cms.InputTag("slimmedJetsPuppi"), + cms.InputTag("slimmedJetsAK8PFCHSSoftDropPacked","SubJets") + ), + PatMETs = cms.VInputTag( + cms.InputTag("slimmedMETs"), + cms.InputTag("slimmedMETsPuppi") + ), + PatMuons = cms.VInputTag( + cms.InputTag("slimmedMuons") + ), + PrimaryVertices = cms.VInputTag( + cms.InputTag("offlineSlimmedPrimaryVertices") + ), + BTagAlgorithms = cms.vstring ( + "pfCombinedInclusiveSecondaryVertexV2BJetTags", + "combinedSecondaryVertexBJetTags", + "pfJetBProbabilityBJetTags", + "pfJetProbabilityBJetTags", + "pfTrackCountingHighPurBJetTags", + "pfTrackCountingHighEffBJetTags", + "pfSimpleSecondaryVertexHighEffBJetTags", + "pfSimpleSecondaryVertexHighPurBJetTags", + "pfCombinedSecondaryVertexV2BJetTags", + "pfCombinedSecondaryVertexSoftLeptonBJetTags", + "pfCombinedMVABJetTags", + ), + BTagAlgorithmsAlias = cms.vstring ( + "btag_csvivf", + "btag_csv", + "btag_jetbprob", + "btag_jetprob", + "btag_tchp", + "btag_tche", + "btag_svhe", + "btag_svhp", + "btag_csvv2", + "btag_csvlep", + "btag_csvmva", + ), + TriggerResults = cms.VInputTag(cms.InputTag("TriggerResults")), + TriggerPaths = cms.vstring ( + ## I recommend using the version number explicitly to be able to compare + ## however for production one has to be careful that all versions are included. + ## Thinking of a better solution... + "HLT_DoubleJetsC100_DoubleBTagCSV0p9_DoublePFJetsC100MaxDeta1p6_v", + "HLT_DoubleJetsC100_DoubleBTagCSV0p85_DoublePFJetsC160_v", + "HLT_DoubleJetsC112_DoubleBTagCSV0p9_DoublePFJetsC112MaxDeta1p6_v", + "HLT_DoubleJetsC112_DoubleBTagCSV0p85_DoublePFJetsC172_v", + "HLT_DoubleJet90_Double30_TripleBTagCSV0p67_v", + "HLT_QuadJet45_DoubleBTagCSV0p67_v", + "HLT_QuadJet45_TripleBTagCSV0p67_v", + "HLT_QuadPFJet_DoubleBTagCSV_VBF_Mqq200_v", + "HLT_QuadPFJet_DoubleBTagCSV_VBF_Mqq240_v", + "HLT_QuadPFJet_SingleBTagCSV_VBF_Mqq460_v", + "HLT_QuadPFJet_SingleBTagCSV_VBF_Mqq500_v", + ), + TriggerObjectStandAlone = cms.VInputTag( + cms.InputTag("selectedPatTrigger"), + ), + TriggerObjectLabels = cms.vstring ( + "hltL1sL1DoubleJetC100", + "hltDoubleJetsC100", + "hltDoublePFJetsC100", + "hltDoublePFJetsC100MaxDeta1p6", + "hltDoublePFJetsC160", + "hltDoubleBTagCSV0p85", + "hltDoubleBTagCSV0p9", + "hltL1sL1DoubleJetC112", + "hltDoubleJetsC112", + "hltDoublePFJetsC112", + "hltDoublePFJetsC112MaxDeta1p6", + "hltDoublePFJetsC172", + ), +# L1ExtraJets = cms.VInputTag( +# cms.InputTag("l1extraParticles","Central","RECO"), +# cms.InputTag("l1extraParticles","Forward","RECO"), +# cms.InputTag("l1extraParticles","Tau","RECO") +# ), +# L1ExtraMuons = cms.VInputTag( +# cms.InputTag("l1extraParticles","","RECO") +# ), +) + +process.p = cms.Path( + process.TotalEvents * + process.primaryVertexFilter * + process.triggerSelection * + process.FilteredEvents * + process.MssmHbb + ) + +readFiles = cms.untracked.vstring() +secFiles = cms.untracked.vstring() +process.source = cms.Source ("PoolSource",fileNames = readFiles, secondaryFileNames = secFiles) + +readFiles.extend( [ + + '/store/data/Run2015D/BTagCSV/MINIAOD/05Oct2015-v1/30000/0887DF7D-766F-E511-A040-0025905A6136.root', + '/store/data/Run2015D/BTagCSV/MINIAOD/05Oct2015-v1/30000/0CD9A7F9-726F-E511-9BB0-0025905A60A6.root', + '/store/data/Run2015D/BTagCSV/MINIAOD/05Oct2015-v1/30000/0E2F6212-7A6F-E511-88FB-00261894387C.root', + '/store/data/Run2015D/BTagCSV/MINIAOD/05Oct2015-v1/30000/10258F15-7A6F-E511-9633-002590593878.root', + '/store/data/Run2015D/BTagCSV/MINIAOD/05Oct2015-v1/30000/14C59C7B-766F-E511-B494-003048FFD7C2.root', + '/store/data/Run2015D/BTagCSV/MINIAOD/05Oct2015-v1/30000/187A1DD3-7B6F-E511-A2F0-002590596498.root', + '/store/data/Run2015D/BTagCSV/MINIAOD/05Oct2015-v1/30000/1A46877D-766F-E511-B79A-0025905B8590.root' +] ); + + +secFiles.extend( [ + ] ) + diff --git a/Analysis/Ntuplizer/test/btagcsv_2016_80x_expert.py b/Analysis/Ntuplizer/test/btagcsv_2016_80x_expert.py new file mode 100644 index 0000000..a65b894 --- /dev/null +++ b/Analysis/Ntuplizer/test/btagcsv_2016_80x_expert.py @@ -0,0 +1,334 @@ +import FWCore.ParameterSet.Config as cms +import os + +process = cms.Process("MssmHbb") + +process.load("FWCore.MessageService.MessageLogger_cfi") +process.MessageLogger.cerr.FwkReport.reportEvery = cms.untracked.int32(1) + +## Using MINIAOD. GlobalTag just in case jet re-clustering, L1 trigger filter etc is needed to be done +process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") +from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag as customiseGlobalTag +process.GlobalTag = customiseGlobalTag(process.GlobalTag, globaltag = '80X_dataRun2_Prompt_v9') +process.GlobalTag.connect = 'frontier://FrontierProd/CMS_CONDITIONS' +process.GlobalTag.pfnPrefix = cms.untracked.string('frontier://FrontierProd/') +for pset in process.GlobalTag.toGet.value(): + pset.connect = pset.connect.value().replace('frontier://FrontierProd/', 'frontier://FrontierProd/') +## fix for multi-run processing +process.GlobalTag.RefreshEachRun = cms.untracked.bool( False ) +process.GlobalTag.ReconnectEachRun = cms.untracked.bool( False ) + +process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(500) ) + +output_file = 'output.root' +## TFileService +process.TFileService = cms.Service("TFileService", + fileName = cms.string(output_file) +) + + +## ============ TRIGGER FILTER =============== +## Enable below at cms.Path if needed +process.triggerSelection = cms.EDFilter( "TriggerResultsFilter", + triggerConditions = cms.vstring( + 'HLT_DoubleJetsC100_DoubleBTagCSV_p026_DoublePFJetsC160_v*', + 'HLT_DoubleJetsC100_DoubleBTagCSV_p014_DoublePFJetsC100MaxDeta1p6_v*', + 'HLT_DoubleJetsC112_DoubleBTagCSV_p026_DoublePFJetsC172_v*', + 'HLT_DoubleJetsC112_DoubleBTagCSV_p014_DoublePFJetsC112MaxDeta1p6_v*', + 'HLT_DoubleJetsC100_SingleBTagCSV_p026_v*', + 'HLT_DoubleJetsC100_SingleBTagCSV_p014_v*', + 'HLT_DoubleJetsC100_SingleBTagCSV_p026_SinglePFJetC350_v*', + 'HLT_DoubleJetsC100_SingleBTagCSV_p014_SinglePFJetC350_v*', +# 'HLT_PFJet40_v*', +# 'HLT_PFJet60_v*', +# 'HLT_PFJet80_v*', +# 'HLT_PFJet140_v*', + ), + hltResults = cms.InputTag( "TriggerResults", "", "HLT" ), + l1tResults = cms.InputTag( "" ), + l1tIgnoreMask = cms.bool( False ), + l1techIgnorePrescales = cms.bool( False ), + daqPartitions = cms.uint32( 1 ), + throw = cms.bool( True ) +) + + +''' +## ============ RE-APPLY JET ENERGY CORRECTIONS =============== BE CAREFUL!!! +## Enable below at cms.Path if needed +from PhysicsTools.PatAlgos.producersLayer1.jetUpdater_cff import patJetCorrFactorsUpdated +process.slimmedJetsCorrFactorsReapplyJEC = patJetCorrFactorsUpdated.clone( + src = cms.InputTag("slimmedJets"), + levels = ['L1FastJet', + 'L2Relative', + 'L3Absolute'], + payload = 'AK4PFchs' ) # Make sure to choose the appropriate levels and payload here! + + +process.slimmedJetsPuppiCorrFactorsReapplyJEC = patJetCorrFactorsUpdated.clone( + src = cms.InputTag("slimmedJetsPuppi"), + levels = ['L1FastJet', + 'L2Relative', + 'L3Absolute'], + payload = 'AK4PFPuppi' ) # Make sure to choose the appropriate levels and payload here! + +process.slimmedJetsAK8PFCorrFactorsReapplyJEC = patJetCorrFactorsUpdated.clone( + src = cms.InputTag("slimmedJetsAK8PFCHSSoftDropPacked","SubJets","RECO"), + levels = ['L1FastJet', + 'L2Relative', + 'L3Absolute'], + payload = 'AK8PFchs' ) # Make sure to choose the appropriate levels and payload here! + + +from PhysicsTools.PatAlgos.producersLayer1.jetUpdater_cff import patJetsUpdated +process.slimmedJetsReapplyJEC = patJetsUpdated.clone( + jetSource = cms.InputTag("slimmedJets"), + jetCorrFactorsSource = cms.VInputTag(cms.InputTag("slimmedJetsCorrFactorsReapplyJEC")) + ) + +process.slimmedJetsPuppiReapplyJEC = patJetsUpdated.clone( + jetSource = cms.InputTag("slimmedJetsPuppi"), + jetCorrFactorsSource = cms.VInputTag(cms.InputTag("slimmedJetsPuppiCorrFactorsReapplyJEC")) + ) + +process.slimmedJetsAK8PFCHSSoftDropPackedReapplyJEC = patJetsUpdated.clone( + jetSource = cms.InputTag("slimmedJetsAK8PFCHSSoftDropPacked","SubJets","RECO"), + jetCorrFactorsSource = cms.VInputTag(cms.InputTag("slimmedJetsAK8PFCorrFactorsReapplyJEC")) + ) + +''' +## ============= Jet Energy Resolution ============= + +process.load('Configuration.StandardSequences.Services_cff') +process.load("JetMETCorrections.Modules.JetResolutionESProducer_cfi") +from CondCore.DBCommon.CondDBSetup_cfi import * + +process.jer_AK4PFchs = cms.ESSource("PoolDBESSource",CondDBSetup,toGet = cms.VPSet( + # Resolution + cms.PSet( + record = cms.string('JetResolutionRcd'), + tag = cms.string('JR_Fall15_25nsV2_DATA_PtResolution_AK4PFchs'), + label = cms.untracked.string('AK4PFchs_pt') + ), + + # Scale factors + cms.PSet( + record = cms.string('JetResolutionScaleFactorRcd'), + tag = cms.string('JR_Fall15_25nsV2_DATA_SF_AK4PFchs'), + label = cms.untracked.string('AK4PFchs') + ), + ), + connect = cms.string('sqlite_fip:Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA.db') + ) + +process.es_prefer_jer_AK4PFchs = cms.ESPrefer('PoolDBESSource', 'jer_AK4PFchs') + +process.jer_AK8PFchs = cms.ESSource("PoolDBESSource",CondDBSetup,toGet = cms.VPSet( + # Resolution + cms.PSet( + record = cms.string('JetResolutionRcd'), + tag = cms.string('JR_Fall15_25nsV2_DATA_PtResolution_AK8PFchs'), + label = cms.untracked.string('AK8PFchs_pt') + ), + + # Scale factors + cms.PSet( + record = cms.string('JetResolutionScaleFactorRcd'), + tag = cms.string('JR_Fall15_25nsV2_DATA_SF_AK8PFchs'), + label = cms.untracked.string('AK8PFchs') + ), + ), + connect = cms.string('sqlite_fip:Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA.db') + ) + +process.es_prefer_jer_AK8PFchs = cms.ESPrefer('PoolDBESSource', 'jer_AK8PFchs') + +## ================================================= + +## ============ EVENT FILTER COUNTER =============== +## Filter counter (maybe more useful for MC) +process.TotalEvents = cms.EDProducer("EventCountProducer") +process.FilteredEvents = cms.EDProducer("EventCountProducer") + +## ============ PRIMARY VERTEX FILTER =============== +process.primaryVertexFilter = cms.EDFilter("VertexSelector", + src = cms.InputTag("offlineSlimmedPrimaryVertices"), # primary vertex collection name + cut = cms.string("!isFake && ndof > 4 && abs(z) <= 24 && position.Rho <= 2"), # ndof>thr=4 corresponds to sum(track_weigths) > (thr+3)/2 = 3.5 so typically 4 good tracks + filter = cms.bool(True), # otherwise it won't filter the events, just produce an empty vertex collection. +) + +## =========== JET N FILTER ============== +process.jetCounterFilter = cms.EDFilter("CandViewCountFilter", + src = cms.InputTag("slimmedJets"), # new slimmed Jets + minNumber = cms.uint32(2), + ) + +## ============ KINEMATIC JET FILTER =============== +process.jetKinematicFilter = cms.EDFilter("kinematicJetFilter", + src = cms.InputTag("slimmedJets"), + pt = cms.vdouble(85.,85.), + eta = cms.vdouble(2.5,2.5), +) + +## ============ BTAG JET FILTER =============== +process.jetBTagFilter = cms.EDFilter("btagJetFilter", + src = cms.InputTag("slimmedJets"), + algo = cms.string("pfCombinedInclusiveSecondaryVertexV2BJetTags"), + btag = cms.vdouble(0.5,0.5), +) + +## ============ THE NTUPLIZER!!! =============== +process.MssmHbb = cms.EDAnalyzer("Ntuplizer", + MonteCarlo = cms.bool(False), + CrossSection = cms.double(1), # in pb + UseFullName = cms.bool(False), + ################### + TotalEvents = cms.InputTag("TotalEvents"), + FilteredEvents = cms.InputTag("FilteredEvents"), + Rho = cms.InputTag("fixedGridRhoFastjetAll"), +# JERResFiles = cms.vstring( +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PtResolution_AK4PFchs.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PtResolution_AK4PFPuppi.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PtResolution_AK8PFchs.txt", +# ), +# JERSfFiles = cms.vstring( +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_SF_AK4PFchs.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_SF_AK4PFPuppi.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_SF_AK8PFchs.txt" +# ), + PatJets = cms.VInputTag( # Be careful with the correction uncertainties!!! + cms.InputTag("slimmedJets","","RECO"), +# cms.InputTag("slimmedJetsPuppiReapplyJEC"), +# cms.InputTag("slimmedJetsAK8PFCHSSoftDropPacked","SubJets","RECO") + ), +# JERRecords = cms.vstring ( +# "AK4PFchs", +# "AK4PFPuppi", +# "AK8PFchs", +# ), +# JECRecords = cms.vstring ( +# "AK4PFchs", +# "AK4PFPuppi", +# "AK8PFchs", +# ), + PatMETs = cms.VInputTag( + cms.InputTag("slimmedMETs"), + cms.InputTag("slimmedMETsPuppi") + ), + PatMuons = cms.VInputTag( + cms.InputTag("slimmedMuons") + ), + PrimaryVertices = cms.VInputTag( + cms.InputTag("offlineSlimmedPrimaryVertices") + ), + BTagAlgorithms = cms.vstring ( + "pfCombinedInclusiveSecondaryVertexV2BJetTags", +# "combinedSecondaryVertexBJetTags", +# "pfJetBProbabilityBJetTags", +# "pfJetProbabilityBJetTags", +# "pfTrackCountingHighPurBJetTags", +# "pfTrackCountingHighEffBJetTags", +# "pfSimpleSecondaryVertexHighEffBJetTags", +# "pfSimpleSecondaryVertexHighPurBJetTags", + "pfCombinedSecondaryVertexV2BJetTags", +# "pfCombinedSecondaryVertexSoftLeptonBJetTags", + "pfCombinedMVAV2BJetTags", + ), + BTagAlgorithmsAlias = cms.vstring ( + "btag_csvivf", +# "btag_csv", +# "btag_jetbprob", +# "btag_jetprob", +# "btag_tchp", +# "btag_tche", +# "btag_svhe", +# "btag_svhp", + "btag_csvv2", +# "btag_csvlep", + "btag_csvmva", + ), + TriggerResults = cms.VInputTag(cms.InputTag("TriggerResults","","HLT")), + TriggerPaths = cms.vstring ( + ## I recommend using the version number explicitly to be able to compare + ## however for production one has to be careful that all versions are included. + ## Thinking of a better solution... + "HLT_DoubleJetsC100_DoubleBTagCSV_p026_DoublePFJetsC160_v", + "HLT_DoubleJetsC100_DoubleBTagCSV_p014_DoublePFJetsC100MaxDeta1p6_v", + "HLT_DoubleJetsC112_DoubleBTagCSV_p026_DoublePFJetsC172_v", + "HLT_DoubleJetsC112_DoubleBTagCSV_p014_DoublePFJetsC112MaxDeta1p6_v", + "HLT_DoubleJetsC100_SingleBTagCSV_p026_v", + "HLT_DoubleJetsC100_SingleBTagCSV_p014_v", + "HLT_DoubleJetsC100_SingleBTagCSV_p026_SinglePFJetC350_v", + "HLT_DoubleJetsC100_SingleBTagCSV_p014_SinglePFJetC350_v", +# "HLT_PFJet40_v", +# "HLT_PFJet60_v", +# "HLT_PFJet80_v", +# "HLT_PFJet140_v", + ), + TriggerObjectStandAlone = cms.VInputTag( + cms.InputTag("selectedPatTrigger"), + ), + TriggerObjectLabels = cms.vstring ( + "hltL1sDoubleJetC100", + "hltDoubleJetsC100", + "hltDoublePFJetsC100", + "hltDoublePFJetsC100MaxDeta1p6", + "hltDoublePFJetsC160", + "hltBTagCaloCSVp026DoubleWithMatching", + "hltBTagCaloCSVp014DoubleWithMatching", + "hltL1sDoubleJetC112", + "hltDoubleJetsC112", + "hltDoublePFJetsC112", + "hltDoublePFJetsC112MaxDeta1p6", + "hltDoublePFJetsC172", + + "hltSingleBTagCSV0p78", + "hltSingleBTagCSV0p84", + "hltJetC350", + ), +# L1ExtraJets = cms.VInputTag( +# cms.InputTag("l1extraParticles","Central","RECO"), +# cms.InputTag("l1extraParticles","Forward","RECO"), +# cms.InputTag("l1extraParticles","Tau","RECO") +# ), +# L1ExtraMuons = cms.VInputTag( +# cms.InputTag("l1extraParticles","","RECO") +# ), +) + +process.p = cms.Path( + process.TotalEvents * + process.triggerSelection * # switch off for BTagCSV 2015C + process.primaryVertexFilter * +# process.slimmedJetsCorrFactorsReapplyJEC * process. slimmedJetsReapplyJEC * +# process.slimmedJetsPuppiCorrFactorsReapplyJEC * process. slimmedJetsPuppiReapplyJEC * +# process.slimmedJetsAK8PFCorrFactorsReapplyJEC * process. slimmedJetsAK8PFCHSSoftDropPackedReapplyJEC * +# process.jetCounterFilter * process.jetKinematicFilter * process.jetBTagFilter * + process.FilteredEvents * + process.MssmHbb + ) + + +readFiles = cms.untracked.vstring() +secFiles = cms.untracked.vstring() +process.source = cms.Source ("PoolSource",fileNames = readFiles, secondaryFileNames = secFiles) + +readFiles.extend( [ + '/store/data/Run2016B/BTagCSV/MINIAOD/PromptReco-v2/000/273/158/00000/00E6F701-191A-E611-8C4B-02163E0137CB.root', + '/store/data/Run2016B/BTagCSV/MINIAOD/PromptReco-v2/000/273/158/00000/0C6919A2-0E1A-E611-BE25-02163E01414F.root', + '/store/data/Run2016B/BTagCSV/MINIAOD/PromptReco-v2/000/273/158/00000/108E5936-111A-E611-BA3A-02163E014598.root', + '/store/data/Run2016B/BTagCSV/MINIAOD/PromptReco-v2/000/273/158/00000/400E45B2-081A-E611-A409-02163E01455E.root' +] ); + + +secFiles.extend( [ + ] ) + +## ============ JSON Certified data =============== BE CAREFUL!!! +## Don't use with CRAB!!! +#import FWCore.PythonUtilities.LumiList as LumiList +#import FWCore.ParameterSet.Types as CfgTypes +#process.source.lumisToProcess = CfgTypes.untracked(CfgTypes.VLuminosityBlockRange()) +#JSONfile = 'Cert_246908-260627_13TeV_PromptReco_Collisions15_25ns_JSON_v2.txt' +#myLumis = LumiList.LumiList(filename = JSONfile).getCMSSWString().split(',') +#process.source.lumisToProcess.extend(myLumis) diff --git a/Analysis/Ntuplizer/test/btagcsv_76x_expert.py b/Analysis/Ntuplizer/test/btagcsv_76x_expert.py new file mode 100644 index 0000000..685b7fd --- /dev/null +++ b/Analysis/Ntuplizer/test/btagcsv_76x_expert.py @@ -0,0 +1,315 @@ +import FWCore.ParameterSet.Config as cms +import os + +process = cms.Process("MssmHbb") + +process.load("FWCore.MessageService.MessageLogger_cfi") +process.MessageLogger.cerr.FwkReport.reportEvery = cms.untracked.int32(1) + +## Using MINIAOD. GlobalTag just in case jet re-clustering, L1 trigger filter etc is needed to be done +process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") +from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag as customiseGlobalTag +process.GlobalTag = customiseGlobalTag(process.GlobalTag, globaltag = '76X_dataRun2_16Dec2015_v0') +process.GlobalTag.connect = 'frontier://FrontierProd/CMS_CONDITIONS' +process.GlobalTag.pfnPrefix = cms.untracked.string('frontier://FrontierProd/') +for pset in process.GlobalTag.toGet.value(): + pset.connect = pset.connect.value().replace('frontier://FrontierProd/', 'frontier://FrontierProd/') +## fix for multi-run processing +process.GlobalTag.RefreshEachRun = cms.untracked.bool( False ) +process.GlobalTag.ReconnectEachRun = cms.untracked.bool( False ) + +process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(500) ) + +output_file = 'output.root' +## TFileService +process.TFileService = cms.Service("TFileService", + fileName = cms.string(output_file) +) + + +## ============ TRIGGER FILTER =============== +## Enable below at cms.Path if needed +process.triggerSelection = cms.EDFilter( "TriggerResultsFilter", + triggerConditions = cms.vstring( + 'HLT_DoubleJetsC100_DoubleBTagCSV0p85_DoublePFJetsC160_v*', + 'HLT_DoubleJetsC100_DoubleBTagCSV0p9_DoublePFJetsC100MaxDeta1p6_v*', + 'HLT_DoubleJetsC112_DoubleBTagCSV0p85_DoublePFJetsC172_v*', + 'HLT_DoubleJetsC112_DoubleBTagCSV0p9_DoublePFJetsC112MaxDeta1p6_v*', + ), + hltResults = cms.InputTag( "TriggerResults", "", "HLT" ), + l1tResults = cms.InputTag( "" ), + l1tIgnoreMask = cms.bool( False ), + l1techIgnorePrescales = cms.bool( False ), + daqPartitions = cms.uint32( 1 ), + throw = cms.bool( True ) +) + + + +## ============ RE-APPLY JET ENERGY CORRECTIONS =============== BE CAREFUL!!! +## Enable below at cms.Path if needed +from PhysicsTools.PatAlgos.producersLayer1.jetUpdater_cff import patJetCorrFactorsUpdated +process.slimmedJetsCorrFactorsReapplyJEC = patJetCorrFactorsUpdated.clone( + src = cms.InputTag("slimmedJets"), + levels = ['L1FastJet', + 'L2Relative', + 'L3Absolute'], + payload = 'AK4PFchs' ) # Make sure to choose the appropriate levels and payload here! + + +process.slimmedJetsPuppiCorrFactorsReapplyJEC = patJetCorrFactorsUpdated.clone( + src = cms.InputTag("slimmedJetsPuppi"), + levels = ['L1FastJet', + 'L2Relative', + 'L3Absolute'], + payload = 'AK4PFPuppi' ) # Make sure to choose the appropriate levels and payload here! + +process.slimmedJetsAK8PFCorrFactorsReapplyJEC = patJetCorrFactorsUpdated.clone( + src = cms.InputTag("slimmedJetsAK8PFCHSSoftDropPacked","SubJets","RECO"), + levels = ['L1FastJet', + 'L2Relative', + 'L3Absolute'], + payload = 'AK8PFchs' ) # Make sure to choose the appropriate levels and payload here! + + +from PhysicsTools.PatAlgos.producersLayer1.jetUpdater_cff import patJetsUpdated +process.slimmedJetsReapplyJEC = patJetsUpdated.clone( + jetSource = cms.InputTag("slimmedJets"), + jetCorrFactorsSource = cms.VInputTag(cms.InputTag("slimmedJetsCorrFactorsReapplyJEC")) + ) + +process.slimmedJetsPuppiReapplyJEC = patJetsUpdated.clone( + jetSource = cms.InputTag("slimmedJetsPuppi"), + jetCorrFactorsSource = cms.VInputTag(cms.InputTag("slimmedJetsPuppiCorrFactorsReapplyJEC")) + ) + +process.slimmedJetsAK8PFCHSSoftDropPackedReapplyJEC = patJetsUpdated.clone( + jetSource = cms.InputTag("slimmedJetsAK8PFCHSSoftDropPacked","SubJets","RECO"), + jetCorrFactorsSource = cms.VInputTag(cms.InputTag("slimmedJetsAK8PFCorrFactorsReapplyJEC")) + ) + +## ============= Jet Energy Resolution ============= + +process.load('Configuration.StandardSequences.Services_cff') +process.load("JetMETCorrections.Modules.JetResolutionESProducer_cfi") +from CondCore.DBCommon.CondDBSetup_cfi import * + +process.jer_AK4PFchs = cms.ESSource("PoolDBESSource",CondDBSetup,toGet = cms.VPSet( + # Resolution + cms.PSet( + record = cms.string('JetResolutionRcd'), + tag = cms.string('JR_Fall15_25nsV2_DATA_PtResolution_AK4PFchs'), + label = cms.untracked.string('AK4PFchs_pt') + ), + + # Scale factors + cms.PSet( + record = cms.string('JetResolutionScaleFactorRcd'), + tag = cms.string('JR_Fall15_25nsV2_DATA_SF_AK4PFchs'), + label = cms.untracked.string('AK4PFchs') + ), + ), + connect = cms.string('sqlite_fip:Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA.db') + ) + +process.es_prefer_jer_AK4PFchs = cms.ESPrefer('PoolDBESSource', 'jer_AK4PFchs') + +process.jer_AK8PFchs = cms.ESSource("PoolDBESSource",CondDBSetup,toGet = cms.VPSet( + # Resolution + cms.PSet( + record = cms.string('JetResolutionRcd'), + tag = cms.string('JR_Fall15_25nsV2_DATA_PtResolution_AK8PFchs'), + label = cms.untracked.string('AK8PFchs_pt') + ), + + # Scale factors + cms.PSet( + record = cms.string('JetResolutionScaleFactorRcd'), + tag = cms.string('JR_Fall15_25nsV2_DATA_SF_AK8PFchs'), + label = cms.untracked.string('AK8PFchs') + ), + ), + connect = cms.string('sqlite_fip:Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA.db') + ) + +process.es_prefer_jer_AK8PFchs = cms.ESPrefer('PoolDBESSource', 'jer_AK8PFchs') + +## ================================================= + +## ============ EVENT FILTER COUNTER =============== +## Filter counter (maybe more useful for MC) +process.TotalEvents = cms.EDProducer("EventCountProducer") +process.FilteredEvents = cms.EDProducer("EventCountProducer") + +## ============ PRIMARY VERTEX FILTER =============== +process.primaryVertexFilter = cms.EDFilter("VertexSelector", + src = cms.InputTag("offlineSlimmedPrimaryVertices"), # primary vertex collection name + cut = cms.string("!isFake && ndof > 4 && abs(z) <= 24 && position.Rho <= 2"), # ndof>thr=4 corresponds to sum(track_weigths) > (thr+3)/2 = 3.5 so typically 4 good tracks + filter = cms.bool(True), # otherwise it won't filter the events, just produce an empty vertex collection. +) + +## =========== JET N FILTER ============== +process.jetCounterFilter = cms.EDFilter("CandViewCountFilter", + src = cms.InputTag("slimmedJetsReapplyJEC"), # new slimmed Jets + minNumber = cms.uint32(2), + ) + +## ============ KINEMATIC JET FILTER =============== +process.jetKinematicFilter = cms.EDFilter("kinematicJetFilter", + src = cms.InputTag("slimmedJetsReapplyJEC"), + pt = cms.vdouble(85.,85.), + eta = cms.vdouble(2.5,2.5), +) + +## ============ BTAG JET FILTER =============== +process.jetBTagFilter = cms.EDFilter("btagJetFilter", + src = cms.InputTag("slimmedJetsReapplyJEC"), + algo = cms.string("pfCombinedInclusiveSecondaryVertexV2BJetTags"), + btag = cms.vdouble(0.5,0.5), +) + +## ============ THE NTUPLIZER!!! =============== +process.MssmHbb = cms.EDAnalyzer("Ntuplizer", + MonteCarlo = cms.bool(False), + CrossSection = cms.double(1), # in pb + UseFullName = cms.bool(False), + ################### + TotalEvents = cms.InputTag("TotalEvents"), + FilteredEvents = cms.InputTag("FilteredEvents"), + Rho = cms.InputTag("fixedGridRhoFastjetAll"), + JERResFiles = cms.vstring( +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PtResolution_AK4PFchs.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PtResolution_AK4PFPuppi.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PtResolution_AK8PFchs.txt", + ), + JERSfFiles = cms.vstring( +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_SF_AK4PFchs.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_SF_AK4PFPuppi.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_SF_AK8PFchs.txt" + ), + PatJets = cms.VInputTag( # Be careful with the correction uncertainties!!! + cms.InputTag("slimmedJetsReapplyJEC"), +# cms.InputTag("slimmedJetsPuppiReapplyJEC"), + cms.InputTag("slimmedJetsAK8PFCHSSoftDropPackedReapplyJEC") + ), + JERRecords = cms.vstring ( + "AK4PFchs", +# "AK4PFPuppi", + "AK8PFchs", + ), + JECRecords = cms.vstring ( + "AK4PFchs", +# "AK4PFPuppi", + "AK8PFchs", + ), + PatMETs = cms.VInputTag( + cms.InputTag("slimmedMETs"), + cms.InputTag("slimmedMETsPuppi") + ), + PatMuons = cms.VInputTag( + cms.InputTag("slimmedMuons") + ), + PrimaryVertices = cms.VInputTag( + cms.InputTag("offlineSlimmedPrimaryVertices") + ), + BTagAlgorithms = cms.vstring ( + "pfCombinedInclusiveSecondaryVertexV2BJetTags", +# "combinedSecondaryVertexBJetTags", +# "pfJetBProbabilityBJetTags", +# "pfJetProbabilityBJetTags", +# "pfTrackCountingHighPurBJetTags", +# "pfTrackCountingHighEffBJetTags", +# "pfSimpleSecondaryVertexHighEffBJetTags", +# "pfSimpleSecondaryVertexHighPurBJetTags", + "pfCombinedSecondaryVertexV2BJetTags", +# "pfCombinedSecondaryVertexSoftLeptonBJetTags", + "pfCombinedMVAV2BJetTags", + ), + BTagAlgorithmsAlias = cms.vstring ( + "btag_csvivf", +# "btag_csv", +# "btag_jetbprob", +# "btag_jetprob", +# "btag_tchp", +# "btag_tche", +# "btag_svhe", +# "btag_svhp", + "btag_csvv2", +# "btag_csvlep", + "btag_csvmva", + ), + TriggerResults = cms.VInputTag(cms.InputTag("TriggerResults","","HLT")), + TriggerPaths = cms.vstring ( + ## I recommend using the version number explicitly to be able to compare + ## however for production one has to be careful that all versions are included. + ## Thinking of a better solution... + 'HLT_DoubleJetsC100_DoubleBTagCSV0p85_DoublePFJetsC160_v', + 'HLT_DoubleJetsC100_DoubleBTagCSV0p9_DoublePFJetsC100MaxDeta1p6_v', + 'HLT_DoubleJetsC112_DoubleBTagCSV0p85_DoublePFJetsC172_v', + 'HLT_DoubleJetsC112_DoubleBTagCSV0p9_DoublePFJetsC112MaxDeta1p6_v', + ), + TriggerObjectStandAlone = cms.VInputTag( + cms.InputTag("selectedPatTrigger"), + ), + TriggerObjectLabels = cms.vstring ( + "hltL1sL1DoubleJetC100", + "hltDoubleJetsC100", + "hltDoublePFJetsC100", + "hltDoublePFJetsC100MaxDeta1p6", + "hltDoublePFJetsC160", + "hltDoubleBTagCSV0p85", + "hltDoubleBTagCSV0p9", + "hltL1sL1DoubleJetC112", + "hltDoubleJetsC112", + "hltDoublePFJetsC112", + "hltDoublePFJetsC112MaxDeta1p6", + "hltDoublePFJetsC172", + ), +# L1ExtraJets = cms.VInputTag( +# cms.InputTag("l1extraParticles","Central","RECO"), +# cms.InputTag("l1extraParticles","Forward","RECO"), +# cms.InputTag("l1extraParticles","Tau","RECO") +# ), +# L1ExtraMuons = cms.VInputTag( +# cms.InputTag("l1extraParticles","","RECO") +# ), +) + +process.p = cms.Path( + process.TotalEvents * + process.triggerSelection * # switch off for BTagCSV 2015C + process.primaryVertexFilter * + process.slimmedJetsCorrFactorsReapplyJEC * process. slimmedJetsReapplyJEC * + process.slimmedJetsPuppiCorrFactorsReapplyJEC * process. slimmedJetsPuppiReapplyJEC * + process.slimmedJetsAK8PFCorrFactorsReapplyJEC * process. slimmedJetsAK8PFCHSSoftDropPackedReapplyJEC * +# process.jetCounterFilter * process.jetKinematicFilter * process.jetBTagFilter * + process.FilteredEvents * + process.MssmHbb + ) + + +readFiles = cms.untracked.vstring() +secFiles = cms.untracked.vstring() +process.source = cms.Source ("PoolSource",fileNames = readFiles, secondaryFileNames = secFiles) + +readFiles.extend( [ + '/store/data/Run2015D/BTagCSV/MINIAOD/16Dec2015-v1/50000/00AF8EB4-70AB-E511-9271-00266CFAE7AC.root', + '/store/data/Run2015D/BTagCSV/MINIAOD/16Dec2015-v1/50000/04ED898D-43AE-E511-817C-002618943984.root', + '/store/data/Run2015D/BTagCSV/MINIAOD/16Dec2015-v1/50000/064D40CE-49AE-E511-9A8C-0CC47A4C8E1C.root', + '/store/data/Run2015D/BTagCSV/MINIAOD/16Dec2015-v1/50000/08F91563-E3AB-E511-95B1-00266CFAEBA0.root', + '/store/data/Run2015D/BTagCSV/MINIAOD/16Dec2015-v1/50000/0A2E74F0-40AE-E511-8D03-003048FFD754.root', + '/store/data/Run2015D/BTagCSV/MINIAOD/16Dec2015-v1/50000/0A715A24-B4AB-E511-AB8E-00266CF9C018.root' +] ); + + +secFiles.extend( [ + ] ) + +## ============ JSON Certified data =============== BE CAREFUL!!! +## Don't use with CRAB!!! +#import FWCore.PythonUtilities.LumiList as LumiList +#import FWCore.ParameterSet.Types as CfgTypes +#process.source.lumisToProcess = CfgTypes.untracked(CfgTypes.VLuminosityBlockRange()) +#JSONfile = 'Cert_246908-260627_13TeV_PromptReco_Collisions15_25ns_JSON_v2.txt' +#myLumis = LumiList.LumiList(filename = JSONfile).getCMSSWString().split(',') +#process.source.lumisToProcess.extend(myLumis) diff --git a/Analysis/Ntuplizer/test/gc_btagData.conf b/Analysis/Ntuplizer/test/gc_btagData.conf new file mode 100644 index 0000000..5f48b46 --- /dev/null +++ b/Analysis/Ntuplizer/test/gc_btagData.conf @@ -0,0 +1,78 @@ +[global] +module = CMSSW_Advanced +; change to your working directory + +workdir = /nfs/dust/cms/user/shevchen/grid-jobs/work.gc_btag_data.conf +backend = local + +[storage] +se input timeout = 6:00 +se output timeout = 6:00 +se output files = output.root +se output pattern = @NICK@/@NICK@_@MY_JOBID@.root +se path = /nfs/dust/cms/user/shevchen/ntuples/realData + +[local] +submit options = + site => hh + os => sld6 +; h_rt => 167:59:00 + h_rt => 11:59:00 + h_vmem => 4000M + +proxy = VomsProxy + +[jobs] +;wall time = 167:59:00 +wall time = 49:59:00 +in flight = 20000 +monitor = dashboard +shuffle = true +;queue timeout = 119:59:00 +queue timeout = 49:59:00 +memory = 4000 +dataset provider = DBS3Provider + +[dataset] +resync interactive = False +dataset provider = DBS3Provider + +[grid] +sites = -samtests -group_admin -monitor -lcgadmin -cern -roma1.infn.it +dataset provider = DBS3Provider + +[glite-wms] +config = docs/glite_wms_CERN.conf +use delegate = False +dataset provider = DBS3Provider + +[CMSSW_Advanced] +depends=gLite +dataset provider = DBS3Provider + +project area = ../../../.. +se runtime = True +events per job = 100000 + +dataset = + BTagCSV2015CreReco : /BTagCSV/Run2015C_25ns-05Oct2015-v1/MINIAOD +; BTagCSV2015DPromptReco3 : /BTagCSV/Run2015D-PromptReco-v3/MINIAOD +; BTagCSV2015DPromptReco4 : /BTagCSV/Run2015D-PromptReco-v4/MINIAOD + +; BTagCSV2015DPromptRecov3 : /BTagCSV/Run2015D-PromptReco-v3/MINIAOD +; BTagCSV2015C : /BTagCSV/Run2015C-PromptReco-v1/MINIAOD +; BTagCSV2015D : /BTagCSV/Run2015D-PromptReco-v4/MINIAOD + + + +nickname source = nickProducer.signalNicks + +nickname config = btag_data.py + +;nickname constants = SKIM + +;SKIM = 1 +; DYJetsToLL => 0 +; WJetsToLNu => 0 + + diff --git a/Analysis/Ntuplizer/test/gc_jetHt.conf b/Analysis/Ntuplizer/test/gc_jetHt.conf new file mode 100644 index 0000000..e661e8e --- /dev/null +++ b/Analysis/Ntuplizer/test/gc_jetHt.conf @@ -0,0 +1,69 @@ +[global] +module = CMSSW_Advanced +; change to your working directory + +workdir = /nfs/dust/cms/user/shevchen/grid-jobs/workRunJetHT.gc_test.conf +backend = local + +[storage] +se input timeout = 6:00 +se output timeout = 6:00 +se output files = output.root +se output pattern = @NICK@/@NICK@_@MY_JOBID@.root +se path = /nfs/dust/cms/user/shevchen/ntuples/realData + +[local] +submit options = + site => hh + os => sld6 +; h_rt => 167:59:00 + h_rt => 11:59:00 + h_vmem => 4000M + +proxy = VomsProxy + +[jobs] +;wall time = 167:59:00 +wall time = 49:59:00 +in flight = 20000 +monitor = dashboard +shuffle = true +;queue timeout = 119:59:00 +queue timeout = 49:59:00 +memory = 4000 +dataset provider = DBS3Provider + +[dataset] +resync interactive = False +dataset provider = DBS3Provider + +[grid] +sites = -samtests -group_admin -monitor -lcgadmin -cern -roma1.infn.it +dataset provider = DBS3Provider + +[glite-wms] +config = docs/glite_wms_CERN.conf +use delegate = False +dataset provider = DBS3Provider + +[CMSSW_Advanced] +depends=gLite +dataset provider = DBS3Provider + +project area = ../../../.. +se runtime = True +events per job = 100000 + +dataset = JetHTRun2015CreReco : /JetHT/Run2015C_25ns-05Oct2015-v1/MINIAOD + JetHTRun2015DPromptReco3 : /JetHT/Run2015D-PromptReco-v3/MINIAOD + JetHTRun2015DPromptReco4 : /JetHT/Run2015D-PromptReco-v4/MINIAOD + +nickname source = nickProducer.signalNicks + +nickname config = jetHT_data.py + +;nickname constants = SKIM + +;SKIM = 1 +; DYJetsToLL => 0 +; WJetsToLNu => 0 diff --git a/Analysis/Ntuplizer/test/gc_mc.conf b/Analysis/Ntuplizer/test/gc_mc.conf new file mode 100644 index 0000000..b736033 --- /dev/null +++ b/Analysis/Ntuplizer/test/gc_mc.conf @@ -0,0 +1,88 @@ +[global] +module = CMSSW_Advanced +; change to your working directory + +workdir = /nfs/dust/cms/user/shevchen/grid-jobs/work.gc_qcd_mc.conf +backend = local + +[storage] +se input timeout = 6:00 +se output timeout = 6:00 +se output files = output.root +se output pattern = @NICK@/@NICK@_@MY_JOBID@.root +se path = /nfs/dust/cms/user/shevchen/ntuples + +[local] +submit options = + site => hh + os => sld6 +; h_rt => 167:59:00 + h_rt => 11:59:00 + h_vmem => 4000M + +proxy = VomsProxy + +[jobs] +;wall time = 167:59:00 +wall time = 49:59:00 +in flight = 20000 +monitor = dashboard +shuffle = true +;queue timeout = 119:59:00 +queue timeout = 49:59:00 +memory = 4000 +dataset provider = DBS3Provider + +[dataset] +resync interactive = False +dataset provider = DBS3Provider + +[grid] +sites = -samtests -group_admin -monitor -lcgadmin -cern -roma1.infn.it +dataset provider = DBS3Provider + +[glite-wms] +config = docs/glite_wms_CERN.conf +use delegate = False +dataset provider = DBS3Provider + +[CMSSW_Advanced] +depends=gLite +dataset provider = DBS3Provider + +project area = ../../../.. +se runtime = True +events per job = 150000 + +dataset = +; TTJets_MC_NLO :/TTJets_TuneCUETP8M1_13TeV-amcatnloFXFX-pythia8/RunIISpring15MiniAODv2-74X_mcRun2_asymptotic_v2-v3/MINIAODSIM +; TTjets_Madgraph :/TTJets_TuneCUETP8M1_13TeV-madgraphMLM-pythia8/RunIISpring15MiniAODv2-74X_mcRun2_asymptotic_v2-v1/MINIAODSIM + + QCD_Pt_5to10_Asympt25ns_MCRUN2_13TeV : /QCD_Pt_5to10_TuneCUETP8M1_13TeV_pythia8/RunIISpring15MiniAODv2-74X_mcRun2_asymptotic_v2-v1/MINIAODSIM + QCD_Pt_10to15_Asympt25ns_MCRUN2_13TeV : /QCD_Pt_10to15_TuneCUETP8M1_13TeV_pythia8/RunIISpring15MiniAODv2-74X_mcRun2_asymptotic_v2-v1/MINIAODSIM + QCD_Pt_15to30_Asympt25ns_MCRUN2_13TeV : /QCD_Pt_15to30_TuneCUETP8M1_13TeV_pythia8/RunIISpring15MiniAODv2-74X_mcRun2_asymptotic_v2-v1/MINIAODSIM + QCD_Pt_30to50_Asympt25ns_MCRUN2_13TeV : /QCD_Pt_30to50_TuneCUETP8M1_13TeV_pythia8/RunIISpring15MiniAODv2-74X_mcRun2_asymptotic_v2-v1/MINIAODSIM + QCD_Pt_50to80_Asympt25ns_MCRUN2_13TeV : /QCD_Pt_50to80_TuneCUETP8M1_13TeV_pythia8/RunIISpring15MiniAODv2-74X_mcRun2_asymptotic_v2-v1/MINIAODSIM + QCD_Pt_80to120_Asympt25ns_MCRUN2_13TeV : /QCD_Pt_80to120_TuneCUETP8M1_13TeV_pythia8/RunIISpring15MiniAODv2-74X_mcRun2_asymptotic_v2-v1/MINIAODSIM + QCD_Pt_120to170_Asympt25ns_MCRUN2_13TeV : /QCD_Pt_120to170_TuneCUETP8M1_13TeV_pythia8/RunIISpring15MiniAODv2-74X_mcRun2_asymptotic_v2-v1/MINIAODSIM + QCD_Pt_170to300_Asympt25ns_MCRUN2_13TeV : /QCD_Pt_170to300_TuneCUETP8M1_13TeV_pythia8/RunIISpring15MiniAODv2-74X_mcRun2_asymptotic_v2-v1/MINIAODSIM + QCD_Pt_300to470_Asympt25ns_MCRUN2_13TeV : /QCD_Pt_300to470_TuneCUETP8M1_13TeV_pythia8/RunIISpring15MiniAODv2-74X_mcRun2_asymptotic_v2-v1/MINIAODSIM + QCD_Pt_470to600_Asympt25ns_MCRUN2_13TeV : /QCD_Pt_470to600_TuneCUETP8M1_13TeV_pythia8/RunIISpring15MiniAODv2-74X_mcRun2_asymptotic_v2-v1/MINIAODSIM + QCD_Pt_600to800_Asympt25ns_MCRUN2_13TeV : /QCD_Pt_600to800_TuneCUETP8M1_13TeV_pythia8/RunIISpring15MiniAODv2-74X_mcRun2_asymptotic_v2-v1/MINIAODSIM + QCD_Pt_800to1000_Asympt25ns_MCRUN2_13TeV : /QCD_Pt_800to1000_TuneCUETP8M1_13TeV_pythia8/RunIISpring15MiniAODv2-74X_mcRun2_asymptotic_v2-v1/MINIAODSIM + QCD_Pt_1000to1400_Asympt25ns_MCRUN2_13TeV : /QCD_Pt_1000to1400_TuneCUETP8M1_13TeV_pythia8/RunIISpring15MiniAODv2-74X_mcRun2_asymptotic_v2-v1/MINIAODSIM + QCD_Pt_1400to1800_Asympt25ns_MCRUN2_13TeV : /QCD_Pt_1400to1800_TuneCUETP8M1_13TeV_pythia8/RunIISpring15MiniAODv2-74X_mcRun2_asymptotic_v2-v1/MINIAODSIM + QCD_Pt_1800to2400_Asympt25ns_MCRUN2_13TeV : /QCD_Pt_1800to2400_TuneCUETP8M1_13TeV_pythia8/RunIISpring15MiniAODv2-74X_mcRun2_asymptotic_v2-v1/MINIAODSIM + QCD_Pt_2400to3200_Asympt25ns_MCRUN2_13TeV : /QCD_Pt_2400to3200_TuneCUETP8M1_13TeV_pythia8/RunIISpring15MiniAODv2-74X_mcRun2_asymptotic_v2-v1/MINIAODSIM + QCD_Pt_3200toInf_Asympt25ns_MCRUN2_13TeV : /QCD_Pt_3200toInf_TuneCUETP8M1_13TeV_pythia8/RunIISpring15MiniAODv2-74X_mcRun2_asymptotic_v2-v1/MINIAODSIM + + +nickname source = nickProducer.signalNicks + +nickname config = qcd_mc.py + +;nickname constants = SKIM + +;SKIM = 1 +; DYJetsToLL => 0 +; WJetsToLNu => 0 diff --git a/Analysis/Ntuplizer/test/ht_qcd_mc.py b/Analysis/Ntuplizer/test/ht_qcd_mc.py new file mode 100644 index 0000000..0c00bb8 --- /dev/null +++ b/Analysis/Ntuplizer/test/ht_qcd_mc.py @@ -0,0 +1,230 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("MssmHbb") + +process.load("FWCore.MessageService.MessageLogger_cfi") +process.MessageLogger.cerr.FwkReport.reportEvery = cms.untracked.int32(1000) + +## Using MINIAOD. GlobalTag just in case jet re-clustering, L1 trigger filter etc is needed to be done +process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") +from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag as customiseGlobalTag +process.GlobalTag = customiseGlobalTag(process.GlobalTag, globaltag = 'MCRUN2_74_V9') +process.GlobalTag.connect = 'frontier://FrontierProd/CMS_CONDITIONS' +process.GlobalTag.pfnPrefix = cms.untracked.string('frontier://FrontierProd/') +for pset in process.GlobalTag.toGet.value(): + pset.connect = pset.connect.value().replace('frontier://FrontierProd/', 'frontier://FrontierProd/') +## fix for multi-run processing +process.GlobalTag.RefreshEachRun = cms.untracked.bool( False ) +process.GlobalTag.ReconnectEachRun = cms.untracked.bool( False ) + +process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(150000) ) + +output_file = 'output.root' +## TFileService +process.TFileService = cms.Service("TFileService", + fileName = cms.string(output_file) + ) + +## ============ TRIGGER FILTER =============== +## Enable below at cms.Path if needed +process.triggerSelection = cms.EDFilter( "TriggerResultsFilter", + triggerConditions = cms.vstring( + "HLT_PFJet60_v*", + "HLT_PFJet80_v*", + "HLT_PFJet140_v*", + "HLT_PFJet200_v*", + "HLT_PFJet260_v*", + "HLT_PFJet320_v*", + "HLT_PFJet400_v*", + "HLT_PFJet450_v*", + "HLT_PFJet500_v*" + ), + hltResults = cms.InputTag( "TriggerResults", "", "HLT" ), + l1tResults = cms.InputTag( "" ), + l1tIgnoreMask = cms.bool( False ), + l1techIgnorePrescales = cms.bool( False ), + daqPartitions = cms.uint32( 1 ), + throw = cms.bool( True ) + ) + + +## ============ EVENT FILTER COUNTER =============== +## Filter counter (maybe more useful for MC) +process.TotalEvents = cms.EDProducer("EventCountProducer") +process.FilteredEvents = cms.EDProducer("EventCountProducer") + +## ============ PRIMARY VERTEX FILTER =============== +process.primaryVertexFilter = cms.EDFilter("VertexSelector", + src = cms.InputTag("offlineSlimmedPrimaryVertices"), # primary vertex collection name + cut = cms.string("!isFake && ndof > 4 && abs(z) <= 24 && position.Rho <= 2"), # ndof>thr=4 corresponds to sum(track_weigths) > (thr+3)/2 = 3.5 so typically 4 good tracks + filter = cms.bool(True), # otherwise it won't filter the events, just produce an empty vertex collection. + ) + +## ============ THE NTUPLIZER!!! =============== +process.MssmHbb = cms.EDAnalyzer("Ntuplizer", + MonteCarlo = cms.bool(True), + CrossSection = cms.double(1), # in pb + UseFullName = cms.bool(False), + ## Monte Carlo only + GenFilterInfo = cms.InputTag("genFilterEfficiencyProducer"), + GenRunInfo = cms.InputTag("generator"), + GenJets = cms.VInputTag(cms.InputTag("slimmedGenJets")), + GenParticles = cms.VInputTag(cms.InputTag("prunedGenParticles")), + ################### + TotalEvents = cms.InputTag("TotalEvents"), + FilteredEvents = cms.InputTag("FilteredEvents"), + PatJets = cms.VInputTag( + cms.InputTag("slimmedJetsPuppi","","PAT"), + cms.InputTag("slimmedJetsAK8PFCHSSoftDropPacked","SubJets","PAT") + ), + PatMETs = cms.VInputTag( + cms.InputTag("slimmedMETs","","PAT"), + cms.InputTag("slimmedMETsPuppi","","PAT") + ), + PatMuons = cms.VInputTag( + cms.InputTag("slimmedMuons","","PAT") + ), + PrimaryVertices = cms.VInputTag( + cms.InputTag("offlineSlimmedPrimaryVertices","","PAT") + ), + BTagAlgorithms = cms.vstring ( + "pfCombinedInclusiveSecondaryVertexV2BJetTags", + "combinedSecondaryVertexBJetTags", + "pfJetBProbabilityBJetTags", + "pfJetProbabilityBJetTags", + "pfTrackCountingHighPurBJetTags", + "pfTrackCountingHighEffBJetTags", + "pfSimpleSecondaryVertexHighEffBJetTags", + "pfSimpleSecondaryVertexHighPurBJetTags", + "pfCombinedSecondaryVertexV2BJetTags", + "pfCombinedSecondaryVertexSoftLeptonBJetTags", + "pfCombinedMVABJetTags", + ), + BTagAlgorithmsAlias = cms.vstring ( + "btag_csvivf", + "btag_csv", + "btag_jetbprob", + "btag_jetprob", + "btag_tchp", + "btag_tche", + "btag_svhe", + "btag_svhp", + "btag_csvv2", + "btag_csvlep", + "btag_csvmva", + ), + TriggerResults = cms.VInputTag(cms.InputTag("TriggerResults","","HLT")), + TriggerPaths = cms.vstring ( + ## I recommend using the version number explicitly to be able to compare + ## however for production one has to be careful that all versions are included. + ## Thinking of a better solution... + # "HLT_DoubleJetsC100_DoubleBTagCSV0p9_DoublePFJetsC100MaxDeta1p6_v", + # "HLT_DoubleJetsC100_DoubleBTagCSV0p85_DoublePFJetsC160_v", + # "HLT_DoubleJetsC112_DoubleBTagCSV0p9_DoublePFJetsC112MaxDeta1p6_v", + # "HLT_DoubleJetsC112_DoubleBTagCSV0p85_DoublePFJetsC172_v", + # "HLT_DoubleJet90_Double30_TripleBTagCSV0p67_v", + # "HLT_QuadJet45_DoubleBTagCSV0p67_v", + # "HLT_QuadJet45_TripleBTagCSV0p67_v", + # "HLT_QuadPFJet_DoubleBTagCSV_VBF_Mqq200_v", + # "HLT_QuadPFJet_DoubleBTagCSV_VBF_Mqq240_v", + # "HLT_QuadPFJet_SingleBTagCSV_VBF_Mqq460_v", + # "HLT_QuadPFJet_SingleBTagCSV_VBF_Mqq500_v", + "HLT_PFJet60_v", + "HLT_PFJet80_v", + "HLT_PFJet140_v", + "HLT_PFJet200_v", + "HLT_PFJet260_v", + "HLT_PFJet320_v", + "HLT_PFJet400_v", + "HLT_PFJet450_v", + "HLT_PFJet500_v" + ), + TriggerObjectStandAlone = cms.VInputTag( + cms.InputTag("selectedPatTrigger","","PAT"), + ), + TriggerObjectLabels = cms.vstring ( + # "hltL1sL1DoubleJetC100", + # "hltDoubleJetsC100", + # "hltDoublePFJetsC100", + # "hltDoublePFJetsC100MaxDeta1p6", + # "hltDoublePFJetsC160", + # "hltDoubleBTagCSV0p85", + # "hltDoubleBTagCSV0p9", + # "hltL1sL1DoubleJetC112", + # "hltDoubleJetsC112", + # "hltDoublePFJetsC112", + # "hltDoublePFJetsC112MaxDeta1p6", + # "hltDoublePFJetsC172", + # + "hltL1sL1ZeroBias", + "hltPFJetsCorrectedMatchedToCaloJets10", + "hltSingleCaloJet10", + "hltSinglePFJet40", + "hltL1sL1SingleJet36", + "hltSingleCaloJet40", + "hltPFJetsCorrectedMatchedToCaloJets40", + "hltSinglePFJet60", + "hltL1sL1SingleJet52", + "hltPFJetsCorrectedMatchedToCaloJets50", + "hltSingleCaloJet50", + "hltSinglePFJet80", + "hltL1sL1SingleJet92", + "hltPFJetsCorrectedMatchedToCaloJets110", + "hltSingleCaloJet110", + "hltSinglePFJet140", + "hltL1sL1SingleJet128", + "hltPFJetsCorrectedMatchedToCaloJets170", + "hltSingleCaloJet170", + "hltSinglePFJet200", + "hltL1sL1SingleJet200", + "hltPFJetsCorrectedMatchedToCaloJets210", + "hltSingleCaloJet210", + "hltSinglePFJet260", + "hltPFJetsCorrectedMatchedToCaloJets270", + "hltSingleCaloJet270", + "hltSinglePFJet320", + "hltPFJetsCorrectedMatchedToCaloJets350", + "hltSingleCaloJet350", + "hltSinglePFJet400", + "hltPFJetsCorrectedMatchedToCaloJets400", + "hltSingleCaloJet400", + "hltSinglePFJet450", + "hltPFJetsCorrectedMatchedToCaloJets450", + "hltSingleCaloJet450", + "hltSinglePFJet500", + ), + # L1ExtraJets = cms.VInputTag( + # cms.InputTag("l1extraParticles","Central","RECO"), + # cms.InputTag("l1extraParticles","Forward","RECO"), + # cms.InputTag("l1extraParticles","Tau","RECO") + # ), + # L1ExtraMuons = cms.VInputTag( + # cms.InputTag("l1extraParticles","","RECO") + # ), + ) + +process.p = cms.Path( + process.TotalEvents * + process.primaryVertexFilter * + process.FilteredEvents * + # process.triggerSelection * + process.MssmHbb + ) + + +readFiles = cms.untracked.vstring() +secFiles = cms.untracked.vstring() +process.source = cms.Source ("PoolSource",fileNames = readFiles, secondaryFileNames = secFiles) +readFiles.extend( [ + '/store/mc/RunIISpring15MiniAODv2/QCD_HT100to200_TuneCUETP8M1_13TeV-madgraphMLM-pythia8/MINIAODSIM/74X_mcRun2_asymptotic_v2-v1/10000/00628FDD-AA6C-E511-9A4D-0025905B85AA.root', + '/store/mc/RunIISpring15MiniAODv2/QCD_HT100to200_TuneCUETP8M1_13TeV-madgraphMLM-pythia8/MINIAODSIM/74X_mcRun2_asymptotic_v2-v1/10000/00642A0F-AA6C-E511-BF83-0025905B85D0.root', + '/store/mc/RunIISpring15MiniAODv2/QCD_HT100to200_TuneCUETP8M1_13TeV-madgraphMLM-pythia8/MINIAODSIM/74X_mcRun2_asymptotic_v2-v1/10000/00F6D5D3-AC6C-E511-A4E3-002590492A92.root', + '/store/mc/RunIISpring15MiniAODv2/QCD_HT100to200_TuneCUETP8M1_13TeV-madgraphMLM-pythia8/MINIAODSIM/74X_mcRun2_asymptotic_v2-v1/10000/022AE810-AA6C-E511-BFC3-047D7B881D06.root', + '/store/mc/RunIISpring15MiniAODv2/QCD_HT100to200_TuneCUETP8M1_13TeV-madgraphMLM-pythia8/MINIAODSIM/74X_mcRun2_asymptotic_v2-v1/10000/02BC0660-AA6C-E511-A156-0025904B130E.root', + '/store/mc/RunIISpring15MiniAODv2/QCD_HT100to200_TuneCUETP8M1_13TeV-madgraphMLM-pythia8/MINIAODSIM/74X_mcRun2_asymptotic_v2-v1/10000/04371610-AA6C-E511-AAFC-0025905A4964.root' + ] ); + + +secFiles.extend( [ + ] ) + diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK4PF.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK4PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..8cd82d9116546b63aba53362b3b630b38e54a73b GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCE z0nx!Q1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{c-}GZO#+ literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK4PFPuppi.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK4PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..95572ec3b51c7064a83de0f3188b51dbec588169 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoBZ z1JS`S1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{e$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoBZ z1<}DU1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{d$MGbI23 literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK8PF.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK8PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..76f97cd0c1e4af0e8ca3301b544ba6631264b7b7 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCE z1<}DU1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{d{IGZg>; literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK8PFPuppi.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK8PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..9c41e51fb66144a9e206ce6822648f61e0065530 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCE z1JS`S1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{f5cGZz2= literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK8PFchs.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PhiResolution_AK8PFchs.txt new file mode 100755 index 0000000000000000000000000000000000000000..f2364d881a8d5b6ddbf70cd07d6d4f0035a0043f GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoBZ z2hqVW1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{f|!GbsQ7 literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK4PF.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK4PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..aeb99d89fce5b6d3fd5128dcb375d1632b124f3a GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCE z2hqVW1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{gEwGZ_E? literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK4PFPuppi.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK4PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..975b9abdac507e330613213ea173c701352cc18f GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoC^ z1ku4T1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{iGHGc5oB literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK4PFchs.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK4PFchs.txt new file mode 100755 index 0000000000000000000000000000000000000000..7044a06399622f3cda9c1f869a509eaa61a7a17f GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoC^ z0MWrP1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{h6|Gb;c9 literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK8PF.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK8PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..6937fa949d5be75bd95e2802b6233839a3904317 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoBZ z0MWrP1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{hN^GaCQ^ literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK8PFPuppi.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_PtResolution_AK8PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..ad1537e22893b0d7394f13a24d8f68671510f2eb GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoA0 zss`y`m;uC=Xj&K%;-bm$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoC^ z0@1-R1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{aJpGcN!D literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_SF_AK4PF.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_SF_AK4PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..adabf6bc704a745fa086b317f270fca80586b53d GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoBZ z0@1-R1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{aalGamo| literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_SF_AK4PFPuppi.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_SF_AK4PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..7f1d408d97bc121948a044bf7cbdfb191fabc55c GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoC^ z0nx!Q1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{cc6Gcy1H literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_SF_AK4PFchs.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_SF_AK4PFchs.txt new file mode 100755 index 0000000000000000000000000000000000000000..0bdfbc5c317b39683e3f43819f6d0dedcff58531 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoC^ z2GPMV1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{bS-Gcf=F literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_SF_AK8PF.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_SF_AK8PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..36524706631249e29a96e0d572288472dc8b1897 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoBZ z2GPMV1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{bj(Ga&!~ literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_SF_AK8PFPuppi.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_SF_AK8PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..4d0cb09e3b22389a493a73f043fb9bbcaa8a8f0c GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoBZ z0nx!Q1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{ct2Ga~>1 literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_SF_AK8PFchs.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_DATA_SF_AK8PFchs.txt new file mode 100755 index 0000000000000000000000000000000000000000..9c24505cab5679c001ab2b8d714ffd839ebb40b4 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoC^ z1<}DU1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{dlQGc^DJ literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK4PF.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK4PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..c754743ea8663699c938ef1b04025fb3956e948f GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCk z0@1-R1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{b2ZGVcHY literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK4PFPuppi.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK4PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..f210eaa458f02f168f7807c7447a2b551efa8b24 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCk z0nx!Q1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{dK>GV=fc literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK4PFchs.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK4PFchs.txt new file mode 100755 index 0000000000000000000000000000000000000000..f97d738aef82dd883b232eb77c12bf77c89163ec GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCk z2GPMV1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{cBtGVuTa literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK8PF.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK8PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..1a6ee41d0284f96d3232b876621b64d2945c4e39 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCk z1<}DU1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{eUAGW7re literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK8PFPuppi.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK8PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..d2c420edce60bc4e74f866bfc55b6efc3d56c074 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCk z2hqVW1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{gmoGWh@i literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK8PFchs.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PhiResolution_AK8PFchs.txt new file mode 100755 index 0000000000000000000000000000000000000000..0526424c337104451e580c3ff4b0cbdc7dcdad78 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCk z1JS`S1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{fdUGWP%g literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PtResolution_AK4PF.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PtResolution_AK4PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..1fc0702a231e23213915c64590c11e5b8e66a9c2 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoAu z0MWrP1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{hv+GW!4k literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PtResolution_AK4PFPuppi.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PtResolution_AK4PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..31d1816e8f6acd4143d577d0eb57843c4d87f45e GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoAu z0@1-R1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{a+dGXDSo literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PtResolution_AK4PFchs.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PtResolution_AK4PFchs.txt new file mode 100755 index 0000000000000000000000000000000000000000..481324ab3792e37cc6c0defe59f100638963e94a GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoAu z1ku4T1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{i(5GW`Gm literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PtResolution_AK8PF.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PtResolution_AK8PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..6714f364b6fb83aabc2ceaf1747089f583cbc428 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoAu z2GPMV1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{b_xGXVeq literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PtResolution_AK8PFPuppi.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PtResolution_AK8PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..37cedfa2013ea2d5ede819a76b063963cff3a5f9 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoAu z1<}DU1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{eDEGX($u literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PtResolution_AK8PFchs.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_PtResolution_AK8PFchs.txt new file mode 100755 index 0000000000000000000000000000000000000000..d750ef7d9e381a95694254b5b5c7b7e370e5e96b GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoAu z0nx!Q1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{d3_GXnqs literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_SF_AK4PF.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_SF_AK4PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..24b958f01312e93fb397a4a238043bb39eae1f6c GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoAu z1JS`S1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{fMYGY0?w literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_SF_AK4PFPuppi.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_SF_AK4PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..73d914c1d0a831657e1ec9212ec926208f4b7c1f GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCE z0MWrP1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{he=GYbF! literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_SF_AK4PFchs.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_SF_AK4PFchs.txt new file mode 100755 index 0000000000000000000000000000000000000000..7d0a0ebff17bc966d0b4043712727490ffd5f947 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoAu z2hqVW1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{gVsGYJ3y literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_SF_AK8PF.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_SF_AK8PF.txt new file mode 100755 index 0000000000000000000000000000000000000000..fd839495837c274282f492508b547d6b106e469a GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCE z1ku4T1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{io9GYtR$ literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_SF_AK8PFPuppi.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_SF_AK8PFPuppi.txt new file mode 100755 index 0000000000000000000000000000000000000000..8811d69a5fe5d7487d41eafed1e1cf2f91304e8e GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoCE z2GPMV1E|~*O$#HC4;2?p&d=3LEGWoH)hjGbEK1BP$;?Y-FfcGMvNkn0H83+aGPe#+ zOiL`vv^H^aayE4_bka3+F*esVadvakwRAPN&^32*G&Hbqb}=zGH%7B)lsg&%qaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0;3@?azX&q*#u!QkPFGkELJE=EzU13N={Ws%P-1S t$jmEA1$I00^AdA%Div~4(@GSQauV~hfqh}9t|3jK`XBBU83wuk{{b!#GZ6p) literal 0 HcmV?d00001 diff --git a/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_SF_AK8PFchs.txt b/Analysis/Ntuplizer/test/jer_files/._Fall15_25nsV2_MC_SF_AK8PFchs.txt new file mode 100755 index 0000000000000000000000000000000000000000..87ff4829d492d7f0ffeb0e7e6486de94ab87002c GIT binary patch literal 4096 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 4 && abs(z) <= 24 && position.Rho <= 2"), # ndof>thr=4 corresponds to sum(track_weigths) > (thr+3)/2 = 3.5 so typically 4 good tracks + filter = cms.bool(True), # otherwise it won't filter the events, just produce an empty vertex collection. +) + + + + +## ============ THE NTUPLIZER!!! =============== +process.MssmHbb = cms.EDAnalyzer("Ntuplizer", + MonteCarlo = cms.bool(False), + UseFullName = cms.bool(False), + TotalEvents = cms.InputTag("TotalEvents"), + FilteredEvents = cms.InputTag("FilteredEvents"), + PatJets = cms.VInputTag( + cms.InputTag("slimmedJetsPuppi","","PAT"), + cms.InputTag("slimmedJetsAK8PFCHSSoftDropPacked","SubJets","PAT") + ), + PatMETs = cms.VInputTag( + cms.InputTag("slimmedMETs","","PAT"), + cms.InputTag("slimmedMETsPuppi","","PAT") + ), + PatMuons = cms.VInputTag( + cms.InputTag("slimmedMuons","","PAT") + ), + PrimaryVertices = cms.VInputTag( + cms.InputTag("offlineSlimmedPrimaryVertices","","PAT") + ), + TriggerResults = cms.VInputTag(cms.InputTag("TriggerResults","","HLT")), + TriggerPaths = cms.vstring ( + ## I recommend using the version number explicitly to be able to compare + ## however for production one has to be careful that all versions are included. + ## Thinking of a better solution... + "HLT_PFJet40_v", + "HLT_PFJet60_v", + "HLT_PFJet80_v", + "HLT_PFJet140_v", + "HLT_PFJet200_v", + "HLT_PFJet260_v", + "HLT_PFJet320_v", + "HLT_PFJet400_v", + "HLT_PFJet450_v", + "HLT_PFJet500_v" + ), + TriggerObjectStandAlone = cms.VInputTag( + cms.InputTag("selectedPatTrigger","","PAT"), + ), + TriggerObjectLabels = cms.vstring ( + "hltL1sL1ZeroBias", + "hltPFJetsCorrectedMatchedToCaloJets10", + "hltSingleCaloJet10", + "hltSinglePFJet40", + "hltL1sL1SingleJet36", + "hltSingleCaloJet40", + "hltPFJetsCorrectedMatchedToCaloJets40", + "hltSinglePFJet60", + "hltL1sL1SingleJet52", + "hltPFJetsCorrectedMatchedToCaloJets50", + "hltSingleCaloJet50", + "hltSinglePFJet80", + "hltL1sL1SingleJet92", + "hltPFJetsCorrectedMatchedToCaloJets110", + "hltSingleCaloJet110", + "hltSinglePFJet140", + "hltL1sL1SingleJet128", + "hltPFJetsCorrectedMatchedToCaloJets170", + "hltSingleCaloJet170", + "hltSinglePFJet200", + "hltL1sL1SingleJet200", + "hltPFJetsCorrectedMatchedToCaloJets210", + "hltSingleCaloJet210", + "hltSinglePFJet260", + "hltPFJetsCorrectedMatchedToCaloJets270", + "hltSingleCaloJet270", + "hltSinglePFJet320", + "hltPFJetsCorrectedMatchedToCaloJets350", + "hltSingleCaloJet350", + "hltSinglePFJet400", + "hltPFJetsCorrectedMatchedToCaloJets400", + "hltSingleCaloJet400", + "hltSinglePFJet450", + "hltPFJetsCorrectedMatchedToCaloJets450", + "hltSingleCaloJet450", + "hltSinglePFJet500", + ), +# L1ExtraJets = cms.VInputTag( +# cms.InputTag("l1extraParticles","Central","RECO"), +# cms.InputTag("l1extraParticles","Forward","RECO"), +# cms.InputTag("l1extraParticles","Tau","RECO") +# ), +# L1ExtraMuons = cms.VInputTag( +# cms.InputTag("l1extraParticles","","RECO") +# ), +) + +process.p = cms.Path( + process.TotalEvents * + process.primaryVertexFilter * + process.triggerSelection * + process.FilteredEvents * + process.MssmHbb + ) + +readFiles = cms.untracked.vstring() +secFiles = cms.untracked.vstring() +process.source = cms.Source ("PoolSource",fileNames = readFiles, secondaryFileNames = secFiles) + +readFiles.extend( [ + '/store/data/Run2015D/JetHT/MINIAOD/05Oct2015-v1/50000/0067D1EA-EE6F-E511-B561-0050560207C5.root', + '/store/data/Run2015D/JetHT/MINIAOD/05Oct2015-v1/50000/00729FDB-706F-E511-8E12-0050560207C5.root', + '/store/data/Run2015D/JetHT/MINIAOD/05Oct2015-v1/50000/00EE27AF-B16F-E511-A5F4-00259073E382.root', + '/store/data/Run2015D/JetHT/MINIAOD/05Oct2015-v1/50000/00F77227-DB6F-E511-8221-00259073E3D0.root', + '/store/data/Run2015D/JetHT/MINIAOD/05Oct2015-v1/50000/00FFECBB-A16F-E511-91F0-00259073E390.root', + '/store/data/Run2015D/JetHT/MINIAOD/05Oct2015-v1/50000/021DD636-B46F-E511-B192-00259073E382.root', + '/store/data/Run2015D/JetHT/MINIAOD/05Oct2015-v1/50000/02C56D74-8C6F-E511-8989-00505602078D.root', + +] ); + + +secFiles.extend( [ + ] ) + diff --git a/Analysis/Ntuplizer/test/jetht_76x_expert.py b/Analysis/Ntuplizer/test/jetht_76x_expert.py new file mode 100644 index 0000000..efcecb4 --- /dev/null +++ b/Analysis/Ntuplizer/test/jetht_76x_expert.py @@ -0,0 +1,342 @@ +import FWCore.ParameterSet.Config as cms +import os + +process = cms.Process("MssmHbb") + +process.load("FWCore.MessageService.MessageLogger_cfi") +process.MessageLogger.cerr.FwkReport.reportEvery = cms.untracked.int32(1) + +## Using MINIAOD. GlobalTag just in case jet re-clustering, L1 trigger filter etc is needed to be done +process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") +from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag as customiseGlobalTag +process.GlobalTag = customiseGlobalTag(process.GlobalTag, globaltag = '76X_dataRun2_16Dec2015_v0') +process.GlobalTag.connect = 'frontier://FrontierProd/CMS_CONDITIONS' +process.GlobalTag.pfnPrefix = cms.untracked.string('frontier://FrontierProd/') +for pset in process.GlobalTag.toGet.value(): + pset.connect = pset.connect.value().replace('frontier://FrontierProd/', 'frontier://FrontierProd/') +## fix for multi-run processing +process.GlobalTag.RefreshEachRun = cms.untracked.bool( False ) +process.GlobalTag.ReconnectEachRun = cms.untracked.bool( False ) + +process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1000) ) + +output_file = 'output.root' +## TFileService +process.TFileService = cms.Service("TFileService", + fileName = cms.string(output_file) +) + + +## ============ TRIGGER FILTER =============== +## Enable below at cms.Path if needed +process.triggerSelection = cms.EDFilter( "TriggerResultsFilter", + triggerConditions = cms.vstring( + 'HLT_PFJet40_v*', + 'HLT_PFJet60_v*', + 'HLT_PFJet80_v*', + 'HLT_PFJet140_v*', + 'HLT_PFJet200_v*', +# 'HLT_DoubleJetsC100_DoubleBTagCSV0p85_DoublePFJetsC160_v*', +# 'HLT_DoubleJetsC100_DoubleBTagCSV0p9_DoublePFJetsC100MaxDeta1p6_v*', +# 'HLT_DoubleJetsC112_DoubleBTagCSV0p85_DoublePFJetsC172_v*', +# 'HLT_DoubleJetsC112_DoubleBTagCSV0p9_DoublePFJetsC112MaxDeta1p6_v*', + ), + hltResults = cms.InputTag( "TriggerResults", "", "HLT" ), + l1tResults = cms.InputTag( "" ), + l1tIgnoreMask = cms.bool( False ), + l1techIgnorePrescales = cms.bool( False ), + daqPartitions = cms.uint32( 1 ), + throw = cms.bool( True ) +) + + + +## ============ RE-APPLY JET ENERGY CORRECTIONS =============== BE CAREFUL!!! +## Enable below at cms.Path if needed +from PhysicsTools.PatAlgos.producersLayer1.jetUpdater_cff import patJetCorrFactorsUpdated +process.slimmedJetsCorrFactorsReapplyJEC = patJetCorrFactorsUpdated.clone( + src = cms.InputTag("slimmedJets"), + levels = ['L1FastJet', + 'L2Relative', + 'L3Absolute'], + payload = 'AK4PFchs' ) # Make sure to choose the appropriate levels and payload here! + + +process.slimmedJetsPuppiCorrFactorsReapplyJEC = patJetCorrFactorsUpdated.clone( + src = cms.InputTag("slimmedJetsPuppi"), + levels = ['L1FastJet', + 'L2Relative', + 'L3Absolute'], + payload = 'AK4PFPuppi' ) # Make sure to choose the appropriate levels and payload here! + +process.slimmedJetsAK8PFCorrFactorsReapplyJEC = patJetCorrFactorsUpdated.clone( + src = cms.InputTag("slimmedJetsAK8PFCHSSoftDropPacked","SubJets","RECO"), + levels = ['L1FastJet', + 'L2Relative', + 'L3Absolute'], + payload = 'AK8PFchs' ) # Make sure to choose the appropriate levels and payload here! + + +from PhysicsTools.PatAlgos.producersLayer1.jetUpdater_cff import patJetsUpdated +process.slimmedJetsReapplyJEC = patJetsUpdated.clone( + jetSource = cms.InputTag("slimmedJets"), + jetCorrFactorsSource = cms.VInputTag(cms.InputTag("slimmedJetsCorrFactorsReapplyJEC")) + ) + +process.slimmedJetsPuppiReapplyJEC = patJetsUpdated.clone( + jetSource = cms.InputTag("slimmedJetsPuppi"), + jetCorrFactorsSource = cms.VInputTag(cms.InputTag("slimmedJetsPuppiCorrFactorsReapplyJEC")) + ) + +process.slimmedJetsAK8PFCHSSoftDropPackedReapplyJEC = patJetsUpdated.clone( + jetSource = cms.InputTag("slimmedJetsAK8PFCHSSoftDropPacked","SubJets","RECO"), + jetCorrFactorsSource = cms.VInputTag(cms.InputTag("slimmedJetsAK8PFCorrFactorsReapplyJEC")) + ) + +## ============= Jet Energy Resolution ============= + +process.load('Configuration.StandardSequences.Services_cff') +process.load("JetMETCorrections.Modules.JetResolutionESProducer_cfi") +from CondCore.DBCommon.CondDBSetup_cfi import * + +process.jer_AK4PFchs = cms.ESSource("PoolDBESSource",CondDBSetup,toGet = cms.VPSet( + # Resolution + cms.PSet( + record = cms.string('JetResolutionRcd'), + tag = cms.string('JR_Fall15_25nsV2_DATA_PtResolution_AK4PFchs'), + label = cms.untracked.string('AK4PFchs_pt') + ), + + # Scale factors + cms.PSet( + record = cms.string('JetResolutionScaleFactorRcd'), + tag = cms.string('JR_Fall15_25nsV2_DATA_SF_AK4PFchs'), + label = cms.untracked.string('AK4PFchs') + ), + ), + connect = cms.string('sqlite_fip:Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA.db') + ) + +process.es_prefer_jer_AK4PFchs = cms.ESPrefer('PoolDBESSource', 'jer_AK4PFchs') + +process.jer_AK8PFchs = cms.ESSource("PoolDBESSource",CondDBSetup,toGet = cms.VPSet( + # Resolution + cms.PSet( + record = cms.string('JetResolutionRcd'), + tag = cms.string('JR_Fall15_25nsV2_DATA_PtResolution_AK8PFchs'), + label = cms.untracked.string('AK8PFchs_pt') + ), + + # Scale factors + cms.PSet( + record = cms.string('JetResolutionScaleFactorRcd'), + tag = cms.string('JR_Fall15_25nsV2_DATA_SF_AK8PFchs'), + label = cms.untracked.string('AK8PFchs') + ), + ), + connect = cms.string('sqlite_fip:Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA.db') + ) + +process.es_prefer_jer_AK8PFchs = cms.ESPrefer('PoolDBESSource', 'jer_AK8PFchs') + +## ================================================= + +## ============ EVENT FILTER COUNTER =============== +## Filter counter (maybe more useful for MC) +process.TotalEvents = cms.EDProducer("EventCountProducer") +process.FilteredEvents = cms.EDProducer("EventCountProducer") + +## ============ PRIMARY VERTEX FILTER =============== +process.primaryVertexFilter = cms.EDFilter("VertexSelector", + src = cms.InputTag("offlineSlimmedPrimaryVertices"), # primary vertex collection name + cut = cms.string("!isFake && ndof > 4 && abs(z) <= 24 && position.Rho <= 2"), # ndof>thr=4 corresponds to sum(track_weigths) > (thr+3)/2 = 3.5 so typically 4 good tracks + filter = cms.bool(True), # otherwise it won't filter the events, just produce an empty vertex collection. +) +## =========== JET N FILTER ============== +process.jetCounterFilter = cms.EDFilter("CandViewCountFilter", + src = cms.InputTag("slimmedJetsReapplyJEC"), # new slimmed Jets + minNumber = cms.uint32(2), + ) + +## ============ KINEMATIC JET FILTER =============== +process.jetKinematicFilter = cms.EDFilter("kinematicJetFilter", + src = cms.InputTag("slimmedJetsReapplyJEC"), + pt = cms.vdouble(85.,85.), + eta = cms.vdouble(2.5,2.5), +) + +## ============ BTAG JET FILTER =============== +process.jetBTagFilter = cms.EDFilter("btagJetFilter", + src = cms.InputTag("slimmedJetsReapplyJEC"), + algo = cms.string("pfCombinedInclusiveSecondaryVertexV2BJetTags"), + btag = cms.vdouble(0.5,0.5), +) + +## ============ THE NTUPLIZER!!! =============== +process.MssmHbb = cms.EDAnalyzer("Ntuplizer", + MonteCarlo = cms.bool(False), + CrossSection = cms.double(1), # in pb + UseFullName = cms.bool(False), + ################### + TotalEvents = cms.InputTag("TotalEvents"), + FilteredEvents = cms.InputTag("FilteredEvents"), + Rho = cms.InputTag("fixedGridRhoFastjetAll"), + JERResFiles = cms.vstring( +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PtResolution_AK4PFchs.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PtResolution_AK4PFPuppi.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PtResolution_AK8PFchs.txt", + ), + JERSfFiles = cms.vstring( +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_SF_AK4PFchs.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_SF_AK4PFPuppi.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_SF_AK8PFchs.txt" + ), + PatJets = cms.VInputTag( # Be careful with the correction uncertainties!!! + cms.InputTag("slimmedJetsReapplyJEC"), +# cms.InputTag("slimmedJetsPuppiReapplyJEC"), + cms.InputTag("slimmedJetsAK8PFCHSSoftDropPackedReapplyJEC") + ), + JERRecords = cms.vstring ( + "AK4PFchs", +# "AK4PFPuppi", + "AK8PFchs", + ), + JECRecords = cms.vstring ( + "AK4PFchs", +# "AK4PFPuppi", + "AK8PFchs", + ), + PatMETs = cms.VInputTag( + cms.InputTag("slimmedMETs"), + cms.InputTag("slimmedMETsPuppi") + ), + PatMuons = cms.VInputTag( + cms.InputTag("slimmedMuons") + ), + PrimaryVertices = cms.VInputTag( + cms.InputTag("offlineSlimmedPrimaryVertices") + ), + BTagAlgorithms = cms.vstring ( + "pfCombinedInclusiveSecondaryVertexV2BJetTags", +# "combinedSecondaryVertexBJetTags", +# "pfJetBProbabilityBJetTags", +# "pfJetProbabilityBJetTags", +# "pfTrackCountingHighPurBJetTags", +# "pfTrackCountingHighEffBJetTags", +# "pfSimpleSecondaryVertexHighEffBJetTags", +# "pfSimpleSecondaryVertexHighPurBJetTags", + "pfCombinedSecondaryVertexV2BJetTags", +# "pfCombinedSecondaryVertexSoftLeptonBJetTags", + "pfCombinedMVAV2BJetTags", + ), + BTagAlgorithmsAlias = cms.vstring ( + "btag_csvivf", +# "btag_csv", +# "btag_jetbprob", +# "btag_jetprob", +# "btag_tchp", +# "btag_tche", +# "btag_svhe", +# "btag_svhp", + "btag_csvv2", +# "btag_csvlep", + "btag_csvmva", + ), + TriggerResults = cms.VInputTag(cms.InputTag("TriggerResults","","HLT")), + TriggerPaths = cms.vstring ( + ## I recommend using the version number explicitly to be able to compare + ## however for production one has to be careful that all versions are included. + ## Thinking of a better solution... + "HLT_PFJet40_v", + "HLT_PFJet60_v", + "HLT_PFJet80_v", + "HLT_PFJet140_v", + "HLT_PFJet200_v", + "HLT_DoubleJetsC100_DoubleBTagCSV0p85_DoublePFJetsC160_v", + "HLT_DoubleJetsC100_DoubleBTagCSV0p9_DoublePFJetsC100MaxDeta1p6_v", + "HLT_DoubleJetsC112_DoubleBTagCSV0p85_DoublePFJetsC172_v", + "HLT_DoubleJetsC112_DoubleBTagCSV0p9_DoublePFJetsC112MaxDeta1p6_v" + ), + TriggerObjectStandAlone = cms.VInputTag( + cms.InputTag("selectedPatTrigger"), + ), + TriggerObjectLabels = cms.vstring ( + "hltL1sL1ZeroBias", + "hltPFJetsCorrectedMatchedToCaloJets10", + "hltSingleCaloJet10", + "hltSinglePFJet40", + "hltL1sL1SingleJet36", + "hltSingleCaloJet40", + "hltPFJetsCorrectedMatchedToCaloJets40", + "hltSinglePFJet60", + "hltL1sL1SingleJet52", + "hltPFJetsCorrectedMatchedToCaloJets50", + "hltSingleCaloJet50", + "hltSinglePFJet80", + "hltL1sL1SingleJet92", + "hltPFJetsCorrectedMatchedToCaloJets110", + "hltSingleCaloJet110", + "hltSinglePFJet140", + "hltL1sL1SingleJet128", + "hltPFJetsCorrectedMatchedToCaloJets170", + "hltSingleCaloJet170", + "hltSinglePFJet200", + + "hltL1sL1DoubleJetC100", + "hltDoubleJetsC100", + "hltDoublePFJetsC100", + "hltDoublePFJetsC100MaxDeta1p6", + "hltDoublePFJetsC160", + "hltDoubleBTagCSV0p85", + "hltDoubleBTagCSV0p9", + "hltL1sL1DoubleJetC112", + "hltDoubleJetsC112", + "hltDoublePFJetsC112", + "hltDoublePFJetsC112MaxDeta1p6", + "hltDoublePFJetsC172" + ), +# L1ExtraJets = cms.VInputTag( +# cms.InputTag("l1extraParticles","Central","RECO"), +# cms.InputTag("l1extraParticles","Forward","RECO"), +# cms.InputTag("l1extraParticles","Tau","RECO") +# ), +# L1ExtraMuons = cms.VInputTag( +# cms.InputTag("l1extraParticles","","RECO") +# ), +) + +process.p = cms.Path( + process.TotalEvents * + process.triggerSelection * + process.primaryVertexFilter * + process.slimmedJetsCorrFactorsReapplyJEC * process. slimmedJetsReapplyJEC * + process.slimmedJetsPuppiCorrFactorsReapplyJEC * process. slimmedJetsPuppiReapplyJEC * + process.slimmedJetsAK8PFCorrFactorsReapplyJEC * process. slimmedJetsAK8PFCHSSoftDropPackedReapplyJEC * +# process.jetCounterFilter * process.jetKinematicFilter * +# process.jetBTagFilter * + process.FilteredEvents * + process.MssmHbb + ) + + +readFiles = cms.untracked.vstring() +secFiles = cms.untracked.vstring() +process.source = cms.Source ("PoolSource",fileNames = readFiles, secondaryFileNames = secFiles) + +readFiles.extend( [ + '/store/data/Run2015D/JetHT/MINIAOD/16Dec2015-v1/00000/301A497D-70B0-E511-9630-002590D0AFA8.root' +] ); + + +secFiles.extend( [ + ] ) + +## ============ JSON Certified data =============== BE CAREFUL!!! +## Don't use with CRAB!!! +#import FWCore.PythonUtilities.LumiList as LumiList +#import FWCore.ParameterSet.Types as CfgTypes +#process.source.lumisToProcess = CfgTypes.untracked(CfgTypes.VLuminosityBlockRange()) +#JSONfile = 'Cert_246908-260627_13TeV_PromptReco_Collisions15_25ns_JSON_v2.txt' +#myLumis = LumiList.LumiList(filename = JSONfile).getCMSSWString().split(',') +#process.source.lumisToProcess.extend(myLumis) + diff --git a/Analysis/Ntuplizer/test/nickProducer.py b/Analysis/Ntuplizer/test/nickProducer.py new file mode 100644 index 0000000..c5865f4 --- /dev/null +++ b/Analysis/Ntuplizer/test/nickProducer.py @@ -0,0 +1,109 @@ +import re +from grid_control import datasets, DatasetError +from grid_control.datasets import NickNameProducer + +def lookup(data, keyMap, default = None): + for key in keyMap: + if key in data: + return keyMap[key] + return (default, '')[default == None] + +def lookupBegin(data, keyMap, default = None): + print data + for key in keyMap: + if data.startswith(key): + return keyMap[key] + return (default, '')[default == None] + + +def addPart(data): + return ('_%s' % data, '')[data == ''] + +def parseCuts(data): + tmp = re.findall('([0-9]+)to([0-9]+)', data.lower()) + if tmp: + return tmp[0] + return filter(lambda x: int(x) > 0, re.findall('pt[-_]*([0-9]+)', data.lower())) + +#/SUSYBBHToTauTau_M-*_7TeV-pythia6-tauola/Summer11-PU_S4_START42_V11-*/AODSIM +#/SUSYGluGluToHToTauTau_M-*_7TeV-pythia6-tauola/Summer11-PU_S4_START42_V11-*/AODSIM +#/VBF_HToTauTau_M-*_7TeV-powheg-pythia6-tauola/Summer11-PU_S4_START42_V11-*/AODSIM +#/GluGluToHToTauTau_M-*_7TeV-powheg-pythia6/Summer11-PU_S4_START42_V11-*/AODSIM +#/WH_ZH_TTH_HToTauTau_M-*_7TeV-pythia6-tauola/Summer11-PU_S4_START42_V11-*/AODSIM + + +class signalNicks(NickNameProducer): + def getName(self, oldnick, dataset, block): + if oldnick != '': + return oldnick + + try: + (pd, sd, tier) = dataset.lstrip('/').split('/') + #(process, masspart, other) = pd.split("_") + pdParts = pd.split("_") + #print pd, sd, tier, pdParts + + processMap = { + "SUSYBBHToTauTau" : "SUSYBBHToTauTau", + "SUSYGluGluToHToTauTau" : "SUSYGluGluToHToTauTau", + "VBF_HToTauTau" : "VBFHToTauTau", + "VBFHToTauTau" : "VBFHToTauTau", + "GluGluToHToTauTau" : "SMGluGluToHToTauTau", + "WH_ZH_TTH_HToTauTau" : "WHZHTTHToTauTau", + "GluGluToHToWWTo2LAndTau2Nu" : "SMGluGluToHToWWTo2LAndTau2Nu", + "VBF_HToWWTo2LAndTau2Nu" : "VBFHToWWTo2LAndTau2Nu", + } + + tuneMap = { + 'D6T': 'D6T', + 'pythia8': 'T1', + 'ProPT0': 'ProPT0', + 'Z2': 'Z2', + 'Zstar2': 'Z2star', + } + genMap = { + 'powheg': 'powheg', + 'madgraph': 'madgraph', + 'alpgen': 'alpgen', + 'herwigjimmy': 'herwigjimmy', + 'herwig': 'herwig', + 'pythia8': 'pythia8', + 'pythia': 'pythia', + 'minloHJJ': 'minloHJJ', + } + + condMap = { + 'Summer11-PU_S3_START42_V11': 'SU11S42v11PUS3', + 'Summer11-PU_S4_START42_V11': 'SU11S42v11PUS4', + 'Fall11-PU_S6_START42_V14B': 'FA11S42v14BPUS6', + 'Summer12-PU_S7_START52_V9': 'SU12S52v9PUS7', + 'Summer12_DR53X-PU_S10_START53_V7A': 'SU12S53v7APUS10', + 'Summer12_DR53X-PU_S10_START53_V7C': 'SU12S53v7CPUS10', + 'Summer12_DR53X-PU_S10_START53_V19': 'SU12S53v19PUS10', + } + + nick = lookupBegin(pd, processMap, '!') + if "lepdecay" in pd: + nick += addPart("lepdecay") + + nick += addPart(lookup(pd, tuneMap, 'Z2star')) + nick += addPart(lookup(pd, genMap, '!')) + nick += addPart('%04d' % int(re.search('M-([0-9]+)', pd).group(1))) + nick += addPart(lookup(sd, condMap, '!')) + nick += addPart(re.search('-(v[0-9]?)', dataset).group(1)) + print "result:" + print "\t", dataset + print "\t", nick + except: + print oldnick, dataset + raise + if "!" in nick: + print "" + print "Dataset: %s" % dataset + print "Nickname: %s" % nick + raise "Automatic nick name creation failed! Please check the code of the nickname source!" + return nick + +Summer12SignalNicks=signalNicks +Summer11SignalNicks=signalNicks +Fall11SignalNicks=signalNicks diff --git a/Analysis/Ntuplizer/test/ntuplizer_data_76x_expert.py b/Analysis/Ntuplizer/test/ntuplizer_data_76x_expert.py index 361b262..2c4a689 100644 --- a/Analysis/Ntuplizer/test/ntuplizer_data_76x_expert.py +++ b/Analysis/Ntuplizer/test/ntuplizer_data_76x_expert.py @@ -136,29 +136,29 @@ ), BTagAlgorithms = cms.vstring ( "pfCombinedInclusiveSecondaryVertexV2BJetTags", -# "combinedSecondaryVertexBJetTags", -# "pfJetBProbabilityBJetTags", -# "pfJetProbabilityBJetTags", -# "pfTrackCountingHighPurBJetTags", -# "pfTrackCountingHighEffBJetTags", -# "pfSimpleSecondaryVertexHighEffBJetTags", -# "pfSimpleSecondaryVertexHighPurBJetTags", -# "pfCombinedSecondaryVertexV2BJetTags", -# "pfCombinedSecondaryVertexSoftLeptonBJetTags", -# "pfCombinedMVABJetTags", + "combinedSecondaryVertexBJetTags", + "pfJetBProbabilityBJetTags", + "pfJetProbabilityBJetTags", + "pfTrackCountingHighPurBJetTags", + "pfTrackCountingHighEffBJetTags", + "pfSimpleSecondaryVertexHighEffBJetTags", + "pfSimpleSecondaryVertexHighPurBJetTags", + "pfCombinedSecondaryVertexV2BJetTags", + "pfCombinedSecondaryVertexSoftLeptonBJetTags", + "pfCombinedMVABJetTags", ), BTagAlgorithmsAlias = cms.vstring ( "btag_csvivf", -# "btag_csv", -# "btag_jetbprob", -# "btag_jetprob", -# "btag_tchp", -# "btag_tche", -# "btag_svhe", -# "btag_svhp", -# "btag_csvv2", -# "btag_csvlep", -# "btag_csvmva", + "btag_csv", + "btag_jetbprob", + "btag_jetprob", + "btag_tchp", + "btag_tche", + "btag_svhe", + "btag_svhp", + "btag_csvv2", + "btag_csvlep", + "btag_csvmva", ), TriggerResults = cms.VInputTag(cms.InputTag("TriggerResults","","HLT")), TriggerPaths = cms.vstring ( diff --git a/Analysis/Ntuplizer/test/ntuplizer_data_76x_jer_test.py b/Analysis/Ntuplizer/test/ntuplizer_data_76x_jer_test.py new file mode 100644 index 0000000..886c016 --- /dev/null +++ b/Analysis/Ntuplizer/test/ntuplizer_data_76x_jer_test.py @@ -0,0 +1,289 @@ +import FWCore.ParameterSet.Config as cms +import os + +process = cms.Process("MssmHbb") + +process.load("FWCore.MessageService.MessageLogger_cfi") +process.MessageLogger.cerr.FwkReport.reportEvery = cms.untracked.int32(1) + +## Using MINIAOD. GlobalTag just in case jet re-clustering, L1 trigger filter etc is needed to be done +process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") +from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag as customiseGlobalTag +process.GlobalTag = customiseGlobalTag(process.GlobalTag, globaltag = '76X_dataRun2_16Dec2015_v0') +process.GlobalTag.connect = 'frontier://FrontierProd/CMS_CONDITIONS' +process.GlobalTag.pfnPrefix = cms.untracked.string('frontier://FrontierProd/') +for pset in process.GlobalTag.toGet.value(): + pset.connect = pset.connect.value().replace('frontier://FrontierProd/', 'frontier://FrontierProd/') +## fix for multi-run processing +process.GlobalTag.RefreshEachRun = cms.untracked.bool( False ) +process.GlobalTag.ReconnectEachRun = cms.untracked.bool( False ) + +process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(100) ) + +output_file = 'test_data.root' +## TFileService +process.TFileService = cms.Service("TFileService", + fileName = cms.string(output_file) +) + + +## ============ TRIGGER FILTER =============== +## Enable below at cms.Path if needed +process.triggerSelection = cms.EDFilter( "TriggerResultsFilter", + triggerConditions = cms.vstring( + 'HLT_DoubleJetsC100_DoubleBTagCSV0p85_DoublePFJetsC160_v*', + 'HLT_DoubleJetsC100_DoubleBTagCSV0p9_DoublePFJetsC100MaxDeta1p6_v*', + 'HLT_DoubleJetsC112_DoubleBTagCSV0p85_DoublePFJetsC172_v*', + 'HLT_DoubleJetsC112_DoubleBTagCSV0p9_DoublePFJetsC112MaxDeta1p6_v*', + ), + hltResults = cms.InputTag( "TriggerResults", "", "HLT" ), + l1tResults = cms.InputTag( "" ), + l1tIgnoreMask = cms.bool( False ), + l1techIgnorePrescales = cms.bool( False ), + daqPartitions = cms.uint32( 1 ), + throw = cms.bool( True ) +) + + + +## ============ RE-APPLY JET ENERGY CORRECTIONS =============== BE CAREFUL!!! +## Enable below at cms.Path if needed +from PhysicsTools.PatAlgos.producersLayer1.jetUpdater_cff import patJetCorrFactorsUpdated +process.slimmedJetsCorrFactorsReapplyJEC = patJetCorrFactorsUpdated.clone( + src = cms.InputTag("slimmedJets"), + levels = ['L1FastJet', + 'L2Relative', + 'L3Absolute'], + payload = 'AK4PFchs' ) # Make sure to choose the appropriate levels and payload here! + + +process.slimmedJetsPuppiCorrFactorsReapplyJEC = patJetCorrFactorsUpdated.clone( + src = cms.InputTag("slimmedJetsPuppi"), + levels = ['L1FastJet', + 'L2Relative', + 'L3Absolute'], + payload = 'AK4PFPuppi' ) # Make sure to choose the appropriate levels and payload here! + +process.slimmedJetsAK8PFCorrFactorsReapplyJEC = patJetCorrFactorsUpdated.clone( + src = cms.InputTag("slimmedJetsAK8PFCHSSoftDropPacked","SubJets","RECO"), + levels = ['L1FastJet', + 'L2Relative', + 'L3Absolute'], + payload = 'AK8PFchs' ) # Make sure to choose the appropriate levels and payload here! + + +from PhysicsTools.PatAlgos.producersLayer1.jetUpdater_cff import patJetsUpdated +process.slimmedJetsReapplyJEC = patJetsUpdated.clone( + jetSource = cms.InputTag("slimmedJets"), + jetCorrFactorsSource = cms.VInputTag(cms.InputTag("slimmedJetsCorrFactorsReapplyJEC")) + ) + +process.slimmedJetsPuppiReapplyJEC = patJetsUpdated.clone( + jetSource = cms.InputTag("slimmedJetsPuppi"), + jetCorrFactorsSource = cms.VInputTag(cms.InputTag("slimmedJetsPuppiCorrFactorsReapplyJEC")) + ) + +process.slimmedJetsAK8PFCHSSoftDropPackedReapplyJEC = patJetsUpdated.clone( + jetSource = cms.InputTag("slimmedJetsAK8PFCHSSoftDropPacked","SubJets","RECO"), + jetCorrFactorsSource = cms.VInputTag(cms.InputTag("slimmedJetsAK8PFCorrFactorsReapplyJEC")) + ) + +## ============ EVENT FILTER COUNTER =============== +## Filter counter (maybe more useful for MC) +process.TotalEvents = cms.EDProducer("EventCountProducer") +process.FilteredEvents = cms.EDProducer("EventCountProducer") + +## ============ PRIMARY VERTEX FILTER =============== +process.primaryVertexFilter = cms.EDFilter("VertexSelector", + src = cms.InputTag("offlineSlimmedPrimaryVertices"), # primary vertex collection name + cut = cms.string("!isFake && ndof > 4 && abs(z) <= 24 && position.Rho <= 2"), # ndof>thr=4 corresponds to sum(track_weigths) > (thr+3)/2 = 3.5 so typically 4 good tracks + filter = cms.bool(True), # otherwise it won't filter the events, just produce an empty vertex collection. +) + +## ============= Jet Energy Resolution ============= +## DOESN'T WORK FOR PUPPI! +process.load('Configuration.StandardSequences.Services_cff') +process.load("JetMETCorrections.Modules.JetResolutionESProducer_cfi") +from CondCore.DBCommon.CondDBSetup_cfi import * + +process.jer_AK4PFchs = cms.ESSource("PoolDBESSource",CondDBSetup,toGet = cms.VPSet( + # Resolution + cms.PSet( + record = cms.string('JetResolutionRcd'), + tag = cms.string('JR_Fall15_25nsV2_DATA_PtResolution_AK4PFchs'), + label = cms.untracked.string('AK4PFchs_pt') + ), + + # Scale factors + cms.PSet( + record = cms.string('JetResolutionScaleFactorRcd'), + tag = cms.string('JR_Fall15_25nsV2_DATA_SF_AK4PFchs'), + label = cms.untracked.string('AK4PFchs') + ), + ), + connect = cms.string('sqlite:jer_files/Fall15_25nsV2_DATA.db') + ) + +process.es_prefer_jer_AK4PFchs = cms.ESPrefer('PoolDBESSource', 'jer_AK4PFchs') + +process.jer_AK8PFchs = cms.ESSource("PoolDBESSource",CondDBSetup,toGet = cms.VPSet( + # Resolution + cms.PSet( + record = cms.string('JetResolutionRcd'), + tag = cms.string('JR_Fall15_25nsV2_DATA_PtResolution_AK8PFchs'), + label = cms.untracked.string('AK8PFchs_pt') + ), + + # Scale factors + cms.PSet( + record = cms.string('JetResolutionScaleFactorRcd'), + tag = cms.string('JR_Fall15_25nsV2_DATA_SF_AK8PFchs'), + label = cms.untracked.string('AK8PFchs') + ), + ), + connect = cms.string('sqlite:jer_files/Fall15_25nsV2_DATA.db') + ) + +process.es_prefer_jer_AK8PFchs = cms.ESPrefer('PoolDBESSource', 'jer_AK8PFchs') + +## +## ============ THE NTUPLIZER!!! =============== +process.MssmHbb = cms.EDAnalyzer("Ntuplizer", + MonteCarlo = cms.bool(False), + CrossSection = cms.double(1), # in pb + UseFullName = cms.bool(False), + ################### + TotalEvents = cms.InputTag("TotalEvents"), + FilteredEvents = cms.InputTag("FilteredEvents"), + Rho = cms.InputTag("fixedGridRhoFastjetAll"), + JERResFiles = cms.vstring( +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PtResolution_AK4PFchs.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PtResolution_AK4PFPuppi.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PtResolution_AK8PFchs.txt", + ), + JERSfFiles = cms.vstring( +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_SF_AK4PFchs.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_SF_AK4PFPuppi.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_SF_AK8PFchs.txt" + ), + PatJets = cms.VInputTag( # Be careful with the correction uncertainties!!! + cms.InputTag("slimmedJetsReapplyJEC"), +# cms.InputTag("slimmedJetsPuppiReapplyJEC"), + cms.InputTag("slimmedJetsAK8PFCHSSoftDropPackedReapplyJEC") + ), + JERRecords = cms.vstring ( + "AK4PFchs", +# "AK4PFPuppi", + "AK8PFchs", + ), + JECRecords = cms.vstring ( + "AK4PFchs", +# "AK4PFPuppi", + "AK8PFchs", + ), + PatMETs = cms.VInputTag( + cms.InputTag("slimmedMETs"), + cms.InputTag("slimmedMETsPuppi") + ), + PatMuons = cms.VInputTag( + cms.InputTag("slimmedMuons") + ), + PrimaryVertices = cms.VInputTag( + cms.InputTag("offlineSlimmedPrimaryVertices") + ), + BTagAlgorithms = cms.vstring ( + "pfCombinedInclusiveSecondaryVertexV2BJetTags", + "combinedSecondaryVertexBJetTags", + "pfJetBProbabilityBJetTags", + "pfJetProbabilityBJetTags", + "pfTrackCountingHighPurBJetTags", + "pfTrackCountingHighEffBJetTags", + "pfSimpleSecondaryVertexHighEffBJetTags", + "pfSimpleSecondaryVertexHighPurBJetTags", + "pfCombinedSecondaryVertexV2BJetTags", + "pfCombinedSecondaryVertexSoftLeptonBJetTags", + "pfCombinedMVABJetTags", + ), + BTagAlgorithmsAlias = cms.vstring ( + "btag_csvivf", + "btag_csv", + "btag_jetbprob", + "btag_jetprob", + "btag_tchp", + "btag_tche", + "btag_svhe", + "btag_svhp", + "btag_csvv2", + "btag_csvlep", + "btag_csvmva", + ), + TriggerResults = cms.VInputTag(cms.InputTag("TriggerResults","","HLT")), + TriggerPaths = cms.vstring ( + ## I recommend using the version number explicitly to be able to compare + ## however for production one has to be careful that all versions are included. + ## Thinking of a better solution... + 'HLT_DoubleJetsC100_DoubleBTagCSV0p85_DoublePFJetsC160_v', + 'HLT_DoubleJetsC100_DoubleBTagCSV0p9_DoublePFJetsC100MaxDeta1p6_v', + 'HLT_DoubleJetsC112_DoubleBTagCSV0p85_DoublePFJetsC172_v', + 'HLT_DoubleJetsC112_DoubleBTagCSV0p9_DoublePFJetsC112MaxDeta1p6_v', + ), + TriggerObjectStandAlone = cms.VInputTag( + cms.InputTag("selectedPatTrigger"), + ), + TriggerObjectLabels = cms.vstring ( + "hltL1sL1DoubleJetC100", + "hltDoubleJetsC100", + "hltDoublePFJetsC100", + "hltDoublePFJetsC100MaxDeta1p6", + "hltDoublePFJetsC160", + "hltDoubleBTagCSV0p85", + "hltDoubleBTagCSV0p9", + "hltL1sL1DoubleJetC112", + "hltDoubleJetsC112", + "hltDoublePFJetsC112", + "hltDoublePFJetsC112MaxDeta1p6", + "hltDoublePFJetsC172", + ), +# L1ExtraJets = cms.VInputTag( +# cms.InputTag("l1extraParticles","Central","RECO"), +# cms.InputTag("l1extraParticles","Forward","RECO"), +# cms.InputTag("l1extraParticles","Tau","RECO") +# ), +# L1ExtraMuons = cms.VInputTag( +# cms.InputTag("l1extraParticles","","RECO") +# ), +) + +process.p = cms.Path( + process.TotalEvents * + process.triggerSelection * + process.primaryVertexFilter * + process.FilteredEvents * + process.slimmedJetsCorrFactorsReapplyJEC * process. slimmedJetsReapplyJEC * + process.slimmedJetsPuppiCorrFactorsReapplyJEC * process. slimmedJetsPuppiReapplyJEC * + process.slimmedJetsAK8PFCorrFactorsReapplyJEC * process. slimmedJetsAK8PFCHSSoftDropPackedReapplyJEC * + process.MssmHbb + ) + + +readFiles = cms.untracked.vstring() +secFiles = cms.untracked.vstring() +process.source = cms.Source ("PoolSource",fileNames = readFiles, secondaryFileNames = secFiles) + +readFiles.extend( [ + '/store/data/Run2015D/BTagCSV/MINIAOD/16Dec2015-v1/50000/A6D829FA-F6AB-E511-BC84-0090FAA581F4.root', +] ); + + +secFiles.extend( [ + ] ) + +## ============ JSON Certified data =============== BE CAREFUL!!! +## Don't use with CRAB!!! +import FWCore.PythonUtilities.LumiList as LumiList +import FWCore.ParameterSet.Types as CfgTypes +process.source.lumisToProcess = CfgTypes.untracked(CfgTypes.VLuminosityBlockRange()) +JSONfile = 'Cert_246908-260627_13TeV_PromptReco_Collisions15_25ns_JSON_v2.txt' +myLumis = LumiList.LumiList(filename = JSONfile).getCMSSWString().split(',') +process.source.lumisToProcess.extend(myLumis) + diff --git a/Analysis/Ntuplizer/test/ntuplizer_mc_76x_expert.py b/Analysis/Ntuplizer/test/ntuplizer_mc_76x_expert.py index a722a46..087d232 100644 --- a/Analysis/Ntuplizer/test/ntuplizer_mc_76x_expert.py +++ b/Analysis/Ntuplizer/test/ntuplizer_mc_76x_expert.py @@ -17,7 +17,7 @@ process.GlobalTag.RefreshEachRun = cms.untracked.bool( False ) process.GlobalTag.ReconnectEachRun = cms.untracked.bool( False ) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(100) ) +process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1000) ) output_file = 'test_mc.root' ## TFileService @@ -26,7 +26,7 @@ ) # ## ============ TRIGGER FILTER =============== BE CAREFUL!!! -# ## Enable below at cms.Path if needed +# ## Enable below at cms.Path if needed # process.triggerSelection = cms.EDFilter( "TriggerResultsFilter", # triggerConditions = cms.vstring( # "HLT_ZeroBias_v*", @@ -38,33 +38,33 @@ # daqPartitions = cms.uint32( 1 ), # throw = cms.bool( True ) # ) -# +# ## ============ RE-APPLY JET ENERGY CORRECTIONS =============== BE CAREFUL!!! -## Enable below at cms.Path if needed +## Enable below at cms.Path if needed from PhysicsTools.PatAlgos.producersLayer1.jetUpdater_cff import patJetCorrFactorsUpdated process.slimmedJetsCorrFactorsReapplyJEC = patJetCorrFactorsUpdated.clone( src = cms.InputTag("slimmedJets","","PAT"), - levels = ['L1FastJet', - 'L2Relative', + levels = ['L1FastJet', + 'L2Relative', 'L3Absolute'], payload = 'AK4PFchs' ) # Make sure to choose the appropriate levels and payload here! process.slimmedJetsPuppiCorrFactorsReapplyJEC = patJetCorrFactorsUpdated.clone( src = cms.InputTag("slimmedJetsPuppi","","PAT"), - levels = ['L1FastJet', - 'L2Relative', + levels = ['L1FastJet', + 'L2Relative', 'L3Absolute'], payload = 'AK4PFPuppi' ) # Make sure to choose the appropriate levels and payload here! - + process.slimmedJetsAK8PFCorrFactorsReapplyJEC = patJetCorrFactorsUpdated.clone( src = cms.InputTag("slimmedJetsAK8PFCHSSoftDropPacked","SubJets","PAT"), - levels = ['L1FastJet', - 'L2Relative', + levels = ['L1FastJet', + 'L2Relative', 'L3Absolute'], payload = 'AK8PFchs' ) # Make sure to choose the appropriate levels and payload here! - + from PhysicsTools.PatAlgos.producersLayer1.jetUpdater_cff import patJetsUpdated process.slimmedJetsReapplyJEC = patJetsUpdated.clone( @@ -95,6 +95,26 @@ filter = cms.bool(True), # otherwise it won't filter the events, just produce an empty vertex collection. ) +## =========== JET N FILTER ============== +process.jetCounterFilter = cms.EDFilter("CandViewCountFilter", + src = cms.InputTag("slimmedJetsPuppiReapplyJEC"), # new slimmed Jets + minNumber = cms.uint32(2), + ) + +## ============ KINEMATIC JET FILTER =============== +process.jetKinematicFilter = cms.EDFilter("kinematicJetFilter", + src = cms.InputTag("slimmedJetsPuppiReapplyJEC"), + pt = cms.vdouble(80.,80.), + eta = cms.vdouble(3.,3.), +) + +## ============ BTAG JET FILTER =============== +process.jetBTagFilter = cms.EDFilter("btagJetFilter", + src = cms.InputTag("slimmedJetsPuppiReapplyJEC"), + algo = cms.string("pfCombinedInclusiveSecondaryVertexV2BJetTags"), + btag = cms.vdouble(0.5,0.5), +) + ## ============ THE NTUPLIZER!!! =============== process.MssmHbb = cms.EDAnalyzer("Ntuplizer", MonteCarlo = cms.bool(True), @@ -117,7 +137,7 @@ cms.InputTag("slimmedJetsReapplyJEC"), cms.InputTag("slimmedJetsPuppiReapplyJEC"), cms.InputTag("slimmedJetsAK8PFCHSSoftDropPackedReapplyJEC") - ), + ), JECRecords = cms.vstring ( # "", # "", @@ -129,13 +149,13 @@ PatMETs = cms.VInputTag( cms.InputTag("slimmedMETs","","PAT"), cms.InputTag("slimmedMETsPuppi","","PAT") - ), + ), PatMuons = cms.VInputTag( cms.InputTag("slimmedMuons","","PAT") - ), + ), PrimaryVertices = cms.VInputTag( cms.InputTag("offlineSlimmedPrimaryVertices","","PAT") - ), + ), BTagAlgorithms = cms.vstring ( "pfCombinedInclusiveSecondaryVertexV2BJetTags", # "combinedSecondaryVertexBJetTags", @@ -145,9 +165,9 @@ # "pfTrackCountingHighEffBJetTags", # "pfSimpleSecondaryVertexHighEffBJetTags", # "pfSimpleSecondaryVertexHighPurBJetTags", -# "pfCombinedSecondaryVertexV2BJetTags", + "pfCombinedSecondaryVertexV2BJetTags", # "pfCombinedSecondaryVertexSoftLeptonBJetTags", -# "pfCombinedMVABJetTags", + "pfCombinedMVAV2BJetTags", ), BTagAlgorithmsAlias = cms.vstring ( "btag_csvivf", @@ -158,13 +178,13 @@ # "btag_tche", # "btag_svhe", # "btag_svhp", -# "btag_csvv2", + "btag_csvv2", # "btag_csvlep", -# "btag_csvmva", + "btag_csvmva", ), TriggerResults = cms.VInputTag(cms.InputTag("TriggerResults","","HLT")), TriggerPaths = cms.vstring ( - ## I recommend using the version number explicitly to be able to compare + ## I recommend using the version number explicitly to be able to compare ## however for production one has to be careful that all versions are included. ## Thinking of a better solution... 'HLT_DoubleJetsC100_DoubleBTagCSV0p85_DoublePFJetsC160_v', @@ -206,12 +226,13 @@ process.slimmedJetsCorrFactorsReapplyJEC * process. slimmedJetsReapplyJEC * process.slimmedJetsPuppiCorrFactorsReapplyJEC * process. slimmedJetsPuppiReapplyJEC * process.slimmedJetsAK8PFCorrFactorsReapplyJEC * process. slimmedJetsAK8PFCHSSoftDropPackedReapplyJEC * + process.jetCounterFilter * process.jetKinematicFilter * process.jetBTagFilter * process.MssmHbb ) readFiles = cms.untracked.vstring() -secFiles = cms.untracked.vstring() +secFiles = cms.untracked.vstring() process.source = cms.Source ("PoolSource",fileNames = readFiles, secondaryFileNames = secFiles) readFiles.extend( [ # '/store/mc/RunIIFall15MiniAODv2/SUSYGluGluToBBHToBB_M-120_TuneCUETP8M1_13TeV-pythia8/MINIAODSIM/PU25nsData2015v1Raw_76X_mcRun2_asymptotic_v12-v1/10000/1299073E-17C5-E511-86A4-20CF300E9EC1.root', @@ -221,4 +242,3 @@ secFiles.extend( [ ] ) - diff --git a/Analysis/Ntuplizer/test/pythia8_qcd_76x_expert.py b/Analysis/Ntuplizer/test/pythia8_qcd_76x_expert.py index c35b2a8..376b5ea 100644 --- a/Analysis/Ntuplizer/test/pythia8_qcd_76x_expert.py +++ b/Analysis/Ntuplizer/test/pythia8_qcd_76x_expert.py @@ -1,4 +1,5 @@ import FWCore.ParameterSet.Config as cms +import os process = cms.Process("MssmHbb") @@ -82,6 +83,53 @@ jetCorrFactorsSource = cms.VInputTag(cms.InputTag("slimmedJetsAK8PFCorrFactorsReapplyJEC")) ) +## ============= Jet Energy Resolution ============= + +process.load('Configuration.StandardSequences.Services_cff') +process.load("JetMETCorrections.Modules.JetResolutionESProducer_cfi") +from CondCore.DBCommon.CondDBSetup_cfi import * + +process.jer_AK4PFchs = cms.ESSource("PoolDBESSource",CondDBSetup,toGet = cms.VPSet( + # Resolution + cms.PSet( + record = cms.string('JetResolutionRcd'), + tag = cms.string('JR_Fall15_25nsV2_MC_PtResolution_AK4PFchs'), + label = cms.untracked.string('AK4PFchs_pt') + ), + + # Scale factors + cms.PSet( + record = cms.string('JetResolutionScaleFactorRcd'), + tag = cms.string('JR_Fall15_25nsV2_MC_SF_AK4PFchs'), + label = cms.untracked.string('AK4PFchs') + ), + ), + connect = cms.string('sqlite_fip:Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_MC.db') + ) + +process.es_prefer_jer_AK4PFchs = cms.ESPrefer('PoolDBESSource', 'jer_AK4PFchs') + +process.jer_AK8PFchs = cms.ESSource("PoolDBESSource",CondDBSetup,toGet = cms.VPSet( + # Resolution + cms.PSet( + record = cms.string('JetResolutionRcd'), + tag = cms.string('JR_Fall15_25nsV2_MC_PtResolution_AK8PFchs'), + label = cms.untracked.string('AK8PFchs_pt') + ), + + # Scale factors + cms.PSet( + record = cms.string('JetResolutionScaleFactorRcd'), + tag = cms.string('JR_Fall15_25nsV2_MC_SF_AK8PFchs'), + label = cms.untracked.string('AK8PFchs') + ), + ), + connect = cms.string('sqlite_fip:Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_MC.db') + ) + +process.es_prefer_jer_AK8PFchs = cms.ESPrefer('PoolDBESSource', 'jer_AK8PFchs') + +## ================================================= ## ============ EVENT FILTER COUNTER =============== ## Filter counter (maybe more useful for MC) @@ -96,20 +144,20 @@ ) ## =========== JET N FILTER ============== process.jetCounterFilter = cms.EDFilter("CandViewCountFilter", - src = cms.InputTag("slimmedJetsPuppiReapplyJEC"), # new slimmed Jets + src = cms.InputTag("slimmedJetsReapplyJEC"), # new slimmed Jets minNumber = cms.uint32(2), ) ## ============ KINEMATIC JET FILTER =============== process.jetKinematicFilter = cms.EDFilter("kinematicJetFilter", - src = cms.InputTag("slimmedJetsPuppiReapplyJEC"), + src = cms.InputTag("slimmedJetsReapplyJEC"), pt = cms.vdouble(85.,85.), eta = cms.vdouble(2.5,2.5), ) ## ============ BTAG JET FILTER =============== process.jetBTagFilter = cms.EDFilter("btagJetFilter", - src = cms.InputTag("slimmedJetsPuppiReapplyJEC"), + src = cms.InputTag("slimmedJetsReapplyJEC"), algo = cms.string("pfCombinedInclusiveSecondaryVertexV2BJetTags"), btag = cms.vdouble(0.5,0.5), ) @@ -129,22 +177,32 @@ ################### TotalEvents = cms.InputTag("TotalEvents"), FilteredEvents = cms.InputTag("FilteredEvents"), + Rho = cms.InputTag("fixedGridRhoFastjetAll"), + JERResFiles = cms.vstring( +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PtResolution_AK4PFchs.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PtResolution_AK4PFPuppi.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_PtResolution_AK8PFchs.txt", + ), + JERSfFiles = cms.vstring( +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_SF_AK4PFchs.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_SF_AK4PFPuppi.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/test/jer_files/Fall15_25nsV2_DATA_SF_AK8PFchs.txt" + ), PatJets = cms.VInputTag( # Be careful with the correction uncertainties!!! -# cms.InputTag("slimmedJets","","PAT"), -# cms.InputTag("slimmedJetsPuppi","","PAT"), -# cms.InputTag("slimmedJetsAK8PFCHSSoftDropPacked","SubJets","PAT"), cms.InputTag("slimmedJetsReapplyJEC"), - cms.InputTag("slimmedJetsPuppiReapplyJEC"), +# cms.InputTag("slimmedJetsPuppiReapplyJEC"), cms.InputTag("slimmedJetsAK8PFCHSSoftDropPackedReapplyJEC") - ), + ), + JERRecords = cms.vstring ( + "AK4PFchs", +# "AK4PFPuppi", + "AK8PFchs", + ), JECRecords = cms.vstring ( -# "", -# "", -# "", "AK4PFchs", - "AK4PFPuppi", +# "AK4PFPuppi", "AK8PFchs", - ), + ), PatMETs = cms.VInputTag( cms.InputTag("slimmedMETs","","PAT"), cms.InputTag("slimmedMETsPuppi","","PAT") @@ -244,7 +302,7 @@ process.slimmedJetsCorrFactorsReapplyJEC * process. slimmedJetsReapplyJEC * process.slimmedJetsPuppiCorrFactorsReapplyJEC * process. slimmedJetsPuppiReapplyJEC * process.slimmedJetsAK8PFCorrFactorsReapplyJEC * process. slimmedJetsAK8PFCHSSoftDropPackedReapplyJEC * - process.jetCounterFilter * process.jetKinematicFilter * +# process.jetCounterFilter * process.jetKinematicFilter * # process.jetBTagFilter * #switch off for Trigger Study Ntuples!!!!! process.FilteredEvents * process.MssmHbb @@ -255,14 +313,10 @@ secFiles = cms.untracked.vstring() process.source = cms.Source ("PoolSource",fileNames = readFiles, secondaryFileNames = secFiles) readFiles.extend( [ - '/store/mc/RunIIFall15MiniAODv2/QCD_Pt_600to800_TuneCUETP8M1_13TeV_pythia8/MINIAODSIM/PU25nsData2015v1_76X_mcRun2_asymptotic_v12-v1/10000/029802B3-83B8-E511-A002-0025905C22AE.root', - '/store/mc/RunIIFall15MiniAODv2/QCD_Pt_600to800_TuneCUETP8M1_13TeV_pythia8/MINIAODSIM/PU25nsData2015v1_76X_mcRun2_asymptotic_v12-v1/10000/08573287-83B8-E511-BA14-0025905C4270.root', - '/store/mc/RunIIFall15MiniAODv2/QCD_Pt_600to800_TuneCUETP8M1_13TeV_pythia8/MINIAODSIM/PU25nsData2015v1_76X_mcRun2_asymptotic_v12-v1/10000/0A79FEA4-7FB8-E511-B77C-0025905AC806.root', - '/store/mc/RunIIFall15MiniAODv2/QCD_Pt_600to800_TuneCUETP8M1_13TeV_pythia8/MINIAODSIM/PU25nsData2015v1_76X_mcRun2_asymptotic_v12-v1/10000/14E6823C-83B8-E511-89D5-0025905C426E.root', - '/store/mc/RunIIFall15MiniAODv2/QCD_Pt_600to800_TuneCUETP8M1_13TeV_pythia8/MINIAODSIM/PU25nsData2015v1_76X_mcRun2_asymptotic_v12-v1/10000/1640C8BA-81B8-E511-8FB6-0025905C426E.root', - '/store/mc/RunIIFall15MiniAODv2/QCD_Pt_600to800_TuneCUETP8M1_13TeV_pythia8/MINIAODSIM/PU25nsData2015v1_76X_mcRun2_asymptotic_v12-v1/10000/16D51DFC-82B8-E511-8B67-0025905C4270.root', + '/store/mc/RunIIFall15MiniAODv2/QCD_bEnriched_HT1000to1500_TuneCUETP8M1_13TeV-madgraphMLM-pythia8/MINIAODSIM/PU25nsData2015v1_76X_mcRun2_asymptotic_v12-v1/70000/405C2560-1117-E611-852D-0025905C53B2.root', + '/store/mc/RunIIFall15MiniAODv2/QCD_bEnriched_HT1000to1500_TuneCUETP8M1_13TeV-madgraphMLM-pythia8/MINIAODSIM/PU25nsData2015v1_76X_mcRun2_asymptotic_v12-v1/70000/74AD812E-1117-E611-8DAF-0025905C2CD2.root', ] ); secFiles.extend( [ - ] ) \ No newline at end of file + ] ) diff --git a/Analysis/Ntuplizer/test/qcd_mc.py b/Analysis/Ntuplizer/test/qcd_mc.py new file mode 100644 index 0000000..7b70199 --- /dev/null +++ b/Analysis/Ntuplizer/test/qcd_mc.py @@ -0,0 +1,227 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("MssmHbb") + +process.load("FWCore.MessageService.MessageLogger_cfi") +process.MessageLogger.cerr.FwkReport.reportEvery = cms.untracked.int32(1000) + +## Using MINIAOD. GlobalTag just in case jet re-clustering, L1 trigger filter etc is needed to be done +process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") +from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag as customiseGlobalTag +process.GlobalTag = customiseGlobalTag(process.GlobalTag, globaltag = 'MCRUN2_74_V9') +process.GlobalTag.connect = 'frontier://FrontierProd/CMS_CONDITIONS' +process.GlobalTag.pfnPrefix = cms.untracked.string('frontier://FrontierProd/') +for pset in process.GlobalTag.toGet.value(): + pset.connect = pset.connect.value().replace('frontier://FrontierProd/', 'frontier://FrontierProd/') +## fix for multi-run processing +process.GlobalTag.RefreshEachRun = cms.untracked.bool( False ) +process.GlobalTag.ReconnectEachRun = cms.untracked.bool( False ) + +process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(150000) ) + +output_file = 'output.root' +## TFileService +process.TFileService = cms.Service("TFileService", + fileName = cms.string(output_file) +) + +## ============ TRIGGER FILTER =============== +## Enable below at cms.Path if needed +process.triggerSelection = cms.EDFilter( "TriggerResultsFilter", + triggerConditions = cms.vstring( + "HLT_PFJet60_v*", + "HLT_PFJet80_v*", + "HLT_PFJet140_v*", + "HLT_PFJet200_v*", + "HLT_PFJet260_v*", + "HLT_PFJet320_v*", + "HLT_PFJet400_v*", + "HLT_PFJet450_v*", + "HLT_PFJet500_v*" + ), + hltResults = cms.InputTag( "TriggerResults", "", "HLT" ), + l1tResults = cms.InputTag( "" ), + l1tIgnoreMask = cms.bool( False ), + l1techIgnorePrescales = cms.bool( False ), + daqPartitions = cms.uint32( 1 ), + throw = cms.bool( True ) +) + + +## ============ EVENT FILTER COUNTER =============== +## Filter counter (maybe more useful for MC) +process.TotalEvents = cms.EDProducer("EventCountProducer") +process.FilteredEvents = cms.EDProducer("EventCountProducer") + +## ============ PRIMARY VERTEX FILTER =============== +process.primaryVertexFilter = cms.EDFilter("VertexSelector", + src = cms.InputTag("offlineSlimmedPrimaryVertices"), # primary vertex collection name + cut = cms.string("!isFake && ndof > 4 && abs(z) <= 24 && position.Rho <= 2"), # ndof>thr=4 corresponds to sum(track_weigths) > (thr+3)/2 = 3.5 so typically 4 good tracks + filter = cms.bool(True), # otherwise it won't filter the events, just produce an empty vertex collection. +) + +## ============ THE NTUPLIZER!!! =============== +process.MssmHbb = cms.EDAnalyzer("Ntuplizer", + MonteCarlo = cms.bool(True), + CrossSection = cms.double(1), # in pb + UseFullName = cms.bool(False), + ## Monte Carlo only + GenFilterInfo = cms.InputTag("genFilterEfficiencyProducer"), + GenRunInfo = cms.InputTag("generator"), + GenJets = cms.VInputTag(cms.InputTag("slimmedGenJets")), + GenParticles = cms.VInputTag(cms.InputTag("prunedGenParticles")), + ################### + TotalEvents = cms.InputTag("TotalEvents"), + FilteredEvents = cms.InputTag("FilteredEvents"), + PatJets = cms.VInputTag( + cms.InputTag("slimmedJetsPuppi","","PAT"), + cms.InputTag("slimmedJetsAK8PFCHSSoftDropPacked","SubJets","PAT") + ), + PatMETs = cms.VInputTag( + cms.InputTag("slimmedMETs","","PAT"), + cms.InputTag("slimmedMETsPuppi","","PAT") + ), + PatMuons = cms.VInputTag( + cms.InputTag("slimmedMuons","","PAT") + ), + PrimaryVertices = cms.VInputTag( + cms.InputTag("offlineSlimmedPrimaryVertices","","PAT") + ), + BTagAlgorithms = cms.vstring ( + "pfCombinedInclusiveSecondaryVertexV2BJetTags", + "combinedSecondaryVertexBJetTags", + "pfJetBProbabilityBJetTags", + "pfJetProbabilityBJetTags", + "pfTrackCountingHighPurBJetTags", + "pfTrackCountingHighEffBJetTags", + "pfSimpleSecondaryVertexHighEffBJetTags", + "pfSimpleSecondaryVertexHighPurBJetTags", + "pfCombinedSecondaryVertexV2BJetTags", + "pfCombinedSecondaryVertexSoftLeptonBJetTags", + "pfCombinedMVABJetTags", + ), + BTagAlgorithmsAlias = cms.vstring ( + "btag_csvivf", + "btag_csv", + "btag_jetbprob", + "btag_jetprob", + "btag_tchp", + "btag_tche", + "btag_svhe", + "btag_svhp", + "btag_csvv2", + "btag_csvlep", + "btag_csvmva", + ), + TriggerResults = cms.VInputTag(cms.InputTag("TriggerResults","","HLT")), + TriggerPaths = cms.vstring ( + ## I recommend using the version number explicitly to be able to compare + ## however for production one has to be careful that all versions are included. + ## Thinking of a better solution... + # "HLT_DoubleJetsC100_DoubleBTagCSV0p9_DoublePFJetsC100MaxDeta1p6_v", +# "HLT_DoubleJetsC100_DoubleBTagCSV0p85_DoublePFJetsC160_v", +# "HLT_DoubleJetsC112_DoubleBTagCSV0p9_DoublePFJetsC112MaxDeta1p6_v", +# "HLT_DoubleJetsC112_DoubleBTagCSV0p85_DoublePFJetsC172_v", +# "HLT_DoubleJet90_Double30_TripleBTagCSV0p67_v", +# "HLT_QuadJet45_DoubleBTagCSV0p67_v", +# "HLT_QuadJet45_TripleBTagCSV0p67_v", +# "HLT_QuadPFJet_DoubleBTagCSV_VBF_Mqq200_v", +# "HLT_QuadPFJet_DoubleBTagCSV_VBF_Mqq240_v", +# "HLT_QuadPFJet_SingleBTagCSV_VBF_Mqq460_v", +# "HLT_QuadPFJet_SingleBTagCSV_VBF_Mqq500_v", + "HLT_PFJet60_v", + "HLT_PFJet80_v", + "HLT_PFJet140_v", + "HLT_PFJet200_v", + "HLT_PFJet260_v", + "HLT_PFJet320_v", + "HLT_PFJet400_v", + "HLT_PFJet450_v", + "HLT_PFJet500_v" + ), + TriggerObjectStandAlone = cms.VInputTag( + cms.InputTag("selectedPatTrigger","","PAT"), + ), + TriggerObjectLabels = cms.vstring ( +# "hltL1sL1DoubleJetC100", +# "hltDoubleJetsC100", +# "hltDoublePFJetsC100", +# "hltDoublePFJetsC100MaxDeta1p6", +# "hltDoublePFJetsC160", +# "hltDoubleBTagCSV0p85", +# "hltDoubleBTagCSV0p9", +# "hltL1sL1DoubleJetC112", +# "hltDoubleJetsC112", +# "hltDoublePFJetsC112", +# "hltDoublePFJetsC112MaxDeta1p6", +# "hltDoublePFJetsC172", +# + "hltL1sL1ZeroBias", + "hltPFJetsCorrectedMatchedToCaloJets10", + "hltSingleCaloJet10", + "hltSinglePFJet40", + "hltL1sL1SingleJet36", + "hltSingleCaloJet40", + "hltPFJetsCorrectedMatchedToCaloJets40", + "hltSinglePFJet60", + "hltL1sL1SingleJet52", + "hltPFJetsCorrectedMatchedToCaloJets50", + "hltSingleCaloJet50", + "hltSinglePFJet80", + "hltL1sL1SingleJet92", + "hltPFJetsCorrectedMatchedToCaloJets110", + "hltSingleCaloJet110", + "hltSinglePFJet140", + "hltL1sL1SingleJet128", + "hltPFJetsCorrectedMatchedToCaloJets170", + "hltSingleCaloJet170", + "hltSinglePFJet200", + "hltL1sL1SingleJet200", + "hltPFJetsCorrectedMatchedToCaloJets210", + "hltSingleCaloJet210", + "hltSinglePFJet260", + "hltPFJetsCorrectedMatchedToCaloJets270", + "hltSingleCaloJet270", + "hltSinglePFJet320", + "hltPFJetsCorrectedMatchedToCaloJets350", + "hltSingleCaloJet350", + "hltSinglePFJet400", + "hltPFJetsCorrectedMatchedToCaloJets400", + "hltSingleCaloJet400", + "hltSinglePFJet450", + "hltPFJetsCorrectedMatchedToCaloJets450", + "hltSingleCaloJet450", + "hltSinglePFJet500", + ), +# L1ExtraJets = cms.VInputTag( +# cms.InputTag("l1extraParticles","Central","RECO"), +# cms.InputTag("l1extraParticles","Forward","RECO"), +# cms.InputTag("l1extraParticles","Tau","RECO") +# ), +# L1ExtraMuons = cms.VInputTag( +# cms.InputTag("l1extraParticles","","RECO") +# ), +) + +process.p = cms.Path( + process.TotalEvents * + process.primaryVertexFilter * + process.FilteredEvents * +# process.triggerSelection * + process.MssmHbb + ) + + +readFiles = cms.untracked.vstring() +secFiles = cms.untracked.vstring() +process.source = cms.Source ("PoolSource",fileNames = readFiles, secondaryFileNames = secFiles) +readFiles.extend( [ +'/store/mc/RunIIFall15MiniAODv2/QCDbbbar_Pt-15to3000_TuneZ2star_Flat_13TeV_pythia6/MINIAODSIM/PU25nsData2015v1_76X_mcRun2_asymptotic_v12-v1/00000/3EFBAE60-3BBC-E511-A73A-1CC1DE18CE9C.root', + '/store/mc/RunIIFall15MiniAODv2/QCDbbbar_Pt-15to3000_TuneZ2star_Flat_13TeV_pythia6/MINIAODSIM/PU25nsData2015v1_76X_mcRun2_asymptotic_v12-v1/00000/547D73D0-90BD-E511-AEDD-D4AE526A0CE0.root', + '/store/mc/RunIIFall15MiniAODv2/QCDbbbar_Pt-15to3000_TuneZ2star_Flat_13TeV_pythia6/MINIAODSIM/PU25nsData2015v1_76X_mcRun2_asymptotic_v12-v1/00000/62EBC254-29BC-E511-A28A-001EC9AF1FBF.root' +] ); + + +secFiles.extend( [ + ] ) + diff --git a/Analysis/Ntuplizer/test/signal_76x_expert.py b/Analysis/Ntuplizer/test/signal_76x_expert.py index 55e3ab6..e0f6292 100644 --- a/Analysis/Ntuplizer/test/signal_76x_expert.py +++ b/Analysis/Ntuplizer/test/signal_76x_expert.py @@ -1,4 +1,5 @@ import FWCore.ParameterSet.Config as cms +import os process = cms.Process("MssmHbb") @@ -82,6 +83,54 @@ jetCorrFactorsSource = cms.VInputTag(cms.InputTag("slimmedJetsAK8PFCorrFactorsReapplyJEC")) ) +## ============= Jet Energy Resolution ============= + +process.load('Configuration.StandardSequences.Services_cff') +process.load("JetMETCorrections.Modules.JetResolutionESProducer_cfi") +from CondCore.DBCommon.CondDBSetup_cfi import * + +process.jer_AK4PFchs = cms.ESSource("PoolDBESSource",CondDBSetup,toGet = cms.VPSet( + # Resolution + cms.PSet( + record = cms.string('JetResolutionRcd'), + tag = cms.string('JR_Fall15_25nsV2_MC_PtResolution_AK4PFchs'), + label = cms.untracked.string('AK4PFchs_pt') + ), + + # Scale factors + cms.PSet( + record = cms.string('JetResolutionScaleFactorRcd'), + tag = cms.string('JR_Fall15_25nsV2_MC_SF_AK4PFchs'), + label = cms.untracked.string('AK4PFchs') + ), + ), + connect = cms.string('sqlite_fip:Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_MC.db') + ) + +process.es_prefer_jer_AK4PFchs = cms.ESPrefer('PoolDBESSource', 'jer_AK4PFchs') + +process.jer_AK8PFchs = cms.ESSource("PoolDBESSource",CondDBSetup,toGet = cms.VPSet( + # Resolution + cms.PSet( + record = cms.string('JetResolutionRcd'), + tag = cms.string('JR_Fall15_25nsV2_MC_PtResolution_AK8PFchs'), + label = cms.untracked.string('AK8PFchs_pt') + ), + + # Scale factors + cms.PSet( + record = cms.string('JetResolutionScaleFactorRcd'), + tag = cms.string('JR_Fall15_25nsV2_MC_SF_AK8PFchs'), + label = cms.untracked.string('AK8PFchs') + ), + ), + connect = cms.string('sqlite_fip:Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_MC.db') + ) + +process.es_prefer_jer_AK8PFchs = cms.ESPrefer('PoolDBESSource', 'jer_AK8PFchs') + +## ================================================= + ## ============ EVENT FILTER COUNTER =============== ## Filter counter (maybe more useful for MC) @@ -97,20 +146,20 @@ ) ## =========== JET N FILTER ============== process.jetCounterFilter = cms.EDFilter("CandViewCountFilter", - src = cms.InputTag("slimmedJetsPuppiReapplyJEC"), # new slimmed Jets + src = cms.InputTag("slimmedJetsReapplyJEC"), # new slimmed Jets minNumber = cms.uint32(2), ) ## ============ KINEMATIC JET FILTER =============== process.jetKinematicFilter = cms.EDFilter("kinematicJetFilter", - src = cms.InputTag("slimmedJetsPuppiReapplyJEC"), + src = cms.InputTag("slimmedJetsReapplyJEC"), pt = cms.vdouble(85.,85.), eta = cms.vdouble(2.5,2.5), ) ## ============ BTAG JET FILTER =============== process.jetBTagFilter = cms.EDFilter("btagJetFilter", - src = cms.InputTag("slimmedJetsPuppiReapplyJEC"), + src = cms.InputTag("slimmedJetsReapplyJEC"), algo = cms.string("pfCombinedInclusiveSecondaryVertexV2BJetTags"), btag = cms.vdouble(0.5,0.5), ) @@ -119,7 +168,7 @@ secFiles = cms.untracked.vstring() readFiles.extend( [ - '/store/mc/RunIIFall15MiniAODv2/SUSYGluGluToBBHToBB_M-700_TuneCUETP8M1_13TeV-pythia8/MINIAODSIM/PU25nsData2015v1_76X_mcRun2_asymptotic_v12-v1/10000/02671EB3-3EB8-E511-8974-3417EBE64561.root', + '/store/mc/RunIIFall15MiniAODv2/SUSYGluGluToBBHToBB_M-500_TuneCUETP8M1_13TeV-pythia8/MINIAODSIM/PU25nsData2015v1_76X_mcRun2_asymptotic_v12-v1/50000/02FAE716-8DB8-E511-851C-002590A83190.root', ] ); secFiles.extend( [ @@ -149,22 +198,32 @@ TotalEvents = cms.InputTag("TotalEvents"), FilteredEvents = cms.InputTag("FilteredEvents"), FilteredMHatEvents = cms.InputTag("FilteredMHatEvents"), + Rho = cms.InputTag("fixedGridRhoFastjetAll"), + JERResFiles = cms.vstring( +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_PtResolution_AK4PFchs.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_PtResolution_AK4PFPuppi.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_PtResolution_AK8PFchs.txt", + ), + JERSfFiles = cms.vstring( +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_SF_AK4PFchs.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_SF_AK4PFPuppi.txt", +# os.environ["CMSSW_BASE"] + "/src/Analysis/Ntuplizer/data/jer_files/Fall15_25nsV2_DATA_SF_AK8PFchs.txt" + ), PatJets = cms.VInputTag( # Be careful with the correction uncertainties!!! -# cms.InputTag("slimmedJets","","PAT"), -# cms.InputTag("slimmedJetsPuppi","","PAT"), -# cms.InputTag("slimmedJetsAK8PFCHSSoftDropPacked","SubJets","PAT"), cms.InputTag("slimmedJetsReapplyJEC"), - cms.InputTag("slimmedJetsPuppiReapplyJEC"), +# cms.InputTag("slimmedJetsPuppiReapplyJEC"), cms.InputTag("slimmedJetsAK8PFCHSSoftDropPackedReapplyJEC") - ), + ), + JERRecords = cms.vstring ( + "AK4PFchs", +# "AK4PFPuppi", + "AK8PFchs", + ), JECRecords = cms.vstring ( -# "", -# "", -# "", "AK4PFchs", - "AK4PFPuppi", +# "AK4PFPuppi", "AK8PFchs", - ), + ), PatMETs = cms.VInputTag( cms.InputTag("slimmedMETs","","PAT"), cms.InputTag("slimmedMETsPuppi","","PAT") @@ -210,6 +269,10 @@ 'HLT_DoubleJetsC100_DoubleBTagCSV0p9_DoublePFJetsC100MaxDeta1p6_v', 'HLT_DoubleJetsC112_DoubleBTagCSV0p85_DoublePFJetsC172_v', 'HLT_DoubleJetsC112_DoubleBTagCSV0p9_DoublePFJetsC112MaxDeta1p6_v', + 'HLT_PFJet40_v', + 'HLT_PFJet60_v', + 'HLT_PFJet80_v', + 'HLT_PFJet140_v', ), TriggerObjectStandAlone = cms.VInputTag( cms.InputTag("selectedPatTrigger","","PAT"), @@ -227,6 +290,23 @@ "hltDoublePFJetsC112", "hltDoublePFJetsC112MaxDeta1p6", "hltDoublePFJetsC172", + + "hltL1sL1ZeroBias", + "hltPFJetsCorrectedMatchedToCaloJets10", + "hltSingleCaloJet10", + "hltSinglePFJet40", + "hltL1sL1SingleJet36", + "hltSingleCaloJet40", + "hltPFJetsCorrectedMatchedToCaloJets40", + "hltSinglePFJet60", + "hltL1sL1SingleJet52", + "hltPFJetsCorrectedMatchedToCaloJets50", + "hltSingleCaloJet50", + "hltSinglePFJet80", + "hltL1sL1SingleJet92", + "hltPFJetsCorrectedMatchedToCaloJets110", + "hltSingleCaloJet110", + "hltSinglePFJet140", ), # L1ExtraJets = cms.VInputTag( # cms.InputTag("l1extraParticles","Central","RECO"), @@ -246,11 +326,11 @@ process.slimmedJetsAK8PFCorrFactorsReapplyJEC * process. slimmedJetsAK8PFCHSSoftDropPackedReapplyJEC * process.mHatGenFilter* process.FilteredMHatEvents * - process.jetCounterFilter * process.jetKinematicFilter * - process.jetBTagFilter * +# process.jetCounterFilter * process.jetKinematicFilter * +# process.jetBTagFilter * process.FilteredEvents * process.MssmHbb ) -process.source = cms.Source ("PoolSource",fileNames = readFiles, secondaryFileNames = secFiles) \ No newline at end of file +process.source = cms.Source ("PoolSource",fileNames = readFiles, secondaryFileNames = secFiles) From 8efbe63b2971ca376e3b963d46cb1626f57e736a Mon Sep 17 00:00:00 2001 From: Rostyslav Shevchenko Date: Sun, 26 Jun 2016 18:39:34 +0200 Subject: [PATCH 2/2] cleaning --- Analysis/Ntuplizer/test/._.DS_Store | Bin 4096 -> 0 bytes Analysis/Ntuplizer/test/._Fall15_25nsV2_DATA.db | Bin 4096 -> 0 bytes Analysis/Ntuplizer/test/._Fall15_25nsV2_MC.db | Bin 4096 -> 0 bytes Analysis/Ntuplizer/test/._btagcsv_76x_expert.py | Bin 4096 -> 0 bytes Analysis/Ntuplizer/test/._jetHT_data.py | Bin 4096 -> 0 bytes Analysis/Ntuplizer/test/._jetht_76x_expert.py | Bin 4096 -> 0 bytes .../test/._ntuplizer_data_76x_expert.py | Bin 4096 -> 0 bytes .../Ntuplizer/test/._ntuplizer_mc_76x_expert.py | Bin 4096 -> 0 bytes .../Ntuplizer/test/._pythia8_qcd_76x_expert.py | Bin 4096 -> 0 bytes 9 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 Analysis/Ntuplizer/test/._.DS_Store delete mode 100644 Analysis/Ntuplizer/test/._Fall15_25nsV2_DATA.db delete mode 100644 Analysis/Ntuplizer/test/._Fall15_25nsV2_MC.db delete mode 100644 Analysis/Ntuplizer/test/._btagcsv_76x_expert.py delete mode 100644 Analysis/Ntuplizer/test/._jetHT_data.py delete mode 100644 Analysis/Ntuplizer/test/._jetht_76x_expert.py delete mode 100644 Analysis/Ntuplizer/test/._ntuplizer_data_76x_expert.py delete mode 100644 Analysis/Ntuplizer/test/._ntuplizer_mc_76x_expert.py delete mode 100644 Analysis/Ntuplizer/test/._pythia8_qcd_76x_expert.py diff --git a/Analysis/Ntuplizer/test/._.DS_Store b/Analysis/Ntuplizer/test/._.DS_Store deleted file mode 100644 index c30e3a139e78b3130648a31651ebb3dff10fedd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIk*Y|peR=07!nf1 zz#!BQ(ZNuGRne&6Xb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeDP&ot`f#!iQ z7|4ZWWELwFr55Lx7A2=Dq~#Z7D`e)Cq~?`m=I15m4jn|NjF3y#F0H diff --git a/Analysis/Ntuplizer/test/._Fall15_25nsV2_DATA.db b/Analysis/Ntuplizer/test/._Fall15_25nsV2_DATA.db deleted file mode 100644 index 7fb1c832c051e2e4a774acb8736d509efa100608..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmeH~&2G~`5XZ+w6@^MwB?KoF`NDyNKa$wB+nn55kw8?4CIT)f8ru`%dhHFn8&y0G zya1dL2Y404V}QygY5H-f;DCDCk=8S_tN-lI&!>U)2e)Aj;1F~B`M`c{pV@p5?&#G4 z*!rx!&bNL5SS=m@#ggIh2w?NeQUSlTO6OPXmd^A(>;l}+dF|qK%E)~;LxGJd8`4Ks zs6To=zBsQ*VSx(ws>Ae&qB`X#4dYl)k)m2?j3wLiN`e?0gRiTEuCXh z-qR!99A+rVt5GTv-r&WvQc=HTB)vW|)(%IVu#qo2qcj;NZjp_)2dnza+Se7#7|;H> z>c(cZZ0Nkl`Cq(j-!CU7HUta-L%L7Uwjjx8 sA}4#yMP-+ZsjK9T9;V*gjK<2&7&eujg>U|~|Nq9T{h!x=2(8o8KRcA5MF0Q* diff --git a/Analysis/Ntuplizer/test/._Fall15_25nsV2_MC.db b/Analysis/Ntuplizer/test/._Fall15_25nsV2_MC.db deleted file mode 100644 index 5993dc72ba2a7b1b56753b514506c488ab4b4fde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmeH~&2G~`5XZ+sh(e{R5`t3|`NE+Gf5gOf+?>*wNT3GPCZb3jqP4vt+pN7|ccY3| z-~~9-C*T2!#G{}-2dGSvrWB;AJyhytM_SL!uKu$-Kc5EfKYaidfG)}GH$D5EeQvWo zc!($SSm@T0b~wbco0Vf#fK@5JeZGo^k1tM$Bf z^81JUT=}x{2yaHStc9QRI}hjX@ltebRR-(tM_NzRw&zK5wiK1RXl%~?_?d>v6JB(B1bqMFRa1ey0dK(P7Z8uK`>wC-Ui^^A( zOSwpISaW5SEt<=*}p9=s0 diff --git a/Analysis/Ntuplizer/test/._btagcsv_76x_expert.py b/Analysis/Ntuplizer/test/._btagcsv_76x_expert.py deleted file mode 100644 index 7a0ee73b875aca600e76d396988d491dc9e09ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoC8 z0nx!Q2dJDMO$#HC4;2?r&d=3LEGWoH)eA|jC~?h8&QHnAO9v__ElJb0ur@R{F)}o_ zv@k(4Vw5`?0;3@?8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71=Apq)Zf-o4!g=AzF zD-@*`=a&{Grz)i77iBAC=9Q%8m1O4UCFbN*D&(Z5l_(_TB<5uU`@&FNLz+VMKin%a J408Yf0|4W2DW3oU diff --git a/Analysis/Ntuplizer/test/._jetHT_data.py b/Analysis/Ntuplizer/test/._jetHT_data.py deleted file mode 100644 index 5120b4c4a8a292fc45dc2658cc9e95b2a9faf2b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqjqT z3(>(a2dJDMO$#HC4;2?r&d=3LEGWoH)eA|jC~?h8&QHnAO9v__ElJb0ur@R{F)}o_ zv@k(4Vw5`?0;3@?8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71=Apq)Zf-o4!g=AzF zD-@*`=a&{Grz)i77iBAC=9Q%8m1O4UCFbN*D&(Z5l_(_TB<5uU`@&FNLz+VMKin%a J408Yf0|2QvDZBsx diff --git a/Analysis/Ntuplizer/test/._jetht_76x_expert.py b/Analysis/Ntuplizer/test/._jetht_76x_expert.py deleted file mode 100644 index 6c21c315f9e96d3559e696685d0fedcab3f2321f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoAo z0MWrP2dJDMO$#HC4;2?r&d=3LEGWoH)eA|jC~?h8&QHnAO9v__ElJb0ur@R{F)}o_ zv@k(4Vw5`?0;3@?8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71=Apq)Zf-o4!g=AzF zD-@*`=a&{Grz)i77iBAC=9Q%8m1O4UCFbN*D&(Z5l_(_TB<5uU`@&FNLz+VMKin%a J408Yf0|0C3DTe?6 diff --git a/Analysis/Ntuplizer/test/._ntuplizer_data_76x_expert.py b/Analysis/Ntuplizer/test/._ntuplizer_data_76x_expert.py deleted file mode 100644 index f6e3df5b7fd844a95105b605c8779643a4ade0de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqg$a zh3H_I160nBriBs6hl-0Q=jZAr78K;9>V>3Ml(^<4=ci=mr2`d|mZa%gSQ{Ff7#W&d zT9}|2G0Ghcfzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!3i`5CC;HK^P3=LNYRo z6^c@e^Gl18Qx($ki?S6m^GZ_lN;32F5_57Y6>?J3N)(cE67#ZwePO7sAx)wBAMO$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqjqH zfaqYD160nBriBs6hl-0Q=jZAr78K;9>V>3Ml(^<4=ci=mr2`d|mZa%gSQ{Ff7#W&d zT9}|2G0Ghcfzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!3i`5CC;HK^P3=LNYRo z6^c@e^Gl18Qx($ki?S6m^GZ_lN;32F5_57Y6>?J3N)(cE67#ZwePO7sAx)wBAMO$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVqoAo z3emwZ2dJDMO$#HC4;2?r&d=3LEGWoH)eA|jC~?h8&QHnAO9v__ElJb0ur@R{F)}o_ zv@k(4Vw5`?0;3@?8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71=Apq)Zf-o4!g=AzF zD-@*`=a&{Grz)i77iBAC=9Q%8m1O4UCFbN*D&(Z5l_(_TB<5uU`@&FNLz+VMKin%a J408Yf0|2@rDU1LB