ess.sans.normalization.norm_detector_term#

ess.sans.normalization.norm_detector_term(solid_angle, direct_beam, uncertainties)[source]#

Compute the detector-dependent contribution to the denominator term of I(Q).

This is basically solid_angle * direct_beam. If the direct beam is not supplied, it is assumed to be 1.

Keeping the monitor term separate from the detector term allows us to compute the the latter only once when repeatedly processing chunks of events in streamed data processing, e.g., for live data reduction.

Because the multiplication between the pixel-dependent solid angle and the (potentially) pixel-independent direct beam constitutes a broadcast operation which would introduce correlations, variances of the direct beam are dropped or replaced by an upper-bound estimation, depending on the configured mode.

Parameters:
  • solid_angle (MaskedSolidAngle[TypeVar(ScatteringRunType, ess.reduce.nexus.types.BackgroundRun (int), ess.reduce.nexus.types.SampleRun (int), ess.reduce.nexus.types.VanadiumRun (int))]) – The solid angle of the detector pixels, as viewed from the sample position.

  • direct_beam (types.CleanDirectBeam (scipp.DataArray)) – The direct beam function (depends on wavelength).

  • uncertainties (UncertaintyBroadcastMode) – The mode for broadcasting uncertainties. See ess.reduce.uncertainty.UncertaintyBroadcastMode for details.

Returns:

CleanWavelength[TypeVar(ScatteringRunType, ess.reduce.nexus.types.BackgroundRun (int), ess.reduce.nexus.types.SampleRun (int), ess.reduce.nexus.types.VanadiumRun (int)), types.Denominator (scipp.DataArray)] – Detector-dependent factor of the normalization term for the SANS I(Q).