Again on TClonesArray & Co.

From: Diego Casadei (casadei@bo.infn.it)
Date: Sat May 16 1998 - 19:06:05 MEST


Hello Rooters,
let me speak about a data structure I have adopted. 

I'd like to have a tree (TTree or the future TOak) containing objects of
the class TAMSRun (a collection of events recorded by the AMS detector).

Each TAMSRun run object contains a TClonesArray (for the moment) of
TAMSEvent objects.
Each TAMSEvent event contains a TClonesArray (for the moment) of TTOFplane
objects.
Each of them contains a TClonesArray of TTOFcounter objects, containing a
TClonesArray("TTOFside",2).

TOF is the time of flight subdetector of AMS: 4 planes of 14 scintillator
bars with PMTs in both the ends.  From here TTOFplane, TTOFcounter,
TTOFside.

Now, I expect that the majority of the counters will contain data coming
from both the sides, and the sizeof(TTOFside) is constant.  Then I used
TClonesArray (and this shouls be OK).

Howewer, the sizeof(TTOFplane) in general will not be constant.  E.g. I
expect more fired conters on the first plane than on the others (the soft
part of the CR spectrum).  I'm not sure in this case if I should use
TObjArray instead of TClonesArray.

What do you think?

A final question.   Both TClonesArray and TObjArray have a Delete() member
function, so that for example I guess that I could write

TAMSRun::~TAMSRun(){
  events->Delete();
  return;
}

instead of 

TAMSRun::~TAMSRun(){
  for(Int_t i=nEvt-1;i>=0;i--)
    delete(*events)[i];
  return;
}

where TAMSRun contains a  TClonesArray *events; data member.

Is that correct?

Thanks


        Diego Casadei
                casadei@bo.infn.it
                casadei@cern.ch
        AMS-BO lab: tel. +39 51 630 5044
                    fax  +39 51 630 5040



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:32 MET