19 const std::function<
void()>& onChange,
const RealLimits& limits,
21 :
IParameter<double>(name, par, parent_name, onChange), m_limits(limits), m_attr(attr)
24 std::ostringstream message;
25 message <<
"Cannot initialize parameter " <<
fullName() <<
" with value " <<
value()
26 <<
": out of bounds [" <<
limits <<
"]\n";
27 throw std::runtime_error(message.str());
45 throw std::runtime_error(
"RealParameter::setValue() -> Error. Non-initialized parameter '"
49 std::ostringstream message;
50 message <<
"Cannot set parameter " <<
fullName() <<
" to value " <<
value
51 <<
": out of bounds [" <<
m_limits <<
"]\n";
52 throw std::runtime_error(message.str());
56 throw std::runtime_error(
"Parameter " +
fullName() +
" is fixed");
99 if (!(name ==
"" || name ==
"nm" || name ==
"rad" || name ==
"nm^2"))
100 throw std::runtime_error(
"RealParameter::setUnit() -> Error. Unexpected unit name " + name);
Defines class RealParameter.
Attributes for a fit parameter.
Pure virtual base class for parameter wrapper classes RealParameter, ComponentParameter.
const std::string & getName() const
virtual bool isNull() const
Returns true if wrapped parameter was not initialized with proper real value.
const std::function< void()> m_onChange
const std::string m_parent_name
std::string fullName() const
For use in error messages.
Limits for a real fit parameter.
static RealLimits positive()
Creates an object which can have only positive values (>0., zero is not included)
bool isInRange(double value) const
returns true if proposed value is in limits range
static RealLimits nonnegative()
Creates an object which can have only positive values with 0. included.
static RealLimits limited(double left_bound_value, double right_bound_value)
Creates an object bounded from the left and right.
Wraps a parameter of type double.
RealLimits limits() const
RealParameter & setLimits(const RealLimits &limits)
RealParameter * clone(const std::string &new_name="") const
RealParameter & setNonnegative()
RealParameter & setLimited(double lower, double upper)
double value() const
Returns value of wrapped parameter.
RealParameter & setPositive()
RealParameter(const std::string &name, double *par, const std::string &parent_name="", const std::function< void()> &onChange=std::function< void()>(), const RealLimits &limits=RealLimits::limitless(), const Attributes &attr=Attributes::free())
RealParameter & setUnit(const std::string &name)
void setValue(double value)
Sets value of wrapped parameter and emit signal.
void setUnit(const std::string &name)
const std::string & getName() const