Using array of ROOT::Fit::BinData in combinedFit.C

Dear Experts,

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.

Thank you very much!

combinedFitMod.C (5.2 KB)

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.

Hello,

This issue should have been fixed with the latest ROOT 6.22. On lxplus, the default version of ROOT is still 6.20. You can activate ROOT 6.22 with

. /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.22.00/x86_64-centos7-gcc48-opt/bin/thisroot.sh

Cheers,
Jakob

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?

Sorry, this worked
source /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.22.00/x86_64-centos7-gcc48-opt/bin/thisroot.csh

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?

I mean, could you please release the root 6.22 for centos8 too?

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.