積分値を計算したい(TH1::Integral

1#include <TH1D.h>
2
3TH1D *h = new TH1D("h", "Data", 100, 0, 10);
4// ...データを入力...
5
6Double_t integral = h->Integral();
7printf("Integral: %f\n", integral);

TH1::Integralメソッドで、ヒストグラムのビン内容の合計(積分値)を計算できます。

1from ROOT import TH1D
2
3h = TH1D("h", "Data", 100, 0, 10)
4# ...データを入力...
5
6integral = h.Integral()
7print(f"Integral: {integral}")

メソッドのシグネチャ

1Double_t Integral(
2    Int_t bin1 = 1,
3    Int_t bin2 = 1,
4    Option_t* option = ""
5);

引数と戻り値

引数:

  • bin1 - 開始ビン番号(デフォルト値は1)

  • bin2 - 終了ビン番号(デフォルト値は−1、最後のビンまで)

  • option - オプション文字列(通常は空)

戻り値:

  • 指定されたビン範囲の内容の合計(Double_t型)

全体の積分値を計算したい(Integral

 1#include <TH1D.h>
 2
 3TH1D *h = new TH1D("h", "Distribution", 100, 0, 10);
 4
 5// データを入力
 6h->Fill(2.5);
 7h->Fill(5.0);
 8h->Fill(7.5);
 9
10// 全体の積分値を計算
11Double_t integral = h->Integral();
12
13printf("Total integral: %.1f\n", integral);

Integral()メソッドで、ヒストグラムのすべてのビン内容の合計を計算できます。 これはヒストグラムに入力されたイベント数の合計と同じです。

ビン範囲を指定して積分値を計算したい(Integral

 1#include <TH1D.h>
 2
 3TH1D *h = new TH1D("h", "Energy", 100, 0, 10);
 4
 5// データを入力
 6for (Int_t i = 0; i < 1000; i++) {
 7    h->Fill(gRandom->Uniform(0, 10));
 8}
 9
10// 全体の積分値
11Double_t total_integral = h->Integral();
12
13// ビン20からビン50までの積分値
14Double_t partial_integral = h->Integral(20, 50);
15
16printf("Total: %.1f, Partial (bin 20-50): %.1f\n", total_integral, partial_integral);

Integral(bin1, bin2)メソッドで、指定されたビン範囲の積分値を計算できます。 これはヒストグラムの特定の領域だけのイベント数を数える場合に便利です。