// Gausian background function
Double_t background(Double_t *x, Double_t *par) {
   return par[0] + par[1]*x[0] + par[2]*x[0]*x[0];
}


// Lorenzian Peak function
Double_t lorentzianPeak(Double_t *x, Double_t *par) {
  return  (0.5*par[0]*par[1]/TMath::Pi()) / 
          TMath::Max( 1.e-10,
                      (x[0]-par[2])*(x[0]-par[2]) + .25*par[1]*par[1]
                    );
}

// Sum of background and peak function
Double_t fitFunction(Double_t *x, Double_t *par) {
  return background(x,par) + lorentzianPeak(x,&par[3]);
}
