mirror of
https://github.com/slsdetectorgroup/aare.git
synced 2026-09-03 17:20:43 +02:00
45 lines
1.1 KiB
C++
45 lines
1.1 KiB
C++
#pragma once
|
|
#include "aare/DetectorGeometry.hpp"
|
|
#include "aare/ROI.hpp"
|
|
#include <cstdint>
|
|
#include <vector>
|
|
|
|
namespace aare {
|
|
|
|
class DetectorGeometry; // forward declaration to avoid circular dependency
|
|
|
|
/**
|
|
* @brief Class to hold the geometry of a region of interest (ROI)
|
|
*/
|
|
class ROIGeometry {
|
|
public:
|
|
/** @brief Constructor
|
|
* @param roi
|
|
* @param geometry general detector geometry
|
|
*/
|
|
ROIGeometry(const ROI &roi, DetectorGeometry &geometry);
|
|
|
|
/// @brief Get number of modules in the ROI
|
|
size_t num_modules_in_roi() const;
|
|
|
|
/// @brief Get the indices of modules in the ROI
|
|
const std::vector<size_t> &module_indices_in_roi() const;
|
|
|
|
size_t module_indices_in_roi(const size_t module_index) const;
|
|
|
|
size_t pixels_x() const;
|
|
size_t pixels_y() const;
|
|
|
|
private:
|
|
/// @brief Size of the ROI in pixels in x direction
|
|
size_t m_pixels_x{};
|
|
/// @brief Size of the ROI in pixels in y direction
|
|
size_t m_pixels_y{};
|
|
|
|
DetectorGeometry &m_geometry;
|
|
|
|
/// @brief Indices of modules included in the ROI
|
|
std::vector<size_t> m_module_indices_in_roi;
|
|
};
|
|
|
|
} // namespace aare
|