ess.reduce.polarization.correction.compute_polarizing_element_correction#

ess.reduce.polarization.correction.compute_polarizing_element_correction(channel, transmission)[source]#

Compute matrix coefficients for the correction of a polarizing element.

The coefficients stem from the inverse of a symmetric matrix of the form [[Tplus, Tminus], [Tminus, Tplus]]. The inverse is

mat = 1 / denom * [[Tplus, -Tminus], [-Tminus, Tplus]]

with denom = Tplus**2 - Tminus**2.

As there are only two unique elements in the matrix, we return them as a dataclass with diagonal and off-diagonal elements.

Parameters:
  • channel (ReducedSampleDataBySpinChannel[TypeVar(PolarizerSpin, polarization.types.Up (int), polarization.types.Down (int)), TypeVar(AnalyzerSpin, polarization.types.Up (int), polarization.types.Down (int))]) – Data including wavelength (and time) for a given spin channel. Note that the values are not actually used here, but the data’s coordinates are required for evaluating the transmission function.

  • transmission (TransmissionFunction[TypeVar(PolarizingElement, polarization.types.Analyzer (str), polarization.types.Polarizer (str))]) – Transmission function for the polarizing element.

Returns:

PolarizingElementCorrection[TypeVar(PolarizerSpin, polarization.types.Up (int), polarization.types.Down (int)), TypeVar(AnalyzerSpin, polarization.types.Up (int), polarization.types.Down (int)), TypeVar(PolarizingElement, polarization.types.Analyzer (str), polarization.types.Polarizer (str))] – Correction matrix coefficients.