-
Notifications
You must be signed in to change notification settings - Fork 0
/
oneDhisto.C
78 lines (78 loc) · 6.99 KB
/
oneDhisto.C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
void oneDhisto()
{
// To run this macro just run on root terminal
// .L oneDHisto.C
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Author: Muhammad Farooq Email: 2714befarooq@gmail.com
// muhammad.farooq@cern.ch
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// https://root.cern.ch/root-user-guides-and-manuals //
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// https://root.cern.ch/doc/master/classTCanvas.html //
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// TCanvas(name,title,width,height) //
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Define a Canvas //
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
TCanvas* c=new TCanvas("c","Function",700,700);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// https://root.cern.ch/root/html606/classTH1D.html //
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// TH1F(name,title,no.ofbins,xlow-bin,xup-bin) //
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Define Histogram in 1D //
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
TH1F*h1=new TH1F("histo","My first Histogram",100,-10,10);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Fill Histogram with gaussian distribution with default mean=0 and sigma=1 with 10000 entries //
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
h1->FillRandom("gaus",10000);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Cosmetics for Drawing functions //
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// https://root.cern/root/html606/classTAttLine.html //
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
h1->SetLineColor(kBlue);//line color for the 2nd function
h1->SetLineStyle(1);//line style for the 2nd function
h1->SetFillColor(kRed);//this will fill the hsitogram with Red-Color
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Axes title //
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
h1->GetXaxis()->SetTitle("1-D Histo");//giving title of x-axis
h1->GetXaxis()->CenterTitle();//this will centered the title along x-axis
h1->GetYaxis()->SetTitle("Number of Entries");//giving title of y-axis
h1->GetYaxis()->CenterTitle();//this will centered the title along y-axis
gStyle->SetOptStat(1111111);//statistics box
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Drawing a function //
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
h1->Draw();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// https://root.cern.ch/doc/master/classTLegend.html //
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// TLegend(x1,y1,x2,y2) //
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
TLegend* legend = new TLegend(0.2,0.7,0.43,0.9);//Dimentions of Legend according to pad
legend->SetHeader("1-D Histogram","C"); // option "C" allows to center the header
legend->AddEntry(h1,"Histogram filled with random numbers","f");//f means box
legend->Draw();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// https://root.cern.ch/doc/master/classTLatex.html //
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Define TLatex //
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
TLatex latex;
latex.SetTextSize(0.025);//set the textsize
latex.SetTextAlign(13); //align at top
latex.DrawLatex(-6,600,"ROOT");
latex.DrawLatex(-6,500,"CERN");
c->Draw();//draw canvas
c->SaveAs("oneDHisto.png");//To save your output in required your desires
}