Classes | |
class | TauValidationInfo |
Functions | |
def | PlotPerformanceCurves |
Variables | |
HideMuonAndElectronRej = True | |
string | KinematicVar = 'pt' |
int | KinematicVarMax = 50 |
int | KinematicVarMin = 20 |
string | LatexVar = "True p_{T}" |
string | VarUnit = "GeV/c" |
PerformanceCurvePlotter Author: Evan K. Friis, UC Davis (friis@physics.ucdavis.edu) Plot the efficiency for a given fake rate for a series of cuts in a set pt range. With the default cuts (20 < pt < 50), this is designed to reproduce (independently) the TancBenchmark plots produced in RecoTauTag/TauTagTools/test/MVABenchmarks.py Instructions: Add the releases to as shown. You must specify and signal and backround file for each release, and a descriptive label. To choose the chain of discriminators to plot, select the appropriate EDProducer defined in Validation.RecoTau.TauTagValidation_cfi PreFourTanc = TauValidationInfo("Signal.root", "Background.root", "310pre5 TaNC", Validation.RecoTau.RecoTauValidation_cfi.RunTancValidation) PreFourIso = TauValidationInfo("Signal.root", "Background.root", "310pre4 Iso", Validation.RecoTau.RecoTauValidation_cfi.PFTausHighEfficiencyLeadingPionBothProngs) ReleasesToBuildFrom = [] ReleasesToBuildFrom.append(PreFourTanc) ReleasesToBuildFrom.append(PreFourIso) PlotPerformanceCurves(ReleasesToBuildFrom, "output.png")
def PerformanceCurvePlotter::PlotPerformanceCurves | ( | ReleasesToBuildFrom, | |
OutputFile | |||
) |
Definition at line 184 of file PerformanceCurvePlotter.py.
00185 : 00186 # Setup 00187 myCanvas = TCanvas("Validation", "Validation", 800, 800) 00188 # Cut label on the plots 00189 CutLabel = TPaveText(0.6, 0.1, 0.9, 0.27, "brNDC") 00190 CutLabel.AddText("%0.1f%s < %s < %0.1f%s" % (KinematicVarMin, VarUnit, LatexVar, KinematicVarMax, VarUnit)) 00191 CutLabel.SetFillStyle(0) 00192 CutLabel.SetBorderSize(0) 00193 00194 # Build the TGraphs of sigEff versus bkgFakeRate for each release 00195 for aRelease in ReleasesToBuildFrom: 00196 aRelease.LoadHistograms() 00197 aRelease.ComputeEfficiencies() 00198 aRelease.BuildTGraphSummary() 00199 00200 CurrentHistogram = 0 00201 00202 for aRelease in ReleasesToBuildFrom: 00203 if CurrentHistogram == 0: 00204 aRelease.SummaryTGraph.Draw("ALP") 00205 CurrentHistogram = aRelease.SummaryTGraph.GetHistogram() 00206 else: 00207 aRelease.SummaryTGraph.Draw("LP") 00208 00209 00210 CurrentHistogram.SetAxisRange(0, 1) 00211 CurrentHistogram.GetYaxis().SetRangeUser(0.0001,1) 00212 CurrentHistogram.GetXaxis().SetTitle("Efficiency") 00213 CurrentHistogram.GetYaxis().SetTitle("Fake Rate") 00214 CurrentHistogram.SetTitle("Performance Points") 00215 00216 gPad.SetLogy(True) 00217 00218 for aRelease in ReleasesToBuildFrom: 00219 for aPoint in aRelease.DiscriminatorPoints: 00220 aPoint['PerformancePoint'].Draw("P") 00221 00222 TauValidationInfo.SummaryLegend.Draw() 00223 TauValidationInfo.DiscriminatorLegend.Draw() 00224 CutLabel.Draw() 00225 00226 myCanvas.SaveAs(OutputFile)
Definition at line 57 of file PerformanceCurvePlotter.py.
string PerformanceCurvePlotter::KinematicVar = 'pt' |
Definition at line 50 of file PerformanceCurvePlotter.py.
Definition at line 53 of file PerformanceCurvePlotter.py.
Definition at line 52 of file PerformanceCurvePlotter.py.
string PerformanceCurvePlotter::LatexVar = "True p_{T}" |
Definition at line 51 of file PerformanceCurvePlotter.py.
string PerformanceCurvePlotter::VarUnit = "GeV/c" |
Definition at line 54 of file PerformanceCurvePlotter.py.