ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbb/python/manualStack.py
Revision: 1.1
Committed: Fri Apr 26 16:40:22 2013 UTC (12 years ago) by bortigno
Content type: text/x-python
Branch: MAIN
Log Message:
@ADD script to create combined mjj 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     def get_th1(fName):
46     infile = ROOT.TFile.Open(fName,'read')
47     th1 = []
48     for key in ROOT.gDirectory.GetListOfKeys():
49     infile.cd()
50     th1.append(key.ReadObj())
51     return th1
52    
53     def plot():
54     signalRegion = True
55     region = 'plot'
56     var = 'Hmass'
57    
58     stack = StackMaker(config,var,region,signalRegion)
59    
60     # fileList = [
61     # '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Wln_ch1_Wenu3_PreFit.root',
62     # '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZeeHighPt_PreFit.root',
63     # '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Znn_HighPt_ZnunuHighPt_8TeV_PreFit.root',
64     # '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Wln_ch2_Wmunu3_PreFit.root',
65     # '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZmmHighPt_PreFit.root']
66    
67    
68     fileList = [
69     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZmmMedPt_PostFit_s.root',
70     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZeeMedPt_PostFit_s.root',
71     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Znn_MedPt_ZnunuMedPt_8TeV_PostFit_s.root',
72     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Wln_ch2_Wmunu2_PostFit_s.root',
73     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Znn_LowPt_ZnunuLowPt_8TeV_PostFit_s.root',
74     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZmmLowPt_PostFit_s.root',
75     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZeeLowPt_PostFit_s.root',
76     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Wln_ch1_Wenu_PostFit_s.root',
77     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Wln_ch2_Wmunu_PostFit_s.root',
78     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Wln_ch1_WenuHighPt_PostFit_s.root',
79     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZeeHighPt_PostFit_s.root',
80     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Znn_HighPt_ZnunuHighPt_8TeV_PostFit_s.root',
81     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Wln_ch2_WmunuHighPt_PostFit_s.root',
82     '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZmmHighPt_PostFit_s.root']
83    
84    
85     # #tau
86     # /shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Wtn_Wtn_PostFit_s.root
87    
88    
89     # #Med
90     # /shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZmmMedPt_PostFit_s.root
91     # /shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZeeMedPt_PostFit_s.root
92     # /shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Znn_MedPt_ZnunuMedPt_8TeV_PostFit_s.root
93     # /shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Wln_ch2_Wmunu2_PostFit_s.root
94    
95     # #Low
96    
97     # /shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Znn_LowPt_ZnunuLowPt_8TeV_PostFit_s.root
98     # /shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZmmLowPt_PostFit_s.root
99     # /shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Zll_ZeeLowPt_PostFit_s.root
100     # /shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Wln_ch1_Wenu_PostFit_s.root
101     # /shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit/MJJ_Wln_ch2_Wmunu_PostFit_s.root
102    
103     fileList += ['ZeeLowPt_7TeV.root','ZmmLowPt_7TeV.root','WmnLowPt_7TeV.root','ZnnLowPt_7TeV.root']
104     fileList += ['ZeeHighPt_7TeV.root','ZmmHighPt_7TeV.root','WmnHighPt_7TeV.root','ZnnHighPt_7TeV.root']
105    
106     histosL = []
107     for file in fileList:
108     print file
109     print get_s_over_b(file)
110     for th1 in get_th1(file):
111     if opts.fom == 's/b':
112     th1.Scale(10*get_s_over_b(file))
113     histosL.append(th1)
114    
115     print 'histoL'
116     print histosL
117     typs = []
118     typsL = []
119     datas = []
120     datasL = []
121    
122     #append the name just once
123     for histo in histosL:
124     typsL.append(histo.GetName())
125     if 'data' in histo.GetName():
126     datasL.append(histo)
127    
128     #datasL.append(datas)
129     #typsL.append(typs)
130     print typsL
131    
132     stack.histos = histosL
133     stack.typs = typsL
134     stack.datas = datasL
135     # stack.datatyps = Ldatatyps[v]
136     stack.datanames='data_obs'
137     #if signalRegion:
138     # stack.overlay = ['VH','VVHF','VVLF']
139     # stack.options['pdfName'] = stack.options['pdfName'].replace('.pdf','_preFit.pdf')
140     stack.options['pdfName'] = stack.options['pdfName'].replace('.pdf','_combined78tev_postFit_s_over_b.C')
141     # stack.options['pdfName'] = stack.options['pdfName'].replace('.pdf','_highPt_7tev.pdf')
142     # stack.options['pdfName'] = stack.options['pdfName'].replace('.pdf','_combined_postFit_s_over_b_Hpt_weight_1.pdf')
143     stack.lumi = 19040
144     stack.doPlot()
145    
146     print 'i am done!\n'
147    
148    
149     plot()
150     sys.exit(0)
151    
152    
153    
154    
155