BornAgain
1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Strategy class to compute the total scattering from a particle layout in the decoupling approximation. More...
Public Member Functions | |
DecouplingApproximationStrategy (const std::vector< FormFactorCoherentSum > &weighted_formfactors, const IInterferenceFunction *iff, SimulationOptions sim_params, bool polarized) | |
double | evaluate (const SimulationElement &sim_element) const |
Calculates the intensity for scalar particles/interactions. More... | |
Protected Attributes | |
const SimulationOptions | m_options |
std::vector< FormFactorCoherentSum > | m_weighted_formfactors |
Private Member Functions | |
double | evaluate_for_fixed_angles (double *fractions, size_t dim, void *params) const |
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. More... | |
double | polarizedCalculation (const SimulationElement &sim_element) const override |
This is the polarized version. More... | |
double | scalarCalculation (const SimulationElement &sim_element) const override |
Returns the total incoherent and coherent scattering intensity for given kf and for one particle layout (implied by the given particle form factors). More... | |
Private Attributes | |
std::unique_ptr< IInterferenceFunction > | m_iff |
std::unique_ptr< IntegratorMCMiser< IInterferenceFunctionStrategy > > | m_integrator |
bool | m_polarized |
Strategy class to compute the total scattering from a particle layout in the decoupling approximation.
Definition at line 31 of file DecouplingApproximationStrategy.h.
DecouplingApproximationStrategy::DecouplingApproximationStrategy | ( | const std::vector< FormFactorCoherentSum > & | weighted_formfactors, |
const IInterferenceFunction * | iff, | ||
SimulationOptions | sim_params, | ||
bool | polarized | ||
) |
Definition at line 22 of file DecouplingApproximationStrategy.cpp.
|
inherited |
Calculates the intensity for scalar particles/interactions.
Definition at line 35 of file IInterferenceFunctionStrategy.cpp.
References IInterferenceFunctionStrategy::evaluateSinglePoint(), SimulationOptions::isIntegrate(), IInterferenceFunctionStrategy::m_options, IInterferenceFunctionStrategy::MCIntegratedEvaluate(), and SimulationElement::solidAngle().
|
privateinherited |
Definition at line 60 of file IInterferenceFunctionStrategy.cpp.
References IInterferenceFunctionStrategy::evaluateSinglePoint(), SimulationElement::integrationFactor(), and SimulationElement::pointElement().
|
privateinherited |
Definition at line 43 of file IInterferenceFunctionStrategy.cpp.
References IInterferenceFunctionStrategy::m_polarized, IInterferenceFunctionStrategy::polarizedCalculation(), and IInterferenceFunctionStrategy::scalarCalculation().
Referenced by IInterferenceFunctionStrategy::evaluate(), and IInterferenceFunctionStrategy::evaluate_for_fixed_angles().
|
privateinherited |
Performs a Monte Carlo integration over the bin for the evaluation of the intensity.
Definition at line 52 of file IInterferenceFunctionStrategy.cpp.
References SimulationOptions::getMcPoints(), IInterferenceFunctionStrategy::m_integrator, and IInterferenceFunctionStrategy::m_options.
Referenced by IInterferenceFunctionStrategy::evaluate().
|
overrideprivatevirtual |
This is the polarized version.
Implements IInterferenceFunctionStrategy.
Definition at line 55 of file DecouplingApproximationStrategy.cpp.
References m_iff, IInterferenceFunctionStrategy::m_weighted_formfactors, SimulationElement::meanQ(), and SimulationElement::polarizationHandler().
|
overrideprivatevirtual |
Returns the total incoherent and coherent scattering intensity for given kf and for one particle layout (implied by the given particle form factors).
This is the scalar version
Implements IInterferenceFunctionStrategy.
Definition at line 35 of file DecouplingApproximationStrategy.cpp.
References m_iff, IInterferenceFunctionStrategy::m_weighted_formfactors, and SimulationElement::meanQ().
|
private |
Definition at line 41 of file DecouplingApproximationStrategy.h.
Referenced by polarizedCalculation(), and scalarCalculation().
|
privateinherited |
Definition at line 71 of file IInterferenceFunctionStrategy.h.
Referenced by IInterferenceFunctionStrategy::MCIntegratedEvaluate().
|
protectedinherited |
Definition at line 57 of file IInterferenceFunctionStrategy.h.
Referenced by IInterferenceFunctionStrategy::evaluate(), and IInterferenceFunctionStrategy::MCIntegratedEvaluate().
|
privateinherited |
Definition at line 68 of file IInterferenceFunctionStrategy.h.
Referenced by IInterferenceFunctionStrategy::evaluateSinglePoint().
|
protectedinherited |
Definition at line 56 of file IInterferenceFunctionStrategy.h.
Referenced by IInterferenceFunctionStrategy::IInterferenceFunctionStrategy(), SSCApproximationStrategy::SSCApproximationStrategy(), polarizedCalculation(), SSCApproximationStrategy::polarizedCalculation(), scalarCalculation(), and SSCApproximationStrategy::scalarCalculation().