Hi,
I am trying to use to Root 3.00.06, and am using Windows NT 4.
I have an Event class that I have used with both Root 2.22/10 and Root
2.25/03. I wanted to start using the schema evolution that is now
available. To that end I followed the directions in the page
http://root.cern.ch/root/SchemaEvolution.html.
In this case, I moved the streamers to the implementation files,
incremented the version numbers of all classes, and modified the LinkDef.h
so that all classes were of the form:
#pragma link C++ class Event-;
Here is an example streamer, where we use the new method ReadBuffer if the
version number is > 1:
void Event::Streamer(TBuffer &R__b)
{
// Stream an object of class Event.
if (R__b.IsReading()) {
UInt_t R__s, R__c;
Version_t R__v = R__b.ReadVersion(&R__s, &R__c);
if (R__v > 1)
{
Event::Class()->ReadBuffer(R__b, this, R__v, R__s, R__c);
return;
}
/// Old Versions
TObject::Streamer(R__b);
R__b >> m_run;
R__b >> m_event;
R__b >> m_CAL;
R__b >> m_ACD;
R__b >> m_TKR;
R__b >> m_MCPart;
R__b >> m_L1Trigger;
R__b >> m_Tagger;
} else {
Event::Class()->WriteBuffer(R__b, this);
}
}
I can write a file (using Root 3.00.06) just fine, with no warnings...but
when I go to open the root file (again in Root 3.00.06)..I receive a number
of warning messages:
WARNING, class:Event StreamerInfo read from file:myfile.root
has the same version:2 than the active class
but a different checksum.
You should update the version to ClassDef(Event,3).
Do not try to write objects with the current class definition,
the files will not be readable.
What am I doing incorrectly?
Thank you,
Heather
********************************************************************
Heather Maria Theresa Arrighi Kelly
Goddard Space Flight Center
T2 Room 59
phone (301) 286-8359
fax (301) 286-1629
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:40 MET