leonarski_fandClaude Opus 5 e26083f039 rugnux pre-scan: measure the width on settled geometry, and skip the unread projection
Two things the pre-scan did regardless of what was asked of it.

The spot width is read off the geometry as it stands. Candidates are excluded
within MIN_BEAM_DISTANCE_PX of the beam centre and stratified into resolution
bands about it, so with --estimate-beam-center the width was measured against the
centre the pass was in the middle of correcting - a placeholder header centre
both selects a different set of spots and labels them at the wrong resolution -
and spot_width_measured_ then stopped the corrected pass from ever revisiting it.
The width is now left to the second pass where one follows, which starts from the
corrected centre; a run with no second pass measures it as before, a provisional
radius being better than none.

ShadowFinder::AddImage projects the whole image and ran for every frame of the
shadow sample whether or not a shadow was wanted - with --detect-beam-stop=off,
or on the second pass where the mask already holds one, that is the pass's
largest per-frame cost paid for a result nobody reads. Now gated on want_shadow.
The frame set is unchanged, so the mask is still built from the frames it was
validated on.

Gating it exposed the read-failure guard below, which asked the shadow finder how
many frames it had seen. With the finder no longer fed, a pass that read every
frame for the beam centre alone would have reported "no image could be read" and
returned before placing it. Frames read are now counted directly.

Inert on the shipped defaults, as intended: --estimate-beam-center is off by
default, so the width deferral cannot fire, and the projection is wanted on the
first pass. Verified by building the parent commit and this one and running eight
crystals of the rotation battery through both at -N 10: every column identical -
space group, unique reflections, observations, completeness, R_meas, CC1/2,
<I/sigma> - on all eight. Warm-cache wall clock 1m03s against 1m02s, i.e. a wash;
the saving only falls on passes that were discarding the result anyway.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016L1qig74oYQzfUJJZbbxFh
2026-08-27 22:09:51 +02:00
2026-08-26 22:47:00 +02:00
2026-08-13 17:03:10 +02:00
2026-08-13 17:03:10 +02:00
2026-08-25 08:21:39 +02:00
2026-08-26 22:47:00 +02:00
2025-12-04 11:56:14 +01:00
2026-08-27 22:09:50 +02:00
2026-08-25 08:21:39 +02:00
2026-08-27 22:09:50 +02:00
2026-03-26 20:50:33 +01:00
2026-06-23 20:29:49 +02:00
2026-07-19 09:39:28 +02:00
2026-08-26 22:47:00 +02:00
2026-08-26 22:47:00 +02:00
2026-08-26 22:47:00 +02:00
2026-08-26 22:47:00 +02:00
2026-06-13 21:27:41 +02:00
2026-06-23 20:29:49 +02:00
2026-08-25 08:21:39 +02:00
2024-11-22 21:25:20 +01:00
2026-08-25 08:21:39 +02:00
2026-08-26 22:47:00 +02:00
2024-12-02 21:17:14 +01:00
2026-08-13 17:03:10 +02:00
2025-10-25 22:05:47 +02:00
2026-07-03 19:18:56 +02:00
2026-06-23 20:29:49 +02:00
2026-08-13 17:03:10 +02:00
2024-12-02 21:17:14 +01:00
2026-08-25 08:21:39 +02:00
2026-08-26 22:47:00 +02:00
2026-08-25 08:21:39 +02:00
2026-08-26 22:47:00 +02:00
2026-08-13 17:03:10 +02:00
2026-08-27 22:09:50 +02:00

Jungfraujoch

Application to receive data from the PSI JUNGFRAU and EIGER detectors.

All documentation is now placed in docs/ subdirectory and for the current version hosted on Jungfraujoch Read The Docs page.

S
Description
Jungfraujoch Data Acquisition System
Readme GPL-3.0
3 GiB
Languages
C++ 75.4%
HTML 7.5%
C 6%
TypeScript 4.2%
Cuda 2.2%
Other 4.6%