to show my issue, I am attaching a slightly modified version of the
$ROOTSYS/tutorials/fit/combinedFit.C
Both are doing the same combined fit of two TH1 with two TF1
and give the same result on my PCs with CentOS 6 or 7 and Ubuntu 20.04,
independent of the ROOT version. Several years I was using such modification in real data combined fits of hundreds TH1 or TGraph.
But only recently I’ve observed that combinedFitMod.C fails on the lxplus with CentOS 7 or 8, with this error message:
root.exe: /builddir/build/BUILD/root-6.20.04/math/mathcore/src/BinData.cxx:296: ROOT::Fit::BinData& ROOT::Fit::BinData::operator=(const ROOT::Fit::BinData&): Assertion `fDataErrorLow.empty() != fDataError.empty() || kNoError == fErrorType’ failed.
The main difference of the modified version is the use of array (n=2):
ROOT::Fit::BinData data[n]; (1)
which seems invalid in ROOT, but fails only on lxplus.
I have two questions:
a) Why statement (1) fails on lxplus (maybe different compilation options?)?
b) Can you please make possible a valid use of ROOT::Fit::BinData arrays?
When one fits hundreds of data sets with hundreds of functions (sharing common parameters), using of arrays for them greatly simplifies the code.
To be clearer, I’d like to add that my PCs use the CentOS from the CentOS site while lxplus uses the CERN’s release. The combinedFitMod.C fails on lxplus, but runs ok on standard CentOS, Ubuntu and probably on any other linux.
Dear Jakob,
I can not activate root 6.22 on lxplus. Your command gives me
/usr/bin/.: Permission denied
Using “source” instead of “.” gives
source /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.22.00/x86_64-centos7-gcc48-opt/bin/thisroot.sh
Badly placed ()'s.
Any hint?
Dear Jakob,
thanks a lot, indeed, the issue solved on lxplus with centos7 and root 6.22.
But I am more interested to work on lxplus8 with centos8.
Could you please add the root 6.22 on lxplus8 too?