// SPDX-FileCopyrightText: 2026 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only #pragma once // A rigid move of one detector module on the detector plane (DetectorModules.h): a turn by rot_rad about // the module's centre (x0, y0) followed by a shift (dx, dy), in the plane's pixels. A point the module // put at p is moved to (x0, y0) + R(rot_rad) (p - (x0, y0)) + (dx, dy). struct ModuleShift { double x0 = 0, y0 = 0; double dx = 0, dy = 0, rot_rad = 0; int spots = 0; // indexed spots the refinement had on the module (output only) };