Re: Static array as datamember and backward compability

From: Rene Brun (Rene.Brun@cern.ch)
Date: Thu Feb 24 2000 - 15:31:57 MET


Hi Christoph,
There are no problems with TClonesArray when the class is not split, ie
when your class Streamer is used.
The problem is likely connected with the split mode (default for
TClonesArray).
I assume you are using 2.23/12

Rene Brun


Christoph Blume wrote:
> 
> Hi All,
> 
>   We have the following problem: We use a class that contains arrays of
> fixed size as data member and we store these objects in a TClonesArray as
> part of a tree. After a while, we found that for some reasons we had to
> increase the dimensions of the arrays, which made the root files
> containing the old version of that class unreadable. In principle,
> streaming the old version with the smaller arrays into the new version is
> no problem, since TBuffer::ReadStaticArray() knows about the actual
> dimension of the array written to file. However, as soon as the objects
> are stored as a part of a TClonesArray the backward compability gets lost.
> Somehow the TClonesArray is not able to adjust itself to the different
> object size, when it is read in, event though the object itself can be
> read in correctly. This problem seems only to occur  in connection with
> array-dimensions. Adding a basic type data member for instance, like
> a single Int_t, does not cause a problem, provided the streamer function
> is customized accordingly.
>   So, is this a known limitation of TClonesArray and is there a workaround
> (apart from using TObjArray, of course)?
> 
>                 Greetings,
>                         Christoph
> 
> ####################################################################
>       Christoph Blume
>       GSI, KP1                          E-mail: C.Blume@gsi.de
>       Planckstr. 1                        Tel.: 49-6159-712589
>       64220 Darmstadt                     FAX.: 49-6159-712989
> ####################################################################



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:19 MET