イベントを取得したい(TTree::GetEntry)
1// 100番目のイベント情報を取得
2tree->GetEntry(100);
TTree::GetEntryメソッドで \(i\) 番目のイベントを取得できます。
イベントはブランチに設定されたアドレスの変数に格納されます。
1void macro() {
2 TFile *file = TFile::Open("data.root");
3 TTree *tree = (TTree *)file->Get("tree");
4
5 Int_t event_id;
6 Float_t energy;
7 tree->SetBranchAddress("event_id", &event_id);
8 tree->SetBranchAddress("energy", &energy);
9
10 long long n_entries = tree->GetEntries();
11 std::cout << "エントリー数: " << n_entries << std::endl;
12
13 for (long long i = 0; i < n_entries; ++i) {
14 tree->GetEntry(i);
15 // エントリーiのデータにアクセス
16 std::cout << "Entry " << i << ": event_id=" << event_id << ", energy=" << energy << std::endl;
17 }
18 file->Close();
19}
\(i\) 番目のイベントを単一で取得することもできますが、
通常は全イベント数(TTree::GetEntries)に対するループの中で、イベント情報を取得・選択して利用します。