unmerged export: the comments name the FLIGHT column they forgot

The header and the two in-function comments describing what the unmerged
MTZ carries still said "two columns" and "raw counts are I / LP * QE",
written before the flight-path term and its FLIGHT column were added.
The code, the test and docs/RUGNUX_INTEGRATION.md all say I / LP * QE *
FLIGHT; only these comments did not. Also drops the self-referential
note in Reflection.h about a comment having been overtaken, and states
the flight factor's symbols and the medium rather than assuming air.

No behaviour change.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011GxZqDiFP3KqriBhNdcR56
This commit is contained in:
2026-09-12 22:38:32 +02:00
co-authored by Claude Opus 5
parent 051e2aef46
commit df1536db7f
3 changed files with 18 additions and 14 deletions
+6 -5
View File
@@ -733,7 +733,7 @@ void WriteUnmergedMtzReflections(const std::vector<IntegrationOutcome> &outcomes
ds.wavelength = experiment.GetWavelength_A();
// Every data column belongs to HKL_base and only the batches carry a dataset id, as in a
// POINTLESS file. Down to FLAG this is POINTLESS's own column set, plus QE; the four after it
// POINTLESS file. Down to FLAG this is POINTLESS's own column set, plus QE and FLIGHT; the four after it
// are what rugnux measures beyond it - the offset of the reflection from the centre of its
// rocking curve, the Lorentz geometry of that curve, and the background that was subtracted.
//
@@ -787,10 +787,11 @@ void WriteUnmergedMtzReflections(const std::vector<IntegrationOutcome> &outcomes
// crystal-frame information careless scales on, and what makes the file unmerged rather than a
// merge waiting to happen.
// I and SIGI are the integrated intensity with every deterministic per-reflection correction
// applied and nothing else, which is what IOBS means in every unmerged format. Two columns
// record what was applied, so the raw count sum is recoverable exactly as I / LP * QE:
// LP is Lorentz x polarization and QE the sensor efficiency (a divisor, hence the multiply).
// Neither is a scale, and a program that reads this file has no way to recompute them. The
// applied and nothing else, which is what IOBS means in every unmerged format. Three columns
// record what was applied, so the raw count sum is recoverable exactly as I / LP * QE * FLIGHT:
// LP is Lorentz x polarization, QE the sensor efficiency and FLIGHT the attenuation of the
// flight-path medium (both divisors, hence the multiplies).
// None of the three is a scale, and a program that reads this file has no way to recompute them. The
// partiality is NOT divided out - that IS a scale, FRACTIONCALC carries it, and every program
// this file is for wants to handle it its own way.
gemmi::UnmergedHklMover hkl_mover(mtz.spacegroup);