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)
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
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
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')
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()