27 : m_position_var(position_var)
43 throw std::runtime_error(
"IInterference::setPositionVariance: "
44 "variance should be positive.");
Defines and implements the interface class IInterference.
Defines class RealLimits.
double DWfactor(R3 q) const
structureFactors the Debye-Waller factor for a given wavevector transfer
virtual bool supportsMultilayer() const
Indicates if this interference function can be used with a sample (DWBA mode)
virtual double structureFactor(R3 q, double outer_iff=1.0) const
The interference function for a given wavevector transfer.
void setPositionVariance(double var)
Sets the variance of the position for the calculation of the DW factor It is defined as the variance ...
double iff_no_inner(R3 q, double outer_iff) const
Calculates the structure factor in the absence of extra inner structure.
virtual double iff_without_dw(R3 q) const =0
Calculates the structure factor without Debye-Waller factor.
IInterference(const std::vector< double > &PValues)
Base class for tree-like structures containing parameterized objects.
void check(const std::string &name, double value) const
Throws if value is outside limits. Parameter 'name' is for exception message.
static RealLimits nonnegative()
Creates an object which can have only positive values with 0. included.