TStreamerInfo::BuildCheckのWarning

CERN/ROOTを使っている時に、 Mac 1で作成したROOTファイルをMac 2で開こうとすると、TStreamerInfo::BuildCheckが以下のようなWarningを出しました。メッセージの要旨は「ROOTファイルから読み込んだTNamedやTAttMarkerといったクラスの定義情報が、現在使用しているROOTのバイナリにおける定義と異なっている」です。

原因

おかしいなと思って調べると、2台のMacでROOTのバージョンが違っていました。Mac 1ではROOT 5.34.25でファイルを作成して保存していたのに対し、Mac 2ではROOT 5.24.00で開こうとしていました。

解決方法

Mac 2のROOTを5.34.25にアップグレードしたところ、Warningは出なくなりました。実験データの取得を行うDAQ用Macと解析用のMacのソフトウエア環境は揃えましょう、という教訓です。

root -l 20150205_221448.root
root [0]
Attaching file 20150205_221448.root as _file0...
Warning in <TStreamerInfo::BuildCheck>:
   The StreamerInfo for version 1 of class TNamed read from file 20150205_221448.root
   has a different checksum than the previously loaded StreamerInfo.
   Reading objects of type TNamed from the file 20150205_221448.root
   (and potentially other files) might not work correctly.
   Most likely the version number of the class was not properly
   updated [See ClassDef(TNamed,1)].
Warning in <TStreamerInfo::BuildCheck>:
   The StreamerInfo for version 1 of class TObject read from file 20150205_221448.root
   has a different checksum than the previously loaded StreamerInfo.
   Reading objects of type TObject from the file 20150205_221448.root
   (and potentially other files) might not work correctly.
   Most likely the version number of the class was not properly
   updated [See ClassDef(TObject,1)].
Warning in <TStreamerInfo::BuildCheck>:
   The StreamerInfo of class TAttMarker read from file 20150205_221448.root
   has the same version (=2) as the active class but a different checksum.
   You should update the version to ClassDef(TAttMarker,3).
   Do not try to write objects with the current class definition,
   the files will not be readable.

Warning in <TStreamerInfo::BuildCheck>:
   The StreamerInfo of class TLeafI read from file 20150205_221448.root
   has the same version (=1) as the active class but a different checksum.
   You should update the version to ClassDef(TLeafI,2).
   Do not try to write objects with the current class definition,
   the files will not be readable.

Warning in <TStreamerInfo::BuildCheck>:
   The StreamerInfo of class TLeaf read from file 20150205_221448.root
   has the same version (=2) as the active class but a different checksum.
   You should update the version to ClassDef(TLeaf,3).
   Do not try to write objects with the current class definition,
   the files will not be readable.

Warning in <TStreamerInfo::BuildCheck>:
   The StreamerInfo of class TLeafD read from file 20150205_221448.root
   has the same version (=1) as the active class but a different checksum.
   You should update the version to ClassDef(TLeafD,2).
   Do not try to write objects with the current class definition,
   the files will not be readable.

Warning in <TStreamerInfo::BuildCheck>:
   The StreamerInfo of class TLeafF read from file 20150205_221448.root
   has the same version (=1) as the active class but a different checksum.
   You should update the version to ClassDef(TLeafF,2).
   Do not try to write objects with the current class definition,
   the files will not be readable.

Warning in <TStreamerInfo::BuildCheck>:
   The StreamerInfo of class TLeafS read from file 20150205_221448.root
   has the same version (=1) as the active class but a different checksum.
   You should update the version to ClassDef(TLeafS,2).
   Do not try to write objects with the current class definition,
   the files will not be readable.

Warning in <TStreamerInfo::BuildCheck>:
   The StreamerInfo of class TList read from file 20150205_221448.root
   has the same version (=5) as the active class but a different checksum.
   You should update the version to ClassDef(TList,6).
   Do not try to write objects with the current class definition,
   the files will not be readable.

Warning in <TStreamerInfo::BuildCheck>:
   The StreamerInfo of class TSeqCollection read from file 20150205_221448.root
   has the same version (=0) as the active class but a different checksum.
   You should update the version to ClassDef(TSeqCollection,1).
   Do not try to write objects with the current class definition,
   the files will not be readable.

Warning in <TStreamerInfo::BuildCheck>:
   The StreamerInfo of class TCollection read from file 20150205_221448.root
   has the same version (=3) as the active class but a different checksum.
   You should update the version to ClassDef(TCollection,4).
   Do not try to write objects with the current class definition,
   the files will not be readable.

Warning in <TStreamerInfo::BuildCheck>:
   The StreamerInfo of class TBranchRef read from file 20150205_221448.root
   has the same version (=1) as the active class but a different checksum.
   You should update the version to ClassDef(TBranchRef,2).
   Do not try to write objects with the current class definition,
   the files will not be readable.

Warning in <TStreamerInfo::BuildCheck>:
   The StreamerInfo of class TRefTable read from file 20150205_221448.root
   has the same version (=3) as the active class but a different checksum.
   You should update the version to ClassDef(TRefTable,4).
   Do not try to write objects with the current class definition,
   the files will not be readable.

Warning in <TStreamerInfo::BuildCheck>:
   The StreamerInfo of class TObjArray read from file 20150205_221448.root
   has the same version (=3) as the active class but a different checksum.
   You should update the version to ClassDef(TObjArray,4).
   Do not try to write objects with the current class definition,
   the files will not be readable.

Warning in <TFile::ReadStreamerInfo>: 20150205_221448.root: not a TStreamerInfo object
root [1] .ls
TFile**		20150205_221448.root
 TFile*		20150205_221448.root
  KEY: TTree	eventTree;8	eventTree
  KEY: TTree	eventTree;7	eventTree
  KEY: TObjString	configurationFile;1	Collectable string class
root [2] eventTree->Show(1)
Warning in <TStreamerInfo::Compile>: Counter fNClusterRange should not be skipped from class TTree
======> EVENT:1
 boardIndexAndChannel = 0
 unixTime        = 1.42314e+09
 timeTag         = 4269674338
 triggerCount    = 791888247
 nSamples        = 200
 energy          = 0
 phaMax          = 2265
 waveform        = 2040,
                  2039, 2041, 2044, 2047, 2049, 2049, 2047, 2051, 2047, 2046,
                  2043, 2041, 2043, 2045, 2053, 2059, 2068, 2077, 2084
root [3] .q