Successful Minimization in lxplus8 and lxplus9 and failed Minimization in lxplus7

Dear experts,
I developed a complex function in Roofit to describe the full spectrum of my background distribution using the most recent Roofit version in lxplus9 (and found that it works well also in lxplus8). However, I was now trying to run the same code in lxplus7 to restore the compatibility of my background workspace with the signal workspaces (which are generated within a workflow relying on CMS software and lxplus7 Root version), but in this case the fit does not converge.

I read about some optimisation of Minuit2 in more recent Root versions and I am wondering if this might be related. Any help to understand and suggestion to get this code working in lxplus7, if you see a possible solution, would be greatly appreciated.
I would like to share the code and input to run it to allow you to reproduce the error (but that’s not allowed to new users.)

Thank you very much in advance.

Kind regards,
–Elisa

Hi @elfontan,

welcome to the forum! I’m sure @jonas can shed some more light on your issue.

Cheers,
Marta

Hello @elfontan, welcome to the ROOT forum! I remember you from LLR! Sorry for the late reply :frowning:

We didn’t change that much in Minuit 2 itself, but the big change is that from ROOT 6.30 onwards, Minuit 2 is now the default minimizer:
https://root.cern/doc/v630/release-notes.html#minuit2-is-now-the-default-minimizer

Since lxplus 8 and lxplus 9 come with ROOT 6.30, while lxplus7 comes with ROOT 6.24, this might very likely explain why your fit doesn’t converge on lxplus7. Minuit 2 has many improvements for complicated fits to converse. That’s why CMS combine always used Minuit 2 as the default for a long time.

So, what happens if you’re explicitly using Minuit 2 also on lxplus7 by passing the RooFit::Minimizer("Minuit2") command argument to RooAbsPdf::fitTo() or RooAbsPdf::createNLL() (depending on how your entry point to the likelihood fit looks like)?

I hope that helps!
Cheers,
Jonas