code: def get_band(low_hist, high_hist, middle_hist=None):
      
      npoints = low_hist.nbins(0)
      band = Graph(npoints)
      for i in range(npoints):
          center = low_hist.x(i + 1)
          width = low_hist.xwidth(i + 1)
          low, high = low_hist.y(i + 1), high_hist.y(i + 1)
          if middle_hist is not None:
              middle = middle_hist.y(i + 1)
          else:
              middle = (low + high) / 2.
          yerrh = max(high - middle, low - middle, 0)
          yerrl = abs(min(high - middle, low - middle, 0))
          band.SetPoint(i, center, middle)
          band.SetPointError(i, width / 2., width / 2.,
                             yerrl, yerrh)
      return band
docs: Convert the low and high histograms into a TGraphAsymmErrors centered at
      the middle histogram if not None otherwise the middle between the low and
      high points, to be used to draw a (possibly asymmetric) error band.