ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbb/python/tree_stack.py
Revision: 1.44
Committed: Thu Feb 7 12:36:20 2013 UTC (12 years, 3 months ago) by peller
Content type: text/x-python
Branch: MAIN
Changes since 1.43: +12 -10 lines
Log Message:
made treestack work after changes made in DC writter

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 peller 1.10 parser.add_option("-R", "--reg", dest="region", default="",
15     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    
68 peller 1.44 Plotter=HistoMaker(mcsamples+datasamples,path,config,options,GroupDict)
69 peller 1.32
70     #print '\nProducing Plot of %s\n'%vars[v]
71     Lhistos = [[] for _ in range(0,len(vars))]
72     Ltyps = [[] for _ in range(0,len(vars))]
73     Ldatas = [[] for _ in range(0,len(vars))]
74     Ldatatyps = [[] for _ in range(0,len(vars))]
75     Ldatanames = [[] for _ in range(0,len(vars))]
76    
77     #Find out Lumi:
78     lumicounter=0.
79     lumi=0.
80 nmohr 1.43 for job in datasamples:
81     lumi+=float(job.lumi)
82     lumicounter+=1.
83 peller 1.32
84     if lumicounter > 0:
85     lumi=lumi/lumicounter
86    
87     Plotter.lumi=lumi
88     mass = Stacks[0].mass
89    
90 nmohr 1.43 for job in mcsamples:
91 peller 1.44 #hTempList, typList = Plotter.get_histos_from_tree(job)
92     hDictList = Plotter.get_histos_from_tree(job)
93 nmohr 1.43 if job.name == mass:
94     print job.name
95 peller 1.44 Overlaylist= deepcopy([hDictList[v].values()[0] for v in range(0,len(vars))])
96 nmohr 1.43 for v in range(0,len(vars)):
97 peller 1.44 Lhistos[v].append(hDictList[v].values()[0])
98     Ltyps[v].append(hDictList[v].keys()[0])
99 nmohr 1.43
100     for job in datasamples:
101 peller 1.44 #hTemp, typ = Plotter.get_histos_from_tree(job)
102     dDictList = Plotter.get_histos_from_tree(job)
103 nmohr 1.43 for v in range(0,len(vars)):
104 peller 1.44 Ldatas[v].append(dDictList[v].values()[0])
105     Ldatatyps[v].append(dDictList[v].keys()[0])
106 nmohr 1.43 Ldatanames[v].append(job.name)
107 peller 1.32
108     for v in range(0,len(vars)):
109    
110     histos = Lhistos[v]
111     typs = Ltyps[v]
112     Stacks[v].histos = Lhistos[v]
113     Stacks[v].typs = Ltyps[v]
114     Stacks[v].datas = Ldatas[v]
115     Stacks[v].datatyps = Ldatatyps[v]
116     Stacks[v].datanames= Ldatanames[v]
117 nmohr 1.40 if SignalRegion:
118     Stacks[v].overlay = Overlaylist[v]
119 peller 1.32 Stacks[v].lumi = lumi
120     Stacks[v].doPlot()
121     print 'i am done!\n'
122     #----------------------------------------------------
123 nmohr 1.40 doPlot()
124 peller 1.5 sys.exit(0)