Re: [ROOT] test/MainEvent example - problems with Draw afterwards

From: Rene Brun (Rene.Brun@cern.ch)
Date: Thu Jun 12 2003 - 23:37:19 MEST


Hi Torsten,

I looked at your file and I understand why you get the problem.
You have specified split=1 in your class Event. You should specify
at least split=2 if you want to see each member of your TClonesArray
in a separate branch.
If you do T.Print(), you will see:

*Br   47 :fgenTracks :
*Entries :   186059 : Total  Size=  557009404 bytes  File Size  =   
36544499
*Baskets :     8739 : Basket Size=      64000 bytes  Compression=  15.24

Any traversal of this branch will load 577 Megabytes in memory !

Rene Brun

On 
Thu, 
12 
Jun 2003, Torsten Harenberg wrote:

> Dear list,
> 
> I tried to adapt the example "test/MainEvent" included in the source tree.
> This works fine and produces me an output root file.
> 
> When I try to plot one variable included in a TClonesArray afterwards, the
> procedure is very slow and consumes *TONS* of memory (around one Gig),
> which is not released afterwards. A second (SIMILAR) Draw crashes my
> machine, as it runs out of swap.
> 
> I think the problem is similar to what has been reported by Mathieu
> Ribordy on
> 
> http://root.cern.ch/root/roottalk/roottalk02/2340.html
> and
> http://root.cern.ch/root/roottalk/roottalk02/1979.html
> 
> If you want to reproduce: I put the root file on
> 
> http://www.atlas.uni-wuppertal.de/~harenber/Event.root
> 
> then follow:
> 
> root [0] TFile a("Event.root");
> Warning in <TClass::TClass>: no dictionary for class Event is available
> Warning in <TClass::TClass>: no dictionary for class Track is available
> root [1] gObjectTable->Print();
> 
> Object statistics
> class                         cnt    on heap     size    total size
> heap size
> ================================================================================
> TRootGuiFactory                 1          1       28            28
>        28
> TSignalHandler                  1          1       36            36
>        36
> TFileHandler                    2          2       32            64
>        64
> TList                         349        348       44         15356
>     15312
> TObject                       162        162       12          1944
>      1944
> TStreamerInfo                  28         28       84          2352
>      2352
> TClass                         63         63      140          8820
>      8820
> TObjArray                     109        109       40          4360
>      4360
> TStreamerBase                  27         27      104          2808
>      2808
> TStreamerBasicType            121        121      100         12100
>     12100
> TStreamerObject                 7          7       96           672
>       672
> TStreamerObjectPointer          7          7       96           672
>       672
> TStreamerString                10         10       96           960
>       960
> TStreamerObjectAny              2          2       96           192
>       192
> TStreamerBasicPointer           3          3      120           360
>       360
> TProcessID                      1          1       36            36
>        36
> TObjString                    568        568       20         11360
>     11360
> TAssoc                        573        573       20         11460
>     11460
> TPluginHandler                 34         34       68          2312
>      2312
> TMethod                       299        299       52         15548
>     15548
> TDataType                     191        191       40          7640
>      7640
> TColor                        229        229       56         12824
>     12824
> TRealData                      91         91       36          3276
>      3276
> TDataMember                   265        265       76         20140
>     20140
> TBaseClass                     26         26       40          1040
>      1040
> TMethodArg                      2          2       40            80
>        80
> TGGC                           31          0      124          3844
>         0
> TFolder                        17         17       36           612
>       612
> TRint                           1          1      124           124
>       124
> THashTable                     12         12       40           480
>       480
> THashList                      10          9       48           480
>       432
> TOrdCollection                  8          8       44           352
>       352
> TGMimeTypes                     1          1       32            32
>        32
> TObjectTable                    1          1       24            24
>        24
> TRandom                         2          2       32            64
>        64
> TMessageHandler                 1          1       56            56
>        56
> TClassMenuItem                 63         63       60          3780
>      3780
> TMethodCall                     8          8       60           480
>       480
> TGLayoutHints                   1          1       32            32
>        32
> TFile                           1          1      220           220
>       220
> TGClient                        1          1       84            84
>        84
> TMap                            2          0       28            56
>         0
> TStyle                          5          5      780          3900
>      3900
> TQClass                         3          3      152           456
>       456
> TSystemDirectory                1          1       36            36
>        36
> TEnv                            1          1       24            24
>        24
> TGuiFactory                     1          1       28            28
>        28
> TGX11TTF                        1          1      268           268
>       268
> TTimer                          1          0       60            60
>         0
> TVirtualX                       1          1       84            84
>        84
> TExMap                          1          1       24            24
>        24
> TCint                           1          1      228           228
>       228
> TClassTable                     1          1       12            12
>        12
> TKey                            3          3       80           240
>       240
> TBenchmark                      1          1       52            52
>        52
> TBits                           1          1       24            24
>        24
> TUnixSystem                     1          1      376           376
>       376
> TStopwatch                      1          0       68            68
>         0
> TPluginManager                  1          1       16            16
>        16
> TGPicturePool                   1          1       28            28
>        28
> TProcessUUID                    1          1       44            44
>        44
> TGFrame                         1          1       72            72
>        72
> TROOT                           1          0      292           292
>         0
> --------------------------------------------------------------------------------
> Total:                       3360       3322     5400        153492
>    149080
> ================================================================================
> root [2] T->Draw("fgenTracks.x");
> <TCanvas::MakeDefCanvas>: created default TCanvas with name c1
> root [3] gObjectTable->Print();
> 
> Object statistics
> class                         cnt    on heap     size    total size
> heap size
> ================================================================================
> TRootGuiFactory                 1          1       28            28
> 28
> TSignalHandler                  1          1       36            36
> 36
> TFileHandler                    2          2       32            64
> 64
> TList                         568        568       44         24992
> 24992
> TObject                       173        173       12          2076
> 2076
> TStreamerInfo                  28         28       84          2352
> 2352
> TClass                        101        101      140         14140
> 14140
> TNamed                          3          3       28            84
> 84
> TStreamerElement                1          0       96            96
> 0
> TObjArray                     307        307       40         12280
> 12280
> TStreamerBase                  27         27      104          2808
> 2808
> TStreamerBasicType            121        121      100         12100
> 12100
> TStreamerObject                 7          7       96           672
> 672
> TStreamerObjectPointer          7          7       96           672
> 672
> TStreamerString                10         10       96           960
> 960
> TStreamerObjectAny              2          2       96           192
> 192
> TStreamerBasicPointer           3          3      120           360
> 360
> TClonesArray                    1          1       48            48
> 48
> TProcessID                      2          2       36            72
> 72
> TTree                           1          1      292           292
> 292
> TBranchElement                 50         50      340         17000
> 17000
> TLeafElement                   50         50       68          3400
> 3400
> TBasket                        51         51      112          5712
> 5712
> TKey                            3          3       80           240
> 240
> TTreePlayer                     1          1       44            44
> 44
> TGMenuTitle                     7          7      108           756
> 756
> TGCompositeFrame                1          1       80            80
> 80
> TGFrame                         5          5       72           360
> 360
> TCanvas                         1          1      648           648
> 648
> TBits                          15         15       24           360
> 360
> TH1F                            1          1      588           588
> 588
> THistPainter                    1          1      180           180
> 180
> TUtilHist                       1          1       28            28
> 28
> TFrame                          1          1       76            76
> 76
> TLatex                          5          5      124           620
> 620
> TPaveText                       1          1      176           176
> 176
> TGViewPort                      1          1       92            92
> 92
> TGCanvas                        1          1       88            88
> 88
> TRootCanvas                     1          1      264           264
> 264
> TGMenuBar                       1          1       92            92
> 92
> TObjString                    636        636       20         12720
> 12720
> TMethod                       668        668       52         34736
> 34736
> TAssoc                        631        631       20         12620
> 12620
> TMethodCall                    18         18       60          1080
> 1080
> TPluginHandler                 34         34       68          2312
> 2312
> TDataMember                   271        271       76         20596
> 20596
> TRealData                     368        368       36         13248
> 13248
> TDataType                     191        191       40          7640
> 7640
> TColor                        229        229       56         12824
> 12824
> TBuffer                        51         51       60          3060
> 3060
> TClassMenuItem                124        124       60          7440
> 7440
> TF1                            13         13      240          3120
> 3120
> TBaseClass                     59         59       40          2360
> 2360
> TMethodArg                      2          2       40            80
> 80
> TGGC                           31          0      124          3844
> 0
> THashTable                     14         14       40           560
> 560
> TFolder                        17         17       36           612
> 612
> TRint                           1          1      124           124
> 124
> THashList                      11         10       48           528
> 480
> TGMenuEntry                    54         54       56          3024
> 3024
> TGLayoutHints                   6          6       32           192
> 192
> TOrdCollection                  8          8       44           352
> 352
> TGMimeTypes                     1          1       32            32
> 32
> TObjectTable                    1          1       24            24
> 24
> TRandom                         2          2       32            64
> 64
> THLimitsFinder                  1          1       12            12
> 12
> TGFrameElement                 11         11       24           264
> 264
> TMessageHandler                 1          1       56            56
> 56
> TQClass                        22         22      152          3344
> 3344
> TGPicture                       5          5       76           380
> 380
> TGHScrollBar                    1          1      164           164
> 164
> TContextMenu                    1          1       60            60
> 60
> TGScrollBarElement              6          6       80           480
> 480
> TFile                           1          1      220           220
> 220
> TGClient                        1          1       84            84
> 84
> TMap                            2          0       28            56
> 0
> TGPopupMenu                     7          7      124           868
> 868
> TStyle                          5          5      780          3900
> 3900
> TSystemDirectory                1          1       36            36
> 36
> TEnv                            1          1       24            24
> 24
> TGVerticalLayout                3          3       20            60
> 60
> TGuiFactory                     1          1       28            28
> 28
> TExMap                          5          5       24           120
> 120
> TGX11TTF                        1          1      268           268
> 268
> TTimer                          1          0       60            60
> 0
> TGStatusBar                     1          1       96            96
> 96
> TTreeFormula                    1          1    18496         18496
> 18496
> TVirtualX                       1          1       84            84
> 84
> TGVScrollBar                    1          1      164           164
> 164
> TCint                           1          1      228           228
> 228
> TClassTable                     1          1       12            12
> 12
> TBenchmark                      1          1       52            52
> 52
> TSelectorDraw                   1          1      220           220
> 220
> TUnixSystem                     1          1      376           376
> 376
> TAxis                           3          3      128           384
> 384
> TStopwatch                      1          0       68            68
> 0
> TPluginManager                  1          1       16            16
> 16
> TGPicturePool                   1          1       28            28
> 28
> TGHorizontalLayout              1          1       20            20
> 20
> TProcessUUID                    1          1       44            44
> 44
> TRootContextMenu                1          1      140           140
> 140
> TTreeFormulaManager             1          1      168           168
> 168
> TPaveStats                      1          1      204           204
> 204
> TROOT                           1          0      292           292
> 0
> --------------------------------------------------------------------------------
> Total:                       5103       5065    29524        279896
> 275432
> ================================================================================
> 
> 
> 
> I tried to follow Rene's suggestions on
> http://root.cern.ch/root/roottalk/roottalk02/1984.html
> 
> and implemented the SetOwner call in the Event constructor, but this made
> -at least for me- no difference. Trying to call a delete in the Event
> distructor like
> 
>     fgenTracks->Clear("C"); //will also call Track::Clear
>     frecTracks->Clear("C"); //will also call Track::Clear
>     fgenTracks->Delete();
>     delete fgenTracks;
>     fgenTracks=0;
> 
> , however, brings up a SEGFAULT in the AddTrack method in
> 
>   Track *track = new(tracks[fNrectrack++]) Track(rdmctrack);
> 
> Anybody any further idea, what I did wrong?
> 
> Thanks and best regards,
> 
>    Torsten
> 
> P.S.: root version is 3.05/05 11 June 2003, running on a Linux PC
> (compiled with ./configure linux) with gcc-3.2 (SuSE 8.1)
> 
> <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
> <>                                                              <>
> <> Torsten Harenberg         harenberg@physik.uni-wuppertal.de  <>
> <> Bergische Universitaet                                       <>
> <> FB 8 - Physik             Tel.: +49 (0)202 439-2740          <>
> <> Gaussstr. 20              Fax : +49 (0)202 439-2811          <>
> <> 42097 Wuppertal                                              <>
> <>                                                              <>
> <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
> 



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:12 MET