Re: [ROOT] TTree Write

From: Rene Brun (Rene.Brun@cern.ch)
Date: Tue Mar 19 2002 - 08:43:14 MET


Hi Jiri,

The Tree does not write itself to a file. It is your responsability
to write the Tree header. There are applications that write the Tree header
in a different file than the Tree baskets.
What you request is already in place via TTree::AutoSave.
See the example below:

Rene Brun

 void wtree() {
   TFile *hfile = new TFile("file1.root","recreate");
   TNtuple *ntuple = new TNtuple("ntuple","Demo ntuple","px:py:pz:random:i");
   TFile *hfile2 = new TFile("file2.root","recreate");
   Float_t px, py, pz;
   for (Int_t i = 0; i < 25000; i++) {
     gRandom->Rannor(px,py);
     pz = px*px + py*py;
     Float_t random = gRandom->Rndm();
     ntuple->Fill(px,py,pz,random,i);
   }
   ntuple->AutoSave(); //tree header written to file1
   ntuple->Write();    //tree header also written to file2
   delete hfile;
   delete hfile2;
}

Jiri Chudoba wrote:
> 
> Hello,
> 
> the TTree knows its (ROOT) directory, where it was created (fDirectory),
> but when it is written, it writes itself to gDirectory. Is there any
> reason for that? Could it be changed that the default directory for
> writing would be to fDirectory?
> 
> The workarround is simple:
> 
>  TDirectory *cwd = gDirectory;
>  treeD->GetDirectory()->cd();
>  treeD->Write(fTreeD->GetName(),option);
>  cwd->cd();
> 
> but it could be directly in the root code.
> 
>                  Cheers,
>                                Jiri.
> 
> PS: root 3.02.07, linux RedHat 6.1
> 
> *************************************************************************
> * E-mail address:  Jiri.Chudoba@cern.ch                                 *
> * WWW Homepage  :  http://delphiwww.troja.mff.cuni.cz/chudoba/          *
> * Telephone     :  +41 22 76 72288                                      *
> * Fax           :  +41 22 76 79480                                      *
> *************************************************************************



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:46 MET