BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
SSCAHelper.h
Go to the documentation of this file.
1 // ************************************************************************** //
2 //
3 // BornAgain: simulate and fit scattering at grazing incidence
4 //
5 //! @file Sample/Interference/SSCAHelper.h
6 //! @brief Defines class SSCAHelper.
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2018
11 //! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************** //
14 
15 #ifndef BORNAGAIN_CORE_MULTILAYER_SSCAHELPER_H
16 #define BORNAGAIN_CORE_MULTILAYER_SSCAHELPER_H
17 
20 #include <Eigen/StdVector>
21 
24 
25 //! Helper class for SSCApproximationStrategy, offering some methods, shared between
26 //! the scalar and polarized scattering calculations
27 //! @ingroup algorithms_internal
28 
30 {
31 public:
32  SSCAHelper(double kappa);
33 
34  void init(const std::vector<FormFactorCoherentSum>& ff_wrappers);
35 
36  complex_t
37  getCharacteristicSizeCoupling(double qp,
38  const std::vector<FormFactorCoherentSum>& ff_wrappers) const;
39  complex_t getCharacteristicDistribution(double qp, const IInterferenceFunction* p_iff) const;
40  complex_t calculatePositionOffsetPhase(double qp, double radial_extension) const;
41  complex_t getMeanFormfactorNorm(double qp, const std::vector<complex_t>& precomputed_ff,
42  const std::vector<FormFactorCoherentSum>& ff_wrappers) const;
43  void getMeanFormfactors(double qp, Eigen::Matrix2cd& ff_orig, Eigen::Matrix2cd& ff_conj,
44  const InterferenceFunctionUtils::matrixFFVector_t& precomputed_ff,
45  const std::vector<FormFactorCoherentSum>& ff_wrappers) const;
46 
47 private:
48  double m_kappa;
49  double m_mean_radius;
50 };
51 
52 #endif // BORNAGAIN_CORE_MULTILAYER_SSCAHELPER_H
Defines class IInterferenceFunctionStrategy.
Defines helper functions for InterferenceFunctions and Strategies.
Information about particle form factor and abundance.
Pure virtual base class of interference functions.
Helper class for SSCApproximationStrategy, offering some methods, shared between the scalar and polar...
Definition: SSCAHelper.h:30