Esempio n. 1
0
 def rho(self, rs, zs, masses, cons):
     '''
     SHAPE r, cluster
     '''
     scale_radii = self.scale_radius(zs, masses, cons)
     numerator = self.delta_c(cons) * self.reference_density(zs)
     total_num_dims = rs.ndim + numerator.ndim - 1
     numerator = mathutils.atleast_kd(numerator,
                                      total_num_dims,
                                      append_dims=False)
     xs = rs / (mathutils.atleast_kd(
         scale_radii, total_num_dims, append_dims=False))
     denominator = xs * (1 + xs)**2
     return numerator / denominator
Esempio n. 2
0
 def rho(self, rs, zs, masses, cons):
     '''
     SHAPE r, z, params
     '''
     scale_radii = self.scale_radius(zs, masses, cons)
     numerator = self.delta_c(cons)[None, :] * self.reference_density(
         zs)[:, None]
     total_num_dims = rs.ndim + numerator.ndim - 1
     numerator = mathutils.atleast_kd(numerator,
                                      total_num_dims,
                                      append_dims=False)
     xs = rs[..., None] / mathutils.atleast_kd(
         scale_radii, total_num_dims, append_dims=False)
     denominator = xs * (1 + xs)**2
     return numerator / denominator
Esempio n. 3
0
    def excess_surface_density(self, rs, zs, masses, cons):
        '''
        SHAPE r, mass, z, cons
        '''
        scale_radii = self.scale_radius(zs, masses, cons)
        prefactor = scale_radii * self.delta_c(cons)[
            None, None, :] * self.reference_density(zs)[None, :, None]
        prefactor = prefactor * (u.Msun / u.Mpc**2).to(self.units)

        xs = rs[..., None, :, None] / mathutils.atleast_kd(
            scale_radii, rs.ndim + scale_radii.ndim - 1, append_dims=False)

        postfactor = self._esd_inequality_func(xs)

        return prefactor[None, :] * postfactor
Esempio n. 4
0
def rho_with_analytic_result(radii, param_1, param_2):
    total_ndim = radii.ndim+2
    radii = mathutils.atleast_kd(radii, total_ndim)
    param_1 = mathutils.atleast_kd(param_1[:, None], total_ndim, append_dims=False)
    param_2 = mathutils.atleast_kd(param_2, total_ndim, append_dims=False)
    return (radii**2) * param_1 * param_2
Esempio n. 5
0
def prob_dist_func(r, scale):
    scale = mathutils.atleast_kd(scale, r.ndim+1, append_dims=False)
    return scale*np.ones(r.shape + (1,))