Skip to content

Commit ea792a1

Browse files
authored
Merge pull request #191 from danbarto/type1Integration
Integration of type-1 MET corrections starting from raw MET
2 parents ccb9bfd + b08557e commit ea792a1

8 files changed

+848
-421
lines changed

data/jme/Autumn18_V19_DATA.tgz

6.92 MB
Binary file not shown.

data/jme/Autumn18_V19_MC.tgz

1.9 MB
Binary file not shown.

data/jme/Autumn18_V7_DATA.tgz

35.1 KB
Binary file not shown.

data/jme/Autumn18_V7_MC.tgz

39.5 KB
Binary file not shown.

python/postprocessing/modules/jme/fatJetUncertainties.py

+512
Large diffs are not rendered by default.

python/postprocessing/modules/jme/jetSmearer.py

+1
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ def getSmearValsPt(self, jetIn, genJetIn, rho):
107107
jet_pt_sf_and_uncertainty = {}
108108
for enum_central_or_shift in [ enum_nominal, enum_shift_up, enum_shift_down ]:
109109
self.params_sf_and_uncertainty.setJetEta(jet.Eta())
110+
self.params_sf_and_uncertainty.setJetPt(jet.Pt()) # Added bc. of pt dependency in 2018. Thanks to kschweiger!
110111
jet_pt_sf_and_uncertainty[enum_central_or_shift] = self.jerSF_and_Uncertainty.getScaleFactor(self.params_sf_and_uncertainty, enum_central_or_shift)
111112

112113
smear_vals = {}

python/postprocessing/modules/jme/jetmetHelperRun2.py

+27-12
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,16 @@
33
import subprocess
44

55
from PhysicsTools.NanoAODTools.postprocessing.modules.jme.jetmetUncertainties import *
6-
from PhysicsTools.NanoAODTools.postprocessing.modules.jme.jetRecalib import *
6+
from PhysicsTools.NanoAODTools.postprocessing.modules.jme.fatJetUncertainties import *
77

88
# JEC dict
99
jecTagsMC = {'2016' : 'Summer16_07Aug2017_V11_MC',
1010
'2017' : 'Fall17_17Nov2017_V32_MC',
11-
'2018' : 'Autumn18_V8_MC'}
11+
'2018' : 'Autumn18_V19_MC'}
1212

1313
archiveTagsDATA = {'2016' : 'Summer16_07Aug2017_V11_DATA',
1414
'2017' : 'Fall17_17Nov2017_V32_DATA',
15-
'2018' : 'Autumn18_V8_DATA'
15+
'2018' : 'Autumn18_V19_DATA'
1616
}
1717

1818
jecTagsDATA = { '2016B' : 'Summer16_07Aug2017BCD_V11_DATA',
@@ -27,15 +27,15 @@
2727
'2017D' : 'Fall17_17Nov2017DE_V32_DATA',
2828
'2017E' : 'Fall17_17Nov2017DE_V32_DATA',
2929
'2017F' : 'Fall17_17Nov2017F_V32_DATA',
30-
'2018A' : 'Autumn18_RunA_V8_DATA',
31-
'2018B' : 'Autumn18_RunB_V8_DATA',
32-
'2018C' : 'Autumn18_RunC_V8_DATA',
33-
'2018D' : 'Autumn18_RunD_V8_DATA',
30+
'2018A' : 'Autumn18_RunA_V19_DATA',
31+
'2018B' : 'Autumn18_RunB_V19_DATA',
32+
'2018C' : 'Autumn18_RunC_V19_DATA',
33+
'2018D' : 'Autumn18_RunD_V19_DATA',
3434
}
3535

3636
jerTagsMC = {'2016' : 'Summer16_25nsV1_MC',
3737
'2017' : 'Fall17_V3_MC',
38-
'2018' : 'Fall17_V3_MC'
38+
'2018' : 'Autumn18_V7_MC'
3939
}
4040

4141
#jet mass resolution: https://twiki.cern.ch/twiki/bin/view/CMS/JetWtagging
@@ -53,8 +53,9 @@
5353
'2018' : [0.982, 0.978, 0.986] # Use 2017 values for 2018 until 2018 are released
5454
}
5555

56-
def createJMECorrector(isMC=True, dataYear=2016, runPeriod="B", jesUncert="Total", redojec=False, jetType = "AK4PFchs", noGroom=False):
56+
def createJMECorrector(isMC=True, dataYear=2016, runPeriod="B", jesUncert="Total", redojec=False, jetType = "AK4PFchs", noGroom=False, metBranchName="MET"):
5757

58+
dataYear = str(dataYear)
5859
jecTag_ = jecTagsMC[dataYear] if isMC else jecTagsDATA[dataYear + runPeriod]
5960

6061
jmeUncert_ = [x for x in jesUncert.split(",")]
@@ -65,14 +66,28 @@ def createJMECorrector(isMC=True, dataYear=2016, runPeriod="B", jesUncert="Total
6566

6667
jmsValues_ = jmsValues[dataYear]
6768

69+
archiveTag_ = archiveTagsDATA[dataYear]
70+
71+
met_ = metBranchName
72+
6873
print 'JEC=', jecTag_, '\t JER=', jerTag_
74+
print 'MET branch=', met_
6975

7076
jmeCorrections = None
7177
#jme corrections
72-
if isMC:
73-
jmeCorrections = lambda : jetmetUncertaintiesProducer(era=dataYear, globalTag=jecTag_, jesUncertainties=jmeUncert_, redoJEC=redojec, jerTag=jerTag_, jetType = jetType, noGroom = noGroom, jmrVals = jmrValues_, jmsVals = jmsValues_)
78+
79+
if 'AK4' in jetType:
80+
if isMC:
81+
jmeCorrections = lambda : jetmetUncertaintiesProducer(era=dataYear, globalTag=jecTag_, jesUncertainties=jmeUncert_, jerTag=jerTag_, jetType = jetType, metBranchName=met_)
82+
else:
83+
jmeCorrections = lambda : jetmetUncertaintiesProducer(era=dataYear, archive=archiveTag_, globalTag=jecTag_, jesUncertainties=jmeUncert_, jerTag=jerTag_, jetType = jetType, metBranchName=met_, isData=True)
84+
# no MET variations calculated
7485
else:
75-
jmeCorrections = lambda : jetRecalib(globalTag=jecTag_, archive=archiveTag[dataYear], jetType=jetType, redojec=redojec)
86+
if isMC:
87+
jmeCorrections = lambda : fatJetUncertaintiesProducer(era=dataYear, globalTag=jecTag_, jesUncertainties=jmeUncert_, redoJEC=redojec, jetType = jetType, jerTag=jerTag_, jmrVals = jmrValues_, jmsVals = jmsValues_)
88+
else:
89+
jmeCorrections = lambda : fatJetUncertaintiesProducer(era=dataYear, archive=archiveTag_, globalTag=jecTag_, jesUncertainties=jmeUncert_, redoJEC=redojec, jetType = jetType, isData=True)
90+
7691
return jmeCorrections
7792

7893

0 commit comments

Comments
 (0)