22 const std::vector<std::unique_ptr<const CoherentFFSum>>& weighted_formfactors,
24 : m_weighted_formfactors(weighted_formfactors)
25 , m_options(sim_params)
26 , m_polarized(polarized)
52 double min_array[] = {0.0, 0.0};
53 double max_array[] = {1.0, 1.0};
58 const void* params)
const
60 double par0 = fractions[0];
61 double par1 = fractions[1];
Defines the macro ASSERT.
#define ASSERT(condition)
Defines class CoherentFFSum.
Defines class DiffuseElement.
Defines interface IInterparticleStrategy.
Defines and implements template class IntegratorMCMiser.
P_integrator_miser< T > make_integrator_miser(const T *object, miser_integrand< T > mem_function, size_t dim)
Template function to create an integrator object.
Data stucture containing both input and output of a single detector cell.
double solidAngle() const
double integrationFactor(double x, double y) const
DiffuseElement pointElement(double x, double y) const
Returns copy of this DiffuseElement with k_f given by in-pixel coordinate x,y.
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.
Collect the different options for simulation.SimulationOptions.
size_t getMcPoints() const