ファイル操作したい(TFile

 1#include <TFile.h>
 2
 3void macro() {
 4    TFile *file = TFile::Open("output.root", "recreate");
 5    if (!file || file->IsZombie()) {
 6        std::cerr << "Error creating file: output.root" << std::endl;
 7        return;
 8    }
 9    // ファイル操作のコード
10    TTree *tree = file->Get<TTree>("tree");
11
12    // ファイルを閉じる
13    file->Close();
14}

TFileはROOTファイルを操作するためのクラスです。 TFile::Openはファイルを開くための静的メソッドです。

第一引数(name)にはファイル名を指定します。 ファイルが正常に開けない場合はnullptrを返すか、IsZombie()trueになります。

注釈

TFile::Openは、リモートにあるファイルや、ROOTの仮想ファイルシステムを利用したファイルアクセスもサポートしています。

ローカルにあるファイルを開くだけであれば new TFileでも問題ありません。

TFile::Getで、ファイル内のオブジェクトを名前で取得できます。 TObject*型のポインターが返されるため、適切な型にキャストする必要があります。 このサンプルではTTree*型にキャストしています。

TFile::Closeでファイルを閉じることができます。 マクロや関数のスコープを抜けるとファイルは自動的に閉じられますが、安全のため明示的に閉じる習慣をつけておくとよいです。

 1import ROOT
 2
 3# ファイルを開く
 4f = ROOT.TFile.Open("source.root")
 5
 6# TTreeを取得
 7tree = f.Get("events")
 8tree.Print()
 9
10# ファイルを閉じる
11f.Close()

リファレンス