TTree::Print()

I am using win32gdk version 4.00/4 on win2k. I create a “memory resident TTree” - (gFile=0 or created with option="") First, the displayed branch sizes are wrong - they are still too large by factor of 2:[code]******************************************************************************
*Tree :pmvz : temp *
*Entries : 9260742 : Total = 259990738 bytes File Size =

  •    :          : Tree compression factor =   1.00                       *
    

*Br 0 :z : z/i *
*Entries : 9260742 : Total Size= 74298262 bytes All baskets in memory *
*Baskets : 1159 : Basket Size= 32000 bytes Compression= 1.00 *

*Br 1 :mass : mass/F *
*Entries : 9260742 : Total Size= 74305234 bytes All baskets in memory *
*Baskets : 1159 : Basket Size= 32000 bytes Compression= 1.00 *

*Br 2 :hreg : hreg/S *
*Entries : 9260742 : Total Size= 37136746 bytes All baskets in memory *
*Baskets : 579 : Basket Size= 32000 bytes Compression= 1.00 *

*Br 3 :x : x/S *
*Entries : 9260742 : Total Size= 37133254 bytes All baskets in memory *
*Baskets : 579 : Basket Size= 32000 bytes Compression= 1.00 *

*Br 4 :y : y/S *
*Entries : 9260742 : Total Size= 37133254 bytes All baskets in memory *
*Baskets : 579 : Basket Size= 32000 bytes Compression= 1.00 *

root [2][/code]The real problem is that calling TTree::Print() causes my memory usage to spike: The following shows my memory usage when I fill my TTree (memory ramps up, CPU high) When I execute TTree::Print(), I get the spike in memory usage - the memory footprint briefly doubles! - severly limits how large of a memory resident TTree I can have. Is there a way to avoid the memory spike when TTree::Print() is called? Thanks

Ed Oltman


The problem with the wrong value displayed by TTree::Print in case of memory resident Trees should be fixed now in CVS.

TTree::Print evaluates the exact size of the tree when saved on the file.
This may require a copy of the Tree headers in memory.
I know that this might be a problem when memory-resident Trees
are created.

Rene