EnergySpectrumAnalyer/src/EnergyScaleDataModel.h

43 lines
1.3 KiB
C++

#ifndef ENERGYSCALEDATAMODEL_H
#define ENERGYSCALEDATAMODEL_H
#include <QString>
#include <QVariantMap>
class EnergyScaleDataModel
{
public:
EnergyScaleDataModel(const QString& filename = QString());
~EnergyScaleDataModel();
void SetDataFilename(const QString& filename);
bool LoadData();
bool SaveData();
bool IsValid();
void SetChannelEnergyScaleDataMap(const QString& channel_name, const QVariantMap& ch_energy_scale_data_map);
QVariantMap GetChannelEnergyScaleDataMap(const QString& channel_name);
void SetEnergyFitDegree(const QString& channel_name, int fit_degree);
int GetEnergyFitDegree(const QString& channel_name);
void SetEnergyFitResultCoeffs(const QString& channel_name, std::vector<double> coeffs);
std::vector<double> GetEnergyFitResultCoeffs(const QString& channel_name);
void SetFwhmFitResultCoeffs(const QString& channel_name, std::vector<double> coeffs);
std::vector<double> GetFwhmFitResultCoeffs(const QString& channel_name);
void SetFitData(const QString& channel_name, const std::vector<std::vector<double> >& fit_data);
std::vector<std::vector<double> > GetFitData(const QString& channel_name);
private:
void cleanEmptyItem();
private:
QString _data_filename;
QVariantMap _energy_scale_data_map;
};
#endif // ENERGYSCALEDATAMODEL_H