BornAgain
1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Public Member Functions | |
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) | |
ParameterDistribution (const ParameterDistribution &other) | |
virtual | ~ParameterDistribution () |
ParameterDistribution & | operator= (const ParameterDistribution &other) |
ParameterDistribution & | linkParameter (std::string par_name) |
std::string | getMainParameterName () const |
size_t | getNbrSamples () const |
double | getSigmaFactor () const |
const IDistribution1D * | getDistribution () const |
IDistribution1D * | getDistribution () |
std::vector< ParameterSample > | generateSamples () const |
std::vector< std::string > | getLinkedParameterNames () const |
RealLimits | getLimits () const |
double | getMinValue () const |
double | getMaxValue () const |
ParameterPool * | parameterPool () const |
virtual ParameterPool * | createParameterTree () const |
std::string | parametersToString () const |
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 | setParameterValue (const std::string &name, double value) |
void | setVectorValue (const std::string &base_name, kvector_t value) |
RealParameter * | parameter (const std::string &name) const |
virtual void | onChange () |
void | removeParameter (const std::string &name) |
void | removeVector (const std::string &base_name) |
void | setName (const std::string &name) |
const std::string & | getName () const |
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::string | m_name |
std::unique_ptr< IDistribution1D > | mP_distribution |
size_t | m_nbr_samples |
double | m_sigma_factor |
std::vector< std::string > | m_linked_par_names |
RealLimits | m_limits |
double | m_xmin |
double | m_xmax |
std::unique_ptr< ParameterPool > | m_pool |
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 19 of file ParameterDistribution.cpp.
References IDistribution1D::clone(), m_sigma_factor, and mP_distribution.
ParameterDistribution::ParameterDistribution | ( | const std::string & | par_name, |
const IDistribution1D & | distribution, | ||
size_t | nbr_samples, | ||
double | xmin, | ||
double | xmax | ||
) |
Definition at line 37 of file ParameterDistribution.cpp.
References IDistribution1D::clone(), m_sigma_factor, and mP_distribution.
ParameterDistribution::ParameterDistribution | ( | const ParameterDistribution & | other | ) |
Definition at line 61 of file ParameterDistribution.cpp.
References mP_distribution.
|
virtualdefault |
ParameterDistribution & ParameterDistribution::operator= | ( | const ParameterDistribution & | other | ) |
Overload assignment operator.
Definition at line 72 of file ParameterDistribution.cpp.
References m_limits, m_linked_par_names, m_name, m_nbr_samples, m_sigma_factor, m_xmax, m_xmin, and mP_distribution.
ParameterDistribution & ParameterDistribution::linkParameter | ( | std::string | par_name | ) |
Definition at line 87 of file ParameterDistribution.cpp.
References m_linked_par_names.
Referenced by LinkedBoxDistributionBuilder::buildSample(), and CylindersInSSCABuilder::buildSample().
|
inline |
get the main parameter's name
Definition at line 47 of file ParameterDistribution.h.
References m_name.
Referenced by ParticleDistribution::generateParticles(), pyfmt2::printParameterDistribution(), DepthProbeSimulation::validateParametrization(), OffSpecSimulation::validateParametrization(), and SpecularSimulation::validateParametrization().
size_t ParameterDistribution::getNbrSamples | ( | ) | const |
get number of samples for this distribution
Definition at line 93 of file ParameterDistribution.cpp.
References m_nbr_samples, and mP_distribution.
Referenced by DistributionHandler::addParameterDistribution(), and pyfmt2::printParameterDistribution().
|
inline |
get the sigma factor
Definition at line 53 of file ParameterDistribution.h.
References m_sigma_factor.
Referenced by pyfmt2::printParameterDistribution().
const IDistribution1D * ParameterDistribution::getDistribution | ( | ) | const |
Definition at line 108 of file ParameterDistribution.cpp.
References mP_distribution.
Referenced by SampleToPython::defineParticleDistributions(), ParticleDistribution::getChildren(), ParticleDistribution::ParticleDistribution(), DepthProbeSimulation::validateParametrization(), OffSpecSimulation::validateParametrization(), and SpecularSimulation::validateParametrization().
IDistribution1D * ParameterDistribution::getDistribution | ( | ) |
Definition at line 113 of file ParameterDistribution.cpp.
References mP_distribution.
std::vector< ParameterSample > ParameterDistribution::generateSamples | ( | ) | const |
generate list of sampled values with their weight
Definition at line 100 of file ParameterDistribution.cpp.
References m_limits, m_nbr_samples, m_sigma_factor, m_xmax, m_xmin, and mP_distribution.
Referenced by DistributionHandler::addParameterDistribution(), and ParticleDistribution::generateParticles().
|
inline |
get list of linked parameter names
Definition at line 62 of file ParameterDistribution.h.
References m_linked_par_names.
Referenced by SampleToPython::defineParticleDistributions(), and ParticleDistribution::generateParticles().
|
inline |
Definition at line 64 of file ParameterDistribution.h.
References m_limits.
Referenced by pyfmt2::printParameterDistribution().
|
inline |
|
inline |
|
inlineinherited |
Returns pointer to the parameter pool.
Definition at line 38 of file IParameterized.h.
References IParameterized::m_pool.
Referenced by pyfmt2::argumentList(), SampleBuilderNode::borrow_builder_parameters(), INode::createParameterTree(), INode::INode(), IParameterized::IParameterized(), anonymous_namespace{NodeUtils.cpp}::poolToString(), SampleBuilderNode::reset(), and IDistribution1D::setUnits().
|
virtualinherited |
Creates new parameter pool, with all local parameters and those of its children.
Reimplemented in INode.
Definition at line 33 of file IParameterized.cpp.
References IParameterized::getName(), and IParameterized::m_pool.
Referenced by IParameterized::parametersToString(), ParameterUtils::poolParameterUnits(), and IParameterized::setParameterValue().
|
inherited |
Returns multiline string representing available parameters.
Definition at line 40 of file IParameterized.cpp.
References IParameterized::createParameterTree().
|
inherited |
Definition at line 48 of file IParameterized.cpp.
References IParameterized::getName(), IParameterized::m_pool, and IParameterized::onChange().
Referenced by BasicLattice::BasicLattice(), Beam::Beam(), CylindersInBABuilder::CylindersInBABuilder(), DetectionProperties::DetectionProperties(), HexagonalLattice::HexagonalLattice(), IInterferenceFunction::IInterferenceFunction(), INode::INode(), InterferenceFunction1DLattice::InterferenceFunction1DLattice(), InterferenceFunction2DParaCrystal::InterferenceFunction2DParaCrystal(), InterferenceFunctionHardDisk::InterferenceFunctionHardDisk(), InterferenceFunctionRadialParaCrystal::InterferenceFunctionRadialParaCrystal(), InterferenceFunctionTwin::InterferenceFunctionTwin(), Lattice2D::Lattice2D(), LayerRoughness::LayerRoughness(), MultiLayer::MultiLayer(), ParticleDistribution::ParticleDistribution(), PlainMultiLayerBySLDBuilder::PlainMultiLayerBySLDBuilder(), IParticle::registerAbundance(), ParticleLayout::registerParticleDensity(), Layer::registerThickness(), IParameterized::registerVector(), ParticleLayout::registerWeight(), ResolutionFunction2DGaussian::ResolutionFunction2DGaussian(), ResonatorBuilder::ResonatorBuilder(), Lattice2D::setRotationEnabled(), SquareLattice::SquareLattice(), and TriangularRippleBuilder::TriangularRippleBuilder().
|
inherited |
Definition at line 54 of file IParameterized.cpp.
References IParameterized::registerParameter(), RealParameter::setUnit(), IParameterized::XComponentName(), IParameterized::YComponentName(), and IParameterized::ZComponentName().
Referenced by Beam::Beam(), DetectionProperties::DetectionProperties(), InterferenceFunctionTwin::InterferenceFunctionTwin(), MultiLayer::MultiLayer(), Lattice::registerBasisVectors(), and IParticle::registerPosition().
|
inherited |
Definition at line 62 of file IParameterized.cpp.
References IParameterized::createParameterTree(), IParameterized::m_pool, and ParameterPool::setMatchedParametersValue().
Referenced by AsymRippleBuilder::buildSample(), and IParameterized::setVectorValue().
|
inherited |
Definition at line 75 of file IParameterized.cpp.
References IParameterized::setParameterValue(), BasicVector3D< T >::x(), IParameterized::XComponentName(), BasicVector3D< T >::y(), IParameterized::YComponentName(), BasicVector3D< T >::z(), and IParameterized::ZComponentName().
|
inherited |
Returns parameter with given 'name'.
Definition at line 83 of file IParameterized.cpp.
References IParameterized::m_pool.
Referenced by DepthProbeSimulation::initialize(), SpecularSimulation::initialize(), IParticle::registerAbundance(), Lattice::registerBasisVectors(), ParticleLayout::registerParticleDensity(), IParticle::registerPosition(), Layer::registerThickness(), Lattice2D::setRotationEnabled(), and DistributionLogNormal::setUnits().
|
inlinevirtualinherited |
Action to be taken in inherited class when a parameter has changed.
Reimplemented in IProfileRipple, 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, InterferenceFunction3DLattice, InterferenceFunction2DLattice, Lattice, and Lattice2D.
Definition at line 58 of file IParameterized.h.
Referenced by Lattice2D::onChange(), and IParameterized::registerParameter().
|
inherited |
Definition at line 88 of file IParameterized.cpp.
References IParameterized::m_pool.
Referenced by IParticle::registerAbundance(), ParticleLayout::registerParticleDensity(), Layer::registerThickness(), IParameterized::removeVector(), and Lattice2D::setRotationEnabled().
|
inherited |
Definition at line 93 of file IParameterized.cpp.
References IParameterized::removeParameter(), IParameterized::XComponentName(), IParameterized::YComponentName(), and IParameterized::ZComponentName().
Referenced by IParticle::registerPosition().
|
staticinherited |
Definition at line 100 of file IParameterized.cpp.
Referenced by Lattice::registerBasisVectors(), IParticle::registerPosition(), IParameterized::registerVector(), IParameterized::removeVector(), and IParameterized::setVectorValue().
|
staticinherited |
Definition at line 105 of file IParameterized.cpp.
Referenced by IParameterized::registerVector(), IParameterized::removeVector(), and IParameterized::setVectorValue().
|
staticinherited |
Definition at line 110 of file IParameterized.cpp.
Referenced by IParameterized::registerVector(), IParameterized::removeVector(), and IParameterized::setVectorValue().
|
inlineinherited |
Definition at line 68 of file IParameterized.h.
References IParameterized::m_name.
Referenced by BasicLattice::BasicLattice(), Beam::Beam(), Layer::clone(), ConvolutionDetectorResolution::ConvolutionDetectorResolution(), LayersWithAbsorptionBuilder::createSampleByIndex(), Basic2DParaCrystalBuilder::createSampleByIndex(), ParticleInVacuumBuilder::createSampleByIndex(), SimpleMagneticRotationBuilder::createSampleByIndex(), Crystal::Crystal(), DetectionProperties::DetectionProperties(), DistributionHandler::DistributionHandler(), FormFactorBAPol::FormFactorBAPol(), FormFactorCoreShell::FormFactorCoreShell(), FormFactorCrystal::FormFactorCrystal(), FormFactorDecoratorMaterial::FormFactorDecoratorMaterial(), FormFactorDecoratorPositionFactor::FormFactorDecoratorPositionFactor(), FormFactorDecoratorRotation::FormFactorDecoratorRotation(), FormFactorDWBA::FormFactorDWBA(), FormFactorDWBAPol::FormFactorDWBAPol(), FormFactorWeighted::FormFactorWeighted(), HexagonalLattice::HexagonalLattice(), IDetector::IDetector(), DepthProbeSimulation::initialize(), GISASSimulation::initialize(), OffSpecSimulation::initialize(), SpecularSimulation::initialize(), SpecularDetector1D::initialize(), MesoCrystal::initialize(), Particle::initialize(), ParticleComposition::initialize(), 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(), Lattice::Lattice(), Layer::Layer(), LayerInterface::LayerInterface(), LayerRoughness::LayerRoughness(), MultiLayer::MultiLayer(), Beam::operator=(), SampleBuilderNode::operator=(), ParticleCoreShell::ParticleCoreShell(), ParticleDistribution::ParticleDistribution(), ParticleLayout::ParticleLayout(), RectangularDetector::RectangularDetector(), SampleBuilderNode::reset(), ResolutionFunction2DGaussian::ResolutionFunction2DGaussian(), SampleBuilderNode::SampleBuilderNode(), SampleBuilderNode::setSBN(), SphericalDetector::SphericalDetector(), and SquareLattice::SquareLattice().
|
inlineinherited |
Definition at line 69 of file IParameterized.h.
References IParameterized::m_name.
Referenced by Beam::Beam(), Layer::clone(), IFormFactorBorn::computeSlicingEffects(), ConvolutionDetectorResolution::ConvolutionDetectorResolution(), INode::copyNumber(), IParameterized::createParameterTree(), IFormFactor::createSlicedFormFactor(), SampleToPython::defineFormFactors(), SampleToPython::defineInterferenceFunctions(), INode::displayName(), IDetector::IDetector(), Instrument::Instrument(), IParameterized::IParameterized(), Beam::operator=(), SampleBuilderNode::operator=(), anonymous_namespace{ParticleLayout.cpp}::particleDensityIsProvidedByInterference(), IParameterized::registerParameter(), SampleBuilderNode::SampleBuilderNode(), and IFormFactor::sliceFormFactor().
|
private |
Definition at line 70 of file ParameterDistribution.h.
Referenced by getMainParameterName(), and operator=().
|
private |
Definition at line 71 of file ParameterDistribution.h.
Referenced by generateSamples(), getDistribution(), getNbrSamples(), operator=(), and ParameterDistribution().
|
private |
Definition at line 72 of file ParameterDistribution.h.
Referenced by generateSamples(), getNbrSamples(), and operator=().
|
private |
Definition at line 73 of file ParameterDistribution.h.
Referenced by generateSamples(), getSigmaFactor(), operator=(), and ParameterDistribution().
|
private |
Definition at line 74 of file ParameterDistribution.h.
Referenced by getLinkedParameterNames(), linkParameter(), and operator=().
|
private |
Definition at line 75 of file ParameterDistribution.h.
Referenced by generateSamples(), getLimits(), and operator=().
|
private |
Definition at line 76 of file ParameterDistribution.h.
Referenced by generateSamples(), getMinValue(), and operator=().
|
private |
Definition at line 77 of file ParameterDistribution.h.
Referenced by generateSamples(), getMaxValue(), and operator=().
|
privateinherited |
parameter pool (kind of pointer-to-implementation)
Definition at line 73 of file IParameterized.h.
Referenced by IParameterized::createParameterTree(), IParameterized::parameter(), IParameterized::parameterPool(), IParameterized::registerParameter(), IParameterized::removeParameter(), and IParameterized::setParameterValue().