// tutorial illustrating the use of TMath::GammaDist and TMath::LogNormal
void mathGammaNormal(){
  TCanvas *myc = new TCanvas("c1","gamma and lognormal",10,10,600,800);
  myc->Divide(1,2);
  TPad *pad1 = myc->cd(1);
  pad1->SetLogy();
  pad1->SetGrid();

  //TMath::GammaDist
  TF1 *fgamma = new TF1("fgamma", "TMath::GammaDist(x, [0], [1], [2])", 0, 10);
  fgamma->SetParameters(0.5, 0, 1);
  TF1 *f1 = fgamma->DrawCopy();
  f1->SetMinimum(1e-5);
  f1->SetLineColor(kRed);
  fgamma->SetParameters(1, 0, 1);
  TF1 *f2 = fgamma->DrawCopy("same");
  f2->SetLineColor(kGreen);
  fgamma->SetParameters(2, 0, 1);
  TF1 *f3 = fgamma->DrawCopy("same");
  f3->SetLineColor(kBlue);
  fgamma->SetParameters(5, 0, 1);
  TF1 *f4 = fgamma->DrawCopy("same");
  f4->SetLineColor(kMagenta);
  TLegend *legend1 = new TLegend(.2,.15,.5,.4);
  legend1->AddEntry(f1,"gamma = 0.5 mu = 0  beta = 1","l");
  legend1->AddEntry(f2,"gamma = 1   mu = 0  beta = 1","l");
  legend1->AddEntry(f3,"gamma = 2   mu = 0  beta = 1","l");
  legend1->AddEntry(f4,"gamma = 5   mu = 0  beta = 1","l");
  legend1->Draw();

  //TMath::LogNormal
  TPad *pad2 = myc->cd(2);
  pad2->SetLogy();
  pad2->SetGrid();
  TF1 *flog = new TF1("flog", "TMath::LogNormal(x, [0], [1], [2])", 0, 5);
  flog->SetParameters(0.5, 0, 1);
  TF1 *g1 = flog->DrawCopy();
  g1->SetLineColor(kRed);
  flog->SetParameters(1, 0, 1);
  TF1 *g2 = flog->DrawCopy("same");
  g2->SetLineColor(kGreen);
  flog->SetParameters(2, 0, 1);
  TF1 *g3 = flog->DrawCopy("same");
  g3->SetLineColor(kBlue);
  flog->SetParameters(5, 0, 1);
  TF1 *g4 = flog->DrawCopy("same");
  g4->SetLineColor(kMagenta);
  TLegend *legend2 = new TLegend(.2,.15,.5,.4);
  legend2->AddEntry(g1,"sigma = 0.5 theta = 0  m = 1","l");
  legend2->AddEntry(g2,"sigma = 1   theta = 0  m = 1","l");
  legend2->AddEntry(g3,"sigma = 2   theta = 0  m = 1","l");
  legend2->AddEntry(g4,"sigma = 5   theta = 0  m = 1","l");
  legend2->Draw();
}

