mirror of
https://github.com/hoellin/selfisys_public.git
synced 2025-06-08 00:51:11 +00:00
120 lines
3.4 KiB
Python
120 lines
3.4 KiB
Python
#!/usr/bin/env python3
|
|
# ----------------------------------------------------------------------
|
|
# Copyright (C) 2024 Tristan Hoellinger
|
|
# Distributed under the GNU General Public License v3.0 (GPLv3).
|
|
# See the LICENSE file in the root directory for details.
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
# ----------------------------------------------------------------------
|
|
|
|
__author__ = "Tristan Hoellinger"
|
|
__version__ = "0.1.0"
|
|
__date__ = "2024"
|
|
__license__ = "GPLv3"
|
|
|
|
"""Global parameters for this project."""
|
|
|
|
import os
|
|
from pathlib import Path
|
|
import numpy as np
|
|
|
|
WHICH_SPECTRUM = "class" # available options are "eh" and "class"
|
|
|
|
# Load global paths from environment variables
|
|
ROOT_PATH = os.getenv("SELFISYS_ROOT_PATH")
|
|
if ROOT_PATH is None:
|
|
raise EnvironmentError("Please set the 'SELFISYS_ROOT_PATH' environment variable.")
|
|
OUTPUT_PATH = os.getenv("SELFISYS_OUTPUT_PATH")
|
|
if OUTPUT_PATH is None:
|
|
raise EnvironmentError("Please set the 'SELFISYS_OUTPUT_PATH' environment variable.")
|
|
|
|
# Default verbose level
|
|
# 0: errors only, 1: info, 2: warnings+, 3: all diagnostics, 4+: debug
|
|
DEFAULT_VERBOSE_LEVEL = 2
|
|
|
|
# Baseline seeds for reproducibility
|
|
BASELINE_SEEDNORM = 100030898
|
|
BASELINE_SEEDNOISE = 200030898
|
|
BASELINE_SEEDPHASE = 300030898
|
|
SEEDPHASE_OBS = 100030896
|
|
SEEDNOISE_OBS = 100030897
|
|
|
|
# Fiducial cosmological parameters
|
|
h_planck = 0.6766
|
|
Omega_b_planck = 0.02242 / h_planck**2
|
|
Omega_m_planck = 0.3111
|
|
nS_planck = 0.9665
|
|
sigma8_planck = 0.8102
|
|
|
|
planck_mean = np.array([h_planck, Omega_b_planck, Omega_m_planck, nS_planck, sigma8_planck])
|
|
planck_cov = np.diag(np.array([0.0042, 0.00030, 0.0056, 0.0038, 0.0060]) ** 2)
|
|
|
|
# Mock unknown ground truth parameters for consistency checks
|
|
h_obs = 0.679187146124996
|
|
Omega_b_obs = 0.0487023481098232
|
|
Omega_m_obs = 0.3053714257403574
|
|
nS_obs = 0.9638467785003454
|
|
sigma8_obs = 0.8210464735135183
|
|
|
|
omegas_gt = np.array([h_obs, Omega_b_obs, Omega_m_obs, nS_obs, sigma8_obs])
|
|
|
|
# Mapping from cosmological parameter names to corresponding indices
|
|
cosmo_params_names = [r"$h$", r"$\Omega_b$", r"$\Omega_m$", r"$n_S$", r"$\sigma_8$"]
|
|
cosmo_params_name_to_idx = {"h": 0, "Omega_b": 1, "Omega_m": 2, "n_s": 3, "sigma8": 4}
|
|
|
|
# Minimum k value used in the normalisation of the summaries
|
|
MIN_K_NORMALISATION = 4e-2
|
|
|
|
params_planck_kmax_missing = {
|
|
"h": h_planck,
|
|
"Omega_r": 0.0,
|
|
"Omega_q": 1.0 - Omega_m_planck,
|
|
"Omega_b": Omega_b_planck,
|
|
"Omega_m": Omega_m_planck,
|
|
"m_ncdm": 0.0,
|
|
"Omega_k": 0.0,
|
|
"tau_reio": 0.066,
|
|
"n_s": nS_planck,
|
|
"sigma8": sigma8_planck,
|
|
"w0_fld": -1.0,
|
|
"wa_fld": 0.0,
|
|
"WhichSpectrum": WHICH_SPECTRUM,
|
|
}
|
|
|
|
params_BBKS_kmax_missing = {
|
|
"h": h_planck,
|
|
"Omega_r": 0.0,
|
|
"Omega_q": 1.0 - Omega_m_planck,
|
|
"Omega_b": Omega_b_planck,
|
|
"Omega_m": Omega_m_planck,
|
|
"m_ncdm": 0.0,
|
|
"Omega_k": 0.0,
|
|
"tau_reio": 0.066,
|
|
"n_s": nS_planck,
|
|
"sigma8": sigma8_planck,
|
|
"w0_fld": -1.0,
|
|
"wa_fld": 0.0,
|
|
"WhichSpectrum": "BBKS",
|
|
}
|
|
|
|
params_cosmo_obs_kmax_missing = {
|
|
"h": h_obs,
|
|
"Omega_r": 0.0,
|
|
"Omega_q": 1.0 - Omega_m_obs,
|
|
"Omega_b": Omega_b_obs,
|
|
"Omega_m": Omega_m_obs,
|
|
"m_ncdm": 0.0,
|
|
"Omega_k": 0.0,
|
|
"tau_reio": 0.066,
|
|
"n_s": nS_obs,
|
|
"sigma8": sigma8_obs,
|
|
"w0_fld": -1.0,
|
|
"wa_fld": 0.0,
|
|
"WhichSpectrum": WHICH_SPECTRUM,
|
|
}
|
|
|
|
# Default hyperparameters for the wiggle-less prior from [leclercq2019primordial].
|
|
THETA_NORM_GUESS = 0.05
|
|
K_CORR_GUESS = 0.01
|
|
|
|
# Base ID for the observations
|
|
BASEID_OBS = "obs"
|