コード例 #1
0
def get_systematic():
    psqlpwd = pwd.passwd()
    psql = sql.pysql('cchang5', 'cchang5', psqlpwd)
    # get data
    data_idx = select_data()
    ens = data_idx.keys()[0]
    l = []
    for n in range(len(data_idx[ens].keys()) - 1):
        # read gA and gV
        sqlcmd = "SELECT (result->>'gA00')::double precision / (result->>'gV00')::double precision FROM callat_proj.ga_v1_bs g JOIN callat_corr.hisq_bootstrap b ON g.bs_id=b.id WHERE g.ga_v1_id=%s AND mbs=%s ORDER BY nbs;" % (
            data_idx[ens]['gA%s' % n], data_idx[ens]['mbs'])
        psql.cur.execute(sqlcmd)
        gA = np.array(psql.cur.fetchall()).flatten()
        l.append(gA)
    l = np.array(l).T
    lgv = gv.dataset.avg_data(l, spread=True, median=False)
    #print lgv
    print np.mean(lgv)
    b0 = l[0, :]
    b0mean = np.mean(b0)
    #print b0mean
    cov = np.cov(l, rowvar=False)
    #print np.std(l,axis=0)
    SA = np.einsum('ij,j->i', cov, np.ones(len(b0)))
    #print SA
    ASA = np.einsum('i,i->', np.ones(len(b0)), SA)
    #print ASA
    print b0mean, np.sqrt(ASA) / len(b0)
コード例 #2
0
def get_bootstrap_list():
    psqlpwd = pwd.passwd()
    psql = sql.pysql('cchang5', 'cchang5', psqlpwd)
    # get data
    data_idx = select_data()
    for ens in data_idx.keys():
        sqlcmd = "SELECT draws FROM callat_corr.hisq_bootstrap bs JOIN callat_corr.hisq_ensembles e ON bs.hisq_ensembles_id=e.id WHERE e.tag='%s' ORDER BY nbs LIMIT 500;" % ens
        psql.cur.execute(sqlcmd)
        nbs = psql.cur.fetchall()
        nbs = np.array(
            [np.array(nbs[i][0])[:len(nbs[0][0])] for i in range(len(nbs))])
        s = ''
        for i in tqdm.tqdm(range(len(nbs))):
            for j in range(len(nbs[0])):
                if j == len(nbs[0]) - 1:
                    s += '%s' % nbs[i, j]
                else:
                    s += '%s,' % nbs[i, j]
            s += '\n'
        with open('./nbslist/nbs_%s.csv' % ens, 'w+') as f:
            f.write(s)
    return
コード例 #3
0
def get_bootstrap():
    psqlpwd = pwd.passwd()
    psql = sql.pysql('cchang5', 'cchang5', psqlpwd)
    # get data
    data_idx = select_data()
    data = dict()
    data['gA'] = {}
    data['Fpi'] = {}
    data['mpi'] = {}
    data['mju'] = {}
    data['epi'] = {}
    data['eju'] = {}
    data['ml'] = {}
    data['Z0p'] = {}
    data['mres'] = {}
    data['aw0'] = {}
    data['a2DI'] = {}
    for e in data_idx.keys():
        # read gA and gV
        sqlcmd = "SELECT (result->>'gA00')::double precision / (result->>'gV00')::double precision FROM callat_proj.ga_v1_bs g JOIN callat_corr.hisq_bootstrap b ON g.bs_id=b.id WHERE g.ga_v1_id=%s AND mbs=%s ORDER BY nbs;" % (
            data_idx[e]['gA'], data_idx[e]['mbs'])
        psql.cur.execute(sqlcmd)
        gA = np.array(psql.cur.fetchall()).flatten()
        # read data from DB get E0 and Z0_p
        sqlcmd = "SELECT (result->>'E0')::double precision FROM callat_proj.meson_v1_bs bn JOIN callat_corr.hisq_bootstrap bs ON bn.bs_id = bs.id WHERE bn.meson_v1_id=%s AND mbs=%s ORDER BY nbs;" % (
            data_idx[e]['mpi'], data_idx[e]['mbs'])
        psql.cur.execute(sqlcmd)
        E = np.array(psql.cur.fetchall()).flatten()
        sqlcmd = "SELECT (result->>'Z0_p')::double precision FROM callat_proj.meson_v1_bs bn JOIN callat_corr.hisq_bootstrap bs ON bn.bs_id = bs.id WHERE bn.meson_v1_id=%s AND mbs=%s ORDER BY nbs;" % (
            data_idx[e]['mpi'], data_idx[e]['mbs'])
        psql.cur.execute(sqlcmd)
        Z = np.array(psql.cur.fetchall()).flatten()
        # read mres from DB
        sqlcmd = "SELECT (result->>'mres')::double precision FROM callat_proj.mres_v1_bs bn JOIN callat_corr.hisq_bootstrap bs ON bn.bs_id = bs.id WHERE bn.mres_v1_id=%s AND mbs=%s ORDER BY nbs;" % (
            data_idx[e]['mres'], data_idx[e]['mbs'])
        psql.cur.execute(sqlcmd)
        mres = np.array(psql.cur.fetchall()).flatten()
        # read ml
        sqlcmd = "SELECT p.mval::double precision FROM callat_proj.mres_v1 m JOIN callat_corr.dwhisq_corr_jmu j ON m.mp_id = j.id JOIN callat_corr.dwhisq_props p ON j.dwhisq_prop_id = p.id WHERE m.id = '%s';" % data_idx[
            e]['mres']
        psql.cur.execute(sqlcmd)
        ml = psql.cur.fetchone()[0]
        # read mju
        sqlcmd = "SELECT (result->>'E0')::double precision FROM callat_proj.mixed_v1_bs bn JOIN callat_corr.hisq_bootstrap bs ON bn.bs_id = bs.id WHERE bn.mixed_v1_id=%s AND mbs=%s ORDER BY nbs;" % (
            data_idx[e]['mju'], data_idx[e]['mbs'])
        psql.cur.execute(sqlcmd)
        Eju = np.array(psql.cur.fetchall()).flatten()
        # read aw0 and a2DI
        sqlcmd = "SELECT id FROM callat_corr.hisq_ensembles WHERE tag='%s';" % e
        psql.cur.execute(sqlcmd)
        hisq_id = psql.cur.fetchone()[0]
        sqlcmd = "SELECT aw0 FROM callat_corr.hisq_params_bootstrap WHERE hisq_ensembles_id=%s ORDER BY nbs;" % hisq_id
        psql.cur.execute(sqlcmd)
        aw0 = np.array(psql.cur.fetchall()).flatten()
        sql.cmd = "SELECT a2di FROM callat_corr.hisq_params_bootstrap WHERE hisq_ensembles_id=%s ORDER BY nbs;" % hisq_id
        psql.cur.execute(sqlcmd)
        a2di = np.array(psql.cur.fetchall()).flatten()
        # make data
        data['gA'][e] = gA
        data['Fpi'][e] = fpi(ml, E, Z, mres)
        data['epi'][e] = E / (4. * np.pi * data['Fpi'][e])
        data['eju'][e] = Eju / (4. * np.pi * data['Fpi'][e])
        data['mpi'][e] = E
        data['mju'][e] = Eju
        data['mres'][e] = mres
        data['ml'][e] = ml
        data['Z0p'][e] = Z
        data['aw0'][e] = aw0
        data['a2DI'][e] = a2di
    return data
コード例 #4
0
        tbl_print['A1'] = [boot0fit['pmean'][t]['A1'] for t in range(len(boot0fit['pmean']))]
        tbl_print['dA1'] = [boot0fit['psdev'][t]['A1'] for t in range(len(boot0fit['pmean']))]
        tbl_print['chi2/dof'] = np.array(boot0fit['chi2'])/np.array(boot0fit['dof'])
        tbl_print['logGBF'] = boot0fit['logGBF']
        print tabulate(tbl_print, headers='keys')
    return {'mixed_meson_fit': boot0fit['rawoutput'][0]}

if __name__=='__main__':
    # read master
    f = open('./mixed.yml','r')
    params = yaml.load(f)
    f.close()
    # yaml entires
    fitmeta = params['mixed_fit']
    # log in sql
    psqlpwd = pwd.passwd()
    psql = sql.pysql('cchang5','cchang5',psqlpwd)

    ## bootstrap decay constant
    # phi_ju
    dataju = read_mixed_meson(psql,params,'phi_ju')
    gvdataju = c51.make_gvars(dataju)
    resp = fit_mixed_meson(psql,params,'phi_ju', gvdataju)
    print resp['mixed_meson_fit']
    ### phi_js
    #data = read_mixed_meson(psql,params,'phi_js')
    #data = data[:200]
    #datagv = c51.make_gvars(data)
    #resp = fit_mixed_meson(psql,params,'phi_js', datagv)
    ### phi_ru
    #data = read_mixed_meson(psql,params,'phi_ru')
コード例 #5
0
    ncfg = len(data)
    databs = []
    for n in range(nbs):
        a = []
        for m in range(ncfg):
            a.append(np.random.randint(ncfg))
        databs.append(np.mean(data[a,:],axis=0))
    return np.array(databs)

if __name__=='__main__':
    # options
    t = 10 # time slice plotted
    nbs = 10000 # bootstrap sampling for mean
    # read master
    f = open('./fh.yml','r')
    params = yaml.load(f)
    f.close()
    # log in sql
    psqlpwd = pwd.passwd()
    psql = sql.pysql('cchang5','cchang5',psqlpwd)
    # read gA
    SS, PS, fhSS, fhPS = read_gA_bs(psql,params)
    # pick
    corr = SS
    filename = 'SS'
    # bootstrap this
    corrbs = bootstrap(corr,nbs)
    # plot histogram
    plot_histogram(corr[:,t], corrbs[:,t], t, 't=%s' %str(t), filename)
    plt.show()