Files
Jungfraujoch/tests
leonarski_f 0829b9a72d Stills prediction: every frame predicts through two rocking widths of the run, measured first and centred on its radial scale
Each still predicted through |dist_ewald| <= 2x its own profile radius (the RMS excitation error of its
indexed spots): one width at every resolution, differing eightfold between frames. Against the run's
measured rocking width that was 5-8 sigma at low resolution on one SACLA run (59 % of the 40-8 A predictions
empty) and below one sigma at high resolution on a crowded LCLS run (half of the curve never integrated).

Now the stills image pass first integrates a sample (a tenth of the run, at least 2000 frames) the old way,
scales it against its own merge and measures the run's rocking curve on it - centre (MeasureRadialScale) and
width (MeasureRunWidth), as the merge measures them - then predicts every frame through 2 sigma(d) of that
curve, centred on the reciprocal lattice scaled by the radial scale (BraggPredictionSettings::window_*, CPU
and CUDA). The post-refinement uses the same curve instead of measuring it again: re-measured through
windows that follow it, the constant term falls to ~0 and the result swung by up to +-0.015 per run.

Still battery, 12 non-float sets, against the st-partial baseline (0-cycle REFMAC R-free vs deposited):
9 better, 3 worse, sum of changes -0.013; the off-centre run -0.012, worst +0.008 on one JUNGFRAU run (its
sample measures a different width form than the full run). Integrated reflections 0.8-1.7x, battery wall
+13 % on a loaded box. Rotation untouched (window fields zero unless set); p.hkl byte-identical on three
rotation sets.

Tests: BraggPrediction_WindowFollowsResolution, BraggPrediction_CPU_GPU_consistency_window.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015CeEGgpKdfkCTJb3YNMJcu
(cherry picked from commit 1b28d671d780bc88525ceac5120017963d937bbc)
2026-10-26 10:50:52 +01:00
..
2026-08-13 17:03:10 +02:00
2026-09-29 15:57:32 +02:00
2026-07-19 09:39:28 +02:00
2026-10-16 15:34:43 +02:00
2026-10-16 15:34:43 +02:00
2026-10-16 15:34:43 +02:00
2025-05-05 19:32:22 +02:00
2026-10-24 14:52:29 +02:00
2026-10-21 11:20:01 +02:00
2026-10-19 16:07:31 +02:00
2026-04-29 09:50:50 +02:00
2026-10-24 14:52:29 +02:00
2026-10-24 14:52:29 +02:00
2026-10-24 14:52:29 +02:00
2026-10-16 15:34:43 +02:00
2026-10-16 15:34:43 +02:00
2026-09-29 15:57:32 +02:00
2026-10-06 14:03:18 +02:00
2026-10-24 14:52:29 +02:00
2026-08-13 17:03:10 +02:00
2026-09-02 21:17:31 +02:00
2026-10-24 14:52:29 +02:00
2026-05-28 18:48:35 +02:00
2025-05-05 19:32:22 +02:00
2025-06-10 18:14:04 +02:00
2026-09-02 21:17:31 +02:00
2026-09-29 15:57:32 +02:00
2026-10-24 14:52:29 +02:00
2026-10-16 15:34:43 +02:00
2026-10-21 11:20:01 +02:00
2025-11-19 09:40:50 +01:00
2026-10-21 11:20:01 +02:00
2026-04-29 09:50:50 +02:00
2026-08-25 08:21:39 +02:00
2026-09-02 21:17:31 +02:00
2026-10-19 07:03:28 +02:00
2026-08-13 17:03:10 +02:00
2026-10-16 15:34:43 +02:00
2026-10-24 14:52:29 +02:00
2024-11-22 21:25:20 +01:00
2025-10-20 20:43:44 +02:00
2025-04-14 11:52:06 +02:00
2025-11-09 12:42:27 +01:00
2025-09-08 20:28:59 +02:00
2025-09-08 20:28:59 +02:00
2025-03-24 12:16:33 +01:00
2026-10-06 14:03:18 +02:00
2025-06-18 15:19:18 +02:00
2026-09-02 21:17:31 +02:00
2026-10-19 07:03:28 +02:00
2025-12-12 21:24:20 +01:00
2026-02-01 13:29:33 +01:00
2026-10-19 07:03:28 +02:00
2026-10-24 14:52:29 +02:00
2026-03-03 22:24:44 +01:00
2025-11-19 09:40:50 +01:00
2026-09-29 15:57:32 +02:00
2026-10-19 07:03:28 +02:00
2026-10-16 15:34:43 +02:00
2025-05-05 19:32:22 +02:00
2024-11-22 21:25:20 +01:00
2026-10-24 14:52:29 +02:00
2026-09-29 15:57:32 +02:00
2026-10-21 11:20:01 +02:00
2024-11-22 21:25:20 +01:00
2026-09-29 15:57:32 +02:00
2026-06-23 20:29:49 +02:00
2026-09-29 15:57:32 +02:00
2026-09-09 07:25:13 +02:00
2026-10-16 15:34:43 +02:00
2026-09-29 15:57:32 +02:00
2024-11-22 21:25:20 +01:00
2026-10-19 07:03:28 +02:00
2026-10-19 07:03:28 +02:00
2026-10-16 15:34:43 +02:00
2026-10-19 07:03:28 +02:00
2026-10-24 14:52:29 +02:00
2026-10-24 14:52:29 +02:00
2025-03-02 13:15:28 +01:00
2026-06-08 08:30:35 +02:00
2026-10-21 11:20:01 +02:00
2026-10-16 15:34:43 +02:00
2026-10-24 14:52:29 +02:00
2026-10-16 15:34:43 +02:00
2025-11-09 12:42:27 +01:00
2026-08-13 17:03:10 +02:00
2026-09-29 15:57:32 +02:00
2026-10-16 15:34:43 +02:00
2026-08-27 22:16:54 +02:00
2024-11-22 21:25:20 +01:00
2025-11-09 12:42:27 +01:00
2026-10-16 15:34:43 +02:00
2025-10-01 22:54:40 +02:00
2026-09-02 21:17:31 +02:00
2026-10-21 11:20:01 +02:00
2026-09-22 06:48:37 +02:00
2026-09-02 21:17:31 +02:00
2026-06-23 20:29:49 +02:00
2026-10-24 14:52:29 +02:00
2026-10-24 14:52:29 +02:00
2026-10-16 15:34:43 +02:00
2026-10-19 07:03:28 +02:00
2026-10-24 14:52:29 +02:00
2026-10-21 11:20:01 +02:00
2026-10-16 15:34:43 +02:00
2026-10-16 15:34:43 +02:00
2026-10-06 14:03:18 +02:00
2026-10-24 14:52:29 +02:00
2026-09-29 15:57:32 +02:00
2026-03-02 15:57:12 +01:00
2026-10-16 15:34:43 +02:00
2026-09-02 21:17:31 +02:00
2026-09-29 15:57:32 +02:00
2026-10-21 11:20:01 +02:00
2026-06-23 20:29:49 +02:00
2026-04-16 11:59:59 +02:00
2026-10-24 14:52:29 +02:00
2025-11-02 13:45:57 +01:00
2025-12-12 21:24:20 +01:00
2026-09-22 06:48:37 +02:00
2026-10-16 15:34:43 +02:00
2026-05-28 18:48:35 +02:00
2026-10-16 15:34:43 +02:00
2026-10-19 07:03:28 +02:00
2026-10-16 15:34:43 +02:00
2026-10-24 14:52:29 +02:00
2026-09-02 21:17:31 +02:00
2026-10-06 14:03:18 +02:00
2026-10-06 14:03:18 +02:00
2026-10-21 11:20:01 +02:00
2026-03-26 20:50:33 +01:00
2024-11-22 21:25:20 +01:00
2026-09-29 15:57:32 +02:00