20 size_t nbr_samples,
double sigma_factor,
22 : m_whichParameter(whichParameter)
23 , m_nbr_samples(nbr_samples)
24 , m_sigma_factor(sigma_factor)
31 throw std::runtime_error(
"ParameterDistribution::ParameterDistribution() -> Error."
32 "sigma factor cannot be negative");
34 throw std::runtime_error(
"ParameterDistribution::ParameterDistribution() -> Error."
35 "Number of samples can't be zero.");
40 size_t nbr_samples,
double xmin,
double xmax)
41 : m_whichParameter(whichParameter)
42 , m_nbr_samples(nbr_samples)
49 throw std::runtime_error(
"ParameterDistribution::ParameterDistribution() -> Error."
50 "sigma factor cannot be negative");
52 throw std::runtime_error(
"ParameterDistribution::ParameterDistribution() -> Error."
53 "Number of samples can't be zero.");
55 throw std::runtime_error(
"ParameterDistribution::ParameterDistribution() -> Error."
60 : m_whichParameter(other.m_whichParameter)
61 , m_nbr_samples(other.m_nbr_samples)
62 , m_sigma_factor(other.m_sigma_factor)
63 , m_limits(other.m_limits)
64 , m_xmin(other.m_xmin)
65 , m_xmax(other.m_xmax)
95 return "ParameterDistribution.BeamWavelength";
97 return "ParameterDistribution.BeamInclinationAngle";
99 return "ParameterDistribution.BeamAzimuthalAngle";
101 throw std::runtime_error(
"printParameterDistribution(): missing implementation");
Defines classes representing one-dimensional distributions.
Defines class ParameterDistribution.
Interface for one-dimensional distributions.
IDistribution1D * clone() const override=0
A parametric distribution function, for use with any model parameter.
std::string whichParameterAsPyEnum() const
ParameterDistribution & operator=(const ParameterDistribution &other)
Overload assignment operator.
WhichParameter whichParameter() const
WhichParameter m_whichParameter
std::unique_ptr< IDistribution1D > m_distribution
const IDistribution1D * getDistribution() const
std::vector< ParameterSample > generateSamples() const
generate list of sampled values with their weight
size_t nDraws() const
get number of samples for this distribution
virtual ~ParameterDistribution()
ParameterDistribution(WhichParameter whichParameter, const IDistribution1D &distribution, size_t nbr_samples, double sigma_factor=0.0, const RealLimits &limits=RealLimits())
Limits for a real fit parameter.