Hi,
I just upgraded my desktop to ubuntu 18 and installed the ROOT_v6.16
_ROOT Version: v6.16
_Platform: ubuntu 18
_Compiler: gcc7.3
When I tried to open a old rootfile (generated by ROOT v6.06), I encountered an error.
In this rootfile, a set of TH1S histograms were stored as TClonesArray in a branch of TTree.
The error message is at the bottom of this message. I think the problem is that StreamerInfo of the TH1S class are different between the two ROOT versions. Once I opened root, I can run
“TH1S::Class()->GetStreamerInfo()->ls()”
ROOT v6_12: StreamerInfo for class: TH1S, version=2, checksum=0x82d4c80a
ROOT v6_16: StreamerInfo for class: TH1S, version=2, checksum=0x8c4d9dcb
The Streamerinfo of the TH1S class in v6_12 is consistent with what I have in the rootfile. I do not encountered a problem in opening the rootfile with this root version.
Here is the error information in opening the rootfile with ROOT v6_16
"Error in TBufferFile::CheckByteCount: object of class TClonesArray read too many bytes: 313428 instead of 207176
Warning in TBufferFile::CheckByteCount: TClonesArray::Streamer() not in sync with data on file result_5353_3_159.root, fix Streamer()
"
I am not sure what is the problem here, but it leads to a lot of troubles if I cannot use the latest root to open the old rootfiles. Please let me know what would be the solution. Thanks a lot,
Xin