Projected Density profiles \(\Sigma\) and \(\Delta\Sigma\)

Weak lensing measurements of galaxy clusters involve calculating the projected and differential density profiles of the cluster.

Surface Mass Density \(\Sigma(R)\)

The projected density (or the surface mass density) is defined as

\[\Sigma(R) = \Omega_m\rho_{\rm crit}\int_{-\infty}^{+\infty}{\rm d}z\ \xi_{\rm hm}(\sqrt{R^2+z^2}).\]

Where \(\xi_{hm}\) is the halo-matter correlation function (link to the correlation function documentation). The integral is along the line of site, meaning that \(R\) is the distance on the sky from the center of the cluster.

Note

\(\Sigma\) and \(\Delta\Sigma\) use units of \(h{\rm M_\odot/pc^2}\), following convention in the literature.

Note

This module is called cluster_toolkit.deltasigma, even though it contains routines to calculate \(\Sigma\) as well as \(\Delta\Sigma\).

To calculate this using the module you would use:

from cluster_toolkit import deltasigma
mass = 1e14 #Msun/h
concentration = 5 #arbitrary
Omega_m = 0.3
R_perp = np.logspace(-2, 2.4, 100) #Mpc/h comoving; distance on the sky
#Assume that radii and xi_hm are computed here
Sigma = deltasigma.Sigma_at_R(R_perp, radii, xi_hm, mass, concentration, Omega_m)

NFW \(\Sigma(R)\)

The example code above computes a \(\Sigma\) given any halo-matter correlation function, but you can compute \(\Sigma_{nfw}\) directly using

from cluster_toolkit import deltasigma
mass = 1e14 #Msun/h
concentration = 5 #arbitrary
Omega_m = 0.3
R_perp = np.logspace(-2, 2.4, 100) #Mpc/h comoving; distance on the sky
Sigma_nfw = deltasigma.Sigma_nfw_at_R(R_perp, mass, concentration, Omega_m)

If you know of an analytic form of the the Einasto profile, please let me know.

Differential Surface Density \(\Delta\Sigma(R)\)

The differential (or excess) surface mass density is defined as

\[\Delta\Sigma = \bar{\Sigma}(<R) - \Sigma(R)\]

where \(\Sigma\) is given above and

\[\bar{\Sigma}(<R) = \frac{2}{R^2}\int_0^R {\rm d}R'\ R'\Sigma(R'),\]

or the average surface mass density within the circle of radius:math:R. To calculate this you would use

from cluster_toolkit import deltasigma
mass = 1e14 #Msun/h
concentration = 5 #arbitrary
Omega_m = 0.3
#Assume that Sigma at Rp is calculated here
R_perp = np.logspace(-2, 2.4, 100) #Mpc/h comoving; distance on the sky
DeltaSigma = deltasigma.DeltaSigma_at_R(R_perp, Rp, Sigma, Mass, concentartion, Omega_m)

As you can see, the code is structured so that the input \(\Sigma\) profile is arbitrary.

Note

Mass, concentration, and \(\Omega_m\) are also arguments to \(\Delta\Sigma\), because an NFW profile is used to extrapolate the integrand for \(\bar{\Sigma}(<R)\) at very small scales. To avoid issues when using an Einasto or other profile, make sure that the input profiles are calculated to fairly large and small scales.

This figure shows the different \(\Sigma(R)\) profiles, including with miscentering

../_images/Sigma_example.png

This figure shows the different \(\Delta\Sigma(R)\) profiles, including with miscentering

../_images/DeltaSigma_example.png