Double_t background1(Double_t *x, Double_t *par) { return par[0] + par[1]*x[0] ; } Double_t GaussianPeak(Double_t *x, Double_t *par) { Double_t arg = 0; if (par[2]!=0) arg = (x[0] - par[2])/par[3]; return par[4]*TMath::Exp(-0.5*arg*arg); } Double_t background2(Double_t *x, Double_t *par) { return par[5] + par[6]*x[0] ; } // Sum of background and peak function Double_t fitFunction(Double_t *x, Double_t *par) { return background1(x,par) + GaussianPeak(x,&par[2]) + background2(x,&par[5]); } void signal_back() { TFile *f = TFile::Open("h_deltavz_tdiff_12736.root","read"); TH1F *his = (TH1F*) f->Get("delvz_tdiff"); his ->GetXaxis()-> SetRangeUser(-110,110); TF1 *fitFcn = new TF1("fitFcn",fitFunction,-110,110,7); his->Fit("fitFcn"); }