// Copyright (2019-2023) Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-or-later #ifndef JUNGFRAUJOCH_DETECTORMODULEGEOMETRY_H #define JUNGFRAUJOCH_DETECTORMODULEGEOMETRY_H #include #include "Definitions.h" class DetectorModuleGeometry { public: enum class Direction {Xneg, Xpos, Yneg, Ypos}; private: const int64_t x0; const int64_t y0; constexpr static const int64_t fast_pixels = CONVERTED_MODULE_COLS; constexpr static const int64_t slow_pixels = CONVERTED_MODULE_LINES; const Direction fast; const Direction slow; public: DetectorModuleGeometry(int64_t x0, int64_t y0, Direction fast, Direction slow); [[nodiscard]] int64_t GetMaxX() const; [[nodiscard]] int64_t GetMaxY() const; [[nodiscard]] int64_t GetPixel0_X() const; [[nodiscard]] int64_t GetPixel0_Y() const; [[nodiscard]] Direction GetSlowAxis() const; [[nodiscard]] Direction GetFastAxis() const; }; #endif //JUNGFRAUJOCH_DETECTORMODULEGEOMETRY_H