TVector3 and ROOT 4.02.00

Hi,

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?

Thanks,
Heather

Hi Heather,

Can you provide me with your data file?
I will check into it.

Cheers,
Philippe.

Hi,

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 [0] 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 [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]

I will try to fix the underlying issue.

Cheers,
Philippe.

Hi,

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.
best regards

Sohani

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:

make install

when finished building ROOT it will make the library map file. You can also do:

make map

which is done when doing “make install”. It is described in the INSTALL
notes the README directory.

Cheers, Fons