Simulating Source Catalogs

SOXS has the capability of simulating two different types of source catalogs: X-rays from a population of halos (galaxies, galaxy groups, and galaxy clusters), and point sources.

Cosmological Source Catalog

SOXS provides a routine to generate X-ray photons from cosmologically distant sources. This is made possible using a halo catalog provided by Daisuke Nagai (Yale) and Masato Shirasaki (NAOJ). The halo catalog is extracted from a light cone simulation produced using the methods of Shirasaki et al. (2015). It includes \(M_{500c}\), \(z\), and center coordinates for each halo.

The light cone simulation of \(10 \times 10\) square degrees is produced from two N-body simulation boxes with \(L = 480~\rm{Mpc/h}\) and \(L = 960~\rm{Mpc/h}\), out to the maximum redshift of z = 3, performed with the Gadget-2 code (Springel 2005). Each simulation box contains \(1024^3\) dark matter particles. Halo finding was performed using Rockstar (Behroozi et al. 2013), and only host halos were used and not subhalos.

The cosmological parameters for this halo catalog are from the WMAP 9-year cosmology Hinshaw et al. 2013:

  • \(h = 0.7\)

  • \(\Omega_m = 0.279\)

  • \(\Omega_\Lambda = 0.721\)

  • \(\Omega_b = 0.0463\)

  • \(w_{\rm DE} = -1\)

  • \(\sigma_8 = 0.823\)

  • \(n_s = 0.972\)

The X-ray emitting intracluster medium for each halo is modeled using a \(\beta\)-model function for the surface brightness and assuming isothermality. Using scaling relations from Vikhlinin et al. (2009), the halo temperature and flux are derived from the halo mass and redshift, assuming an APEC model for the spectrum. The scale radius of each halo is given by \(r_{500c}/10\). The \(\beta\)-parameter for each halo is drawn from a normal distribution with mean 2/3 and standard deviation 0.05. Each halo is also given a random ellipticity from a Gaussian distribution of mean 0.85 and standard deviation 0.15, and the orientation of this ellipticity is drawn from a uniform distribution over the range \([0, 2\pi]\).

A low-mass cut has been made at \(M_{500c} = 3 \times 10^{12}~M_\odot\).

Flat-Field Map of Structure

Below is a map showing an image of the full flat-field \(10 \times 10\) degree sky flux map (in the 0.5-2 keV band) of the X-ray halos in the catalog.

../_images/full_map.png

A FITS image of this map (in units of \(\rm{photons~s^{-1}~cm^{-2}}\) in the 0.5-2 keV band) can be downloaded from the link below, which you can open in ds9 to select regions of interest and determine coordinates to be passed into the cat_center parameter of make_cosmological_sources_file(). A full ASCII table of the halos in the catalog and their properties is also provided.

Note

In the observations you create, the ellipticities and orientations of the halos will be different from those in this map. This map is provided as a convenience to locate which regions may show interesting structure.

make_cosmological_sources_file

make_cosmological_sources_file() generates a photon list file for a SIMPUT catalog using the cosmological sources model:

filename = "cosmo.simput"
name = "my_cosmo_sources"
exp_time = (500.0, "ks")
fov = 20.0 # arcmin
sky_center = [30.0, 45.0] # RA, Dec in degrees
absorb_model = "wabs" # Choose a model for absorption, optional
nH = 0.02 # Foreground galactic absorption, optional
area = (4.0, "m**2") # Flat collecting area to generate photon sample
soxs.make_cosmological_sources_file(filename, name, exp_time, fov, sky_center,
                                    absorb_model=absorb_model, nH=nH,
                                    area=area)

To append to an existing catalog filename, set append=True. If you want to write the cosmological sources to a separate file, use the src_filename keyword argument.

By default, a random position will be chosen within the halo catalog. If you would prefer to simulate a specific region within the catalog, set the keyword argument cat_center to a particular coordinate between [-5, 5] degrees in either direction:

cat_center = [-0.2, 3.0]
soxs.make_cosmological_sources_file(filename, name, exp_time, fov, sky_center,
                                    absorb_model=absorb_model, nH=nH,
                                    area=area, cat_center=cat_center)

One can also write out ds9 circle regions corresponding to the positions of the halos on the sky, with the radii of the circles given by the \(r_{500}\) of the halos, using the write_regions argument:

soxs.make_cosmological_sources_file(filename, name, exp_time, fov, sky_center,
                                    absorb_model=absorb_model, nH=nH,
                                    area=area, write_regions="halos.reg")

Point Source Catalog

SOXS also provides a function to create a SIMPUT catalog of point-sources. It is not necessary to do this for including point sources as a background component in SOXS, as this will be done automatically, but it may be useful if you would like to tweak parameters of the sources, store the positions and fluxes of the sources generated, or use the SIMPUT catalog in another simulation program such as MARX or SIMX.

make_point_sources_file() generates a photon list file for a SIMPUT catalog using the point-source background model described in Point Source Background Model:

filename = "pt_src.simput"
name = "my_point_sources"
exp_time = (500.0, "ks")
fov = 20.0 # arcmin
sky_center = [30.0, 45.0] # RA, Dec in degrees
absorb_model = "tbabs" # Choose a model for absorption, optional
nH = 0.02 # Foreground galactic absorption, optional
area = (4.0, "m**2") # Flat collecting area to generate photon sample
soxs.make_point_sources_file(filename, name, exp_time, fov, sky_center,
                             absorb_model=absorb_model, nH=nH,
                             area=area)

To append to an existing catalog filename, set append=True. If you want to write the cosmological sources to a separate file, use the src_filename keyword argument.

A uniform background across the field of view, associated with many completely unresolved point sources, is also added, with a spectral index of \(\alpha = 2.0\) and a flux of \(1.352 \times 10^{-12}~\rm{erg}~\rm{s}^{-1}~\rm{cm}^{-2}~\rm{deg}^{-2}\) in the 0.5-2 keV band. This can be turned off by setting diffuse_unresolved=False in the call to make_point_sources_file().

Saving the Point Source Properties to Disk for Later Use

One can also save the point-source properties to disk for examination or later use to generate a consistent set of point sources more than once. This can be done in two different ways. The first is via make_point_sources_file() itself, using the output_sources keyword argument:

filename = "pt_src.simput"
name = "my_point_sources"
exp_time = (500.0, "ks")
fov = 20.0 # arcmin
sky_center = [30.0, 45.0] # RA, Dec in degrees

soxs.make_point_sources_file(filename, name, exp_time, fov,
                             sky_center, output_sources="my_srcs.dat")

This saves the point source properties of position, flux, and spectral index to an ASCII table file, as a side effect of generating the point source events. However, one may want to simply generate this table without generating events, so SOXS also provides the make_point_source_list() method:

output_file = "my_srcs.dat"
fov = 20.0 # arcmin
sky_center = [30.0, 45.0] # RA, Dec in degrees

soxs.make_point_source_list(output_file, fov, sky_center)

Regardless of which method used, this ASCII table can be used as input to make_point_sources_file() via the input_sources keyword argument, e.g.:

filename = "pt_src.simput"
name = "my_point_sources"
exp_time = (500.0, "ks")
fov = 20.0 # arcmin
sky_center = [30.0, 45.0] # RA, Dec in degrees

soxs.make_point_sources_file(filename, name, exp_time, fov,
                             sky_center, input_sources="my_srcs.dat")

Which ensures that one would have the same set of point sources every time it is run. You can also pass this file to the input_pt_sources keyword argument of instrument_simulator() or make_background_file().