] for fit_name, nuis_x in [('b', nuis_b), ('s', nuis_s)]: if nuis_x == None: row += [" n/a "] else: nuisIsSymm = abs( abs(nuis_x.getErrorLo()) - abs(nuis_x.getErrorHi())) < 0.01 or nuis_x.getErrorLo() == 0 if nuisIsSymm: nuis_x.setError(nuis_x.getErrorHi()) nuiselo = abs(nuis_x.getErrorLo() ) if nuis_x.getErrorLo() > 0 else nuis_x.getError() nuisehi = nuis_x.getErrorHi() if options.pullDef and nuis_p != None: nx, ned, neu = CP.returnPullAsym(options.pullDef, nuis_x.getVal(), mean_p, nuisehi, sigma_pu, abs(nuiselo), abs(sigma_pd)) else: nx, ned, neu = nuis_x.getVal(), nuiselo, nuisehi if nuisIsSymm: row += ["%+.2f +/- %.2f" % (nx, (abs(ned) + abs(neu)) / 2)] else: row += ["%+.2f +%.2f %.2f" % (nx, neu, ned)] if nuis_p != None: if options.plotfile: if fit_name == 'b': nuis_p_i += 1 if options.pullDef and nuis_p != None: #nx,ned,neu = CP.returnPullAsym(options.pullDef,nuis_x.getVal(),mean_p,nuis_x.getErrorHi(),sigma_pu,abs(nuis_x.getErrorLo()),abs(sigma_pd))
text_entries = [] redo_boxes = [] for p in xrange(n_params): i = n_params - (p + 1) pre = pdata[p]['prefit'] fit = pdata[p]['fit'] tp = pdata[p]['type'] seen_types.add(tp) if pdata[p]['type'] != 'Unconstrained': pre_err_hi = (pre[2] - pre[1]) pre_err_lo = (pre[1] - pre[0]) if externalPullDef: fit_err_hi = (fit[2] - fit[1]) fit_err_lo = (fit[1] - fit[0]) pull, pull_hi, pull_lo = CP.returnPullAsym(args.pullDef,fit[1],pre[1],fit_err_hi,pre_err_hi,fit_err_lo,pre_err_lo) else: pull = fit[1] - pre[1] pull = (pull/pre_err_hi) if pull >= 0 else (pull/pre_err_lo) pull_hi = fit[2] - pre[1] pull_hi = (pull_hi/pre_err_hi) if pull_hi >= 0 else (pull_hi/pre_err_lo) pull_hi = pull_hi - pull pull_lo = fit[0] - pre[1] pull_lo = (pull_lo/pre_err_hi) if pull_lo >= 0 else (pull_lo/pre_err_lo) pull_lo = pull - pull_lo g_pulls.SetPoint(i, pull, float(i) + 0.5) g_pulls.SetPointError( i, pull_lo, pull_hi, 0., 0.) else: # Hide this point
else: row += [ "%.6f +%.6f %.6f" % (nuis_p.getVal(), nuis_p.getErrorHi(), nuis_p.getErrorLo()) ] for fit_name, nuis_x in [('b', nuis_b), ('s',nuis_s)]: if nuis_x == None: row += [ " n/a " ] else: nuisIsSymm = abs(abs(nuis_x.getErrorLo())-abs(nuis_x.getErrorHi()))<0.01 or nuis_x.getErrorLo() == 0 if nuisIsSymm : row += [ "%+.2f +/- %.2f" % (nuis_x.getVal(), nuis_x.getError()) ] else: row += [ "%+.2f +%.2f %.2f" % (nuis_x.getVal(), nuis_x.getErrorHi(), nuis_x.getErrorLo()) ] if nuis_x.getErrorLo()==0 : nuis_x.setErrorLo(nuis_x.getErrorHi()) if nuis_p != None: if options.plotfile: if fit_name=='b': nuis_p_i+=1 if options.pullDef and nuis_p!=None: nx,ned,neu = CP.returnPullAsym(options.pullDef,nuis_x.getVal(),mean_p,nuis_x.getErrorHi(),sigma_pu,abs(nuis_x.getErrorLo()),abs(sigma_pd)) gr_fit_b.SetPoint(nuis_p_i-1,nuis_p_i-0.5+0.1,nx) gr_fit_b.SetPointError(nuis_p_i-1,0,0,ned,neu) else: gr_fit_b.SetPoint(nuis_p_i-1,nuis_p_i-0.5+0.1,nuis_x.getVal()) gr_fit_b.SetPointError(nuis_p_i-1,0,0,abs(nuis_x.getErrorLo()),nuis_x.getErrorHi()) hist_fit_b.SetBinContent(nuis_p_i,nuis_x.getVal()) hist_fit_b.SetBinError(nuis_p_i,nuis_x.getError()) hist_fit_b.GetXaxis().SetBinLabel(nuis_p_i,name) gr_fit_b.GetXaxis().SetBinLabel(nuis_p_i,name) if fit_name=='s': if options.pullDef and nuis_p!=None: nx,ned,neu = CP.returnPullAsym(options.pullDef,nuis_x.getVal(),mean_p,nuis_x.getErrorHi(),sigma_pu,abs(nuis_x.getErrorLo()),abs(sigma_pd)) gr_fit_s.SetPoint(nuis_p_i-1,nuis_p_i-0.5-0.1,nx) gr_fit_s.SetPointError(nuis_p_i-1,0,0,ned,neu) else:
row += [ "%+.2f +/- %.2f" % (nuis_x.getVal(), nuis_x.getError()) ] else: row += [ "%+.2f +%.2f %.2f" % (nuis_x.getVal(), nuis_x.getErrorHi(), nuis_x.getErrorLo()) ] if nuis_x.getErrorLo() == 0: nuis_x.setErrorLo(nuis_x.getErrorHi()) if nuis_p != None: if options.plotfile: if fit_name == 'b': nuis_p_i += 1 if options.pullDef and nuis_p != None: nx, ned, neu = CP.returnPullAsym( options.pullDef, nuis_x.getVal(), mean_p, nuis_x.getErrorHi(), sigma_pu, abs(nuis_x.getErrorLo()), abs(sigma_pd)) gr_fit_b.SetPoint(nuis_p_i - 1, nuis_p_i - 0.5 + 0.1, nx) gr_fit_b.SetPointError(nuis_p_i - 1, 0, 0, ned, neu) else: gr_fit_b.SetPoint(nuis_p_i - 1, nuis_p_i - 0.5 + 0.1, nuis_x.getVal()) gr_fit_b.SetPointError(nuis_p_i - 1, 0, 0, abs(nuis_x.getErrorLo()), nuis_x.getErrorHi()) hist_fit_b.SetBinContent(nuis_p_i, nuis_x.getVal()) hist_fit_b.SetBinError(nuis_p_i, nuis_x.getError()) hist_fit_b.GetXaxis().SetBinLabel(nuis_p_i, name)