部門 > ROOT > gDirectoryからオブジェクト名を取得して開くやり方

「部門/ROOT/gDirectoryからオブジェクト名を取得して開くやり方」の編集履歴(バックアップ)一覧に戻る

部門/ROOT/gDirectoryからオブジェクト名を取得して開くやり方 - (2012/08/07 (火) 17:15:11) のソース

Nさんに習った。gDirectoryやTListの使い方の勉強になった。
>root test.root
という風に実行して、test.rootが_file0に入ってる状態としたとき、
#highlight(c++){{
TList *l =gDirectory->GetListOfKeys(); //gDirectoryにあるもののリストを作る
TH1D *h = (TH1D*)(_file0->Get(l->At(0)->GetName())); //ヒストグラムの名前を取得して開く}}
二行目で、TFileに対してオブジェクト名を指定すればそれが開けるので、TListのlに入ってる0番目(At(0))のオブジェクト名を取得して開いている。そのときにクラスも指定しないと行けないので、予めわかってる場合か、もしくは自動でやる場合にはクラスを取得する関数を使う必要がある。