Declares interface ISpecularScan.
Defines class DetectionProperties.
Defines class PolarizerPair.
std::unique_ptr< R3 > m_beamPolarization
Bloch vector encoding the beam's polarization.
void setPolarization(R3 bloch_vector)
Sets the polarization density matrix according to the given Bloch vector.
void setAnalyzer(R3 direction, double efficiency, double total_transmission)
Sets the polarization analyzer characteristics of the detector.
PolMatrices polMatrices() const
~ISpecularScan() override
std::unique_ptr< PolFilter > m_polAnalyzer
Detector properties (efficiency, transmission).
Convenience class for handling polarization density matrix and polarization analyzer operator.
void setAnalyzerMatrix(const SpinMatrix &analyzer)
Sets the polarization analyzer operator (in spin basis along z-axis)
void setPolarizerMatrix(const SpinMatrix &polarization)
Sets the polarization density matrix (in spin basis along z-axis)
static SpinMatrix FromBlochVector(const R3 &v)
Constructs matrix (I+v*s)/2, where s is the Pauli vector.