15 #ifndef BORNAGAIN_CORE_MULTILAYER_SPECULARSIMULATIONELEMENT_H
16 #define BORNAGAIN_CORE_MULTILAYER_SPECULARSIMULATIONELEMENT_H
55 std::vector<complex_t>
produceKz(
const std::vector<Slice>& slices);
Defines complex_t, and a few elementary functions.
Defines class PolarizationHandler.
Defines basic vectors in R^3 and C^3.
Convenience class for handling polarization density matrix and polarization analyzer operator.
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.
bool isCalculated() const
Returns calculation flag (if it's false, zero intensity is assigned to the element)
std::vector< complex_t > produceKz(const std::vector< Slice > &slices)
Returns kz values for Abeles computation of reflection/transition coefficients.
SpecularSimulationElement(double kz, bool computable)
SpecularSimulationElement & operator=(const SpecularSimulationElement &other)
double getIntensity() const
~SpecularSimulationElement()
void setPolarizationHandler(const PolarizationHandler &handler)
Assigns PolarizationHandler.
void swapContent(SpecularSimulationElement &other)
std::function< std::vector< complex_t >const std::vector< Slice > &)> m_kz_computation
double m_intensity
simulated intensity for detector cell
void setIntensity(double intensity)
PolarizationHandler m_polarization
const PolarizationHandler & polarizationHandler() const
Returns assigned PolarizationHandler.
const double wavelength(0.154)