Files
Jungfraujoch/jungfrau/JFModuleGainCalibration.h
Filip Leonarski 1757d42182 Initial commit
Signed-off-by: Filip Leonarski <filip.leonarski@psi.ch>
2023-04-06 11:17:59 +02:00

41 lines
1.2 KiB
C++

// Copyright (2019-2022) Paul Scherrer Institute
// SPDX-License-Identifier: GPL-3.0-or-later
#ifndef JUNGFRAUJOCH_JFMODULEGAINCALIBRATION_H
#define JUNGFRAUJOCH_JFMODULEGAINCALIBRATION_H
#include <vector>
#include <cstdint>
#include <string>
#include <array>
#include "../common/Definitions.h"
class JFModuleGainCalibration {
std::vector<double> gain;
double *gain_g0;
double *gain_g1;
double *gain_g2;
void SetPointers();
static double GetMean(const double *ptr) ;
public:
JFModuleGainCalibration();
explicit JFModuleGainCalibration(const std::string &filename);
explicit JFModuleGainCalibration(const std::vector<double>& vec);
[[nodiscard]] const std::vector<double> &GetGainCalibration() const;
void ExportG0(uint16_t *output) const;
void ExportG1(uint16_t* output) const;
void ExportG2(uint16_t* output) const;
double GetG0Mean() const;
double GetG1Mean() const;
double GetG2Mean() const;
};
// Only to use in automated tests run from the default directory
inline JFModuleGainCalibration GainCalibrationFromTestFile() {
return JFModuleGainCalibration("../../tests/test_data/gainMaps_M049.bin");
}
#endif //JUNGFRAUJOCH_JFMODULEGAINCALIBRATION_H