[ROOT] Re: writing trees ...

From: Anton Fokin (anton.fokin@smartquant.com)
Date: Sun Mar 04 2001 - 12:55:40 MET


Rene,

It says that THx and TTree objects are added to the current directory list
of keys and saved automatically on directory close. As far as I can trace
down TFile::Close() I see

TDirecory::SaveSelf()

which will save Tree header if it belongs to this file/directory. Am I
wrong?

Regards,
Anton

http://www.smartquant.com


----- Original Message -----
From: Rene Brun <brun@pcbrun.cern.ch>
To: Anton Fokin <anton.fokin@smartquant.com>
Cc: roottalk <roottalk@pcroot.cern.ch>; Rene Brun <Rene.Brun@cern.ch>
Sent: Sunday, March 04, 2001 10:30 AM
Subject: Re: writing trees ...


> Anton,
> File.Close does not write the Tree header to the file. May be you
> mean File.Write ?
> There are two ways to AutoSave Trees in a file.
>  - User calls TTree::Autosave
>  - TTree::SetAutoSave(nbytes) has been called. In this case, teh Tree
>    header/buffers are only saved (by calling TTree::AutoSave) when
>    more than nbytes have been written to the file since the previous
>    AutoSave.
> When calling SetAutoSave or AutoSave, you get 2 different copies
> of the Tree header on the file. You can keep one copy only.
> At the end of your job, instead of calling File.Write(),
> do tree.Write(0,TObject::kOverwrite)
>
> Rene Brun
>
>
> On Sat, 3 Mar 2001, Anton Fokin wrote:
>
> > Hi Rene,
> >
> > if I do
> >
> > TFile File(..);
> >
> > TTree *Tree = new TTree(..);
> >
> > Tree->AutoSave();
> >
> > File.Close();
> >
> > it looks like root writes the tree twice: on AutoSave and on
File.Close().
> > Am I right?
> >
> > If so, could you prvide a check so that only modified tree will be
written
> > on AutoSave() and File.Close() ?
> >
> > Regards,
> > Anton
> >
> > http://www.smartquant.com
> >
> >
> >
>
>
>



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:38 MET