34 #ifndef __MODELLINGCOSMDP__
35 #define __MODELLINGCOSMDP__
51 class CMB_DistancePrior {
56 std::shared_ptr<data::Data> m_dataset;
60 CMB_DistancePrior () =
default;
62 virtual ~CMB_DistancePrior () =
default;
64 static std::shared_ptr<CMB_DistancePrior> Create (
const std::string distance_prior_name);
66 virtual std::shared_ptr<data::Data> dataset ()
67 {
ErrorCBL(
"no dataset for base class!",
"dataset",
"Modelling_Cosmology_DistancePrior.h");
return NULL; }
70 { (void)cosmology;
ErrorCBL(
"no model for base class!",
"model",
"Modelling_Cosmology_DistancePrior.h"); std::vector<double> vv;
return vv; }
74 class Aubourg15_Planck15 :
public CMB_DistancePrior
79 Aubourg15_Planck15 () {
80 std::vector<double> redshift = {0., 0., 1090.};
81 std::vector<double> data = {0.02245, 0.1386, 94.33};
82 std::vector<std::vector<double>> covariance(3, std::vector<double>(3, 0));
83 covariance[0][0] = 1.286e-7;
84 covariance[0][1] = -6.033e-7;
85 covariance[0][2] = -1.443e-5;
87 covariance[1][0] = -6.033e-7;
88 covariance[1][1] = 7.542e-6;
89 covariance[1][2] = -3.605e-5;
91 covariance[2][0] = 1.443e-5;
92 covariance[2][1] = -3.605e-5;
93 covariance[2][2] = 0.004264;
95 m_dataset = std::make_shared<data::Data1D>(data::Data1D(redshift, data, covariance));
98 std::shared_ptr<data::Data> dataset() {
return m_dataset; }
102 std::vector<double> mm(3, 0);
106 mm[2] = cosmology.
D_M(m_dataset->xx(2))/cosmology.
rs_CAMB();
113 class Aubourg15_WMAP09 :
public CMB_DistancePrior {
117 Aubourg15_WMAP09 () {
118 std::vector<double> redshift = {0., 0., 1090.};
119 std::vector<double> data = {0.02259, 0.1354, 94.51};
120 std::vector<std::vector<double>> covariance(3, std::vector<double>(3, 0));
121 covariance[0][0] = 2.864-7;
122 covariance[0][1] = -4.809e-7;
123 covariance[0][2] = -1.111-5;
125 covariance[1][0] = -4.809e-7;
126 covariance[1][1] = 1.908e-5;
127 covariance[1][2] = -7.495e-6;
129 covariance[2][0] = -1.111e-5;
130 covariance[2][1] = -7.495e-6;
131 covariance[2][2] = 0.02542;
133 m_dataset = std::make_shared<data::Data1D>(data::Data1D(redshift, data, covariance));
136 std::shared_ptr<data::Data> dataset () {
return m_dataset; }
140 std::vector<double> mm(3, 0);
144 mm[2] = cosmology.
D_M(m_dataset->xx(2))/cosmology.
rs_CAMB();
double Omega_baryon() const
get the private member Cosmology::m_Omega_baryon
double rs_CAMB() const
the sound horizon at the drag epoch estimated with CAMB [http://camb.info/], analytical formula by Au...
double hh() const
get the private member Cosmology::m_hh
double Omega_matter() const
get the private member Cosmology::m_Omega_matter
double D_M(const double redshift) const
the comoving transverse distance at a given redshift
The global namespace of the CosmoBolognaLib
int ErrorCBL(const std::string msg, const std::string functionCBL, const std::string fileCBL, const cbl::glob::ExitCode exitCode=cbl::glob::ExitCode::_error_)
throw an exception: it is used for handling exceptions inside the CosmoBolognaLib