Asked where the scan command can be recovered reliably. It is in the master file: the file writer stores the whole scan metadata under /entry/collection/metadata/bec (file_writer.py:255), including request_inputs, which holds the arguments the scan was actually called with -- arg_bundle, inputs and kwargs. That beats notebooks, logbooks and recollection, because it is written by the component that ran the scan rather than by anyone describing it afterwards. It also settles the open question directly: whether S00473 was 0.65 um or 6.5 um is answerable from the file, not from the email thread. --command prints it and stops, request_inputs first. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Debug scripts
Throwaway diagnostics for investigating beamline problems. Not part of the plugin:
nothing here is imported by csaxs_bec, and none of it needs BEC or a venv beyond the
libraries each script names.
Kept on the debug/scan-artefacts branch rather than main so that a half-finished
diagnostic never reaches a production checkout. Promote anything that turns out to be
generally useful; delete the rest once the question it answered is settled.
scan_artefact_check.py
Desk check for the July 2026 commissioning scan artefacts reported by Andreas Apseros and Kazu Hirosawa. Read-only — opens BEC master files and writes nothing.
python3 scan_artefact_check.py --root /sls/x12sa/data/p23080/raw/data \
--scan 473 --scan 450 --scan 411 --scan 254
Answers two questions without beam:
- end-of-line intensity — is the last point of every line systematically weaker, and is the first point affected too (which would mean a different mechanism)?
- dropped line motion — did the fast axis actually travel on every line? A line whose span collapsed is motion that did not happen while the scan still reported success.
Include a known-clean scan (254) so a null result distinguishes "this scan was fine" from "the analysis is wrong".
Run --list first if anything looks off; it dumps the file structure.
The motion check reads the fast-axis readback. If that axis is an open-loop stepper with no encoder, the readback is the commanded position and lost steps are invisible: a collapsed span still proves failure, but a healthy span proves nothing.