Exemple #1
0
def make_efficiency_plots_pls(names, outname, colors):
    if len(names) < 2:
        raise ValueError("I need 2 or more histograms!")

    if len(names) != len(colors):
        raise ValueError("I need a color for each histogram!")

    # First
    n = len(names)
    i = 1
    hname = names[0]
    denom = histograms[hname]
    hname = names[i]
    numer = histograms[hname]
    hname = outname
    eff = Efficiency(numer, denom, name=hname)
    eff.SetStatisticOption(0)  # kFCP
    eff.SetConfidenceLevel(0.682689492137)  # one sigma
    eff.linecolor = colors[i]
    eff.linewidth = 2
    eff.markercolor = colors[i]
    eff.markerstyle = 1
    #
    frame = eff.GetCopyTotalHisto().Clone(hname + "_frame")
    frame.Reset()
    frame.SetMinimum(0)
    frame.SetMaximum(1.2)
    frame.GetYaxis().SetTitle("#varepsilon")
    frame.SetStats(0)
    frame.Draw()
    tline = TLine()
    tline.SetLineColor(1)
    xmin, xmax = frame.GetXaxis().GetXmin(), frame.GetXaxis().GetXmax()
    tline.DrawLine(xmin, 1.0, xmax, 1.0)
    #
    eff.Draw("same p")
    keepalive(gPad.func(), eff)
    gPad.Print(options.outdir + hname + ".png")

    # Second and on
    for i in xrange(2, n):
        hname = names[0]
        denom = histograms[hname]
        hname = names[i]
        numer = histograms[hname]
        hname = outname
        eff = Efficiency(numer, denom, name=hname)
        eff.SetStatisticOption(0)  # kFCP
        eff.SetConfidenceLevel(0.682689492137)  # one sigma
        eff.linecolor = colors[i]
        eff.linewidth = 2
        eff.markercolor = colors[i]
        eff.markerstyle = 1
        eff.Draw("same p")
        keepalive(gPad.func(), eff)
        gPad.Print(options.outdir + hname + ".png")
    return
Exemple #2
0
                                                      linewidth=2,
                                                      markerstyle=20,
                                                      markercolor='green')

frame = Hist(*binning)

frame.SetMaximum(1)
frame.SetMinimum(0)
frame.axis().SetTitle("Number of vertices")
frame.axis(2).SetTitle("Efficiency (w.r.t. reco. p_{T}>40 GeV)")

canvas.SetLogy(False)
canvas.SetLeftMargin(0.2)

frame.Draw()
l1_efficiency.Draw('pe same')
uct_efficiency.Draw('pe same')
uct_iso_efficiency.Draw('pe same')

legend = Legend(3, topmargin=0.25, leftmargin=0.25)
legend.AddEntry(l1_efficiency, 'lp', 'Current Tau44')
legend.AddEntry(uct_efficiency, 'lp',
                'Upgrade RlxTau25 Rel. Rate %0.2f' % (9488. / 9355))
legend.AddEntry(uct_iso_efficiency, 'lp',
                'Upgrade IsoTau25 Rel. Rate %0.2f' % (6224. / 9355))
legend.SetBorderSize(0)
legend.SetTextSize(0.03)

legend.Draw()

canvas.SaveAs("eff_vs_pu.png")
 eff.markercolor = 'gray'
 eff.markerstyle = 1
 #
 frame = eff.GetCopyTotalHisto().Clone(hname + "_frame")
 frame.Reset()
 frame.SetMinimum(0)
 frame.SetMaximum(1.2)
 frame.GetYaxis().SetTitle("#varepsilon")
 frame.SetStats(0)
 frame.Draw()
 tline = TLine()
 tline.SetLineColor(1)
 xmin, xmax = frame.GetXaxis().GetXmin(), frame.GetXaxis().GetXmax()
 tline.DrawLine(xmin, 1.0, xmax, 1.0)
 #
 eff.Draw("same p")
 gPad.Print(options.outdir + hname + ".png")
 #
 k = "denom"
 hname = "eff_vs_genpt_l1qual_l1pt20_%s" % k
 denom = histograms[hname]
 k = "numer"
 hname = "eff_vs_genpt_l1qual_l1pt20_%s" % k
 numer = histograms[hname]
 hname = "eff_vs_genpt_l1qual_l1pt20"
 eff0 = Efficiency(numer, denom, name=hname)
 eff0.SetStatisticOption(0)  # kFCP
 eff0.SetConfidenceLevel(0.682689492137)  # one sigma
 eff0.linecolor = 'black'
 eff0.linewidth = 2
 eff0.markercolor = 'black'