I am trying to fit a function to a TH1D histogram. I get a lot of errors, and the fit does not work:
Error: ^ Illegal operator for real number fittest.cxx:3:
Error: void type variable can not be declared
Error in <ROOT::Math::FitConfig::CreateMinimizer>: Could not create the Minuit2 minimizer
Error in <ROOT::Math::Fitter::FitFCN>: Minimizer cannot be created
I don’t understand where my code is going wrong. I’m sorry if I’m missing something really basic, I’m still kind of a beginner at C++ Root.
Double_t myfit(Double_t*x, Double_t*par)
{
Double_t fitval=(6*par[0]^2+par[1]*par[2]^2)^(1/2)*TMath::Exp(-0.5*((x[0]-par[3]-par[1]*par[4])^2/(par[0]^2+par[1]*par[2]^2)));
return fitval;
}
void fittest()
{
TCanvas *c1=new TCanvas("c1","Test Fit",100,4500);
TFile *f=new TFile("aptenergytest.root");
f.cd("APT_Photon");
TH1D *hpx=Pedestals->ProjectionX();
TF1 *func=new TF1("fit",myfit,100,4500,5);
func->SetParameters(100,100,100,100,100);
func->SetParNames("Sigma_o","Number","Sigma_sp","x_o","g_sp");
hpx->Fit("fit","S");
hpx.Draw();
c1.Print("test.png");
}