Re: [ROOT] TTree::ChangeFile

From: Susan Kasahara (schubert@physics.umn.edu)
Date: Mon Nov 18 2002 - 01:35:23 MET


Hi Rene,
Thanks for your quick response, and my tests show that the problem
is fixed.
-Sue

Rene Brun wrote:

> Hi Sue,
>
> The current version of TTree::ChangeFile assumes one Tree per file.
> I have upgraded this function (now in CVS) to support the case
> of multiple Trees in the same file. The cases that you describe in your
> mail should all be OK now.
> I would appreciate if you could run your program to confirm that
> the procedure works.
>
> Rene Brun
>
> On Mon, 11 Nov 2002, Susan Kasahara wrote:
>
> > Hi roottalk,
> > The behavior of TTree::ChangeFile seems odd to me in the case of
> > two trees being written out to the same file.
> > Consider 2 trees "treeA" & "treeB"  created in file "test.root".
> > treeA & treeB are autosaved to the output file test.root at regular
> > intervals.  treeA & treeB reach size ~1 GByte at about the same time,
> > after N entries.
> > On the (N+1)th treeA->Fill() call,  TTree::ChangeFile is tripped (because
> > the file size approaches 2 GBytes), writing treeA to the file. The contents of
> > treeA are reset, setting it back to 0 entries, and a fresh treeA is started in "test_1.root".
> > treeB, however, is only moved to file "test_1.root", without writing it out to "test.root",
> > and without resetting its number of entries.
> > The job continues to fill treeA & treeB.  Eventually, the fresh treeA reaches size
> > 0.5 Gbyte and treeB reaches size 1.5Gbyte.  On the next treeA->Fill(),
> > ChangeFile is invoked and again treeA gets written out to file and reset,
> > and treeB only gets moved to file "test_2.root", etc..   Is my description
> > correct, and is this a problem like I think it is?
> >   The other problem I see with TTree::ChangeFile is that when AutoSaving,
> > treeB will have a version of the tree in "test.root" corresponding to the last
> > autosaved version with <N entries.  In "test_1.root", a newer AutoSaved version
> > of treeB will exist with >N entries. Is TChain, on input, able to recognize
> > that these two versions of treeB should not be chained together, but that
> > the second should override the first?  TChain will be needed to read "treeA"
> > from the sequential output files.
> > Thanks for considering this, and I hope I'm not too far off in my understanding
> > of how this works.
> > -Sue Kasahara
> >
> >



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