1

CERN の ROOT フレームワーク (必須) を使用しており、TNtuple からデータを取得してグラフ化したいと考えています。TNtuple を作成するとき、または .root ファイルに書き込んだ後で、データをグラフ化できます。一部のサポート ドキュメントでは、TTree を作成するように提案されていましたが、それはやり過ぎ/回り道のように思えました。これは、他の目的には使用しないためです (そして、TNtuple は私の他のすべての要件を満たしています)。TNtuple からデータを抽出してグラフ化する方法について、より良い提案がある人はいますか?

4

3 に答える 3

5

TNtupleはTTreeを継承しているため、TTreeのサポートドキュメントに記載されているすべてのメソッドをTNtupleで直接使用できます。これは特に、TTree :: Draw()を使用できることを意味します。これは通常、データをすばやくグラフ化するのに十分すぎるほどです。この関数はここに記載されています。

より複雑なプロットについては、イベントごとにTNtupleイベントからデータを読み取り、ROOTのお気に入りのグラフ作成ツールにフィードする必要があります。これもまた、ツリーの基本原則に従います。ROOTホームページで見つけた最良の例は、ユーザーマニュアルの「ツリーの読み取り」の段落のセクションツリーです。

于 2011-06-21T03:30:06.387 に答える
1

TNtuple のヒストグラムとプロットを作成するために使用される方法は、基本的に TTree と同じです。コード:

ntuple->Draw("var");

varNtuple に格納されている変数のヒストグラムを作成します。Ntuple の 1 つの変数を別の変数の関数としてプロットする場合は、次を使用します。

ntuple->Draw("xVar:yVar");

論理的な条件が満たされた場合にのみプロットを作成するなど、より手の込んだことを行うことができます。たとえば、が 2 より大きく0 より小さい場合var1のみのヒストグラムが必要だとします。var2var3

ntuple->Draw("var","var2 > 2 && var3 < 0");

この方法でプロットすることにより、ROOT は x 軸のビニングと範囲を自動的に設定します。これらの機能を自分で制御したい場合は、

ntuple->Draw("var >> hist(Nbins,xmin,xmax)");

これにより、histROOT で通常のヒストグラム オブジェクトとして扱うオブジェクトが作成されます。以前の投稿で述べたように、これは他のいくつかの機能やツールとともに ROOT マニュアルに記載されています。残念ながら、マニュアルは常に明確な説明を提供するとは限りません。

于 2012-07-29T19:22:21.293 に答える
0
{
  ntuple->Draw("py:px","px>py","goff");
  TGraph *gr = new TGraph(ntuple->GetSelectedRows(),ntuple->GetV2(), ntuple->GetV1());
  gr->Draw("AP");
}
于 2015-03-02T15:45:43.900 に答える