double constante(double* x, double* par) { double y = par[0]; return y; } double miaGaus(double* x, double* par) { double y = par[0]*exp(-(x[0]-par[1])*(x[0]-par[1])/(2.*par[2]*par[2])); return y; } void Fit() { TH1F histo("histo", "istogramma con gaussiana" , 100, -40.,40.); const int max=1000; const float mean=10; const float sigma=8; for (int i=0; iGaus(mean, sigma)); // histo.Fit("gaus"); // histo.DrawCopy(); TF1 mioConst("mioConst", constante, -40., 40., 1); mioConst.SetParameter(0,10.); mioConst.SetParName(0,"costante"); TF1 miaGausRoot("miaGausRoot", miaGaus, -40., 40., 3); miaGausRoot.SetParLimits(2,0.,100000.); // il parametro 0 e' compreso tra (0,10000.) // double parameter[3]={100.,10.,12.}; // mioConst.SetParameters(parameter); miaGausRoot.SetParameter(0,100.); miaGausRoot.SetParameter(1,1.); miaGausRoot.SetParameter(2,1.); //miaGausRoot.DrawCopy(); histo.Fit("miaGausRoot"); histo.DrawCopy(); // cout << "il valore ottenuto dal fit e' " << mioConst.GetParameter(0) << endl; }