まずは、ヒストグラムの箱を作成する。
どの型でも扱いは同じなので、
型の1次元ヒストグラムを例にとれば、
TH1F *h1 = new TH1F("name","title",60,-10.,20.);のような感じである。 ここで、
の場合と同様、
TH1F h1("name","title",60,-10.,20.);のように作っても良い。 ただし、プロット関連の ROOT のクラスのメンバー関数は その戻り値として新たにできたプロットの ポインターを返すことが多いので、 混乱を避けるため、 著者の場合、自分で作る際もポインターを使うことにしている。
さて、箱ができたのでこのヒストグラムにデータをフィルしてみよう。
のところにデータをフィルするには
Double_t x = 5.;として、
h1->Fill(x);で良いわけだが、 たくさんフィルするのに手ではやってられない。 たくさんデータをフィルしたければ、 「猿にも」にあるようにファイルから読み込んだりすれば 良いわけだが、 ここでは、練習なので、正規分布乱数を使ってフィルしてみる。
gRandom->SetSeed(); Int_t i; for (i=0; i<10000; i++) h1->Fill(gRandom->Gaus(5.,3.));この例では、乱数のシードをセットした後、 中心
ヒストグラムは重みつきでフィルすることもできる。
Double_t w = 0.5; h1->Fill(x,w);とかすると、ビンは
さて、 フィルの結果を描画するには
h1->Draw();と打つ。
味もそっけもないヒストグラムである。