#include "Fit/BinData.h" #include "Fit/UnBinData.h" #include "Math/WrappedTF1.h" #include "Math/WrappedMultiTF1.h" #include "Math/Minimizer.h" #include "Fit/Fitter.h" #include "Fit/Chi2FCN.h" #include "TMath.h" #include "Math/Functor.h" void forcheck() { TH1D* h_data = new TH1D("h_data","",31,0,31); TF1* f_fit = new TF1("f_fit","[0]+[1]*x+[2]*x*x",0,31); for (int i = 0; i < 20;i++) { for (int j = 0; j < 31;j++) { h_data->SetBinContent(j+1,j); } ROOT::Math::WrappedMultiTF1 fitFunction(*f_fit, 3 ); //f_fit is a TF1 ROOT::Fit::BinData data(31,1); ROOT::Fit::FillData(data,h_data); //h_data is a histogram of data filled earlier ROOT::Fit::Chi2Function *EPChi2 = new ROOT::Fit::Chi2Function(data, fitFunction); ROOT::Fit::Fitter fitter; double params[] = {0,2,0}; fitter.Config().MinimizerOptions().SetMinimizerType("GSLMultiFit"); fitter.Config().SetParamsSettings(3,params); fitter.FitFCN(*EPChi2,0,data.Size(),true); delete EPChi2; } }