2009/07/31

Ntuple

ROOTで計算させた結果を描画するとき、これまではいちいちヒストグラムを用意していた。
しかしinteractiveにカットや条件を変更し、その結果が見たいときとかには、いちいちそんなことはしていられない。
そこでNtupleを使う。

TNtuple *n1 = new TNtuple("n1", "", "x:y:z:w");

とかすると、n1というNtupleが4つの変数で作られる。
さらにこれらの変数に、For文とかWhile分とかで、

n1->Fill(x, y, z, w);

とかで値を詰めるだけでOK。
あとは、

n1->Draw("x:y", "w>0");

とかすると、wがゼロより大の値をとるときのxとyの分布図を出せる。
これで作ったヒストグラムも、当然通常のヒストグラムとして扱える。

また.ls();とか打つと、n1というNtupleが出来ているのがわかる。
たとえばマクロを書いて、n1というNtupleを作ったとして、マクロを実行した後もn1は消えないでいる。
そこで上の条件を変えて描画させたりも出来る。
出来ているNtupleについての情報は、

n1->Print();

とか打つと見ることが出来る。

0 件のコメント: