def test_efficiency(): # 1D eff = Efficiency(Hist(10, 0, 1), Hist(10, 0, 1)) eff.Fill(False, 0.1) eff.Fill(True, 0.8) assert_equal(len(eff), len(eff.total)) if ROOT_VERSION >= ROOTVersion(53417): assert eff.graph assert eff.painted_graph assert_equal(len(list(eff.efficiencies())), 10) assert_equal(len(list(eff.efficiencies(overflow=True))), 12) assert_equal(len(list(eff.errors())), 10) assert_equal(len(list(eff.errors(overflow=True))), 12) # 2D eff = Efficiency(Hist2D(10, 0, 1, 10, 0, 1), Hist2D(10, 0, 1, 10, 0, 1)) eff.Fill(False, 0.1) eff.Fill(True, 0.8) assert_equal(len(eff), len(eff.total)) if ROOT_VERSION >= ROOTVersion(53417): assert eff.histogram assert eff.painted_histogram
def test_overall_efficiency(): for stat_op in range(0, 8): Eff = Efficiency(Hist(20, -3, 3), Hist(20, -3, 3)) Eff_1bin = Efficiency(Hist(1, -3, 3), Hist(1, -3, 3)) Eff.SetStatisticOption(stat_op) Eff_1bin.SetStatisticOption(stat_op) for i in xrange(1000): x = gauss(0, 3.6) w = uniform(0, 1) passed = w > 0.5 Eff.Fill(passed, x) Eff_1bin.Fill(passed, x) assert_almost_equal( Eff.overall_efficiency(overflow=True)[0], Eff_1bin.overall_efficiency(overflow=True)[0]) assert_almost_equal( Eff.overall_efficiency(overflow=True)[1], Eff_1bin.overall_efficiency(overflow=True)[1]) assert_almost_equal( Eff.overall_efficiency(overflow=True)[2], Eff_1bin.overall_efficiency(overflow=True)[2])