#include "TH1.h" #include "TF1.h" #include "TMath.h" #include "TRandom.h" Double_t gaus1(Double_t *x, Double_t *par){ return par[0]*TMath::Gaus(x[0],par[1],par[2]); } Double_t gaus2(Double_t *x, Double_t *par){ return par[0]*TMath::Gaus(x[0],par[1],par[2]); } int two_Gaussians(){ ////////////////Example Distribution distribution1 = new TH1F("Distribution1","Distribution1",200,0,50); TRandom* random1 = new TRandom; for (Int_t i = 0; i < 100000; i++) { distribution1->Fill(random1->Gaus(40,3)); distribution1->Fill(random1->Gaus(30,3)); } ////////////// Fit Functions TF1 *f1 = new TF1("myfunc",gaus1,0,35,3); TF1 *f2 = new TF1("myfunc2",gaus2,35,50,3); f1->SetParameters(3000,25,8); f2->SetParameters(3000,40,6); c1 = new TCanvas("c1","Uniform Distributions",800,600); distribution1->Draw(""); distribution1->Fit(f1,"RQ"); distribution1->Fit(f2,"RQ"); f1->Draw("same"); return 0; }