I’m doing a fit with a Gaussian and a Chebychev pdf with:
ROOFITSYS=/cvmfs/cms.cern.ch/slc6_amd64_gcc481/lcg/roofit/5.34.18-cms8/
Sometimes I got the following error:
[#1] INFO:Eval – RooRealVar::setRange(x) new range named ‘sobRange’ created with bounds [0.025551,0.199345]
cmsRun: roofit/src/RooChebychev.cxx:141: virtual Double_t RooChebychev::analyticalIntegral(Int_t, const char*) const: Assertion `xminfull <= _x.min(rangeName) && _x.min(rangeName) <= xmaxfull’ failed.
Abort
I runned this code several time and it is the first time I got this problem. Do you know why?
Recently a bug fix has been applied in the RooChebyshev class and it is related to fitting in different ranges.
Can you please try with one latest ROOT version (>= 5.34.22 ) ?
Dear Lorenzo,
please find attached a macro where I pasted the part of the code that will reproduce the error.
(To launch it I load the roofit library
gROOT->ProcessLine(".include /afs/cern.ch/cms/slc6_amd64_gcc481/lcg/roofit/5.34.22-cms4/include/");
and I execute it with .x FitPi0.cc)
Thank you for the code and the data. I have executed the code in the latest 5.34 and 6 version of ROOT, and they both seem to work fine. I did not get any Assert error.
Which version have you tried ?
Hi,
when I run the macro I load at the beginning:
gROOT->ProcessLine(".include /afs/cern.ch/cms/slc6_amd64_gcc481/lcg/roofit/5.34.22-cms4/include/");
(but I tried different versions as 5.34.18-cms8, 5.34.07-cms3 etc…)
and my root is:
ROOTSYS=/cvmfs/cms.cern.ch/slc6_amd64_gcc481/lcg/root/5.34.18-cms9/
I don’t see any root 6 installed in my working area.
I just tried with:
ROOFITSYS=/cvmfs/cms.cern.ch/slc6_amd64_gcc491/lcg/roofit/6.02.00-cms/
ROOTSYS=/cvmfs/cms.cern.ch/slc6_amd64_gcc491/lcg/root/6.02.00-cms4
and I see the same error.
Maybe I’am not setting correctly the right root version?
I’m setting the root version with
setenv ROOFITSYS /cvmfs/cms.cern.ch/slc6_amd64_gcc491/lcg/roofit/6.02.00-cms/
setenv ROOTSYS /cvmfs/cms.cern.ch/slc6_amd64_gcc491/lcg/root/6.02.00-cms4
plus in my rootLogon I have:
gROOT->ProcessLine(".include /afs/cern.ch/cms/slc6_amd64_gcc491/lcg/roofit/6.02.00-cms/include/");
But I still see the same error when running the macro.
Dear Lorenzo,
You are right about the version.
In release CMSSW_7_4_0_pre6, where the root version used by default is 5.34.22-cms3 everything work without any problem.
In release CMSSW_7_2_0_pre7 the root version is 5.34.18 and give the error I reported.
If I change the root version in CMSSW_7_2_0_pre7 I got anyway the error, and this suggest me I’m not changing correctly the root version.
I explain you how I change it:
0) I type root and i get the 5.34.18 version
I change the enviromental variables:
setenv ROOTSYS /cvmfs/cms.cern.ch/slc6_amd64_gcc481/lcg/root/5.34.22-cms3
setenv ROOFITSYS /cvmfs/cms.cern.ch/slc6_amd64_gcc481/lcg/roofit/5.34.22-cms3
setenv PATH $ROOTSYS/bin:$PATH
setenv LD_LIBRARY_PATH $ROOTSYS/bin:$LD_LIBRARY_PATH
I type root and I get the 5.34.22-cms3 version (so it should be ok)
But then I got:
A crash if I open root and do (see attached file):
gROOT->ProcessLine(".include /afs/cern.ch/cms/slc6_amd64_gcc481/lcg/roofit/5.34.22-cms3/include/")
.x macro
The same error as before if running the actual code that does the fit
Hi ,
I think you are mixing libraries, for this you get the crash. Since roofit is provided in a separate place,
you should add also $ROOFITSYS/lib in the LD_LIBRARY_PATH (and use $ROOTSYS/lib)
Otehrwise I think in Scram there is a way to change the ROOT and RooFit version of a CMSSW release. I did in the past, by changing the configuration files, but I can’t remember right now exactly how to do it
If I do so I get:
----- Begin Fatal Exception 17-Feb-2015 17:58:40 CET-----------------------
An exception of category ‘FatalRootError’ occurred while
[0] Constructing the EventProcessor
[1] Constructing service of type InitRootHandlers
Additional Info:
[a] Fatal Root Error: @SUB=TUnixSystem::Load
version mismatch, /cvmfs/cms.cern.ch/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_2_0_pre7/lib/slc6_amd64_gcc481/pluginDataFormatsWrappedStdDictionariesCapabilities.so = 53418, ROOT = 53422
Ok anyway I think now is just matter of selecting the right root version ina coherent way…