A photon entering a flat sensor at an angle alpha to its normal crosses t/cos(alpha)
of material instead of t, so the absorbed fraction rises toward the detector edge.
The correction is QE(0)/QE(alpha) taken on the diffracted-beam direction against the
detector normal, not on the scattering angle, so it follows a tilted or swung-out
detector rather than assuming the two coincide.
On an untilted detector this is a function of |s| alone: it is 99.7% a Wilson B
offset and cancels exactly within a resolution shell, so merged protein data barely
moves and no gain is claimed. It stops cancelling the moment the detector is tilted,
because the incidence angle then acquires an azimuthal dependence: on a 30 degree
swung-out geometry at 18 keV the within-shell spread reaches 21% median and 31% peak,
and the anisotropy tensor moves with it.
Attenuation lengths are the tabulated NIST coefficients rather than a wavelength-cubed
approximation, which is within 0.2% for silicon above 10 keV but wrong for CdTe by a
factor of two, and by six above the cadmium K edge. Photoelectric branching cancels in
the ratio; K-fluorescence escape is not modelled, and the header says so.
The correction self-disables where the physics makes it meaningless - an opaque
sensor - so it needs no flag and is exactly neutral on all long-wavelength data and on
thick CdTe. That also makes it a no-op on a file that stores its sensor thickness in
the wrong unit, of which the corpus holds one.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EFEJG6WBQv8th4UJFNe53N