gSF.SetPoint(iB, center, sf) gSF.SetPointError(iB, exl, exh, sfErrLow, sfErrHigh) print sf, sfErrLow, sfErrLow / sf rcanvas.legend.add("mc", title = "MC", mcolor = r.kRed, lcolor = r.kRed, lwidth = 2) rcanvas.legend.apply("mc", mcEff) rcanvas.addHistogram(mcEff, drawOpt = 'EP') rcanvas.legend.add("data", title = "Data", lcolor = r.kBlack, lwidth = 2) rcanvas.legend.apply("data", dataEff) rcanvas.addHistogram(dataEff, drawOpt = 'EP') rcanvas.ylimits = (0.0, 1.1) rcanvas.ytitle = 'Photon Efficiency' rcanvas.xtitle = 'E_{T}^{#gamma} (GeV)' plotName = "efficiency_"+str(loc)+"_"+str(pid) rcanvas.printWeb('purity/'+s.Version+'/ScaleFactors', plotName, logy = False) canvas.legend.add(loc+'-'+pid, title = loc+'-'+pid, color = r.kBlack, lwidth = 2) canvas.legend.apply(loc+'-'+pid, gSF) canvas.addHistogram(gSF, drawOpt = 'EP') canvas.ylimits = (0.0, 2.0) canvas.ytitle = 'Photon Scale Factor' canvas.xtitle = 'E_{T}^{#gamma} (GeV)' plotName = "scalefactor_"+str(loc)+"_"+str(pid) canvas.printWeb('purity/'+s.Version+'/ScaleFactors', plotName, logy = False)
reweighted += efficiency.GetBinContent(iX) * nproxy tpDist.SetBinContent(iX, ntp) original /= tpDist.GetSumOfWeights() # should in principle match the nominal pT > 40 GeV efficiency reweighted /= proxyDist.GetSumOfWeights() print 'Original fake rate =', 1. / original - 1. print 'Reweighted fake rate =', 1. / reweighted - 1. proxyDist.Scale(1., 'width') tpDist.Scale(1., 'width') proxyDist.Scale(8. / proxyDist.GetSumOfWeights()) tpDist.Scale(8. / tpDist.GetSumOfWeights()) canvas = SimpleCanvas() canvas.legend.setPosition(0.6, 0.7, 0.9, 0.9) canvas.legend.add('inefficiency', title = '1 - #epsilon_{e}', opt = 'LP', mstyle = 8, color = ROOT.kBlack) canvas.legend.add('tp', title = 'T&P sample', opt = 'LF', color = ROOT.kRed - 7, fstyle = 3003, lwidth = 2) canvas.legend.add('proxy', title = 'W#rightarrowe#nu', opt = 'LF', color = ROOT.kBlue - 7, fstyle = 3003, lwidth = 2) canvas.addHistogram(inefficiency, drawOpt = 'EP') canvas.addHistogram(tpDist) canvas.addHistogram(proxyDist) canvas.applyStyles() canvas.ytitle = '1 - #epsilon (%)' canvas.xtitle = title canvas.printWeb('efake', 'convolution_' + variable, logy = False)
yieldDiff = toyResult.nReal - nominalResult.nReal print "Yield diff is:", yieldDiff toyPlotYield.Fill(yieldDiff) bkgdUncertainty = toyPlot.GetStdDev() bkgdUncYield = toyPlotYield.GetStdDev() tcanvas = SimpleCanvas(lumi = s.sphLumi, name = 'toys') toyPlot.SetTitle('') tcanvas.legend.add('toys', title = 'toys', opt = 'L', lcolor = ROOT.kBlue, lwidth = 2, lstyle = ROOT.kSolid) tcanvas.legend.apply('toys', toyPlot) tcanvas.addHistogram(toyPlot) tcanvas.xtitle = 'Impurity Difference (%)' tcanvas.ytitle = '# of Toys' tcanvas.printWeb(plotDir, 'ssfit_toy_dist', logy = False) tcanvas.Clear() toyPlotYield.SetTitle('') tcanvas.legend.apply('toys', toyPlotYield) tcanvas.addHistogram(toyPlotYield) tcanvas.xtitle = '#Delta(# of True Photons)' tcanvas.ytitle = '# of Toys' tcanvas.printWeb(plotDir, 'ssfit_toyyield_dist', logy = False)
pGraph.SetPointError(iB, exl, exh, purity[1], purity[1]) # if not 'max' in mod: canvas.legend.add(base + mod, title=base + mod, mcolor=r.kBlue + iMod, lcolor=r.kBlue + iMod, lwidth=2) canvas.legend.apply(base + mod, pGraph) canvas.addHistogram(pGraph, drawOpt='EP') outFile.cd() pGraph.Write() canvas.ylimits = (0.0, 15.0) canvas.ytitle = 'Photon Impurity' canvas.xtitle = 'E_{T}^{#gamma} (GeV)' canvas.SetGridy(True) plotName = 'Plot_' + tune + '_impurity_' + str(metCut) + '_' + str( loc) + '_' + str(base) canvas.printWeb('purity/' + s.Version + '/Fitting', plotName, logy=False) outFile.Close() for loc in s.Locations[:1]: for base in bases: for metCut in MetSels: for iMod, mod in enumerate(mods):
lowEdge = float(ptCut.split('t')[2]) highEdge = ptCut.split('to')[-1] if highEdge == 'Inf': highEdge = 500. highEdge = float(highEdge) center = (lowEdge + highEdge) / 2. exl = center - lowEdge exh = highEdge - center purity = purities[loc][base+mod][ptCut][metCut] pGraph.SetPoint(iB, center, purity[0]) pGraph.SetPointError(iB, exl, exh, purity[1], purity[1]) if not 'max' in mod: canvas.legend.add(base+mod, title = base+mod, mcolor = r.kOrange+iMod-1, lcolor = r.kOrange+iMod-1, lwidth = 2) canvas.legend.apply(base+mod, pGraph) canvas.addHistogram(pGraph, drawOpt = 'EP') outFile.cd() pGraph.Write() canvas.ylimits = (0.0, 15.0) canvas.ytitle = 'Photon Impurity' canvas.xtitle = 'E_{T}^{#gamma} (GeV)' canvas.SetGridy(True) plotName = "impurity_"+str(loc)+"_"+str(base) canvas.printWeb('purity/'+s.Version+'/Fitting', era+'_'+plotName, logy = False)
stack.Add(sig) bkgTrue.Scale(1., 'width') bkgTrue.SetLineColor(ROOT.kGreen + 2) bkgTrue.SetLineWidth(2) fakeTrue.Scale(fakeNorm / fakeTrue.GetSumOfWeights(), 'width') fakeTrue.SetLineColor(ROOT.kRed + 2) fakeTrue.SetLineWidth(2) sigTrue.Scale(sigScale, 'width') sigTrue.SetLineColor(ROOT.kBlue + 2) sigTrue.SetLineWidth(2) data.SetMarkerStyle(8) data.SetLineColor(ROOT.kBlack) data.SetLineWidth(1) canvas.title = '#sigma#timesBR = %.2f, N_{fake} = %.0f' % (originalMu * sigScale, fakeNorm) canvas.xtitle = 'm_{T} (GeV)' canvas.ytitle = 'Events / GeV' canvas.addHistogram(stack, drawOpt='HIST') canvas.addHistogram(bkgTrue, drawOpt='HIST') canvas.addHistogram(fakeTrue, drawOpt='HIST') canvas.addHistogram(sigTrue, drawOpt='HIST') canvas.addHistogram(data, drawOpt='EP') canvas.printWeb('monophoton/fakemet', name, logy=False)
tree.Add('/scratch5/yiiyama/hist/triggertree/t2mit/filefi/042/' + allsamples['sph-d4'].directory + '/l1t_*.root') binning = array.array('d', [30. + 5. * x for x in range(14)] + [100. + 10. * x for x in range(10)] + [200. + 20. * x for x in range(5)]) passing = ROOT.TH1D('passing', ';p_{T}^{#gamma} (GeV)', len(binning) - 1, binning) denom = ROOT.TH1D('denom', ';p_{T}^{#gamma} (GeV)', len(binning) - 1, binning) tree.Draw('pt>>denom') tree.Draw('pt>>passing', 'l1dr2 < 0.25') eff = ROOT.TGraphAsymmErrors(passing, denom) canvas = SimpleCanvas(lumi = allsamples['sph-d3'].lumi + allsamples['sph-d4'].lumi) canvas.legend.setPosition(0.7, 0.3, 0.9, 0.5) canvas.legend.add('eff', title = 'L1 seed', opt = 'LP', color = ROOT.kBlack, mstyle = 8) canvas.SetGrid() canvas.legend.apply('eff', eff) canvas.addHistogram(eff, drawOpt = 'EP') canvas.addLine(0., 1., 300., 1.) eff.GetXaxis().SetLimits(0., 300.) canvas.xtitle = 'p_{T}^{#gamma} (GeV)' canvas.ytitle = 'L1 seed eff.' canvas.ylimits = (0., 1.2) canvas.printWeb('trigger', 'l1seed', logy = False)
canvas.legend.add('fit', title='Uniform', lcolor=ROOT.kBlue, lwidth=2, opt='L') canvas.legend.add('halo', title='Halo template', lcolor=ROOT.kGreen, lwidth=1, opt='L') canvas.legend.add('obs', title='Data', mcolor=ROOT.kBlack, mstyle=8, msize=1, lcolor=ROOT.kBlack, lwidth=1, opt='LP') canvas.ytitle = 'Events / (#pi/%d)' % nbins canvas.addHistogram(frame) canvas.printWeb('monophoton/halo', 'fit_' + fitName, logy=False) if not FITPSEUDODATA: # generate 10 toy distributions - does your target distribution look "normal"? for iT in range(10): toyData = model.generate(phiset, nTarg) frame = phi.frame() frame.SetTitle('') toyData.plotOn(frame) canvas.Clear(full=True)
# print sf, sfErrLow, sfErrLow / sf if not 'max' in mod: rcanvas.legend.add("mc"+mod, title = base+mod, mcolor = r.kRed+iMod, lcolor = r.kRed+iMod, lwidth = 2) rcanvas.legend.apply("mc"+mod, mcEff) rcanvas.addHistogram(mcEff, drawOpt = 'EP') # rcanvas.legend.add("data"+mod, title = "Data"+mod, mcolor = r.Blue+iMod, lcolor = r.kBlue+iMod, lwidth = 2) # rcanvas.legend.apply("data"+mod, dataEff) # rcanvas.addHistogram(dataEff, drawOpt = 'EP') canvas.legend.add(loc+'-'+base+mod, title = loc+'-'+base+mod, color = r.kBlack+iMod, lwidth = 2) canvas.legend.apply(loc+'-'+base+mod, gSF) canvas.addHistogram(gSF, drawOpt = 'EP') rcanvas.ylimits = (0.0, 1.3) rcanvas.ytitle = 'Photon Efficiency' rcanvas.xtitle = 'E_{T}^{#gamma} (GeV)' rcanvas.SetGridy(True) plotName = "efficiency_"+str(loc)+"_"+str(base) rcanvas.printWeb('purity/'+s.Version+'/ScaleFactors', era+'_'+plotName, logy = False) # canvas.ylimits = (0.0, 2.0) canvas.ytitle = 'Photon Scale Factor' canvas.xtitle = 'E_{T}^{#gamma} (GeV)' plotName = "scalefactor_"+str(loc)+"_"+str(base) # canvas.printWeb('purity/'+s.Version+'/ScaleFactors', plotName, logy = False)
if y > 5.: y = 5. if y < -5.: y = -5. graph.SetPoint(ip, x, y) graph.SetTitle('') outputFile.cd() graph.Write('%s_%s' % (sigs, faken)) graphs.append(graph) canvas.legend.apply('n%s' % faken, graph) canvas.addHistogram(graph, drawOpt='P') canvas.addLine(-5., 0., 5., 0., style=ROOT.kDashed) canvas.addLine(0., -5., 0., 5., style=ROOT.kDashed) canvas.xlimits = (-5., 5.) canvas.ylimits = (-5., 5.) canvas.title = '#sigma#timesBR = %.2f' % mu canvas.xtitle = 'Fake E_{T}^{miss}: (N_{fit} - N_{true})/#sigma_{fit}' canvas.ytitle = 'Signal: (N_{fit} - N_{true})/#sigma_{fit}' canvas.printWeb('monophoton/fakemet', sourceName + '_' + sigs, logy=False) canvas.Clear() outputFile.Close()
phi.setBins(nbins) frame = phi.frame() frame.SetTitle('') targData.plotOn(frame) model.plotOn(frame, ROOT.RooFit.LineColor(ROOT.kGreen)) model.plotOn(frame, ROOT.RooFit.Components('uniform'), ROOT.RooFit.LineColor(ROOT.kBlue)) canvas.Clear(full = True) canvas.legend.setPosition(0.7, 0.7, 0.9, 0.9) canvas.legend.add('fit', title = 'Uniform', lcolor = ROOT.kBlue, lwidth = 2, opt = 'L') canvas.legend.add('halo', title = 'Halo template', lcolor = ROOT.kGreen, lwidth = 1, opt = 'L') canvas.legend.add('obs', title = 'Data', mcolor = ROOT.kBlack, mstyle = 8, msize = 1, lcolor = ROOT.kBlack, lwidth = 1, opt = 'LP') canvas.ytitle = 'Events / (#pi/%d)' % nbins canvas.addHistogram(frame) canvas.printWeb('monophoton/halo', plotName, logy = False) # generate 10 toy distributions - does your target distribution look "normal"? for iT in range(10): toyData = model.generate(phiset, nTarg) frame = phi.frame() frame.SetTitle('') toyData.plotOn(frame) canvas.Clear(full = True) canvas.ytitle = 'Events / (#pi/25)'
mcolor=r.kBlack, lcolor=r.kBlack, lwidth=2) rcanvas.legend.apply("data", gDataEff) rcanvas.addHistogram(gDataEff, drawOpt='EP') canvas.legend.add(loc + '-' + base, title=loc + ' ' + base, color=r.kBlack, lwidth=2) canvas.legend.apply(loc + '-' + base, gSF) canvas.addHistogram(gSF, drawOpt='EP') rcanvas.ylimits = (0.75, 1.0) # rcanvas.rlimits = (0.9, 1.1) rcanvas.ytitle = 'Pixel Veto Efficiency' rcanvas.xtitle = 'E_{T}^{#gamma} (GeV)' rcanvas.SetGridy(True) suffix = str(tune) + '_' + str(metCut) + '_' + str( loc) + '_' + str(base) plotName = 'efficiency_' + suffix rcanvas.printWeb('purity/' + s.Version + '/ScaleFactors', plotName, logy=False) canvas.ylimits = (0.95, 1.05) canvas.ytitle = 'Pixel Veto Scale Factor' canvas.xtitle = 'E_{T}^{#gamma} (GeV)' canvas.SetGridy(True)
if x > 2.: x = 2. if y > 2.: y = 2. graph.SetPoint(ip, x, y) graph.SetTitle('') outputFile.cd() graph.Write('%s_%s' % (sigs, faken)) graphs.append(graph) canvas.legend.apply('n%s' % faken, graph) canvas.addHistogram(graph, drawOpt='P') canvas.addLine(0., 1., 2., 1., style=ROOT.kDashed) canvas.addLine(1., 0., 1., 2., style=ROOT.kDashed) canvas.xlimits = (0., 2.) canvas.ylimits = (0., 2.) canvas.title = '#sigma#timesBR = %.2f' % mu canvas.xtitle = 'Fake E_{T}^{miss} extracted / injected' canvas.ytitle = 'Signal extracted / injected' canvas.printWeb('monophoton/fakemet', sigs, logy=False) canvas.Clear() outputFile.Close()