code: def fit_delta_ts(data, time_s):
      
  
      data = data / time_s
  
      xs = np.arange(-20, 21)
  
      def gaussian(x, mean, sigma, rate, offset):
          return rate / np.sqrt(2 * np.pi) /  \
              sigma * np.exp(-(x - mean)**2 / sigma**2) + offset
  
      rates = []
      means = []
      for combination in data:
          try:
              popt, _ = optimize.curve_fit(
                  gaussian, xs, combination, p0=[0, 2, 1000, 20]
              )
          except RuntimeError:
              popt = (0, 0, 0, 0)
          rates.append(popt[2])
          means.append(popt[0])
      return np.array(rates), np.array(means)
docs: Fits gaussians to delta t for each PMT pair.
  
      Parameters
      ----------
      data: 2d np.array: x = PMT combinations (465), y = time, entry = frequency
      time_s: length of data taking in seconds
  
      Returns
      -------
      numpy arrays with rates and means for all PMT combinations