Dear experts,
Recently I’m using TEfficiency and calling Fit from there, which internally calls TBinomialEfficiencyFitter::Fit. And I notice that it’s ignoring my parameter limit settings.
Here is an example:
TF1 fermi{"fermi", "[0] / (1 + std::exp(- (x - [1]) / [2])) + [3] * TMath::Gaus(x, [4], [5])", 0.6, 20};
fermi.SetParameters(0.996, 1.20, 0.175, -0.05, 4, 0.2);
// fermi.SetParLimits(3, -0.06, 0.);
int status = eff->Fit(&fermi, "IV");
std::cout << fermi.GetParameter(3) << '\n';
The eff
object can be found in the attached file.
With SetParLimits
or not, it always gives -0.0880273, which is beyond the limits. And in the verbose output, under “parameter definitions”, the “limits” are “no limits”.
Am I missing something here or is there something not working properly inside TBinomialEfficiencyFitter::Fit? Thank you!
Best,
Kevin
debugFitter.root (8.9 KB)