vitrio 0.1.4
High-throughput image I/O for Cryo-Electron Microscopy (CryoEM)
Loading...
Searching...
No Matches
detector_event_fractionation.hpp
1// SPDX-License-Identifier: LGPL-2.1-or-later
2
3#pragma once
4
5#include <vitrio/export.hpp>
6
7#include <cstddef>
8#include <cstdint>
9
10namespace vitrio
11{
12
28{
29public:
33 VITRIO_API
34 static constexpr std::size_t max_fraction_count = 0xFFFFFFFF;
35
43 VITRIO_API
44 explicit detector_event_fractionation(std::size_t fraction_count);
45
46 VITRIO_API
49 ) noexcept;
50 VITRIO_API
52
53 VITRIO_API
55 operator=(const detector_event_fractionation &other) noexcept;
56
62 VITRIO_API
63 std::size_t get_fraction_count() const noexcept;
64
78 VITRIO_API
79 std::uint64_t get_fraction_begin(
80 std::size_t fraction,
81 std::uint64_t time_extent
82 ) const noexcept;
83
84 friend bool operator==(
87 ) noexcept
88 {
89 return lhs.m_fraction_count == rhs.m_fraction_count;
90 }
91
92 friend bool operator!=(
95 ) noexcept
96 {
97 return !(lhs == rhs);
98 }
99
100private:
101 std::size_t m_fraction_count;
102};
103
104} // namespace vitrio
How the time of an acquisition is cut into fractions.
Definition detector_event_fractionation.hpp:28
std::uint64_t get_fraction_begin(std::size_t fraction, std::uint64_t time_extent) const noexcept
Get the time a fraction begins at.
detector_event_fractionation(std::size_t fraction_count)
Construct a fractionation into a number of fractions.
static constexpr std::size_t max_fraction_count
The most fractions a fractionation may cut into.
Definition detector_event_fractionation.hpp:34
std::size_t get_fraction_count() const noexcept
Get how many fractions the time is cut into.