Re: [ROOT] bad behavior drawing event

From: Rene Brun (Rene.Brun@cern.ch)
Date: Tue Jun 04 2002 - 21:25:02 MEST


Mathieu,

Could you:
 - tell me the ROOT version number
 - send me the result of evtree.Print()
 - call gObjectTable->Print() before the first Draw(), eg with the
   sequence:
      gObjectTable->Print();
      evtree.Draw("event.hitsclone.GetLe()");
      gObjectTable->Print();
      evtree.Draw("event.hitsclone.GetLe()");
      gObjectTable->Print();
    send me the output for each gObjectTable->Print.
    Make sure that the memory statistics is activated in your
    system.rootrc
 - tell me which variables are used by your function GetLe()
 - if you have a short file, tell me where/how I can take it

Rene Brun



On Tue, 4 Jun 2002, Mathieu Ribordy wrote:

> Hi,
> In a TFile, I store a tree of event. An event stores TClonesArray and
> TObjArray's
> Writing the tree is fine, memory is under control, which is not the case
> when I read it back:
> 
> when I ask to draw e.g. some hit values (the hits are stored in a
> TClonesArray hitsclone):
> evtree.Draw("event.hitsclone.GetLe()");
> the number of hit objects is increasing during the loop on the event and
> the memory is not released at the end (10 Mb/1000 event)
> 
> similarly, when I plot one track in a TObjArray (which owns its
> objects):
> evtree.Draw("event.GetTrack(7)->GetCosth()");
> (5Mb/1000 event)
> 
> Concretely, I cannot draw more than few 10000's events before crashing,
> and it is also unacceptably slow (tens of minutes).
> 
> Certainly stg I do not manage correctly, but what ?
> The memory should be released after each event, as I plot values of
> objects stored in a TClonesArray or values of objects stored in a
> TObjArray, which owns its objects.
> I would be very grateful for some help, I don't see any way to
> circumvent this behavior.
>     Mathieu
> 
> 



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