Re: [ROOT] Problems with the ClassVersionID

From: Rene Brun (Rene.Brun@cern.ch)
Date: Fri Mar 22 2002 - 19:32:32 MET


Hi Pierre,

Did you specify the "+" option in the pragma statement
of your LinkDef.h file?

Read the section in the Users Guide indicating the steps
when moving from the old system to the automatic schema evolution system.

Rene Brun

On Fri, 22 Mar 2002, Pierre Da Silva wrote:

> 	Hi Rooters,
> 
> 	We've got a class in which we have added new members. We have
> incremented the ClassVersionID in the ClassDef macro. The problem is that
> we've got old files with the old ClassVersionID that we must read with the
> new structure of the class. When we only read the old files, everything is
> all right, the fields of the new members are all equal to 0. But when we
> read the old files after have read the new ones, the same fields are not
> equal to 0 anymore, which is very bad for us, because we are making
> tests on these values.
> 
> 	So my question is: is there a way to get the ClassVersionID
> corresponding to the recorded data, but not the one coming from the
> actual structure of the data, which is what I get when I do a
> Class_Version() ?
> 
> 	Another question: I have tried to modify the corresponding
> streamer, but it seems that it has no effect on the results. With an empty
> TData::Streamer() function (I mean:
> 
> 		void TData::Streamer(TBuffer &R__b)
> 		{
> 		}
> 
> ), our event display is still working!!
> So, if ROOT uses another Streamer, where does it get the data structure,
> and which streamer is it using?
> 
> 				Thanks a lot for helping
> 				Pierre
> 



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:47 MET