rugnux stills: a given cell is where the geometry refinement starts, not what it fits the distance to

On stills a cell and a detector distance are degenerate: a spot's radius fixes only their ratio. The
geometry refinement that -C switches on anchored the cell and refined the distance, so a deposited cell
a percent off this crystal moved a correct distance by as much (MPCCD: 50.47 -> 50.14 mm, R-free
0.259 -> 0.318). Now the distance is held and the cell refined from the spots, starting from the given
one. Only where the frames have rejected the file's distance (DecideStillsGeometry's grid, which is what
-C recovers a bad header distance with) is the cell anchored and the distance refined from it. The grid
itself asks the given cell, not one refined at the file's distance.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
leonarski_fandClaude Opus 5.5 committed 2026-10-20 16:39:44 +02:00
1 parent 750579bfe4
commit ae7b68dd68
4 files changed
+29 -2

No files matched your search

@@ -258,6 +258,8 @@ GeometryRefinerResult RefineGlobalGeometry(const DiffractionGeometry &nominal_ge
problem.SetParameterUpperBound(cell_len, j, 1.3 * cell_len0[j]);
}
if (!settings.refine_distance)
problem.SetParameterBlockConstant(&distance_mm);
problem.SetParameterBlockConstant(detector_rot); // tilt not refined
problem.SetParameterBlockConstant(rot_vec);
problem.SetParameterBlockConstant(cell_ang); // angles not refined in v1