def test_esk407(self): """Test Esk-407: Classification unbiased fit estimate""" # run Eskapade self.run_eskapade('esk407_classification_unbiased_fit_estimate.py') ds = ProcessManager().service(DataStore) ws = ProcessManager().service(RooFitManager).ws # roofit objects check in datastore self.assertIn('fit_result', ds) self.assertIsInstance(ds['fit_result'], ROOT.RooFitResult) # roofit objects check in workspace mdata = ws.data('data') self.assertFalse(not mdata) self.assertEqual(1000, mdata.numEntries()) mpdf = ws.pdf('hist_model') self.assertFalse(not mpdf) # successful fit result fit_result = ds['fit_result'] self.assertEqual(0, fit_result.status()) self.assertEqual(3, fit_result.covQual()) lo_risk = ws.var('N_low_risk') self.assertFalse(not lo_risk) self.assertTrue(lo_risk.getVal() < 1000) self.assertTrue(lo_risk.getError() > 0) hi_risk = ws.var('N_high_risk') self.assertFalse(not hi_risk) self.assertTrue(hi_risk.getVal() > 0) self.assertTrue(hi_risk.getError() > 0)
def test_esk405(self): """Test Esk-405: Simulation based on binned data""" # run Eskapade self.run_eskapade('esk405_simulation_based_on_binned_data.py') ds = ProcessManager().service(DataStore) ws = ProcessManager().service(RooFitManager).ws # data-generation checks self.assertIn('n_rdh_accounts', ds) self.assertEqual(650, ds['n_rdh_accounts']) # roofit objects check in workspace self.assertIn('hpdf_Ndim', ws) self.assertIn('rdh_accounts', ws) mcats = ws.set('rdh_cats') self.assertFalse(not mcats) self.assertEqual(1, len(mcats)) mvars = ws.set('rdh_vars') self.assertFalse(not mvars) self.assertEqual(3, len(mvars)) mdata = ws.data('rdh_accounts') self.assertEqual(650, mdata.sumEntries())