code: def poisson_errors(self):
          
          graph = Graph(self.nbins(axis=0), type='asymm')
          graph.SetLineWidth(self.GetLineWidth())
          graph.SetMarkerSize(self.GetMarkerSize())
          chisqr = ROOT.TMath.ChisquareQuantile
          npoints = 0
          for bin in self.bins(overflow=False):
              entries = bin.effective_entries
              if entries <= 0:
                  continue
              ey_low = entries - 0.5 * chisqr(0.1586555, 2. * entries)
              ey_high = 0.5 * chisqr(
                  1. - 0.1586555, 2. * (entries + 1)) - entries
              ex = bin.x.width / 2.
              graph.SetPoint(npoints, bin.x.center, bin.value)
              graph.SetPointEXlow(npoints, ex)
              graph.SetPointEXhigh(npoints, ex)
              graph.SetPointEYlow(npoints, ey_low)
              graph.SetPointEYhigh(npoints, ey_high)
              npoints += 1
          graph.Set(npoints)
          return graph
docs: Return a TGraphAsymmErrors representation of this histogram where the
          point y errors are Poisson.