From 40cbb177462533fa45e600151441181e5d91f9a2 Mon Sep 17 00:00:00 2001 From: x01dc Date: Thu, 30 Jul 2026 15:15:10 +0200 Subject: [PATCH 1/2] docs(lamni): explain fov check axis mapping instead of FIXME The stage_x_rot/fovy and stage_y_rot/fovx comparisons look swapped, but are correct: alpha bakes in a fixed ~90 deg mechanical offset between the piezo axes and the angle=0 beam frame that fovx/fovy are defined in, so stage_x_rot actually tracks the beam-frame y-extent. Co-Authored-By: Claude Sonnet 5 --- csaxs_bec/scans/lamni_fermat_scan.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/csaxs_bec/scans/lamni_fermat_scan.py b/csaxs_bec/scans/lamni_fermat_scan.py index 7ef4394..c991314 100644 --- a/csaxs_bec/scans/lamni_fermat_scan.py +++ b/csaxs_bec/scans/lamni_fermat_scan.py @@ -461,8 +461,10 @@ class LamniFermatScan(ScanBase): -np.sin(alpha) * stage_x_with_stitch + np.cos(alpha) * stage_y_with_stitch ) - # FIXME: We are checking stage_x_rot vs fovy. This needs to be clarified if this is correct - # once LamNI is back in operation. We keep it like this for now. + # stage_x_rot is checked against fovy (and stage_y_rot against fovx) because alpha + # includes a fixed ~90 deg mechanical offset (-300+30.5 deg) between the piezo's + # physical axes and the angle=0 sample/beam frame that fovx/fovy are defined in. + # So stage_x_rot tracks the beam-frame y-extent, and stage_y_rot the x-extent. return ( np.abs(stage_x_rot) <= (fovy / 2) and np.abs(stage_y_rot) <= (fovx / 2) -- 2.54.0 From fa322bfd436089ce26cb36df421362d0eb9d1d69 Mon Sep 17 00:00:00 2001 From: x01dc Date: Thu, 30 Jul 2026 15:28:48 +0200 Subject: [PATCH 2/2] fix(lamni): allow entering 0 to disable circular FOV in Tomo Params GUI The scan already treats fov_circular==0 as "disabled" and defaults to it, but the GUI spinbox floor of 0.1 made 0 unreachable. Lower the floor to 0.0 and label the field so the meaning is explicit. Co-Authored-By: Claude Sonnet 5 --- csaxs_bec/bec_widgets/widgets/tomo_params/tomo_params.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csaxs_bec/bec_widgets/widgets/tomo_params/tomo_params.py b/csaxs_bec/bec_widgets/widgets/tomo_params/tomo_params.py index 0cc6230..3f4f33e 100644 --- a/csaxs_bec/bec_widgets/widgets/tomo_params/tomo_params.py +++ b/csaxs_bec/bec_widgets/widgets/tomo_params/tomo_params.py @@ -2286,7 +2286,7 @@ SETUP_PROFILES: dict[str, dict[str, Any]] = { "has_180_mode": False, "has_single_point": False, "has_zero_deg_reference": True, - "fov_fields": [("tomo_circfov", "Circular FOV (µm)", 0.1, 200.0, 2)], + "fov_fields": [("tomo_circfov", "Circular FOV (µm, 0 = disabled)", 0.0, 200.0, 2)], "stitch_fields": [ ("lamni_stitch_x", "Stitch x", 0, 50), ("lamni_stitch_y", "Stitch y", 0, 50), -- 2.54.0