【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