I have a series of ROOT classes that worked just fine with ROOT 3.10/02. We’ve since upgraded to ROOT 4.02/00 - when I rebuild my class library (with no code changes from what was used in 3.10/02) and write a new ROOT file, and then later open it in CINT - I receive the following warning:
Warning in TStreamerInfo::BuildCheck:
The StreamerInfo of class TVector3 read from file mc.root
has the same version (=3) as the active class but a different checksum.
You should update the version to ClassDef(TVector3,4).
Do not try to write objects with the current class definition,
the files will not be readable.
I can’t imagine why TVector3 would start giving me trouble now. I see this behavior both on Windows and using Red Hat Linux Enterprise Edition.
This must be a problem with the autoloading mechanism.
You can work-around the issue but accessing forcint the
generation of the TVector3’s StreamerInfo before opening your file:
StreamerInfo for class: TVector3, version=3
TObject BASE offset= 0 type=66 Basic ROOT object
Double_t fX offset= 16 type= 8
Double_t fY offset= 24 type= 8
Double_t fZ offset= 32 type= 8
i= 0, TObject type= 66, offset= 0, len=1, method=0
i= 1, fX type= 28, offset= 16, len=3, method=0
root [1] TFile *_file0 = TFile::Open(“mc.root”)
Warning in TClass::TClass: no dictionary for class McEvent is available
Warning in TClass::TClass: no dictionary for class McParticle is available
Warning in TClass::TClass: no dictionary for class McIntegratingHit is available
Warning in TClass::TClass: no dictionary for class VolumeIdentifier is available
Warning in TClass::TClass: no dictionary for class McPositionHit is available
Warning in TClass::TClass: no dictionary for class FileHeader is available[/code]