TBranch version in ROOT v5.18c

Hi,

We’re currently using ROOT v5.18c. One of our colleagues was attempting to read one of our ntuples (all the branches are simple data types) using ROOT v5.16, and received this warning:

Warning in TStreamerInfo::BuildCheck:
The StreamerInfo of class TBranch read from file
data/r0236102471_v000_merit.root
has the same version (=10) as the active class but a different checksum.
You should update the version to ClassDef(TBranch,11).
Do not try to write objects with the current class definition,
the files will not be readable

I looked at the include file for TBranch.h in ROOT v5.14d (it’s what I had around) versus TBranch.h in 5.18c. I see that there are two additional data members - does the version need to be incremented?

I’m assuming that despite this warning - one could still read our ntuples with an earlier version of ROOT - but should not, as the warning says attempt to write. Right?

Thanks,
Heather

Hi Heather,

The 2 new members are ‘transient’ and do not affect the I/O layout and hence there is no need to increase the version number.

Could you send me this file to verify what the issue might be?

Thanks,
Philippe.

Hi Philippe,
hmm…well then I don’t understand the problem but here is a one event ntuple created with ROOT v5.18c. When I open this file in ROOT v5.16.00, I received the following message:

root [0] TFile f(“small.root”,“READ”)
Warning in TStreamerInfo::BuildCheck:
The StreamerInfo of class TBranch read from file small.root
has the same version (=10) as the active class but a different checksum.
You should update the version to ClassDef(TBranch,11).
Do not try to write objects with the current class definition,
the files will not be readable.

Thanks,
Heather
small.root (32.3 KB)

Hi,

The problem was due to a problem in the checksum validation code. This problem has been fixed in the production release v5.18

Cheers,
Philippe

Thanks for checking!