result, f = m_p6.fitTo(dataset2) 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: for phi in m_p6.phis: print "\tPoly6: phi= %s " % phi.ve() models.append(m_p6) # ============================================================================= logger.info("Test Poly(4)*Expo -Distribution") # ============================================================================= m_p4e = Models.Bkg_pdf('P4e', x, power=4) m_p4e.tau.fix(-1.25) with rooSilent(): result, f = m_p4e.fitTo(dataset2) m_p4e.tau.release() result, f = m_p4e.fitTo(dataset2) 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: print "\tPoly4e tau= %s " % result(m_p4e.tau.GetName())[0] for phi in m_p4e.phis: print "\tPoly4e: phi= %s " % phi.ve()
# mean = 3.096 ) # signal = Models.BifurcatedStudentT_pdf ( 'Sb' , # mass = m_psi , # sigma = 0.013 , # mean = 3.096 ) # signal = Models.Needham_pdf ( 'Nh' , # mass = m_psi , # sigma = 0.013 , # mean = 3.096 ) ## 2b) create the background : exponential times 1st order polymonial bkg = Models.Bkg_pdf ( 'B' , mass = m_psi , power = 1 ) ## 2c) create the model model = Models.Fit1D ( signal = signal , background = bkg ) ## 3) try to fit: r,f = model.fitTo ( data , silence = True , ncpu = 8 ) signal .mean .release() signal .sigma.release()
# ============================================================================= ## gauss PDF # ============================================================================= logger.info('Test Gauss_pdf') signal_gauss = Models.Gauss_pdf(name='Gauss', mass=mass) signal_gauss.mean.setVal(m.value()) signal_gauss.sigma.setVal(m.error()) models.append(signal_gauss) # ============================================================================= ## Gauss PDF # ============================================================================= model_gauss = Models.Fit1D(signal=signal_gauss, background=Models.Bkg_pdf('BkgGauss', mass=mass, power=0)) model_gauss.background.tau.fix(0) with rooSilent(): result, frame = model_gauss.fitTo(dataset0) result, frame = model_gauss.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: print 'Signal & Background are: ', result('S')[0], result('B')[0] print 'Mean & Sigma are: ', result('mean_Gauss')[0], result( 'sigma_Gauss')[0]
signal_1=sigB, signal_2=sigPhi, ## bkg2=Models.PSPol_pdf('PSP', m_phi, ps2, power=1), bkgB=Models.PSPol_pdf('PSB', m_phi, ps2, power=1), ) model_phi = Models.Fit1D(signal=sigPhi, background=Models.PSPol_pdf('PSQ', m_phi, ps2, power=1), suffix='_P') model_B = Models.Fit1D(signal=sigB, background=Models.Bkg_pdf('BB', m_b, power=1), suffix='_B') varset = ROOT.RooArgSet(m_b, m_phi) dataset = model0.pdf.generate(varset, 1900) ## 2D fits with rooSilent(): r, u = model1.fitTo(dataset) r, u = model1.fitTo(dataset) logger.info('Results of 2D-fit \n%s' % r) ## B-mass fit with rooSilent(): rB, u = model_B.fitTo(dataset)
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) model.sb.fix(2500) model.bs.fix(2500) model.bb.fix(10000)
# ============================================================================ 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) logger.info(80 * '*')
from OstapTutor.TestVars1 import m_psi,m_ups import Ostap.FitModels as Models signal_psi = Models.CB2_pdf('Jpsi' , mass = m_psi , sigma = 0.013 , mean = 3.096 ) signal_psi.aL.fix(1.8) signal_psi.aR.fix(1.8) signal_psi.nL.fix(1.8) signal_psi.nR.fix(1.8) ## define model for J/psi model_psi = Models.Fit1D( signal = signal_psi , background = Models.Bkg_pdf ( 'BJpsi' , mass = m_psi ) ) ## define the model for Y model_Y = Models.Manca2_pdf ( m_ups , power = 0 , m1s = 9.4539e+00 , sigma = 4.03195e-02 ) model_Ypsi = Models.MancaX_pdf ( model_Y , signal_psi , suffix = '' ) # ========================================================================================== # The END # ==========================================================================================