2011-06-20 7 views
1

CERNのROOTフレームワーク(必須)を使用しています.TNtupleからデータを取り出しグラフ化したいと考えています。 TNtupleを作成するとき、または.rootファイルに書き込んだ後にデータをグラフ化することができます。サポート文書の中には、TTreeを作成することを示唆しているものもありましたが、それは他のもののために使用していないので余計な/ラウンドアバウトのように思えました(TNTupleは私の他のすべての要件を満たしています)。誰かがTNtupleからデータを抽出しグラフ化する方法についてより良い提案をしていますか?CERN ROOT TNtupleからのデータの抽出

答えて

5

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

もっと精巧なプロットの場合は、イベントによってTNtupleイベントからデータを読み込んで、ROOTのお気に入りのグラフ作成ツールにフィードする必要があります。これは、ツリーからの基本原則に再び従います。 ROOTホームページで私が見つけた最良の例は、 "Reading the Tree"の​​です。

1

TNtuplesのヒストグラムとプロットを作成する方法は、基本的にTTreesと同じです。コード:

ntuple->Draw("var"); 

はNtupleに格納された変数varのヒストグラムを作成します。あなたが別の関数としてNtupleで一つの変数をプロットしたい場合は、

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

を使用しますが、このような論理条件が満たされた場合にのみ、プロットの作成などの手の込んだことを行うことができます。 var2が2より大きく、var3は、このようにプロットすることにより0未満

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

ある場合にのみたとえば、あなたがvar1のヒストグラムをしたいと仮定して、ROOTは自動的にx軸のためのビニングと範囲を設定します。あなたはこれらの機能を自分でコントロールしたい場合は、

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

を使用これはROOTでの通常のヒストグラムオブジェクトとして扱うオブジェクトhistを作成します。前回の記事で述べたように、これはROOTマニュアルにいくつかの他の機能とツールとともに書かれています。残念ながら、このマニュアルでは必ずしも明確な説明がない場合があります。

0
{ 
    ntuple->Draw("py:px","px>py","goff"); 
    TGraph *gr = new TGraph(ntuple->GetSelectedRows(),ntuple->GetV2(), ntuple->GetV1()); 
    gr->Draw("AP"); 
} 
関連する問題