Exemplo n.º 1
0
pvalues = array('f', [])
n_iterations = array('f', [])

y_error = array('f', [])
x_error = array('f', [])

c_refoldeds = []
refolded_hists = []
c_sanitys = []
sanity_hists = []
for i in range(1, 20, 1):
    print '--------- i = ', i
    unfoldreco = RooUnfoldBayes(response, reco, i)
    reco_unfolded = unfoldreco.Vreco()
    reco_asvector = unfoldreco.Vmeasured()
    m = response.Mresponse()
    print 'response : ', m.GetNrows(), ' x ', m.GetNcols()
    refolded = ROOT.TVectorD(reco_unfolded)
    refolded *= m  #TMatrixD(m,TMatrixD.kMult,reco_unfolded)
    print 'refolded : ', refolded.GetNrows()
    refolded_hist = ROOT.TH1D("refolded_hist_" + str(i),
                              "refolded_hist_" + str(i),
                              reco.GetNbinsX() * reco.GetNbinsY(), 0,
                              reco.GetNbinsX() * reco.GetNbinsY())
    sanity_hist = ROOT.TH1D("sanity_hist_" + str(i), "sanity_hist_" + str(i),
                            reco.GetNbinsX() * reco.GetNbinsY(), 0,
                            reco.GetNbinsX() * reco.GetNbinsY())
    for ibin in xrange(0, refolded.GetNrows()):
        refolded_hist.SetBinContent(ibin + 1, refolded[ibin])
    for ibin in xrange(0, reco_asvector.GetNrows()):
Exemplo n.º 2
0
        if rel_err_reco > 0:
            err_ratio = rel_err_unfold / rel_err_reco
        if rel_err_recoUp > 0:
            err_ratioUp = rel_err_unfoldUp / rel_err_recoUp
        if rel_err_recoDn > 0:
            err_ratioDn = rel_err_unfoldDn / rel_err_recoDn

            
        hErrorRatio[i_iter-1].SetBinContent(ibin+1, err_ratio)
        hErrorRatioUp[i_iter-1].SetBinContent(ibin+1, err_ratioUp)
        hErrorRatioDn[i_iter-1].SetBinContent(ibin+1, err_ratioDn)

    
    # unfolded & measured (vectors)
    vReco = unfold.Vreco()
    vMeas = unfold.Vmeasured()

    vRecoUp = unfoldUp.Vreco()
    vRecoDn = unfoldDn.Vreco()
    vMeasUp = unfoldUp.Vmeasured()
    vMeasDn = unfoldDn.Vmeasured()

    # response matrix as matrix instead of 2D histogram: (row,column)=(measured,truth)
    mResponse = response.Mresponse()

    # refolded (vector)
    vRefold = TVectorD(vReco)
    vRefold *= mResponse

    vRefoldUp = TVectorD(vRecoUp)
    vRefoldDn = TVectorD(vRecoDn)