ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/nowaf/RootFilesInUse/MakePlotsN1.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 MakeRealTauEst_cff as RT
7
8 if __name__ == "__main__":
9
10 Def.SetGlobalStyles( withTitle=True )
11
12 lumi = 1000.
13 ### v4
14 #lumi = 927.9
15
16 #fileName = "_cxviii"
17 fileName = "_full_iii"
18
19
20 saveName = "plots/plots_pre"
21
22 saveToPS = False
23 saveToEPS = False
24
25 ##sampleList = []
26 ##sampleList.append( "LM13" )
27 ###sampleList.append( "LM8" )
28 ###sampleList.append( "LM7" )
29 ###sampleList.append( "GMSBc" )
30 ##sampleList.append( "TTbar" )
31 ##sampleList.append( "GVJets" )
32 ##sampleList.append( "WWJets" )
33 ###sampleList.append( "Zinv" )
34 ##sampleList.append( "ZJets" )
35 ##sampleList.append( "WJets" )
36 ###sampleList.append( "Multijet" )
37
38 removeSamplesAcc = []
39 #removeSamplesAcc.append( "TTbar" )
40 removeSamplesAcc.append( "GVJets" )
41 #removeSamplesAcc.append( "WWJets" )
42 #removeSamplesAcc.append( "Zinv" )
43 #removeSamplesAcc.append( "ZJets" )
44 #removeSamplesAcc.append( "WJets" )
45 #removeSamplesAcc.append( "QCDFlat" )
46 removeSamplesAcc.append( "Data" )
47
48 addSample = []
49 addSample.append( "LM13" )
50 addSample.append( "LM2" )
51
52 fileDir = "/scratch/hh/lustre/cms/user/nowaf/2011Data/VersionII/Plots/RealTauEst/"
53
54 theTitle = "Simulation only, " + str( int( lumi/1000. ) ) + " fb^{-1}, #sqrt{s}=7 TeV"
55 #theTitle = "CMS Simulation, " + str( int( lumi/1000. ) ) + " fb^{-1}, #sqrt{s}=7 TeV"
56
57
58 dir = "finalPlotTauPreSelection/"
59 #dir = "finalPlotTau/"
60 #dir = "finalPlotTauN1/"
61
62 histList = []
63 #histList.append( "MHTMHT" )
64 histList.append( "HTHT" )
65
66 hList = []
67 for hist in histList:
68 hList.append( hist + "_n1" )
69 pass
70 histList = [] ### ueberfluessig
71 histList = hList
72
73 rebinDict = {}
74 rebinDict[ "MHTMHT" ] = 2
75 rebinDict[ "MHTMHTEta" ] = 2
76 rebinDict[ "MHTMHTPhi" ] = 2
77 rebinDict[ "HTHT" ] = 1
78 #rebinDict[ "JetSelection30Jet1Pt" ] = 2
79 #rebinDict[ "JetSelection30Jet2Pt" ] = 2
80 #rebinDict[ "JetSelection30Jet3Pt" ] = 2
81 rebinDict[ "JetSelection30Jet1Eta" ] = 2
82 rebinDict[ "JetSelection30Jet2Eta" ] = 2
83 rebinDict[ "JetSelection30Jet3Eta" ] = 2
84 rebinDict[ "JetSelection30Jet1Phi" ] = 2
85 rebinDict[ "JetSelection30Jet2Phi" ] = 2
86 rebinDict[ "JetSelection30Jet3Phi" ] = 2
87 rebinDict[ "TauSelectionTau1Pt" ] = 2
88 rebinDict[ "TauSelectionTau1Eta" ] = 2
89 rebinDict[ "TauSelectionTau1Phi" ] = 2
90 if dir == "finalPlotTau/":
91 rebinDict[ "MHTMHT" ] = 2
92 rebinDict[ "HTHT" ] = 2
93 pass
94
95 rDict = {}
96 for key in rebinDict.keys():
97 rDict[ key + "_n1" ] = rebinDict[ key ]
98 pass
99 rebinDict = rDict.copy()
100
101
102 colorDict = {}
103 colorDict[ "QCDFlat" ] = ROOT.kYellow + 3
104 colorDict[ "TTbar" ] = ROOT.kRed + 3
105 #colorDict[ "GVJets" ] = ROOT.kRed
106 colorDict[ "ZJets" ] = ROOT.kOrange
107 colorDict[ "Zinv" ] = ROOT.kOrange - 3
108 #colorDict[ "WWJets" ] = ROOT.kOrange
109 #colorDict[ "ZZJets" ] = ROOT.kOrange
110 #colorDict[ "WZJets" ] = ROOT.kOrange
111 #colorDict[ "WWJets" ] = ROOT.kOrange + 7
112 colorDict[ "WWJets" ] = ROOT.kRed
113 colorDict[ "WJets" ] = ROOT.kYellow + 2
114 #colorDict[ "LM13" ] = ROOT.kBlue
115 colorDict[ "LM2" ] = ROOT.kBlue - 7
116 colorDict[ "LM13" ] = ROOT.kAzure + 10
117 colorDict[ "GMSBc" ] = ROOT.kCyan + 2
118 colorDict[ "Data" ] = ROOT.kBlack
119
120
121 xrangeDict = {}
122 xrangeDict[ "MHTMHT" ] = ( 250,1000 )
123 xrangeDict[ "MHTMHTEta" ] = ( -5,5 )
124 xrangeDict[ "MHTMHTPhi" ] = ( -3.14,3.14 )
125 xrangeDict[ "HTHT" ] = ( 0,2500 )
126 #xrangeDict[ "HTHT" ] = ( 350,2500 )
127 xrangeDict[ "JetSelection30Jet1Pt" ] = ( 0,1000 )
128 xrangeDict[ "JetSelection30Jet2Pt" ] = ( 0,1000 )
129 xrangeDict[ "JetSelection30Jet3Pt" ] = ( 0,1000 )
130 xrangeDict[ "JetSelection30Jet1Eta" ] = ( -5,5 )
131 xrangeDict[ "JetSelection30Jet2Eta" ] = ( -5,5 )
132 xrangeDict[ "JetSelection30Jet3Eta" ] = ( -5,5 )
133 xrangeDict[ "JetSelection30Jet1Phi" ] = ( -3.14,3.14 )
134 xrangeDict[ "JetSelection30Jet2Phi" ] = ( -3.14,3.14 )
135 xrangeDict[ "JetSelection30Jet3Phi" ] = ( -3.14,3.14 )
136 xrangeDict[ "JetSelection30NumberOfJets" ] = ( 0,20 )
137 xrangeDict[ "MHTdPhiMindPhiJet1MHT" ] = ( 0,4 )
138 xrangeDict[ "MHTdPhiMindPhiJet2MHT" ] = ( 0,4 )
139 xrangeDict[ "MHTdPhiMindPhiJet3MHT" ] = ( 0,4 )
140 xrangeDict[ "ElectronVetonElectrons" ] = ( 0,10 )
141 xrangeDict[ "MuonVetonMuons" ] = ( 0,10 )
142 xrangeDict[ "TauSelectionNumberOfTaus" ] = ( 0,10 )
143 xrangeDict[ "TauSelectionTau1Pt" ] = ( 0,500 )
144 xrangeDict[ "TauSelectionTau1Eta" ] = ( -5,5 )
145 xrangeDict[ "TauSelectionTau1Phi" ] = ( -3.14,3.14 )
146 xrangeDict[ "TauSelectionTau2Pt" ] = ( 0,1000 )
147 xrangeDict[ "dPhiJ12dphi" ] = ( 0,4 )
148
149 xrDict = {}
150 for key in xrangeDict.keys():
151 xrDict[ key + "_n1" ] = xrangeDict[ key ]
152 pass
153 xrangeDict = xrDict.copy()
154
155 yrangeDict = {}
156 yrangeDict[ "MHTMHT" ] = ( 10**-2,10**2 )
157 yrangeDict[ "MHTMHTEta" ] = ( 10**-2,8*10**3 )
158 yrangeDict[ "MHTMHTPhi" ] = ( 10**-2,8*10**3 )
159 yrangeDict[ "HTHT" ] = ( 10**-2,2*10 )
160 yrangeDict[ "JetSelection30Jet1Pt" ] = ( 10**-2,2*10**2 )
161 yrangeDict[ "JetSelection30Jet2Pt" ] = ( 10**-2,2*10**2 )
162 yrangeDict[ "JetSelection30Jet3Pt" ] = ( 10**-2,2*10**2 )
163 yrangeDict[ "JetSelection30Jet1Eta" ] = ( 10**-2,8*10**3 )
164 yrangeDict[ "JetSelection30Jet2Eta" ] = ( 10**-2,8*10**3 )
165 yrangeDict[ "JetSelection30Jet3Eta" ] = ( 10**-2,8*10**3 )
166 yrangeDict[ "JetSelection30Jet1Phi" ] = ( 10**-2,8*10**3 )
167 yrangeDict[ "JetSelection30Jet2Phi" ] = ( 10**-2,8*10**3 )
168 yrangeDict[ "JetSelection30Jet3Phi" ] = ( 10**-2,8*10**3 )
169 yrangeDict[ "JetSelection30NumberOfJets" ] = ( 10**-2,8*10**3 )
170 yrangeDict[ "MHTdPhiMindPhiJet1MHT" ] = ( 10**-2,2*10**2 )
171 yrangeDict[ "MHTdPhiMindPhiJet2MHT" ] = ( 10**-2,2*10**2 )
172 yrangeDict[ "MHTdPhiMindPhiJet3MHT" ] = ( 10**-2,2*10**2 )
173 yrangeDict[ "ElectronVetonElectrons" ] = ( 10**-2,2*10**2 )
174 yrangeDict[ "MuonVetonMuons" ] = ( 10**-2,2*10**2 )
175 yrangeDict[ "TauSelectionNumberOfTaus" ] = ( 10**-2,2*10**2 )
176 yrangeDict[ "TauSelectionTau1Pt" ] = ( 10**-2,2*10**2 )
177 yrangeDict[ "TauSelectionTau1Eta" ] = ( 10**-2,8*10**3 )
178 yrangeDict[ "TauSelectionTau1Phi" ] = ( 10**-2,8*10**3 )
179 yrangeDict[ "TauSelectionTau2Pt" ] = ( 10**-2,2*10**2 )
180 yrangeDict[ "dPhiJ12dphi" ] = ( 10**-2,2*10**2 )
181 if re.search( "Pre", dir ):
182 yrangeDict[ "MHTMHT" ] = ( 10**-2,3*10**3 )
183 yrangeDict[ "MHTMHTEta" ] = ( 10**-2,8*10**3 )
184 yrangeDict[ "MHTMHTPhi" ] = ( 10**-2,8*10**3 )
185 yrangeDict[ "HTHT" ] = ( 10**-2,3*10**3 )
186 yrangeDict[ "JetSelection30Jet1Pt" ] = ( 10**-2,3*10**3 )
187 yrangeDict[ "JetSelection30Jet2Pt" ] = ( 10**-2,3*10**3 )
188 yrangeDict[ "JetSelection30Jet3Pt" ] = ( 10**-2,3*10**3 )
189 yrangeDict[ "JetSelection30Jet1Eta" ] = ( 10**-2,8*10**3 )
190 yrangeDict[ "JetSelection30Jet2Eta" ] = ( 10**-2,8*10**3 )
191 yrangeDict[ "JetSelection30Jet3Eta" ] = ( 10**-2,8*10**3 )
192 yrangeDict[ "JetSelection30Jet1Phi" ] = ( 10**-2,8*10**3 )
193 yrangeDict[ "JetSelection30Jet2Phi" ] = ( 10**-2,8*10**3 )
194 yrangeDict[ "JetSelection30Jet3Phi" ] = ( 10**-2,8*10**3 )
195 yrangeDict[ "JetSelection30NumberOfJets" ] = ( 10**-2,8*10**3 )
196 yrangeDict[ "MHTdPhiMindPhiJet1MHT" ] = ( 10**-2,3*10**3 )
197 yrangeDict[ "MHTdPhiMindPhiJet2MHT" ] = ( 10**-2,3*10**3 )
198 yrangeDict[ "MHTdPhiMindPhiJet3MHT" ] = ( 10**-2,3*10**3 )
199 yrangeDict[ "ElectronVetonElectrons" ] = ( 10**-2,3*10**3 )
200 yrangeDict[ "MuonVetonMuons" ] = ( 10**-2,3*10**3 )
201 yrangeDict[ "TauSelectionNumberOfTaus" ] = ( 10**-2,3*10**3 )
202 yrangeDict[ "TauSelectionTau1Pt" ] = ( 10**-2,3*10**3 )
203 yrangeDict[ "TauSelectionTau1Eta" ] = ( 10**-2,8*10**3 )
204 yrangeDict[ "TauSelectionTau1Phi" ] = ( 10**-2,8*10**3 )
205 yrangeDict[ "TauSelectionTau2Pt" ] = ( 10**-2,3*10**3 )
206 yrangeDict[ "dPhiJ12dphi" ] = ( 10**-2,3*10**3 )
207 pass
208
209 yrDict = {}
210 for key in yrangeDict.keys():
211 yrDict[ key + "_n1" ] = yrangeDict[ key ]
212 pass
213 yrangeDict = yrDict.copy()
214
215 logDict = {}
216 logDict[ "MHTMHT" ] = True
217 logDict[ "MHTMHTEta" ] = True
218 logDict[ "MHTMHTPhi" ] = True
219 logDict[ "HTHT" ] = True
220 logDict[ "JetSelection30Jet1Pt" ] = True
221 logDict[ "JetSelection30Jet2Pt" ] = True
222 logDict[ "JetSelection30Jet3Pt" ] = True
223 logDict[ "JetSelection30Jet1Eta" ] = True
224 logDict[ "JetSelection30Jet2Eta" ] = True
225 logDict[ "JetSelection30Jet3Eta" ] = True
226 logDict[ "JetSelection30Jet1Phi" ] = True
227 logDict[ "JetSelection30Jet2Phi" ] = True
228 logDict[ "JetSelection30Jet3Phi" ] = True
229 logDict[ "JetSelection30NumberOfJets" ] = True
230 logDict[ "MHTdPhiMindPhiJet1MHT" ] = True
231 logDict[ "MHTdPhiMindPhiJet2MHT" ] = True
232 logDict[ "MHTdPhiMindPhiJet3MHT" ] = True
233 logDict[ "ElectronVetonElectrons" ] = True
234 logDict[ "MuonVetonMuons" ] = True
235 logDict[ "TauSelectionNumberOfTaus" ] = True
236 logDict[ "TauSelectionTau1Pt" ] = True
237 logDict[ "TauSelectionTau1Eta" ] = True
238 logDict[ "TauSelectionTau1Phi" ] = True
239 logDict[ "TauSelectionTau2Pt" ] = True
240 logDict[ "dPhiJ12dphi" ] = True
241
242 lDict = {}
243 for key in logDict.keys():
244 lDict[ key + "_n1" ] = logDict[ key ]
245 pass
246 logDict = lDict.copy()
247
248 #scalingFactors = {}
249 #scalingFactors[ "QCDFlat" ] = lumi/100.
250 #scalingFactors[ "Z+Jets" ] = lumi/100.
251 #scalingFactors[ "VV+Jets" ] = lumi/100.
252 #scalingFactors[ "W+Jets" ] = lumi * 31300. / ( 15110974 * 0.65 )
253 #scalingFactors[ "TTbar" ] = lumi * 165 / ( 1164208. * 0.90 )
254 #scalingFactors[ "GV+Jets" ] = lumi * 173 / 1102193.
255 #scalingFactors[ "Zinv" ] = lumi * 5760 / 2165002.
256 #scalingFactors[ "LM13" ] = lumi * 6.9 / 219915.
257 #scalingFactors[ "LM7" ] = lumi * 1.2 / 220000.
258 #scalingFactors[ "LM8" ] = lumi * 0.7 / 220000.
259 #scalingFactors[ "GMSBc" ] = lumi * 0.25 / 219595.
260
261 titleDict = {}
262 titleDict[ "MHTMHT" ] = ( "#slash H_{T} [GeV]", "" )
263 titleDict[ "MHTMHTPhi" ] = ( "#phi^{MHT}", "" )
264 titleDict[ "MHTMHTEta" ] = ( "#eta^{MHT}", "" )
265 titleDict[ "HTHT" ] = ( "H_{T} [GeV]", "" )
266 titleDict[ "JetSelection30Jet1Pt" ] = ( "P_{T}^{Jet1} [GeV]", "" )
267 titleDict[ "JetSelection30Jet2Pt" ] = ( "P_{T}^{Jet2} [GeV]", "" )
268 titleDict[ "JetSelection30Jet3Pt" ] = ( "P_{T}^{Jet3} [GeV]", "" )
269 titleDict[ "JetSelection30Jet1Eta" ] = ( "#eta^{Jet1} [GeV]", "" )
270 titleDict[ "JetSelection30Jet2Eta" ] = ( "#eta^{Jet2} [GeV]", "" )
271 titleDict[ "JetSelection30Jet2Eta" ] = ( "#eta^{Jet3} [GeV]", "" )
272 titleDict[ "JetSelection30Jet1Phi" ] = ( "#phi^{Jet1} [GeV]", "" )
273 titleDict[ "JetSelection30Jet2Phi" ] = ( "#phi^{Jet2} [GeV]", "" )
274 titleDict[ "JetSelection30Jet3Phi" ] = ( "#phi^{Jet3} [GeV]", "" )
275 titleDict[ "JetSelection30NumberOfJets" ] = ( "Number of jets", "" )
276 titleDict[ "MHTdPhiMindPhiJet1MHT" ] = ( "#Delta #Phi (Jet1,MHT)", "" )
277 titleDict[ "MHTdPhiMindPhiJet2MHT" ] = ( "#Delta #Phi (Jet2,MHT)", "" )
278 titleDict[ "MHTdPhiMindPhiJet3MHT" ] = ( "#Delta #Phi (Jet3,MHT)", "" )
279 titleDict[ "ElectronVetonElectrons" ] = ( "number of electrons", "" )
280 titleDict[ "MuonVetonMuons" ] = ( "number of muons", "" )
281 titleDict[ "TauSelectionNumberOfTaus" ] = ( "Number of taus", "" )
282 titleDict[ "TauSelectionTau1Pt" ] = ( "P_{T}^{#tau} [GeV]", "" )
283 titleDict[ "TauSelectionTau1Eta" ] = ( "#eta^{#tau} [GeV]", "" )
284 titleDict[ "TauSelectionTau1Phi" ] = ( "#phi^{#tau} [GeV]", "" )
285 titleDict[ "TauSelectionTau2Pt" ] = ( "P_{T} (Tau2) [GeV]", "" )
286 titleDict[ "dPhiJ12dphi" ] = ( "#Delta #Phi (Jet1,Jet2)", "" )
287
288 tDict = {}
289 for key in titleDict.keys():
290 tDict[ key + "_n1" ] = titleDict[ key ]
291 pass
292 titleDict = tDict.copy()
293
294 positionDict = {}
295 positionDict[ "MHTdPhiMindPhiJet1MHT" ] = "ul"
296 positionDict[ "MHTdPhiMindPhiJet2MHT" ] = "ul"
297 positionDict[ "MHTdPhiMindPhiJet3MHT" ] = "ul"
298 positionDict[ "dPhiJ12dphi" ] = "ul"
299
300 pDict = {}
301 for key in positionDict.keys():
302 pDict[ key + "_n1" ] = positionDict[ key ]
303 pass
304 positionDict = pDict.copy()
305
306 lineDict = {}
307 lineDict[ "HTHT" ] = ( 600, 600, 10**-2, 10 )
308 lineDict[ "MHTMHT" ] = ( 400, 400, 10**-2, 10 )
309 if re.search( "Pre", dir ):
310 lineDict[ "HTHT" ] = ( 350, 350, 10**-2, 10**3 )
311 lineDict[ "MHTMHT" ] = ( 200, 200, 10**-2, 10**3 )
312 pass
313
314 liDict = {}
315 for key in lineDict.keys():
316 liDict[ key + "_n1" ] = lineDict[ key ]
317 pass
318 lineDict = liDict.copy()
319
320 lDict = {}
321 lDict[ "QCDFlat" ] = "QCD"
322 lDict[ "TTbar" ] = "t#bar{t}"
323 lDict[ "GVJets" ] = "#gamma+V+Jets"
324 lDict[ "ZJets" ] = "Z->ll +Jets"
325 lDict[ "Zinv" ] = "Z->#nu#nu +Jets"
326 lDict[ "WWJets" ] = "WW + Jets"
327 lDict[ "WJets" ] = "W + Jets"
328 lDict[ "LM13" ] = "LM13"
329 lDict[ "LM2" ] = "LM2"
330 #lDict[ "LM8" ] = "Signal"
331 #lDict[ "GMSBc" ] = "Signal"
332 lDict[ "Data" ] = "Data"
333
334 statusDict = {}
335 statusDict[ "QCDFlat" ] = "BG"
336 statusDict[ "QCD" ] = "BG"
337 #statusDict[ "QCDFlat" ] = "Signal"
338 statusDict[ "TTbar" ] = "BG"
339 statusDict[ "t#bar{t}" ] = "BG"
340 statusDict[ "GVJets" ] = "BG"
341 statusDict[ "#gamma+V+Jets" ] = "BG"
342 statusDict[ "ZJets" ] = "BG"
343 statusDict[ "Z->ll +Jets" ] = "BG"
344 statusDict[ "Zinv" ] = "BG"
345 statusDict[ "Z->#nu#nu +Jets" ] = "BG"
346 statusDict[ "WWJets" ] = "BG"
347 statusDict[ "WW + Jets" ] = "BG"
348 statusDict[ "WJets" ] = "BG"
349 statusDict[ "W + Jets" ] = "BG"
350 statusDict[ "LM13" ] = "Signal"
351 statusDict[ "LM2" ] = "Signal"
352 statusDict[ "LM8" ] = "Signal"
353 statusDict[ "GMSBc" ] = "Signal"
354 statusDict[ "Data" ] = "Data"
355
356 legendList = []
357
358 #######################################################################
359
360 accReadIn = RT.ReadIn( fileDir, fileName, lumi, rebinDict )
361 #if fileName == "_full":
362 # accReadIn.changeScalingFactor( "Zinv", lumi * 32.92 / ( 3067017. * 0.9 ) ) ### only 90% finished
363 # accReadIn.changeScalingFactor( "LM13", lumi * 6.899 / ( 517000 * 1 ) ) ### skim is 77000 events,
364 # ### 517000 - 77000 added afterwards
365 # accReadIn.changeScalingFactor( "LM2", lumi * 0.6027 / ( 445060 * 1. ) ) ### after adding additional events
366 # pass
367
368 accReadIn.removeSamples( removeSamplesAcc )
369 accReadIn.addSamples( addSample )
370 accReadIn.removeHists( [ "MHT" ] )
371 accReadIn.addHists( histList ) #accReadIn.dontScale()
372 histDict = accReadIn.getHists( dir )
373 for hist in accReadIn.histList:
374 for file in accReadIn.sampleList:
375 if hist in titleDict.keys():
376
377 binWidth = histDict[ hist ][ file ].GetBinWidth( 1 )
378
379 xtitle = titleDict[ hist ][ 0 ]
380 ytitle = "Events/" + str( int( binWidth ) ) + " GeV"
381 if not hist in titleDict.keys() or not re.search( "GeV", titleDict[ hist ][ 0 ] ):
382 ytitle = "Events"
383 pass
384 histDict[ hist ][ file ].UseCurrentStyle()
385 Style.setHistStyle( histDict[ hist ][ file ] , status=statusDict[ file ],\
386 color=colorDict[ file ], xTitle=xtitle, yTitle=ytitle,
387 markerStyle=20, title=theTitle )
388 if hist in xrangeDict.keys():
389 histDict[ hist ][ file ].GetXaxis().SetRangeUser( xrangeDict[ hist ][ 0 ],
390 xrangeDict[ hist ][ 1 ] )
391 pass
392 if hist in yrangeDict.keys():
393 histDict[ hist ][ file ].GetYaxis().SetRangeUser( yrangeDict[ hist ][ 0 ],
394 yrangeDict[ hist ][ 1 ] )
395 pass
396 pass
397 pass
398
399 for file in accReadIn.sampleList:
400 legendList.append( lDict[ file ] )
401 pass
402
403 #### get lists of samples not to be stacked
404 NonStackList = []
405 DataList = []
406 StackList = []
407 for sample in accReadIn.sampleList:
408 if statusDict[ sample ] == "Data":
409 DataList.append( sample )
410 elif statusDict[ sample ] == "Signal":
411 NonStackList.append( sample )
412 #elif statusDict[ sample ] == "BG":
413 # StackList.append( sample )
414 pass
415 pass
416
417
418 cDict = {}
419 stackDict = {}
420 legDict = {}
421 textDict = {}
422 tlineDict = {}
423 for hist in histList:
424
425 #### make the stack
426 if len( NonStackList + DataList ) != len( accReadIn.sampleList ):
427 stackDict[ hist ] = ROOT.THStack( hist, hist )
428 for sample in accReadIn.sampleList:
429 if statusDict[ sample ] == "BG":
430 stackDict[ hist ].Add( histDict[ hist ][ sample ] )
431 pass
432 pass
433 pass
434
435 cDict[ hist ] = ROOT.TCanvas( hist, hist )
436 cDict[ hist ].cd()
437
438 #### draw non-stack stuff first
439 option = ""
440 for dsample in DataList:
441 histDict[ hist ][ dsample ].Draw( option )
442 option = "same"
443 pass
444
445 nondataOption = "hist"
446 for nssample in NonStackList:
447 histDict[ hist ][ nssample ].Draw( nondataOption+option )
448 option = "same"
449 pass
450
451
452 #### i hate stacks.
453 #### set all the fucking stylings AGAIN.
454 if stackDict:
455
456 #### now draw the stack
457 stackDict[ hist ].Draw( nondataOption+option )
458
459 if hist in xrangeDict.keys():
460 stackDict[ hist ].GetXaxis().SetRangeUser( xrangeDict[ hist ][ 0 ],
461 xrangeDict[ hist ][ 1 ] )
462 pass
463 if hist in yrangeDict.keys():
464 #stackDict[ hist ].GetYaxis().SetRangeUser( yrangeDict[ hist ][ 0 ], yrangeDict[ hist ][ 1 ] )
465 stackDict[ hist ].SetMinimum( yrangeDict[ hist ][ 0 ] )
466 stackDict[ hist ].SetMaximum( yrangeDict[ hist ][ 1 ] )
467 pass
468 if hist in titleDict.keys():
469 stackDict[ hist ].GetXaxis().SetTitle( titleDict[ hist ][ 0 ] )
470 stackDict[ hist ].GetYaxis().SetTitle( titleDict[ hist ][ 1 ] )
471 pass
472
473 stackDict[ hist ].SetTitle( "" )
474 axis = stackDict[ hist ].GetHistogram()
475 pass
476
477 #### draw non-stack stuff again
478
479 for nssample in NonStackList:
480 histDict[ hist ][ nssample ].GetXaxis().SetRangeUser( xrangeDict[ hist ][ 0 ],
481 xrangeDict[ hist ][ 1 ] )
482 histDict[ hist ][ nssample ].SetMinimum( yrangeDict[ hist ][ 0 ] )
483 histDict[ hist ][ nssample ].SetMaximum( yrangeDict[ hist ][ 1 ] )
484 histDict[ hist ][ nssample ].Draw( nondataOption + option )
485 option = "same"
486 pass
487
488 for dsample in DataList:
489 histDict[ hist ][ dsample ].GetXaxis().SetRangeUser( xrangeDict[ hist ][ 0 ],
490 xrangeDict[ hist ][ 1 ] )
491 histDict[ hist ][ dsample ].SetMinimum( yrangeDict[ hist ][ 0 ] )
492 histDict[ hist ][ dsample ].SetMaximum( yrangeDict[ hist ][ 1 ] )
493 histDict[ hist ][ dsample ].Draw( option )
494 option = "same"
495 pass
496
497
498
499 if hist in logDict.keys() and logDict[ hist ]:
500 ROOT.gPad.SetLogy()
501 pass
502 cDict[ hist ].Update()
503
504 position = "ur"
505 if hist in positionDict.keys():
506 position = positionDict[ hist ]
507 pass
508
509 legDict[ hist ] = Style.makeLegend( hist, histDict, accReadIn.sampleList, statusDict=statusDict,
510 position=position, aliasList=legendList )
511 legDict[ hist ].Draw( "same" )
512
513 #if hist in latexDict.keys():
514 # for i in range( 0, len( latexDict[ hist ][ 0 ] ) ):
515 # textDict[ hist + str ( i ) ] = ROOT.TLatex( latexDict[ hist ][ 1 ][ i ], \
516 # latexDict[ hist ][ 2 ][ i ], \
517 # latexDict[ hist ][ 0 ][ i ] )
518 # textDict[ hist + str ( i ) ].Draw( "same" )
519 # pass
520 # pass
521
522 if hist in lineDict:
523 tlineDict[ hist ] = ROOT.TLine( lineDict[ hist ][ 0 ],
524 lineDict[ hist ][ 2 ],
525 lineDict[ hist ][ 1 ],
526 lineDict[ hist ][ 3 ])
527 tlineDict[ hist ].SetLineWidth( 2 )
528 tlineDict[ hist ].SetLineColor( 13 )
529 tlineDict[ hist ].Draw( "same" )
530 pass
531
532 axis.Draw( "axissame" )
533
534
535 cDict[ hist ].Update()
536
537 pass
538
539 if saveToPS:
540 Style.saveToPS( saveName, cDict, histList )
541 if saveToEPS:
542 Style.saveToEPS( saveName, cDict )
543 pass
544
545 Def.DontQuit()
546
547
548
549