コード例 #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
    h1a.linewidth = 2
    h1a.Draw("hist")
    gPad.Print(options.outdir + hname + ".png")

    # Make efficiency vs gen pT
    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)