root-project/root

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:

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.