コード例 #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
コード例 #2
0
 k = "denom"
 hname = "eff_vs_genpt_l1pt20_%s" % k
 denom = histograms[hname]
 k = "numer"
 hname = "eff_vs_genpt_l1pt20_%s" % k
 numer = histograms[hname]
 hname = "eff_vs_genpt_l1pt20"
 eff = Efficiency(numer, denom, name=hname)
 eff.SetStatisticOption(0)  # kFCP
 eff.SetConfidenceLevel(0.682689492137)  # one sigma
 eff.linecolor = 'gray'
 eff.linewidth = 2
 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"