Beyond the largest ring the detector holds whole, a ring can lie wholly in the
corners; where an aperture or cone in the beam path dims all of them, the ring's
median is the dimmed level and the beam-stop comparison along the ring sees
nothing. Such a shadow was left unmasked, and observations inside it or with
their background ring across its edge came out wild (|I/sigma| far beyond 5 in a
quarter to half of them), spoiling the merge statistics of whole shells.
FindOuterShadow compares each pixel there along its own ray instead: a
significant step down against the ray's own fall-off, which the ray's pooled
background confirms and which stays dim out to the detector's edge, starts the
shadow, and everything beyond it on the ray is masked. It runs on the pre-scan's
projection once the stills beam centre is decided, so the rays start at the
beam, and the shadow is grown by R3 - R1 so that DropShadowClipped also drops
observations whose background ring reaches it. Rotation is left as it was.
On the open still battery the two Rayonix PAL sets get their corner shadows
masked (0.24 % and 2.8 % of the detector) and their per-shell CC1/2 rises by
1-6 points below the corner-only shell; two panel sets whose corners are dark
behind an aperture get 0.2 %; the LCLS Rayonix sets, the JUNGFRAU sets and
every panel-harness set get nothing.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HVeDQqN9qRD57vnShzTC37