This example shows how to measure and model the void size function, extracting constraints on the cosmological parameters of the model
using namespace std;
try {
const std::string dir = "../output/";
const string file_output_start = "model_starting_values.dat";
const string file_output_bestfit = "model_bestfit.dat";
std::string file_voids_in = "../input/cleaned_void_catalogue.out";
std::vector<int> columns_voids = {1, 2, 3, 4};
const int nbin = 8;
const double rmin = 23.5;
const double rmax = 35.5;
const double shift = 0.5;
const double vol = 480.*480.*480.;
shared_ptr<cbl::measure::numbercounts::NumberCounts1D> ptr_NC = make_shared<cbl::measure::numbercounts::NumberCounts1D>(NC);
ptr_NC->write(dir, "Size_distribution_Poisson.dat");
const vector<string> cosmo_parNames = {"sigma8", "Omega_matter"};
double val_s8 = 0.809;
double val_Om = 0.2711;
const double OmegaM = 0.2711;
const double Omega_b = 0.0451;
const double Omega_nu = 0.;
const double massless_neutrinos = 3.04;
const int massive_neutrinos = 0;
const double OmegaL = 0.7289;
const double Omega_radiation = 0.;
const double hh = 0.703;
const double scalar_amp = 2.194e-9;
const double scalar_pivot = 0.05;
const double n_s = 0.96;
const double w0 = -1.;
const double wa = 0.;
cbl::cosmology::Cosmology cosmology(OmegaM, Omega_b, Omega_nu, massless_neutrinos, massive_neutrinos, OmegaL, Omega_radiation, hh, scalar_amp, scalar_pivot, n_s, w0, wa);
const double redshift = 0.00;
const double min_s8 = 0.6, max_s8 = 0.9;
const double min_Om = 0.1, max_Om = 0.4;
const vector<vector<double>> limits = {{min_s8, max_s8}, {min_Om, max_Om}};
const vector<cbl::statistics::PriorDistribution> prior_cosmoPar = {prior_s8, prior_Om};
vector<double> size;
for (size_t i=0; i<ptr_NC->dataset()->xx().size(); i++){
size.push_back(ptr_NC->dataset()->xx()[i]);}
double val_beff = 1.1218389;
double val_slp = 0.85676;
double val_offs = 0.42153;
double del_vNL = -0.7;
double del_c = cosmology.
deltac(redshift);
model_SF.
set_data_model_SF(cosmology, size, redshift,
"Vdn", val_beff, val_slp, val_offs, del_vNL, del_c);
}
return 0;
}
int main()
main function to create the logo of the CosmoBolognaLib
The class Modelling_NumberCounts1D_Size.
The class NumberCounts1D_Size.
void set_sigma8(const double sigma8=-1.)
set the value of σ8
double deltac(const double redshift) const
spherical collapse density threshold at a given redshift
const char * what() const noexcept override
the error description
The class NumberCounts1D_Size.
void set_likelihood(const statistics::LikelihoodType likelihood_type, const std::vector< size_t > x_index={0, 2}, const int w_index=-1, const double prec=1.e-10, const int Nres=-1)
set the likelihood function
void maximize_posterior(const std::vector< double > start, const unsigned int max_iter=10000, const double tol=1.e-6, const double epsilon=1.e-3, const int seed=666)
function that maximizes the posterior, finds the best-fit parameters and stores them in the model
The class Modelling_NumberCounts1D_Size.
void set_model_NumberCounts_cosmology(const std::vector< cbl::cosmology::CosmologicalParameter > cosmo_params={}, const std::vector< statistics::PriorDistribution > cosmo_param_priors={})
set the cosmological parameters used to model the size function
void set_data_model_SF(const cosmology::Cosmology cosmology, const std::vector< double > radii, const double redshift, const std::string model, const double b_eff, double slope=0.854, double offset=0.420, const double deltav_NL=-0.795, const double del_c=1.69, const std::string method_Pk="EisensteinHu", const double k_Pk_ratio=-1., const bool store_output=true, const std::string output_root="test", const std::string interpType="Linear", const double k_max=100., const std::string input_file=par::defaultString, const bool is_parameter_file=true)
Member functions used to set the model parameters.
The class PriorDistribution.
CosmologicalParameter CosmologicalParameterCast(const int cosmologicalParameterIndex)
cast an enum of type CosmologicalParameter from its index
@ _Uniform_
Identity function.
@ _dn_dlnV_
, where are the bin limits
@ _Poisson_
Poissonian error.
@ _Gaussian_Error_
Gaussian likelihood error.
@ _comoving_
comoving coordinates (x, y, z)