Example #1
0
    def test_extended_binlh_ww_w2(self):
        egauss = Extended(gaussian)
        _, minuit = fit_binlh(egauss, self.data, bins=100, bound=(1., 9.), quiet=True,
            mean=4., sigma=1., N=1000., weights=self.wdown,
            print_level=0, extended=True)
        assert_almost_equal(minuit.values['mean'], 5., delta=minuit.errors['mean'])
        assert_almost_equal(minuit.values['sigma'], 2., delta=minuit.errors['sigma'])
        assert_almost_equal(minuit.values['N'], 2000, delta=minuit.errors['N'])
        assert(minuit.migrad_ok())

        _, minuit2 = fit_binlh(egauss, self.data, bins=100, bound=(1., 9.), quiet=True,
            mean=4., sigma=1., N=1000., weights=self.wdown,
            print_level= -1, extended=True, use_w2=True)
        assert_almost_equal(minuit2.values['mean'], 5., delta=2 * minuit2.errors['mean'])
        assert_almost_equal(minuit2.values['sigma'], 2., delta=2 * minuit2.errors['sigma'])
        assert_almost_equal(minuit2.values['N'], 2000., delta=2 * minuit2.errors['N'])
        assert(minuit2.migrad_ok())

        minuit.minos()
        minuit2.minos()

        # now error should scale correctly
        assert_almost_equal(minuit.errors['mean'] / sqrt(10),
                            minuit2.errors['mean'],
                            delta=minuit.errors['mean'] / sqrt(10) / 100.)
        assert_almost_equal(minuit.errors['sigma'] / sqrt(10),
                            minuit2.errors['sigma'],
                            delta=minuit.errors['sigma'] / sqrt(10) / 100.)
        assert_almost_equal(minuit.errors['N'] / sqrt(10),
                            minuit2.errors['N'],
                            delta=minuit.errors['N'] / sqrt(10) / 100.)
Example #2
0
    def test_extended_binlh_ww_w2(self):
        egauss = Extended(gaussian)
        _, minuit = fit_binlh(egauss, self.data, bins=100, bound=(1., 9.), quiet=True,
                              mean=4., sigma=1., N=1000., weights=self.wdown,
                              print_level=0, extended=True)
        assert_allclose(minuit.values['mean'], 5., atol=minuit.errors['mean'])
        assert_allclose(minuit.values['sigma'], 2., atol=minuit.errors['sigma'])
        assert_allclose(minuit.values['N'], 2000, atol=minuit.errors['N'])
        assert minuit.migrad_ok()

        _, minuit2 = fit_binlh(egauss, self.data, bins=100, bound=(1., 9.), quiet=True,
                               mean=4., sigma=1., N=1000., weights=self.wdown,
                               print_level=-1, extended=True, use_w2=True)
        assert_allclose(minuit2.values['mean'], 5., atol=2 * minuit2.errors['mean'])
        assert_allclose(minuit2.values['sigma'], 2., atol=2 * minuit2.errors['sigma'])
        assert_allclose(minuit2.values['N'], 2000., atol=2 * minuit2.errors['N'])
        assert minuit2.migrad_ok()

        minuit.minos()
        minuit2.minos()

        # now error should scale correctly
        assert_allclose(minuit.errors['mean'] / sqrt(10),
                        minuit2.errors['mean'],
                        atol=minuit.errors['mean'] / sqrt(10) / 100.)
        assert_allclose(minuit.errors['sigma'] / sqrt(10),
                        minuit2.errors['sigma'],
                        atol=minuit.errors['sigma'] / sqrt(10) / 100.)
        assert_allclose(minuit.errors['N'] / sqrt(10),
                        minuit2.errors['N'],
                        atol=minuit.errors['N'] / sqrt(10) / 100.)
Example #3
0
 def test_binlh(self):
     ngauss = Normalized(gaussian, (1., 9.))
     _, minuit = fit_binlh(ngauss, self.data, bins=100, bound=(1., 9.), quiet=True,
         mean=4., sigma=1.5, print_level=0)
     assert(minuit.migrad_ok())
     assert_almost_equal(minuit.values['mean'], 5., delta=3 * minuit.errors['mean'])
     assert_almost_equal(minuit.values['sigma'], 2., delta=3 * minuit.errors['sigma'])
Example #4
0
 def test_binlh(self):
     ngauss = Normalized(gaussian, (1., 9.))
     _, minuit = fit_binlh(ngauss, self.data, bins=100, bound=(1., 9.), quiet=True,
                           mean=4., sigma=1.5, print_level=0)
     assert minuit.migrad_ok()
     assert_allclose(minuit.values['mean'], 5., atol=3 * minuit.errors['mean'])
     assert_allclose(minuit.values['sigma'], 2., atol=3 * minuit.errors['sigma'])
Example #5
0
 def test_extended_binlh_ww(self):
     egauss = Extended(gaussian)
     _, minuit = fit_binlh(egauss, self.data, bins=100, bound=(1., 9.), quiet=True,
         mean=4., sigma=1., N=1000., weights=self.wdown,
         print_level=0, extended=True)
     assert(minuit.migrad_ok())
     assert_almost_equal(minuit.values['mean'], 5., delta=minuit.errors['mean'])
     assert_almost_equal(minuit.values['sigma'], 2., delta=minuit.errors['sigma'])
     assert_almost_equal(minuit.values['N'], 2000, delta=minuit.errors['N'])
Example #6
0
 def test_extended_binlh_ww(self):
     egauss = Extended(gaussian)
     _, minuit = fit_binlh(egauss, self.data, bins=100, bound=(1., 9.), quiet=True,
                           mean=4., sigma=1., N=1000., weights=self.wdown,
                           print_level=0, extended=True)
     assert minuit.migrad_ok()
     assert_allclose(minuit.values['mean'], 5., atol=minuit.errors['mean'])
     assert_allclose(minuit.values['sigma'], 2., atol=minuit.errors['sigma'])
     assert_allclose(minuit.values['N'], 2000, atol=minuit.errors['N'])
Example #7
0
 def test_extended_binlh(self):
     egauss = Extended(gaussian)
     _, minuit = fit_binlh(egauss, self.data, bins=100, bound=(1., 9.), quiet=True,
                           mean=4., sigma=1., N=10000.,
                           print_level=0, extended=True)
     assert minuit.migrad_ok()
     assert_allclose(minuit.values['mean'], 5., atol=3 * minuit.errors['mean'])
     assert_allclose(minuit.values['sigma'], 2., atol=3 * minuit.errors['sigma'])
     assert_allclose(minuit.values['N'], 20000, atol=3 * minuit.errors['N'])
Example #8
0
 def test_binlh(self):
     ngauss = Normalized(gaussian, (1.0, 9.0))
     _, minuit = fit_binlh(
         ngauss,
         self.data,
         bins=100,
         bound=(1.0, 9.0),
         quiet=True,
         mean=4.0,
         sigma=1.5,
         print_level=0,
     )
     assert minuit.migrad_ok()
     assert_allclose(minuit.values["mean"],
                     5.0,
                     atol=3 * minuit.errors["mean"])
     assert_allclose(minuit.values["sigma"],
                     2.0,
                     atol=3 * minuit.errors["sigma"])
Example #9
0
 def test_extended_binlh_ww(self):
     egauss = Extended(gaussian)
     _, minuit = fit_binlh(
         egauss,
         self.data,
         bins=100,
         bound=(1.0, 9.0),
         quiet=True,
         mean=4.0,
         sigma=1.0,
         N=1000.0,
         weights=self.wdown,
         print_level=0,
         extended=True,
     )
     assert minuit.migrad_ok()
     assert_allclose(minuit.values["mean"], 5.0, atol=minuit.errors["mean"])
     assert_allclose(minuit.values["sigma"],
                     2.0,
                     atol=minuit.errors["sigma"])
     assert_allclose(minuit.values["N"], 2000, atol=minuit.errors["N"])
Example #10
0
 def test_extended_binlh(self):
     egauss = Extended(gaussian)
     _, minuit = fit_binlh(egauss,
                           self.data,
                           bins=100,
                           bound=(1., 9.),
                           quiet=True,
                           mean=4.,
                           sigma=1.,
                           N=10000.,
                           print_level=0,
                           extended=True)
     assert (minuit.migrad_ok())
     assert_almost_equal(minuit.values['mean'],
                         5.,
                         delta=3 * minuit.errors['mean'])
     assert_almost_equal(minuit.values['sigma'],
                         2.,
                         delta=3 * minuit.errors['sigma'])
     assert_almost_equal(minuit.values['N'],
                         20000,
                         delta=3 * minuit.errors['N'])