code: def total(self, where=None, xbin1=1, xbin2=-2):
          
          nominal, _ = self.sys_hist(None, where=where)
          integral, stat_error = nominal.integral(
              xbin1=xbin1, xbin2=xbin2, error=True)
          ups = [0]
          dns = [0]
          for sys_name in self.sys_names():
              low, high = self.sys_hist(sys_name, where=where)
              up = high.integral(xbin1=xbin1, xbin2=xbin2) - integral
              dn = low.integral(xbin1=xbin1, xbin2=xbin2) - integral
              if up > 0:
                  ups.append(up**2)
              else:
                  dns.append(up**2)
              if dn > 0:
                  ups.append(dn**2)
              else:
                  dns.append(dn**2)
          syst_error = (sqrt(sum(ups)), sqrt(sum(dns)))
          return integral, stat_error, syst_error
docs: Return the total yield and its associated statistical and
          systematic uncertainties.