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.
Any suggestions for what might be going wrong?
Can you provide me with your data file?
I will check into it.
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:
[code]root  gROOT->GetClass(“TVector3”)->GetStreamerInfo()->ls()
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  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]
I will try to fix the underlying issue.
I get the similar warning after updating the ROOT (5.02) by CVS when I compile my program:
warning in TClass::TClass: no dictionary for class TRotation is available
and when I run the program it gives this error:
Error: TLorentzVector() header declared but not defined FILE:TGenPhaseSpace.h
while it was working already.
is it due to updating procedure or I forgot to do some thing?!
thank you for your kind help.
I had problems earlier when updating with cvs.
I bet if you download and compile root tar ball most of your problems will go away.
Please don’t forget to do:
when finished building ROOT it will make the library map file. You can also do:
which is done when doing “make install”. It is described in the INSTALL
notes the README directory.