16 #error no need to expose this header to Swig
20 #ifndef BORNAGAIN_RESAMPLE_INTERPARTICLE_IINTERPARTICLESTRATEGY_H
21 #define BORNAGAIN_RESAMPLE_INTERPARTICLE_IINTERPARTICLESTRATEGY_H
24 #include <heinz/Complex.h>
44 const std::vector<std::unique_ptr<const CoherentFFSum>>& weighted_formfactors,
66 const std::unique_ptr<IntegratorMCMiser<IInterparticleStrategy>>
m_integrator;
Defines class SimulationOptions.
Information about particle form factor and abundance.
Data stucture containing both input and output of a single detector cell.
Abstract base class of interference functions.
Abstract base class of DecouplingApproximationStrategy, SSCAStrategy. Provides function 'evaluate' th...
virtual double scalarCalculation(const DiffuseElement &ele) const =0
Evaluates the intensity in the scalar case.
const std::unique_ptr< IntegratorMCMiser< IInterparticleStrategy > > m_integrator
double evaluate_for_fixed_angles(const double *fractions, size_t dim, const void *params) const
double evaluate(const DiffuseElement &ele) const
Calculates the intensity for scalar particles/interactions.
virtual ~IInterparticleStrategy()
double evaluateSinglePoint(const DiffuseElement &ele) const
double MCIntegratedEvaluate(const DiffuseElement &ele) const
Performs a Monte Carlo integration over the bin for the evaluation of the intensity.
const std::vector< std::unique_ptr< const CoherentFFSum > > & m_weighted_formfactors
IInterparticleStrategy(const std::vector< std::unique_ptr< const CoherentFFSum >> &weighted_formfactors, const SimulationOptions &sim_params, bool polarized)
const SimulationOptions m_options
virtual double polarizedCalculation(const DiffuseElement &ele) const =0
Evaluates the intensity in the polarized case.
Template class to use Monte Carlo MISER integration of class member functions.
Collect the different options for simulation.SimulationOptions.