ROOTの解析で、多数のデータを取り扱うにはfor文でループを作るのが得策です。
ヒストグラムの名前をつけることはFormというコマンドを使えば簡単にできますが、定義したヒストグラムには同じ事ができません。
ヒストグラムの名前を配列として認識させるには次のサンプルプログラムを参考にしていただければ可能です。
実行後、AAA->Draw();
と入力すればヒストグラムを表示することができます。
char fin[][10]= // 読み込むデータのファイル名を定義。はじめの[]は配列の数で、特に数を入れなければ{}の中身を自動的に数えてくれます。次の[]の数字は文字列の文字数です。
{
"aaa.dat",
"bbb.dat",
"ccc.dat"
};
char HName[][10]=
{
"AAA",
"BBB",
"CCC"
}
void kaiseki() {
TObjArray *hists = new TObjArray(); //ヒストグラムなどのオブジェクトを配列として扱うための定義です。
TH1F* sim; // 各ヒストグラムの配列です。
Float_t data;
for (Int_t k=0; k<<3; k++){ //ループを回して多数のファイルとヒストグラムを作ります。
sim = new TH1F(HName[k], "Sim;ENERGY(keV);COUNTS", 4000, 0, 4000); // 各ヒストグラムの定義
hists->AddLast(sim); // 定義したヒストグラムをオブジェクトの配列に加えます。
ifstream f(fin[k]); // データのファイルを開きます。
while ( f >> data){
sim->Fill(data); // 先ほど定義したヒストグラムにデータを入れていきます。
}
f.close(); // 念のためにファイルを閉じておきます。
}