From 43d18e0ca16e70df093e25b9d610ca8a2125c815 Mon Sep 17 00:00:00 2001 From: x12sa Date: Thu, 2 Jul 2026 07:35:16 +0200 Subject: [PATCH] single point acquisition zero z damaged hardware --- .../bec_ipython_client/plugins/flomni/flomni.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/csaxs_bec/bec_ipython_client/plugins/flomni/flomni.py b/csaxs_bec/bec_ipython_client/plugins/flomni/flomni.py index d2c6fff..2dbca15 100644 --- a/csaxs_bec/bec_ipython_client/plugins/flomni/flomni.py +++ b/csaxs_bec/bec_ipython_client/plugins/flomni/flomni.py @@ -2560,6 +2560,10 @@ class Flomni( + self.manual_shift_y ) sum_offset_z = offsets[2] + + # TODO this fix is while the tracker z is broken + probe_propagation = -sum_offset_z * 1e-6 + sum_offset_z = 0 # --- positioning + laser tracker, mirroring # flomni_fermat_scan._prepare_setup_part2 --- @@ -2580,6 +2584,7 @@ class Flomni( # --- acquire --- n_frames = frames_per_trigger if frames_per_trigger is not None else self.frames_per_trigger scans.acquire(exp_time=self.tomo_countingtime, frames_per_trigger=n_frames) + self.tomo_reconstruct(probe_propagation=probe_propagation) def _tomo_type1_actual_grid(self) -> tuple[int, float, int]: """Compute the actual (achievable) tomo_type==1 grid from the @@ -2618,13 +2623,17 @@ class Flomni( print(f"Frames per trigger (burst) = {self.frames_per_trigger}") print(f"Single point instead of fermat = {self.single_point_instead_of_fermat_scan}") print("") + if self.tomo_type == 1: print("\x1b[1mTomo type 1:\x1b[0m 8 equally spaced sub-tomograms") print(f"Angular range = {self.tomo_angle_range} degrees") - print( - f"Total number of projections: {(self.tomo_angle_range/self.tomo_angle_stepsize)*8}" - ) - print(f"Angular step within sub-tomogram: {self.tomo_angle_stepsize} degrees") + # N, step, total_projections all come from the same helper + # sub_tomo_scan() effectively uses internally - see + # _tomo_type1_actual_grid() for why this can't just read + # self.tomo_angle_stepsize directly. + _, achievable_step, total_projections = self._tomo_type1_actual_grid() + print(f"Total number of projections: {total_projections}") + print(f"Angular step within sub-tomogram: {achievable_step:.3f} degrees") print( "Angular step of the final (combined) tomogram:" f" {self.tomo_angle_range / total_projections:.3f} degrees"