diff --git a/src/aare/beamline_dispatch/protocols.py b/src/aare/beamline_dispatch/protocols.py index b833dda8..fbd1f111 100644 --- a/src/aare/beamline_dispatch/protocols.py +++ b/src/aare/beamline_dispatch/protocols.py @@ -31,6 +31,9 @@ class BecMacros(ABC): @staticmethod @abstractmethod def auto_exposure(): ... + @staticmethod + @abstractmethod + def full_flux_ph_per_s() -> float: ... class Geometry(ABC): diff --git a/src/aare/beamline_dispatch/x06da/beamline_dispatch.py b/src/aare/beamline_dispatch/x06da/beamline_dispatch.py index 89cec67c..e88448d7 100644 --- a/src/aare/beamline_dispatch/x06da/beamline_dispatch.py +++ b/src/aare/beamline_dispatch/x06da/beamline_dispatch.py @@ -36,6 +36,11 @@ class X06daBecMacros(BecMacros): self.mono_pitch_scan = mono_pitch_scan self.auto_exposure = auto_exposure + def full_flux_ph_per_s(): + return 400_000_000_000 + + self.full_flux_ph_per_s = full_flux_ph_per_s + @staticmethod def save_and_reload() -> tuple[Any, Any]: ... @staticmethod @@ -50,6 +55,8 @@ class X06daBecMacros(BecMacros): def mono_pitch_scan(plot=True): ... @staticmethod def auto_exposure(): ... + @staticmethod + def full_flux_ph_per_s() -> float: ... class X06daGeometry(DefaultGeometry): diff --git a/src/aare/beamline_dispatch/x10sa/beamline_dispatch.py b/src/aare/beamline_dispatch/x10sa/beamline_dispatch.py index c721a7cb..fea4fe19 100644 --- a/src/aare/beamline_dispatch/x10sa/beamline_dispatch.py +++ b/src/aare/beamline_dispatch/x10sa/beamline_dispatch.py @@ -20,6 +20,9 @@ class X10SaBecMacros(BecMacros): save_and_reload, save_current_position, ) + from pxii_bec.macros.flux_macros import ( + bpm2flux, # pyright: ignore[reportMissingImports, reportMissingModuleSource] + ) from pxii_bec.macros.katscripts import ( # pyright: ignore[reportMissingImports, reportMissingModuleSource] auto_exposure, ) @@ -53,6 +56,11 @@ class X10SaBecMacros(BecMacros): self.auto_exposure = _auto_exposure + def full_flux_ph_per_s(): + return bpm2flux()[1] + + self.full_flux_ph_per_s = full_flux_ph_per_s + @staticmethod def save_and_reload() -> tuple[Any, Any]: ... @staticmethod @@ -67,6 +75,8 @@ class X10SaBecMacros(BecMacros): def mono_pitch_scan(plot=True): ... @staticmethod def auto_exposure(): ... + @staticmethod + def full_flux_ph_per_s() -> float: ... class _1dModel(BeamCenterModel): diff --git a/src/aare/daq/devices.py b/src/aare/daq/devices.py index c655169d..0b3071fc 100644 --- a/src/aare/daq/devices.py +++ b/src/aare/daq/devices.py @@ -206,18 +206,11 @@ class BeamlineDevices: @property def flux(self) -> float: - # TODO FLUX - if self._beamline == MXBeamline.X10SA: - return self.bec_worker.get_flux_x10sa() return self.transmission * self.full_flux @property def full_flux(self) -> float: - # TODO wire real flux - i0 needed - max_flux = cfg_get("daq.maximum_flux") - if max_flux is None: - return 0.0 - return max_flux + return self._dispatch.bec_macros.full_flux_ph_per_s() # Cryojet @property