From 032b42e85126a6ad56dbe4b25227903853472dcb Mon Sep 17 00:00:00 2001 From: x12sa Date: Wed, 24 Jun 2026 11:57:31 +0200 Subject: [PATCH] fix(eiger): fix eiger integration for 1.5M with proper calibration files on JFJ server --- csaxs_bec/devices/jungfraujoch/eiger.py | 40 +++++++++++-------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/csaxs_bec/devices/jungfraujoch/eiger.py b/csaxs_bec/devices/jungfraujoch/eiger.py index b0cf6ea..330c39f 100644 --- a/csaxs_bec/devices/jungfraujoch/eiger.py +++ b/csaxs_bec/devices/jungfraujoch/eiger.py @@ -275,22 +275,21 @@ class Eiger(PSIDeviceBase): self.scan_parameters = fetch_scan_info(self.scan_info) # TODO Reactivate - # try: - # incident_energy = self._get_beam_energy(self.device_manager) - # if self._incident_energy is None: - # self._incident_energy = round(float(incident_energy), 3) - # elif not np.isclose( - # self._incident_energy, incident_energy, atol=0.1 - # ): # 0.1 keV tolerance - # logger.warning( - # f"Incident energy changed from {self._incident_energy} keV to {incident_energy} keV for device {self.name}. " - # ) - # self._incident_energy = round(float(incident_energy), 3) - # except Exception as e: - # logger.warning(f"Failed to set up beam energy for {self.name}: {e}") - # incident_energy = 12.0 # default to 12 keV if error occurs - # self._incident_energy = round(float(incident_energy), 3) - self._incident_energy = 12.0 + try: + incident_energy = self._get_beam_energy(self.device_manager) + if self._incident_energy is None: + self._incident_energy = round(float(incident_energy), 3) + elif not np.isclose( + self._incident_energy, incident_energy, atol=0.1 + ): # 0.1 keV tolerance + logger.warning( + f"Incident energy changed from {self._incident_energy} keV to {incident_energy} keV for device {self.name}. " + ) + self._incident_energy = round(float(incident_energy), 3) + except Exception as e: + logger.warning(f"Failed to set up beam energy for {self.name}: {e}") + incident_energy = 12.0 # default to 12 keV if error occurs + self._incident_energy = round(float(incident_energy), 3) logger.info(f"Device {self.name} uses incident energy of {self._incident_energy} keV.") @@ -449,9 +448,6 @@ class Eiger(PSIDeviceBase): Returns: float: The beam energy in keV. """ - if hasattr(device_manager, "devices") and hasattr(device_manager.devices, "ccm_energy"): - energy = device_manager.devices.ccm_energy.read()[ - device_manager.devices.ccm_energy.name - ]["value"] - - return energy + return device_manager.devices.ccm_energy.read()[device_manager.devices.ccm_energy.name][ + "value" + ]