25 for (
auto& ffw : ff_wrappers)
26 m_mean_radius += ffw.relativeAbundance() * ffw.radialExtension();
30 double qp,
const std::vector<FormFactorCoherentSum>& ff_wrappers)
const
33 for (
auto& ffw : ff_wrappers) {
34 double radial_extension = ffw.radialExtension();
48 return p_iff_radial->
FTPDF(qp);
58 const std::vector<FormFactorCoherentSum>& ff_wrappers)
const
61 for (
size_t i = 0; i < ff_wrappers.size(); ++i) {
62 double radial_extension = ff_wrappers[i].radialExtension();
65 ff_orig += prefac * precomputed_ff[i];
66 ff_conj += prefac * std::conj(precomputed_ff[i]);
68 return ff_orig * ff_conj;
72 double qp, Eigen::Matrix2cd& ff_orig, Eigen::Matrix2cd& ff_conj,
74 const std::vector<FormFactorCoherentSum>& ff_wrappers)
const
76 ff_orig = Eigen::Matrix2cd::Zero();
77 ff_conj = Eigen::Matrix2cd::Zero();
78 for (
size_t i = 0; i < ff_wrappers.size(); ++i) {
79 double radial_extension = ff_wrappers[i].radialExtension();
82 ff_orig += prefac * precomputed_ff[i];
83 ff_conj += prefac * precomputed_ff[i].adjoint();
std::complex< double > complex_t
complex_t exp_I(complex_t z)
Returns exp(I*z), where I is the imaginary unit.
Defines many exception classes in namespace Exceptionss.
Defines class InterferenceFunctionRadialParaCrystal.
Defines class SSCAHelper.
Pure virtual base class of interference functions.
Interference function of radial paracrystal.
complex_t FTPDF(double qpar) const
complex_t getMeanFormfactorNorm(double qp, const std::vector< complex_t > &precomputed_ff, const std::vector< FormFactorCoherentSum > &ff_wrappers) const
void init(const std::vector< FormFactorCoherentSum > &ff_wrappers)
complex_t calculatePositionOffsetPhase(double qp, double radial_extension) const
void getMeanFormfactors(double qp, Eigen::Matrix2cd &ff_orig, Eigen::Matrix2cd &ff_conj, const InterferenceFunctionUtils::matrixFFVector_t &precomputed_ff, const std::vector< FormFactorCoherentSum > &ff_wrappers) const
complex_t getCharacteristicDistribution(double qp, const IInterferenceFunction *p_iff) const
complex_t getCharacteristicSizeCoupling(double qp, const std::vector< FormFactorCoherentSum > &ff_wrappers) const
std::vector< Eigen::Matrix2cd, Eigen::aligned_allocator< Eigen::Matrix2cd > > matrixFFVector_t