****************** Rapid overview ****************** CLMM is a tool to estimate cluster masses from weak lensing data. CLMM provides the initial building blocks for an end-to-end cluster weak lensing pipeline that can be validated on mock data and run on real data from LSST or other telescopes. It is based on a data operations package to prepare the data vector, a theory package to predict the signal from cluster properties and also includes ways to generate mock catalogs of various complexity levels. A set of examples is also provided, ranging from demos of base functionalities to end-to-end WL mass estimations. All are available in the `examples` folder of the project and some have been included in this documentation (see below). The `GalaxyCluster` object ========================== The Galaxy cluster object is the core data structure in CLMM. It contains at least * The galaxy cluster metadata (unique_id, ra, dec, z) * A table of background galaxies: astropy Table containing at least for each galaxy galaxy_id, ra, dec, e1, e2, z * Additional attributes (e.g. binned radial shear profiles) are then added to the GalaxyCluster object at various steps of the analysis. Weak lensing signal measurement with the `dataops` package ============================================================ All the functions of the `dataops` package are also methods of the `GalaxyCluster` object. In a nutshell, the main functions are: * `compute_tangential_and_cross_components` calculates tangential shear, cross shear, and angular separation of each source galaxy relative to the (ra, dec) coordinates of the center of the cluster. * `make_radial_profile` averages the tangential and cross shear of galaxies in user-defined bins and support bins in rad, deg, arcmin, arcsec, kpc, or Mpc. The latter are easily generated thanks to the make_bins function. See `demo_dataops_functionality.ipynb` to see all functionalities and possible options. Profile models and cosmology with `theory` and `cosmology` packages ========================================================================= The `theory` package holds modules for evaluating theoretical models, whatever backend (cluster-toolkit, CCL or NumCosmo) the user has chosen to use. All is transparent to the user, but some backend will support more functionality than others. The default, that all backends support, is to use an NFW density profile for the cluster, with a M200,m mass definition. Each theory backend relies on a cosmology object, of a different type, depending on the backend. The CLMM cosmology superclass wraps these various types of object to make it transparent for the user. Finally, the theory package has both a functional and object-oriented interface and these may be used whatever the selected theory backend. See `examples/demo_theory_functionality.ipynb` and `examples/demo_theory_functionality_oo.ipynb` for detailed examples of the functional and object-oriented interfaces respectively. Mock data generation ======================== In order to test/develop the code but also help new users or scientists new to the field to explore some of the effects affecting cluster WL mass reconstruction, a CLMM module allows us to generate mock datasets from a variety of ingredients (w/wo shape noise, w/wo photoz errors, etc.). See `examples/demo_generate_mock_cluster.ipynb` for all possible use cases. Galaxy cluster mass estimation ================================== CLMM was not designed to provide an end-to-end mass estimation pipeline, but to provide the building blocks to do so. How to use these blocks to make a mass estimation is exemplified in a series of notebooks using either simple scipy tools for the minimization or Numcosmo's more sophisticated statistical framework. Look for the notebooks called `ExampleXX_Fit_Halo_Mass_to_Shear_Catalog*` in the examples folder, e.g, `examples/Example3_Fit_Halo_Mass_to_Shear_Catalog.ipynb`.