#include "Math/IParamFunction.h" #include #include #include "Fit/Chi2FCN.h" class MyModel: public ROOT::Fit::Chi2Function::IModelFunction{ public: std::vector* fParameters; MyModel(){ int npar = 2; fParameters = new std::vector(npar); // std::cout << "npar " << NPar() << std::endl; }; virtual ~MyModel(){ delete fParameters;}; virtual MyModel * Clone() const{ return new MyModel();}; virtual unsigned int NDim() const{ return 1;}; virtual unsigned int NPar() const{ return fParameters->size();}; virtual const double* Parameters() const{ return &fParameters->front();}; virtual void SetParameters(const double* p){ for(unsigned int i = 0; i < NPar();i++){ (*fParameters)[i] = p[i]; } }; private: virtual double DoEvalPar(const double* x, const double* p) const{ // just a linear function return p[0]+p[1]*x[0]; }; };