[ROOT] Changing class definition in split level=2

From: Magestro Daniel (D.Magestro@gsi.de)
Date: Thu Aug 09 2001 - 16:21:20 MEST


Hi all,

I have read old roottalk posts as well as the latest Root manuals, but I
cannot find the solution to a basic problem.  (We are currently using
v2.25/03.)

In our analysis, all of our data classes use split level = 2.  The problem
is that, if we change a class definition (for example, changing the name of
a data member), adding a custom streamer to that class does not work because
the streaming for the class is done by TClonesArray/TBranchClones.  The
class streamer is not called at all.

I read in the Users Guide v3.1 that, in Root 3, there is a BypassStreamer()
function in TClonesArray which allows one to force the use of individual
class streamers.  This (in addition to TStreamerInfo) should solve the
problem for class def changes which take place after we migrate to Root 3.
However, is there a way to read our old files created with v2.25/03 if we
now change the class def?  We have a large volume of files which fit this
description, and of course we would like to avoid having to maintain two
versions of our code.

Any ideas would be greatly appreciated... thanks,

Dan
       -------------------------------------------
      |  Daniel Magestro        +44-6159-71-2147  |
      |  magestro@gsi.de        GSI/Kernphysik I  |
      |  www.gsi.de/~magestro   Planckstr. 1      |
      |    < last updated >     64291 Darmstadt   |
      |    < Aug 6, 2001  >     Germany           |
       -------------------------------------------
 



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