20 std::unique_ptr<IPixel> pixel,
21 const Eigen::Matrix2cd& beam_polarization,
22 const Eigen::Matrix2cd& analyzer,
bool isSpecular_)
23 : m_polarization(beam_polarization, analyzer)
24 , m_wavelength(wavelength)
28 , m_mean_kf(pixel->getK(0.5, 0.5, m_wavelength))
29 , m_pixel(
std::move(pixel))
30 , m_is_specular(isSpecular_)
36 : m_polarization(other.m_polarization)
37 , m_wavelength(other.m_wavelength)
38 , m_alpha_i(other.m_alpha_i)
39 , m_phi_i(other.m_phi_i)
41 , m_mean_kf(other.m_mean_kf)
42 , m_pixel(
std::move(other.m_pixel->clone()))
43 , m_is_specular(other.m_is_specular)
44 , m_intensity(other.m_intensity)
57 std::unique_ptr<IPixel>(
m_pixel->createZeroSizePixel(x, y)),
104 return m_pixel->integrationFactor(x, y);
kvector_t vecOfLambdaAlphaPhi(double _lambda, double _alpha, double _phi)
Defines and implements interface IPixel.
Defines class SimulationElement.
double theta() const
Returns polar angle.
double phi() const
Returns azimuth angle.
Eigen::Matrix2cd getAnalyzerOperator() const
Gets the polarization analyzer operator (in spin basis along z-axis)
Eigen::Matrix2cd getPolarization() const
Gets the polarization density matrix (in spin basis along z-axis)
Data stucture containing both input and output of a single detector cell.
const PolarizationHandler m_polarization
double solidAngle() const
SimulationElement pointElement(double x, double y) const
Returns copy of this SimulationElement with k_f given by in-pixel coordinate x,y.
SimulationElement()=delete
kvector_t getMeanKf() const
const double m_wavelength
wavelength of beam
const double m_phi_i
incident angle in xy plane
kvector_t getKf(double x, double y) const
Returns outgoing wavevector Kf for in-pixel coordinates x,y.
const kvector_t m_mean_kf
cached value of mean_kf
const double m_alpha_i
incident grazing angle
double integrationFactor(double x, double y) const
kvector_t getQ(double x, double y) const
Returns scattering vector Q, with Kf determined from in-pixel coordinates x,y.
const kvector_t m_k_i
cached value of k_i
std::unique_ptr< IPixel > m_pixel
double getAlpha(double x, double y) const
double getPhi(double x, double y) const