1 |
nowak |
1.1 |
import ROOT
|
2 |
|
|
import sys, re
|
3 |
|
|
sys.path.append("/afs/naf.desy.de/user/n/nowaf/UserCode/nowaf/PythonScripts/")
|
4 |
|
|
import definitions as Def
|
5 |
|
|
import styles as Style
|
6 |
|
|
import FakeHelper as FH
|
7 |
|
|
from array import array
|
8 |
|
|
import MakeRealTauEst_cff as RT
|
9 |
|
|
|
10 |
|
|
if __name__ == "__main__":
|
11 |
|
|
|
12 |
|
|
|
13 |
|
|
#doDynamicRebin = True
|
14 |
|
|
### 4 for GC, 10 for Pt only
|
15 |
|
|
dynamicRebin = 10
|
16 |
|
|
rebin = 2
|
17 |
|
|
#saveQCD = False
|
18 |
|
|
|
19 |
|
|
sampleList = []
|
20 |
|
|
sampleList.append( "QCDFlat" )
|
21 |
|
|
sampleList.append( "Data" )
|
22 |
|
|
#sampleList.append( "Zinv" )
|
23 |
|
|
#sampleList.append( "ZJets" )
|
24 |
|
|
#sampleList.append( "WWJets" )
|
25 |
|
|
|
26 |
|
|
fileDict = {}
|
27 |
|
|
fileDict[ "QCDFlat" ] = "/scratch/hh/lustre/cms/user/nowaf/2011Data/VersionII/Plots/QCDFlat_fakes_xxviii/QCDFlat_fakes_xxviii.root"
|
28 |
|
|
fileDict[ "Data" ] = "/scratch/hh/lustre/cms/user/nowaf/2011Data/VersionII/Plots/Data_fakes_xxviii/Data_fakes_xxviii.root"
|
29 |
|
|
#fileDict[ "WJets" ] = "/scratch/hh/lustre/cms/user/nowaf/2011Data/VersionII/Plots/WJets_fakes_xxviii/WJets_fakes_xxviii.root"
|
30 |
|
|
fileDict[ "Zinv" ] = "/scratch/hh/lustre/cms/user/nowaf/2011Data/VersionII/Plots/Zinv_fakes_xxviii/Zinv_fakes_xxviii.root"
|
31 |
|
|
fileDict[ "ZJets" ] = "/scratch/hh/lustre/cms/user/nowaf/2011Data/VersionII/Plots/ZJets_fakes_xxviii/ZJets_fakes_xxviii.root"
|
32 |
|
|
fileDict[ "WWJets" ] = "/scratch/hh/lustre/cms/user/nowaf/2011Data/VersionII/Plots/WWJets_fakes_xxviii/WWJets_fakes_xxviii.root"
|
33 |
|
|
|
34 |
|
|
xtitle = "P_{T}^{jet} [GeV]"
|
35 |
|
|
#xtitle = "N^{G} + N^{C}"
|
36 |
|
|
ytitle = "fake rate"
|
37 |
|
|
title = "H_{T}>350 GeV, 40<#slashH_{T}<60 GeV"
|
38 |
|
|
#title = "CMS Preliminary, H_{T}>350 GeV, 40<#slashH_{T}<60 GeV"
|
39 |
|
|
|
40 |
|
|
colorDict = {}
|
41 |
|
|
colorDict[ "JetTauPtJPTeta1" ] = ROOT.kRed - 9
|
42 |
|
|
colorDict[ "JetTauPtJPTeta1Data" ] = ROOT.kRed + 4
|
43 |
|
|
colorDict[ "JetTauPtJPTeta2" ] = ROOT.kOrange + 6
|
44 |
|
|
colorDict[ "JetTauPtJPTeta2Data" ] = ROOT.kOrange + 3
|
45 |
|
|
colorDict[ "JetTauPtJPTeta25" ] = ROOT.kYellow - 5
|
46 |
|
|
colorDict[ "JetTauPtJPTeta25Data" ] = ROOT.kYellow + 4
|
47 |
|
|
colorDict[ "JetTauPtJPT" ] = ROOT.kBlue - 9
|
48 |
|
|
colorDict[ "JetTauPtJPTData" ] = ROOT.kBlue + 3
|
49 |
|
|
colorDict[ "NVertexTau" ] = ROOT.kCyan - 2
|
50 |
|
|
colorDict[ "NVertexTauData" ] = ROOT.kCyan + 4
|
51 |
|
|
colorDict[ "JetTauDist" ] = ROOT.kCyan - 2
|
52 |
|
|
colorDict[ "JetTauDistData" ] = ROOT.kCyan + 4
|
53 |
|
|
colorDict[ "JetTauNCharged" ] = ROOT.kCyan - 2
|
54 |
|
|
colorDict[ "JetTauNChargedData" ] = ROOT.kCyan + 4
|
55 |
|
|
colorDict[ "JetTauNGamma" ] = ROOT.kCyan - 2
|
56 |
|
|
colorDict[ "JetTauNGammaData" ] = ROOT.kCyan + 4
|
57 |
|
|
colorDict[ "JetTauNNeutral" ] = ROOT.kCyan - 2
|
58 |
|
|
colorDict[ "JetTauNNeutralData" ] = ROOT.kCyan + 4
|
59 |
|
|
colorDict[ "JetTauNCPlusG" ] = ROOT.kBlue - 9
|
60 |
|
|
colorDict[ "JetTauNCPlusGData" ] = ROOT.kBlue + 3
|
61 |
|
|
colorDict[ "JetTauPtFC" ] = ROOT.kCyan - 2
|
62 |
|
|
colorDict[ "JetTauPtFCData" ] = ROOT.kCyan + 4
|
63 |
|
|
colorDict[ "JetTauChargedPt" ] = ROOT.kCyan - 2
|
64 |
|
|
colorDict[ "JetTauChargedPtData" ] = ROOT.kCyan + 4
|
65 |
|
|
colorDict[ "JetTauGammaPt" ] = ROOT.kCyan - 2
|
66 |
|
|
colorDict[ "JetTauGammaPtData" ] = ROOT.kCyan + 4
|
67 |
|
|
colorDict[ "JetTauDecayMode" ] = ROOT.kCyan - 2
|
68 |
|
|
colorDict[ "JetTauDecayModeData" ] = ROOT.kCyan + 4
|
69 |
|
|
colorDict[ "JetTauGCPt030" ] = ROOT.kViolet + 1
|
70 |
|
|
colorDict[ "JetTauGCPt030Data" ] = ROOT.kViolet + 3
|
71 |
|
|
colorDict[ "JetTauGCPt3050" ] = ROOT.kOrange - 5
|
72 |
|
|
colorDict[ "JetTauGCPt3050Data" ] = ROOT.kOrange + 3
|
73 |
|
|
colorDict[ "JetTauGCPt50100" ] = ROOT.kYellow - 6
|
74 |
|
|
colorDict[ "JetTauGCPt50100Data" ] = ROOT.kYellow + 4
|
75 |
|
|
colorDict[ "JetTauGCPt100" ] = ROOT.kGreen - 6
|
76 |
|
|
colorDict[ "JetTauGCPt100Data" ] = ROOT.kGreen + 4
|
77 |
|
|
|
78 |
|
|
colorDict[ "JetTauPt0GC" ] = ROOT.kViolet + 1
|
79 |
|
|
colorDict[ "JetTauPt0GCData" ] = ROOT.kViolet + 3
|
80 |
|
|
colorDict[ "JetTauPt1GC" ] = ROOT.kOrange - 5
|
81 |
|
|
colorDict[ "JetTauPt1GCData" ] = ROOT.kOrange + 3
|
82 |
|
|
colorDict[ "JetTauPt2GC" ] = ROOT.kYellow - 6
|
83 |
|
|
colorDict[ "JetTauPt2GCData" ] = ROOT.kYellow + 4
|
84 |
|
|
colorDict[ "JetTauPt3GC" ] = ROOT.kGreen - 6
|
85 |
|
|
colorDict[ "JetTauPt3GCData" ] = ROOT.kGreen + 4
|
86 |
|
|
colorDict[ "JetTauPt3InfGC" ] = ROOT.kGreen - 6
|
87 |
|
|
colorDict[ "JetTauPt3InfGCData" ] = ROOT.kGreen + 4
|
88 |
|
|
|
89 |
|
|
plotTitle = False
|
90 |
|
|
if not title == None:
|
91 |
|
|
plotTitle = True
|
92 |
|
|
pass
|
93 |
|
|
Def.SetGlobalStyles( withTitle=plotTitle )
|
94 |
|
|
if re.search( "slash", title ):
|
95 |
|
|
#ROOT.gStyle.SetTitleFontSize( 0.02 )
|
96 |
|
|
ROOT.gStyle.SetTitleH( 0.032 )
|
97 |
|
|
if re.search( "Preliminary", title ):
|
98 |
|
|
ROOT.gStyle.SetTitleH( 0.030 )
|
99 |
|
|
pass
|
100 |
|
|
pass
|
101 |
|
|
|
102 |
|
|
startAtBinCenter = 20
|
103 |
|
|
#startAtBinCenter = -1
|
104 |
|
|
|
105 |
|
|
dirs = []
|
106 |
|
|
#dirs.append( "FakeRateInvertMHTLoose/" )
|
107 |
|
|
dirs.append( "FakeRate40MHT60/" )
|
108 |
|
|
initialHistDict = {}
|
109 |
|
|
initialHistDict[ "JetTauPtJPT" ] = "JetPtJPT"
|
110 |
|
|
initialHistDict[ "JetTauPtJPTeta1" ] = "JetPtJPTeta1"
|
111 |
|
|
initialHistDict[ "JetTauPtJPTeta2" ] = "JetPtJPTeta2"
|
112 |
|
|
initialHistDict[ "JetTauPtJPTeta25" ] = "JetPtJPTeta25"
|
113 |
|
|
#initialHistDict[ "NVertexTau" ] = "NVertex"
|
114 |
|
|
#initialHistDict[ "JetTauDist" ] = "JetDist"
|
115 |
|
|
#initialHistDict[ "JetTauNCharged" ] = "JetNCharged"
|
116 |
|
|
#initialHistDict[ "JetTauNGamma" ] = "JetNGamma"
|
117 |
|
|
#initialHistDict[ "JetTauNNeutral" ] = "JetNNeutral"
|
118 |
|
|
#initialHistDict[ "JetTauNCPlusG" ] = "JetNCPlusG"
|
119 |
|
|
#initialHistDict[ "JetTauPtFC" ] = "JetPtFC"
|
120 |
|
|
##initialHistDict[ "JetTauPtFG" ] = "JetPtFG"
|
121 |
|
|
##initialHistDict[ "JetTauPtFCG" ] = "JetPtFCG"
|
122 |
|
|
#initialHistDict[ "JetTauChargedPt" ] = "JetChargedPt"
|
123 |
|
|
#initialHistDict[ "JetTauGammaPt" ] = "JetGammaPt"
|
124 |
|
|
#initialHistDict[ "JetTauDecayMode" ] = "JetDecayMode"
|
125 |
|
|
#initialHistDict[ "JetTauGCPt030" ] = "JetGCPt030"
|
126 |
|
|
#initialHistDict[ "JetTauGCPt3050" ] = "JetGCPt3050"
|
127 |
|
|
#initialHistDict[ "JetTauGCPt50100" ] = "JetGCPt50100"
|
128 |
|
|
#initialHistDict[ "JetTauGCPt100" ] = "JetGCPt100"
|
129 |
|
|
#initialHistDict[ "JetTauPt0GC" ] = "JetPt0GC"
|
130 |
|
|
#initialHistDict[ "JetTauPt1GC" ] = "JetPt1GC"
|
131 |
|
|
#initialHistDict[ "JetTauPt2GC" ] = "JetPt2GC"
|
132 |
|
|
#initialHistDict[ "JetTauPt3GC" ] = "JetPt3GC"
|
133 |
|
|
#initialHistDict[ "JetTauPt3InfGC" ] = "JetPt3InfGC"
|
134 |
|
|
|
135 |
|
|
legendDict = {}
|
136 |
|
|
legendDict[ "JetTauPtJPT" ] = "Simulation"
|
137 |
|
|
legendDict[ "JetTauPtJPTData" ] = "Data"
|
138 |
|
|
legendDict[ "JetTauPtJPTeta1" ] = "Sim |#eta|<1"
|
139 |
|
|
legendDict[ "JetTauPtJPTeta1Data" ] = "Data |#eta|<1"
|
140 |
|
|
legendDict[ "JetTauPtJPTeta2" ] = "Sim 1<|#eta|<1.5"
|
141 |
|
|
legendDict[ "JetTauPtJPTeta2Data" ] = "Data 1<|#eta|<1.5"
|
142 |
|
|
legendDict[ "JetTauPtJPTeta25" ] = "Sim 1.5<|#eta|<2.1"
|
143 |
|
|
legendDict[ "JetTauPtJPTeta25Data" ] = "Data 1.5<|#eta|<2.1"
|
144 |
|
|
legendDict[ "NVertexTau" ] = "Simulation"
|
145 |
|
|
legendDict[ "NVertexTauData" ] = "Data"
|
146 |
|
|
legendDict[ "JetTauDist" ] = "Simulation"
|
147 |
|
|
legendDict[ "JetTauDistData" ] = "Data"
|
148 |
|
|
legendDict[ "JetTauNCharged" ] = "Simulation"
|
149 |
|
|
legendDict[ "JetTauNChargedData" ] = "Data"
|
150 |
|
|
legendDict[ "JetTauNGamma" ] = "Simulation"
|
151 |
|
|
legendDict[ "JetTauNGammaData" ] = "Data"
|
152 |
|
|
legendDict[ "JetTauNNeutral" ] = "Simulation"
|
153 |
|
|
legendDict[ "JetTauNNeutralData" ] = "Data"
|
154 |
|
|
legendDict[ "JetTauNCPlusG" ] = "Simulation"
|
155 |
|
|
legendDict[ "JetTauNCPlusGData" ] = "Data"
|
156 |
|
|
legendDict[ "JetTauPtFC" ] = "Simulation"
|
157 |
|
|
legendDict[ "JetTauPtFCData" ] = "Data"
|
158 |
|
|
legendDict[ "JetTauChargedPt" ] = "Simulation"
|
159 |
|
|
legendDict[ "JetTauChargedPtData" ] = "Data"
|
160 |
|
|
legendDict[ "JetTauGammaPt" ] = "Simulation"
|
161 |
|
|
legendDict[ "JetTauGammaPtData" ] = "Data"
|
162 |
|
|
legendDict[ "JetTauDecayMode" ] = "Simulation"
|
163 |
|
|
legendDict[ "JetTauDecayModeData" ] = "Data"
|
164 |
|
|
legendDict[ "JetTauGCPt030" ] = "Simulation"
|
165 |
|
|
legendDict[ "JetTauGCPt030Data" ] = "Data"
|
166 |
|
|
legendDict[ "JetTauGCPt3050" ] = "Simulation"
|
167 |
|
|
legendDict[ "JetTauGCPt3050Data" ] = "Data"
|
168 |
|
|
legendDict[ "JetTauGCPt50100" ] = "Simulation"
|
169 |
|
|
legendDict[ "JetTauGCPt50100Data" ] = "Data"
|
170 |
|
|
legendDict[ "JetTauGCPt100" ] = "Simulation"
|
171 |
|
|
legendDict[ "JetTauGCPt100Data" ] = "Data"
|
172 |
|
|
legendDict[ "JetTauPt0GC" ] = "Simulation"
|
173 |
|
|
legendDict[ "JetTauPt0GCData" ] = "Data"
|
174 |
|
|
legendDict[ "JetTauPt1GC" ] = "Simulation"
|
175 |
|
|
legendDict[ "JetTauPt1GCData" ] = "Data"
|
176 |
|
|
legendDict[ "JetTauPt2GC" ] = "Simulation"
|
177 |
|
|
legendDict[ "JetTauPt2GCData" ] = "Data"
|
178 |
|
|
legendDict[ "JetTauPt3GC" ] = "Simulation"
|
179 |
|
|
legendDict[ "JetTauPt3GCData" ] = "Data"
|
180 |
|
|
legendDict[ "JetTauPt3InfGC" ] = "Simulation"
|
181 |
|
|
legendDict[ "JetTauPt3InfGCData" ] = "Data"
|
182 |
|
|
|
183 |
|
|
titleDict = {}
|
184 |
|
|
#titleDict[ "JetTauGCPt030" ] = ", P_{T}^{jet}<30 GeV"
|
185 |
|
|
#titleDict[ "JetTauGCPt030Data" ] = ", P_{T}^{jet}<30 GeV"
|
186 |
|
|
#titleDict[ "JetTauGCPt3050" ] = ", 30 GeV<P_{T}^{jet}<50 GeV"
|
187 |
|
|
#titleDict[ "JetTauGCPt3050Data" ] = ", 30 GeV<P_{T}^{jet}<50 GeV"
|
188 |
|
|
#titleDict[ "JetTauGCPt50100" ] = ", 50 GeV<P_{T}^{jet}<100 GeV"
|
189 |
|
|
#titleDict[ "JetTauGCPt50100Data" ] = ", 50 GeV<P_{T}^{jet}<100 GeV"
|
190 |
|
|
#titleDict[ "JetTauGCPt100" ] = ", P_{T}^{jet}>100 GeV"
|
191 |
|
|
#titleDict[ "JetTauGCPt100Data" ] = ", P_{T}^{jet}>100 GeV"
|
192 |
|
|
|
193 |
|
|
xtitleDict = {}
|
194 |
|
|
xtitleDict[ "JetTauGCPt030" ] = " (P_{T}^{jet}<30 GeV)"
|
195 |
|
|
xtitleDict[ "JetTauGCPt030Data" ] = " (P_{T}^{jet}<30 GeV)"
|
196 |
|
|
xtitleDict[ "JetTauGCPt3050" ] = " (30 GeV<P_{T}^{jet}<50 GeV)"
|
197 |
|
|
xtitleDict[ "JetTauGCPt3050Data" ] = " (30 GeV<P_{T}^{jet}<50 GeV)"
|
198 |
|
|
xtitleDict[ "JetTauGCPt50100" ] = " (50 GeV<P_{T}^{jet}<100 GeV)"
|
199 |
|
|
xtitleDict[ "JetTauGCPt50100Data" ] = " (50 GeV<P_{T}^{jet}<100 GeV)"
|
200 |
|
|
xtitleDict[ "JetTauGCPt100" ] = " (P_{T}^{jet}>100 GeV)"
|
201 |
|
|
xtitleDict[ "JetTauGCPt100Data" ] = " (P_{T}^{jet}>100 GeV)"
|
202 |
|
|
|
203 |
|
|
#yRangeDict = {}
|
204 |
|
|
#yRange[ "JetTauGCPt030" ] = ( 2, 9*10**-5 )
|
205 |
|
|
#yRange[ "JetTauGCPt030Data" ] = ( 2, 9*10**-5 )
|
206 |
|
|
#yRange[ "JetTauGCPt3050" ] = ( 2, 9*10**-5 )
|
207 |
|
|
#yRange[ "JetTauGCPt3050Data" ] = ( 2, 9*10**-5 )
|
208 |
|
|
#yRange[ "JetTauGCPt50100" ] = ( 2, 9*10**-5 )
|
209 |
|
|
#yRange[ "JetTauGCPt50100Data" ] = ( 2, 9*10**-5 )
|
210 |
|
|
#yRange[ "JetTauGCPt100" ] = ( 2, 9*10**-5 )
|
211 |
|
|
#yRange[ "JetTauGCPt100Data" ] = ( 2, 9*10**-5 )
|
212 |
|
|
|
213 |
|
|
|
214 |
|
|
yRange = ( 9*10**-5, 2*10**0 )
|
215 |
|
|
xRange = None
|
216 |
|
|
#xRange = ( 0,200 )
|
217 |
|
|
|
218 |
|
|
plotRatio = False
|
219 |
|
|
#fileName = "~/UserCode/nowaf/PythonScripts/2011/VersionII/" + "QCDFlat" + "_fakes.root"
|
220 |
|
|
|
221 |
|
|
###########################################################################################
|
222 |
|
|
histDict = {}
|
223 |
|
|
graph = {}
|
224 |
|
|
binListDict = {}
|
225 |
|
|
ratioDict = {}
|
226 |
|
|
for hist in initialHistDict.keys():
|
227 |
|
|
print "----- ", hist
|
228 |
|
|
histDict[ hist ] = {}
|
229 |
|
|
histDict[ initialHistDict[ hist ] ] = {}
|
230 |
|
|
graph[ hist ] = {}
|
231 |
|
|
binListDict[ hist ] = {}
|
232 |
|
|
binListDict[ initialHistDict[ hist ] ] = {}
|
233 |
|
|
for file in sampleList:
|
234 |
|
|
print "----- ", file
|
235 |
|
|
rootfile = ROOT.TFile.Open( fileDict[ file ] )
|
236 |
|
|
histDict[ hist ][ file ] = {}
|
237 |
|
|
histDict[ initialHistDict[ hist ] ][ file ] = {}
|
238 |
|
|
graph[ hist ][ file ] = {}
|
239 |
|
|
for dir in dirs:
|
240 |
|
|
print "----- ", dir
|
241 |
|
|
histDict[ hist ][ file ][ dir ] = rootfile.Get( dir + hist )
|
242 |
|
|
histDict[ hist ][ file ][ dir ].SetDirectory( 0 )
|
243 |
|
|
histDict[ hist ][ file ][ dir ].UseCurrentStyle()
|
244 |
|
|
histDict[ hist ][ file ][ dir ].Rebin( rebin )
|
245 |
|
|
|
246 |
|
|
histDict[ initialHistDict[ hist ] ][ file ][ dir ] = rootfile.Get( dir + initialHistDict[ hist ] )
|
247 |
|
|
histDict[ initialHistDict[ hist ] ][ file ][ dir ].SetDirectory( 0 )
|
248 |
|
|
histDict[ initialHistDict[ hist ] ][ file ][ dir ].UseCurrentStyle()
|
249 |
|
|
histDict[ initialHistDict[ hist ] ][ file ][ dir ].Rebin( rebin )
|
250 |
|
|
|
251 |
|
|
#if doDynamicRebin:
|
252 |
|
|
binListDict[ hist ][ file ] = FH.getLowerBins( histDict[ hist ][ file ][ dir ],
|
253 |
|
|
nEntries=dynamicRebin,
|
254 |
|
|
startAtBinCenter=startAtBinCenter
|
255 |
|
|
)
|
256 |
|
|
binListDict[ initialHistDict[ hist ] ][ file ] = FH.getLowerBins(
|
257 |
|
|
histDict[ initialHistDict[ hist ] ][ file ][ dir ],
|
258 |
|
|
nEntries=dynamicRebin,
|
259 |
|
|
startAtBinCenter=startAtBinCenter
|
260 |
|
|
)
|
261 |
|
|
|
262 |
|
|
pass
|
263 |
|
|
pass
|
264 |
|
|
pass
|
265 |
|
|
|
266 |
|
|
#print "number of events=", histDict[ "NVertex" ][ "QCDFlat" ][ dirs[ 0 ] ].Integral()
|
267 |
|
|
#print "number of Jets with NCPlusG=1or2:", histDict[ "JetNCPlusG" ][ "QCDFlat" ][ dirs[ 0 ] ].GetBinContent( 2 ) + \
|
268 |
|
|
# histDict[ "JetNCPlusG" ][ "QCDFlat" ][ dirs[ 0 ] ].GetBinContent( 3 )
|
269 |
|
|
#print "Test=", histDict[ "JetNCPlusG" ][ "QCDFlat" ][ dirs[ 0 ] ].FindBin( 1. )
|
270 |
|
|
|
271 |
|
|
|
272 |
|
|
|
273 |
|
|
for hist in initialHistDict.keys():
|
274 |
|
|
#rebinList = FH.mergeList( [ binListDict[ hist ][ "QCDFlat" ], binListDict[ hist ][ "Data" ],
|
275 |
|
|
# binListDict[ initialHistDict[ hist ] ][ "QCDFlat" ],
|
276 |
|
|
# binListDict[ initialHistDict[ hist ] ][ "Data" ] ] )
|
277 |
|
|
rebinList = FH.mergeList( [ binListDict[ hist ][ "Data" ], binListDict[ initialHistDict[ hist ] ][ "Data" ] ] )
|
278 |
|
|
#rebinList = FH.mergeList( [ binListDict[ hist ][ "QCDFlat" ], binListDict[ initialHistDict[ hist ] ][ "QCDFlat" ] ] )
|
279 |
|
|
print hist
|
280 |
|
|
print rebinList
|
281 |
|
|
obj = array( 'd' )
|
282 |
|
|
for b in rebinList:
|
283 |
|
|
obj.append( b )
|
284 |
|
|
pass
|
285 |
|
|
for file in sampleList:
|
286 |
|
|
histDict[ hist ][ file ][ dir ] = \
|
287 |
|
|
histDict[ hist ][ file ][ dir ].Rebin( len( rebinList ) -1 , hist , obj )
|
288 |
|
|
histDict[ initialHistDict[ hist ] ][ file ][ dir ] = \
|
289 |
|
|
histDict[ initialHistDict[ hist ] ][ file ][ dir ].Rebin( len( rebinList ) -1 , hist , obj )
|
290 |
|
|
graph[ hist ][ file ][ dir ] = ROOT.TGraphAsymmErrors()
|
291 |
|
|
graph[ hist ][ file ][ dir ].BayesDivide( histDict[ hist ][ file ][ dir ],
|
292 |
|
|
histDict[ initialHistDict[ hist ] ][ file ][ dir ] )
|
293 |
|
|
graph[ hist ][ file ][ dir ].UseCurrentStyle()
|
294 |
|
|
# remove very first bin
|
295 |
|
|
for p in range( 0, graph[ hist ][ file ][ dir ].GetN() ):
|
296 |
|
|
ix = ROOT.Double( 0 )
|
297 |
|
|
yps = ROOT.Double( 0 )
|
298 |
|
|
graph[ hist ][ file ][ dir ].GetPoint( p, ix, yps )
|
299 |
|
|
if ix < 20 and yps < 10**-12:
|
300 |
|
|
graph[ hist ][ file ][ dir ].SetPoint( p,0,0 )
|
301 |
|
|
graph[ hist ][ file ][ dir ].SetPointError( p,0,0,0,0 )
|
302 |
|
|
pass
|
303 |
|
|
pass
|
304 |
|
|
h = hist
|
305 |
|
|
markerStyle = 22
|
306 |
|
|
if file == "Data":
|
307 |
|
|
h = hist + file
|
308 |
|
|
markerStyle = 20
|
309 |
|
|
pass
|
310 |
|
|
titleAdd = ""
|
311 |
|
|
if hist in titleDict.keys():
|
312 |
|
|
titleAdd = titleDict[ hist ]
|
313 |
|
|
pass
|
314 |
|
|
xtitleAdd = ""
|
315 |
|
|
if hist in xtitleDict.keys():
|
316 |
|
|
xtitleAdd = xtitleDict[ hist ]
|
317 |
|
|
pass
|
318 |
|
|
Style.setHistStyle( graph[ hist ][ file ][ dir ],
|
319 |
|
|
status="Err",
|
320 |
|
|
color=colorDict[ h ],
|
321 |
|
|
xTitle=xtitle + xtitleAdd,
|
322 |
|
|
yTitle=ytitle,
|
323 |
|
|
title=title + titleAdd,
|
324 |
|
|
markerStyle=markerStyle
|
325 |
|
|
)
|
326 |
|
|
pass
|
327 |
|
|
pass
|
328 |
|
|
|
329 |
|
|
cDict = {}
|
330 |
|
|
legDict = {}
|
331 |
|
|
#for file in sampleList:
|
332 |
|
|
# cDict[ file ] = {}
|
333 |
|
|
# legDict[ file ] = {}
|
334 |
|
|
for hist in initialHistDict.keys():
|
335 |
|
|
cDict[ hist ] = ROOT.TCanvas( hist , hist )
|
336 |
|
|
cDict[ hist ].cd()
|
337 |
|
|
glist = []
|
338 |
|
|
llist = []
|
339 |
|
|
same = "A"
|
340 |
|
|
#dir = "FakeRateInvertMHTLoose/"
|
341 |
|
|
#dir = "FakeRate40MHT60/"
|
342 |
|
|
dir = dirs[ 0 ]
|
343 |
|
|
for file in sampleList:
|
344 |
|
|
graph[ hist ][ file ][ dir ].Draw( "P" + same )
|
345 |
|
|
if not yRange == None:
|
346 |
|
|
graph[ hist ][ file ][ dir ].GetYaxis().SetRangeUser( yRange[ 0 ], yRange[ 1 ] )
|
347 |
|
|
pass
|
348 |
|
|
if not xRange == None:
|
349 |
|
|
graph[ hist ][ file ][ dir ].GetXaxis().SetRangeUser( xRange[ 0 ], xRange[ 1 ] )
|
350 |
|
|
pass
|
351 |
|
|
same = "same"
|
352 |
|
|
glist.append( graph[ hist ][ file ][ dir ] )
|
353 |
|
|
h = hist
|
354 |
|
|
if file == "Data":
|
355 |
|
|
h = hist + file
|
356 |
|
|
pass
|
357 |
|
|
llist.append( legendDict[ h ] )
|
358 |
|
|
pass
|
359 |
|
|
|
360 |
|
|
|
361 |
|
|
legDict[ hist ] = Style.makeLegendSimple( glist,
|
362 |
|
|
llist,
|
363 |
|
|
#statusDict=statusDict,
|
364 |
|
|
style="ep",
|
365 |
|
|
position="umr" )
|
366 |
|
|
legDict[ hist ].Draw( "same" )
|
367 |
|
|
ROOT.gPad.SetLogy()
|
368 |
|
|
|
369 |
|
|
xmin = None
|
370 |
|
|
xmax = None
|
371 |
|
|
if not xRange == None:
|
372 |
|
|
xmin = xRange[ 0 ]
|
373 |
|
|
xmax = xRange[ 1 ]
|
374 |
|
|
pass
|
375 |
|
|
|
376 |
|
|
if plotRatio:
|
377 |
|
|
ratioDict[ hist ] = RT.Ratio( graph[ hist ][ "Data" ][ dir ],
|
378 |
|
|
graph[ hist ][ "QCDFlat" ][ dir ],
|
379 |
|
|
colorUp = ROOT.kBlack,
|
380 |
|
|
xmin=xmin,
|
381 |
|
|
xmax=xmax,
|
382 |
|
|
xtitle=xtitle )
|
383 |
|
|
|
384 |
|
|
ratioDict[ hist ].drawRatio( ROOT.gPad )
|
385 |
|
|
pass
|
386 |
|
|
pass
|
387 |
|
|
|
388 |
|
|
|
389 |
|
|
|
390 |
|
|
Def.DontQuit()
|