15 #ifndef BORNAGAIN_CORE_MULTILAYER_IINTERFERENCEFUNCTIONSTRATEGY_H
16 #define BORNAGAIN_CORE_MULTILAYER_IINTERFERENCEFUNCTIONSTRATEGY_H
48 void init(
const std::vector<FormFactorCoherentSum>& weighted_formfactors,
55 std::vector<FormFactorCoherentSum> m_formfactor_wrappers;
56 std::unique_ptr<IInterferenceFunction> mP_iff;
62 double evaluate_for_fixed_angles(
double* fractions,
size_t dim,
void* params)
const;
63 virtual void strategy_specific_post_init();
67 virtual double polarizedCalculation(
const SimulationElement& sim_element)
const = 0;
72 std::unique_ptr<IntegratorMCMiser<IInterferenceFunctionStrategy>> mP_integrator;
Defines complex_t, and a few elementary functions.
Defines class SimulationOptions.
Base class of all interference function strategy classes.
double evaluate(const SimulationElement &sim_element) const
Calculates the intensity for scalar particles/interactions.
void init(const std::vector< FormFactorCoherentSum > &weighted_formfactors, const IInterferenceFunction *p_iff)
Initializes the object with form factors and an interference function.
Pure virtual base class of interference functions.
Template class to use Monte Carlo MISER integration of class member functions.
Data stucture containing both input and output of a single detector cell.
Collect the different options for simulation.