Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
hist009_TH1_normalize.C File Reference

Detailed Description

View in nbviewer Open in SWAN
Normalizing a Histogram.

Image produced by .x NormalizeHistogram.C Two different methods of normalizing histograms are shown, each with the original histogram. next to the normalized one. SUÁc␅

void hist009_TH1_normalize()
{
const std::array<double, 6> binsx{0, 5, 10, 20, 50, 100};
TH1D *orig = new TH1D("orig", "Original histogram before normalization", binsx.size() - 1, binsx.data());
gStyle->SetTitleFontSize(0.06);
// Filling histogram with random entries
TRandom2 rand;
for (int i = 0; i < 100000; ++i) {
double r = rand.Rndm() * 100;
orig->Fill(r);
}
TH1D *norm = static_cast<TH1D *>(orig->Clone("norm"));
norm->SetTitle("Normalized Histogram");
// Normalizing the Histogram by scaling by 1 / the integral and taking width into account
norm->Scale(1. / norm->Integral(), "width");
// Drawing everything
TCanvas *c1 = new TCanvas("c1", "Histogram Normalization", 700, 900);
c1->Divide(1, 2);
c1->cd(1);
orig->Draw();
c1->cd(2);
norm->Draw();
}
ROOT::R::TRInterface & r
Definition Object.C:4
externTStyle * gStyle
Definition TStyle.h:442
The Canvas class.
Definition TCanvas.h:23
1-D histogram with a double per channel (see TH1 documentation)
Definition TH1.h:926
void SetTitle(const char *title) override
Change/set the title.
Definition TH1.cxx:6836
virtual Int_t Fill(Double_t x)
Increment bin with abscissa X by 1.
Definition TH1.cxx:3393
void Draw(Option_t *option="") override
Draw this histogram with options.
Definition TH1.cxx:3097
virtual Double_t Integral(Option_t *option="") const
Return integral of bin contents.
Definition TH1.cxx:8074
virtual void Scale(Double_t c1=1, Option_t *option="")
Multiply this histogram by a constant c1.
Definition TH1.cxx:6719
TObject * Clone(const char *newname="") const override
Make a complete copy of the underlying object.
Definition TH1.cxx:2786
Random number generator class based on the maximally equidistributed combined Tausworthe generator by...
Definition TRandom2.h:27
Double_t Rndm() override
TausWorth generator from L'Ecuyer, uses as seed 3x32bits integers Use a mask of 0xffffffffUL to make ...
Definition TRandom2.cxx:54
return c1
Definition legend1.C:41
Date
November 2024
Author
Advait Dhingra

Definition in file hist009_TH1_normalize.C.