Exemple #1
0
def getWorkingPoint(var, bkg, sig, dir, varNorm):
    sigHist = inFile.Get(dir + "_" + sig + "/" + var)
    bkgHist = inFile.Get(dir + "_" + bkg + "/" + var)

    sigNormHist = inFile.Get(dir + "_" + sig + "/" + varNorm)
    bkgNormHist = inFile.Get(dir + "_" + bkg + "/" + varNorm)

    rocPlot = makeRoc(sigHist,
                      sigNormHist,
                      bkgHist,
                      bkgNormHist,
                      doErr=False,
                      bkgMode="Rej")

    nbins = sigHist.GetNbinsX()

    thisSig = sigHist.Integral(0, nbins + 1)
    thisSigDen = sigNormHist.Integral(0, nbins + 1)
    if not thisSigDen: thisSigDen = 1
    sigEff = float(thisSig) / float(thisSigDen)

    thisBkg = bkgHist.Integral(0, nbins + 1)
    thisBkgDen = bkgNormHist.Integral(0, nbins + 1)
    if not thisBkgDen: thisBkgDen = 1
    bkgEff = float(thisBkg) / float(thisBkgDen)
    if bkgEff: bkgRej = 1. / bkgEff
    else: bkgRej = 1

    print bkgRej

    return (sigEff, bkgRej)
Exemple #2
0
def makeRocPlot(inFile, name, var, bkg, sig, dir, varNorm=None, debug=False):
    sigHist = inFile.Get(dir + "_" + sig + "/" + var)
    bkgHist = inFile.Get(dir + "_" + bkg + "/" + var)

    if varNorm:
        sigNormHist = inFile.Get(dir + "_" + sig + "/" + varNorm)
        bkgNormHist = inFile.Get(dir + "_" + bkg + "/" + varNorm)
    else:
        sigNormHist = sigHist
        bkgNormHist = bkgHist

    rocPlots = []
    for config in [("Rej", 1, 5e4), ("Eff", 5e-4, 1)]:
        rocPlots.append(
            makeRoc(sigHist,
                    sigNormHist,
                    bkgHist,
                    bkgNormHist,
                    doErr=True,
                    bkgMode=config[0],
                    cleanNoCut=True,
                    debug=debug))

        rocPlots[-1].SetLineWidth(5)
        rocPlots[-1].GetXaxis().SetTitle("B-Jet  Efficiency")
        rocPlots[-1].GetXaxis().SetRangeUser(0.4, 1)
        if config[0] == "Rej": yTitle = "Light Flavor Rejection"
        elif config[0] == "Eff": yTitle = "Light Flavor Efficiency"
        rocPlots[-1].GetYaxis().SetTitle(yTitle)
        rocPlots[-1].GetYaxis().SetRangeUser(config[1], config[2])

    return rocPlots
Exemple #3
0
def getWorkingPoint(name, var, bkg, sig, dir, varNorm=None):
    sigHist = inFile.Get(dir+"_"+sig+"/"+var)
    bkgHist = inFile.Get(dir+"_"+bkg+"/"+var)

    if varNorm:
        sigNormHist = inFile.Get(dir+"_"+sig+"/"+varNorm)
        bkgNormHist = inFile.Get(dir+"_"+bkg+"/"+varNorm)
    else      :
        sigNormHist = sigHist
        bkgNormHist = bkgHist


    rocPlot, sigEffPlot, bkgEffPlot, WPs = makeRoc(sigHist, sigNormHist, bkgHist, bkgNormHist,doErr=False,bkgMode="Eff", returnWPs = True)

    nbins      = sigHist.GetNbinsX()

    thisSig    = sigHist    .Integral(0,nbins+1)
    thisSigDen = sigNormHist.Integral(0,nbins+1)
    if not thisSigDen: thisSigDen = 1
    sigEff = float(thisSig) / float(thisSigDen)

    thisBkg    = bkgHist    .Integral(0,nbins+1)
    thisBkgDen = bkgNormHist.Integral(0,nbins+1)
    if not thisBkgDen: thisBkgDen = 1
    bkgEff =  float(thisBkg) / float(thisBkgDen)
    if bkgEff: bkgRej = 1./bkgEff
    else:      bkgRej = 1

    print name,WPs
def makeRocPlot(name, var, bkg, sig, dir, varNorm=None,debug=False, inFile=None):
    inFile  = ROOT.TFile(inFile,  "READ")
    sigHist = inFile.Get(dir+"_"+sig+"/"+var)
    bkgHist = inFile.Get(dir+"_"+bkg+"/"+var)

    if varNorm:
        sigNormHist = inFile.Get(dir+"_"+sig+"/"+varNorm)
        bkgNormHist = inFile.Get(dir+"_"+bkg+"/"+varNorm)
    else      :
        sigNormHist = sigHist
        bkgNormHist = bkgHist

    rocPlots = []
    for config in [("Rej",1,5e4),("Eff",5e-4,1)]:
        rocPlots.append(makeRoc(sigHist, sigNormHist, bkgHist, bkgNormHist,doErr=False,bkgMode=config[0],cleanNoCut=True,debug=debug))

        can = ROOT.TCanvas(name+"_"+config[0], name+"_"+config[0])
        can.cd().SetLogy(1)
        rocPlots[-1].SetLineWidth(5)
        # rocPlots[-1].SetLineWidth(2)
        rocPlots[-1].GetXaxis().SetTitle("B-Jet  Efficiency")
        rocPlots[-1].GetXaxis().SetRangeUser(0.4,1)
        if config[0] == "Rej":    yTitle ="Light Flavor Rejection"
        elif config[0] == "Eff":  yTitle ="Light Flavor Efficiency"
        rocPlots[-1].GetYaxis().SetTitle(yTitle)
        rocPlots[-1].GetYaxis().SetRangeUser(config[1],config[2])
        rocPlots[-1].Draw("AL")
        # can.SaveAs(o.outDir+"/roc_"+name+"_"+config[0]+"_"+label1+"_"+".pdf")
        # can.SaveAs(o.outDir+"/roc_"+name+"_"+config[0]+"_"+label1+"_"+".png")
    return rocPlots
Exemple #5
0
def makeRocPlot(name, var, bkg, sig, dir, varNorm=None,debug=False):
    sigHist = inFile.Get(dir+"_"+sig+"/"+var)
    bkgHist = inFile.Get(dir+"_"+bkg+"/"+var)

    if varNorm:
        sigNormHist = inFile.Get(dir+"_"+sig+"/"+varNorm)
        bkgNormHist = inFile.Get(dir+"_"+bkg+"/"+varNorm)
    else      :
        sigNormHist = sigHist
        bkgNormHist = bkgHist

    rocPlots = []
    for config in [("Rej",1,5e4),("Eff",5e-4,1)]:
    # for config in [("Eff",5e-4,1)]:
        print (name)
        rocPlot__, sigEffPlot, bkgEffPlot = makeRoc(sigHist, sigNormHist, bkgHist, bkgNormHist,doErr=False,bkgMode=config[0],cleanNoCut=True,debug=debug)
        rocPlots.append(rocPlot__)

        can = ROOT.TCanvas(name+"_"+config[0], name+"_"+config[0])
        can.cd().SetLogy(1)
        rocPlots[-1].SetLineWidth(5)
        rocPlots[-1].GetXaxis().SetTitle("B-Jet  Efficiency")
        rocPlots[-1].GetXaxis().SetRangeUser(0.4,1)
        if config[0] == "Rej":    yTitle ="Light Flavor Rejection"
        elif config[0] == "Eff":  yTitle ="Light Flavor Efficiency"
        rocPlots[-1].GetYaxis().SetTitle(yTitle)
        rocPlots[-1].GetYaxis().SetRangeUser(config[1],config[2])
        rocPlots[-1].Draw("AL")
        # can.SaveAs(o.outDir+"/roc_"+name+"_"+config[0]+".pdf")
        # can.SaveAs(o.outDir+"/roc_"+name+"_"+config[0]+".png")
        if config[0] == "Eff":
            if not os.path.exists(o.outDir+"/PureSinglePlots/"):
                os.makedirs(o.outDir+"/PureSinglePlots/")
            can.SaveAs(o.outDir+"/PureSinglePlots/roc_"+name+"_"+config[0]+".pdf")
            can.SaveAs(o.outDir+"/PureSinglePlots/roc_"+name+"_"+config[0]+".png")
            can.Clear()
            can.SetGrid(1)
            can.cd().SetLogy(1)
            sigEffPlot.SetLineWidth(5)
            sigEffPlot.GetXaxis().SetTitle("discriminator value")
            sigEffPlot.GetXaxis().SetRangeUser(-0.2,1)
            if "deepjet" in name:
                sigEffPlot.GetXaxis().SetRangeUser(0.,1)
            sigEffPlot.GetYaxis().SetTitle("signal Efficiency")
            sigEffPlot.GetYaxis().SetRangeUser(config[1],config[2])
            sigEffPlot.Draw("AL")
            can.SaveAs(o.outDir+"/PureSinglePlots/sigEff_"+name+"_"+config[0]+".pdf")
            can.SaveAs(o.outDir+"/PureSinglePlots/sigEff_"+name+"_"+config[0]+".png")
            can.SetGrid(1)
            can.Clear()
            can.cd().SetLogy(1)
            bkgEffPlot.SetLineWidth(5)
            bkgEffPlot.GetXaxis().SetTitle("discriminator value")
            bkgEffPlot.GetXaxis().SetRangeUser(-0.2,1)
            if "deepjet" in name:
                bkgEffPlot.GetXaxis().SetRangeUser(0.,1)
            bkgEffPlot.GetYaxis().SetTitle("bkg Efficiency")
            bkgEffPlot.GetYaxis().SetRangeUser(config[1],config[2])
            bkgEffPlot.Draw("AL")
            can.SaveAs(o.outDir+"/PureSinglePlots/bkgEff_"+name+"_"+config[0]+".pdf")
            can.SaveAs(o.outDir+"/PureSinglePlots/bkgEff_"+name+"_"+config[0]+".png")
            can.Clear()
            can.cd().SetLogy(1)
            bkgEffPlot.SetLineWidth(5)
            bkgEffPlot.GetXaxis().SetTitle("discriminator value")
            bkgEffPlot.GetXaxis().SetRangeUser(-0.2,1)
            if "deepjet" in name:
                bkgEffPlot.GetXaxis().SetRangeUser(0.,1)
            bkgEffPlot.GetYaxis().SetTitle("Efficiency")
            bkgEffPlot.GetYaxis().SetRangeUser(config[1],config[2])
            bkgEffPlot.Draw("AL")
            sigEffPlot.SetLineColor(ROOT.kRed)
            sigEffPlot.Draw("L SAME")
            can.SaveAs(o.outDir+"/PureSinglePlots/bothEff_"+name+"_"+config[0]+".pdf")
            can.SaveAs(o.outDir+"/PureSinglePlots/bothEff_"+name+"_"+config[0]+".png")
    return rocPlots