Logo ROOT   6.12/07
Reference Guide
mathLaplace.C
Go to the documentation of this file.
1 /// \file
2 /// \ingroup tutorial_math
3 /// \notebook
4 /// Test the TMath::LaplaceDist and TMath::LaplaceDistI functions
5 ///
6 /// \macro_image
7 /// \macro_code
8 ///
9 /// \author Anna Kreshuk
10 
11 #include "TMath.h"
12 #include "TCanvas.h"
13 #include "TF1.h"
14 #include "TLegend.h"
15 
16 void mathLaplace(){
17  TCanvas *c1=new TCanvas("c1", "TMath::LaplaceDist",600,800);
18  c1->Divide(1, 2);
19  TVirtualPad *pad1 = c1->cd(1);
20  pad1->SetGrid();
21  TF1 *flaplace = new TF1("flaplace", "TMath::LaplaceDist(x, [0], [1])", -10, 10);
22  flaplace->SetParameters(0, 1);
23  TF1 *f1 = flaplace->DrawCopy();
24  f1->SetLineColor(kRed);
25  f1->SetLineWidth(1);
26  flaplace->SetParameters(0, 2);
27  TF1 *f2 = flaplace->DrawCopy("same");
28  f2->SetLineColor(kGreen);
29  f2->SetLineWidth(1);
30  flaplace->SetParameters(2, 1);
31  TF1 *f3 = flaplace->DrawCopy("same");
32  f3->SetLineColor(kBlue);
33  f3->SetLineWidth(1);
34  flaplace->SetParameters(2, 2);
35  TF1 *f4 = flaplace->DrawCopy("same");
37  f4->SetLineWidth(1);
38  TLegend *legend1 = new TLegend(.7,.7,.9,.9);
39  legend1->AddEntry(f1,"alpha=0 beta=1","l");
40  legend1->AddEntry(f2,"alpha=0 beta=2","l");
41  legend1->AddEntry(f3,"alpha=2 beta=1","l");
42  legend1->AddEntry(f4,"alpha=2 beta=2","l");
43  legend1->Draw();
44 
45  TVirtualPad *pad2 = c1->cd(2);
46  pad2->SetGrid();
47  TF1 *flaplacei=new TF1("flaplacei", "TMath::LaplaceDistI(x, [0], [1])", -10, 10);
48  flaplacei->SetParameters(0, 1);
49  TF1 *g1=flaplacei->DrawCopy();
50  g1->SetLineColor(kRed);
51  g1->SetLineWidth(1);
52  flaplacei->SetParameters(0, 2);
53  TF1 *g2=flaplacei->DrawCopy("same");
54  g2->SetLineColor(kGreen);
55  g2->SetLineWidth(1);
56  flaplacei->SetParameters(2, 1);
57  TF1 *g3=flaplacei->DrawCopy("same");
58  g3->SetLineColor(kBlue);
59  g3->SetLineWidth(1);
60  flaplacei->SetParameters(2, 2);
61  TF1 *g4=flaplacei->DrawCopy("same");
63  g4->SetLineWidth(1);
64 
65  TLegend *legend2 = new TLegend(.7,.15,0.9,.35);
66  legend2->AddEntry(f1,"alpha=0 beta=1","l");
67  legend2->AddEntry(f2,"alpha=0 beta=2","l");
68  legend2->AddEntry(f3,"alpha=2 beta=1","l");
69  legend2->AddEntry(f4,"alpha=2 beta=2","l");
70  legend2->Draw();
71  c1->cd();
72 }
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
Definition: TAttLine.h:43
virtual void SetParameters(const Double_t *params)
Definition: TF1.h:628
This class displays a legend box (TPaveText) containing several legend entries.
Definition: TLegend.h:23
virtual TF1 * DrawCopy(Option_t *option="") const
Draw a copy of this function with its current attributes.
Definition: TF1.cxx:1252
return c1
Definition: legend1.C:41
Definition: Rtypes.h:59
virtual void Draw(Option_t *option="")
Draw this legend with its current attributes.
Definition: TLegend.cxx:452
TVirtualPad * cd(Int_t subpadnumber=0)
Set current canvas & pad.
Definition: TCanvas.cxx:688
Definition: Rtypes.h:59
TVirtualPad is an abstract base class for the Pad and Canvas classes.
Definition: TVirtualPad.h:49
virtual void SetLineColor(Color_t lcolor)
Set the line color.
Definition: TAttLine.h:40
The Canvas class.
Definition: TCanvas.h:31
TLegendEntry * AddEntry(const TObject *obj, const char *label="", Option_t *option="lpf")
Add a new entry to this legend.
Definition: TLegend.cxx:359
virtual void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0)
Automatic pad generation by division.
Definition: TPad.cxx:1153
1-Dim function class
Definition: TF1.h:211
TF1 * f1
Definition: legend1.C:11
Definition: Rtypes.h:59
virtual void SetGrid(Int_t valuex=1, Int_t valuey=1)=0