Beispiel #1
0
                ]

    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))
Beispiel #2
0
    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)