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
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) # eff.Draw("same p")