Double_t mydgauss(Double_t *x, Double_t *par) { if (par[2] != 0 && par[3] != 0) { Double_t arg1 =(x[0]-par[1])/par[2]; Double_t arg2 =(x[0]-par[1])/par[3]; Double_t r1 = TMath::Exp(-arg1*arg1); Double_t r2 = TMath::Exp(-arg2*arg2); return par[0]*(r1+r2); } } void doufit() { float x[16]={2.5,2.59,2.53,2.56,2.62,2.65,2.47,2.44,2.41,2.38,2.35,2.32,2.23,2.17,2.11,1.99}; float y[16]={7.51e-9,3.81e-10,4.47e-9,3.12e-9,4.91e-11,7.62e-12,3.25e-8,4.19e-8,3.28e-8,2.89e-8,2.97e-8,2.19e-8,1.22e-8,4.83e-9,1.36e-9,1.9e-10}; TGraph *g=new TGraph(16,x,y); TF1 *gg=new TF1("gg","gaus",2.3,2.7); g->Fit("gg"); TF1 *f1=new TF1("f1",mydgauss,1.9,2.7,4); double par[4]; par[0]=gg->GetParameter(0); par[1]=gg->GetParameter(1); par[2]=10*gg->GetParameter(2); par[3]=0.1*gg->GetParameter(2); f1->SetParameters(par); g->Fit(f1); g->Draw("A*"); }