この文書の現在のバージョンと選択したバージョンの差分を表示します。
次のリビジョン | 前のリビジョン 次のリビジョン 両方とも次のリビジョン | ||
ja:root:ttree [2014/06/11 06:37] kota 作成 |
ja:root:ttree [2015/04/01 07:09] kota |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
- | ====== TTree を使う ====== | + | ====== TTree ====== |
ライン 5: | ライン 5: | ||
==== 読み込むBranchを限定する ==== | ==== 読み込むBranchを限定する ==== | ||
+ | === 方法1 --- SetBranchStatus === | ||
デフォルトではGetEntryすると、SetBranchAddressで指定されていないBranchまでも読みにいく(らしい)。 | デフォルトではGetEntryすると、SetBranchAddressで指定されていないBranchまでも読みにいく(らしい)。 | ||
treeに多数のBranchが入っていて、その一部だけを使う場合、これは非常に無駄になる。 | treeに多数のBranchが入っていて、その一部だけを使う場合、これは非常に無駄になる。 | ||
ライン 15: | ライン 16: | ||
</code> | </code> | ||
+ | このとき、先に0番目のEntryをGetEntryしてやらなければならないらしい。http://root.cern.ch/root/roottalk/roottalk03/4900.html | ||
+ | |||
+ | 理由は不明。 | ||
+ | 具体的には以下のようにする。 | ||
+ | <code c_mac> | ||
+ | tree->SetBranchAddress("hoge",&hoge); | ||
+ | tree->SetBranchAddress("hogehoge.",&hogehoge); | ||
+ | ・ | ||
+ | ・ | ||
+ | ・ | ||
+ | tree->GetEntry(0); | ||
+ | tree->SetBranchStatus("*",0); | ||
+ | tree->SetBranchStatus("Detector.nHit",1); | ||
+ | tree->SetBranchStatus("Detector.hits.*",1); | ||
+ | ・ | ||
+ | ・ | ||
+ | ・ | ||
+ | 以下 event loop | ||
+ | </code> | ||
+ | |||
+ | |||
+ | === 方法2 --- TBranch::GetEntry=== | ||