Double_t shift_Poiss(Double_t *x, Double_t *par)
{
   Double_t var = x[0]/par[2] - par[1];
   return par[0] * TMath::Exp(var * TMath::Log(par[3])-par[3])/TMath::Gamma(var+1.0);
}

void test_fit_0()
{
   TFile *f = new TFile("Test_Fit.root", "READ");
   TCanvas *c1 = new TCanvas("c1","Multiplicity distribution");
   TH1F *h1f_ntrk_S = (TH1F*)f->Get("h1f_ntrk_S");

// Creates a ROOT function TF1 to fit
   TF1 *fit1 = new TF1("fit1",shift_Poiss,6,60,4);

// Sets initial values, limits and parameter names
   fit1->SetParameters(300000,0,1.5,5);

   fit1->SetParLimits(0,1,100000000);
   fit1->SetParLimits(1,0,100);
   fit1->SetParLimits(2,0.1,100);
   fit1->SetParLimits(3,1,100);

   fit1->SetParNames("Ampl","Shift","Scale","Mean");

// Fit histogram in range defined by function
   h1f_ntrk_S->Fit("fit1","r");
}


