leonarski_fandClaude Opus 5 20349fb2d9 Scaling: a correction surface is fitted under a prior and gated on held-out half-set CC
Three changes to ApplyCellSurface, each measured offline on the surfaces' own input terms from twelve
open rotation sets (36 surfaces), against per-shell CC of the merge to the deposited model's Fc.

The gate. The held-out score was sum|Is - Iref| / sum Iref pooled over every shell the fit reaches.
The surfaces are fitted before the resolution cutoff, so on a weak set the score was carried by shells
with no signal (one set: 8 of 20 shells at <I/sigma> < 0.1, a quarter of the numerator), where any
spread in A raises |Is - Iref| because Is is A times noise; and it weighted each residual equally where
the merge weights it by 1/(sigma corr A)^2. It is replaced by the quantity the surface is for: fit on
even frames and merge the odd ones with it, fit on odd and merge the even ones, and correlate the two
half-set means within each resolution shell, against the same with no surface. A surface fitted to
noise lowers that correlation, so the gate needs no margin. On surfaces moving the external CC by more
than 0.005 either way, the old gate agreed with the model on 6 of 12 and the new one on 13 of 14; and
no threshold on the old score separated them - below its 2% sat surfaces worth +0.017 and +0.009 and
surfaces worth -0.026 and -0.013. CV_MIN_RELATIVE_GAIN still gates the decay and relative-B fits,
which this does not touch.

The regulariser. The per-round update A *= (ref2 + lambda) / (cross + lambda) was described as a
Tikhonov pull to 1, but lambda cancels at the fixed point ref2 = cross: it only slowed a weak cell to
cross / (cross + lambda) of its step, so the 30-round cap regularised by early stopping and the weak
cells were still moving when it hit - most of what "NOT settled" reported - and a cell with no
information was fitted to its noise and pinned on the [0.25, 4] clamp. The update is now a damped
Gauss-Newton step on log A with a N(0, 0.1^2) prior: ref2 is the information of the cell's log scale,
so the fixed point ref2 - cross = P log A moves a cell off 1 in proportion to what its observations
say. Offline, applied surfaces that settle within the cap: most of them, against a minority; cells on
the clamp: 0-4 per surface against up to 318. On the weakest set the time x detector surface goes from
181 clamped cells and -0.031 external CC to none and +0.001.

The gauge. The per-shell projection is exact only where a cell sits at one resolution - a detector
patch. A goniometer-frame cell collects directions from the whole sweep, so there it removed real
absorption, which varies with scattering angle: +0.016 -> +0.022 and +0.017 -> +0.020 on the two sets
where that surface is worth anything. That surface keeps only the global level fix.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013nW6FNRP1bBJJ8pfHiByAT
2026-09-21 17:11:44 +02:00
2026-08-13 17:03:10 +02:00
2026-09-20 18:45:04 +02:00
2026-08-25 08:21:39 +02:00
2026-09-15 17:09:31 +02:00
2026-09-02 21:17:31 +02:00
2026-09-20 18:45:04 +02:00
2026-09-09 07:25:13 +02:00
2026-09-20 18:45:04 +02:00
2026-09-02 21:17:31 +02:00
2026-09-15 17:09:31 +02:00
2026-08-27 22:16:54 +02:00
2026-03-26 20:50:33 +01:00
2026-06-23 20:29:49 +02:00
2026-09-15 17:09:31 +02:00
2026-09-15 17:09:31 +02:00
2026-09-20 18:45:17 +02:00
2026-09-15 17:09:31 +02:00
2026-06-23 20:29:49 +02:00
2024-11-22 21:25:20 +01: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-09-17 14:42:52 +02:00
2026-08-13 17:03:10 +02:00
2026-09-20 18:45:04 +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++ 78%
HTML 6.4%
C 5.1%
TypeScript 3.6%
Cuda 2.1%
Other 4.7%