In Phenix, we’re getting some trouble to read back with Root 4.00/08 some objects on our dsts (produced with Root 3.05/07), namely objects that contain STL maps.
I attach a very simple example to reproduce the problem. The Makefile there is for Linux. It produces 2 executables : writeMap and readMap. Under the same Root version (being 3 or 4), expected output is :
./writeMap
titi -> 2
toto -> 1
./readMap
titi -> 2
toto -> 1
The faulty output file (testmap.root) is included in the tar file.
When writeMap is executed under Root3.05/07 and readMap under Root4.00/08, here’s what I get :
Warning in TStreamerInfo::BuildCheck:
The StreamerInfo of class Map read from file testmap.root
has the same version (=1) as the active class but a different checksum.
You should update the version to ClassDef(Map,2).
Do not try to write objects with the current class definition,
the files will not be readable.
Root 3.05/07 used is installed on a RH8.0 machine 2.4.20-19.8smp
Root 4.00/08 used is installed on a SL3.01 machine 2.4.21-15.ELsmp Map2.tar.gz (1.73 KB)
Can you send me a tar file with the built result from your laptop (including dictionary and object files)?
Can you try with a ROOT version build from the head of the CVS repository?