docs: def _get_mean(self, sites, C, ln_y_ref, exp1, exp2):
          """
          Add site effects to an intensity.
  
          Implements eq. 13b.
          """
          # we do not support estimating of basin depth and instead
          # rely on it being available (since we require it).
          # centered_z1pt0
          centered_z1pt0 = self._get_centered_z1pt0(sites)
          # we consider random variables being zero since we want
          # to find the exact mean value.
          eta = epsilon = 0.
  
          ln_y = (
              # first line of eq. 12
              ln_y_ref + eta
              # second line
              + C['phi1'] * np.log(sites.vs30 / 1130).clip(-np.inf, 0)
              # third line
              + C['phi2'] * (exp1 - exp2)
              * np.log((np.exp(ln_y_ref) * np.exp(eta) + C['phi4']) / C['phi4'])
              # fourth line
              + C['phi5']
              * (1.0 - np.exp(-1. * centered_z1pt0 / C['phi6']))
              # fifth line
              + epsilon
          )
  
          return ln_y