BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
IInterferenceFunctionStrategy Class Referenceabstract

Base class of all interference function strategy classes. More...

+ Inheritance diagram for IInterferenceFunctionStrategy:

Public Member Functions

 IInterferenceFunctionStrategy (const SimulationOptions &sim_params, bool polarized)
 
void init (const std::vector< FormFactorCoherentSum > &weighted_formfactors, const IInterferenceFunction *p_iff)
 Initializes the object with form factors and an interference function.
 
double evaluate (const SimulationElement &sim_element) const
 Calculates the intensity for scalar particles/interactions.
 

Protected Attributes

std::vector< FormFactorCoherentSumm_formfactor_wrappers
 
std::unique_ptr< IInterferenceFunctionmP_iff
 
SimulationOptions m_options
 

Detailed Description

Base class of all interference function strategy classes.

Provides an 'evaluate' function that computes the total scattering intensity from a decorated layer, taking into account a specific inter-particle interference function. This function uses the low-level functions scalarCalculation and polarizedCalculation that are to be overriden in the derived classes. Inheritance is used to support different approximation schemes (DecouplingApproximationStrategy, SSCApproximationStrategy).

Instantiation of child classes takes place in LayoutStrategyBuilder::createStrategy, which is called from ParticleLayoutComputation::eval.

Definition at line 41 of file IInterferenceFunctionStrategy.h.


The documentation for this class was generated from the following files: