a2f451cf12a834cc21ada8fdc6da7e8f7f28cc70
A beam-centre error is not repairable downstream. It is fixed in the lab frame, so accumulating a sweep smears every reciprocal-lattice point around a circle and the FFT amplitude at an axis of length a is multiplied by J0(2 pi delta p a/(D lambda)); past the first zero the true axis is gone and its harmonic wins. But it is decidable from the data, on exactly the count the scheme choice and the axis-sign rescue already use: the right centre indexes and the wrong one does not. So after a first pass that indexes fewer than half the validation frames, step the centre a pixel at a time and keep the first rung that clears the same majority the other guards test. It runs only after a pass that has already failed, so a run that works never pays for it, and spot finding is not repeated - the cache is keyed by image and the spot positions do not depend on the centre. On the prototype this rescued 2 of 12 failing non-SLS datasets and declined cleanly on the other 10. BOTH detector directions are searched, and that is the part to keep. Measured by injection on two crystals: across the spindle the cell stays right and the indexed fraction collapses, 99 % to 25 %, so that direction announces itself; along the spindle - the one the J0 derivation calls free, because the FFT amplitude is translation-invariant - the run holds 96-100 % indexed and quietly adopts a 2x, 3x or sqrt(3) supercell. Searching only the perpendicular direction would search the failure that already shows. The step is one pixel, flat. Deriving it from the J0 law was tried and is wrong: the only cell available at that point is the one the FAILED pass returned, and on a dataset whose failed cell was a small spurious sub-cell the formula asked for a 6 px step, which steps over the lobe it is looking for. Taking any improvement rather than requiring a majority was also tried and is wrong: where no centre works, the ladder wandered to the far end of its range on 10/60 against 5/60. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T3yNBXk4wKdMZy1ak2NY7f
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.
Languages
C++
76.7%
HTML
7.2%
C
5.6%
TypeScript
4%
Cuda
2.1%
Other
4.3%