slsim.Sources.SourceCatalogues.QuasarCatalog package

Submodules

slsim.Sources.SourceCatalogues.QuasarCatalog.quasar_host_match module

class slsim.Sources.SourceCatalogues.QuasarCatalog.quasar_host_match.QuasarHostMatch(quasar_catalog, galaxy_catalog)[source]

Bases: object

Class to generate a host galaxy catalog for a given quasar catalog.

match()[source]

Generates catalog in which quasars are matched with host galaxies.

Returns:

catalog with quasar redshifts and their corresponding host galaxies

Return type:

astropy Table

slsim.Sources.SourceCatalogues.QuasarCatalog.quasar_host_match.black_hole_mass_from_vel_disp(sigma_e, alpha=4.38, beta=0.31)[source]

Calculate black hole mass from bulge velocity dispersion using the relationship derived from the M-sigma relation.

Parameters:
  • sigma_e (float or numpy.ndarray) – Bulge Velocity dispersion in km/s

  • alpha (float, optional) – Power-law index (default: 4.38)

  • beta (float, optional) – Normalization constant (default: 0.310)

Returns:

Black hole mass in solar masses

Return type:

float or numpy.ndarray

Notes

See Kormendy, J. and Ho, L. C. (2013) “The Coevolution of Supermassive Black Holes and Host Galaxies”

slsim.Sources.SourceCatalogues.QuasarCatalog.quasar_host_match.calculate_lsst_magnitude(lsst_band, black_hole_mass_Msun, eddington_ratio)[source]

Calculates the absolute magnitude of a quasar in a given LSST band.

The calculation proceeds in three main steps: 1. Calculate the Eddington luminosity based on the black hole mass. 2. Calculate the bolometric luminosity from the Eddington ratio. 3. Convert the bolometric luminosity to an absolute magnitude in the specified LSST band using a bolometric correction. (Ref. Runnoe+ 2012 https://arxiv.org/abs/1201.5155)

Parameters:
  • lsst_band (str) – The desired LSST band. Must be one of [‘u’, ‘g’, ‘r’, ‘i’, ‘z’, ‘y’].

  • black_hole_mass_Msun (float or numpy.ndarray) – The mass of the black hole in solar masses (M_sun). Can be an array.

  • eddington_ratio (float or numpy.ndarray) – The Eddington ratio (L_bol / L_edd). Can be an array.

Returns:

The absolute magnitude of the quasar in the specified LSST band. Returns None if an invalid band is provided.

Return type:

float or numpy.ndarray

Raises:

ValueError – If the lsst_band is not a valid LSST band.

slsim.Sources.SourceCatalogues.QuasarCatalog.quasar_host_match.sample_eddington_rate(z, z0=0.6, gamma_e=-0.65, gamma_z=3.47, A=0.00071, lambda_min=0.1, lambda_max=1.0, size=1, n_grid=1000)[source]

Sample Eddington ratios from a redshift-dependent power-law distribution. This function generates random samples of Eddington ratios (lambda) following a power-law distribution with redshift evolution. The probability density.

function is given by: P(lambda|z) = A * (1+z)/(1+z0)^gamma_z * lambda^gamma_e

Parameters:
  • z (float) – Redshift at which to sample Eddington ratios

  • z0 (float, optional) – Reference redshift for redshift evolution (default: 0.6)

  • gamma_e (float, optional) – Power-law index for Eddington ratio dependence (default: -0.65)

  • gamma_z (float, optional) – Power-law index for redshift evolution (default: 3.47)

  • A (float, optional) – Normalization constant (default: 0.00071)

  • lambda_min (float, optional) – Minimum Eddington ratio to sample (default: 0.1)

  • lambda_max (float, optional) – Maximum Eddington ratio to sample (default: 1.0)

  • size (int, optional) – Number of samples to generate (default: 1)

  • n_grid (int, optional) – Number of grid points for numerical CDF calculation (default: 1000)

Returns:

Sampled Eddington ratio(s). Returns float if size=1, otherwise numpy array

Return type:

numpy.ndarray or float

Notes

The default parameters are based on observational constraints from quasar luminosity function studies. (See Eq. 16 in Korytov et al. 2019, https://arxiv.org/abs/1907.06530)

slsim.Sources.SourceCatalogues.QuasarCatalog.quasar_plus_galaxies module

slsim.Sources.SourceCatalogues.QuasarCatalog.quasar_plus_galaxies.quasar_galaxies_simple(m_min=17, m_max=23, amp_min=0.9, amp_max=1.3, freq_min=0.5, freq_max=1.5, sky_area=<Quantity 0.1 deg2>)[source]

Creates an simple catalog of quasars and host galaxies. It generate random magnitude values in r, g, and i band for quasars. Also, generates amplitude and frequency for each source. Then, adds all these quasar properties to the galaxy catalog produced by skypy.

Parameters:
  • z_max – maximum redshift for sources

  • m_min – minimum magnitude for sources in r band

  • m_max – maximum magnitude for sources in r band

  • amp_min – minimum amplitude for sources

  • amp_max – maximum amplitude for sources

  • freq_min – minimum frequency for sources

  • freq_max – maximum frequency for sources

Returns:

an astropy table of quasars and host galaxies catalog

slsim.Sources.SourceCatalogues.QuasarCatalog.quasar_pop module

class slsim.Sources.SourceCatalogues.QuasarCatalog.quasar_pop.QuasarRate(zeta: float = 2.98, xi: float = 4.05, z_star: float = 1.6, alpha: float = -3.31, beta: float = -1.45, phi_star: float = 1.8316199999999995e-06, cosmo: FlatLambdaCDM = None, skypy_config: str = None, sky_area: Quantity = None, noise: bool = True, redshifts: ndarray = None, host_galaxy_candidate: Table = None)[source]

Bases: object

Class to calculate quasar luminosity functions and generate quasar samples.

M_star(z_value)[source]

Calculates the break absolute magnitude of quasars for a given redshift according to Eq. (11) in Oguri & Marshall (2010): DOI: 10.1111/j.1365-2966.2010.16639.x.

Parameters:

z_value (float or np.ndarray) – Redshift value.

Returns:

M_star value.

Return type:

float or np.ndarray :unit: mag

compute_cdf_data(m_min, m_max, quasar_redshifts)[source]

Computes cumulative distribution function (CDF) data for given redshift values.

Parameters:
  • m_min (float) – Minimum apparent magnitude.

  • m_max (float) – Maximum apparent magnitude.

  • quasar_redshifts (array-like) – Redshift values generated from generate_quasar_redshifts.

Returns:

Dictionary containing CDF data for each redshift.

Return type:

dict

convert_magnitude(magnitude, z, conversion='apparent_to_absolute')[source]

Converts between apparent and absolute magnitudes using K-corrections determined in Table 4 of Richards et al. 2006: DOI: 10.1086/503559.

Parameters:
  • magnitude (float or np.ndarray) – Apparent or absolute i-band magnitude.

  • z (float or np.ndarray) – Redshift.

  • conversion (str) – Conversion direction, either ‘apparent_to_absolute’ or ‘absolute_to_apparent’.

Returns:

Converted magnitude.

Return type:

float or np.ndarray :unit: mag

dPhi_dM(M, z_value)[source]

Calculates dPhi_dM for a given M and redshift according to Eq (10) in Oguri & Marshall (2010): DOI: 10.1111/j.1365-2966.2010.16639.x.

Parameters:
  • M (float or numpy.ndarray) – Absolute i-band magnitude.

  • z_value (float or numpy.ndarray) – Redshift value.

Returns:

dPhi_dM value in the unit of comoving volume.

Return type:

float or np.ndarray :unit: mag^-1 Mpc^-3

generate_quasar_redshifts(m_min, m_max)[source]

Generates redshift locations of quasars using a light cone formulation.

Parameters:
  • m_min (float) – Minimum apparent magnitude.

  • m_max (float) – Maximum apparent magnitude.

Returns:

Redshift locations of quasars.

Return type:

np.ndarray

inverse_cdf_fits_for_redshifts(m_min, m_max, quasar_redshifts)[source]

Creates inverse Cumulative Distribution Function (CDF) fits for each redshift.

Parameters:
  • m_min (float) – Minimum apparent magnitude.

  • m_max (float) – Maximum apparent magnitude.

  • quasar_redshifts (array-like) – Redshift values generated from generate_quasar_redshifts.

Returns:

Dictionary containing inverse CDF functions for each redshift.

Return type:

dict

k_corr_interp(z)[source]

This function computes the k-correction for a quasar at a given redshift.

Parameters:

z (float or np.array) – Redshift value at which k correction need to be computed.

Returns:

k-correction value for given redshifts.

n_comoving(m_min, m_max, z_value)[source]

Calculates the comoving number density of quasars by integrating dPhi/dM over the range of absolute magnitudes.

Parameters:
  • m_min (float or np.ndarray) – Minimum apparent magnitude.

  • m_max (float or np.ndarray) – Maximum apparent magnitude.

  • z_value (float or np.ndarray) – Redshift value.

Returns:

Comoving number density of quasars.

Return type:

float or np.ndarray :unit: Mpc^-3

quasar_sample(m_min, m_max, seed=42, host_galaxy=False)[source]

Generates random redshift values and associated apparent i-band magnitude values for quasar samples.

Parameters:
  • m_min (float) – Minimum apparent magnitude.

  • m_max (float) – Maximum apparent magnitude.

  • seed (int) – Random seed for reproducibility.

  • host_galaxy – Host galaxy catalog generation flag. If True, the host galaxy catalog will be generated and matched with the quasar catalog. If False, no host galaxy catalog will be generated.

Returns:

astropy Table with redshift and associated apparent i-band magnitude values.

Return type:

~astropy.table.Table

slsim.Sources.SourceCatalogues.QuasarCatalog.simple_quasar module

slsim.Sources.SourceCatalogues.QuasarCatalog.simple_quasar.quasar_catalog_simple(num_quasars=50000, z_min=0.1, z_max=5, m_min=17, m_max=23, amp_min=18, amp_max=23, freq_min=0.5, freq_max=1.5)[source]

Creates an simple catalog of quasars. It generate random redshift and magnitude values in r, g, and i band. Also, generates amplitude and frequency for each source. The function only works for r, g, and i band magnitudes.

Parameters:
  • number – number of sources we want

  • z_min – minimum redshift for sources

  • z_max – maximum redshift for sources

  • m_min – minimum magnitude for sources in r band

  • m_max – maximum magnitude for sources in r band

  • amp_min – minimum amplitude for sources

  • amp_max – maximum amplitude for sources

  • freq_min – minimum frequency for sources

  • freq_max – maximum frequency for sources

Returns:

an astropy table of quasar catalog

Module contents

slsim.Sources.SourceCatalogues.QuasarCatalog.quasar_galaxies_simple(m_min=17, m_max=23, amp_min=0.9, amp_max=1.3, freq_min=0.5, freq_max=1.5, sky_area=<Quantity 0.1 deg2>)[source]

Creates an simple catalog of quasars and host galaxies. It generate random magnitude values in r, g, and i band for quasars. Also, generates amplitude and frequency for each source. Then, adds all these quasar properties to the galaxy catalog produced by skypy.

Parameters:
  • z_max – maximum redshift for sources

  • m_min – minimum magnitude for sources in r band

  • m_max – maximum magnitude for sources in r band

  • amp_min – minimum amplitude for sources

  • amp_max – maximum amplitude for sources

  • freq_min – minimum frequency for sources

  • freq_max – maximum frequency for sources

Returns:

an astropy table of quasars and host galaxies catalog