У меня есть код, который загружается в файл ROOT, из которого я могу извлечь ветви из указанного файла ROOT и построить гистограммы и т. д. Код выглядит примерно так:
void MakePlots(string filename) {
TChain Data("clusters");
Data.Add(filename.c_str());
Double_t rr, rx, ry, rz, rrho, rtheta, rphi;
Data.SetBranchAddress("laben.recon.r", &rr);
Data.SetBranchAddress("laben.recon.rho", &rrho);
Data.SetBranchAddress("laben.recon.latitude", &rtheta);
Data.SetBranchAddress("laben.recon.longitude", &rphi);
Data.SetBranchAddress("laben.recon.z", &rz);
Data.SetBranchAddress("laben.recon.y", &ry);
Data.SetBranchAddress("laben.recon.x", &rx);
int NumEvents = Data.GetEntries();
for(int event = 0; event < NumEvents; event++) {
if(event % 1000 == 0) cout << "Processing Event " << event << endl;
Data.GetEvent(event);
}
}
Это отлично работает и отлично подходит для загрузки в один файл и создания графиков из этого файла. Однако я хотел бы загрузить n файлов и выполнить те же операции. В частности, если у меня есть каталог, заполненный всеми файлами ROOT, которые я хочу загрузить, могу ли я написать программу, которая будет загружать каждый файл из этого каталога. Любая помощь будет оценена.