Re: 4-levels Tree

Rene Brun (Rene.Brun@cern.ch)
Fri, 01 May 1998 10:50:04 +0200


Carlos Lacasta wrote:
>
> Hi,
>
> > I'd like to create the tree like:
> >
> > Tree
> > |
> > 1 EventBody,Ntracks
> > |
> > 2 TrackBody,Ncnd
> > |
> > 3 CandidatBody,Nelements
> > |
> > 4 ElementBody
> >
>
> I use to work with different trees, one per level, to cope with problems
> in which one has a multilevel tree structure with variable length branchs.
> That allows easy links between them and, at least for version 1.09 where I
> did my first tests, a much bigger compression factor than using
> TClonesArrays. On the other hand one has to tune carefully the buffer
> sizes of the branches in the different trees because that method seems to
> be "punished" in what CPU consumption concerns.
>
> It may be a "brute force" approach but is seems to work. It would be nice,
> however, a container class for such kind of objects (a more general TTree
> class) that could allow for individual filling of the branches controlling
> the space ocuppied with a method like Fill(char *branchName) in order to
> benefit from things like AutoSave.
>

Hi Carlos,
I do not understand your argument about compression factors or time.
The best compression factor should be obtained with TClonesArray
because you get homogeneous data per branch. To get a good
compression factor with TClonesArray, specify the compression level 2
for the TClonesArray superbranch.
With compression level 2, both ints and floats are compressed.
With level 1, floats are not compressed.

About your last point: I am currently working on a new class (TOak).
TOak is designed to be a big TTree with support for a hierarchy
of branches. It assumes some user guidance for the definition
of the branch hierarchy. Before announcing this new facility,
I want to prototype it with several different configurations.

Rene Brun