void fit1() { TCanvas *c1; TFile fData("RGAdata3.root"); //data TH1D* hist; fData.GetObject("RGAdata",hist); hist->SetDirectory(0); hist->Draw("hist"); TFile fN2("Nitrogen1.root"); //Nitrogen TH1D* histN2; fN2.GetObject("Nitrogen",histN2); histN2->SetDirectory(0); // histN2->Draw(); TFile fH2O("Water1.root"); //Water TH1D* histH2O; fH2O.GetObject("Water",histH2O); histH2O->SetDirectory(0); // histH2O->Draw(); TFile fCO2("Carbon-dioxide1.root"); //Carbon-dioxide TH1D* histCO2; fCO2.GetObject("Carbon-dioxide",histCO2); histCO2->SetDirectory(0); // histCO2->Draw(); TFile fO2("Oxygen1.root"); //Oxygen TH1D* histO2; fO2.GetObject("Oxygen",histO2); histO2->SetDirectory(0); // histO2->Draw(); TFile fAr("Argon1.root"); //Argon TH1D* histAr; fAr.GetObject("Argon",histAr); histAr->SetDirectory(0); // histAr->Draw(); // Fraction fitter Good working (not fit shown only) TObjArray *mc = new TObjArray(5); mc->Add(histN2); mc->Add(histH2O); mc->Add(histCO2); mc->Add(histO2); mc->Add(histAr); TFractionFitter* fit = new TFractionFitter(hist,mc); fit->Constrain(0,0.0,1.0); fit->Constrain(1,0.0,1.0); fit->Constrain(2,0.0,1.0); fit->Constrain(3,0.0,1.0); fit->Constrain(4,0.0,1.0); fit->SetRangeX(1,45); Int_t status = fit->Fit(); std::cout<<"fit status"<< status << std::endl; if (status == 0) { TH1F* result = (TH1F*) fit->GetPlot(); hist->Draw("PE"); // result->Draw("hist"); } }