File indexing completed on 2026-04-07 08:08:30
0001
0002 #ifndef FITFUNCTIONS_H
0003 #define FITFUNCTIONS_H
0004 #include <vector>
0005 #include <string>
0006 #include <map>
0007
0008 namespace FitFunctions {
0009
0010
0011 typedef double (*modelFunction)(const double*, const double*);
0012
0013
0014 struct modelStructure {
0015 modelFunction fun;
0016 std::string name;
0017 int nParams;
0018 std::vector<std::string> paramNames;
0019 };
0020
0021
0022 enum class FitModel { GAUSS, POLY2, POLY3, POLY5, ARGUSROOFIT, ARGUSMODIFIED, CHAT1, CHAT2, CHAT3 };
0023
0024
0025 const modelStructure& GetModel(FitModel model);
0026
0027
0028 double gauss(const double* x, const double* par);
0029 double poly2(const double* x, const double* par);
0030 double poly3(const double* x, const double* par);
0031 double poly5(const double* x, const double* par);
0032 double argusRoofit(const double* x, const double* par);
0033 double argusModified(const double* x, const double* par);
0034 double chat1(const double* x, const double* par);
0035 double chat2(const double* x, const double* par);
0036 double chat3(const double* x, const double* par);
0037
0038
0039 extern const std::map<FitModel, modelStructure> models;
0040 };
0041
0042 #endif