BornAgain
1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
A parametric distribution function, for use with any model parameter. More...
Public Member Functions | |
ParameterDistribution (const ParameterDistribution &other) | |
ParameterDistribution (const std::string &par_name, const IDistribution1D &distribution, size_t nbr_samples, double sigma_factor=0.0, const RealLimits &limits=RealLimits()) | |
ParameterDistribution (const std::string &par_name, const IDistribution1D &distribution, size_t nbr_samples, double xmin, double xmax) | |
virtual | ~ParameterDistribution () |
virtual ParameterPool * | createParameterTree () const |
Creates new parameter pool, with all local parameters and those of its children. More... | |
std::vector< ParameterSample > | generateSamples () const |
generate list of sampled values with their weight More... | |
IDistribution1D * | getDistribution () |
const IDistribution1D * | getDistribution () const |
RealLimits | getLimits () const |
std::vector< std::string > | getLinkedParameterNames () const |
get list of linked parameter names More... | |
std::string | getMainParameterName () const |
get the main parameter's name More... | |
double | getMaxValue () const |
double | getMinValue () const |
const std::string & | getName () const |
size_t | getNbrSamples () const |
get number of samples for this distribution More... | |
double | getSigmaFactor () const |
get the sigma factor More... | |
ParameterDistribution & | linkParameter (std::string par_name) |
virtual void | onChange () |
Action to be taken in inherited class when a parameter has changed. More... | |
ParameterDistribution & | operator= (const ParameterDistribution &other) |
Overload assignment operator. More... | |
RealParameter * | parameter (const std::string &name) const |
Returns parameter with given 'name'. More... | |
ParameterPool * | parameterPool () const |
Returns pointer to the parameter pool. More... | |
std::string | parametersToString () const |
Returns multiline string representing available parameters. More... | |
RealParameter & | registerParameter (const std::string &name, double *parpointer) |
void | registerVector (const std::string &base_name, kvector_t *p_vec, const std::string &units="nm") |
void | removeParameter (const std::string &name) |
void | removeVector (const std::string &base_name) |
void | setName (const std::string &name) |
void | setParameterValue (const std::string &name, double value) |
void | setVectorValue (const std::string &base_name, kvector_t value) |
Static Public Member Functions | |
static std::string | XComponentName (const std::string &base_name) |
static std::string | YComponentName (const std::string &base_name) |
static std::string | ZComponentName (const std::string &base_name) |
Private Attributes | |
std::unique_ptr< IDistribution1D > | m_distribution |
RealLimits | m_limits |
std::vector< std::string > | m_linked_par_names |
std::string | m_name |
size_t | m_nbr_samples |
std::string | m_parname |
std::unique_ptr< ParameterPool > | m_pool |
parameter pool (kind of pointer-to-implementation) More... | |
double | m_sigma_factor |
double | m_xmax |
double | m_xmin |
A parametric distribution function, for use with any model parameter.
Definition at line 28 of file ParameterDistribution.h.
ParameterDistribution::ParameterDistribution | ( | const std::string & | par_name, |
const IDistribution1D & | distribution, | ||
size_t | nbr_samples, | ||
double | sigma_factor = 0.0 , |
||
const RealLimits & | limits = RealLimits() |
||
) |
Definition at line 18 of file ParameterDistribution.cpp.
References IDistribution1D::clone(), m_distribution, and m_sigma_factor.
ParameterDistribution::ParameterDistribution | ( | const std::string & | par_name, |
const IDistribution1D & | distribution, | ||
size_t | nbr_samples, | ||
double | xmin, | ||
double | xmax | ||
) |
Definition at line 39 of file ParameterDistribution.cpp.
References IDistribution1D::clone(), m_distribution, and m_sigma_factor.
ParameterDistribution::ParameterDistribution | ( | const ParameterDistribution & | other | ) |
Definition at line 61 of file ParameterDistribution.cpp.
References m_distribution.
|
virtualdefault |
|
virtualinherited |
Creates new parameter pool, with all local parameters and those of its children.
Reimplemented in INode.
Definition at line 36 of file IParametricComponent.cpp.
References IParametricComponent::getName(), and IParametricComponent::m_pool.
Referenced by IParametricComponent::parametersToString(), ParameterUtils::poolParameterUnits(), and IParametricComponent::setParameterValue().
std::vector< ParameterSample > ParameterDistribution::generateSamples | ( | ) | const |
generate list of sampled values with their weight
Definition at line 104 of file ParameterDistribution.cpp.
References m_distribution, m_limits, m_nbr_samples, m_sigma_factor, m_xmax, and m_xmin.
Referenced by DistributionHandler::addParameterDistribution(), and ParticleDistribution::generateParticles().
IDistribution1D * ParameterDistribution::getDistribution | ( | ) |
Definition at line 116 of file ParameterDistribution.cpp.
References m_distribution.
const IDistribution1D * ParameterDistribution::getDistribution | ( | ) | const |
Definition at line 111 of file ParameterDistribution.cpp.
References m_distribution.
Referenced by ParticleDistribution::ParticleDistribution(), SampleToPython::defineParticleDistributions(), ParticleDistribution::getChildren(), DepthProbeSimulation::validateParametrization(), OffSpecularSimulation::validateParametrization(), and SpecularSimulation::validateParametrization().
|
inline |
Definition at line 63 of file ParameterDistribution.h.
References m_limits.
Referenced by pyfmt2::printParameterDistribution().
|
inline |
get list of linked parameter names
Definition at line 61 of file ParameterDistribution.h.
References m_linked_par_names.
Referenced by SampleToPython::defineParticleDistributions(), ParticleDistribution::generateParticles(), and TransformFromDomain::setParticleDistributionItem().
|
inline |
get the main parameter's name
Definition at line 46 of file ParameterDistribution.h.
References m_parname.
Referenced by ParticleDistribution::generateParticles(), pyfmt2::printParameterDistribution(), TransformFromDomain::setParticleDistributionItem(), DepthProbeSimulation::validateParametrization(), OffSpecularSimulation::validateParametrization(), and SpecularSimulation::validateParametrization().
|
inline |
Definition at line 66 of file ParameterDistribution.h.
References m_xmax.
Referenced by TransformFromDomain::setItemFromSample().
|
inline |
Definition at line 65 of file ParameterDistribution.h.
References m_xmin.
Referenced by TransformFromDomain::setItemFromSample().
|
inlineinherited |
Definition at line 70 of file IParametricComponent.h.
References IParametricComponent::m_name.
Referenced by Beam::Beam(), ConvolutionDetectorResolution::ConvolutionDetectorResolution(), IDetector::IDetector(), Instrument::Instrument(), IParametricComponent::IParametricComponent(), SampleBuilderNode::SampleBuilderNode(), Layer::clone(), INode::copyNumber(), IParametricComponent::createParameterTree(), IFormFactor::createSlicedFormFactor(), SampleToPython::defineInterferenceFunctions(), INode::displayName(), Beam::operator=(), SampleBuilderNode::operator=(), GUIObjectBuilder::populateInstrumentModel(), PyImportAssistant::populateModels(), GUIDomainSampleVisitor::populateSampleModel(), IParametricComponent::registerParameter(), IFormFactor::sliceFormFactor(), and GUIDomainSampleVisitor::visit().
size_t ParameterDistribution::getNbrSamples | ( | ) | const |
get number of samples for this distribution
Definition at line 97 of file ParameterDistribution.cpp.
References m_distribution, and m_nbr_samples.
Referenced by DistributionHandler::addParameterDistribution(), and pyfmt2::printParameterDistribution().
|
inline |
get the sigma factor
Definition at line 52 of file ParameterDistribution.h.
References m_sigma_factor.
Referenced by pyfmt2::printParameterDistribution().
ParameterDistribution & ParameterDistribution::linkParameter | ( | std::string | par_name | ) |
Definition at line 91 of file ParameterDistribution.cpp.
References m_linked_par_names.
Referenced by LinkedBoxDistributionBuilder::buildSample(), CylindersInSSCABuilder::buildSample(), and ParticleDistributionItem::createParticleDistribution().
|
inlinevirtualinherited |
Action to be taken in inherited class when a parameter has changed.
Reimplemented in IProfileRipple, Lattice3D, InterferenceFunction3DLattice, InterferenceFunction2DLattice, FormFactorSphereLogNormalRadius, FormFactorSphereGaussianRadius, FormFactorGaussSphere, ISawtoothRipple, ICosineRipple, IProfileRectangularRipple, FormFactorTruncatedSpheroid, FormFactorTruncatedSphere, FormFactorTruncatedCube, FormFactorTetrahedron, FormFactorPyramid, FormFactorPrism6, FormFactorPrism3, FormFactorLongBoxLorentz, FormFactorLongBoxGauss, FormFactorIcosahedron, FormFactorHollowSphere, FormFactorHemiEllipsoid, FormFactorFullSpheroid, FormFactorFullSphere, FormFactorEllipsoidalCylinder, FormFactorDodecahedron, FormFactorCylinder, FormFactorCuboctahedron, FormFactorCone6, FormFactorCone, FormFactorCantellatedCube, FormFactorBox, FormFactorAnisoPyramid, and Lattice2D.
Definition at line 59 of file IParametricComponent.h.
Referenced by Lattice2D::onChange(), and IParametricComponent::registerParameter().
ParameterDistribution & ParameterDistribution::operator= | ( | const ParameterDistribution & | other | ) |
Overload assignment operator.
Definition at line 76 of file ParameterDistribution.cpp.
References m_distribution, m_limits, m_linked_par_names, m_nbr_samples, m_parname, m_sigma_factor, m_xmax, and m_xmin.
|
inherited |
Returns parameter with given 'name'.
Definition at line 86 of file IParametricComponent.cpp.
References IParametricComponent::m_pool, and RealSpace::Particles::name().
Referenced by DepthProbeSimulation::initialize(), SpecularSimulation::initialize(), Lattice3D::initialize(), IParticle::registerAbundance(), ParticleLayout::registerParticleDensity(), IParticle::registerPosition(), Layer::registerThickness(), Lattice2D::setRotationEnabled(), and DistributionLogNormal::setUnits().
|
inlineinherited |
Returns pointer to the parameter pool.
Definition at line 39 of file IParametricComponent.h.
References IParametricComponent::m_pool.
Referenced by INode::INode(), IParametricComponent::IParametricComponent(), pyfmt2::argumentList(), SampleBuilderNode::borrow_builder_parameters(), SampleBuilderNode::reset(), and IDistribution1D::setUnits().
|
inherited |
Returns multiline string representing available parameters.
Definition at line 43 of file IParametricComponent.cpp.
References IParametricComponent::createParameterTree().
|
inherited |
Definition at line 51 of file IParametricComponent.cpp.
References IParametricComponent::getName(), IParametricComponent::m_pool, RealSpace::Particles::name(), and IParametricComponent::onChange().
Referenced by BasicLattice2D::BasicLattice2D(), Beam::Beam(), CylindersInBABuilder::CylindersInBABuilder(), DetectionProperties::DetectionProperties(), HexagonalLattice2D::HexagonalLattice2D(), IInterferenceFunction::IInterferenceFunction(), INode::INode(), InterferenceFunction1DLattice::InterferenceFunction1DLattice(), InterferenceFunction2DParaCrystal::InterferenceFunction2DParaCrystal(), InterferenceFunctionHardDisk::InterferenceFunctionHardDisk(), InterferenceFunctionRadialParaCrystal::InterferenceFunctionRadialParaCrystal(), InterferenceFunctionTwin::InterferenceFunctionTwin(), Lattice2D::Lattice2D(), LayerRoughness::LayerRoughness(), MultiLayer::MultiLayer(), ParticleDistribution::ParticleDistribution(), PlainMultiLayerBySLDBuilder::PlainMultiLayerBySLDBuilder(), ResolutionFunction2DGaussian::ResolutionFunction2DGaussian(), ResonatorBuilder::ResonatorBuilder(), SquareLattice2D::SquareLattice2D(), TriangularRippleBuilder::TriangularRippleBuilder(), IParticle::registerAbundance(), ParticleLayout::registerParticleDensity(), Layer::registerThickness(), IParametricComponent::registerVector(), ParticleLayout::registerWeight(), and Lattice2D::setRotationEnabled().
|
inherited |
Definition at line 57 of file IParametricComponent.cpp.
References ModelView::Utils::base_name(), IParametricComponent::registerParameter(), RealParameter::setUnit(), IParametricComponent::XComponentName(), IParametricComponent::YComponentName(), and IParametricComponent::ZComponentName().
Referenced by Beam::Beam(), DetectionProperties::DetectionProperties(), InterferenceFunctionTwin::InterferenceFunctionTwin(), MultiLayer::MultiLayer(), Lattice3D::initialize(), and IParticle::registerPosition().
|
inherited |
Definition at line 91 of file IParametricComponent.cpp.
References IParametricComponent::m_pool, and RealSpace::Particles::name().
Referenced by IParticle::registerAbundance(), ParticleLayout::registerParticleDensity(), Layer::registerThickness(), IParametricComponent::removeVector(), and Lattice2D::setRotationEnabled().
|
inherited |
Definition at line 96 of file IParametricComponent.cpp.
References ModelView::Utils::base_name(), IParametricComponent::removeParameter(), IParametricComponent::XComponentName(), IParametricComponent::YComponentName(), and IParametricComponent::ZComponentName().
Referenced by IParticle::registerPosition().
|
inlineinherited |
Definition at line 69 of file IParametricComponent.h.
References IParametricComponent::m_name, and RealSpace::Particles::name().
Referenced by BasicLattice2D::BasicLattice2D(), Beam::Beam(), ConvolutionDetectorResolution::ConvolutionDetectorResolution(), Crystal::Crystal(), DetectionProperties::DetectionProperties(), DistributionHandler::DistributionHandler(), FormFactorCoreShell::FormFactorCoreShell(), FormFactorCrystal::FormFactorCrystal(), FormFactorDecoratorMaterial::FormFactorDecoratorMaterial(), FormFactorDecoratorPositionFactor::FormFactorDecoratorPositionFactor(), FormFactorDecoratorRotation::FormFactorDecoratorRotation(), FormFactorWeighted::FormFactorWeighted(), HexagonalLattice2D::HexagonalLattice2D(), IDetector::IDetector(), INode::INode(), Instrument::Instrument(), InterferenceFunction1DLattice::InterferenceFunction1DLattice(), InterferenceFunction2DLattice::InterferenceFunction2DLattice(), InterferenceFunction2DParaCrystal::InterferenceFunction2DParaCrystal(), InterferenceFunction2DSuperLattice::InterferenceFunction2DSuperLattice(), InterferenceFunction3DLattice::InterferenceFunction3DLattice(), InterferenceFunctionFinite2DLattice::InterferenceFunctionFinite2DLattice(), InterferenceFunctionFinite3DLattice::InterferenceFunctionFinite3DLattice(), InterferenceFunctionHardDisk::InterferenceFunctionHardDisk(), InterferenceFunctionNone::InterferenceFunctionNone(), InterferenceFunctionRadialParaCrystal::InterferenceFunctionRadialParaCrystal(), InterferenceFunctionTwin::InterferenceFunctionTwin(), ISampleBuilder::ISampleBuilder(), IsGISAXSDetector::IsGISAXSDetector(), Lattice3D::Lattice3D(), Layer::Layer(), LayerInterface::LayerInterface(), LayerRoughness::LayerRoughness(), MultiLayer::MultiLayer(), ParticleCoreShell::ParticleCoreShell(), ParticleDistribution::ParticleDistribution(), ParticleLayout::ParticleLayout(), RectangularDetector::RectangularDetector(), ResolutionFunction2DGaussian::ResolutionFunction2DGaussian(), SampleBuilderNode::SampleBuilderNode(), SphericalDetector::SphericalDetector(), SquareLattice2D::SquareLattice2D(), Layer::clone(), LayersWithAbsorptionBuilder::createSampleByIndex(), Basic2DParaCrystalBuilder::createSampleByIndex(), ParticleInVacuumBuilder::createSampleByIndex(), SimpleMagneticRotationBuilder::createSampleByIndex(), DepthProbeSimulation::initialize(), GISASSimulation::initialize(), OffSpecularSimulation::initialize(), SpecularSimulation::initialize(), SpecularDetector1D::initialize(), MesoCrystal::initialize(), Particle::initialize(), ParticleComposition::initialize(), Beam::operator=(), SampleBuilderNode::operator=(), SampleBuilderNode::reset(), and SampleBuilderNode::setSBN().
|
inherited |
Definition at line 65 of file IParametricComponent.cpp.
References IParametricComponent::createParameterTree(), IParametricComponent::m_pool, RealSpace::Particles::name(), and ParameterPool::setMatchedParametersValue().
Referenced by AsymRippleBuilder::buildSample(), and IParametricComponent::setVectorValue().
|
inherited |
Definition at line 78 of file IParametricComponent.cpp.
References ModelView::Utils::base_name(), IParametricComponent::setParameterValue(), BasicVector3D< T >::x(), IParametricComponent::XComponentName(), BasicVector3D< T >::y(), IParametricComponent::YComponentName(), BasicVector3D< T >::z(), and IParametricComponent::ZComponentName().
|
staticinherited |
Definition at line 103 of file IParametricComponent.cpp.
References ModelView::Utils::base_name().
Referenced by Lattice3D::initialize(), IParticle::registerPosition(), IParametricComponent::registerVector(), IParametricComponent::removeVector(), IParametricComponent::setVectorValue(), and VectorParameterTranslator::translate().
|
staticinherited |
Definition at line 108 of file IParametricComponent.cpp.
References ModelView::Utils::base_name().
Referenced by IParametricComponent::registerVector(), IParametricComponent::removeVector(), IParametricComponent::setVectorValue(), and VectorParameterTranslator::translate().
|
staticinherited |
Definition at line 113 of file IParametricComponent.cpp.
References ModelView::Utils::base_name().
Referenced by IParametricComponent::registerVector(), IParametricComponent::removeVector(), IParametricComponent::setVectorValue(), and VectorParameterTranslator::translate().
|
private |
Definition at line 70 of file ParameterDistribution.h.
Referenced by ParameterDistribution(), generateSamples(), getDistribution(), getNbrSamples(), and operator=().
|
private |
Definition at line 74 of file ParameterDistribution.h.
Referenced by generateSamples(), getLimits(), and operator=().
|
private |
Definition at line 73 of file ParameterDistribution.h.
Referenced by getLinkedParameterNames(), linkParameter(), and operator=().
|
privateinherited |
Definition at line 73 of file IParametricComponent.h.
Referenced by IParametricComponent::getName(), and IParametricComponent::setName().
|
private |
Definition at line 71 of file ParameterDistribution.h.
Referenced by generateSamples(), getNbrSamples(), and operator=().
|
private |
Definition at line 69 of file ParameterDistribution.h.
Referenced by getMainParameterName(), and operator=().
|
privateinherited |
parameter pool (kind of pointer-to-implementation)
Definition at line 74 of file IParametricComponent.h.
Referenced by IParametricComponent::createParameterTree(), IParametricComponent::parameter(), IParametricComponent::parameterPool(), IParametricComponent::registerParameter(), IParametricComponent::removeParameter(), and IParametricComponent::setParameterValue().
|
private |
Definition at line 72 of file ParameterDistribution.h.
Referenced by ParameterDistribution(), generateSamples(), getSigmaFactor(), and operator=().
|
private |
Definition at line 76 of file ParameterDistribution.h.
Referenced by generateSamples(), getMaxValue(), and operator=().
|
private |
Definition at line 75 of file ParameterDistribution.h.
Referenced by generateSamples(), getMinValue(), and operator=().