3
3
import subprocess
4
4
5
5
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 *
7
7
8
8
# JEC dict
9
9
jecTagsMC = {'2016' : 'Summer16_07Aug2017_V11_MC' ,
10
10
'2017' : 'Fall17_17Nov2017_V32_MC' ,
11
- '2018' : 'Autumn18_V8_MC ' }
11
+ '2018' : 'Autumn18_V19_MC ' }
12
12
13
13
archiveTagsDATA = {'2016' : 'Summer16_07Aug2017_V11_DATA' ,
14
14
'2017' : 'Fall17_17Nov2017_V32_DATA' ,
15
- '2018' : 'Autumn18_V8_DATA '
15
+ '2018' : 'Autumn18_V19_DATA '
16
16
}
17
17
18
18
jecTagsDATA = { '2016B' : 'Summer16_07Aug2017BCD_V11_DATA' ,
27
27
'2017D' : 'Fall17_17Nov2017DE_V32_DATA' ,
28
28
'2017E' : 'Fall17_17Nov2017DE_V32_DATA' ,
29
29
'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 ' ,
34
34
}
35
35
36
36
jerTagsMC = {'2016' : 'Summer16_25nsV1_MC' ,
37
37
'2017' : 'Fall17_V3_MC' ,
38
- '2018' : 'Fall17_V3_MC '
38
+ '2018' : 'Autumn18_V7_MC '
39
39
}
40
40
41
41
#jet mass resolution: https://twiki.cern.ch/twiki/bin/view/CMS/JetWtagging
53
53
'2018' : [0.982 , 0.978 , 0.986 ] # Use 2017 values for 2018 until 2018 are released
54
54
}
55
55
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" ):
57
57
58
+ dataYear = str (dataYear )
58
59
jecTag_ = jecTagsMC [dataYear ] if isMC else jecTagsDATA [dataYear + runPeriod ]
59
60
60
61
jmeUncert_ = [x for x in jesUncert .split ("," )]
@@ -65,14 +66,28 @@ def createJMECorrector(isMC=True, dataYear=2016, runPeriod="B", jesUncert="Total
65
66
66
67
jmsValues_ = jmsValues [dataYear ]
67
68
69
+ archiveTag_ = archiveTagsDATA [dataYear ]
70
+
71
+ met_ = metBranchName
72
+
68
73
print 'JEC=' , jecTag_ , '\t JER=' , jerTag_
74
+ print 'MET branch=' , met_
69
75
70
76
jmeCorrections = None
71
77
#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
74
85
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
+
76
91
return jmeCorrections
77
92
78
93
0 commit comments