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