15 #ifndef BORNAGAIN_CORE_AGGREGATE_IINTERFERENCEFUNCTION_H
16 #define BORNAGAIN_CORE_AGGREGATE_IINTERFERENCEFUNCTION_H
52 double m_position_var;
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).
Pure virtual base class for sample components and properties related to scattering.