BornAgain
1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Wraps a parameter of type double. More...
Public Member Functions | |
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()) | |
virtual | ~RealParameter ()=default |
RealParameter * | clone (const std::string &new_name="") const |
double & | getData () const |
const std::string & | getName () const |
bool | hasSameData (const IParameter &other) |
Returns true if two parameters are pointing to the same raw data. More... | |
virtual bool | isNull () const |
Returns true if wrapped parameter was not initialized with proper real value. More... | |
RealLimits | limits () const |
void | setData (double &data) |
RealParameter & | setLimited (double lower, double upper) |
RealParameter & | setLimits (const RealLimits &limits) |
RealParameter & | setNonnegative () |
RealParameter & | setPositive () |
RealParameter & | setUnit (const std::string &name) |
void | setValue (double value) |
Sets value of wrapped parameter and emit signal. More... | |
std::string | unit () const |
double | value () const |
Returns value of wrapped parameter. More... | |
Protected Member Functions | |
std::string | fullName () const |
For use in error messages. More... | |
Protected Attributes | |
Attributes | m_attr |
double * | m_data |
RealLimits | m_limits |
const std::string | m_name |
const std::function< void()> | m_onChange |
const std::string | m_parent_name |
Unit | m_unit |
Wraps a parameter of type double.
In addition to name and on-change callback held by the parent class IParameter, this class holds Limits, Attributes (currently only fixed or not), and a Unit.
Definition at line 31 of file RealParameter.h.
RealParameter::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() |
||
) |
Definition at line 18 of file RealParameter.cpp.
References IParameter< double >::fullName(), RealLimits::isInRange(), limits(), m_limits, and value().
Referenced by clone().
|
virtualdefault |
|
virtual |
Implements IParameter< double >.
Definition at line 31 of file RealParameter.cpp.
References RealParameter(), IParameter< double >::getName(), IParameter< double >::m_data, m_limits, IParameter< double >::m_onChange, IParameter< double >::m_parent_name, and unit().
Referenced by ParameterPool::copyToExternalPool().
|
inlineprotectedinherited |
|
inlineinherited |
Definition at line 41 of file IParameter.h.
|
inlineinherited |
Definition at line 49 of file IParameter.h.
|
inherited |
Returns true if two parameters are pointing to the same raw data.
Definition at line 48 of file IParameter.h.
|
inlinevirtualinherited |
Returns true if wrapped parameter was not initialized with proper real value.
Definition at line 39 of file IParameter.h.
RealLimits RealParameter::limits | ( | ) | const |
Definition at line 74 of file RealParameter.cpp.
References m_limits.
Referenced by RealParameter(), ParameterPool::report_set_value_error(), and setLimits().
|
inlineinherited |
Definition at line 42 of file IParameter.h.
RealParameter & RealParameter::setLimited | ( | double | lower, |
double | upper | ||
) |
Definition at line 79 of file RealParameter.cpp.
References RealLimits::limited(), and setLimits().
Referenced by Beam::Beam().
RealParameter & RealParameter::setLimits | ( | const RealLimits & | limits | ) |
Definition at line 68 of file RealParameter.cpp.
References limits(), and m_limits.
Referenced by DepthProbeSimulation::initialize(), SpecularSimulation::initialize(), setLimited(), setNonnegative(), and setPositive().
RealParameter & RealParameter::setNonnegative | ( | ) |
Definition at line 91 of file RealParameter.cpp.
References RealLimits::nonnegative(), and setLimits().
Referenced by Beam::Beam(), DetectionProperties::DetectionProperties(), IInterferenceFunction::IInterferenceFunction(), InterferenceFunction1DLattice::InterferenceFunction1DLattice(), InterferenceFunction2DParaCrystal::InterferenceFunction2DParaCrystal(), InterferenceFunctionHardDisk::InterferenceFunctionHardDisk(), InterferenceFunctionRadialParaCrystal::InterferenceFunctionRadialParaCrystal(), InterferenceFunctionTwin::InterferenceFunctionTwin(), LayerRoughness::LayerRoughness(), MultiLayer::MultiLayer(), ResolutionFunction2DGaussian::ResolutionFunction2DGaussian(), and Layer::registerThickness().
RealParameter & RealParameter::setPositive | ( | ) |
Definition at line 85 of file RealParameter.cpp.
References RealLimits::positive(), and setLimits().
Referenced by BasicLattice2D::BasicLattice2D(), HexagonalLattice2D::HexagonalLattice2D(), and SquareLattice2D::SquareLattice2D().
RealParameter & RealParameter::setUnit | ( | const std::string & | name | ) |
Definition at line 97 of file RealParameter.cpp.
References m_unit, RealSpace::Particles::name(), and Unit::setUnit().
Referenced by BasicLattice2D::BasicLattice2D(), Beam::Beam(), HexagonalLattice2D::HexagonalLattice2D(), IInterferenceFunction::IInterferenceFunction(), InterferenceFunction1DLattice::InterferenceFunction1DLattice(), InterferenceFunction2DParaCrystal::InterferenceFunction2DParaCrystal(), InterferenceFunctionHardDisk::InterferenceFunctionHardDisk(), InterferenceFunctionRadialParaCrystal::InterferenceFunctionRadialParaCrystal(), InterferenceFunctionTwin::InterferenceFunctionTwin(), Lattice2D::Lattice2D(), LayerRoughness::LayerRoughness(), MultiLayer::MultiLayer(), SquareLattice2D::SquareLattice2D(), Layer::registerThickness(), IParametricComponent::registerVector(), Lattice2D::setRotationEnabled(), and DistributionLogNormal::setUnits().
void RealParameter::setValue | ( | double | value | ) |
Sets value of wrapped parameter and emit signal.
Definition at line 39 of file RealParameter.cpp.
References IParameter< double >::fullName(), Attributes::isFixed(), RealLimits::isInRange(), IParameter< double >::isNull(), m_attr, IParameter< double >::m_data, m_limits, IParameter< double >::m_onChange, and value().
std::string RealParameter::unit | ( | ) | const |
Definition at line 106 of file RealParameter.cpp.
References Unit::getName(), and m_unit.
Referenced by clone(), ParameterUtils::poolParameterUnits(), and pyfmt2::valueTimesUnit().
double RealParameter::value | ( | ) | const |
Returns value of wrapped parameter.
Definition at line 63 of file RealParameter.cpp.
References IParameter< double >::m_data.
Referenced by RealParameter(), ParticleDistribution::generateParticles(), setValue(), and pyfmt2::valueTimesUnit().
|
protected |
Definition at line 59 of file RealParameter.h.
Referenced by setValue().
|
protectedinherited |
Definition at line 53 of file IParameter.h.
|
protected |
Definition at line 58 of file RealParameter.h.
Referenced by RealParameter(), clone(), limits(), setLimits(), and setValue().
|
protectedinherited |
Definition at line 52 of file IParameter.h.
|
protectedinherited |
Definition at line 55 of file IParameter.h.
|
protectedinherited |
Definition at line 54 of file IParameter.h.
|
protected |
Definition at line 60 of file RealParameter.h.