where is this information stored in ROOT? (not the ROOT file, obviously I managed to extract it from that file :P)
and under which conditions is the version subject to be bumped?
are all the versions of all STL containers bumped together? (std::string, std::vector, std::set, std::map, …)
ROOT Version: 6.16/00 Platform: Linux/amd64 Compiler: Not Provided
I understand the last 00 00 00 02 from the first line: that’s the length of the vector.
00 00 00 00 00 00 00 01: the 2 values for Px (int32_t)
40 00 00 00 00 00 00 00: the 2 values for Py (double)
00 00 00 03 00 00 00 03: the 2 values for Pz (int32_t)
and finally the value for the End data member (07 65 6e 64 2d 30 30 32).
but I have trouble interpreting the first bytes… 40 00 00 2c seems to be the usual “version, bytecount” except that 40 09 is a bit too much for a version: I suspect the proper version should be 9 instead of 16393. is there a mask to apply or test for?
then, what are the remaining 6 bytes 00 00 64 04 49 17 ? an index into something to get a reference to the streamer of P3 ?
thanks, I was confused because the mask value looked a lot like kByteCountVMask…
sorry, I wasn’t very articulate. my issue is that just by reading the ROOT file, I don’t seem to be able to locate a StreamerInfo for, e.g. ,"vector<double>" (the groot equivalent of TFile::GetStreamerInfoList() only returns the StreamerInfos for Event and P3.)
but I realize now that the version 9 isn’t the version of the class being written out but, actually, the version of TStreamerInfo
Yes, the ‘streamerInfo’ for the STL collection does not contains any interesting/persistent information so we don’t write them out. The version ‘9’ is really a descriptor of the version number of the STL on-disk layout (and since change to such are usually change to TStreamerInfo, I re-used the StreamerInfo version number).