TEfficiency:CheckConsistency Error

Hello Experts,

I am trying to make a simple efficiency graph from dividing two histograms.
But I am getting following warnings and errors**
Then I checked explicitly the bin contents of both the histograms and I have following entries***
So, numerator is always smaller than denominator but even then I am getting these warnings and errors.
Could anybody please suggest any solution?
I am attaching my macro with this message.

Thanks and regards,
Arun.

ntuplePT.C (1.64 KB)

**
Info in TROOT::TEfficiency::CheckEntries: Histograms are not consistent: passed bin content > total bin content
Error in TROOT::TEfficiency::CheckConsistency: passed TEfficiency objects do not have consistent bin contents
Error in TGraphAsymmErrors::Divide: passed histograms are not consistent


Numerator = 1.00592e+06 Denominator = 1.10705e+06 Efficiency = 0.908653
Numerator = 157826 Denominator = 164223 Efficiency = 0.961047
Numerator = 6747 Denominator = 6887 Efficiency = 0.979672
Numerator = 602 Denominator = 616 Efficiency = 0.977273
Numerator = 120 Denominator = 121 Efficiency = 0.991736

Hi Arun,

Well, the macro without the data files doesn’t really help. Could you provide the data files (or a subset) in order to reproduce the problem?

Cheers, Bertrand.

Hi Bertrand,

Thanks for the reply and sorry for my late response.
Please find another macro attached but root file is slightly big to attach.
Find the root file here : arun-afs.web.cern.ch/arun-afs/D … _Tree.root
The numbers I am getting from this macro are**.
Which are again with Numerator always less than denominator but still I got the same error messages.
Please suggest.

Thanks and regards,
Arun.

**
Numerator = 995.199 Deominator = 1005.22 Efficiency = 0.990028
Numerator = 446.793 Deominator = 449.315 Efficiency = 0.994386
Numerator = 227.737 Deominator = 229.981 Efficiency = 0.990243
Numerator = 124.134 Deominator = 125.018 Efficiency = 0.992928
Numerator = 79.4041 Deominator = 80.186 Efficiency = 0.990249
Numerator = 48.4917 Deominator = 49.1353 Efficiency = 0.986901
Numerator = 30.5329 Deominator = 30.604 Efficiency = 0.997677
Numerator = 20.3411 Deominator = 20.5505 Efficiency = 0.989813
Numerator = 12.7744 Deominator = 12.8279 Efficiency = 0.995832
Numerator = 9.86596 Deominator = 9.92703 Efficiency = 0.993848
Numerator = 7.01339 Deominator = 7.08097 Efficiency = 0.990457
Numerator = 5.26696 Deominator = 5.34154 Efficiency = 0.986038
Numerator = 10.6412 Deominator = 10.7602 Efficiency = 0.988945
Numerator = 5.82717 Deominator = 6.06561 Efficiency = 0.960691
Numerator = 0.926628 Deominator = 1.05951 Efficiency = 0.874579

[quote=“bellenot”]Hi Arun,

Well, the macro without the data files doesn’t really help. Could you provide the data files (or a subset) in order to reproduce the problem?

Cheers, Bertrand.[/quote]
EffStudy_Plots_mass.C (3.03 KB)

Hi Arun,

I think the problem is that your histograms numMass and numMassnoDZ are filled with weights. The documentation for the CheckEntries method specifically says:

[quote]The following inequality has to be valid for each bin i: total.GetBinContent(i) >= pass.GetBinContent(i) and the histogram have to be filled with unit weights.[/quote] There is an option to accept the weighted histograms though, but I don’t really see how you can propagate this option calling the BayesDivide method…

Hi,

Could you please suggest any other method to compute these ratios with correct errors?

Thanks
Arun.

Hi,

Is there any solution on this issue? I also meet the same problem with ROOT 6.10/09. I checked that for each bin the bin content in the passed hist is smaller than the total hist, but I got the same error message. Both the passed and total histos are filled with weighted values.

Thanks,

Junquan Tao

Hi,
I had the same issue, but it works for me now in root version 6.10/04
I’m wondering if their are still limitations to using TEfficiency methods with weighted histograms?
Cheers, Mattias