Files
Jungfraujoch/common/DetectorModuleGeometry.h
leonarski_f d315506633 * Enhancements for XFEL
* Enhancements for EIGER
* Writer is more flexible and capable of handling DECTRIS data
2024-03-05 20:41:47 +01:00

37 lines
996 B
C++

// Copyright (2019-2023) Paul Scherrer Institute
#ifndef JUNGFRAUJOCH_DETECTORMODULEGEOMETRY_H
#define JUNGFRAUJOCH_DETECTORMODULEGEOMETRY_H
#include <cstdint>
#include <cstddef>
#include "Definitions.h"
class DetectorModuleGeometry {
public:
enum class Direction {Xneg, Xpos, Yneg, Ypos};
private:
int64_t x0;
int64_t y0;
constexpr static const int64_t fast_pixels = CONVERTED_MODULE_COLS;
constexpr static const int64_t slow_pixels = CONVERTED_MODULE_LINES;
Direction fast;
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;
void VerticalFlip(size_t detector_height);
};
#endif //JUNGFRAUJOCH_DETECTORMODULEGEOMETRY_H