diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 674893e43..012c61b33 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -19,6 +19,7 @@ * The `rugnux` report gives the detector tilt, the measured tilt and the direct beam beside the beam centre, and a post-refined beam centre is judged against the run's own measurement rather than the file's. * `--no-refine-tilt` holds the detector tilt at the value in the file, instead of zeroing it, when the calibration starts from the spots. * The HDF5 master file and the CBOR start message carry `direct_beam_x`/`direct_beam_y`, where the undeflected beam lands on the detector, beside the `beam_center_x`/`beam_center_y` PONI. +* The `rugnux` report says what its measured detector tilt is worth: one sweep determines the direct beam rather than the tilt itself, and only the median over several crystals on one detector is comparable with a powder calibration. * The `jfjoch_viewer` grid scan view draws the cells in the proportion of the scan steps, so the map has the shape of the scanned area. ### 1.0.0-rc.165 diff --git a/rugnux/ResultReport.cpp b/rugnux/ResultReport.cpp index 0350ba035..aaeb18871 100644 --- a/rugnux/ResultReport.cpp +++ b/rugnux/ResultReport.cpp @@ -119,9 +119,17 @@ std::string RenderResultReport(const std::string &output_prefix, if (result.refined_detector_tilt_deg) os << " REFINED_DETECTOR_TILT is rot1/rot2 in degrees as rotation indexing MEASURED them, and is\n" << " NOT what this run integrated at - nothing writes a refined tilt back onto the geometry.\n" - << " It is here to be checked against a powder calibration, which measures the tilt from ring\n" - << " SHAPE and is the better instrument for it. rot3 is omitted because a rotation about the\n" - << " beam is an exact null of this experiment and the fit cannot move it.\n"; + << " One crystal does not measure a detector tilt. The tilt is aliased with the beam centre,\n" + << " so what a single sweep determines is the DIRECT_BEAM above, not the split between the\n" + << " two, and this fit stays close to the tilt it was started from - it moves a fraction of\n" + << " the way to the true value, and the fraction varies from crystal to crystal. Comparing\n" + << " one run against a powder calibration will therefore disagree with it by far more than\n" + << " either number's uncertainty. What is worth comparing is the MEDIAN of this value over\n" + << " several crystals collected on the same detector, which does track the calibration well\n" + << " enough to show up a placeholder or a stale tilt in the file - it does not replace the\n" + << " calibration. Do not feed a single run's value back into the instrument.\n" + << " rot3 is omitted because a rotation about the beam is an exact null of this experiment\n" + << " and the fit cannot move it.\n"; // The same geometry once more, as the object jfjoch_broker takes it in: the four required // properties of dataset_settings in broker/jfjoch_api.yaml, spelled the way the API spells them.