Problem with hierarchy of TClonesArrays


I have the following event structure (based on Event.cxx example):

A class MyEvent which contains a TClonesArray* of class MyDTag, coded in the same was as the Tracks are in the Event.cxx example. MyDTag constains a TClonesArray* of class MyCand, coded in an analogous way.

The reason for this structure is the the signal candidates (MyCand) are built from tracks not used in the tag (MyDTag), yet there may be more than one MyCand per MyDTag.

I find that if I include the MyCand level, I get runtime crashes. Without that level everything works fine.

Any suggestions of what might be wrong or how to do this in a better way? Or a nice example of such hierarchy would be extremely helpful.

Alex Smith


Most likely the pointer to the inner TClonesArray is not properly handles (either missing a //-> or not initialized or not cleared), hard to know without some more details. Also note that nested TClonesArray does yield as much benefit as top level TClonesArray and could probably use a different container.