2017-07-01 8 views
0

私はROOTファイルを持っています。私はツリーを読んで、その "branch_name_1"という特定のブランチの中のデータを選択することができます。今、別のブランチ上の特定の条件でこのブランチ上のデータを選択したいと思います。私に例を挙げてみましょう。私は "branch_name_2"の値が10より大きいという条件で "branch_name_1"のすべてのエントリを欲しいです。どうすればいいですか?ROOT条件分岐選択

EDIT:私は実際には「ツリー」という名前のツリーと2つのブランチ「b1」と「b2」を持っています。象徴的に、私は "b1"のヒストグラムの標準偏差を "b2"の異なる値に対して求めたい。たとえば、「b1> 1」、「b1> 2」などとなります。

+0

は、どのように枝にアクセスしようとしていますか?明確な例がないと推測するのは難しいです。 'TTree :: Draw'を使っているなら、' TCut'を引数として指定できます。[doc](https://root.cern.ch/doc/master/classTTree.html)を見てください。ツリーのエントリをループしている場合は、おそらく[TEventList](http://root.cern.ch/root/html/TEventList.html) – user2148414

+0

@ user2148414私の質問を編集しました。見てみてください – Kiarash

答えて

0

これはとにかくあなたが求めているものですが、100%わからない:

tree.Draw("b1 >> h01(100, -10, +10)", "b2 > 1.0") 
tree.Draw("b1 >> h02(100, -10, +10)", "b2 > 2.0") 
tree.Draw("b1 >> h03(100, -10, +10)", "b2 > 3.0") 
print("b1 RMS for b2 > 1.0: ",h01.GetRMX()) 
print("b1 RMS for b2 > 2.0: ",h02.GetRMX()) 
print("b1 RMS for b2 > 3.0: ",h03.GetRMX())