# TBinomialEfficiencyFitter produces unexpected results

I tried to use TBinomialEfficiencyFitter on a pair of 1D histograms: numerator being a subset of the denominator and fitting the to a parametric form: efficiency vs. electronic threshold - as threshold goes up, efficeincy goes down. My histograms had very low statistics. My parameteric function is a simple sigmoidal: myFunc(t) = Aexp(-b*(t-t0))/(1+exp(-b*(t-t0))): A is the efficiency in the limit t–> 0. The three attached histograms show the efficiency with the binomial fitter (1st and 3rd plots - different data sets) and the “normal” fitter (2nd plot - same data as 3rd plot) using all equal weights: ratio->Fit(“myFunc”,“w”) The 3rd plot is the problem: Its as though the binomial fitter ignores the 100% efficiency bins for t<160. Note: if there is there are not a bunch of consecutive bins at the beginning that have 100% efficiency (1st plot), TBinomialEfficiencyFitter does a better job.

My comment is: I feel that that the fancy fitter is doing a worse job than the normal chi2 fitter w/ equal weights. Am I missign something? Thanks

I am using Root 5.18/0 on winxp

Lorenzo will process your mail once he will be back from holidays. Meanwhile could you post your histograms and a short script?

Rene

Hi,
the attached .root file contains a numerator (pnum) and denominator (pden) histogram and a parametric efficency function (peff)

TBinomialEfficiencyFitter b(pnum,pden);
b.Fit(peff)

gives bad fit to data. Whereas

pnum->Divide(pden)
pdnum->Fit(peff,“w”)

gives reasonable fit
binomial.root (7.61 KB)

Hi,

your function can reach values greater than 1 which are not physicals and then confuse the binomial fitter which does not converge at the end.

You should either find a better function parameterization which cannot give values greater than 1 or set a limit on the first parameter P.
For example this works fine:

``````TBinomialEfficiencyFitter b(pnum,pden);
peff->SetParLimits(0,0,1);
b.Fit(peff) ``````

Lorenzo