ess.sans.normalization.iofq_norm_wavelength_term#
- ess.sans.normalization.iofq_norm_wavelength_term(incident_monitor, transmission_fraction, direct_beam, uncertainties)[source]#
Compute the wavelength-dependent contribution to the denominator term for the I(Q) normalization. Keeping this as a separate function allows us to compute it once during the iterations for finding the beam center, while the solid angle is recomputed for each iteration.
This is basically:
incident_monitor * transmission_fraction * direct_beam
If the direct beam is not supplied, it is assumed to be 1.Because the multiplication between the
incident_monitor * transmission_fraction
(pixel-independent) and the direct beam (potentially pixel-dependent) consists of 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:
incident_monitor (
CleanMonitor
[TypeVar
(ScatteringRunType
,types.SampleRun
(int
),types.BackgroundRun
(int
)),types.Incident
(int
)]) – The incident monitor data (depends on wavelength).transmission_fraction (
TransmissionFraction
[TypeVar
(ScatteringRunType
,types.SampleRun
(int
),types.BackgroundRun
(int
))]) – The transmission fraction (depends on wavelength).direct_beam (
types.CleanDirectBeam
(types.scipp._scipp.core.DataArray | None
)) – The direct beam function (depends on wavelength).uncertainties (
UncertaintyBroadcastMode
) – The mode for broadcasting uncertainties. Seeess.reduce.uncertainty.UncertaintyBroadcastMode
for details.
- Returns:
NormWavelengthTerm
[TypeVar
(ScatteringRunType
,types.SampleRun
(int
),types.BackgroundRun
(int
))] – Wavelength-dependent term (incident_monitor * transmission_fraction * direct_beam) to be used for the denominator of the SANS I(Q) normalization. Used byiofq_denominator()
.