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を提供していました。
TTreeはTNtupleの機能を内包をしており、より柔軟で高機能なデータ構造を提供しています。
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(); // ファイルを閉じる
TTreeはTFileに保存できます。
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と同じ名前でアクセスできます。