ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbb/python/tree_stack.py
Revision: 1.48
Committed: Tue Mar 26 13:48:50 2013 UTC (12 years, 1 month ago) by nmohr
Content type: text/x-python
Branch: MAIN
Changes since 1.47: +5 -0 lines
Log Message:
Fix norm plot

File Contents

# User Rev Content
1 peller 1.1 #!/usr/bin/env python
2     import pickle
3     import ROOT
4     from array import array
5 peller 1.11 import sys, os
6 peller 1.8 from optparse import OptionParser
7 peller 1.32 from copy import copy,deepcopy
8     from math import sqrt
9 nmohr 1.43 ROOT.gROOT.SetBatch(True)
10 peller 1.1
11 peller 1.7 #CONFIGURE
12     argv = sys.argv
13     parser = OptionParser()
14 bortigno 1.46 parser.add_option("-R", "--region", dest="region", default="",
15 peller 1.10 help="region to plot")
16 peller 1.7 parser.add_option("-C", "--config", dest="config", default=[], action="append",
17     help="configuration file")
18     (opts, args) = parser.parse_args(argv)
19     if opts.config =="":
20     opts.config = "config"
21 nmohr 1.43
22     from myutils import BetterConfigParser, printc, ParseInfo, mvainfo, StackMaker, HistoMaker
23    
24 peller 1.7 print opts.config
25 peller 1.42 opts.config.append('8TeVconfig/vhbbPlotDef.ini')
26 peller 1.7 config = BetterConfigParser()
27     config.read(opts.config)
28 peller 1.17
29 peller 1.42 #path = opts.path
30 peller 1.10 region = opts.region
31 peller 1.7
32 peller 1.10 #get locations:
33     Wdir=config.get('Directories','Wdir')
34 nmohr 1.28 samplesinfo=config.get('Directories','samplesinfo')
35 peller 1.41
36 peller 1.42 path = config.get('Directories','plottingSamples')
37 peller 1.41
38 peller 1.10 section='Plot:%s'%region
39 peller 1.1
40 nmohr 1.43 info = ParseInfo(samplesinfo,path)
41 peller 1.1
42 peller 1.32 #----------Histo from trees------------
43 nmohr 1.40 def doPlot():
44 peller 1.32 vars = (config.get(section, 'vars')).split(',')
45 peller 1.1
46 nmohr 1.43 if 'ZLight' in region or 'TTbar' in region or 'Zbb' in region:
47     SignalRegion = False
48 peller 1.32 else:
49     SignalRegion = True
50     print 'You are in the Signal Region!'
51    
52     data = config.get(section,'Datas')
53    
54 peller 1.44 mc=eval(config.get('Plot_general','samples'))
55 nmohr 1.43
56     datasamples = info.get_samples(data)
57     mcsamples = info.get_samples(mc)
58 peller 1.32
59 peller 1.44 GroupDict = eval(config.get('Plot_general','Group'))
60 peller 1.32
61     #GETALL AT ONCE
62     options = []
63     Stacks = []
64     for i in range(len(vars)):
65     Stacks.append(StackMaker(config,vars[i],region,SignalRegion))
66     options.append(Stacks[i].options)
67 peller 1.45 print options
68 peller 1.32
69 peller 1.44 Plotter=HistoMaker(mcsamples+datasamples,path,config,options,GroupDict)
70 peller 1.32
71     #print '\nProducing Plot of %s\n'%vars[v]
72     Lhistos = [[] for _ in range(0,len(vars))]
73     Ltyps = [[] for _ in range(0,len(vars))]
74     Ldatas = [[] for _ in range(0,len(vars))]
75     Ldatatyps = [[] for _ in range(0,len(vars))]
76     Ldatanames = [[] for _ in range(0,len(vars))]
77    
78     #Find out Lumi:
79     lumicounter=0.
80     lumi=0.
81 nmohr 1.43 for job in datasamples:
82     lumi+=float(job.lumi)
83     lumicounter+=1.
84 peller 1.32
85     if lumicounter > 0:
86     lumi=lumi/lumicounter
87    
88     Plotter.lumi=lumi
89     mass = Stacks[0].mass
90    
91 nmohr 1.43 for job in mcsamples:
92 peller 1.44 #hTempList, typList = Plotter.get_histos_from_tree(job)
93     hDictList = Plotter.get_histos_from_tree(job)
94 nmohr 1.43 if job.name == mass:
95     print job.name
96 peller 1.44 Overlaylist= deepcopy([hDictList[v].values()[0] for v in range(0,len(vars))])
97 nmohr 1.43 for v in range(0,len(vars)):
98 peller 1.44 Lhistos[v].append(hDictList[v].values()[0])
99     Ltyps[v].append(hDictList[v].keys()[0])
100 nmohr 1.43
101     for job in datasamples:
102 peller 1.44 #hTemp, typ = Plotter.get_histos_from_tree(job)
103     dDictList = Plotter.get_histos_from_tree(job)
104 nmohr 1.43 for v in range(0,len(vars)):
105 peller 1.44 Ldatas[v].append(dDictList[v].values()[0])
106     Ldatatyps[v].append(dDictList[v].keys()[0])
107 nmohr 1.43 Ldatanames[v].append(job.name)
108 peller 1.32
109     for v in range(0,len(vars)):
110    
111     histos = Lhistos[v]
112     typs = Ltyps[v]
113     Stacks[v].histos = Lhistos[v]
114     Stacks[v].typs = Ltyps[v]
115     Stacks[v].datas = Ldatas[v]
116     Stacks[v].datatyps = Ldatatyps[v]
117     Stacks[v].datanames= Ldatanames[v]
118 nmohr 1.40 if SignalRegion:
119     Stacks[v].overlay = Overlaylist[v]
120 peller 1.32 Stacks[v].lumi = lumi
121     Stacks[v].doPlot()
122 nmohr 1.48 Stacks[v].histos = Lhistos[v]
123     Stacks[v].typs = Ltyps[v]
124     Stacks[v].datas = Ldatas[v]
125     Stacks[v].datatyps = Ldatatyps[v]
126     Stacks[v].datanames= Ldatanames[v]
127 bortigno 1.47 Stacks[v].normalize = True
128     Stacks[v].options['pdfName'] = Stacks[v].options['pdfName'].replace('.pdf','_norm.pdf')
129     Stacks[v].doPlot()
130 peller 1.32 print 'i am done!\n'
131     #----------------------------------------------------
132 nmohr 1.40 doPlot()
133 peller 1.5 sys.exit(0)