Exemple #1
0
	exit()

fitname = get_param("fitname")
destdir = get_param("destdir")
ensembles = get_param("ensembles")
ensembles = ensembles.split(" ")
fittingvar = int(get_param("fittingvar"))

def is_fitensemble(name):
	for element in ensembles:
		if element == name:
			return 1
	return 0

# ensure dest dir
a.ensure_dir(destdir)

# number of bootstraps used. Must be the same as used during the fits for the ensembles
numBootstraps = 1500
numSys = 1500

#load data
srcdir = "/hiskp2/oehm/averx/analysis/final_3"

info = np.load(os.path.join(srcdir,"info.npy"))
alluddata = np.load(os.path.join(srcdir,"udplotdata.npy"))
allufdata = np.load(os.path.join(srcdir,"ufplotdata.npy"))
allsuddata = np.load(os.path.join(srcdir,"sudplotdata.npy"))
allsufdata = np.load(os.path.join(srcdir,"sufplotdata.npy"))

# build arrays with the ensembles that should be used for the plot
import sys
import numpy as np
import math

import os,inspect
currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
parentdir = os.path.dirname(currentdir)
sys.path.insert(0,parentdir) 

import a


sigma = int(sys.argv[1])
print "sigma "+str(sigma)

a.ensure_dir("/hiskp2/oehm/correlators/momentum/A40.24/O012/analysis/sigma"+str(sigma)+"/")

numBootstraps = 1500

O012 = a.readcor("/hiskp2/oehm/correlators/momentum/A40.24/O012/sigma"+str(sigma)+"/O012_sigma"+str(sigma),48)
xn = a.readcor("/hiskp2/oehm/correlators/momentum/A40.24/x/sigma"+str(sigma)+"/x"+str(sigma),48)
O012 = a.asym(O012)
xn = a.sym(xn)
O012_bstraps = a.boot(O012,numBootstraps)
O012_bstraps_mean = np.mean(O012_bstraps,axis=0)
xn_bstraps = a.boot(xn,numBootstraps)
xn_bstraps_mean = np.mean(xn_bstraps,axis=0)

xn_result = np.zeros((21,numBootstraps,4))

effmass, effmass_error, effmass_nans = a.effmass(xn_bstraps)
_effmass2, effmass_error2, effmass_nans2 = a.effmass2(x_bstraps)

_effmasswerr = np.zeros((2,_effmass.shape[0]))
_effmasswerr[0] = _effmass
_effmasswerr[1] = effmass_error
	
np.save(os.path.join(destdir,correlator+"_effmass_50.npy"),_effmasswerr)

a.nsettofile2(x_bstraps[0],np.std(x_bstraps,axis=0),os.path.join(destdir,correlator+"_mean_50"))
a.nsettofile2(_effmass,effmass_error,os.path.join(destdir,correlator+"_effmass_50"))

# plot corr log

path = os.path.join(destdir,correlator+"_log_50.pdf")

a.ensure_dir(path)

plotpdf = PdfPages(path)

cut = 0.158655254

orig = np.log(x_bstraps[0,:])

up = np.percentile(np.log(x_bstraps),(1-cut)*100,axis=0)-orig
down = orig-np.percentile(np.log(x_bstraps),cut*100,axis=0)

plt.errorbar(np.arange(0,x_bstraps.shape[1]),np.log(x_bstraps[0,:]),yerr = [up,down],fmt = 'x', color="r", label = "2pt-function")

plt.xlabel("$t/a$")
plt.ylabel("$\log(C_\mathrm{2pt}(t))$")
runr = MTAInputReader(os.path.join(runifpath,runif+".input"))
taskr = MTAInputReader(os.path.join(taskifpath,taskif+".input"))


task = taskr.rparam("task")
op = taskr.rparam("operator")

print "execting task "+str(task)+" on operator "+str(op)

latT = int(runr.rparam("T"))
numBstraps = int(taskr.param("bstraps",1500))

destdir = runr.getdest(op,sigma,taskr.param("dest",""))

a.ensure_dir(destdir+"/")

doasym = 0
if taskr.istrue("asym"):
	doasym = 1

if task == "fitplatval":
	doasym = 0
	if taskr.istrue("asym"):
		doasym = 1

	sigmaterm = runr.getsigma(sigma)

	if op == "O44":
		if sigma == 0 or sigma == None:
			valfunc = lambda x,y,z: -x/y/z