[ROOT] question about Event class

From: Sebastien Greder (greder@in2p3.fr)
Date: Mon Jul 07 2003 - 23:14:11 MEST


Hello Rooters,

I got some troubles by trying to change the Event class (in the ROOT test/
dir.).

I just added a member to the class Track : 

TMatrixD fCovariance;

so that the Track constructor is now :

Track::Track(Float_t random) : TObject() , fCovariance(5,5)

Since creating a TMatrixD allocates memory, I need to change 
the Event Clear() method by replacing the line :

fTracks->Clear("C); by :

fTracks->Delete() ;

otherwise I get a memory leak.

I then compile and run the exe Event : ./Event 1000 1 1 1

to create a Event.root file.

everything works fine until here.

If then I re-run the exe : ./Event 1000 1 1 0

just to read the Event.root file or if I execute 
I get a huge memory leak.
By checking the file MainEvent.cxx, I see that 
in the reading mode (read ==1), there's no call 
to the Event Clear() method , is this correct ??
I thought not and added this call, thinking it would
reduce the memory leak, but on the contrary it's even 
worse (the effect is the same using the macro eventa.cxx which 
does the same stuff).

Could so tell me where I did something wrong ?

thanks,

seb.

I put a tar.gz file to reproduce the pb under :

/afs/in2p3.fr/home/g/greder/public/Event_pb.tar.gz

I'm running under RH 7.2, gcc 2.96, ROOT version 3.03.09
(I'm checking if I get the same pb with 3.05.05)



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