#ifndef ENERGYSCALEDATAMODEL_H #define ENERGYSCALEDATAMODEL_H #include #include 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 coeffs); std::vector GetEnergyFitResultCoeffs(const QString& channel_name); void SetFwhmFitResultCoeffs(const QString& channel_name, std::vector coeffs); std::vector GetFwhmFitResultCoeffs(const QString& channel_name); void SetFitData(const QString& channel_name, const std::vector >& fit_data); std::vector > GetFitData(const QString& channel_name); private: void cleanEmptyItem(); private: QString _data_filename; QVariantMap _energy_scale_data_map; }; #endif // ENERGYSCALEDATAMODEL_H