ibex_bluesky_core.devices.simpledae.reducers

DAE data reduction strategies.

Members

GoodFramesNormalizer

Sum a set of user-specified spectra, then normalize by total good frames.

MonitorNormalizer

Normalize a set of user-specified detector spectra by user-specified monitor spectra.

PeriodGoodFramesNormalizer

Sum a set of user-specified spectra, then normalize by period good frames.

ScalarNormalizer

Sum a set of user-specified spectra, then normalize by a scalar signal.

sum_spectra

Read and sum a number of spectra from the DAE.

class ibex_bluesky_core.devices.simpledae.reducers.GoodFramesNormalizer(prefix: str, detector_spectra: Sequence[int])[source]

Bases: ScalarNormalizer

Sum a set of user-specified spectra, then normalize by total good frames.

Init.

Parameters:
  • prefix – the PV prefix of the instrument to get spectra from (e.g. IN:DEMO:)

  • detector_spectra – a sequence of spectra numbers (detectors) to sum.

denominator(dae: SimpleDae) SignalR[int][source]

Get normalization denominator (total good frames).

class ibex_bluesky_core.devices.simpledae.reducers.MonitorNormalizer(prefix: str, detector_spectra: Sequence[int], monitor_spectra: Sequence[int])[source]

Bases: Reducer, StandardReadable

Normalize a set of user-specified detector spectra by user-specified monitor spectra.

Init.

Parameters:
  • prefix – the PV prefix of the instrument to get spectra from (e.g. IN:DEMO:)

  • detector_spectra – a sequence of spectra numbers (detectors) to sum.

  • monitor_spectra – a sequence of spectra number (monitors) to sum and normalize by.

additional_readable_signals(dae: SimpleDae) list[Device][source]

Publish interesting signals derived or used by this reducer.

async reduce_data(dae: SimpleDae) None[source]

Apply the normalization.

class ibex_bluesky_core.devices.simpledae.reducers.PeriodGoodFramesNormalizer(prefix: str, detector_spectra: Sequence[int])[source]

Bases: ScalarNormalizer

Sum a set of user-specified spectra, then normalize by period good frames.

Init.

Parameters:
  • prefix – the PV prefix of the instrument to get spectra from (e.g. IN:DEMO:)

  • detector_spectra – a sequence of spectra numbers (detectors) to sum.

denominator(dae: SimpleDae) SignalR[int][source]

Get normalization denominator (period good frames).

class ibex_bluesky_core.devices.simpledae.reducers.ScalarNormalizer(prefix: str, detector_spectra: Sequence[int])[source]

Bases: Reducer, StandardReadable

Sum a set of user-specified spectra, then normalize by a scalar signal.

Init.

Parameters:
  • prefix – the PV prefix of the instrument to get spectra from (e.g. IN:DEMO:)

  • detector_spectra – a sequence of spectra numbers (detectors) to sum.

additional_readable_signals(dae: SimpleDae) list[Device][source]

Publish interesting signals derived or used by this reducer.

abstract denominator(dae: SimpleDae) SignalR[int] | SignalR[float][source]

Get the normalization denominator, which is assumed to be a scalar signal.

async reduce_data(dae: SimpleDae) None[source]

Apply the normalization.

async ibex_bluesky_core.devices.simpledae.reducers.sum_spectra(spectra: Collection[DaeSpectra]) Variable | DataArray[source]

Read and sum a number of spectra from the DAE.

Returns a scipp scalar, which has .value and .variance properties for accessing the sum and variance respectively of the summed counts.