Re: [ROOT] Writing a root file...

From: Rene Brun (Rene.Brun@cern.ch)
Date: Sun Jul 20 2003 - 09:24:44 MEST


Hi Zaldy,

A short answer to your question(s)

TTree has a pointer to the file where the Tree must be written.
When calling TTree::Fill, the function will automatically write
the buffers to the file where the tree was created.
At the end of your job, if you call tree->AutoSave, the Tree header
will also be written to the right file. You do not need to do,
   file->cd();
   tree->Write();
although you may want to do it if you want to write the tree header
to another file.

Rene Brun

On Sun, 
20 
Jul 2003, zaldy wrote:

> 
> Dear ROOT Users,
> 
> 
> In using the methods tree_ptr->Write() and file_ptr->Write(), how does the 
> TTree object communicates with the TFile object?
> 
> For instance in writing a root file, I noticed the ff. steps from the 
> tutorial(filename: tree*.C) or manual (Users Man. 3.05, pp.212-214):
> 
> 	1. a declaration of the form
>               TFile * firstFILEinput = new TFile("INPUT.root",MODE);
>               TTree * myTree= new TTree("T","Oak Tree");
>             
>         2. Creating branches;
>               myTree->Branch(.......arguments.......);
>               .......
> 
>         3. Filling the branches with data;
>               branchName = data_one;
>               ............. 
>               myTree->Fill();
> 
>         4. actual writing;
>               myTree->Write();  
>               (sometimes: fileOUT->Write(); ) 
>  
> Now what about if one has to create another TFile object
> 
>   TFile * anotherFileOUTPUT = new TFile("OUTPUT.root",MODE), 
> 
> how will the TTree select which TFile's to direct? 
> (Or, how intelligent this tree is to choose w/c from the two files to 
> write?)
> 
> I did not see an explicit 
> declaration on the part of TTree that it has to write to a specific file. 
> So far in the manual, we are told that it is for writing or reading 
> through its MODE.
> 
> In otherwords, is it INPUT.root or UTPUT.root ?
> Are we assured that it will not overwrite, for instance, the file
> "INPUT.root" with mode=>READ?
> 
> My apology for the many questions.
> 
> Thanks.
> 
> 



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:13 MET