independent of Ian Mail which just arrived in my mail box, I struggled a bit to find a 'temporary' solution to
saving histograms from the monitor. The listed macro file) does the Job. It is by no way
carefully tested- It will only do one level of subdirs, it is not stresse tested in any way.
It is though general and can be used to save any memory hsitograms saved files without opening the root TFile first.
Flemming
void SaveHist(const char * file)
{
// usage .x SaveHist.C("Filename.root");
//
TList *l = gROOT->GetList();
TFile *hfile = new TFile(file,"RECREATE","");
l = gROOT->GetList();
TIter next(l);
TObject *obj;
while((obj = (TObject*) next()))
{
if (obj->InheritsFrom("TDirectory")){
cout << "Directory"<<endl;
TList *ls = ((TDirectory*) obj)->GetList();
TIter nextsub(ls);
TObject *objs;
while((objs = (TObject*) nextsub()))
{ objs->Write();
}
}
if (obj->InheritsFrom("TH1")) obj->Write();
}
hfile->ls();
hfile->Close();
delete hfile;
}
--------------------------------------------------------
Flemming Videbaek
Physics Department
Brookhaven national Lab
tlf: 516-344-4106
fax: 516-344-1334
email: videbaek@bnl.gov
This archive was generated by hypermail 2b29 : Wed Apr 12 2000 - 09:29:31 EDT