38 std::function<std::vector<complex_t>(
const SliceStack&)> kz_comp)
41 , m_computable(computable)
42 , m_kz_computation(kz_comp)
R3 vecOfLambdaAlphaPhi(double _lambda, double _alpha, double _phi)
Declares functions in namespace ComputateKz.
Declares the class SpecularElement.
const PolMatrices & polMatrices() const
Returns polarizer and analyzer matrices.
Convenience class for handling polarization density matrix and polarization analyzer operator.
Data stucture containing both input and output of a single image pixel for specular simulation.
std::vector< complex_t > produceKz(const SliceStack &slices)
Returns kz values for Abeles computation of reflection/transition coefficients.
SpecularElement(const SpecularElement &other)=delete
const std::function< std::vector< complex_t >const SliceStack &)> m_kz_computation
static SpecularElement FromAlphaScan(double wavelength, double alpha, const PolMatrices &polMatrices, bool computable)
static SpecularElement FromQzScan(double kz, const PolMatrices &polMatrices, bool computable)
std::vector< complex_t > computeKzFromSLDs(const SliceStack &slices, double kz)
Computes kz values from kz of the incoming beam known at a distant point in vacuum....
std::vector< complex_t > computeKzFromRefIndices(const SliceStack &slices, R3 k)
Computes kz values from k-vector of the incoming beam known at a distant point in vacuum....