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