Split the wavelength-reduction (giving the new ReducedQ) from the normalization. This is essential for streamed processing since we need to accumulate data (numerator and denominator) before normalization, but as late as possible in the workflow. The wavelength-reduction is relatively expensive since it performs binned data operations, e.g., to handle wavelength bands. Further, accumulating event data must be avoided since it will quickly run out of memory.
Split the detector term from the monitor term in the computation of the denominator. As the detector-term (solid angle and direct beam function) is static, it can be pre-computed. This is important since it involves a relatively costly reduction over many pixels in Q-bins.
There are two structure changes here:
ReducedQ
) from the normalization. This is essential for streamed processing since we need to accumulate data (numerator and denominator) before normalization, but as late as possible in the workflow. The wavelength-reduction is relatively expensive since it performs binned data operations, e.g., to handle wavelength bands. Further, accumulating event data must be avoided since it will quickly run out of memory.