2008年2月10日日曜日

ROOT ファイルとディレクトリの操作

ROOTでは、作業を行っている環境がどこにあるかというのが問題になる。
作業中の環境の
確認 .pwd or gDirectory->pwd();
表示 .ls or gDirectory->ls();
変更 gDirectory->cd()//thisに移動
gDirectory->Cd("path:")//pathと言いつつファイル名。「:」が必要。

どのディレクトリで作業しているかが問題になるのは、例えばこんな時。
TFile f("foo.root","update");
TNtuple *tuple=(TNtuple*)f.Get("tuple");
//////////tupleに対して色々と変更を加える。
TFile g("bar.root");
tuple->Write("","TObject::kOverwrite);// error! gに書き込めないと表示される。
gDirectory->Cd("foo.root:");
tuple->Write("","TObject::kOverwrite);// 今度は上書きに成功。

0 件のコメント: