Norbert Danneberg wrote:
>
> HI Rooters,
>
> I try too loop over all histos within a file using the following code :
>
> BrowseFile(Char_t *FileName){
>
> f1 = new TFile(FileName);
> TList *MyList = f1->GetList();
> TIter next(MyList);
> MyList->ls();
> TObject *obj;
> while((obj = (TObject*)next())){
> if(obj->InheritsFrom(TH1::Class)) obj->Draw();
> }
> c1.Update();
> while(!getchar());
>
> f1.Close();
> f1.Delete();
> }
>
> It seems f1->GetList does not return the content of the file. What am I
> doing wrong ??
>
In your example, you loop on objects in memory. What you want
is to loop on all objects on the file.
You will find below a small example illustrating how to do it.
For more elaborated examples, see the code of TDirectory itself.
For example:
http://root.cern.ch/root/html/src/TDirectory.cxx.html#TDirectory:Browse
{
TFile *file = new TFile("hsimple.root");
TObject *obj;
TKey *key;
TIter next( file->GetListOfKeys());
while ((key = (TKey *) next())) {
obj = file->Get(key->GetName()); // copy object to memory
// do something with obj
printf(" found object:%s\n",key->GetName());
}
}
Rene Brun
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:33 MET