logger.info('Create 1D dataset for Ostap Tutorial ') # ============================================================================ from OstapTutor.TestVars1 import m_psi, m_D0 # ## create data set # varset = ROOT.RooArgSet(m_psi, m_D0) # ## create model # import Ostap.FitModels as Models jpsi = Models.Needham_pdf('N0', mass=m_psi, mean=3.096, sigma=0.013) D0 = Models.Gauss_pdf('G0', mass=m_D0, mean=1.864, sigma=0.007) bkg_jpsi = Models.Bkg_pdf('B01', mass=m_psi) bkg_D0 = Models.Bkg_pdf('B02', mass=m_D0) bkg_jpsi.tau.fix(-10) bkg_D0.tau.fix(+5) model = Models.Fit2D(signal_1=jpsi, signal_2=D0, bkg1=bkg_jpsi, bkgA=bkg_jpsi, bkg2=bkg_D0, bkgB=bkg_D0) model.ss.fix(5000)
logger.warning('Fit is not perfect MIGRAD=%d QUAL=%d ' % (result.status(), result.covQual())) print result else: print 'Signal & Background are: ', result('S')[0], result('B')[0] print 'Mean & Sigma are: ', result('mean_Gauss')[0], result( 'sigma_Gauss')[0] models.append(model_cbds) # ============================================================================= ## Needham PDF # ============================================================================= logger.info('Test Needham_pdf') model_matt = Models.Fit1D(signal=Models.Needham_pdf(name='Matt', mass=mass, sigma=signal_gauss.sigma, mean=signal_gauss.mean), background=model_gauss.background) with rooSilent(): result, frame = model_matt.fitTo(dataset0) model_matt.signal.mean.release() model_matt.signal.sigma.release() result, frame = model_matt.fitTo(dataset0) result, frame = model_matt.fitTo(dataset0) if 0 != result.status() or 3 != result.covQual(): logger.warning('Fit is not perfect MIGRAD=%d QUAL=%d ' % (result.status(), result.covQual())) print result else:
logger.info('Create 1D dataset for Ostap Tutorial ') # ============================================================================ from OstapTutor.TestVars1 import m_psi # ## create data set # varset = ROOT.RooArgSet(m_psi) # ## create model # import Ostap.FitModels as Models signal = Models.Needham_pdf('N0', mass=m_psi) bkg = Models.Bkg_pdf('B0', mass=m_psi) bkg.tau.setVal(-10.0) model = Models.Fit1D(signal=signal, background=bkg) model.s.setVal(10000) model.B.setVal(5000) data = model.pdf.generate(varset, 15000) # ============================================================================ if '__main__' == __name__: import Ostap.Line logger.info(__file__ + '\n' + Ostap.Line.line)