mathLaplace.C: Test the TMath::LaplaceDist and TMath::LaplaceDistI functions
// Test the TMath::LaplaceDist and TMath::LaplaceDistI functions
// author: Anna Kreshuk
#include "TMath.h"
#include "TCanvas.h"
#include "TF1.h"
#include "TLegend.h"
void mathLaplace(){
TCanvas *c1=new TCanvas("c1", "TMath::LaplaceDist",600,800);
c1->Divide(1, 2);
TVirtualPad *pad1 = c1->cd(1);
pad1->SetGrid();
TF1 *flaplace = new TF1("flaplace", "TMath::LaplaceDist(x, [0], [1])", -10, 10);
flaplace->SetParameters(0, 1);
TF1 *f1 = flaplace->DrawCopy();
f1->SetLineColor(kRed);
f1->SetLineWidth(1);
flaplace->SetParameters(0, 2);
TF1 *f2 = flaplace->DrawCopy("same");
f2->SetLineColor(kGreen);
f2->SetLineWidth(1);
flaplace->SetParameters(2, 1);
TF1 *f3 = flaplace->DrawCopy("same");
f3->SetLineColor(kBlue);
f3->SetLineWidth(1);
flaplace->SetParameters(2, 2);
TF1 *f4 = flaplace->DrawCopy("same");
f4->SetLineColor(kMagenta);
f4->SetLineWidth(1);
TLegend *legend1 = new TLegend(.7,.7,.9,.9);
legend1->AddEntry(f1,"alpha=0 beta=1","l");
legend1->AddEntry(f2,"alpha=0 beta=2","l");
legend1->AddEntry(f3,"alpha=2 beta=1","l");
legend1->AddEntry(f4,"alpha=2 beta=2","l");
legend1->Draw();
TVirtualPad *pad2 = c1->cd(2);
pad2->SetGrid();
TF1 *flaplacei=new TF1("flaplacei", "TMath::LaplaceDistI(x, [0], [1])", -10, 10);
flaplacei->SetParameters(0, 1);
TF1 *g1=flaplacei->DrawCopy();
g1->SetLineColor(kRed);
g1->SetLineWidth(1);
flaplacei->SetParameters(0, 2);
TF1 *g2=flaplacei->DrawCopy("same");
g2->SetLineColor(kGreen);
g2->SetLineWidth(1);
flaplacei->SetParameters(2, 1);
TF1 *g3=flaplacei->DrawCopy("same");
g3->SetLineColor(kBlue);
g3->SetLineWidth(1);
flaplacei->SetParameters(2, 2);
TF1 *g4=flaplacei->DrawCopy("same");
g4->SetLineColor(kMagenta);
g4->SetLineWidth(1);
TLegend *legend2 = new TLegend(.7,.15,0.9,.35);
legend2->AddEntry(f1,"alpha=0 beta=1","l");
legend2->AddEntry(f2,"alpha=0 beta=2","l");
legend2->AddEntry(f3,"alpha=2 beta=1","l");
legend2->AddEntry(f4,"alpha=2 beta=2","l");
legend2->Draw();
c1->cd();
}