rugnux: the gain of a stills file that states none is read off its single-photon peak where the background resolves photons
A pedestal-subtracted JUNGFRAU background is mostly empty pixels; the variance per unit mean leaves out the zeros and read 6.7 keV per photon on a 12 keV run in keV, 2.4 on a 4.6 keV one, so such files needed --gain. MeasureGain now also histograms the sampled pixel values and takes the gain from the single-photon peak (background_gain::PhotonPeak): the highest bin past the zero peak's descent, standing 5 sigma above the valley before it, narrow (below half height a quarter of its value away), and repeated by a two-photon peak near twice its value. Where there is no such pair the variance per unit mean decides as before. Float frames are read for the measurement at a sixteenth of their unit, so a photon of a few keV is resolved rather than rounded to whole keV. Measured: float32 keV JUNGFRAU files 11.96 (photon energy 12.04 keV) and 4.53 (4.57 keV); the int16 photon copies show no peak past the first bin and keep the 0.55 variance answer, i.e. stay in photons; the SACLA MPCCD and PAL Rayonix files show humps, not photon peaks, and measure as before. A gain the file states or --gain gives still wins. Rotation is untouched (the pre-scan's CCD gain uses only the variance estimator). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015CeEGgpKdfkCTJb3YNMJcu
This commit is contained in:
1 parent
f72950612a
commit
87560311bc
6 files changed
+142
-11
No files matched your search
@@ -775,6 +775,16 @@ void JFJochXFELReader::ApplyGain(float adu_per_photon) {
|
||||
Place();
|
||||
}
|
||||
|
||||
void JFJochXFELReader::ClearGain() {
|
||||
for (auto &p: geom_.panels)
|
||||
p.adu_per_photon.reset();
|
||||
Place();
|
||||
}
|
||||
|
||||
bool JFJochXFELReader::StoredFloat() const {
|
||||
return layout_.stored_float || !layout_.plain_type;
|
||||
}
|
||||
|
||||
bool JFJochXFELReader::HasPhotonEnergy() const {
|
||||
return photon_energy_eV_ > 0;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user