RE: [ROOT] How to write lists of objects?

From: Magestro Daniel (D.Magestro@gsi.de)
Date: Mon Nov 12 2001 - 13:51:32 MET


> Hi Thomas,
> 
> Except for a TClonesArray, it does not make sense to use the 
> split mode for a TCollection. Replace the line :
> 
>     t->Branch("TList", "TList", &list, 32000, 9);
> by
>     t->Branch("TList", "TList", &list, 32000, 0);
> 
> Rene Brun

Hi - a long response to Rene's answer... there may be situations where a
non-zero split mode would be useful for TList's or TObjArray's.  

In our analysis (HADES) the event structure is defined by a single TObjArray
which contains several other TObjArray's (one for each detector component),
each of which contains objects with TClonesArray's of the different data
containers for that detector.  Schematically:

   TObjArray             TObjArray's
   ---------             -----------
   event data  CONTAINS  objArray1 (drift chambers (DC))
   structure             objArray2 (ring cherenkov)
                         objArray3 (tof wall)
                         ..... 

                                   Categories
                                   --------------
   Then, e.g., objArray1 CONTAINS  category1 (TClonesArray of DC raw data)
   'category' objects which each   category2 (TClonesArray of DC cal data)
   contain a TClonesArray          category3 (TClonesArray of DC hit data)
                                   .....

The TObjArray's are necessary because there are different types of
'category' objects for optimization reasons.

Currently, we split the two TObjArray 'levels' by hand, creating new
branches for each object.  We implemented this 3 years ago.  However, our
manual splitting essentially overrides much of Root's powerful automatic
splitting implemented in Root v3.xx.

If TObjArray's were automatically split by Root, then a new branch
containing its objects as sub-branches (which may be split further) would be
created.  This would be very useful for us, and I can think of other uses,
too.  Is this technically difficult?

Otherwise, to fully implement Root's automatic splitting scheme in an
elegant way, we may have to eliminate our different types of data
'categories' and replace all of our TObjArray's by TClonesArrays.  This is
not a big deal, but it involves changing our concept somewhat... 

Best regards,
Dan
                 --------------------------------------------
                | Dr. Daniel Magestro   +49-6159-71-2147     |
                | magestro@gsi.de       GSI/Kernphysik I     |
                | www.gsi.de/~magestro  Planckstr. 1         |
                | (last updated Nov.8)  64291 Darmstadt (DE) |
                 --------------------------------------------



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:08 MET