16 #ifndef BORNAGAIN_SIM_SCAN_ISPECULARSCAN_H
17 #define BORNAGAIN_SIM_SCAN_ISPECULARSCAN_H
21 #include <heinz/Vectors3D.h>
43 void setAnalyzer(R3 direction,
double efficiency,
double total_transmission);
63 virtual std::vector<double>
footprint(
size_t i,
size_t n_elements)
const = 0;
71 virtual std::vector<double>
Defines and implements the standard mix-in ICloneable.
Abstract base class to support coordinate transforms and axis labels for 1D scans....
Abstract base class for one-dimensional axes.
Interface for polymorphic classes that should not be copied, except by explicit cloning.
Abstract base class for all types of specular scans.
const PolFilter * analyzer() const
virtual std::vector< double > createIntensities(const std::vector< SpecularElement > &eles) const =0
Returns intensity vector corresponding to convolution of given simulation elements.
virtual std::vector< double > footprint(size_t i, size_t n_elements) const =0
Returns footprint correction factor for a range of simulation elements of size n_elements and startin...
std::unique_ptr< R3 > m_beamPolarization
Bloch vector encoding the beam's polarization.
virtual std::vector< SpecularElement > generateElements() const =0
Generates simulation elements for specular simulations.
void setPolarization(R3 bloch_vector)
Sets the polarization density matrix according to the given Bloch vector.
virtual const IAxis * coordinateAxis() const =0
Returns coordinate axis assigned to the data holder.
virtual double wavelength() const =0
virtual const IFootprintFactor * footprintFactor() const =0
Returns IFootprintFactor object pointer.
void setAnalyzer(R3 direction, double efficiency, double total_transmission)
Sets the polarization analyzer characteristics of the detector.
PolMatrices polMatrices() const
~ISpecularScan() override
virtual CoordSystem1D * createCoordSystem() const =0
virtual size_t numberOfElements() const =0
Returns the number of simulation elements.
std::unique_ptr< PolFilter > m_polAnalyzer
ISpecularScan * clone() const override=0
Detector properties (efficiency, transmission).
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.