Hi John,
It all depends on how you allocated the TFile containing the TTree.
A guess would be that you should replace
fChain->Delete();
by
delete fChain;
You may also have to do:
if (fChain) delete fChain->GetCurrentFile();
But both are wild guesses :) ... The bottom line is that you have to insure
that the 'owner' of the file of the tree closes and delete its file.
Cheers,
Philippe.
-----Original Message-----
From: owner-roottalk@pcroot.cern.ch
[mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Dr. John Krane
Sent: Thursday, July 17, 2003 4:36 PM
To: roottalk@pcroot.cern.ch
Subject: [ROOT] closing TTree files
Hi,
I want to open a Tree, loop over it creating histograms, close the histo
file, close the Tree. Without leaving Root, I want to repeat the entire
process with a different Tree and make a separate histo file.
I have most of what I need I think, but I don't know how to close the
Tree when I'm done with it. I do:
// Write histos to disk. Close all files.
histofile->Write();
histofile->Close();
delete histofile;
fChain->Delete();
And this works as I expect with the histofile but not with the Tree. I
get through my loop twice and then seg fault. When I check the
TBrowser, I see both the first and second trees in there, which would
cause a seg fault in my code all right. Can anybody tell me how to get
rid of the first Tree?
- John
#################################################################
#################################################################
#################################################################
#####
#####
#####
#################################################################
#################################################################
#################################################################
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:13 MET