データフレームしたい(RDataFrame)
1// イベント数を指定してRDataFrameを作成
2auto df = ROOT::RDataFrame(100)
3 .Define("x", "gRandom->Gaus(0, 1)")
4 .Define("y", "gRandom->Gaus(0, 1)");
5df.Describe();
RDataFrameは、ROOTにおいてpandasのような宣言的なデータフレーム操作を提供するクラスです。
TTreeの上に構築された解析専用の高レベルAPIで、従来のTTreeのイベントループをベースとしたコードよりも簡潔で効率的なデータ分析が可能になります。
ファイルから読み込みたい
1auto df = ROOT::RDataFrame("events", "source.root");
RDataFrameはROOTファイルのTTreeを直接読み込むことができます。
第一引数(name)にはTTreeの名前、
第二引数(files)にはファイル名を指定します。
1auto df = ROOT::RDataFrame(
2 "events",
3 {"file1.root", "file2.root", "file3.root"}
4);
複数のファイルを同時に読み込むことができます。
TTreeを読み込みたい
1TFile *source_file = TFile::Open("source.root");
2TTree *tree = source_file->Get<TTree>("events");
3
4auto df = ROOT::RDataFrame(tree);
RDataFrameは、すでに読み込んだTTreeを引数にして作成することもできます。
この方法は、TTreeを読み込む際に特別な設定が必要な場合に便利です。