MythenFileReader

File reader to read acquisition files stored as hdf5. The filereader inherits from a wrapper class based on the C++ API of the HDF5 C Library. The provided dataset need to have fields data storing the photon counts, DetectorAngle storing the detector position in degrees and CounterMask storing which counters are active. The field CounterMask stores an integer representation of a 3-digit bit string, where each bit is set to 1 if the counter is active.

Example

CounterMask: 4 // binary representation 1 0 0
only channel 0 is active
CounterMask: 3 // binary representation 0 1 1
channel 1 and 2 are active
class MythenFileReader

Subclassed by angcal::CustomMythenFileReader

Public Functions

MythenFileReader() = default
inline MythenFileReader(const std::filesystem::path &detector_angles, const std::filesystem::path &incident_intensities)
inline ~MythenFileReader()
inline void read_detector_angle(const size_t acquisition_index, double &detector_angle)
inline void read_incident_intensity(const size_t acquisition_index, uint64_t incident_intensity)
inline MythenFrame read_frame(const std::filesystem::path &filename)
inline size_t get_acquisition_index(const std::filesystem::path &filename)

Private Members

std::string detector_angles_filename = {}
std::string incident_intensities_filename = {}
std::ifstream detector_angles_file
std::ifstream incident_intensities_file