Files
Jungfraujoch/viewer
leonarski_fandClaude Opus 5 d74ff7fc29 Viewer: the settings panel says how the sample moved, and how polarized the beam was
Two experiment properties the panel could not state, both of which the analysis it
drives has an opinion about anyway.

The polarization factor is one number that corrects both communities' output - the
azimuthal profile through AzimuthalIntegrationMapping and the integrated intensities
through BraggIntegrationEngine - so it goes in the Geometry section, which the MX and
AzInt pages already share. Files carry no polarization factor at all, so before this
the interactive analysis integrated with none while "Analyze dataset" applied 0.99
from the rugnux defaults: the panel showed nothing and the two front ends disagreed.
The viewer's starting experiment now takes the same rugnux defaults, so the panel
shows what the analysis actually uses, and a processing job takes the panel's value
over the default - as it already did for the scaling fields.

The Goniometer section states which of the three things a dataset is - a still, a
rotation, or a grid scan - which is exactly the choice a file makes at
/entry/sample/transformations/omega vs /entry/sample/grid_scan vs neither. That
choice IS the rotation/stills switch, so "Process as stills" is gone from the
Indexing section rather than sitting beside it as a second control. It is not tied
to what the file says: a still file can be given an axis or a grid, and a rotation
file can be processed as stills. The inactive modes grey out but keep their values,
so switching away and back does not lose an axis; a file that names none offers
omega / -1 0 0 / 0.1 deg and a 10-point, 20 um raster.

Only the fast axis of a grid gets a count field, because that is all there is:
GridScanSettings derives the slow one from the image count, and the file stores
n_fast alone. The grid the settings make is spelled out under them instead. The
steps are signed - the sign is the direction the scan runs in - so only zero is
rejected, and a half-typed entry falls back to the default rather than throwing out
of a widget signal, which would abort the viewer.

JFJochReader::UpdateGeomMetadata carries a fixed whitelist of the fields a panel edit
may change, and it grew by three. Without them the new controls reset themselves on
the next dataset refresh, since a non-whitelisted field comes back as the file's.
The function has two call sites, both in the viewer's reading worker, and it is not
virtual: objdump on the rugnux binary shows the code linked in and never called, so
offline processing is untouched.

RugnuxCommandLine emits --force-still from the axis the experiment carries, which the
panel now clears when the mode is not Rotation - so the worker remembers the axis the
file was opened with, and the copied command line is built with that put back. rugnux
has no flag for the axis itself, so an axis edited or invented in the panel still
cannot be expressed on a command line; the in-process run gets the experiment object
and is unaffected.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 05:13:57 +02:00
..
2026-06-23 20:29:49 +02:00
2026-06-08 08:30:35 +02:00
2026-06-23 20:29:49 +02:00
2026-06-23 20:29:49 +02:00
2025-11-28 16:22:18 +01:00
2026-07-12 19:42:29 +02:00
2026-07-11 07:19:11 +02:00
2026-06-23 20:29:49 +02:00
2026-06-23 20:29:49 +02:00
2026-07-11 07:19:11 +02:00
2026-06-25 22:01:48 +02:00
2026-06-23 20:29:49 +02:00
2025-11-09 12:42:27 +01:00