46 double cbl::cosmology::Cosmology::fsigma8 (
const double redshift,
const string method_Pk,
const bool store_output,
const string output_root,
const bool NL,
const double k_min,
const double k_max,
const double prec,
const string file_par)
const
48 return linear_growth_rate(redshift)*sigma8_Pk(method_Pk, redshift, store_output, output_root, NL, k_min, k_max, prec, file_par);
57 return linear_growth_rate(redshift)/
bias;
66 return linear_growth_rate(redshift)/pow(
bias, 2)*err_bias;
73 double cbl::cosmology::Cosmology::beta (
const double Mass_min,
const double Mass_max,
const double redshift,
const std::string model_bias,
const std::string model_MF,
const std::string method_SS,
const bool store_output,
const std::string output_root,
const double Delta,
const double kk,
const std::string interpType,
const int norm,
const double k_min,
const double k_max,
const double prec,
const std::string input_file,
const bool is_parameter_file)
75 return linear_growth_rate(redshift)/bias_eff(Mass_min, Mass_max, redshift, model_bias, model_MF, method_SS, store_output, output_root, Delta, kk, interpType, norm, k_min, k_max, prec, input_file, is_parameter_file);
82 double cbl::cosmology::Cosmology::error_beta (
const double Mass_min,
const double Mass_max,
const double redshift,
const std::string model_bias,
const std::string model_MF,
const std::string method_SS,
const double err_bias,
const bool store_output,
const std::string output_root,
const double Delta,
const double kk,
const std::string interpType,
const int norm,
const double k_min,
const double k_max,
const double prec,
const std::string input_file,
const bool is_parameter_file)
84 return linear_growth_rate(redshift)/pow(bias_eff(Mass_min, Mass_max, redshift, model_bias, model_MF, method_SS, store_output, output_root, Delta, kk, interpType, norm, k_min, k_max, prec, input_file, is_parameter_file),2)*err_bias;
91 double cbl::cosmology::Cosmology::beta (
const std::vector<double> MM,
const std::vector<double> MF,
const double redshift,
const std::string model_bias,
const std::string method_SS,
const bool store_output,
const std::string output_root,
const double Delta,
const double kk,
const std::string interpType,
const int norm,
const double k_min,
const double k_max,
const double prec,
const std::string input_file,
const bool is_parameter_file)
93 return linear_growth_rate(redshift)/bias_eff(MM, MF, redshift, model_bias, method_SS, store_output, output_root, Delta, kk, interpType, norm, k_min, k_max, prec, input_file, is_parameter_file);
100 double cbl::cosmology::Cosmology::error_beta (
const std::vector<double> MM,
const std::vector<double> MF,
const double redshift,
const std::string model_bias,
const std::string method_SS,
const double err_bias,
const bool store_output,
const std::string output_root,
const double Delta,
const double kk,
const std::string interpType,
const int norm,
const double k_min,
const double k_max,
const double prec,
const std::string input_file,
const bool is_parameter_file)
102 return linear_growth_rate(redshift)/pow(bias_eff(MM, MF, redshift, model_bias, method_SS, store_output, output_root, Delta, kk, interpType, norm, k_min, k_max, prec, input_file, is_parameter_file),2)*err_bias;
109 double cbl::cosmology::Cosmology::error_beta_measured (
const double Volume,
const double density,
const double Mass_min,
const double Mass_max,
const double redshift,
const std::string model_bias,
const std::string model_MF,
const std::string method_SS,
const bool store_output,
const std::string output_root,
const double Delta,
const double kk,
const std::string interpType,
const int norm,
const double k_min,
const double k_max,
const double prec,
const std::string input_file,
const bool is_parameter_file)
112 double bias = bias_eff(Mass_min, Mass_max, redshift, model_bias, model_MF, method_SS, store_output, output_root, Delta, kk, interpType, norm, k_min, k_max, prec, input_file, is_parameter_file);
121 double cbl::cosmology::Cosmology::quadrupole (
const double Mass_min,
const double Mass_max,
const double redshift,
const std::string model_bias,
const std::string model_MF,
const std::string method_SS,
const bool store_output,
const std::string output_root,
const double Delta,
const double kk,
const std::string interpType,
const int norm,
const double k_min,
const double k_max,
const double prec,
const std::string input_file,
const bool is_parameter_file)
123 double Beta = beta(Mass_min, Mass_max, redshift, model_bias, model_MF, method_SS, store_output, output_root, Delta, kk, interpType, norm, k_min, k_max, prec, input_file, is_parameter_file);
124 return (4./3.*Beta+4./7.*Beta*Beta)/(1.+2./3.*Beta+1./5.*Beta*Beta);
131 double cbl::cosmology::Cosmology::quadrupole (
const std::vector<double> MM,
const std::vector<double> MF,
const double redshift,
const std::string model_bias,
const std::string method_SS,
const bool store_output,
const std::string output_root,
const double Delta,
const double kk,
const std::string interpType,
const int norm,
const double k_min,
const double k_max,
const double prec,
const std::string input_file,
const bool is_parameter_file)
133 double Beta = beta(MM, MF, redshift, model_bias, method_SS, store_output, output_root, Delta, kk, interpType, norm, k_min, k_max, prec, input_file, is_parameter_file);
134 return (4./3.*Beta+4./7.*Beta*Beta)/(1.+2./3.*Beta+1./5.*Beta*Beta);
141 double cbl::cosmology::Cosmology::Pk_DeltaDelta_fitting_function (
const double kk,
const std::string method_Pk,
const double redshift,
const std::string author,
const bool store_output,
const std::string output_root,
const int norm,
double k_min,
double k_max,
const double prec,
const std::string file_par,
const bool unit1)
144 if(author ==
"Pezzotta" || author ==
"Bel")
145 Pkdd = Pk_matter({kk}, method_Pk,
false, redshift, store_output, output_root, norm, k_min, k_max, prec, file_par, unit1)[0];
146 else WarningMsgCBL(
"the current implementation is not correct with author = " + author,
"Pk_DeltaDelta_fitting_function",
"RSD.cpp");
154 double cbl::cosmology::Cosmology::Pk_DeltaTheta_fitting_function (
const double kk,
const std::string method_Pk,
const double redshift,
const std::string author,
const bool store_output,
const std::string output_root,
const bool NL,
const int norm,
double k_min,
double k_max,
const double prec,
const std::string file_par,
const bool unit1)
156 double sigma8_z = sigma8_Pk(method_Pk, redshift, store_output, output_root, NL, k_min, k_max, prec, file_par);
157 double kd = 1./(-0.017 + 1.496*pow(sigma8_z, 2.));
159 if (author ==
"Pezzotta"){
160 Pkdt = sqrt(Pk_matter({kk}, method_Pk,
true, redshift, store_output, output_root, norm, k_min, k_max, prec, file_par, unit1)[0]*Pk_matter({kk}, method_Pk,
false, redshift, store_output, output_root, norm, k_min, k_max, prec, file_par, unit1)[0])*exp(-kk/kd);
162 else if (author ==
"Bel"){
163 double b = 0.091 + 0.702*sigma8_z*sigma8_z;
164 Pkdt = sqrt(Pk_matter({kk}, method_Pk,
true, redshift, store_output, output_root, norm, k_min, k_max, prec, file_par, unit1)[0]*Pk_matter({kk}, method_Pk,
false, redshift, store_output, output_root, norm, k_min, k_max, prec, file_par, unit1)[0])*exp(-kk/kd-b*pow(kk,6.0));
166 else WarningMsgCBL(
"the current implementation is not correct with author = " + author,
"Pk_DeltaTheta_fitting_function",
"RSD.cpp");
174 double cbl::cosmology::Cosmology::Pk_ThetaTheta_fitting_function (
const double kk,
const std::string method_Pk,
const double redshift,
const std::string author,
const bool store_output,
const std::string output_root,
const bool NL,
const int norm,
double k_min,
double k_max,
const double prec,
const std::string file_par,
const bool unit1)
176 double sigma8_z = sigma8_Pk(method_Pk, redshift, store_output, output_root, NL, k_min, k_max, prec, file_par);
178 if (author ==
"Pezzotta"){
179 double kt = 1./(-0.048 + 1.917*sigma8_z*sigma8_z);
180 Pktt = Pk_matter({kk}, method_Pk,
false, redshift, store_output, output_root, norm, k_min, k_max, prec, file_par, unit1)[0]*exp(-kk/kt);
183 else if (author ==
"Bel"){
184 double a1 = -0.817 + 3.198*sigma8_z;
185 double a2 = 0.877 - 4.191*sigma8_z;
186 double a3 = -1.199 + 4.629*sigma8_z;
187 Pktt = Pk_matter({kk}, method_Pk,
false, redshift, store_output, output_root, norm, k_min, k_max, prec, file_par, unit1)[0]*exp(-kk*(a1 + a2*kk + a3*kk*kk));
190 else WarningMsgCBL(
"the current implementation is not correct with author = " + author,
"Pk_ThetaTheta_fitting_function",
"RSD.cpp");
199 double cbl::cosmology::Cosmology::sigma_v (
const double redshift,
const std::string method_Pk,
const bool store_output,
const std::string output_root,
const int norm,
const double k_min,
const double k_max,
const int bin_k,
const double prec,
const std::string file_par,
const bool unit1)
202 const vector<double> Pk = Pk_matter(kk, method_Pk,
false, redshift, store_output, output_root, norm, k_min, k_max, prec, file_par, unit1);
206 auto integrand = [&] (
const double log_q)
208 const double qq = exp(log_q);
209 return qq*interp_Pk(qq);
double sigma_v(const double redshift=0., const std::string method_Pk="CAMB", const bool store_output=true, const std::string output_root="test", const int norm=-1, const double k_min=0.001, const double k_max=100., const int bin_k=512, const double prec=1.e-2, const std::string file_par=par::defaultString, const bool unit1=false)
the linear-order one-dimensional pairwise velocity dispersion,
double fsigma8(const double redshift, const std::string method_Pk, const bool store_output=true, const std::string output_root="test", const bool NL=false, const double k_min=0.001, const double k_max=100., const double prec=1.e-2, const std::string file_par=par::defaultString) const
f*σ8: the linear growth rate times the dark matter rms mass fluctuation within 8 Mpc/h
double quadrupole(const double Mass_min, const double Mass_max, const double redshift, const std::string model_bias, const std::string model_MF, const std::string method_SS, const bool store_output=true, const std::string output_root="test", const double Delta=200., const double kk=-1., const std::string interpType="Linear", const int norm=-1, const double k_min=0.001, const double k_max=100., const double prec=1.e-2, const std::string input_file=par::defaultString, const bool is_parameter_file=true)
the normalised quadrupole Q
double error_beta(const double redshift, const double bias, const double err_bias) const
the error on the specific growth rate β
double beta(const double redshift, const double bias) const
the specific growth rate β
double error_beta_measured(const double Volume, const double density, const double Mass_min, const double Mass_max, const double redshift, const std::string model_bias, const std::string model_MF, const std::string method_SS, const bool store_output=true, const std::string output_root="test", const double Delta=200., const double kk=-1., const std::string interpType="Linear", const int norm=-1, const double k_min=0.001, const double k_max=100., const double prec=1.e-2, const std::string input_file=par::defaultString, const bool is_parameter_file=true)
the error on the specific growth rate β from Bianchi et al. 2012
double Pk_ThetaTheta_fitting_function(const double kk, const std::string method_Pk, const double redshift, const std::string author, const bool store_output, const std::string output_root, const bool NL, const int norm, double k_min, double k_max, const double prec, const std::string file_par, const bool unit1)
the dark matter velocity divergence power spectrum
double Pk_DeltaTheta_fitting_function(const double kk, const std::string method_Pk, const double redshift, const std::string author, const bool store_output, const std::string output_root, const bool NL, const int norm, double k_min, double k_max, const double prec, const std::string file_par, const bool unit1)
the dark matter cross power spectrum
double Pk_DeltaDelta_fitting_function(const double kk, const std::string method_Pk, const double redshift, const std::string author, const bool store_output, const std::string output_root, const int norm, double k_min, double k_max, const double prec, const std::string file_par, const bool unit1)
the non-linear dark matter power spectrum using fitting functions given by Bel et....
static const double pi
: the ratio of a circle's circumference to its diameter
double bias(const double Mmin, const double sigmalgM, const double M0, const double M1, const double alpha, const std::shared_ptr< void > inputs)
the mean galaxy bias
double GSL_integrate_cquad(gsl_function func, const double a, const double b, const double rel_err=1.e-3, const double abs_err=0, const int nevals=100)
integral, using the gsl cquad method
The global namespace of the CosmoBolognaLib
std::vector< T > logarithmic_bin_vector(const size_t nn, const T min, const T max)
fill a std::vector with logarithmically spaced values
double relative_error_beta(const double bias, const double Volume, const double density)
estimated relative error on
void WarningMsgCBL(const std::string msg, const std::string functionCBL, const std::string fileCBL)
internal CBL warning message