def test_p1xp1_BBsym(): logger.info( 'Symmetric non-factorized fit model: ( Gauss + P1 ) (x) ( Gauss + P1 ) + BBsym' ) sb = ROOT.RooRealVar('sb', 'SB', 0, 10000) model = Models.Fit2DSym( suffix='_6', signal_x=signal1, signal_y=signal2s, bkg_1x=-1, bkg_2D=Models.PolyPos2Dsym_pdf('P2D5', m_x, m_y, n=2), ) ## fit with fixed mass and sigma with rooSilent(): result, frame = model.fitTo(dataset) model.signal_x.sigma.release() model.signal_y.sigma.release() model.signal_x.mean.release() model.signal_y.mean.release() result, frame = model.fitTo(dataset) model.draw1(dataset) model.draw2(dataset) 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('S1xS2 : %20s' % result(model.SS)[0]) logger.info('S1xB2 : %20s' % (result(model.SB)[0] / 2)) logger.info('B1xS2 : %20s' % (result(model.BS)[0] / 2)) logger.info('B1xB2 : %20s' % result(model.BB)[0]) models.add(model)
def test_p1xp1_BBs () : logger.info ('Non-factorized symmetric background fit model: ( Gauss + P1 ) (x) ( Gauss + P1 ) + BBsym' ) model = Models.Fit2D ( suffix = '_4' , signal_x = signal1 , signal_y = signal2s , bkg_1x = -1 , bkg_1y = -1 , bkg_2D = Models.PolyPos2Dsym_pdf ( 'P2Ds' , m_x , m_y , n = 2 ) ) ## fit with fixed mass and sigma with rooSilent() : result, frame = model. fitTo ( dataset ) model.signal_x.sigma.release () model.signal_y.sigma.release () model.signal_x.mean .release () model.signal_y.mean .release () result, frame = model. fitTo ( dataset ) 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 ('S1xS2 : %20s' % result ( model.SS ) [0] ) logger.info ('S1xB2 : %20s' % result ( model.SB ) [0] ) logger.info ('B1xS2 : %20s' % result ( model.BS ) [0] ) logger.info ('B1xB2 : %20s' % result ( model.BB ) [0] ) models.add ( model )
def test_polypossym2D(): logger = getLogger('test_polypossym2D') logger.info('Test PolyPos2Dsym_pdf: Symmetric positive polynomial') model = Models.PolyPos2Dsym_pdf('P2Ds ', m_x, m_y, n=2) with rooSilent(): result, f = model.fitTo(dataset) with use_canvas('test_polypossym2D'): with wait(1): model.draw1(dataset) with wait(1): model.draw2(dataset) result, f = model.fitTo(dataset, silent=True) 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('Bernstein Coefficients:\n%s' % model.pars()) models.add(model)
def test_p1xp1_BBss(): logger.info( 'Symmetrised fit model with non-factorized symmetric background: ( Gauss + P1 ) (x) ( Gauss + P1 ) + BBsym' ) sb = ROOT.RooRealVar('sb', 'SB', 0, 10000) model = Models.Fit2D(suffix='_5', signal_1=Models.Gauss_pdf('Gx', m_x.getMin(), m_x.getMax(), mass=m_x), signal_2=Models.Gauss_pdf('Gy', m_y.getMin(), m_y.getMax(), mass=m_y), power1=1, power2=1, bkg2D=Models.PolyPos2Dsym_pdf('P2Ds', m_x, m_y, n=2), sb=sb, bs=sb) model.signal1.sigma.fix(m.error()) model.signal2.sigma.fix(m.error()) model.signal1.mean.fix(m.value()) model.signal2.mean.fix(m.value()) model.signal1.mean.fix(m.value()) model.signal2.mean.fix(m.value()) model.bkg1.tau.fix(0) model.bkg2.tau.fix(0) ## fit with fixed mass and sigma with rooSilent(): result, frame = model.fitTo(dataset) model.signal1.sigma.release() model.signal2.sigma.release() model.signal1.mean.release() model.signal2.mean.release() result, frame = model.fitTo(dataset) 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('S1xS2 : %20s' % result(model.ss)[0]) logger.info('S1xB2 : %20s' % result(model.sb)[0]) logger.info('B1xS2 : %20s' % result(model.bs)[0]) logger.info('B1xB2 : %20s' % result(model.bb)[0]) models.add(model)
def test_p1xp1_BBss(): logger = getLogger('test_p1xp1_BBss') logger.info( 'Symmetrised fit model with non-factorized symmetric background: ( Gauss + P1 ) (x) ( Gauss + P1 ) + BBsym' ) sb = ROOT.RooRealVar('sb', 'SB', 2500, 0, 10000) model = Models.Fit2D(suffix='_5', signal_x=signal1, signal_y=signal2s, bkg_1x=-1, bkg_2D=Models.PolyPos2Dsym_pdf('P2Ds', m_x, m_y, n=1), sb=sb, bs=sb) model.SS = N_ss model.BB = N_bb model.SB = 2500 ## fit with fixed mass and sigma with rooSilent(), use_canvas('test_p1xp1_BBss'): result, frame = model.fitTo(dataset) model.signal_x.sigma.release() model.signal_y.sigma.release() model.signal_x.mean.release() model.signal_y.mean.release() result, frame = model.fitTo(dataset) with wait(1): model.draw1(dataset) with wait(1): model.draw2(dataset) model.draw1(dataset) model.draw2(dataset) 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('S1xS2 : %20s' % result(model.SS)[0]) logger.info('S1xB2 : %20s' % result(model.SB)[0]) logger.info('B1xS2 : %20s' % result(model.BS)[0]) logger.info('B1xB2 : %20s' % result(model.BB)[0]) models.add(model)