PTEmu
Main PTEmu module.
- class comet.PTEmu.PTEmu(model, use_Mpc=True, bias_basis='EggScoSmi')[source]
Bases:
object
Main class for the emulator of the power spectrum multipoles.
The emulator makes use of evolution mapping (Sanchez 2020, Sanchez et al 2021,) to compress the information of evolution parameters \(\mathbf{\Theta_{e}}\) (e.g. \(h,\,\Omega_\mathrm{K},\,w_0,\,w_\mathrm{a},\,A_\mathrm{s},\, \ldots\)) into the single quantity \(\sigma_{12}\), defined as the rms fluctuation of the linear density contrast \(\delta\) within spheres of radius \(R=8\,\mathrm{Mpc}\).
This parameter, together with the parameters affecting the shape of the power spectrum \(\mathbf{\Theta_{s}}\) (e.g. \(\omega_\mathrm{b},\,\omega_\mathrm{c},\,n_\mathrm{s}\)), and the linear growth rate \(f\), are used as base of the emulator.
The redshift-dependency of the multipoles can also be treated similarly to the impact that different evolution parameters have on the power spectrum, that is, by a simple rescaling of the amplitude of the power spectrum in order to match the desired value of \(\sigma_{12}\).
Internally to the emulator, the pair \(\left[k,P(k)\right]\) is expressed in \(\left[\mathrm{Mpc}^{-1},\mathrm{Mpc}^3\right]\) units, since this is the only set of units for which the evolution parameter degeneracy is present. If the user wishes to use the more conventional unit set \(\left[h\,\mathrm{Mpc}^{-1},h^{-3}\,\mathrm{Mpc}^3\right]\), they can do so by specifying it in the proper class attribute flag. In this case, the input/output are converted into \(\mathrm{Mpc}\) units before being used/returned.
Geometrical distortions (AP corrections) are included a posteriori without the need of including them in the emulation. This process is carried out by first reconstructing the full anisotropic 2d galaxy power spectrum \(P_\mathrm{gg}(k,\mu)\), summing up all the even multipoles up to \(\ell=6\), applying distortions to \(k\) and \(\mu\), and then projecting again over the Legendre polynomials.
Class constructor.
- Parameters
- init_params_dict()[source]
Initialize params dictionary.
Sets up the internal class attribute which stores the complete list of model parameters. This includes cosmological parameters as well as biases, noises, counterterms, and other nuisance parameters.
- load_emulator_data(fname)[source]
Load tables of the emulator.
Loads a fits file, reads the tables and stores them as class attributes, as instances of the Tables class. Additionally sets up the internal dictionary that stores the full list of model parameters, by calling init_params_dict. Determine if the emulator is for real- or redshift-space, checking if the growth rate \(f\) is part of the parameter sample or not.
- Parameters
fname (str) – Name of the output fits file to read from.
- load_emulator(fname_base, data_type=None)[source]
Load the emulator from pickle file.
Loads an emulator object from a file (pickle format) and adds it to the internal dictionary containing the emulators.
- define_units(use_Mpc)[source]
Define units for the power spectrum and number density.
Sets the internal class attribute use_Mpc, clears all the data objects (if defined), and resets the number density to 1 in the units corresponding to the input flag. The number density value can be subsequently explicitly changed calling define_nbar.
- Parameters
use_Mpc (bool) – Flag that determines if the input and output quantities are specified in \(\mathrm{Mpc}\) (True) or \(h^{-1}\,\mathrm{Mpc}\) (False) units.
- define_nbar(nbar)[source]
Define the number density of the sample.
Sets the internal class attribute nbar to the value provided as input. The latter is intended to be in the set of units currently used by the emulator, that can be specified at class instanciation, or using the method define_units.
- Parameters
nbar (float) – Number density of the sample, in units of \(\mathrm{Mpc}^{-3}\) or \(h^3\,\mathrm{Mpc}^{-3}\), depending on the value of the class attribute use_Mpc.
- define_data_set(obs_id, **kwargs)[source]
Define data sample.
If the identifier of the data sample is not present in the internal data dictionary, it assigns a new MeasuredData object to it. Otherwise it updates the already existing entry.
- define_fiducial_cosmology(HDm_fid=None, params_fid=None, de_model='lambda')[source]
Define fiducial cosmology.
Sets the internal attributes of the class to store the parameters of the fiducial cosmology, required for the calculation of the AP corrections.
- Parameters
HDm_fid (list or numpy.ndarray, optional) – List containing the fiducial expansion factor \(H(z)\) and angular diameter distance \(D_\mathrm{A}(z)\), in the units defined by the class attribute use_Mpc. If None, this method expects to find a dictionary containing the parameters of the fiducial cosmology (see params_fid below). Defaults to None.
params_fid (dict, optional) – Dictionary containing the parameters of the fiducial cosmology, used to compute the expansion factor \(H(z)\) and angular diameter distance \(D_\mathrm{A}(z)\), in the units defined by the class attribute use_Mpc. Defaults to None.
de_model (str, optional) – String that determines the dark energy equation of state. Can be chosen form the list [“lambda”, “w0”, “w0wa”]. Defaults to “lambda”.
- update_params(params, de_model=None)[source]
Update parameters of the emulator.
Sets the internal attributes of the class to store the parameters of the emulator, based on the input argument, and resets to None the internal dictionary containing the model ingredients.
- Parameters
params (dict) – Dictionary containing the list of total model parameters which are internally used by the emulator. The keyword/value pairs of the dictionary specify the names and the values of the parameters, respectively.
de_model (str, optional) – String that determines the dark energy equation of state. Can be chosen from the list [“lambda”, “w0”, “w0wa”] to work with the standard cosmological parameters, or be left undefined to use only \(\sigma_{12}\). Defaults to None.
- update_AP_params(params, de_model=None, q_tr_lo=None)[source]
Update AP parameters.
Sets the internal attributes of the class to store the AP parameters.
- Parameters
params (dict) – Dictionary containing the list of total model parameters which are internally used by the emulator. The keyword/value pairs of the dictionary specify the names and the values of the parameters, respectively.
de_model (str, optional) – String that determines the dark energy equation of state. Can be chosen from the list [“lambda”, “w0”, “w0wa”] to work with the standard cosmological parameters, or be left undefined to use only \(\sigma_{12}\). Defaults to None.
q_tr_lo (list or numpy.ndarray, optional) – List containing the user-provided AP parameters, in the form \((q_\perp, q_\parallel)\). If provided, prevents computation from correct formulas (ratios of expansion factors and angular diameter distance). Defaults to None.
- get_bias_coeff()[source]
Get bias coefficients for the emulated terms.
Each term of the \(P_{\ell}\) expansion is multiplied by a combination of bias parameters. This method returns such combinations in an array format.
- Returns
params_comb – Combinations of bias parameters that multiply each term of the expansion of the multipole of order \(\ell\). The output corresponds to
\begin{flalign*} & P_{\delta\delta}^\mathrm{tree} \rightarrow b_1^2 \\ & P_{\delta\theta}^\mathrm{tree+1\mbox{-}loop} \ \rightarrow b_1 \\ & P_{\theta\theta}^\mathrm{tree+1\mbox{-}loop} \ \rightarrow 1 \\ & P_{\mathrm{ctr},k^2} \rightarrow \ [c_0,\: c_2,\: c_4] \\ & P_{\mathrm{ctr},k^4} \rightarrow \ [b_1^2c_\mathrm{nlo},\: b_1c_\mathrm{nlo},\: \ c_\mathrm{nlo}] \\ & P_{\delta\delta}^\mathrm{1\mbox{-}loop} \ \rightarrow b_1^2 \\ & P_{b_\mathrm{X}b_\mathrm{Y}} \rightarrow [b_1b_2, \ \: b_1\gamma_2,\: b_1\gamma_{21},\: \ b_2^2,\: b_2\gamma_2,\: \gamma_2^2,\: b_2,\: \ \gamma_2,\: \gamma_{21}] \end{flalign*}- Return type
- get_bias_coeff_for_P6()[source]
Get bias coefficients for the emulated terms of the octopole.
Differently from the lower-order multipoles \(P_{0,2,4}\), the shape parameters of \(P_6\) are kept fixed to the best values from Planck 2018 (TT+TE+EE+lowE+lensing), while each of the terms is rescaled by the current value of the growth rate \(f\) and \(\sigma_{12}\). Each term of the \(P_6\) expansion is therefore multiplied by a combination of growth rate and bias parameters. This method returns such combinations in an array format.
- Returns
params_comb – Combinations of bias parameters that multiply each term of the expansion of the multipole of order 6. The output corresponds to
\begin{flalign*} &P^\mathrm{tree}\rightarrow[b_1^2,\: fb_1,\: f^2] \\ &P^\mathrm{1\mbox{-}loop}\rightarrow[b_1^2,\: fb_1^2,\ \: f^2b_1^2,\: fb_1,\: f^2b_1,\: f^3b_1,\: f^2,\: \ f^3,\: f^4, \\ &\hspace{2.3cm} b_1b_2,\: fb_1b_2,\: b_1\gamma_2, \ \: fb_1\gamma_2,\: b_1\gamma_{21},\: b_2^2,\: \ b_2\gamma_2, \\ &\hspace{2.3cm} \gamma_2^2,\: fb_2,\: f^2b_2,\: \ f\gamma_2,\: f^2\gamma_2,\: f\gamma_{21}] \\ &P_{\mathrm{ctr},k^4}\rightarrow[f^4b_1^2 \ c_\mathrm{nlo},\: f^5b_1c_\mathrm{nlo},\: \ f^6c_\mathrm{nlo}] \end{flalign*}- Return type
- get_bias_coeff_for_chi2_decomposition()[source]
Get bias coefficients for the \(\chi^2\) tables.
In order to speed up the evaluation of the likelihood, the total \(\chi^2\) is factorised into separate contributions scaling with different combinations of the bias and shot-noise parameters (the latter are expressed in units of the sample mean number density \(\bar{n}\)). This method returns such combinations in an array format.
- Returns
params_comb – Combinations of bias and noise parameters that multiply each term of the factorisation of the total \(\chi^2\) into individual terms. The output correpsonds to
\begin{flalign*} & P_{\delta\delta}^\mathrm{tree} \rightarrow b_1^2 \\ & P_{\delta\theta}^\mathrm{tree+1\mbox{-}loop} \ \rightarrow b_1 \\ & P_{\theta\theta}^\mathrm{tree+1\mbox{-}loop} \ \rightarrow 1 \\ & P_{\mathrm{ctr},k^2} \rightarrow [c_0,\: c_2,\: \ c_4] \\ & P_{\mathrm{ctr},k^4} \rightarrow \ [b_1^2c_\mathrm{nlo},\: b_1c_\mathrm{nlo},\: \ c_\mathrm{nlo}] \\ & P_{\delta\delta}^\mathrm{1\mbox{-}loop} \ \rightarrow b_1^2 \\ & P_{b_\mathrm{X}b_\mathrm{Y}} \rightarrow [b_1b_2, \ \: b_1\gamma_2,\: b_1\gamma_{21},\: \ b_2^2,\: b_2\gamma_2,\: \gamma_2^2,\: b_2,\: \ \gamma_2,\: \gamma_{21}] \\ & P_\mathrm{noise} \rightarrow [N_0/\bar{n},\: \ N_{20}/\bar{n},\: N_{22}/\bar{n}] \end{flalign*}- Return type
- eval_emulator(params, ell, de_model=None)[source]
Evaluate the emulators for the different terms.
Sets up the internal parameters of the class, and evaluate the emulators for the various ingredients of the model, that are then stored as class attributes.
The list of emulated quantities comprises the linear power spectrum \(P_\mathrm{L}(k)\) (function of the shape parameters \(\mathbf{\Theta_{s}}\)), the value of \(\sigma_{12}\) (function of the shape parameters \(\mathbf{\Theta_{s}}\)), and all the integral tables consisting of ratios between individual contributions to the one-loop galaxy power spectrum and the linear one (function of shape parameters \(\mathbf{\Theta_{s}}\), the growth rate \(f\), and \(\sigma_{12}\)). For the VDG_infty model, an additional emulator is evaluated to obtain the value of the pairwise velocity dispersion, i.e. \(\sigma_\mathrm{v}\).
- Parameters
params (dict) – Dictionary containing the list of total model parameters which are internally used by the emulator. The keyword/value pairs of the dictionary specify the names and the values of the parameters, respectively.
ell (list or numpy.ndarray) – Specific multipole order \(\ell\). Can be chosen from the list [0,2,4], whose entries correspond to monopole (\(\ell=0\)), quadrupole (\(\ell=2\)) and hexadecapole (\(\ell=4\)).
de_model (str, optional) – String that determines the dark energy equation of state. Can be chosen from the list [“lambda”, “w0”, “w0wa”] to work with the standard cosmological parameters, or be left undefined to use only \(\sigma_{12}\). Defaults to None.
- W_kurt(k, mu)[source]
Large scale limit of the velocity difference generating function.
Method used exclusively if the VDG_infty model is specified.
In the large scale limit, \(r\rightarrow\infty\), the velocity difference generating function \(W_\mathrm{G}\) becomes scale-independent, with a gaussian limit given by
\[W_\infty(\lambda)=e^{-\lambda^2\sigma_\mathrm{v}^2},\]where \(\lambda=fk\mu\), and \(\sigma_\mathrm{v}\) is the pairwise velocity dispersion. This method returns a modified version of the gaussian limit, which also allows for non-zero kurtosis of the pairwise velocity distribution,
\[W_\infty(\lambda)=\frac{1}{\sqrt(1+a_\mathrm{vir}^2\lambda^2)} e^{-\frac{\lambda^2\sigma_\mathrm{v}^2} {1+a_\mathrm{vir}^2\lambda^2}},\]where \(a_\mathrm{vir}\) is a free parameter of the model, that can be specified in the list of model parameters when instantiating or updating the class.
- build_Pell_spline(Pell, ell)[source]
Build spline object for power spectrum multipoles.
Generates a cubic spline object for the specified power spectrum multipole, including the computation of effective indexes for the low- and high-\(k\) tails of the multipole, and stores it as class attribute.
- Parameters
Pell (list or numpy.ndarray) – Array containing the power spectrum multipole of order \(\ell\), evaluated at the wavemodes defined by the class attribute k_table.
ell (int) – Specific multipole order \(\ell\). Can be chosen from the list [0,2,4,6], whose entries correspond to monopole (\(\ell=0\)), quadrupole (\(\ell=2\)), hexadecapole (\(\ell=4\)) and octopole (\(\ell=6\)).
- build_Pdw_spline(Pdw)[source]
Build spline object for multipoles of linear de-wiggled power spectrum.
Generates a cubic spline object for the linear de-wiggled power spectrum, including the computation of effective indexes for the low- and high-\(k\) tails, and stores it as class attribute.
- Parameters
Pdw (list or numpy.ndarray) – Array containing the de-wiggled linear power spectrum evaluated at the wavemodes defined by the class attribute k_table.
- eval_Pell_spline(k, ell)[source]
Evaluate the spline of the specified power spectrum multipole.
Calls the spline object stored as class attribute for the power spectrum multipole of given order \(\ell\) on the input wavemodes \(k\). The called interpolator results in a cubic spline or in a power-law extrapolation, depending if the value of \(k\) is within or outside the original boundary spcified by the training table.
- Parameters
k (numpy.ndarray) – Values of the requested wavemodes \(k\).
ell (int) – Specific multipole order \(\ell\). Can be chosen from the list [0,2,4,6], whose entries correspond to monopole (\(\ell=0\)), quadrupole (\(\ell=2\)), hexadecapole (\(\ell=4\)) and octopole (\(\ell=6\)).
- Returns
spline – Interpolated power spectrum multipole of order \(\ell\) at the requested wavemodes \(k\).
- Return type
- eval_Pdw_spline(k)[source]
Evaluate the spline of the linear de-wiggled power spectrum.
Calls the spline object stored as class attribute for the linear de-wiggled power spectrum on the input wavemodes \(k\). The called interpolator results in a cubic spline or in a power-law extrapolation, depending if the value of \(k\) is within or outside the original boundary spcified by the training table.
- Parameters
k (numpy.ndarray) – Values of the requested wavemodes \(k\).
- Returns
spline – Interpolated linear de-wiggled power spectrum at the requested wavemodes \(k\).
- Return type
- PL(k, params, de_model=None)[source]
Compute the linear power spectrum predictions.
Evaluates the emulator calling eval_emulator, and returns the linear power spectrum \(P_\mathrm{L}(k)\) at the specified wavemodes.
- Parameters
k (float or numpy.ndarray) – Value of the requested wavemodes \(k\).
params (dict) – Dictionary containing the list of total model parameters which are internally used by the emulator. The keyword/value pairs of the dictionary specify the names and the values of the parameters, respectively.
de_model (str, optional) – String that determines the dark energy equation of state. Can be chosen from the list [“lambda”, “w0”, “w0wa”] to work with the standard cosmological parameters, or be left undefined to use only \(\sigma_{12}\). Defaults to None.
- Returns
PL – Linear power spectrum \(P_\mathrm{L}(k)\) evaluated at the input wavemodes \(k\).
- Return type
- Pdw_2d(k, mu, params, de_model=None, ell_for_recon=None)[source]
Compute the anisotropic leading order IR-resummed power spectrum.
Evaluates the emulator calling eval_emulator, and returns the anisotropic leading order IR-resummed power spectrum \(P_\mathrm{IR-res}^\mathrm{LO}(k,\mu)\), defined as
\[P_\mathrm{IR-res}^\mathrm{LO}(k,\mu) = P_\mathrm{nw}(k) + \ e^{-k^2\Sigma^2(f,\mu)}P_\mathrm{w}(k),\]where \(P_\mathrm{nw}\) and \(P_\mathrm{w}\) are the no-wiggle and wiggle-only component of the linear matter power spectrum, and \(\Sigma(f,\mu)\) is the anisotropic BAO damping factor due to infrared modes.
Notice how this function does not include the leading order Kaiser effect due to the impact of the velocity field on the amplitude of the power spectrum.
- Parameters
k (float or numpy.ndarray) – Value of the requested wavemodes \(k\).
mu (float or numpy.ndarray) – Value of the cosine \(\mu\) of the angle between the pair separation and the line of sight.
params (dict) – Dictionary containing the list of total model parameters which are internally used by the emulator. The keyword/value pairs of the dictionary specify the names and the values of the parameters, respectively.
de_model (str, optional) – String that determines the dark energy equation of state. Can be chosen from the list [“lambda”, “w0”, “w0wa”] to work with the standard cosmological parameters, or be left undefined to use only \(\sigma_{12}\). Defaults to None.
ell_for_recon (list, optional) – List of \(\ell\) values used for the reconstruction of the 2d leading-order IR-resummed power spectrum. If None, all the even multipoles up to \(\ell=6\) are used in the reconstruction. Defaults to None.
- Returns
Pdw_2d – Leading-order infrared resummed power spectrum \(P_\mathrm{IR-res}^\mathrm{LO}(k,\mu)\) evaluated at the input wavemodes \(k\) and angles \(\mu\).
- Return type
- Pdw(k, params, de_model=None, ell_for_recon=None)[source]
Compute the real space leading order IR-resummed power spectrum.
Evaluates the emulator calling eval_emulator, and returns the real space (\(\mu = 0\)) leading order IR-resummed power spectrum \(P_\mathrm{IR-res}^\mathrm{LO}(k,\mu)\), defined as
\[P_\mathrm{IR-res}^\mathrm{LO}(k,\mu) = P_\mathrm{nw}(k) + \ e^{-k^2\Sigma^2(f,\mu)}P_\mathrm{w}(k),\]where \(P_\mathrm{nw}\) and \(P_\mathrm{w}\) are the no-wiggle and wiggle-only component of the linear matter power spectrum, and \(\Sigma(f,\mu)\) is the anisotropic BAO damping factor due to infrared modes.
Notice how this function does not include the leading order Kaiser effect due to the impact of the velocity field on the amplitude of the power spectrum.
- Parameters
k (float or numpy.ndarray) – Value of the requested wavemodes \(k\).
mu (float or numpy.ndarray) – Value of the cosine \(\mu\) of the angle between the pair separation and the line of sight.
params (dict) – Dictionary containing the list of total model parameters which are internally used by the emulator. The keyword/value pairs of the dictionary specify the names and the values of the parameters, respectively.
de_model (str, optional) – String that determines the dark energy equation of state. Can be chosen from the list [“lambda”, “w0”, “w0wa”] to work with the standard cosmological parameters, or be left undefined to use only \(\sigma_{12}\). Defaults to None.
ell_for_recon (list, optional) – List of \(\ell\) values used for the reconstruction of the 2d leading-order IR-resummed power spectrum. If None, all the even multipoles up to \(\ell=6\) are used in the reconstruction. Defaults to None.
- Returns
Pdw_2d – Leading-order infrared resummed power spectrum \(P_\mathrm{IR-res}^\mathrm{LO}(k,\mu)\) evaluated at the input wavemodes \(k\) and angles \(\mu\).
- Return type
- Pell_fid_ktable(params, ell, de_model=None)[source]
Compute the power spectrum multipoles at the training wavemodes.
Returns the specified multipole at a fixed \(k\) grid corresponding to the wavemodes used to train the emulator (without the need to recur to a spline interpolation in \(k\)). The output power spectrum multipole is not corrected for AP distortions. Used for validation purposes.
- Parameters
params (dict) – Dictionary containing the list of total model parameters which are internally used by the emulator. The keyword/value pairs of the dictionary specify the names and the values of the parameters, respectively.
ell (int) – Specific multipole order \(\ell\). Can be chosen from the list [0,2,4,6], whose entries correspond to monopole (\(\ell=0\)), quadrupole (\(\ell=2\)), hexadecapole (\(\ell=4\)) and octopole (\(\ell=6\)).
de_model (str, optional) – String that determines the dark energy equation of state. Can be chosen from the list [“lambda”, “w0”, “w0wa”] to work with the standard cosmological parameters, or be left undefined to use only \(\sigma_{12}\). Defaults to None.
- Returns
Pell – Power spectrum multipole of order \(\ell\) at the fixed \(k\) grid used for the training of the emulator.
- Return type
- Pell(k, params, ell, de_model=None, binning=None, obs_id=None, q_tr_lo=None, W_damping=None, ell_for_recon=None)[source]
Compute the power spectrum multipoles.
Main method to compute the galaxy power spectrum multipoles. Returns the specified multipole at the given wavemodes \(k\).
- Parameters
k (float or list or numpy.ndarray) – Wavemodes \(k\) at which to evaluate the multipoles. If a list is passed, it has to match the size of ell, and in that case each wavemode refer to a given multipole.
params (dict) – Dictionary containing the list of total model parameters which are internally used by the emulator. The keyword/value pairs of the dictionary specify the names and the values of the parameters, respectively.
ell (int or list) – Specific multipole order \(\ell\). Can be chosen from the list [0,2,4,6], whose entries correspond to monopole (\(\ell=0\)), quadrupole (\(\ell=2\)), hexadecapole (\(\ell=4\)) and octopole (\(\ell=6\)).
de_model (str, optional) – String that determines the dark energy equation of state. Can be chosen from the list [“lambda”, “w0”, “w0wa”] to work with the standard cosmological parameters, or be left undefined to use only \(\sigma_{12}\). Defaults to None.
binning (dict, optional) –
obs_id (str, optional) – If not None the returned power spectrum will be convolved with a survey window function. In that case the string must be a valid data set identifier and the window function mixing matrix must have been loaded beforehand. Defaults to None.
q_tr_lo (list or numpy.ndarray, optional) – List containing the user-provided AP parameters, in the form \((q_\perp, q_\parallel)\). If provided, prevents computation from correct formulas (ratios of angular diameter distances and expansion factors wrt to the corresponding quantities of the fiducial cosmology). Defaults to None.
W_damping (Callable[[float, float], float], optional) – Function returning the shape of the pairwise velocity generating function in the large scale limit, \(r\rightarrow\infty\). The function accepts two floats as arguments, corresponding to the wavemode \(k\) and the cosinus of the angle between pair separation and line of sight \(\mu\), and returns a float. This function is used only with the VDG_infty model. If None, it uses the free kurtosis distribution defined by W_kurt. Defaults to None.
ell_for_recon (list, optional) – List of \(\ell\) values used for the reconstruction of the 2d leading-order IR-resummed power spectrum. If None, all the even multipoles up to \(\ell=6\) are used in the reconstruction. Defaults to None.
- Returns
Pell_dict – Dictionary containing all the requested power spectrum multipoles of order \(\ell\) at the specified \(k\).
- Return type
- Pell_fixed_cosmo_boost(k, params, ell, de_model=None, binning=None, obs_id=None, q_tr_lo=None, W_damping=None, ell_for_recon=None)[source]
Compute the power spectrum multipoles (fast for fixed cosmology).
Main method to compute the galaxy power spectrum multipoles. Returns the specified multipole at the given wavemodes \(k\). Differently from Pell, if the cosmology has not been varied from the last call, this method simply reconstruct the final multipoles by multiplying the stored model ingredients (which, at fixed cosmology are the same) by the new bias parameters.
- Parameters
k (float or list or numpy.ndarray) – Wavemodes \(k\) at which to evaluate the multipoles. If a list is passed, it has to match the size of ell, and in that case each wavemode refer to a given multipole.
params (dict) – Dictionary containing the list of total model parameters which are internally used by the emulator. The keyword/value pairs of the dictionary specify the names and the values of the parameters, respectively.
ell (int or list) – pecific multipole order \(\ell\). Can be chosen from the list [0,2,4,6], whose entries correspond to monopole (\(\ell=0\)), quadrupole (\(\ell=2\)), hexadecapole (\(\ell=4\)) and octopole (\(\ell=6\)).
de_model (str, optional) – String that determines the dark energy equation of state. Can be chosen from the list [“lambda”, “w0”, “w0wa”] to work with the standard cosmological parameters, or be left undefined to use only \(\sigma_{12}\). Defaults to None.
binning (dict, optional) –
obs_id (str, optional) – If not None the returned power spectrum will be convolved with a survey window function. In that case the string must be a valid data set identifier and the window function mixing matrix must have been loaded beforehand. Defaults to None.
q_tr_lo (list or numpy.ndarray, optional) – List containing the user-provided AP parameters, in the form \((q_\perp, q_\parallel)\). If provided, prevents computation from correct formulas (ratios of angular diameter distances and expansion factors wrt to the corresponding quantities of the fiducial cosmology). Defaults to None.
W_damping (Callable[[float, float], float], optional) – Function returning the shape of the pairwise velocity generating function in the large scale limit, \(r\rightarrow\infty\). The function accepts two floats as arguments, corresponding to the wavemode \(k\) and the cosinus of the angle between pair separation and line of sight \(\mu\), and returns a float. This function is used only with the VDG_infty model. If None, it uses the free kurtosis distribution defined by W_kurt. Defaults to None.
ell_for_recon (list, optional) – List of \(\ell\) values used for the reconstruction of the 2d leading-order IR-resummed power spectrum. If None, all the even multipoles up to \(\ell=6\) are used in the reconstruction. Defaults to None.
- Returns
Pell_dict – Dictionary containing all the requested power spectrum multipoles of order \(\ell\) at the specified \(k\).
- Return type
- PX(k, mu, params, X, de_model=None)[source]
Compute the individual contribution X to the galaxy power spectrum.
Returns the individual anisotropic contribution X to the galaxy power spectrum \(P_\mathrm{gg}(k,\mu)\).
- Parameters
k (float or list or numpy.ndarray) – Wavemodes \(k\) at which to evaluate the X contribution.
mu (float or list or numpy.ndarray) – Cosinus \(\mu\) between the pair separation and the line of sight at which to evaluate the X contribution.
params (dict) – Dictionary containing the list of total model parameters which are internally used by the emulator. The keyword/value pairs of the dictionary specify the names and the values of the parameters, respectively.
X (str) – Identifier of the contribution to the galaxy power spectrum. Can be chosen from the list [“P0L_b1b1”, “PNL_b1”, “PNL_id”, “Pctr_c0”, “Pctr_c2”, “Pctr_c4”, “Pctr_b1b1cnlo”, “Pctr_b1cnlo”, “Pctr_cnlo”, “P1L_b1b1”, “P1L_b1b2”, “P1L_b1g2”, “P1L_b1g21”, “P1L_b2b2”, “P1L_b2g2”, “P1L_g2g2”, “P1L_b2”, “P1L_g2”, “P1L_g21”].
de_model (str, optional) – String that determines the dark energy equation of state. Can be chosen from the list [“lambda”, “w0”, “w0wa”] to work with the standard cosmological parameters, or be left undefined to use only \(\sigma_{12}\). Defaults to None.
- Returns
PX_2d – 2-d array containing the X contribution to the galaxy power spectrum at the specified \(k\) and \(\mu\).
- Return type
- PX_ell6_novir_noAP(X)[source]
Compute the individual contribution X to the octopole.
Returns the individual contribution X to the octopole \(P_6(k)\) of the training sample, multiplying it by the correspondent bias and growth coefficients.
- Parameters
X (str) – Identifier of the contribution to the octopole of the galaxy power spectrum. Can be chosen from the list [“P0L_b1b1”, “PNL_b1”, “PNL_id”, “Pctr_b1b1cnlo”, “Pctr_b1cnlo”, “Pctr_cnlo”, “P1L_b1b1”, “P1L_b1b2”, “P1L_b1g2”, “P1L_b1g21”, “P1L_b2b2”, “P1L_b2g2”, “P1L_g2g2”, “P1L_b2”, “P1L_g2”, “P1L_g21”].
- Returns
P6X – Array containing the X contribution to the octopole \(P_6(k)\).
- Return type
- PX_ell(k, params, ell, X, de_model=None, binning=None, obs_id=None, q_tr_lo=None, W_damping=None, ell_for_recon=None)[source]
Get the individual contribution to the power spectrum multipoles.
Computes the individual contribution X to the galaxy power spectrum multipoles. Returns the contribution to the specified multipole at the specified wavemodes \(k\).
- Parameters
k (float or list or numpy.ndarray) – Wavemodes \(k\) at which to evaluate the multipoles. If a list is passed, it has to match the size of ell, and in that case each wavemode refer to a given multipole.
params (dict) – Dictionary containing the list of total model parameters which are internally used by the emulator. The keyword/value pairs of the dictionary specify the names and the values of the parameters, respectively.
ell (int or list) – pecific multipole order \(\ell\). Can be chosen from the list [0,2,4,6], whose entries correspond to monopole (\(\ell=0\)), quadrupole (\(\ell=2\)), hexadecapole (\(\ell=4\)) and octopole (\(\ell=6\)).
X (str) – Identifier of the contribution to the galaxy power spectrum. Can be chosen from the list [“P0L_b1b1”, “PNL_b1”, “PNL_id”, “Pctr_c0”, “Pctr_c2”, “Pctr_c4”, “Pctr_b1b1cnlo”, “Pctr_b1cnlo”, “Pctr_cnlo”, “P1L_b1b1”, “P1L_b1b2”, “P1L_b1g2”, “P1L_b1g21”, “P1L_b2b2”, “P1L_b2g2”, “P1L_g2g2”, “P1L_b2”, “P1L_g2”, “P1L_g21”, “Pnoise_NP0”, “Pnoise_NP20”, “Pnoise_NP22”].
de_model (str, optional) – String that determines the dark energy equation of state. Can be chosen from the list [“lambda”, “w0”, “w0wa”] to work with the standard cosmological parameters, or be left undefined to use only \(\sigma_{12}\). Defaults to None.
binning (dict, optional) –
obs_id (str, optional) – If not None the returned power spectrum contribution will be convolved with a survey window function. In that case the string must be a valid data set identifier and the window function mixing matrix must have been loaded beforehand. Defaults to None.
q_tr_lo (list or numpy.ndarray, optional) – List containing the user-provided AP parameters, in the form \((q_\perp, q_\parallel)\). If provided, prevents computation from correct formulas (ratios of angular diameter distances and expansion factors wrt to the corresponding quantities of the fiducial cosmology). Defaults to None.
W_damping (Callable[[float, float], float], optional) – Function returning the shape of the pairwise velocity generating function in the large scale limit, \(r\rightarrow\infty\). The function accepts two floats as arguments, corresponding to the wavemode \(k\) and the cosinus of the angle between pair separation and line of sight \(\mu\), and returns a float. This function is used only with the VDG_infty model. If None, it uses the free kurtosis distribution defined by W_kurt. Defaults to None.
ell_for_recon (list, optional) – List of \(\ell\) values used for the reconstruction of the 2d leading-order IR-resummed power spectrum. If None, all the even multipoles up to \(\ell=6\) are used in the reconstruction. Defaults to None.
- Returns
PX_ell_dict – Dictionary containing the contributions to all the requested power spectrum multipoles of order \(\ell\) at the specified \(k\).
- Return type
- Bell(tri, params, ell, de_model=None, kfun=None, binning=None, q_tr_lo=None, W_damping=None, ell_for_recon=None, gl_deg=8)[source]
- Gaussian_covariance(l1, l2, k, dk, Pell, volume, Nmodes=None, avg_cov=False, avg_los=3)[source]
Compute the gaussian covariance of the power spectrum multipoles.
Returns the gaussian covariance predictions for the specified power spectrum multipoles (of order \(\ell_1\) and \(\ell_2\)), at the specified wavemodes \(k\), and for the given volume.
- Parameters
l1 (int) – Order of first power spectrum multipole.
l2 (int) – Order of second power spectrum multipole.
k (numpy.ndarray) – Wavemodes \(k\) at which to evaluate the gaussian covariance.
dk (float) – Width of the \(k\) bins.
Pell (dict) – Dictionary containing the monopole, quadrupole and hexadecapole of the power spectrum.
volume (float) – Reference volume to be used in the calculation of the gaussian covariance.
Nmodes (numpy.ndarray, optional) – Number of modes contained in each \(k\) bin. If not provided, its calculation is carried out based on the value of \(k\) and \(\mathrm{d}k\). Defaults to None.
- Returns
cov – Gaussian covariance of the selected power spectrum multipoles.
- Return type
- Pell_covariance(k, params, ell, dk, de_model=None, q_tr_lo=None, W_damping=None, volume=None, zmin=None, zmax=None, fsky=0.36361026083215203, Nmodes=None, volfac=1.0, avg_cov=False, avg_los=3)[source]
Compute the Gaussian covariance of the power spectrum multipoles.
Generates the selected power spectrum multipoles for the specified set of parameters, and returns their Gaussian covariance predictions at the specified wavemodes \(k\).
- Parameters
k (float or list or numpy.ndarray) – Wavemodes \(k\) at which to evaluate the multipoles. If a list is passed, it has to match the size of ell, and in that case each wavemode refer to a given multipole.
params (dict) – Dictionary containing the list of total model parameters which are internally used by the emulator. The keyword/value pairs of the dictionary specify the names and the values of the parameters, respectively.
ell (int or list) – pecific multipole order \(\ell\). Can be chosen from the list [0,2,4,6], whose entries correspond to monopole (\(\ell=0\)), quadrupole (\(\ell=2\)), hexadecapole (\(\ell=4\)) and octopole (\(\ell=6\)).
dk (float) – Width of the \(k\) bins.
de_model (str, optional) – String that determines the dark energy equation of state. Can be chosen from the list [“lambda”, “w0”, “w0wa”] to work with the standard cosmological parameters, or be left undefined to use only \(\sigma_{12}\). Defaults to None.
q_tr_lo (list or numpy.ndarray, optional) – List containing the user-provided AP parameters, in the form \((q_\perp, q_\parallel)\). If provided, prevents computation from correct formulas (ratios of angular diameter distances and expansion factors wrt to the corresponding quantities of the fiducial cosmology). Defaults to None.
W_damping (Callable[[float, float], float], optional) – Function returning the shape of the pairwise velocity generating function in the large scale limit, \(r\rightarrow\infty\). The function accepts two floats as arguments, corresponding to the wavemode \(k\) and the cosinus of the angle between pair separation and line of sight \(\mu\), and returns a float. This function is used only with the VDG_infty model. If None, it uses the free kurtosis distribution defined by W_kurt. Defaults to None.
volume (float, optional) – Reference volume to be used in the calculation of the gaussian covariance. Defaults to None.
zmin (float, optional) – Minimum redshift of the volume used in the calculation of the gaussian covariance. Defaults to None.
zmin – Maximum redshift of the volume used in the calculation of the gaussian covariance. Defaults to None.
fsky (float, optional) – Sky fraction of the volume used in the calculation of the gaussian covariance (in units of radians). Defaults to \(15000\mathrm{deg}^2\).
Nmodes (numpy.ndarray, optional) – Number of fundamental modes per \(k-shell. The size of the array should match the size of \). Defaults to \(4\pi/3\,\left[(k+\Delta k/2)^3 - (k-\Delta k/2)^3\right] /k_f^3\), where \(k_f^3 = (2 \pi)^3/V\).
volfac (float, optional) – Rescaling volume fraction. Defaults to \(1\).
- Returns
cov – Gaussian covariance of the selected power spectrum multipoles.
- Return type
- Bell_covariance(tri, params, ell, dk, de_model=None, kfun=None, q_tr_lo=None, W_damping=None, volume=None, zmin=None, zmax=None, fsky=0.36361026083215203, Ntri=None, volfac=1.0)[source]
Compute the Gaussian covariance of the bispectrum multipoles.
Returns the Gaussian covariance predictions for the specified multipole numbers at the given parameters and triangle configurations \(k_1\), \(k_2\), \(k_3\).
- Parameters
tri (numpy.ndarray or list of numpy.ndarray) – Wavemodes \(k_1\), \(k_2\), \(k_3\) at which to evaluate the predictions. If a list is passed, it has to match the size of ell, and in that case each set of configurations refers to a given multipole.
params (dict) – Dictionary containing the list of total model parameters which are internally used by the emulator. The keyword/value pairs of the dictionary specify the names and the values of the parameters, respectively.
ell (int or list) – pecific multipole order \(\ell\). Can be chosen from the list [0,2,4], whose entries correspond to monopole (\(\ell=0\)), quadrupole (\(\ell=2\)), hexadecapole (\(\ell=4\)) and octopole (\(\ell=6\)).
dk (float) – Width of the \(k\) bins.
de_model (str, optional) – String that determines the dark energy equation of state. Can be chosen from the list [“lambda”, “w0”, “w0wa”] to work with the standard cosmological parameters, or be left undefined to use only \(\sigma_{12}\). Defaults to None.
k_fun (float, optional) – Fundamental frequency of the grid that was used to compute the bispectrum measurements. This is useful to specify if the triangle configurations are not given in multiples of the fundamental frequency, in which case a compression of the unique \(k\) modes is performed. Should not be much larger than the bin width. Defaults to \(\Delta k\).
q_tr_lo (list or numpy.ndarray, optional) – List containing the user-provided AP parameters, in the form \((q_\perp, q_\parallel)\). If provided, prevents computation from correct formulas (ratios of angular diameter distances and expansion factors wrt to the corresponding quantities of the fiducial cosmology). Defaults to None.
W_damping (Callable[[float, float], float], optional) – Function returning the shape of the pairwise velocity generating function in the large scale limit, \(r\rightarrow\infty\). The function accepts two floats as arguments, corresponding to the wavemode \(k\) and the cosinus of the angle between pair separation and line of sight \(\mu\), and returns a float. This function is used only with the VDG_infty model. If None, it uses the free kurtosis distribution defined by W_kurt. Defaults to None.
volume (float, optional) – Reference volume to be used in the calculation of the gaussian covariance. Defaults to None.
zmin (float, optional) – Minimum redshift of the volume used in the calculation of the gaussian covariance. Defaults to None.
zmin – Maximum redshift of the volume used in the calculation of the gaussian covariance. Defaults to None.
fsky (float, optional) – Sky fraction of the volume used in the calculation of the gaussian covariance (in units of radians). Defaults to \(15000\mathrm{deg}^2\).
Ntri (numpy.ndarray, optional) – Number of fundamental triangles per bin. The size of this array should match the size of
tri
, or the longest array intri
if given as a list. Defaults to \(8 \pi^2 k_1\,k_2\,k_3\,\Delta k^3\k_f^6\), where \(k_f^3 = (2\pi)^3/V\).volfac (float, optional) – Rescaling volume fraction. Defaults to \(1\).
- Returns
cov – Gaussian covariance of the selected bispectrum multipoles.
- Return type
- chi2(obs_id, params, kmax, de_model=None, binning=None, convolve_window=False, q_tr_lo=None, W_damping=None, chi2_decomposition=False, ell_for_recon=None)[source]
Compute the \(\chi^2 for the given configurations\).
Generates the selected power spectrum multipoles for the specified set of parameters, and returns the \(\chi^2\) evaluated with the specified \(k_\mathrm{max}\) for the specified data sample.
- Parameters
obs_id (str) – Identifier of the data sample.
params (dict) – Dictionary containing the list of total model parameters which are internally used by the emulator. The keyword/value pairs of the dictionary specify the names and the values of the parameters, respectively.
kmax (float or list) – Maximum wavemode up to which the \(\chi^2\) is computed. If a float is passed, this is used for all the multipoles, else each value refers to a given multipoles.
de_model (str, optional) – String that determines the dark energy equation of state. Can be chosen from the list [“lambda”, “w0”, “w0wa”] to work with the standard cosmological parameters, or be left undefined to use only \(\sigma_{12}\). Defaults to None.
binning (dict, optional) –
convolve_window (bool, optional) –
q_tr_lo (list or numpy.ndarray, optional) – List containing the user-provided AP parameters, in the form \((q_\perp, q_\parallel)\). If provided, prevents computation from correct formulas (ratios of angular diameter distances and expansion factors wrt to the corresponding quantities of the fiducial cosmology). Defaults to None.
W_damping (Callable[[float, float], float], optional) – Function returning the shape of the pairwise velocity generating function in the large scale limit, \(r\rightarrow\infty\). The function accepts two floats as arguments, corresponding to the wavemode \(k\) and the cosinus of the angle between pair separation and line of sight \(\mu\), and returns a float. This function is used only with the VDG_infty model. If None, it uses the free kurtosis distribution defined by W_kurt. Defaults to None.
chi2_decomposition (bool, optional) – Flag to determine if the \(\chi^2\) is computed using the fast \(\chi^2\) decomposition (True) or not (False). Defaults to False.
ell_for_recon (list, optional) – List of \(\ell\) values used for the reconstruction of the 2d leading-order IR-resummed power spectrum. If None, all the even multipoles up to \(\ell=6\) are used in the reconstruction. Defaults to None.
- Returns
chi2 – Value of the \(\chi^2\).
- Return type
bispectrum
Bispectrum module.
- class comet.bispectrum.Bispectrum(real_space, model, use_Mpc)[source]
Bases:
object
Main class for the emulator of the bispectrum multipoles.
Class constructor
- Parameters
- define_units(use_Mpc)[source]
Define units for the bispectrum.
Sets the internal class attribute use_Mpc.
- Parameters
use_Mpc (bool) – Flag that determines if the input and output quantities are specified in \(\mathrm{Mpc}\) (True) or \(h^{-1}\,\mathrm{Mpc}\) (False) units.
- define_nbar(nbar)[source]
Define the number density of the sample.
Sets the internal class attribute nbar to the value provided as input. The latter is intended to be in the set of units currently used by the emulator, that can be specified at class instanciation, or using the method define_units.
- Parameters
nbar (float) – Number density of the sample, in units of \(\mathrm{Mpc}^{-3}\) or \(h^3\,\mathrm{Mpc}^{-3}\), depending on the value of the class attribute use_Mpc.
- set_tri(tri, ell, kfun, gl_deg=8, binning=None)[source]
Define triangular configurations and compute kernels.
Reads the list of triangular configurations and the request fundamental frequency, and sotres them into class attributes. Additionaly computes the necessary kernels (and the angular integrals if working in redshift-space).
- Parameters
tri – List of triangular configurations.
ell – List of multipoles for which the triangular configurations correspond to.
kfun (float) – Fundamental frequency.
- F2(k1, k2, k3)[source]
Compute the second-order density kernel.
Computes the second order density kernel \(F_2\) on the triangular configuration defined by the input wavemodes \((k_1,k_2,k_3)\), using the angle between \(k_1\) and \(k_2\).
- G2(k1, k2, k3)[source]
Compute the second-order velocity divergence kernel.
Computes the second order velocity divergence kernel \(G_2\) on the triangular configuration defined by the input wavemodes \((k_1,k_2,k_3)\), using the angle between \(k_1\) and \(k_2\).
- K(k1, k2, k3)[source]
Compute the Fourier-space kernel of the second-order Galileon.
Computes the Fourier-space kernel of the second-order Galileon \(K\) on the triangular configuration defined by the input wavemodes \((k_1,k_2,k_3)\), using the angle between \(k_1\) and \(k_2\).
- kernels_real_space(k1, k2, k3)[source]
Compute the kernels for the real-space bispectrum.
Computes the kernels required for the real-space bispectrum, and returns them in a dictionary format. This includes only the second-order density kernel \(F_2\) and the Fourier-space kernel of the second-order galileon \(K\)
- kernels_redshift_space(k1, k2, k3)[source]
Compute the kernels for the redshift-space bispectrum.
Computes the kernels required for the redshift-space bispectrum, and returns them in a dictionary format. This includes the second-order density and velocity divergence kernels, \(F_2\) and \(G_2\), the Fourier-space kernel of the second-order galileon \(K\), the ratios of \(k_3\) to the other two wavemodes, and the logarithmic derivatives of the previous kernels with respect to \(k_1\), \(k_2\) and \(k_3\).
- kernels_real_space_arr(k1, k2, k3)[source]
Compute the kernels for the real-space bispectrum.
Computes the kernels required for the real-space bispectrum, and returns them in a dictionary format. This includes only the second-order density kernel \(F_2\) and the Fourier-space kernel of the second-order galileon \(K\)
- kernels_redshift_space_arr(k1, k2, k3)[source]
Compute the kernels for the redshift-space bispectrum.
Computes the kernels required for the redshift-space bispectrum, and returns them in a dictionary format. This includes the second-order density and velocity divergence kernels, \(F_2\) and \(G_2\), the Fourier-space kernel of the second-order galileon \(K\), the ratios of \(k_3\) to the other two wavemodes, and the logarithmic derivatives of the previous kernels with respect to \(k_1\), \(k_2\) and \(k_3\).
- Parameters
- Returns
kernels – Array of size (k1.size, 20) with the columns corresponding to the following kernels: - \(F_2\) - \(G_2\) - \(b_2\) - \(K\) - \(k_3/k_1\) - \(k_3/k_2\) - \(d F_2/d \log{k_1}\) - \(d F_2/d \log{k_2}\) - \(d F_2/d \log{k_3}\) - \(d G_2/d \log{k_1}\) - \(d G_2/d \log{k_2}\) - \(d G_2/d \log{k_3}\) - \(d K/d \log{k_1}\) - \(d K/d \log{k_2}\) - \(d K/d \log{k_3}\)
- Return type
numpy.array
- mu123_integrals(n1, n2, n3, k1, k2, k3)[source]
Angular integration.
Computes the integral
\[\frac{1}/{4\pi} \int {\rm{d}}\mu \int {\rm{d}}\phi \ \mu_1^{n_1}\mu_2^{n_2}\mu_3^{n_3},\]where
\[\begin{split}\begin{flalign*} & \mu_1 = \mu, \\ & \mu_2 = \mu\nu - \sqrt(1-\mu^2)\sqrt(1-\nu^2)\cos(\phi), \\ & \mu_3 = -\frac{k_1}{k_3}\mu_1 - \frac{k_2}{k_3}\mu_2, \end{flalign*}\end{split}\]and \(\mu_n\) is the cosinus of the angle bewteen the wavemode \(k_n\) and the line of sight, and \(\nu\) is the cosinus of the angle between \(k_1\) and \(k_2\).
- Parameters
- Returns
I – Angular integration of the different powers of the input angles.
- Return type
- compute_kernels(tri)[source]
Compute kernels for all triangle configurations.
Computes the kernels for the various triangle configurations, by calling the corresponding class method (depending if the model is in real- or redshift-space), and stores them into a class attribute.
- compute_mu123_integrals(tri)[source]
Compute angular integrals for all triangle configurations.
Computes the angular integrals for the various triangle configurations, by calling the class method mu123_integrals, and stores them into a class attribute.
- generate_index_arrays(round_decimals=2)[source]
Generate arrays of indeces of triangular configurations.
Determines the unique wavemode bins in the triangle configurations, approximating them to the ratio with respect to a given fundamental frequency.
- Parameters
round_decimals (int, optional) – Number of decimal digits used in the approximation of the ratios with respect to the fundamental frequency. Deafults to 2.
- generate_eff_index_arrays(round_decimals=2)[source]
Generate arrays of indeces of effective triangular configurations.
Determines the unique wavemode bins in the effective triangle configurations, approximating them to the ratio with respect to a given fundamental frequency.
- Parameters
round_decimals (int, optional) – Number of decimal digits used in the approximation of the ratios with respect to the fundamental frequency. Deafults to 2.
cosmology
Cosmology module.
- class comet.cosmology.Cosmology(Om0, H0, Ok0=0.0, Or0=0.0, de_model='lambda', w0=- 1.0, wa=0.0)[source]
Bases:
object
Class containing cosmological parameters and background quantities.
This object is used to compute background quantities (expansion, growth) of the specific cosmology passed as input.
In all cases including an evolving dark energy density, its equation of state is parametrized as \(w(a)=w_0+w_a(1-a)\) (Chevalier & Polansky 2001, Linder 2003).
Class constructor.
- Parameters
Om0 (float) – Fractional total matter density at present time, \(\Omega_\mathrm{m,0}\).
H0 (float) – Hubble constant at present time, \(H_0\).
Ok0 (float, optional) – Fractional curvature density at present time, \(\Omega_\mathrm{k,0}\). Defaults to 0.0.
Or0 (float, optional) – Fractional radiation density at present time, \(\Omega_\mathrm{r,0}\), Defaults to 0.0.
de_model (str, optional) – Selected dark energy model. It can be chosen from the list [“lambda”, “w0”, “w0wa”], whose entries correspond to a LCDM, \(w\) CDM, and quintessence model, respectively. Defaults to “lambda”.
w0 (float, optional) – Dark energy equation of state at present time, \(w_0\). Only used if de_model is not “lambda”. Defaults to -1.0.
wa (float, optional) – Negative derivative of the dark energy equation of state with respect to the scale factor, \(w_a\). Only used if de_model is “w0wa”. Defaults to 0.0.
- update_cosmology(Om0, H0, Ok0=0.0, Or0=0.0, de_model='lambda', w0=- 1.0, wa=0.0)[source]
Update the class to a new cosmology.
Overwrites the current class attributes to assign the new cosmological parameters passed as input.
- Parameters
Om0 (float) – Fractional total matter density at present time, \(\Omega_\mathrm{m,0}\).
H0 (float) – Hubble constant at present time, \(H_0\).
Ok0 (float, optional) – Fractional curvature density at present time, \(\Omega_\mathrm{k,0}\). Defaults to 0.0.
Or0 (float, optional) – Fractional radiation density at present time, \(\Omega_\mathrm{r,0}\), Defaults to 0.0.
de_model (str, optional) – Selected dark energy model. It can be chosen from the list [“lambda”, “w0”, “w0wa”], whose entries correspond to a LCDM, \(w\) CDM, and quintessence model, respectively. Defaults to “lambda”.
w0 (float, optional) – Dark energy equation of state at present time, \(w_0\). Only used if de_model is not “lambda”. Defaults to -1.0.
wa (float, optional) – Negative derivative of the dark energy equation of state with respect to the scale factor, \(w_a\). Only used if de_model is “w0wa”. Defaults to 0.0.
- DE_z(z)[source]
Dark energy density as a function of redshift.
Returns the energy density of the specified dark energy component, normalised to the value at present time,
\[\frac{\rho_\mathrm{DE}(z)}{\rho_\mathrm{DE}(0)} = \ \exp\left[-\int_0^z \frac{dz'}{1+z'}\left(1+w\left(z'\right)\ \right) \right]\,.\]- Parameters
z (float or numpy.ndarray) – Redshifts at which to evaluate the dark energy density.
- Returns
de_z – Energy density of the dark energy component at the specified redshifts.
- Return type
- wz(z)[source]
Dark energy equation of state as a function of redshift.
Returns the equation of state of the dark energy component,
\[w(z) = w_0+w_a\frac{z}{1+z}\,.\]- Parameters
z (float or numpy.ndarray) – Redshifts at which to evaluate the dark energy equation of state.
- Returns
w – Dark energy equation of state at the specified redshifts.
- Return type
- Ez(z)[source]
Normalised expansion factor as a function of redshift.
Returns the value of the Hubble factor at the specified redshift, normalised to the value at present time,
\begin{split} E(z) = \frac{H(z)}{H_0} = \bigg[ \ &\Omega_\mathrm{m,0}(1+z)^3 \ + \Omega_\mathrm{r,0}(1+z)^4 \ + \Omega_\mathrm{k,0}(1+z)^2 \\ &+ \Omega_\mathrm{DE,0}\exp\Big[-\int_0^z \ \frac{dz'}{1+z'} \left(1+w\left(z'\right)\right) \Big] \bigg]^\frac{1}{2}\,. \end{split}- Parameters
z (float or numpy.ndarray) – Redshifts at which to evaluate the normalised expansion factor.
- Returns
Ez – Normalised expansion factor at the specified redshifts.
- Return type
- one_over_Ez(z)[source]
Inverse normalised expansion factor as a function of redshift.
Return the inverse of the normalised expansion factor defined in Ez.
- Parameters
z (float or numpy.ndarray) – Redshifts at which to evaluate the inverse expansion factor.
- Returns
inv_Ez – Inverse normalised expansion factor at the specified redshifts.
- Return type
- Hz(z)[source]
Hubble expansion factor.
Returns the Hubble parameter \(H(z)\), defined as
\[H(z) = H_0\, E(z) \, .\]- Parameters
z (float or numpy.ndarray) – Redshifts at which to evaluate the Hubble factor.
- Returns
Hz – Hubble expansion factor at the specified redshifts.
- Return type
- Om(z)[source]
Fractional total matter density as a function of redshift.
Returns the total matter density at the specified redshifts in units of the critical density \(\rho_\mathrm{crit}(z)=\frac{3H^2(z)}{8\pi G}\), as
\[\Omega_\mathrm{m}(z) = \ \frac{\rho_\mathrm{m}(z)}{\rho_\mathrm{crit}(z)} = \ \frac{\Omega_\mathrm{m,0}\,(1+z)^3}{E^2(z)} \, .\]- Parameters
z (float or numpy.ndarray) – Redshifts at which to evaluate the fractional matter density.
- Returns
Om – Fractional matter density at the specified redshifts.
- Return type
- Ode(z)[source]
Fractional dark energy density as a function of redshift.
Returns the dark energy density at the specified redshifts in units of the critical density \(\rho_\mathrm{crit}(z)=\frac{3H^2(z)}{8\pi G}\), as
\[\Omega_\mathrm{DE}(z) = \ \frac{\rho_\mathrm{DE}(z)}{\rho_\mathrm{crit}(z)} = \ \frac{\Omega_\mathrm{DE,0}\exp\left[ \ -\int_0^z \frac{dz'}{1+z'}\left(1+w\left(z'\right)\right) \ \right]}{E^2(z)} \, .\]- Parameters
z (float or numpy.ndarray) – Redshifts at which to evaluate the fractional dark energy density.
- Returns
Ode – Fractional dark energy density at the specified redshifts.
- Return type
- comoving_transverse_distance(z)[source]
Transverse comoving distance as a function of redshift.
Returns the transverse comoving distance defined as
\begin{gather*} D_\mathrm{M}(z) = \begin{cases} \frac{D_H}{\sqrt{-\Omega_\mathrm{k,0}}}\sin \left(\ \frac{\sqrt{-\Omega_\mathrm{k,0}}D_\mathrm{C}(z)}{D_H}\ \right), & \text{if}\ \Omega_\mathrm{k,0}<0 \\ D_\mathrm{C}(z), & \text{if}\ \Omega_\mathrm{k,0}=0 \, ,\\ \frac{D_H}{\sqrt{\Omega_\mathrm{k,0}}}\sinh \left(\ \frac{\sqrt{\Omega_\mathrm{k,0}}D_\mathrm{C}(z)}{D_H}\ \right), & \text{if}\ \Omega_\mathrm{k,0}>0 \end{cases} \end{gather*}where
\[D_\mathrm{C}(z) = D_H \int_0^z \frac{dz'}{E(z')}\]is the comoving distance, and
\[D_H = \frac{c}{H_0}\]is the Hubble distance.
- angular_diameter_distance(z)[source]
Angular diameter distance as a function of redshift.
Returns the angular diameter distance defined as
\[D_\mathrm{A}(z) = \frac{1}{1+z}D_\mathrm{M}(z) \, .\]
- growth_factor(z, get_growth_rate=False)[source]
Linear growth factor as a function of redshift.
Returns the linear growth factor \(D(z)\) (and the linear growth rate \(f(z)\) at user request).
- Parameters
- Returns
Dz – Linear growth factor, or list containing both the linear growth factor and growth rate, at the specified redshift.
- Return type
- growth_rate(z)[source]
Linear growth rate as a function of redshift.
Returns the linear growth rate \(f(z)\).
- comoving_volume(zmin, zmax, fsky)[source]
Comoving volume as a function of redshift and sky fraction.
Computes the transverse comoving volume between \(z_\mathrm{min}\) and \(z_\mathrm{max}\) for a given sky fraction \(f_\mathrm{sky}\), as
\[V_\mathrm{M}(z_\mathrm{min}, z_\mathrm{max}, f_\mathrm{sky}) = \ \frac{4\pi f_\mathrm{sky}}{3} \left[D_\mathrm{M}^3 \ (z_\mathrm{max}) - D_\mathrm{M}^3(z_\mathrm{min})\right]\]- Parameters
- Returns
vol – Transverse comoving volume between the specified minimum and maximum redshifts, and for the given sky fraction.
- Return type
data
Data module.
- class comet.data.MeasuredData(**kwargs)[source]
Bases:
object
Class for handling data structures (data vectors and covariances).
Class constructor.
Keywords argument kwargs are summarised in the Parameters section below. An instance of the class can be created without specifying any of the keyword arguments, and subsequently updated with the update method.
- Parameters
bins (numpy.ndarray, optional) – Array containing the sampled wavemodes \(k\).
signal (numpy.ndarray, optional) – Array containing the power spectrum multipoles \(P_{\ell}(k)\). If more than one multipole is provided, the first and second index of the array runs over the different \(k\) and the different multipole \(\ell\), respectively.
cov (numpy.ndarray, optional) – Covariance matrix corresponding to signal. The covariance is in the form of a 2d array, whose blocks correspond to the auto- (along the diagonal) and cross-covariances of the multipoles.
theory_cov (bool, optional) – Flag to determine if the provided covariance matrix is theoretical (True) or estimated from simulations (False). Defaults to True.
n_realizations (int, optional) – If the provided covariance is estimated from numerical simulations, this parameter is required, and specifies the total number of resamplings (needed for Hartlap corrections).
- update(**kwargs)[source]
Update the class with new data.
Keywords argument kwargs are summarised in the Parameters section below.
- Parameters
bins (numpy.ndarray, optional) – Array containing the sampled wavemodes \(k\).
signal (numpy.ndarray, optional) – Array containing the power spectrum multipoles \(P_{\ell}(k)\). If more than one multipole is provided, the first and second index of the array runs over the different \(k\) and the different multipole \(\ell\), respectively.
cov (numpy.ndarray, optional) – Covariance matrix corresponding to signal. The covariance is in the form of a 2d array, whose blocks correspond to the auto- (along the diagonal) and cross-covariances of the multipoles.
theory_cov (bool, optional) – Flag to determine if the provided covariance matrix is theoretical (True) or estimated from simulations (False). Defaults to True.
n_realizations (int, optional) – If the provided covariance is estimated from numerical simulations, this parameter is required, and specifies the total number of resamplings (needed for Hartlap corrections).
- set_kmax(kmax)[source]
Set the maximum mode used in the computation of the \(\chi^2\).
Sets the class attribute corresponding to the maximum wavemode \(k_\mathrm{max}\) to be used in the calculation of the \(\chi^2\). In addition, it applies the corresponding scale cuts to both data vectors and covariance matrix.
- AHfactor(nbins)[source]
Compute corrections to the inverse covariance matrix.
Depending on the value of the theory_cov attribute, returns the correction factor to the inverse covariance matrix (to take into account the limited number of independent realizations, in case the covariance is estimated from numerical simulations).
Returns 1 if the class attribute theory_cov is set to True. Otherwise, returns
\[\frac{N_\mathrm{sim}-N_\mathrm{bins}-2}{N_\mathrm{sim}-1}\,,\]with \(N_\mathrm{sim}\) and \(N_\mathrm{bins}\) being the number of independent realizations from which the covariance has been estimated and the total number of bins at which it is sampled, respectively (see Hartlap 2007).
- get_signal(ell, kmax=None)[source]
Get power spectrum multipole from data sample.
Returns the input data power spectrum multipole of order \(\ell\) up to \(k_\mathrm{max}\).
- Parameters
ell (int) – Specific multipole order \(\ell\). Can be chosen from the list [0,2,4], whose entries correspond to monopole (\(\ell=0\)), quadrupole (\(\ell=2\)) and hexadecapole (\(\ell=4\)).
kmax (float, optional) – Maximum wavemode \(k_\mathrm{max}\) up to which the multipole is provided. If None, the corresponding class attribute is used instead.
- Returns
signal_kmax – Data power spectrum multipole of order \(\ell\) up to \(k_\mathrm{max}\).
- Return type
- get_std(ell, kmax=None)[source]
Get standard deviation of power spectrum multipole from sample.
Returns the standard deviation of the input data power spectrum multipole of order \(\ell\) up to \(k_\mathrm{max}\).
- Parameters
ell (int) – Specific multipole order \(\ell\). Can be chosen from the list [0,2,4], whose entries correspond to monopole (\(\ell=0\)), quadrupole (\(\ell=2\)) and hexadecapole (\(\ell=4\)).
kmax (float, optional) – Maximum wavemode \(k_\mathrm{max}\) up to which the standard deviation is provided. If None, the corresponding class attribute is used instead.
- Returns
std_kmax – Standard deviation of the data power spectrum multipole of order \(\ell\) up to \(k_\mathrm{max}\).
- Return type
tables
Tables module.
- class comet.tables.Tables(params)[source]
Bases:
object
Class for handling the tables of the emulator.
It handles both the training and validation sets, in the form of tables containing the different contributions to \(P_\mathrm{gg}(k,\mu)\). Provides routine to convert the raw tables into their transformed versions, which span a shorter dynamical range (to increase the accuracy of the emulator), to train the emulator, and to transform back the emulator predictions in the original metric.
Class constructor.
- Parameters
params (list) – List of parameters used to train the emulator.
- set_param_ranges(ranges)[source]
Set ranges for the parameters of the emulator.
Sets the internal class attribute defining the prior for the parameters of the emulator.
- Parameters
ranges (dict) – Dictionary containing the parameter ranges. Keys correspond to the name of the parameters, while values are list with two entries, which correspond to the minimum and maximum value of the parameter.
- assign_samples(samples_hdu)[source]
Read parameter sample from HDU object.
Reads parameter sample from a Header Data Unit object, and stores it as class attribute. If the sample is meant for validation, determines the parameters from the header of the HDU object, otherwise uses the parameters defined as class attributes.
- Parameters
samples_hdu (astropy.io.fits.BinTableHDU) – Header Data Unit containing the parameter sample.
- assign_table(table_hdu, nk, nkloop)[source]
Read model table from HDU object.
Reads a model table from a Header Data Unit object, and stores it as class attribute. If the sample is a training one, additionally calls the routine to convert the model table into its transformed version.
- Parameters
table_hdu (astropy.io.fits.BinTableHDU) – Header Data Unit containing the model table.
nk (int) – Number of \(k\) bins of the table.
nkloop (int) – Number of \(k\) bins of the table corresponding to the loop predictions.
- get_flip_and_offset(table)[source]
Compute flip and offset to rescale an input model table.
- Parameters
table (numpy.ndarray) – Model table containing a given term as a function of \(k\) (first index) and the different parameter sample (second index).
- Returns
flip (list) – Flip value for each \(k\) entry.
max_offset (list) – Maximum offset for each \(k\) entry.
- transform(table, data_type)[source]
Rescale the dynamical range of a table for the emulation.
Applies flip, offset, and rescales the model table. This step is performed by first taking the logarithm of the model table, and then subtracting its mean and dividing by its standard deviation.
- Parameters
table (numpy.ndarray) – Model table containing a given term as a function of \(k\) (first index) and the different parameter sample (second index).
data_type (str) – Type of the table that is passed as input. This is used as a keyword for the dictionary where the values of flip, offset, mean and standard deviation are stored.
- Returns
resc_table – Rescaled table.
- Return type
- transform_inv(table, data_type)[source]
Rescale back the dynamical range of a table.
Performs the inverse operations defined in the transform method. Needed to obtain predictions from the emulator in the original metric.
- Parameters
table (numpy.ndarray) – Table containing a given term as a function of \(k\) (first index) and the different parameter sample (second index).
data_type (str) – Type of the table that is passed as input. This is used as a keyword for the dictionary where the values of flip, offset, mean and standard deviation are stored.
- Returns
resc_table – Rescaled table.
- Return type