Warnings from the deserialization of RooCrystalBall
Opened this issue · 3 comments
Check duplicate issues.
- Checked for duplicates
Description
From my colleague I have a ROOT file with RooWorkspace that contains the compound pdf that uses RooCrystalBall
for some components.
I am trying to read this file using ROOT 6.23.02 and I get following warnings
TStreamerInfo::BuildCheck:0: RuntimeWarning:
The StreamerInfo of class RooCrystalBall read from file <...>
has the same version (=1) as the active class but a different checksum.
You should update the version to ClassDef(RooCrystalBall,2).
Do not try to write objects with the current class definition,
the files will not be readable.
TStreamerInfo::CompareContent:0: RuntimeWarning: The following data member of
the on-file layout version 1 of class 'RooCrystalBall' differs from
the in-memory layout version 1:
RooTemplateProxy<RooAbsReal> alphaR_; //
vs
unique_ptr<RooTemplateProxy<RooAbsReal>,default_delete<RooTemplateProxy<RooAbsReal> > > alphaR_; //
TStreamerInfo::CompareContent:0: RuntimeWarning: The following data member of
the on-file layout version 1 of class 'RooCrystalBall' differs from
the in-memory layout version 1:
RooTemplateProxy<RooAbsReal> nR_; //
vs
unique_ptr<RooTemplateProxy<RooAbsReal>,default_delete<RooTemplateProxy<RooAbsReal> > > nR_; //
Presumably the file has been create with some earlier version of ROOT.
I have some suspicion that the warning is not harmless:
while the resulting PDF looks OK when I use it for the fit&draw,
when I get the CDF from it, for some entries in the range CDF (slightly) exceeds 1.
Could it be a sequence of the problems wtih deserialization ?
Reproducer
I am using ROOT from LCG_106 build cvmfs
(I get the same problem, when using LCG dev3 nightly build)
ROOT version
I am using ROOT from LCG_106 build cvmfs
(I get the same problem, when using LCG dev3 nightly build)
Installation method
LCG cvmfs
Operating system
lxplus
Additional context
No response
I am trying to read this file using ROOT 6.23.02 and I get following warnings
You mean 6.32.02, right?
That's strange. The RooCrystalBall was introduced in ROOT 6.24, and it's class layout has not changed since then:
- https://github.com/root-project/root/blob/v6-24-00/roofit/roofit/inc/RooCrystalBall.h
- https://github.com/root-project/root/blob/master/roofit/roofit/inc/RooCrystalBall.h
Do you happen to know which version the workspace was written with? Or even better, can you provide a reproducer for the problem in the form of a script to write such a problematic workspace with an older ROOT version? Thanks!
Hi @guitargeek
yes, I am trying to use 6.32.02, sorry.
My colleague, who created the file, says that 6.26/08 has been used.
And I do not have access to his code - only for resulting file with ws, and due to various
reasons I cannot share this file.
That's ok, thanks. I hope to reproduce this by producing a simple workspace with the older ROOT version you named.