#include using namespace std; double func(double* x, double* par) { double y = par[0]*exp(-((x[0]-par[1])/par[2])*((x[0]-par[1])/par[2])) // gaus + par[3]; // flat return y; } void test4() { int a=10; cout << a << endl; TH1F pippo("pippo","il mio pippo", 100, 0, 10); // loop for (int i =0 ; i <10000 ; ++i) { // prendo un numero casual dist come gaussia media 5 e sigma 1 pippo.Fill(gRandom->Gaus(5.3,0.97)); // riempio l'isto con il numero casuale } for (int i =0 ; i <10000 ; ++i) { pippo.Fill(gRandom->Rndm()*10.); // flat [0,1) } // pippo.Fill(5.6); // pippo.Fill(2.6,0.6); TF1 f("f",func,0.,10.,4); f.SetParLimits(2,0,100); // sigma == par[2] (0,100) f.SetParameter(0,500.); f.SetParameter(1,5.); f.SetParameter(2,1.); //pippo.Fit("gaus"); pippo.Fit("f"); pippo.DrawCopy("e"); gStyle->SetOptStat(111111); gStyle->SetOptFit(111111); int num = pippo.GetEntries(); cout << "num entries " << num << endl; cout << "media " << pippo.GetMean() << endl; }