{ TF1 *f1 = new TF1("f1","gaus(x)",0,10); TF1 *f2 = new TF1("f2","10.-x",0,10); f2->SetParameter(0,1); f2->Draw(); f1->SetParameter(0,2); f1->SetParameter(1,4); f1->SetParameter(2,2.5); f1->Draw(); TF1 *f3 = new TF1("f3","f1+f2",0,10); f3->Draw(); f3->SetParameter(0,3); f3->SetParameter(2,0.5); f3->Draw(); f2->Draw("same"); f1->SetParameter(0,3); f1->SetParameter(2,0.5); f1->Draw("same"); TH1F* h = new TH1F("h","h",100,0,0); //auto range for (int i=0;i<10000;i++) { h->Fill(f3->GetRandom()); } h->Draw(); TF1* f4 = new TF1("f4","[0]*TMath::Exp( -0.5* ((x-[1])/[2])*((x-[1])/[2]))+[3]-[4]*x",0,10); f4->SetParameter(2,4); TFitResultPtr r = h->Fit(f4,"S"); r->Print("V"); }