CERN の ROOT フレームワーク (必須) を使用しており、TNtuple からデータを取得してグラフ化したいと考えています。TNtuple を作成するとき、または .root ファイルに書き込んだ後で、データをグラフ化できます。一部のサポート ドキュメントでは、TTree を作成するように提案されていましたが、それはやり過ぎ/回り道のように思えました。これは、他の目的には使用しないためです (そして、TNtuple は私の他のすべての要件を満たしています)。TNtuple からデータを抽出してグラフ化する方法について、より良い提案がある人はいますか?
3 に答える
TNtupleはTTreeを継承しているため、TTreeのサポートドキュメントに記載されているすべてのメソッドをTNtupleで直接使用できます。これは特に、TTree :: Draw()を使用できることを意味します。これは通常、データをすばやくグラフ化するのに十分すぎるほどです。この関数はここに記載されています。
より複雑なプロットについては、イベントごとにTNtupleイベントからデータを読み取り、ROOTのお気に入りのグラフ作成ツールにフィードする必要があります。これもまた、ツリーの基本原則に従います。ROOTホームページで見つけた最良の例は、ユーザーマニュアルの「ツリーの読み取り」の段落のセクションツリーです。
TNtuple のヒストグラムとプロットを作成するために使用される方法は、基本的に TTree と同じです。コード:
ntuple->Draw("var");
var
Ntuple に格納されている変数のヒストグラムを作成します。Ntuple の 1 つの変数を別の変数の関数としてプロットする場合は、次を使用します。
ntuple->Draw("xVar:yVar");
論理的な条件が満たされた場合にのみプロットを作成するなど、より手の込んだことを行うことができます。たとえば、が 2 より大きく0 より小さい場合var1
のみのヒストグラムが必要だとします。var2
var3
ntuple->Draw("var","var2 > 2 && var3 < 0");
この方法でプロットすることにより、ROOT は x 軸のビニングと範囲を自動的に設定します。これらの機能を自分で制御したい場合は、
ntuple->Draw("var >> hist(Nbins,xmin,xmax)");
これにより、hist
ROOT で通常のヒストグラム オブジェクトとして扱うオブジェクトが作成されます。以前の投稿で述べたように、これは他のいくつかの機能やツールとともに ROOT マニュアルに記載されています。残念ながら、マニュアルは常に明確な説明を提供するとは限りません。
{
ntuple->Draw("py:px","px>py","goff");
TGraph *gr = new TGraph(ntuple->GetSelectedRows(),ntuple->GetV2(), ntuple->GetV1());
gr->Draw("AP");
}