Source code for cosmofit.likelihoods.bao_lowz

"""
Low-redshift BAO likelihood (6dFGS + SDSS DR7 MGS).
"""

from __future__ import annotations

from cosmofit.data.loader import load_bao_lowz

from .desi import BAODistanceLikelihood


[docs] class BAOLowZLikelihood(BAODistanceLikelihood): """ The two BAO measurements below z = 0.2: 6dFGS at z = 0.106 (Beutler et al. 2011) and the SDSS DR7 Main Galaxy Sample at z = 0.15 (Ross et al. 2015). Every other BAO dataset in this library starts at z = 0.295 (DESI) or z = 0.38 (BOSS DR12), so these two points are the only BAO leverage available in the regime where the expansion history is closest to today's -- exactly where a dark-energy equation of state that evolves has to show up. Two points with ~4-5% errors will not, on their own, move a fit much; what they do is extend the lever arm of the BAO-only distance ladder downward, which matters for the ``H0 * r_d`` degeneracy that BAO alone cannot break. Both surveys are independent of DESI and of SDSS BOSS/eBOSS (6dFGS is a different hemisphere and instrument; the DR7 MGS is a brighter, lower-redshift sample than the BOSS LRGs), so unlike ``"desi"`` and ``"sdss_bao"`` -- which must not be combined -- this dataset *can* be added to either. Two details are handled rather than papered over: - 6dFGS reports ``r_s/D_V``, not ``D_V/r_s``. That is kept as its own observable type (``"rs_over_DV"`` in :data:`~likelihoods.desi.MODEL_MAP`) rather than inverted in the data file, because inverting a Gaussian gives something that is neither Gaussian nor centred where the inversion of the mean is. - 6dFGS's measurement is calibrated against an Eisenstein & Hu (1998) fitting-formula sound horizon (153.9 Mpc for their fiducial) where a Boltzmann code gives 149.8 Mpc for the same cosmology, so the theory ``r_d`` is multiplied by 153.9/149.8 before the comparison. See :attr:`~data.dataset.DESIDataset.rs_rescale`. At 2.7% on a 4.5%-precision point this is not optional. Parameters ---------- cosmology Cosmology model instance (LCDM, CPL, ...). version : str, optional Dataset version. References ---------- Beutler et al. (2011), MNRAS 416, 3017, arXiv:1106.3366. Ross et al. (2015), MNRAS 449, 835, arXiv:1409.3242. """
[docs] def __init__( self, cosmology, version: str = "6dfgs+mgs", ): dataset = load_bao_lowz( version, ) super().__init__( name="BAO low-z", dataset=dataset, cosmology=cosmology, )
# -------------------------------------------------------- @property def observable( self, ): return "BAO distance ratios (z < 0.2)"