イベントを記録したい(TTree::Fill

 1void macro() {
 2    TFile *file = TFile::Open("output.root", "recreate");
 3    TTree *tree = new TTree("events", "Event data");
 4
 5    // ブランチ変数を定義する
 6    int run{0};  // イベント番号
 7    double energy{0.0};  // エネルギー
 8    int n_hits{0};  // ヒット数
 9
10    // ブランチを作成する
11    tree->Branch("run", &run, "run/I");
12    tree->Branch("energy", &energy, "energy/D");
13    tree->Branch("n_hits", &n_hits, "n_hits/I");
14
15    // イベントループ
16    for (int i = 0; i < 1000; i++) {
17        run = i;
18        energy = 1.0 + i * 0.01;
19        n_hits = i % 10;
20        // エントリーを記録する
21        tree->Fill();
22    }
23    // ファイルに書き込む
24    tree->Write();
25    file->Close();
26}

TTree::Fillは、イベント(エントリー)をTTreeに追加するメソッドです。

イベントループの中で、ブランチ変数に値を設定した後にFill()を呼び出すことで、その値を1つのエントリーとして記録できます。 複数のブランチがある場合、すべてのブランチの値が同時に1つのエントリーとして記録されます。

参考リンク