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

Theory prediction for miscentered haloes #622

Open
wants to merge 77 commits into
base: main
Choose a base branch
from

Conversation

combet
Copy link
Collaborator

@combet combet commented May 7, 2024

Add functionality to compute profile predictions for miscentered haloes, based on tests performed in the exploratory notebook explore_miscentering_theory.ipynb

  • new functionality added to the theory module
  • the theory demo notebooks (functional interface and OO) updated accordingly
  • new tests implemented

combet and others added 17 commits April 19, 2023 14:32
…611)

* Add missing use_weights option to notebook to get expected behaviour

* Update version to 1.11.1

---------

Co-authored-by: m-aguena <aguena@if.usp.br>
* distinguish between compute_beta_s_*_from_distribution and compute_beta_s_*_from_weights

* make compute_beta more efficient and fix shape_weights=None in compute_beta_s_mean*_from_weights

* add _eval_da, _eval_da_z1z2, _get_z_from_a, _get_a_from_z to cosm

* reorder funcs in cosmo parent

* add fix to skip pylint for astropy.units (fails in astropy 6)

* Update version to 1.12.0

---------

Co-authored-by: m-aguena <aguena@apc.in2p3.fr>
@coveralls
Copy link

coveralls commented May 7, 2024

Coverage Status

coverage: 100.0%. remained the same
when pulling a7b4074 on issue/588/miscentering_therory
into e7164d2 on main.

@combet
Copy link
Collaborator Author

combet commented May 7, 2024

@m-aguena, @marina-ricci, @hsinfan1996 - following on the v2.0 release discussion and the idea of having miscentered profiles predictions part of the release, I'm thinking one compromise would be to implement the miscentered profile for a single halo (i..e not integrated over a miscentering distribution). This is in any case what we have currently in theory, i..e we don't deal with prediction for stacked profiles (that will most likely live in FireCrown/new CLcosmo prediction module?).

There are 2 routes to do so, both shown in the explore_miscentering_theory.ipynb

  1. rely on the backends to compute Sigma and then the integrals brute-force (the very slow option I originally implemented can be sped up using @hsinfan1996's optimized integration for DeltaSigma without loss of precision)
  2. implement the backend-independent version from @hsinfan1996, which uses analytical pre-computations of the miscentered surface density to speed up the process, i.e. backend-independent. This is the fastest, but needs more code to be added to the theory module.

I like option 2 better because of speed, but it would also make that part less consistent "in spirit" with the rest of the theory module that relies on the backends...

What do you think?

@combet combet linked an issue May 8, 2024 that may be closed by this pull request
combet and others added 7 commits July 19, 2024 11:15
…effects with instructions to use example data (#629)

* feat: Add coordinate_system parameter to compute_tangential_and_cross_components and _compute_lensing_angles functions

* Update documentation to account for new coordinate_system option

* feat: Add coordinate_system conversion test to test_compute_lensing_angles_flatsky function

* Add coordinate_system conversion test to test_compute_lensing_angles_astropy function and fix bug in coordinate system conversion bug in compute_lensing_angles_astropy

* Set coordinate_system option during creation of GalaxyCluster object

* adding a new notebook and data

* test

* new notebook to test coordinate systems and shear measurements

* Removed debuggin print in test_dataops.py

* editing README for the data availability

* moved tomomi's notebook to examples

* added prelude to Tomomi's notebook

* Fixed typo and set default coordinate_system to "pixel"

* Added option to choose coordinate system for generated mock catalog

* Added ellipticity coordinate system conversion tests to test_galaxycluster.py and test_mockdata.py

* Added documentation to other test cases in Tomomi's notebook.  Still need to incorporate Caio's added functionality for sky vs. pixel coordinates in CLMM

* Fixed formatting

* starting to work through and document example of lensing signal calculation of HSCY3 cluster without CLMM, but need to change colossus dependency because it is not easy to install on NERSC

* Finished baseline documentation, including changing colossus cosmology dependency in notebook to the astropy one so this is easier to run on NERSC

* minor change to clarify sections of notebook

* added kwargs to GalaxyCluster instance definition in preparation for re-installing latest CLMM with Caio's added coordinate_system kwargs

* Updated logic for lensing angle conversion between coordinate systems in _compute_lensing_angles_flatsky and updated tests

* Revert "Updated logic for lensing angle conversion between coordinate systems in _compute_lensing_angles_flatsky and updated tests"

This reverts commit 4a1faa6.

* Added coordinate_system validation and extra tests

* Changed example notebook to document new coordinate_system option

* examples/test_coordinate.ipynb has additional minor markdown detail

* test_coordinate.ipynb now runs from top to bottom using Caio's coordinate system implementation!

* adding additional docstrings to Tomomi's from-scratch calculation of lensing from HSC data

* refactoring code into functions to make loop over cluster lenses  more readable and some renaming of variables, e.g. sum to profile_sum, to avoid name space problems

* made additional refactoring changes, but refactored functions to calculate angles between source and lens, etc. likely broke something in the background selection (now empty)

* some of the refactoring incorporated with pre-broken code

* cleaned up the loop over rbins

* In line comments for portions of calculation

* modified reverted commit to when the functions did not break, added in documentation and light refactoring from latest commit

* renamed the notebook for consistency

* docs/doc-config.ini now includes the demo_coordinate_system notebook

* feat: Add coordinate_system parameter to compute_tangential_and_cross_components and _compute_lensing_angles functions (#624)

* feat: Add coordinate_system parameter to compute_tangential_and_cross_components and _compute_lensing_angles functions

* Update documentation to account for new coordinate_system option

* feat: Add coordinate_system conversion test to test_compute_lensing_angles_flatsky function

* Add coordinate_system conversion test to test_compute_lensing_angles_astropy function and fix bug in coordinate system conversion bug in compute_lensing_angles_astropy

* Set coordinate_system option during creation of GalaxyCluster object

* Removed debuggin print in test_dataops.py

* Fixed typo and set default coordinate_system to "pixel"

* Added option to choose coordinate system for generated mock catalog

* Added ellipticity coordinate system conversion tests to test_galaxycluster.py and test_mockdata.py

* Fixed formatting

* Updated logic for lensing angle conversion between coordinate systems in _compute_lensing_angles_flatsky and updated tests

* Revert "Updated logic for lensing angle conversion between coordinate systems in _compute_lensing_angles_flatsky and updated tests"

This reverts commit 4a1faa6.

* Added coordinate_system validation and extra tests

* Changed example notebook to document new coordinate_system option

* Fixed all the documentation for coordinate_system and changed names from 'pixel'/'sky' to 'euclidean'/'celestial'

* Added reference for defitions of coordinate systems

* Fixed bug in coordinate system conversion in mock data generation

* Test ValueError raise for coordinate_system in test_mockdata.py

* Added more explanations about ellipticity coordinate system

* Fixed typo

* uodated tag to 1.12.4

---------

Co-authored-by: Marina Ricci <rm003211@gmail.com>

* removed a character in a markdown cell that tests complained about in making docs

* swapped pixel/euclidean and sky/celestial in notebook

* reverted two files to try to match main

* removed outputs in the notebook

* removed OTHER notebook outputs

* remove empty cells in notebooks

* made minor edits in response to review, primarily with generalizing file paths and removing comments or redundant text in the markdown

* incorporating original demo_mock_cluster.ipynb from main to remove changes to the file in this branch that should not have been committed

* modified the Oguri example to also show incorrect coordinate assumption as noted by Caio

* got rid of dollar signs inside markdown code snippet env hoping this will get the checks passed

* added review contributions line :-)

* added a note for the CosmoDC2 clusters so the user is aware to not necessarily expect a strong signal in center regions

* removed extra cell at end

* removed rogue savefig

* clarified why there might be less signal in the TXPipe outputted CosmoDC2 thing

* Formatted demo_coordinate_system_datasets.ipynb notebook

---------

Co-authored-by: Caio Lima de Oliveira <caiooliveiracode@proton.me>
Co-authored-by: Camille Avestruz <briarrose5187@gmail.com>
Co-authored-by: Marina Ricci <rm003211@gmail.com>
@hsinfan1996 hsinfan1996 force-pushed the issue/588/miscentering_therory branch from 97b48c7 to 461c3d7 Compare July 19, 2024 23:26
@combet combet marked this pull request as ready for review October 16, 2024 13:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: PR to do
Development

Successfully merging this pull request may close these issues.

Add miscentering to the theory module
7 participants