GWForge.population.redshift

Attributes

Classes

Functions

madau_dickinson_psi_of_z(redshift, gamma, kappa, z_peak)

Madau-Dickinson redshift evolution \(\psi(z)\), normalised so that

power_law_psi_of_z(redshift, lamb)

Power-law redshift evolution \(\psi(z) = (1 + z)^\lambda\).

Module Contents

GWForge.population.redshift.TIME_DELAY_MODELS = ('inverse', 'powerlaw')[source]
GWForge.population.redshift.DEFAULT_TIME_DELAY_MINIMUM = 0.02[source]
GWForge.population.redshift.GWTC5_LOCAL_MERGER_RATE_DENSITY = 23.3895396[source]
GWForge.population.redshift.FORMATION_GRID_POINTS = 20000[source]
GWForge.population.redshift.FORMATION_REDSHIFT_MAXIMUM = 1000.0[source]
GWForge.population.redshift.TIME_DELAY_GRID_POINTS = 3000[source]
GWForge.population.redshift.COALESCENCE_GRID_POINTS = 10000[source]
GWForge.population.redshift.REDSHIFT_MODEL_PARAMETERS[source]
GWForge.population.redshift.madau_dickinson_psi_of_z(redshift, gamma, kappa, z_peak)[source]

Madau-Dickinson redshift evolution \(\psi(z)\), normalised so that \(\psi(0) = 1\).

\[\psi(z) = \frac{(1 + z)^\gamma}{1 + ((1 + z) / (1 + z_p))^\kappa} \left[1 + (1 + z_p)^{-\kappa}\right]\]

Matches gwpopulation.models.redshift.MadauDickinsonRedshift.psi_of_z (Fishbach+ arXiv:1805.10270 Eq. 33; normalisation from Callister+ arXiv:2003.12152 Eq. 2). Written with plain arithmetic so it also accepts a sympy symbol, as required by Redshift.transform().

GWForge.population.redshift.power_law_psi_of_z(redshift, lamb)[source]

Power-law redshift evolution \(\psi(z) = (1 + z)^\lambda\).

Matches gwpopulation.models.redshift.PowerLawRedshift.psi_of_z (Fishbach+ arXiv:1805.10270).

GWForge.population.redshift.REDSHIFT_GRID_POINTS = 2500[source]
GWForge.population.redshift.REDSHIFT_GRID_MINIMUM = 1e-06[source]
class GWForge.population.redshift.Redshift(redshift_model, local_merger_rate_density, maximum_redshift, gps_start_time, analysis_time=YRJUL_SI, cosmology='Planck18', parameters={'gamma': 2.7, 'kappa': 5.6, 'z_peak': 1.9}, time_delay_model='inverse', time_delay_slope=1.0, time_delay_minimum=DEFAULT_TIME_DELAY_MINIMUM, H0=70, Om0=0.3, Ode0=0.7, Tcmb0=2.725, Ob0=None)[source]
redshift_model = ''[source]
local_merger_rate_density[source]
maximum_redshift[source]
analysis_time[source]
gps_start_time[source]
cosmology = 'Planck18'[source]
parameters[source]
time_delay_model = ''[source]
time_delay_slope = 1.0[source]
time_delay_minimum = 0.02[source]
import_cosmology()[source]

Resolve this object’s cosmology specification.

Delegates to GWForge.cosmology.astropy_cosmology(), which is the single place a GWForge cosmology specification is resolved, so that the redshifts a population is sampled from and the luminosity distances it is labelled with cannot come from two different universes.

Return type:

astropy.cosmology.FLRW

differential_lookback_time(redshift)[source]

Derivative of lookback time t(z) with respect to z, in Gyr. See Eq.(A3) of <arXiv:2011.02717v3>. Vectorised over redshift.

time_delay_probability(tau)[source]

Formation->merger time-delay distribution, \(p(\tau)\).

Power-law model \(p(\tau) \propto \tau^{-\mathrm{slope}}\) supported on [time_delay_minimum, age_of_universe] and zero elsewhere. slope = 1 recovers the 1/\tau (“inverse”) model. The normalisation is a global constant and cancels in rate_density(), so it is omitted here.

rate_density(elements=1000)[source]

Merger-rate density \(R(z_m)\) as a function of merger redshift.

Convolves the star-formation rate with the time-delay distribution,

\[R(z_m) \propto \int_{z_m}^{\infty} \psi(z_f)\, p\!\left(t(z_f) - t(z_m)\right) \frac{dt}{dz_f}\, dz_f,\]

where \(\psi\) is the SFR, \(p(\tau)\) the time-delay distribution (time_delay_probability()), and \(t(z)\) the lookback time. The result is normalised and rescaled to local_merger_rate_density at \(z_m = 0\). Replaces the previous pycbc + sympy implementation with direct vectorised numerical integration.

Returns:

merger rate density – Callable over [0, maximum_redshift], in Mpc^-3 yr^-1.

Return type:

scipy.interpolate.interp1d

coalescence_rate()[source]

Detector-frame merger rate per unit redshift, \(dR/dz\) (yr^-1).

\[\frac{dR}{dz} = R(z)\, \frac{1}{1 + z}\, \frac{dV_c}{dz},\]

with \(dV_c/dz = 4\pi\, (dV_c/d\Omega/dz)\) the comoving volume element and the \(1/(1+z)\) factor converting source-frame to detector-frame time. Reproduces pycbc.population.population_models.coalescence_rate.

average_time_between_signals()[source]

Calculates the average time interval (in seconds) between two signals of the same type, out to maximum_redshift.

sample()[source]
Returns:

parameters – dictionary of redshift, time_interval, tc

Return type:

dict