Boost Factor

Cluster members and correlated structure scattered into the background source catalogue are not lensed by the cluster — they dilute the measured shear. The boost factor \(B(R)\) is the multiplicative correction that removes that dilution, applied to \(\Delta\Sigma\) before it is compared to a model.

NFW boost factor B(R) for three amplitudes

\(B(R)\) at three amplitudes \(B_0\), fixed NFW scale radius. Dilution is largest in the cluster core, where correlated members dominate the source catalogue, and \(B(R)\to1\) at large \(R\).

The NFW dilution model

\(B(R) \equiv \Sigma_{\rm crit}/\Sigma_{\rm crit}^{\rm eff}\) compares the true critical surface density to the effective one diluted by non-background galaxies. McClintock et al. (2019, Eq. 27) model it with the same radial shape as an NFW projection:

\[\begin{split} B(R) = 1 + B_0\,\frac{1-f(x)}{x^2-1}, \qquad x = \frac{R}{r_s}, \qquad f(x) = \begin{cases} \dfrac{\operatorname{arctanh}\sqrt{1-x^2}}{\sqrt{1-x^2}}, & x<1\\[2mm] 1, & x=1\\[2mm] \dfrac{\arctan\sqrt{x^2-1}}{\sqrt{x^2-1}}, & x>1 \end{cases} \end{split}\]

with \(B_0\) a free amplitude fit per richness/redshift bin and \(r_s\) the same NFW scale radius as Halo Density Profiles. \(B(R)\) is dimensionless and \(\ge1\) by construction.

Note

boost_factor_nfw is the model — the loaders in the same module, load_boost_factor_data/load_boost_factor_collection, read a measurement: the DES Y1 unblinded boost factor files, not distributed with clenspy. The two are independent uses of this module, not a model-then-fit pipeline living in one function.

Example

from clenspy.selection import boost_factor_nfw

# B(R) is dimensionless and > 1: correlated cluster members diluting the
# source catalogue make the *effective* Sigma_crit larger, so the measured
# DeltaSigma must be multiplied up by B(R) to recover the true signal.
R = np.array([0.1, 0.3, 1.0, 3.0, 10.0])  # Mpc
rs = 0.35  # Mpc, an NFW scale radius for M ~ 1e14
for B0 in (0.05, 0.10, 0.20):
    print(f"B0={B0:.2f}  B(R) =", boost_factor_nfw(R, B0, rs))

B0=0.05  B(R) = [1.05491131 1.01995534 1.003816   1.00057211 1.00005803]
B0=0.10  B(R) = [1.10982262 1.03991067 1.00763199 1.00114423 1.00011605]
B0=0.20  B(R) = [1.21964523 1.07982134 1.01526398 1.00228846 1.00023211]

See also: API Reference for the full clenspy.selection reference, Notation for the symbol table, Miscentering for the other selection-driven correction to a stacked profile.