15 #ifndef BORNAGAIN_CORE_AGGREGATE_IINTERFERENCEFUNCTION_H
16 #define BORNAGAIN_CORE_AGGREGATE_IINTERFERENCEFUNCTION_H
Defines interface class ISample.
Pure virtual base class of interference functions.
double DWfactor(kvector_t q) const
Evaluates the Debye-Waller factor for a given wavevector transfer.
virtual bool supportsMultilayer() const
Indicates if this interference function can be used with a multilayer (DWBA mode)
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(const kvector_t q, double outer_iff) const
Calculates the structure factor in the absence of extra inner structure.
virtual IInterferenceFunction * clone() const =0
Returns a clone of this ISample object.
double positionVariance() const
Returns the position variance.
virtual double evaluate(const kvector_t q, double outer_iff=1.0) const
Evaluates the interference function for a given wavevector transfer.
virtual double iff_without_dw(const kvector_t q) const =0
Calculates the structure factor without Debye-Waller factor.
virtual double getParticleDensity() const
If defined by this interference function's parameters, returns the particle density (per area).
IInterferenceFunction(const NodeMeta &meta, const std::vector< double > &PValues)
Pure virtual base class for sample components and properties related to scattering.