ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/nowaf/RootFilesInUse/MakeFakeComparePlots.py
Revision: 1.1.1.1 (vendor branch)
Committed: Tue Mar 20 13:12:08 2012 UTC (13 years, 1 month ago) by nowak
Content type: text/x-python
Branch: rootFilesInUse, MAIN
CVS Tags: start, HEAD
Changes since 1.1: +0 -0 lines
Log Message:
t files in use

File Contents

# Content
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()