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

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