def METHOD_NAME(self):
    if not self.getHistograms(): 
        print("WARNING: one or more of the histograms doesn't exist; not plotting")
        return 
    ROOT.gStyle.SetOptStat(0)
    # Name of canvas and output file
    canvasName = f"c_{self.upName}_{self.systematic}_{self.variable}"
    c = ROOT.TCanvas(canvasName, canvasName, 600, 400)
    if self.variable != "cuts":
        self.nominalHistogram.SetTitle(f"Impact on {self.sample} in {self.region} (binned: {self.variable}) of {self.systematic}")
    else:
        self.nominalHistogram.SetTitle(f"Impact on {self.sample} in {self.region} of {self.systematic}")
    self.nominalHistogram.SetMarkerColor(ROOT.kBlack)
    self.nominalHistogram.SetMarkerStyle(20)
    self.nominalHistogram.SetLineWidth(2)
    self.nominalHistogram.Draw("e")
    self.upHistogram.SetLineColor(ROOT.kCyan-3)
    self.upHistogram.SetLineStyle(ROOT.kDashed)
    self.upHistogram.SetMarkerColor(ROOT.kCyan-3)
    self.upHistogram.SetMarkerStyle(25)
    self.upHistogram.SetLineWidth(2)
    self.upHistogram.Draw("esame")
    self.downHistogram.SetLineColor(ROOT.kMagenta-3)
    self.downHistogram.SetLineStyle(ROOT.kDotted)
    self.downHistogram.SetMarkerColor(ROOT.kMagenta-3)
    self.downHistogram.SetMarkerStyle(26)
    self.downHistogram.SetLineWidth(2)
    self.downHistogram.Draw("esame")
    upRange = self.nominalHistogram.GetBinContent(self.nominalHistogram.GetMaximumBin()) * 1.5 
    downRange = self.nominalHistogram.GetBinContent(self.nominalHistogram.GetMinimumBin()) / 2.0
    if downRange == 0.0: downRange = -0.5
    print(f"Y axis range: {downRange} - {upRange}")
    self.nominalHistogram.GetYaxis().SetRangeUser(downRange, upRange)
    legend = ROOT.TLegend(0.7, 0.75, 0.9, 0.9, "")
    legend.SetFillStyle(0)
    legend.SetFillColor(0)
    legend.SetBorderSize(0)
    legend.AddEntry(self.nominalHistogram, "nominal", "lp")
    legend.AddEntry(self.upHistogram, f"{self.systematic} up", "lp")
    legend.AddEntry(self.downHistogram, f"{self.systematic} down", "lp")
    legend.Draw()
    c.SaveAs(os.path.join(self.outputDir, f"{canvasName}.pdf"))
    c.SaveAs(os.path.join(self.outputDir, f"{canvasName}.eps"))
    c.SaveAs(os.path.join(self.outputDir, f"{canvasName}.png"))
    print(f"Region: {self.region}, sample: {self.sample}, systematic: {self.systematic}, variable: {self.variable}")
    for i in range(1, self.nominalHistogram.GetNbinsX()+1):
        if abs(self.nominalHistogram.GetBinContent(i) - 0.0001) < 0.0: continue
        print(f"Bin: {i} MC stat error: +/- {self.nominalHistogram.GetBinContent(i)}    bin-value {self.nominalHistogram.GetBinError(i)}")
        if self.nominalHistogram.GetBinContent(i) > 0.0:
            print(f"         MC stat error %: {self.nominalHistogram.GetBinError(i) / self.nominalHistogram.GetBinContent(i) * 100.0}")
    return