正規化したい(TH1::Scale)
1Double_t integral = h->Integral();
2h->Scale(1.0 / integral); // 積分値が1になるように正規化
TH1::Scaleメソッドで、ヒストグラムをスケール(拡大・縮小)できます。
TH1::Integralメソッドと組み合わせることで、ヒストグラムを正規化できます。
1from ROOT import TH1D
2
3h = TH1D("h", "Data", 100, 0, 10)
4# ...データを入力...
5
6integral = h.Integral()
7h.Scale(1.0 / integral) # 積分値が1になるように正規化
複数のヒストグラムを比較したい(TH1::Scale)
1#include <TH1D.h>
2
3TH1D *h1 = new TH1D("h1", "Sample 1", 100, 0, 10);
4TH1D *h2 = new TH1D("h2", "Sample 2", 100, 0, 10);
5
6// データを入力
7for (Int_t i = 0; i < 1000; i++) {
8 h1->Fill(gRandom->Gaus(5, 1));
9 h2->Fill(gRandom->Gaus(6, 1.5));
10}
11
12// 両方のヒストグラムを正規化
13Double_t integral1 = h1->Integral();
14Double_t integral2 = h2->Integral();
15
16h1->Scale(1.0 / integral1);
17h2->Scale(1.0 / integral2);
18
19printf("h1 integral: %.6f, h2 integral: %.6f\n", h1->Integral(), h2->Integral());
複数のヒストグラムを比較する場合、イベント数が異なる場合でも、それぞれ個別に正規化することで、 公平な比較ができます。