void fithist() { //fit function ftotal to signal + background histgen(); TFile *f = new TFile("background.root"); background = (TH1F*)f->Get("background"); //pointer used in ftotal TH1F *result = (TH1F*)f->Get("result"); TF1 *ftot = new TF1("ftot",ftotal,0,10,4); Double_t norm = result->GetMaximum(); ftot->SetParameters(0.5*norm,5,.2,norm); ftot->SetParLimits(0,.3*norm,norm); result->Fit("ftot","b"); }
void test_TF1_FitErr2(){ gStyle->SetOptFit(1111); gStyle->SetOptStat(0); histgen(); TFile *f = new TFile("background.root"); background = (TH1F*)f->Get("background"); //pointer used in ftotal TH1F *result = (TH1F*)f->Get("result"); TF1 *ftot = new TF1("ftot",ftotal,0,10,5); Double_t norm = result->GetMaximum(); // ftot->SetParameters(0.5*norm,5,.2,norm); ftot->SetParameters(0.5*norm,6,.5,5,-0.5); ftot->SetParLimits(0,.3*norm,norm); // ftot->FixParameter(1,6); // ftot->FixParameter(2,0.5); ftot->SetParLimits(1,5.5,6.5); ftot->SetParLimits(2,0.25,1); // ftot->SetParLimits(4,-0.01,-50); result->Fit("ftot","b"); result->Fit("ftot","b"); result->Fit("ftot","b"); result->Fit("ftot"); result->Fit("ftot"); result->Fit("ftot"); TFitResult fitResult=result->Fit("ftot"); double TF1 *bgf = TF1("bgf","pol1",0,10); }