22 : m_polarization(instrument.beam().getPolarization(),
23 instrument.detector().detectionProperties().analyzerOperator())
25 , m_computable(computable)
26 , m_kz_computation([kz](const
std::vector<
Slice>& slices) {
34 : m_polarization(instrument.beam().getPolarization(),
35 instrument.detector().detectionProperties().analyzerOperator())
37 , m_computable(computable)
46 : m_polarization(other.m_polarization)
47 , m_intensity(other.m_intensity)
48 , m_computable(other.m_computable)
49 , m_kz_computation(other.m_kz_computation)
54 : m_polarization(std::move(other.m_polarization))
55 , m_intensity(other.m_intensity)
56 , m_computable(other.m_computable)
57 , m_kz_computation(std::move(other.m_kz_computation))
kvector_t vecOfLambdaAlphaPhi(double _lambda, double _alpha, double _phi)
Defines common detector interface.
Defines class Instrument.
Declares functions in namespace KzComputation.
Declares the class SpecularSimulationElement.
Assembles beam, detector and their relative positions with respect to the sample.
Data structure containing the data of a single slice, for calculating the Fresnel coefficients.
Data stucture containing both input and output of a single image pixel for specular simulation.
std::vector< complex_t > produceKz(const std::vector< Slice > &slices)
Returns kz values for Abeles computation of reflection/transition coefficients.
~SpecularSimulationElement()
const std::function< std::vector< complex_t >const std::vector< Slice > &)> m_kz_computation
SpecularSimulationElement(double kz, const Instrument &instrument, bool computable)
std::vector< complex_t > computeKzFromRefIndices(const std::vector< Slice > &slices, kvector_t k)
std::vector< complex_t > computeKzFromSLDs(const std::vector< Slice > &slices, double kz)