Files
Jungfraujoch/docs
leonarski_fandClaude Opus 5 7e3ab8150d Integration: widen the radius for the final pass only
48008e144 set the integration radius from measured spot width, and on one
crystal that cost 21% of the indexed frames. The cause is not the indexer.

The geometry pre-pass integrates, post-refines the detector distance and beam
from what it integrated, and discards the intensities. PostRefine takes its
positions, its weights and its reflection set from the integrator, and the
observed position is a raw first moment over the signal disk with the
background still in it. A flat background contributes nothing to the
numerator, because the disk is centred on the prediction, but it adds n*b to
the denominator - so every measured offset is pulled toward its prediction by
I/(I+n*b), and n goes from 50 pixels at r1 = 4 to 113 at r1 = 6. A wider disk
under-corrects the geometry. Measured: 225.978 mm against 225.944, and a
slightly worse held-out residual.

That is the entire difference the pre-pass hands on: 33 microns of distance
and 0.02 pixels of beam. It is enough because that crystal's metric is 0.54
degrees off orthorhombic, so the de-novo Bravais choice sits on a knife edge -
scanning the beam in hundredth-pixel steps flips it back and forth in islands,
and both sides are bit-reproducible. Snapping the cell to 90 degrees costs a
contiguous 66-degree stretch of the sweep, which is where the frames go.

So the pre-pass now keeps the radius the run started with and only the final
pass integrates at the measured width. Pass 1 becomes bit-identical to a
fixed-radius run, so the geometry it hands on is too, by construction rather
than by tuning: on all twelve crystals the rule moves, the post-refined
distance and the pass-2 validation frame count match the fixed-radius values
digit for digit. On the crystal that regressed, the indexing rate goes 0.7900
to 1.0000, observations up 30.1%, multiplicity 5.22 to 6.68, and low-
resolution R_meas 13.1% to 10.7% against XDS's 10.8%.

Against the right reference - the rule off, same lattice, same geometry,
matched indexing rate - the widened radius on that crystal is better in 10 of
10 shells on R_meas and 10 of 10 on CC1/2. It looked worse against the shipped
arm only because that arm merges a fifth fewer frames, and dropping the
hardest part of a sweep flatters a pooled statistic.

Taking the position centroid over a fixed aperture regardless of r1 was tried
and does not work: the intensities, the sigmas and the surviving reflection
set carry the perturbation too, and the geometry moved further from the
baseline, not closer.

Battery: space group identical on all 38 and 35 agreeing with the reference in
every arm, merged intensities byte-identical on the 26 crystals the rule does
not move, over a baseline reproducible to zero. No runtime cost.

The density guard moves with it and now reads the final pass's own count.
Exercising its re-run branch with a lowered bound turned up two reporting
bugs, fixed here.

Not fixed, and worth its own task: that crystal is still one hundredth of a
pixel from losing a fifth of its data, because the indexer computes the
unconstrained cell for exactly this comparison but only scores it once the
constrained one has already failed outright.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CHMmeM1d489zvNFT7ZMN2P
2026-08-26 01:58:43 +02:00
..
2026-08-25 13:38:29 +02:00
2026-08-25 08:21:39 +02:00
2026-08-25 13:38:29 +02:00
2026-08-13 17:03:10 +02:00
2026-08-25 08:21:39 +02:00
2026-08-13 17:03:10 +02:00
2026-08-13 17:03:10 +02:00
2025-04-14 11:52:06 +02:00
2024-11-22 21:25:20 +01:00
2026-02-18 16:17:21 +01:00
2025-06-24 16:43:47 +02:00
2024-11-17 14:55:09 +01:00
2026-08-13 17:03:10 +02:00
2024-11-17 14:55:09 +01:00
2026-07-19 09:39:28 +02:00
2026-08-25 08:21:39 +02:00
2026-08-13 17:03:10 +02:00
2026-08-25 08:21:39 +02:00
2026-08-13 17:03:10 +02:00
2025-11-28 12:47:35 +01:00
2026-06-23 20:29:49 +02:00
2026-07-11 07:19:11 +02:00
2024-12-02 21:17:14 +01:00
2024-12-02 21:17:14 +01:00
2026-08-13 17:03:10 +02:00
2026-08-25 08:21:39 +02:00
2026-08-13 17:03:10 +02:00
2024-11-22 21:25:20 +01:00
2026-08-25 08:21:39 +02:00
2026-08-25 08:21:39 +02:00
2026-08-13 17:03:10 +02:00
2026-08-13 17:03:10 +02:00
2026-08-13 17:03:10 +02:00
2026-08-13 17:03:10 +02:00
2024-11-17 14:55:09 +01:00
2024-11-22 21:25:20 +01:00