ibex_bluesky_core.callbacks.reflectometry

Reflectometry-specific callbacks.

class ibex_bluesky_core.callbacks.reflectometry.DetMapAngleScanLiveDispatcher(x_data: ndarray[tuple[int, ...], dtype[float64]], x_name: str, y_in_name: str, y_out_name: str)[source]

Bases: LiveDispatcher

LiveDispatcher which accumulates an array of counts data, and emits data at the end.

For an array with dimension N, N events will be emitted at the end, corresponding to all input arrays summed together.

Init.

descriptor(doc: EventDescriptor) None[source]

Process a descriptor.

event(doc: Event, **kwargs: dict[str, Any]) Event[source]

Process an event.

stop(doc: RunStop, _md: dict[str, Any] | None = None) None[source]

Process a stop event.

class ibex_bluesky_core.callbacks.reflectometry.DetMapHeightScanLiveDispatcher(*, mon_name: str, det_name: str, out_name: str)[source]

Bases: LiveDispatcher

LiveDispatcher for reflectometry height scans.

This sums a 1-D array of detector integrals, and synchronously emits events, normalizing by the sum of a 1-D array of monitor integrals.

In the typical case, the array of monitor integrals will be of size 1 (i.e. a single monitor spectrum used for normalization).

Init.

event(doc: Event, **kwargs: dict[str, Any]) Event[source]

Process an event.

class ibex_bluesky_core.callbacks.reflectometry.LivePColorMesh(*, y: str, x: str, x_name: str, x_coord: ndarray[tuple[int, ...], dtype[float64]], ax: Axes, **kwargs: Any)[source]

Bases: QtAwareCallback

Live PColorMesh-based Live Heatmap for reflectometry mapping-alignment.

Create a new heatmap.

event(doc: Event) Event[source]

Unpack data from the event and call self.update().

start(doc: RunStart) RunStart | None[source]

Start a new plot (clear any old data).

update_plot() None[source]

Redraw the heatmap.