TTreeしたい(TTree

1#include <TTree.h>
2
3// TTree::TTree(name, title)
4TTree *tree = new TTree(
5    "mytree",       // name
6    "example tree"  // title
7);

TTreeはROOTでイベントデータを管理するためのクラスです。 TTree::TTreeコンストラクターでTTreeオブジェクトを作成できます。 nameはTTreeの識別子で、プログラム内でTTreeを参照する際に使用します。 titleはTTreeの説明やタイトルを設定するための文字列です。

TTreeは高エネルギー物理実験のデータ保存・解析に広く使用されている形式です。 イベントごとにデータを効率的に保存し、あとから高速にアクセスできるように設計されています。

注釈

古いドキュメントやサンプルではTNtupleが紹介されていることがありますが、現在はTTreeを使用すればOKです。

ヒント

さらに歴史をさかのぼると、Fortranで書かれたHBOOKの時代からNtupleという概念が存在していました。 ROOTのTNtupleはその名残で、単純な構造のTreeを提供していました。 TTreeTNtupleの機能を内包をしており、より柔軟で高機能なデータ構造を提供しています。

ROOT6.34以降では、 TTreeの機能がさらに強化され、 RDataFrameなどの新しいデータ分析フレームワークも登場しています。

1from ROOT import TTree
2
3# Pythonでの作成
4tree = TTree("mytree", "example tree")

ファイルに保存したい(TTree::Write

1#include <TFile.h>
2
3// TTreeを作成
4// ...(前のコードと同様)
5
6// TTreeをファイルに保存
7TFile *file = new TFile("tree.root", "RECREATE");
8tree->Write();  // TTreeをファイルに書き込む
9file->Close();  // ファイルを閉じる

TTreeTFileに保存できます。 TTree::WriteメソッドでTTreeを書き込みます。 複数のTTreeを作成した場合は、TTreeごとにWriteすることで、同じファイルに保存できます。

ファイルから読み込みたい

1#include <TFile.h>
2#include <TTree.h>
3
4// ファイルからTTreeを読み込む
5TFile *file = new TFile("tree.root", "READ");
6TTree *tree = (TTree*)file->Get("mytree");  // "mytree"はTTreeの名前

TFile::Getメソッドで、ファイルからTTreeを読み込むことができます。 読み込んだTTreeは、元のTTreeと同じ名前でアクセスできます。

リファレンス