【ROOT】ファイルを開くとTStreamerInfo::BuildCheckのWarningが出る

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のソフトウエア環境は揃えましょう、という教訓です。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
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