loopdir.C: example of script to loop on all the objects of a ROOT file directory
void loopdir() {
// example of script to loop on all the objects of a ROOT file directory
// and print on Postscript all TH1 derived objects
// This script uses the file generated by tutorial hsimple.C
//Author: Rene Brun
TString dir = gSystem->UnixPathName(__FILE__);
dir.ReplaceAll("loopdir.C","../hsimple.C");
dir.ReplaceAll("/./","/");
if (!gInterpreter->IsLoaded(dir.Data())) gInterpreter->LoadMacro(dir.Data());
TFile *f1 = (TFile*)gROOT->ProcessLineFast("hsimple(1)");
TIter next(f1->GetListOfKeys());
TKey *key;
TCanvas c1;
c1.Print("hsimple.ps[");
while ((key = (TKey*)next())) {
TClass *cl = gROOT->GetClass(key->GetClassName());
if (!cl->InheritsFrom("TH1")) continue;
TH1 *h = (TH1*)key->ReadObj();
h->Draw();
c1.Print("hsimple.ps");
}
c1.Print("hsimple.ps]");
}