code: def get_mean_and_stddevs(self, sites, rup, dists, imt, stddev_types):
          
          # extracting dictionary of coefficients specific to required
          # intensity measure type.
          C = self.COEFFS_SSLAB[imt]
  
          # cap magnitude values at 8.0, see page 1709
          mag = rup.mag
          if mag >= 8.0:
              mag = 8.0
  
          # compute PGA on rock (needed for site amplification calculation)
          G = 10 ** (0.301 - 0.01 * mag)
          pga_rock = self._compute_mean(self.COEFFS_SSLAB[PGA()], G, mag,
                                        rup.hypo_depth, dists.rrup, sites.vs30,
                                        # by passing pga_rock > 500 the soil
                                        # amplification is 0
                                        np.zeros_like(sites.vs30) + 600,
                                        PGA())
          pga_rock = 10 ** (pga_rock)
  
          # compute actual mean and convert from log10 to ln and units from
          # cm/s**2 to g
          mean = self._compute_mean(C, G, mag, rup.hypo_depth, dists.rrup,
                                    sites.vs30, pga_rock, imt)
          mean = np.log((10 ** mean) * 1e-2 / g)
  
          if imt.period == 4.0:
              mean /= 0.550
  
          stddevs = self._get_stddevs(C, stddev_types, sites.vs30.shape[0])
  
          return mean, stddevs
docs: See :meth:`superclass method
          <.base.GroundShakingIntensityModel.get_mean_and_stddevs>`
          for spec of input and result values.