00001
00002
00003
00004 #ifndef FITYK__GUESS__H__
00005 #define FITYK__GUESS__H__
00006
00007 #include <vector>
00008 #include <string>
00009 #include <boost/array.hpp>
00010 #include "common.h"
00011
00012 class DataAndModel;
00013 class Tplate;
00014 class Settings;
00015
00016
00017
00018 class Guess
00019 {
00020 public:
00021 static const boost::array<std::string, 3> linear_traits;
00022 static const boost::array<std::string, 4> peak_traits;
00023
00024 Guess(Settings const *settings);
00025
00026
00027
00028
00029
00030 void initialize(const DataAndModel* dm, int lb, int rb, int ignore_idx);
00031
00032
00033 boost::array<double,3> estimate_linear_parameters();
00034
00035 boost::array<double,4> estimate_peak_parameters();
00036
00037 private:
00038 Settings const* settings_;
00039 std::vector<realt> xx_, yy_, sigma_;
00040
00041 double find_hwhm(int pos, double *area);
00042 };
00043
00044 #endif
00045