34 #ifndef __MODELLINGDPROFILE__
35 #define __MODELLINGDPROFILE__
56 namespace densityprofile {
71 std::vector< std::function<double(std::vector<double> &par,
const int idx, std::vector<statistics::PriorDistribution> prior,
const int i_prior)> >
get_parameter;
74 std::vector<statistics::ParameterType>
Par_type;
134 std::vector<cosmology::CosmologicalParameter>
Cpar;
257 Modelling_DensityProfile (
const std::shared_ptr<cbl::measure::stackprofile::StackedDensityProfile> profile,
const std::string profile_author=
"NFW_trunc",
const bool _2halo=
false,
const std::string halo_def=
"critical",
const double Delta=200.);
277 Modelling_DensityProfile (
const std::shared_ptr<cbl::data::Data> dataset,
const std::string profile_author=
"NFW_trunc",
const bool _2halo=
false,
const std::string halo_def=
"critical",
const double Delta=200.);
329 void set_data_model (
const cbl::cosmology::Cosmology cosmology,
const double redshift,
const double contrast,
const double logM_base,
const double mass_pivot,
const std::string bias_author=
"Tinker",
const std::string method_Pk=
"EisensteinHu", std::string interp_type=
"Linear");
365 void set_data_model (
const cosmology::Cosmology cosmology,
const double redshift,
const double mass_proxy,
const double redshift_pivot,
const double proxy_pivot,
const double contrast,
const double logM_base,
const double mass_pivot,
const double Nclusters,
const std::string bias_author=
"Tinker",
const std::string method_Pk=
"EisensteinHu", std::string interp_type=
"Linear");
603 void set_model_DensityProfile_cosmology (
const std::vector<cbl::cosmology::CosmologicalParameter> cosmo_param,
const std::vector<statistics::PriorDistribution> cosmo_prior,
const std::string z_evo,
const statistics::PriorDistribution Rt_prior,
const statistics::PriorDistribution concentration_prior,
const statistics::PriorDistribution f_off_prior,
const statistics::PriorDistribution sigma_off_prior,
const statistics::PriorDistribution anisotropic_boost_prior,
const statistics::PriorDistribution orientation_boost_prior,
const statistics::PriorDistribution alpha_prior,
const statistics::PriorDistribution beta_prior,
const statistics::PriorDistribution gamma_prior,
const statistics::PriorDistribution scatter0_prior,
const statistics::PriorDistribution scatterM_prior,
const statistics::PriorDistribution scatterM_exponent_prior,
const statistics::PriorDistribution scatterz_prior,
const statistics::PriorDistribution scatterz_exponent_prior);
737 void set_model_DensityProfile_cosmology (
const std::vector<cbl::cosmology::CosmologicalParameter> cosmo_param,
const std::vector<statistics::PriorDistribution> cosmo_prior,
const std::string z_evo,
const statistics::PriorDistribution Rt_prior,
const statistics::PriorDistribution c0_prior,
const statistics::PriorDistribution cM_prior,
const statistics::PriorDistribution cz_prior,
const statistics::PriorDistribution f_off0_prior,
const statistics::PriorDistribution f_offM_prior,
const statistics::PriorDistribution f_offz_prior,
const statistics::PriorDistribution sigma_off0_prior,
const statistics::PriorDistribution sigma_offM_prior,
const statistics::PriorDistribution sigma_offz_prior,
const statistics::PriorDistribution anisotropic_boost_prior,
const statistics::PriorDistribution orientation_boost_prior,
const statistics::PriorDistribution alpha_prior,
const statistics::PriorDistribution beta_prior,
const statistics::PriorDistribution gamma_prior,
const statistics::PriorDistribution scatter0_prior,
const statistics::PriorDistribution scatterM_prior,
const statistics::PriorDistribution scatterM_exponent_prior,
const statistics::PriorDistribution scatterz_prior,
const statistics::PriorDistribution scatterz_exponent_prior);
769 std::vector<double>
model_density (
const std::vector<double> radius,
const std::shared_ptr<void> inputs, std::vector<double> ¶meter);
817 std::vector<double>
compute_model_density_scaling_relation (
const std::vector<double> radius,
cbl::cosmology::Cosmology cosmo,
cbl::cosmology::HaloProfile halo_profile, std::shared_ptr<STR_Profile_data_model> pp,
const double conc,
const double c0,
const double cM,
const double cz,
const double AB_fact,
const double OB_fact,
const double alpha,
const double beta,
const double gamma,
const double scatter0,
const double scatterM,
const double scatterM_exp,
const double scatterz,
const double scatterz_exp);
833 std::vector<double>
model_density_scaling_relation (
const std::vector<double> radius,
const std::shared_ptr<void> inputs, std::vector<double> ¶meter);
The class Modelling_MassObservableRelation.
The class StackedDensityProfile.
The class Modelling_DensityProfile.
STR_Profile_data_model data_model()
get the member m_data_model
virtual ~Modelling_DensityProfile()=default
default destructor
Modelling_DensityProfile()=default
default constuctor _DensityProfile
double m_Delta
overdensity factor
std::string m_halo_def
halo definition
bool m_evolving_offcentering
if true, the offcentering parameters evolve with redshift and mass proxy
std::string m_profile_author
author(s) of the cluster density profile
void set_model_DensityProfile_cosmology(const std::vector< cbl::cosmology::CosmologicalParameter > cosmo_param, const std::vector< statistics::PriorDistribution > cosmo_prior, const statistics::PriorDistribution Rt_prior, const statistics::PriorDistribution concentration_prior, const statistics::PriorDistribution logM_prior, const statistics::PriorDistribution f_off_prior, const statistics::PriorDistribution sigma_off_prior, const statistics::PriorDistribution anisotropic_boost_prior, const statistics::PriorDistribution orientation_boost_prior)
Set the profile and cosmological parameters used to model the cluster density profile.
void exclude_parameter_from_MCMC(const std::string parameter)
Exclude the selected parameter from the MCMC parameter space, and randomly extract its value from the...
bool m_mass_is_derived
if true, the mass is a parameter derived from the scaling relation
STR_Profile_data_model m_data_model
the container of parameters for the density model computation
bool m_2halo
if true, consider the 2-halo contribution
void set_data_model(const cbl::cosmology::Cosmology cosmology, const double redshift, const double contrast, const double logM_base, const double mass_pivot, const std::string bias_author="Tinker", const std::string method_Pk="EisensteinHu", std::string interp_type="Linear")
Set the data used to construct generic models of halo profiles.
The class PriorDistribution.
static const double alpha
: the fine-structure constant
std::vector< double > model_density_scaling_relation(const std::vector< double > radius, const std::shared_ptr< void > inputs, std::vector< double > ¶meter)
Compute the excess density profile model in all the radial bins. The mass is derived from the scaling...
std::vector< double > model_density(const std::vector< double > radius, const std::shared_ptr< void > inputs, std::vector< double > ¶meter)
Compute the excess density profile model in all the radial bins.
std::vector< double > model_density_scaling_relation_evolving_concentration_offcentering(const std::vector< double > radius, const std::shared_ptr< void > inputs, std::vector< double > ¶meter)
Compute the excess density profile model in all the radial bins. The mass is derived from the scaling...
std::vector< double > compute_model_density_scaling_relation(const std::vector< double > radius, cbl::cosmology::Cosmology cosmo, cbl::cosmology::HaloProfile halo_profile, std::shared_ptr< STR_Profile_data_model > pp, const double conc, const double c0, const double cM, const double cz, const double AB_fact, const double OB_fact, const double alpha, const double beta, const double gamma, const double scatter0, const double scatterM, const double scatterM_exp, const double scatterz, const double scatterz_exp)
Compute the excess density profile model in all the radial bins when mass is derived from the scaling...
The global namespace of the CosmoBolognaLib
the structure STR_Profile_data_model
std::string method_Pk
method used for the computation of the power spectrum
int i_Rt
index of the truncation factor
int i_AB_func
index of the function returning the anisotropic boost
int i_OB_func
index of the function returning the orientation boost
int i_logM
index of the mass logarithm
STR_Profile_data_model()=default
default constructor
std::string interp_type
interpolation type for the power spectrum
double logM_base
Base of the mass logarithm.
std::vector< statistics::PriorDistribution > param_prior
parameter priors
std::vector< std::function< double(std::vector< double > &par, const int idx, std::vector< statistics::PriorDistribution > prior, const int i_prior)> > get_parameter
vector of functions returning some parameter values
int i_foff
index of the fraction of off-centered clusters
std::function< double(const double, cbl::cosmology::HaloProfile)> conc_func
function returning the concentration
int i_Rt_func
index of the function returning the truncation factor
std::vector< cosmology::CosmologicalParameter > Cpar
Cosmological parameters.
int i_sigmaoff_func
index of the function returning the off-centering scale
std::function< std::vector< double >const std::vector< double >, cbl::cosmology::HaloProfile, const std::string, const std::string, const std::string)> two_halo_func
function returning the 2-halo term
double mass_pivot
The mass pivot.
double proxy_pivot
Mass proxy pivot in the scaling relation.
std::vector< std::string > Par_string
parameter names
double redshift_pivot
Redshift pivot in the scaling relation.
int i_conc
index of the concentration
std::string bias_author
author(s) who proposed the bias function
std::vector< statistics::PriorDistribution > priors_excluded
vector of priors of the parameters excluded from the MCMC
int i_OB
index of the orientation boost
std::function< double(const double, const double, const double, const double, const double, const double)> conc_scaling_relation_func
function returning the concentration from a log(concentration)-log(mass) relation
double mass_proxy
Mass proxy.
std::shared_ptr< cosmology::HaloProfile > halo_profile
HaloProfile object pointer.
int i_AB
index of the anisotropic boost
std::vector< statistics::ParameterType > Par_type
parameter types
std::function< std::vector< double >const std::vector< double >, cbl::cosmology::HaloProfile, const double, const std::string, const std::string)> two_halo_func_fast
function returning the 2-halo term, taking the halo bias in input
int i_sigmaoff
index of the off-centering scale
std::shared_ptr< cosmology::Cosmology > cosmology
Fiducial cosmology pointer.
int i_foff_func
index of the function returning the fraction of off-centered clusters
double contrast
The density contrast with respect to the critical density (i.e. if equal to 200, is considered)
std::shared_ptr< modelling::massobsrel::Modelling_MassObservableRelation > scaling_relation
Modelling_MassObservableRelation object pointer.