16 #error no need to expose this header to Swig
20 #ifndef BORNAGAIN_SAMPLE_INTERFERENCE_IINTERFERENCEFUNCTIONSTRATEGY_H
21 #define BORNAGAIN_SAMPLE_INTERFERENCE_IINTERFERENCEFUNCTIONSTRATEGY_H
71 std::unique_ptr<IntegratorMCMiser<IInterferenceFunctionStrategy>>
m_integrator;
Defines complex_t, and a few elementary functions.
Defines class SimulationOptions.
Base class of all interference function strategy classes.
std::unique_ptr< IntegratorMCMiser< IInterferenceFunctionStrategy > > m_integrator
double evaluate_for_fixed_angles(double *fractions, size_t dim, void *params) const
IInterferenceFunctionStrategy(const std::vector< FormFactorCoherentSum > &weighted_formfactors, const SimulationOptions &sim_params, bool polarized)
virtual double scalarCalculation(const SimulationElement &sim_element) const =0
Evaluates the intensity in the scalar case.
double evaluate(const SimulationElement &sim_element) const
Calculates the intensity for scalar particles/interactions.
virtual ~IInterferenceFunctionStrategy()
double evaluateSinglePoint(const SimulationElement &sim_element) const
double MCIntegratedEvaluate(const SimulationElement &sim_element) const
Performs a Monte Carlo integration over the bin for the evaluation of the intensity.
virtual double polarizedCalculation(const SimulationElement &sim_element) const =0
Evaluates the intensity in the polarized case.
std::vector< FormFactorCoherentSum > m_weighted_formfactors
const SimulationOptions m_options
Abstract 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.