Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reduced shear correction for DeltaSigma model #537

Open
combet opened this issue Sep 22, 2022 · 9 comments
Open

Reduced shear correction for DeltaSigma model #537

combet opened this issue Sep 22, 2022 · 9 comments
Labels
priority Essential for current milestone

Comments

@combet
Copy link
Collaborator

combet commented Sep 22, 2022

When we measure DeltaSigma from the data, we basically compute g*Sigma_c, where g is the reduced shear and not the shear gamma (g = gamma/(1-kappa)). However, the model definition of DeltaSigma is DeltaSigma = gamma*Sigma_c.

Far from the halo center, where kappa<<1, g = gamma and the DeltaSigma model (that we have currently in CLMM) that corresponds to gamma*Sigma_c is sufficient. However, when kappa starts to be "large" (R<~1 Mpc), kappa becomes sufficiently large that we need to account for it. In practice, this means multiplying DeltaSigma as defined in CLMM's theory modules by
Screenshot 2022-09-22 at 16 26 11

(See McClintock (2019))

Below the the difference between the two for a 1e15 Msun cluster at z=0.5 and a source at z=2.

Screenshot 2022-09-22 at 16 51 56

We should provide a function that implements the correction.

@hsinfan1996
Copy link
Collaborator

Does that mean users need to provide z_src to compute Sigma_c in the correction factor?

@combet
Copy link
Collaborator Author

combet commented Sep 23, 2022

Yes, this becomes dependent on the source redshift (either individual or distribution).

@m-aguena m-aguena added the priority Essential for current milestone label Dec 9, 2022
@combet
Copy link
Collaborator Author

combet commented Oct 16, 2024

@hsinfan1996, @m-aguena - I was going through open issues to see if anything outstanding needed addressing for v2.0 and I came upon this old one... I don't think we did anything about it, right?

@hsinfan1996
Copy link
Collaborator

@combet Where is the DeltaSigma calculation you are referring to in the code?

@combet
Copy link
Collaborator Author

combet commented Oct 16, 2024

So the DeltaSigma in the theory module corresponds to shear * Sigma_crit. We actually define the shear from DeltaSigma in theory (e.g. parent_class.py, l. 306)

def _eval_tangential_shear_core(self, r_proj, z_cl, z_src):
        delta_sigma = self.eval_excess_surface_density(r_proj, z_cl)
        sigma_c = self.cosmo.eval_sigma_crit(z_cl, z_src)
        return delta_sigma / sigma_c

But when we compute DeltaSigma from the data, what we do is reduce_shear * Sigma_crit, as the data only gives access to the reduced shear. So in the inner regions, I think the model DeltaSigma will not be the right model for the data and this may biased the mass estimation in a fit. So I think the user should have the option to compute the correction factor to apply to the model before fitting. But then, yes, the model depends on the data through the redshifts...

Not sure if I'm making sense 😅

@hsinfan1996
Copy link
Collaborator

I see. So basically there should be a version of excess surface density that is corrected by 1/(1-kappa).

@combet
Copy link
Collaborator Author

combet commented Oct 17, 2024

Actually, thinking about it again it may be a non-problem.

It's really dataops that may be "misleading", as it's multiplying the tan and cross components by sigmacrit when the flag is_deltasigma=True. If the tan and cross components are shear (say in simulations where this can be known), then yes, the result will be DeltaSigma and match the definition in theory. If these components are reduced shear (the case in real life), then the result will be not quite DeltaSigma in the inner regions. But maybe it's up to the user to know what they are doing and we can simply expand a bit the docstring of the is_deltasigma flag to make that point?

@hsinfan1996
Copy link
Collaborator

hsinfan1996 commented Oct 18, 2024

The docstrings for the function compute_tangential_and_cross_components in dataops mention the concern, but I am not sure if this is enough. We can definitely port this part to the argument is_deltasigma and maybe galaxycluster.py as well.

Finally, if the critical surface density (:math:`\Sigma_\text{crit}`) is provided, an estimate
of the excess surface density :math:`\widehat{\Delta\Sigma}` is obtained from
.. math::
\widehat{\Delta\Sigma_{t,x}} = g_{t,x} \times \Sigma_\text{crit}(z_l, z_{\text{src}})
If :math:`g_{t,x}` correspond to the shear, the above expression is an accurate. However, if
:math:`g_{t,x}` correspond to ellipticities or reduced shear, this expression only gives an
estimate :math:`\widehat{\Delta\Sigma_{t,x}}`, valid only in the weak lensing regime.

@combet
Copy link
Collaborator Author

combet commented Oct 18, 2024

Ah, thanks, I completely missed the warning. Yes, might be worth moving it to the is_deltasigma level in case people don't read further than that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority Essential for current milestone
Projects
None yet
Development

No branches or pull requests

3 participants