ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbb/python/manualStack.py
(Generate patch)

Comparing UserCode/VHbb/python/manualStack.py (file contents):
Revision 1.1 by bortigno, Fri Apr 26 16:40:22 2013 UTC vs.
Revision 1.3 by bortigno, Mon Apr 29 18:10:46 2013 UTC

# Line 17 | Line 17 | parser.add_option("-M", "--figure_of_mer
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 + parser.add_option("-S", "--subtructed", dest="sub", default="False",
21 +                      help="subtruction plot")
22 + parser.add_option("-L", "--rescale", dest="rescale", default="False",
23 +                      help="rescale by 1/max_weight")
24 +
25   (opts, args) = parser.parse_args(argv)
26   if opts.config =="":
27          opts.config = "config"
# Line 35 | Line 40 | def get_s_over_b(fName):
40      histos = get_th1(fName)
41      for histo in histos:
42          if 'data' in histo.GetName(): continue
43 <        for i in range(9,11):
43 >        for i in range(7,9):
44              if 'VH' in histo.GetName():
45                  s+=histo.GetBinContent(i)
46              else:
47                  b+=histo.GetBinContent(i)
48      return s/b
49  
50 + def get_s_over_sb(fName):
51 +    #using bin 9, 10, 11
52 +    s=0
53 +    b=0
54 +    histos = get_th1(fName)
55 +    for histo in histos:
56 +        if 'data' in histo.GetName(): continue
57 +        for i in range(7,9):
58 +            if 'VH' in histo.GetName():
59 +                s+=histo.GetBinContent(i)
60 +            else:
61 +                b+=histo.GetBinContent(i)
62 +    return s/(s+b)
63 +
64 +
65   def get_th1(fName):
66      infile = ROOT.TFile.Open(fName,'read')
67      th1 = []
# Line 57 | Line 77 | def plot():
77  
78      stack = StackMaker(config,var,region,signalRegion)
79  
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
80  
81 +    fileList = []
82 +
83 +    #MedPt
84 +    fileList += [ '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit_v0.1/MJJ_Zll_ZmmMedPt_PostFit_s.root',
85 +                 '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit_v0.1/MJJ_Zll_ZeeMedPt_PostFit_s.root',
86 +                 '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit_v0.1/MJJ_Znn_MedPt_ZnunuMedPt_8TeV_PostFit_s.root',
87 +                 '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit_v0.1/MJJ_Wln_ch2_Wmunu2_PostFit_s.root']
88 +    #LowPt    
89 +    fileList += [ '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit_v0.1/MJJ_Znn_LowPt_ZnunuLowPt_8TeV_PostFit_s.root',
90 +                  '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit_v0.1/MJJ_Zll_ZmmLowPt_PostFit_s.root',
91 +                  '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit_v0.1/MJJ_Zll_ZeeLowPt_PostFit_s.root',
92 +                  '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit_v0.1/MJJ_Wln_ch1_Wenu_PostFit_s.root',
93 +                  '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit_v0.1/MJJ_Wln_ch2_Wmunu_PostFit_s.root']
94 +    #highPt    
95 +    fileList += [ '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit_v0.1/MJJ_Wln_ch1_WenuHighPt_PostFit_s.root',
96 +                  '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit_v0.1/MJJ_Zll_ZeeHighPt_PostFit_s.root',
97 +                  '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit_v0.1/MJJ_Znn_HighPt_ZnunuHighPt_8TeV_PostFit_s.root',
98 +                  '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit_v0.1/MJJ_Wln_ch2_WmunuHighPt_PostFit_s.root',
99 +                  '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit_v0.1/MJJ_Zll_ZmmHighPt_PostFit_s.root',
100 +                  '/shome/bortigno/VHbbAnalysis/postPreApp//LHCP_PostFit_v0.1/MJJ_Wtn_Wtn_PostFit_s.root']
101 +        
102 +    # 7tev
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 +
107      histosL = []
108 +
109 +    max_sb = 0
110 +    max_ssb = 0
111 +    for file in fileList:
112 +        if max_sb < get_s_over_b(file):
113 +            max_sb = get_s_over_b(file)
114 +        if max_ssb < get_s_over_sb(file):
115 +            max_ssb = get_s_over_sb(file)
116 +                        
117 +    print max_ssb
118 +    print max_sb
119 +
120      for file in fileList:
121          print file
122          print get_s_over_b(file)
123 +        if eval(opts.rescale) == False:
124 +                max_sb = 1.
125 +                max_ssb = 1.
126          for th1 in get_th1(file):
127 <            if opts.fom == 's/b':
128 <                th1.Scale(10*get_s_over_b(file))
127 >            if 's/b' in opts.fom:
128 >                th1.Scale(get_s_over_b(file)/max_sb)
129 >            elif 's/s+b' in opts.fom:
130 >                th1.Scale(get_s_over_sb(file)/max_ssb)
131 >            if 'VV' in th1.GetName():
132 >                    th1.SetName('VV')
133              histosL.append(th1)
134  
135      print 'histoL'
# Line 137 | Line 157 | def plot():
157      #if signalRegion:
158      #    stack.overlay = ['VH','VVHF','VVLF']
159   #    stack.options['pdfName'] = stack.options['pdfName'].replace('.pdf','_preFit.pdf')
160 <    stack.options['pdfName'] = stack.options['pdfName'].replace('.pdf','_combined78tev_postFit_s_over_b.C')
160 >
161 >    appendix = ''
162 >    if(eval(opts.rescale) == True):
163 >            appendix = '_rescaled_'
164 >    
165 >    if 's/s+b' in opts.fom:
166 >            stack.options['pdfName'] = stack.options['pdfName'].replace('.pdf','_combined78tev_postFit_s_over_sb'+appendix+'.pdf')
167 >    elif 's/b' in opts.fom:
168 >            stack.options['pdfName'] = stack.options['pdfName'].replace('.pdf','_combined78tev_postFit_s_over_b'+appendix+'.pdf')
169 >    else:
170 >            stack.options['pdfName'] = stack.options['pdfName'].replace('.pdf','_unweighted.pdf')            
171 >    
172   #    stack.options['pdfName'] = stack.options['pdfName'].replace('.pdf','_highPt_7tev.pdf')
173 < #    stack.options['pdfName'] = stack.options['pdfName'].replace('.pdf','_combined_postFit_s_over_b_Hpt_weight_1.pdf')
173 > #    stack.options['pdfName'] = stack.options['pdfName'].replace('.pdf','_combined_postFit_s_over_b_Hpt_weight_1.pdf'
174      stack.lumi = 19040
175 <    stack.doPlot()
175 >
176      
177 +    mjj_sub = eval(opts.sub)
178 +
179 +    if mjj_sub == False:
180 +            stack.doPlot()
181 +    elif mjj_sub == True:
182 +            stack.options['pdfName'] = stack.options['pdfName'].replace('.pdf','_subtructed.pdf')
183 +            stack.doSubPlot(['VH','VV'])
184      print 'i am done!\n'
185  
186  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines