Files
Jungfraujoch/common/DetectorGeometry.h
2025-05-05 19:32:22 +02:00

29 lines
1.3 KiB
C++

// SPDX-FileCopyrightText: 2024 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
// SPDX-License-Identifier: GPL-3.0-only
#ifndef JUNGFRAUJOCH_DETECTORGEOMETRY_H
#define JUNGFRAUJOCH_DETECTORGEOMETRY_H
#include <cstdint>
#include <vector>
#include "Coord.h"
#include "DetectorModuleGeometry.h"
class DetectorGeometry {
public:
[[nodiscard]] virtual int64_t GetModulesNum() const = 0;
[[nodiscard]] virtual int64_t GetWidth(bool geom_transformed) const = 0;
[[nodiscard]] virtual int64_t GetHeight(bool geom_transformed) const = 0;
[[nodiscard]] virtual int64_t GetPixel0(int64_t module_number, bool geom_transformed) const = 0;
[[nodiscard]] virtual int64_t GetX0(int64_t module_number) const = 0;
[[nodiscard]] virtual int64_t GetY0(int64_t module_number) const = 0;
[[nodiscard]] virtual int64_t GetFastDirectionStep(int64_t module_number) const = 0;
[[nodiscard]] virtual int64_t GetSlowDirectionStep(int64_t module_number) const = 0;
[[nodiscard]] virtual Coord GetFastDirection(int64_t module_number) const = 0;
[[nodiscard]] virtual Coord GetSlowDirection(int64_t module_number) const = 0;
virtual void VerticalFlip() = 0;
[[nodiscard]] virtual bool IsModularDetector() const = 0;
};
#endif //JUNGFRAUJOCH_DETECTORGEOMETRY_H