Re: [ROOT] TBranch::GetTotBytes()

From: Rene Brun (Rene.Brun@cern.ch)
Date: Tue Jun 19 2001 - 23:15:26 MEST


Hi Jiri,
When the Tree is written to a file (via tree.Write) all buffers of all
branches are streamed with the Tree header in one single record.
When opening the tree again, the buffers are restored in their original
state. It would be very innefficient to clear the buffers.
Because the compression factor is unknown at the time of streaming
the Tree header, there is no way to update fTotBytes.
If nobody complains, I will update TTree::GetTotBytes to return 
fTotBytes + the current length of data in the branch buffer.

Rene Brun

On Tue, 19 Jun 2001, Jiri Chudoba wrote:

> Hi Rene,
> 
> I do not understand reasons why fTotBytes cannot be incremented
> when a file is closed. I considered TBaskets as a kind of buffer for
> TTree, so it seems natural to empty the buffer when a file is closed and
> start a new buffer when the file is opened again in the same or different
> job.
> 
> If you modify GetTotBytes to return the fTotBytes + the current buffer
> length, I would be satisfied - thank you.
> 
>                Cheers,
>                                Jiri.
> 
> *************************************************************************
> * 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                                      *
> *************************************************************************
> On Tue, 19 Jun 2001, Rene Brun wrote:
> 
> > Hi Jiri,
> > TBranch::GetTotBytes returns the total number of bytes written to the file
> > so far, excluding the current buffer. fTotBytes cannot be incremented
> > when the file is closed because you may want to continue to fill the
> > branch in a different job.
> > I could modify GetTotBytes to always return the fTotBytes + the current
> > buffer length.
> > 
> > Rene Brun
> > 
> > 
> > On Tue, 19 Jun 2001, Jiri Chudoba wrote:
> > 
> > > Hello,
> > > 
> > > I use TBranch::GetTotBytes() method to get a size of a given branch, but
> > > the result is not correct, for branches with just a few entries I get
> > > 0. To get correct result, I have to look into baskets as well, 
> > > branch->GetBasket(i)->GetBufferSize(). Would it be possible to change the
> > > root code to update fTotBytes when file is closed?
> > > I get the same behaviour for fZipBytes.
> > > 
> > > I use root 3.00.06 on Linux RedHat 6.1.
> > > 
> > >            Thanks, cheers,
> > >                                Jiri.
> > > 
> > > *************************************************************************
> > > * 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 : Tue Jan 01 2002 - 17:50:49 MET