Coverage for pesummary/gw/cosmology.py: 100.0%
23 statements
« prev ^ index » next coverage.py v7.4.4, created at 2024-12-09 22:34 +0000
« prev ^ index » next coverage.py v7.4.4, created at 2024-12-09 22:34 +0000
1# Licensed under an MIT style license -- see LICENSE.md
3from pesummary import conf
4from astropy import cosmology as cosmo
5from astropy.cosmology import parameters
7__author__ = ["Charlie Hoy <charlie.hoy@ligo.org>"]
8_astropy_cosmologies = [i.lower() for i in parameters.available]
9available_cosmologies = _astropy_cosmologies + ["planck15_lal"]
10available_cosmologies += [
11 _cosmology + "_with_riess2019_h0" for _cosmology in available_cosmologies
12]
15def get_cosmology(cosmology=conf.cosmology):
16 """Return the cosmology that is being used
18 Parameters
19 ----------
20 cosmology: str
21 name of a known cosmology
22 """
23 if cosmology.lower() not in available_cosmologies:
24 raise ValueError(
25 "Unrecognised cosmology {}. Available cosmologies are {}".format(
26 cosmology, ", ".join(available_cosmologies)
27 )
28 )
29 elif cosmology.lower() in _astropy_cosmologies:
30 ind = [
31 num for num, name in enumerate(_astropy_cosmologies) if
32 name == cosmology.lower()
33 ][0]
34 return getattr(cosmo, list(parameters.available)[ind])
35 elif cosmology.lower() == "planck15_lal":
36 return Planck15_lal_cosmology()
37 elif "_with_riess2019_h0" in cosmology.lower():
38 base_cosmology = cosmology.lower().split("_with_riess2019_h0")[0]
39 return Riess2019_H0_cosmology(base_cosmology)
42def Planck15_lal_cosmology():
43 """Return the Planck15 cosmology coded up in lalsuite
44 """
45 return cosmo.LambdaCDM(H0=67.90, Om0=0.3065, Ode0=0.6935)
48def Riess2019_H0_cosmology(base_cosmology):
49 """Return the base cosmology but with the Riess2019 H0 value. For details
50 see https://arxiv.org/pdf/1903.07603.pdf.
52 Parameters
53 ----------
54 base_cosmology: str
55 name of cosmology to use as the base
56 """
57 _base_cosmology = get_cosmology(base_cosmology)
58 return cosmo.LambdaCDM(
59 H0=74.03, Om0=_base_cosmology.Om0, Ode0=_base_cosmology.Ode0
60 )