BornAgain
1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Base class of all interference function strategy classes. More...
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< FormFactorCoherentSum > | m_formfactor_wrappers |
std::unique_ptr< IInterferenceFunction > | mP_iff |
SimulationOptions | m_options |
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.