예제 #1
0
파일: calcSF.py 프로젝트: dabercro/MonoX
                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)
예제 #2
0
    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)
예제 #3
0
        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)
    
예제 #4
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.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):
예제 #5
0
                        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)
예제 #6
0
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)
예제 #7
0
파일: eff.py 프로젝트: DylanHsu/MonoX
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)
예제 #8
0
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)
예제 #9
0
                    # 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)
예제 #10
0
            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()
예제 #11
0
파일: phifit.py 프로젝트: dabercro/MonoX
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)'
예제 #12
0
                               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)
예제 #13
0
            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()