ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbb/python/manualStack.py
Revision: 1.2
Committed: Mon Apr 29 12:37:31 2013 UTC (12 years ago) by bortigno
Content type: text/x-python
Branch: MAIN
Changes since 1.1: +25 -5 lines
Log Message:
@ADD subtructed plot. Preliminary

File Contents

# User Rev Content
1 bortigno 1.1 #!/usr/bin/env python
2     import pickle
3     import ROOT
4     from array import array
5     import sys, os
6     from optparse import OptionParser
7     from copy import copy,deepcopy
8     from math import sqrt
9     ROOT.gROOT.SetBatch(True)
10    
11     #CONFIGURE
12     argv = sys.argv
13     parser = OptionParser()
14     parser.add_option("-R", "--region", dest="region", default="",
15     help="region to plot")
16     parser.add_option("-M", "--figure_of_merit", dest="fom", default="",
17     help="figure of merit to be used to weight the plots. Possibilities: s/b, s/sqrt(b)")
18     parser.add_option("-C", "--config", dest="config", default=[], action="append",
19     help="configuration file")
20     (opts, args) = parser.parse_args(argv)
21     if opts.config =="":
22     opts.config = "config"
23    
24     from myutils import BetterConfigParser, printc, ParseInfo, mvainfo, StackMaker, HistoMaker
25    
26     print opts.config
27     opts.config.append('8TeVconfig/vhbbPlotDef.ini')
28     config = BetterConfigParser()
29     config.read(opts.config)
30    
31     def get_s_over_b(fName):
32     #using bin 9, 10, 11
33     s=0
34     b=0
35     histos = get_th1(fName)
36     for histo in histos:
37     if 'data' in histo.GetName(): continue
38     for i in range(9,11):
39     if 'VH' in histo.GetName():
40     s+=histo.GetBinContent(i)
41     else:
42     b+=histo.GetBinContent(i)
43     return s/b
44    
45 bortigno 1.2 def get_s_over_sb(fName):
46     #using bin 9, 10, 11
47     s=0
48     b=0
49     histos = get_th1(fName)
50     for histo in histos:
51     if 'data' in histo.GetName(): continue
52     for i in range(9,11):
53     if 'VH' in histo.GetName():
54     s+=histo.GetBinContent(i)
55     else:
56     b+=histo.GetBinContent(i)
57     return s/(s+b)
58    
59    
60 bortigno 1.1 def get_th1(fName):
61     infile = ROOT.TFile.Open(fName,'read')
62     th1 = []
63     for key in ROOT.gDirectory.GetListOfKeys():
64     infile.cd()
65     th1.append(key.ReadObj())
66     return th1
67    
68     def plot():
69     signalRegion = True
70     region = 'plot'
71     var = 'Hmass'
72    
73     stack = StackMaker(config,var,region,signalRegion)
74    
75     # fileList = [
76     # '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Wln_ch1_Wenu3_PreFit.root',
77     # '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZeeHighPt_PreFit.root',
78     # '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Znn_HighPt_ZnunuHighPt_8TeV_PreFit.root',
79     # '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Wln_ch2_Wmunu3_PreFit.root',
80     # '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZmmHighPt_PreFit.root']
81    
82    
83     fileList = [
84     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZmmMedPt_PostFit_s.root',
85     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZeeMedPt_PostFit_s.root',
86     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Znn_MedPt_ZnunuMedPt_8TeV_PostFit_s.root',
87     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Wln_ch2_Wmunu2_PostFit_s.root',
88     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Znn_LowPt_ZnunuLowPt_8TeV_PostFit_s.root',
89     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZmmLowPt_PostFit_s.root',
90     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZeeLowPt_PostFit_s.root',
91     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Wln_ch1_Wenu_PostFit_s.root',
92     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Wln_ch2_Wmunu_PostFit_s.root',
93     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Wln_ch1_WenuHighPt_PostFit_s.root',
94     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZeeHighPt_PostFit_s.root',
95     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Znn_HighPt_ZnunuHighPt_8TeV_PostFit_s.root',
96     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Wln_ch2_WmunuHighPt_PostFit_s.root',
97     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZmmHighPt_PostFit_s.root']
98    
99    
100     # #tau
101     # /shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Wtn_Wtn_PostFit_s.root
102    
103    
104     # #Med
105     # /shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZmmMedPt_PostFit_s.root
106     # /shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZeeMedPt_PostFit_s.root
107     # /shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Znn_MedPt_ZnunuMedPt_8TeV_PostFit_s.root
108     # /shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Wln_ch2_Wmunu2_PostFit_s.root
109    
110     # #Low
111    
112     # /shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Znn_LowPt_ZnunuLowPt_8TeV_PostFit_s.root
113     # /shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZmmLowPt_PostFit_s.root
114     # /shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZeeLowPt_PostFit_s.root
115     # /shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Wln_ch1_Wenu_PostFit_s.root
116     # /shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Wln_ch2_Wmunu_PostFit_s.root
117    
118     fileList += ['ZeeLowPt_7TeV.root','ZmmLowPt_7TeV.root','WmnLowPt_7TeV.root','ZnnLowPt_7TeV.root']
119     fileList += ['ZeeHighPt_7TeV.root','ZmmHighPt_7TeV.root','WmnHighPt_7TeV.root','ZnnHighPt_7TeV.root']
120    
121     histosL = []
122     for file in fileList:
123     print file
124     print get_s_over_b(file)
125     for th1 in get_th1(file):
126     if opts.fom == 's/b':
127     th1.Scale(10*get_s_over_b(file))
128 bortigno 1.2 if opts.fom == 's/s+b':
129     th1.Scale(10*get_s_over_sb(file))
130    
131 bortigno 1.1 histosL.append(th1)
132    
133     print 'histoL'
134     print histosL
135     typs = []
136     typsL = []
137     datas = []
138     datasL = []
139    
140     #append the name just once
141     for histo in histosL:
142 bortigno 1.2 typsL.append(histo.GetName())
143     if 'data' in histo.GetName():
144 bortigno 1.1 datasL.append(histo)
145    
146     #datasL.append(datas)
147     #typsL.append(typs)
148     print typsL
149    
150     stack.histos = histosL
151     stack.typs = typsL
152     stack.datas = datasL
153     # stack.datatyps = Ldatatyps[v]
154     stack.datanames='data_obs'
155     #if signalRegion:
156     # stack.overlay = ['VH','VVHF','VVLF']
157     # stack.options['pdfName'] = stack.options['pdfName'].replace('.pdf','_preFit.pdf')
158 bortigno 1.2 stack.options['pdfName'] = stack.options['pdfName'].replace('.pdf','_combined78tev_postFit_s_over_sb.pdf')
159 bortigno 1.1 # stack.options['pdfName'] = stack.options['pdfName'].replace('.pdf','_highPt_7tev.pdf')
160 bortigno 1.2 # stack.options['pdfName'] = stack.options['pdfName'].replace('.pdf','_combined_postFit_s_over_b_Hpt_weight_1.pdf'
161 bortigno 1.1 stack.lumi = 19040
162     stack.doPlot()
163 bortigno 1.2
164     # stack.options['pdfName'] = stack.options['pdfName'].replace('.pdf','_subtructed.pdf')
165     # stack.doSubPlot(['VH','VVHF','VVLF'])
166 bortigno 1.1 print 'i am done!\n'
167    
168    
169     plot()
170     sys.exit(0)
171    
172    
173    
174    
175