Tutorial: Cluster Finding in the ACTPol E-D56 Field (ACT DR3)

Here we present an example of how to approximately re-create the cluster catalog presented in the two-season ACTPol cluster catalog paper (retrospectively referred to as the ACT DR3 cluster catalog).

Note

The config files needed for this tutorial can be found in the examples/ACT-DR3-clusters directory of the Nemo source distribution.

This example uses Nemo’s RealSpaceMatchedFilter class. Note that since Nemo has been updated since the ACTPol cluster catalog paper was published, some results are not be exactly the same. Most of this is due to changing the underlying code for calculating map power spectra from flipper to pixell, but the code for estimating the completeness of the cluster sample was also completely re-written, and various other bugs were fixed (e.g., treatment of pixel window corrections).

If you want to see an example Nemo config file that breaks the map up into tiles and runs in parallel, see Tutorial: Re-creating the ACT DR5 Cluster Catalog, which also makes use of many features not used here (multi-frequency filtering, non-azimuthally symmetric kernels etc.).

Downloading ACT maps

The examples/ACT-DR3-clusters directory of the Nemo source distribution contains some of the data products needed for this tutorial - e.g., the survey and point source masks (surveyMask.fits.gz and pointSourceMask.fits.gz respectively), the beam profile (found under profiles_ACT/), and the YAML-format configuration file (equD56.yml), from which Nemo reads its settings. However, the maps are too big to include in the source distribution, so they must be fetched from elsewhere.

For the ACTPol two-season cluster catalog, we combined the ACT+ACTPol maps, for which the original season maps are available on LAMBDA. You can download the combined map and weight files made from these for the cluster search (403 Mb) using:

wget http://astro.ukzn.ac.za/~mjh/equD56Maps.tar.gz

Extract this in the current directory (i.e., the same place as the equD56.yml file and the masks).

Making a cluster catalog

Run nemo using:

nemo equD56.yml

This may take 45 minutes to run, because a lot of different filter scales are used. You can check the settings by opening the equD56.yml file in a text editor. For a “cosmological sample”, you would only need to run the 'Arnaud_M2e14_z0p4' filter, and could comment out the dictionaries defining the other filters in the mapFilters list - this is already done in the equD56_quick.yml file that you can find in the examples/ACT-DR3-clusters directory of the source code distribution.

Output is written to the equD56 directory. Here you will find catalogs (FITS tables, e.g., equD56_optimalCatalog.fits), DS9 region files (.reg), images (under filteredMaps/), and a bunch of other stuff under the diagnostics/ directory.

Estimating cluster masses

If you want to measure masses, a FITS table that includes the columns redshift and redshiftErr is needed. The ACTPol_redshifts.fits file in the examples/ACT-DR3-clusters directory contains all the redshifts that were assigned to cluster candidates at the time that the ACT DR3 cluster catalog paper was submitted. You can specify the redshift catalog used for mass estimates with the massOptions key in the configuration file. Since this is already filled in, you can run the mass estimation script with:

nemoMass equD56.yml

Nemo will then infer the masses of clusters detected in the equD56/equD56_optimalCatalog.fits catalog generated by the previous step. This will take less than 1 minute to run. The output is written as a FITS table, equD56/equD56_mass.fits.

You can give a path to another catalog (e.g., a mock - see below) by using the -c switch. If you provide a catalog that doesn’t contain fixed_y_c, fixed_err_y_c columns, nemo will run in “forced photometry” mode, and measure the SZ observables and infer masses at the positions given in the catalog (only the name, RADeg, decDeg, and redshift columns need to be present for this mode to work).

Calculating completeness

The above steps are all that are needed to recreate the two-season ACTPol cluster catalog (though see the note at the top of this page). You can check the output by cross-matching against the ACTPol_clusters.fits catalog using, e.g., TopCat.

If you wanted to model the mass completeness, you can use the nemoSelFn script. You can run it with:

nemoSelFn equD56.yml

This will take about 60 minutes to run (subsequent runs will be faster, as some of the output is cached). The output for this script is written in the diagnostics/ and selFn directories, and includes a plot of the 90% completeness limit, averaged over the survey (in this case the E-D56 field), and an equivalent mass limit map, evaluated at z = 0.5 (a FITS image). It is making the latter that takes up most of the time - this can be disabled by removing the massLimitMaps``key from the ``selFnOptions dictionary in the .yml file.

Note that nemoSelFn has been completely rewritten and is different to the version used for the ACT DR3 cluster catalog paper. Hence, the results are different (90% completeness mass limits are higher than quoted in the paper). Running nemoSelFn is rarely necessary, as the main nemo command can run all of these tasks using the -S switch.

A script that shows an example of how to use the selection function files can be found in the examples/ACT-DR3-clusters directory. You can run it with:

python selFnExample.py equD56.yml equD56/selFn

Here, the second argument gives the location of the selFn directory made by nemoSelFn - this may be copied to a different location, and should contain all of the information needed to estimate the completeness for a given nemo run. By default, this example uses the full survey area, but you may optionally use the -f switch to specify a different footprint to use (see the selFnFootprints dictionary in the config file - this is commented out by default). Footprints can be used to calculate the completeness within the intersection between the SZ survey and an optical survey (e.g., DES, HSC, KiDS, SDSS etc.). The -S switch may be used to change the signal-to-noise cut used to select the cluster sample.

Generating mock catalogs

You can generate mock cluster catalogs using the output from nemo by using the nemoMock command:

nemoMock equD56/selFn mocks

In this example, mock catalogs will be written into the mocks directory. You can use the -N switch or set the makeMockCatalogs parameter in the config file to control the number of catalogs to be made. You can use the -C switch or set the combineMocks config file parameter to True if you want to stitch all of the generated mocks together to form one giant oversampled catalog (be useful for some applications).

Mock catalogs assume the fixed cosmology and mass scaling relation parameters given in the massOptions dictionary in the config file - so for the default Arnaud et al. (2010) based scaling relation, the number of clusters in the mocks will be larger than what is observed in reality.