def main(): data = make_data('etas-Ds.data') models = make_models() prior = make_prior(8) fitter = CorrFitter(models=make_models()) p0 = None for N in [1, 2, 3, 4]: print(30 * '=', 'nterm =', N) prior = make_prior(N) fit = fitter.chained_lsqfit(data=data, prior=prior, p0=p0) p0 = fit.pmean print_results(fit, prior, data) if DISPLAYPLOTS: fitter.display_plots() # polish fit print('--- polish fit') fit = fitter.lsqfit(data=data, prior=fit.p, svdcut=1e-4) print_results(fit, prior, data) if DISPLAYPLOTS: fitter.display_plots() # fit with structured models print('--- refit with structured models') models = [models[:2]] + models[2:] fitter = CorrFitter(models=make_models()) fit = fitter.chained_lsqfit(data=data, prior=prior, p0=p0) # polish print('--- polish fit') fit = fitter.lsqfit(data=data, prior=fit.p, svdcut=1e-4) print_results(fit, prior, data)
def doProcess(tmin,tmax,data=data,mdef=mdef): ## -- do a single fit ... set up for parallelizing for key in data: mdef[key]['tfit'] = range(tmin,tmax) models = make_models(data=data,lkey=df.lkey,mdef=mdef) pdict0 = utf.get_prior_dict(df.define_prior, df.define_prior['nkey'],df.define_prior['okey'],df.num_nst,df.num_ost) prior = make_prior(models,prior_dict=pdict0,nst=df.num_nst,ost=df.num_ost) fitter = CorrFitter(models=models,maxit=df.maxit) #try: ## -- if catching value error, just exit ## -- p0 = initial values (dictionary) if df.do_initial: try: p0={} for key in df.define_init: eokey = utf.get_evenodd(key) if eokey == 'o': p0[key] = df.define_init[key][:df.num_ost] else: p0[key] = df.define_init[key][:df.num_nst] fit = fitter.lsqfit(data=data,prior=prior,p0=p0,svdcut=df.svdcut) except KeyError: print "Could not use initial point definitions" fit = fitter.lsqfit(data=data,prior=prior,svdcut=df.svdcut) else: fit = fitter.lsqfit(data=data,prior=prior,svdcut=df.svdcut) ## -- print_fit(fit,prior) print_error_budget(fit) save_data('fit-timevary/fit_'+str(tmin)+'_'+str(tmax)+'.out',fit,data)
def single_fit(tag_, tstar, CHARGED=False): w0 = gv.gvar('0.1715(9)') w0overa = gv.gvar('1.1367(5)') ZV = gv.gvar('0.9837(20)') ZVqed = gv.gvar('0.999544(14)') * ZV hbarc = 0.197326968 a_vcoarse = (w0 / w0overa) / hbarc if CHARGED == True: ZV = ZVqed else: ZV = ZV dataf = dsetavg[tag_] tmin = 2 # replace data after t* with fit # t* can be changed fitter = CorrFitter(models=build_models(tmin, 48, tag_)) svdcut = 1e-6 for nexp in [4]: print('=== nexp =', nexp, ' tmin = ', tmin, ' svdcut = ', svdcut) fit = fitter.lsqfit(data=dsetavg, prior=build_prior(nexp), p0=pfile, maxit=10000, svdcut=svdcut) #,fitter='gsl_multifit') print(fit) newdata = dataf[:tstar] #print("Before append/concatenate") #print(newdata, len(newdata)) fitdata = Corr2(datatag=tag_, tdata=range(48), a=('a:rho', 'a:rhoo'), b=('b:rho', 'b:rhoo'), dE=('dE:rho', 'dE:rhoo'), s=(1, -1)).fitfcn(fit.p) newdata = np.append(np.array(newdata), fitdata[tstar:]) #print(fitdata[tstar:], fitdata[tstar:].size) #print("After append/concatenate") #print(newdata, newdata.size) #sys.exit(0) # use Z_V from appendix of 1909.00756; divided by u_0 to make the 1-link currents used match vpol = g2.fourier_vacpol(newdata, Z=ZV, ainv=1 / a_vcoarse, periodic=False) a_mu = g2.a_mu(vpol, Q=1. / 3.) print('a_mu:', a_mu, "for", tag_, "t* = ", tstar) return a_mu
def main(): data, basis = make_data('etab.data') fitter = CorrFitter(models=make_models(basis)) p0 = None for N in range(1, 10): print(30 * '=', 'nterm =', N) prior = make_prior(N, basis) fit = fitter.lsqfit(data=data, prior=prior, p0=p0, svdcut=0.0004) p0 = fit.pmean print_results(fit, basis, prior, data) if DISPLAYPLOTS: fitter.display_plots()
def main(): data = make_data('etas-Ds.data') models = make_models() prior = make_prior(8) fitter = CorrFitter(models=make_models(), ratio=False) # 1 p0 = None for N in [1, 2]: # 2 print(30 * '=', 'nterm =', N) prior = make_prior(8) # 3 fit = fitter.lsqfit(data=data, prior=prior, p0=p0, nterm=(N, N)) # 4 p0 = fit.pmean print_results(fit, prior, data) if DISPLAYPLOTS: fitter.display_plots() test_fit(fitter, 'etas-Ds.data')
def doProcess(nst,ost,n3st=1,o3st=1,data=dall): ## -- do a single fit ... set up for parallelizing if df.do_2pt and not(df.do_3pt): pdict3 = utf.get_prior_dict(df.define_prior, df.define_prior['nkey'],df.define_prior['okey'],nst,ost,do_v_symm=True) models = make_models(data=dall,lkey=df.lkey) prior = make_prior(models,prior_dict=pdict3,nst=nst,ost=ost) fitter = CorrFitter(models=models,maxit=df.maxit) if df.do_init2: init={} if argsin['override_init']: init = make_init_from_fit_file_3pt(models,'fit_dict') else: for key in df.define_init: ## -- does this interfere with underscore tags? eokey = utf.get_evenodd(key) if eokey == 'n': init[key] = df.define_init[key][:nst] elif eokey == 'o': init[key] = df.define_init[key][:ost] else: init=None else: pdict = utf.get_prior_dict(df.define_prior, df.define_prior['nkey'],df.define_prior['okey'], nst,ost,do_v_symm=True) pdict3 = utf.get_prior_dict(df.define_prior_3pt, df.define_prior_3pt['nkey'],df.define_prior_3pt['okey'], nst,ost,df.define_prior_3pt['vkey'],nst,ost,do_v_symm=True) for key in pdict: pdict3[key] = pdict[key] models2 = make_models(data=dall,lkey=df.lkey,use_advanced=True) #models3 = make_models_3pt(data=dall,lkey=df.lkey3) models3 = make_models_advanced(data=dall,lkey=df.lkey3) models = list() for model in models2: models.append(model) for model in models3: models.append(model) #prior2 = make_prior(models2,prior_dict=pdict,nst=nst,ost=ost) #prior3 = make_prior_3pt(models3,prior_dict=pdict3,nst=nst,ost=ost,n3st=nst,o3st=ost) #priors = gv.BufferDict() #for key in prior2: # priors[key] = prior2[key] #for key in prior3: # priors[key] = prior3[key] priorsa = truncate_prior_states(df.define_prior_adv, nst,ost,n3st,o3st) fitter = CorrFitter(models=models,maxit=df.maxit) if df.do_init3: #init3={} #if argsin['override_init']: init = make_adv_init_from_fit_file_3pt(models3,'fit_adv_'+irrepStr+'_3pt',\ fresh_overlap=True,fresh_amplitude=True) else: init=None pass #fit = fitter.lsqfit(data=dall,prior=priors,p0=init,svdcut=df.svdcut) #print priorsa #print init fit = fitter.lsqfit(data=dall,prior=priorsa,p0=init,svdcut=df.svdcut) ## -- print_fit(fit,priorsa,do_v_symm=True) print_error_budget(fit) #save_data('fit-stability/fit_'+str(nst)+'_'+str(ost)+'.out',fit,dall) if df.do_2pt and not(df.do_3pt): save_init_from_fit(fit,'fit-adv/fit_'+str(nst)+'_'+str(ost)+'.py',do_v_symm=True) else: save_init_from_fit(fit,'fit-adv/fit_n'+str(nst)+'_o'+str(ost)\ +'_ng'+str(n3st)+'_og'+str(o3st)+'.py',do_v_symm=True)
def main(tstr): dfile = '/home/gray/Desktop/lattice-analysis/data/qed/coarse/rho_coarse_ms.gpl' madedata = make_data( dfile, norm=3.) # factor of 3 for colour (missed in extraction) data = madedata[0] T = data.size / len(madedata[1]) # extent in time dir tag01 = madedata[1][0] tag02 = madedata[1][1] print("time extent is: ", T) print(dfile) suggestedsvdcut = madedata[2] pfile = None #"vector_fit.p" # last fit tmin = 2 svdcut = 1e-10 #suggestedsvdcut fitter = CorrFitter(models=build_models(tag01, tag02, tmin, T)) for nexp in [2, 3, 4, 5]: fit = fitter.lsqfit(data=data, prior=build_prior(nexp), p0=None, maxit=20000, svdcut=svdcut, add_svdnoise=False) print(fit) tdata = range(T) tfit = range(tmin, T + 1 - tmin) # all ts tp = T tstar = tstr tcut = 200 newdata = {} tags = ['nocharge', 'charge'] newdata[tags[0]] = data[tag01][:tstar + 1] newdata[tags[1]] = data[tag02][:tstar + 1] # do replacement of data with fit fitdatauncharged = Corr2(datatag=tags[0], tdata=range(T), a=('a1:vec:s', 'ao:vec:s'), b=('a1:vec:s', 'ao:vec:s'), dE=('dE:vec:s', 'dEo:vec:s'), s=(1., -1.)).fitfcn(fit.p) for index in range(T): if index >= tcut: newdata[tags[0]] = np.append(newdata[tags[0]], 0.) elif index > tstar: newdata[tags[0]] = np.append(newdata[tags[0]], fitdatauncharged[index]) fitdatachargeddown = Corr2(datatag=tags[1], tdata=range(T), a=('a1:vec:qed:s', 'ao:vec:qed:s'), b=('a1:vec:qed:s', 'ao:vec:qed:s'), dE=('dE:vec:qed:s', 'dEo:vec:qed:s'), s=(1., -1.)).fitfcn(fit.p) for index in range(T): if index >= tcut: newdata[tags[1]] = np.append(newdata[tags[1]], 0.) elif index > tstar: newdata[tags[1]] = np.append(newdata[tags[1]], fitdatachargeddown[index]) print('THIS IS THE INFORMATION CENTRE') print(len(newdata[tags[0]]), len(newdata[tags[1]])) print('tmin, tstar', tmin, tstar) vpol = g2.fourier_vacpol(newdata[tags[0]], Z=ZV, ainv=1 / a, periodic=False) unchargedamus = g2.a_mu(vpol, 1 / 3.) vpol = g2.fourier_vacpol(newdata[tags[1]], Z=ZVqed, ainv=1 / a, periodic=False) chargedamus = g2.a_mu(vpol, 1 / 3.) amus_rt = chargedamus / unchargedamus amu_diff = chargedamus - unchargedamus amu_diff_rt = amu_diff / unchargedamus print( '[s] a_mu[QCD+QED]{0:>20}\n|a_mu[QCD+QED]-a_mu[QCD]{1:>20}\n|a_mu/a_mu {2:>20}' .format(chargedamus, amu_diff, amu_diff_rt))
#init3[key] = np.resize(df.define_init_3pt[key],(df.num_ost_3pt,df.num_nst_3pt)) pass elif eokey == 'n': init3[key] = df.define_init_3pt[key][:df.num_nst] elif eokey == 'o': init3[key] = df.define_init_3pt[key][:df.num_ost] else: init3=None pass fitter2 = CorrFitter(models=models2,maxit=df.maxit) fitter3 = CorrFitter(models=models,maxit=df.maxit) fitterc = CorrFitter(models=[models2,models],maxit=df.maxit) if df.do_2pt: print "starting 2pt fit..." fit2 = fitter2.lsqfit(data=dall,prior=priors2,p0=init2,svdcut=df.svdcut) ## -- fits take a long time, so print prematurely print_fit(fit2,priors2) if df.do_3pt: print "starting 3pt fit..." fit3 = fitter3.lsqfit(data=dall,prior=priors,p0=init3,svdcut=df.svdcut) else: print "Ignoring 3pt fit!" fit3=None #fit3 = fitter3.lsqfit(data=dall,prior=priors,svdcut=df.svdcut) print fmt_reduced_chi2(fit3) print_fit(fit3,priors,df.do_v_symmetric) #save_data('./test.fit.out',fit,dall) print "starting chained fit..."
fitter = CorrFitter(models=models,maxit=df.maxit) #fit = fitter.chained_lsqfit(data=data, prior=prior) #fit = fitter.lsqfit(data=data, prior=fit.p) #fit = fitter.lsqfit(data=data,prior=prior,p0="test.init.out",svdcut=df.svdcut) if df.do_2pt: if df.do_initial: try: p0={} for key in df.define_init: eokey = utf.get_evenodd(key) if eokey == 'o': p0[key] = df.define_init[key][:df.num_ost] else: p0[key] = df.define_init[key][:df.num_nst] fit = fitter.lsqfit(data=data,prior=prior,p0=p0,svdcut=df.svdcut) except KeyError: print "Could not use initial point definitions" fit = fitter.lsqfit(data=data,prior=prior,svdcut=df.svdcut) else: fit = fitter.lsqfit(data=data,prior=prior,svdcut=df.svdcut) #bs_avg = make_bootstrap(fitter,dset,df.mdp.n_bs) print_fit(fit,prior) print_error_budget(fit) #save_data(mdp.output_path +'/'+ mdp.fit_fname,fit,data) save_data('./test.fit.out',fit,data) save_prior_from_fit(df.define_prior,df.define_model,fit,"test.prior.out", round_e=2,round_a=1,preserve_e_widths=True,preserve_a_widths=True) if df.do_plot: if df.do_default_plot:
def doProcess(nst,ost,n3st=1,o3st=1,data=dall): ## -- do a single fit ... set up for parallelizing if df.do_2pt and not(df.do_3pt): pdict3 = utf.get_prior_dict(df.define_prior, df.define_prior['nkey'],df.define_prior['okey'],nst,ost) models = make_models(data=dall,lkey=df.lkey) prior = make_prior(models,prior_dict=pdict3,nst=nst,ost=ost) fitter = CorrFitter(models=models,maxit=df.maxit) if df.do_init2: init={} if argsin['override_init']: init = make_init_from_fit_file_3pt(models,'fit_dict'+irrepStr+'_3pt') else: for key in df.define_init: eokey = utf.get_evenodd(key) if eokey == 'n': init[key] = df.define_init[key][:nst] elif eokey == 'o': init[key] = df.define_init[key][:ost] else: init=None else: pdict = utf.get_prior_dict(df.define_prior, df.define_prior['nkey'],df.define_prior['okey'], nst,ost) pdict3 = utf.get_prior_dict(df.define_prior_3pt, df.define_prior_3pt['nkey'],df.define_prior_3pt['okey'], nst,ost,df.define_prior_3pt['vkey'],n3st,o3st) for key in pdict: pdict3[key] = pdict[key] models2 = make_models(data=dall,lkey=df.lkey) models3 = make_models_3pt(data=dall,lkey=df.lkey3) models = list() for model in models2: models.append(model) for model in models3: models.append(model) #print df.lkey+df.lkey3 #for model in models: # model.all_datatags #raise ValueError("test") prior2 = make_prior(models2,prior_dict=pdict,nst=nst,ost=ost) prior3 = make_prior_3pt(models3,prior_dict=pdict3,nst=nst,ost=ost,n3st=n3st,o3st=o3st) priors = gv.BufferDict() for key in prior2: priors[key] = prior2[key] for key in prior3: priors[key] = prior3[key] fitter = CorrFitter(models=models,maxit=df.maxit) if df.do_init3: init={} if argsin['override_init']: init = make_init_from_fit_file_3pt(models,'fit_dict') else: for key in df.define_init_3pt: eokey = utf.get_evenodd(key) if eokey == 'nn': init[key] = np.resize(df.define_init_3pt[key],(n3st,n3st)) elif eokey == 'no': init[key] = np.resize(df.define_init_3pt[key],(n3st,o3st)) elif eokey == 'on': init[key] = np.resize(df.define_init_3pt[key],(o3st,n3st)) elif eokey == 'oo': init[key] = np.resize(df.define_init_3pt[key],(o3st,o3st)) elif eokey == 'n': init[key] = df.define_init_3pt[key][:nst] elif eokey == 'o': init[key] = df.define_init_3pt[key][:ost] else: init=None fit = fitter.lsqfit(data=dall,prior=priors,p0=init,svdcut=df.svdcut) ## -- print_fit(fit,priors) print_error_budget(fit) #save_data('fit-stability/fit_'+str(nst)+'_'+str(ost)+'.out',fit,dall) if df.do_2pt and not(df.do_3pt): save_init_from_fit(fit,'fit-stability/fit_'+str(nst)+'_'+str(ost)+'.py') else: save_init_from_fit(fit,'fit-stability/fit_n'+str(nst)+'_o'+str(ost)\ +'_ng'+str(n3st)+'_og'+str(o3st)+'.py')
def main(tstr): dfile = '/home/gray/Desktop/lattice-analysis/data/qed/vcoarse/self_b/rho_vcoarse_7ml.gpl' madedata = make_data(dfile,norm=3.) # factor of 3 for colour (missed in extraction) data = madedata[0] T = data.size / len(madedata[1]) # extent in time dir tag01 = madedata[1][0] tag02 = madedata[1][1] tag03 = madedata[1][2] # =tag01 if no isospin breaking print("time extent is: ", T) print(dfile) suggestedsvdcut = madedata[2] pfile = None #"vector_fit.p" # last fit tmin = 2 svdcut = 1e-10 #suggestedsvdcut fitter = CorrFitter(models=build_models(tag01,tag02,tag03,tmin,T)) for nexp in [2,3,4,5]: fit = fitter.lsqfit(data=data,prior=build_prior(nexp),p0=None,maxit=20000,svdcut=svdcut,add_svdnoise=False) print(fit) tdata = range(T) tfit = range(tmin,T+1-tmin) # all ts tp = T tstar = tstr tcut = 200 newdata = {} tags = ['nocharge', 'up_charge', 'down-charge'] newdata[tags[0]] = data[tag01][:tstar+1] newdata[tags[1]] = data[tag02][:tstar+1] newdata[tags[2]] = data[tag03][:tstar+1] # do replacement of data with fit fitdatauncharged = Corr2(datatag=tags[0],tdata=range(T),a=('a1:vec:u','ao:vec:u'),b=('a1:vec:u','ao:vec:u'),dE=('dE:vec:u','dEo:vec:u'),s=(1.,-1.)).fitfcn(fit.p) for index in range(T): if index >= tcut: newdata[tags[0]] = np.append(newdata[tags[0]],0.) elif index > tstar: newdata[tags[0]] = np.append(newdata[tags[0]],fitdatauncharged[index]) fitdatachargedup = Corr2(datatag=tags[1],tdata=range(T),a=('a1:vec:qed:u','ao:vec:qed:u'),b=('a1:vec:qed:u','ao:vec:qed:u'),dE=('dE:vec:qed:u','dEo:vec:qed:u'),s=(1.,-1.)).fitfcn(fit.p) fitdatachargedown = Corr2(datatag=tags[2],tdata=range(T),a=('a1:vec:qed:d','ao:vec:qed:d'),b=('a1:vec:qed:d','ao:vec:qed:d'),dE=('dE:vec:qed:d','dEo:vec:qed:d'),s=(1.,-1.)).fitfcn(fit.p) for index in range(T): if index >= tcut: newdata[tags[1]] = np.append(newdata[tags[1]],0.) newdata[tags[2]] = np.append(newdata[tags[2]],0.) elif index > tstar: newdata[tags[1]] = np.append(newdata[tags[1]],fitdatachargedup[index]) newdata[tags[2]] = np.append(newdata[tags[2]],fitdatachargedown[index]) print('THIS IS THE INFORMATION CENTRE') print(len(newdata[tags[0]]), len(newdata[tags[1]]), len(newdata[tags[2]])) print('tmin, tstar', tmin, tstar) vpol = g2.fourier_vacpol(newdata[tags[0]], Z=ZV, ainv=1/a, periodic=False) unchargedamuu = g2.a_mu(vpol,2/3.) vpol = g2.fourier_vacpol(newdata[tags[1]], Z=ZVqed, ainv=1/a, periodic=False) chargedamuu = g2.a_mu(vpol,2/3.) vpol = g2.fourier_vacpol(newdata[tags[0]], Z=ZV, ainv=1/a, periodic=False) unchargedamud = g2.a_mu(vpol,1/3.) vpol = g2.fourier_vacpol(newdata[tags[2]], Z=ZVqed, ainv=1/a, periodic=False) chargedamud = g2.a_mu(vpol,1/3.) d_rt = chargedamud/unchargedamud u_rt = chargedamuu/unchargedamuu amu_qcd = unchargedamud+unchargedamuu amu_qcdqed = chargedamuu+chargedamud amu_rt = amu_qcdqed/amu_qcd amu_diff = (amu_qcdqed-amu_qcd)/amu_qcd amu_diff2 = amu_qcdqed-amu_qcd print('[d] a_mu[QCD+QED]||a_mu[QCD+QED]/a_mu[QCD]{0:>20}||{1}'.format(chargedamud,d_rt)) print('[u] a_mu[QCD+QED]||a_mu[QCD+QED]/a_mu[QCD]{0:>20}||{1}'.format(chargedamuu,u_rt)) print('\n[u+d] a_mu[QCD+QED]||a_mu[QCD]||ratio||diff\n{0:20}{1:20}{2:20}{3:20}'.format(amu_qcdqed, amu_qcd, amu_rt, amu_diff))
def main(tstr): dfile = '/home/gray/Desktop/lattice-analysis/data/qed/vcoarse/comb/comb_rho_vcoarse_physud.gpl' # tag01 = 'rho_m' + str(mq) # tag02 = 'rho_m' + str(mq) + '_ucav' # tag03 = 'rho_m' + str(mq) # tag04 = 'rho_m' + str(mq) + '_dcav' madedata = make_data( dfile, norm=3.) # factor of 3 for colour (missed in extraction) data = madedata[0] T = data.size / len(madedata[1]) # extent in time dir tag01 = madedata[1][0] tag02 = madedata[1][1] tag03 = madedata[1][2] # =tag01 if no isospin breaking tag04 = madedata[1][3] #sys.exit(0) #ratiodata = {} #ratiodata['up'] = data[tag02]/data[tag01] #ratiodata['down'] = data[tag04]/data[tag03] suggestedsvdcut = madedata[2] pfile = "vector_fit.p" # last fit tmin = 2 svdcut = 1e-10 #suggestedsvdcut fitter = CorrFitter( models=build_models(tag01, tag02, tag03, tag04, tmin, T)) for nexp in [2, 3, 4, 5]: fit = fitter.lsqfit(data=data, prior=build_prior(nexp), p0=None, maxit=20000, svdcut=svdcut, add_svdnoise=False) print(fit) tdata = range(T) tfit = range(tmin, T + 1 - tmin) # all ts tp = T tstar = tstr tcut = 200 newdata = {} tags = ['up', 'up_qed', 'down', 'down_qed'] newdata[tags[0]] = data[tag01][:tstar + 1] newdata[tags[1]] = data[tag02][:tstar + 1] newdata[tags[2]] = data[tag03][:tstar + 1] newdata[tags[3]] = data[tag04][:tstar + 1] # do replacement of data with fit fitdataunchargedup = Corr2(datatag=tags[0], tdata=range(T), a=('a1:vec:u', 'ao:vec:u'), b=('a1:vec:u', 'ao:vec:u'), dE=('dE:vec:u', 'dEo:vec:u'), s=(1., -1.)).fitfcn(fit.p) fitdataunchargeddown = Corr2(datatag=tags[2], tdata=range(T), a=('a1:vec:d', 'ao:vec:d'), b=('a1:vec:d', 'ao:vec:d'), dE=('dE:vec:d', 'dEo:vec:d'), s=(1., -1.)).fitfcn(fit.p) for index in range(48): if index >= tcut: newdata[tags[0]] = np.append(newdata[tags[0]], 0.) newdata[tags[2]] = np.append(newdata[tags[2]], 0.) elif index > tstar: newdata[tags[0]] = np.append(newdata[tags[0]], fitdataunchargedup[index]) newdata[tags[2]] = np.append(newdata[tags[2]], fitdataunchargeddown[index]) fitdatachargedup = Corr2(datatag=tags[1], tdata=range(T), a=('a1:vec:qed:u', 'ao:vec:qed:u'), b=('a1:vec:qed:u', 'ao:vec:qed:u'), dE=('dE:vec:qed:u', 'dEo:vec:qed:u'), s=(1., -1.)).fitfcn(fit.p) fitdatachargedown = Corr2(datatag=tags[3], tdata=range(T), a=('a1:vec:qed:d', 'ao:vec:qed:d'), b=('a1:vec:qed:d', 'ao:vec:qed:d'), dE=('dE:vec:qed:d', 'dEo:vec:qed:d'), s=(1., -1.)).fitfcn(fit.p) for index in range(48): if index >= tcut: newdata[tags[1]] = np.append(newdata[tags[1]], 0.) newdata[tags[3]] = np.append(newdata[tags[3]], 0.) elif index > tstar: newdata[tags[1]] = np.append(newdata[tags[1]], fitdatachargedup[index]) newdata[tags[3]] = np.append(newdata[tags[3]], fitdatachargedown[index]) w0 = gv.gvar('0.1715(9)') w0overa = gv.gvar('1.1367(5)') ZV = gv.gvar('0.9837(20)') ZVqed = gv.gvar('0.999544(14)') * ZV hbarc = 0.197326968 a = (w0 / w0overa) / hbarc print('THIS IS THE INFORMATION CENTRE') print(len(newdata[tags[0]]), len(newdata[tags[1]]), len(newdata[tags[2]]), len(newdata[tags[3]])) print('tmin, tstar', tmin, tstar) #moments = g2.moments(newdata[tags[0]],Z=ZV,ainv=1/a,periodic=False) #vpol = g2.vacpol(moments,order=(2,1)) vpol = g2.fourier_vacpol(newdata[tags[0]], Z=ZV, ainv=1 / a, periodic=False) unchargedamuu = g2.a_mu(vpol, 2 / 3.) #moments = g2.moments(newdata[tags[1]],Z=ZVqed,ainv=1/a,periodic=False) #vpol = g2.vacpol(moments,order=(2,1)) vpol = g2.fourier_vacpol(newdata[tags[1]], Z=ZVqed, ainv=1 / a, periodic=False) chargedamuu = g2.a_mu(vpol, 2 / 3.) #moments = g2.moments(newdata[tags[2]],Z=ZV,ainv=1/a,periodic=False) #vpol = g2.vacpol(moments,order=(2,1)) vpol = g2.fourier_vacpol(newdata[tags[2]], Z=ZV, ainv=1 / a, periodic=False) unchargedamud = g2.a_mu(vpol, 1 / 3.) #moments = g2.moments(newdata[tags[3]],Z=ZVqed,ainv=1/a,periodic=False) #vpol = g2.vacpol(moments,order=(2,1)) vpol = g2.fourier_vacpol(newdata[tags[3]], Z=ZVqed, ainv=1 / a, periodic=False) chargedamud = g2.a_mu(vpol, 1 / 3.) d_rt = chargedamud / unchargedamud u_rt = chargedamuu / unchargedamuu amu_qcd = unchargedamud + unchargedamuu amu_qcdqed = chargedamuu + chargedamud amu_rt = amu_qcdqed / amu_qcd amu_diff = (amu_qcdqed - amu_qcd) / amu_qcd print('[d] a_mu[QCD+QED]||a_mu[QCD+QED]/a_mu[QCD]{0:>20}||{1}'.format( chargedamud, d_rt)) print('[u] a_mu[QCD+QED]||a_mu[QCD+QED]/a_mu[QCD]{0:>20}||{1}'.format( chargedamuu, u_rt)) print( '\n[u+d] a_mu[QCD+QED]||a_mu[QCD]||ratio||diff\n{0:20}{1:20}{2:20}{3:20}' .format(amu_qcdqed, amu_qcd, amu_rt, amu_diff))