import ROOT,glob,math,argparse,sys sys.path.append('$PANDAPATH/macro/tpc/FOPI/mberger') from functions import thisIsTheEnd dx=0.2598 dy=0.3 dz=0.152867 Dl=0.0259149 Dt=0.0197879 params=[] for line in open("tpc/FOPI/par/tpc.errorParam.86.par"): words=line.split() params.append([]) for w in words: params[-1].append(float(w)) driftposX=(dx/(2*Dt))**2 driftposY=(dy/(2*Dt))**2 driftposZ=(dz/(2*Dl))**2 #decayX=-1/(2*driftposX)*(ROOT.TMath.Log(0.01*params[0][1]/(dx*dx/12)*Dt*Dt*driftposX)); decayX=-1/(driftposX)*(ROOT.TMath.Log(0.01*params[0][1]*driftposX)); decayY=-1/driftposY*(ROOT.TMath.Log(0.01*params[1][1]*driftposY)); decayZ=-1/driftposZ*(ROOT.TMath.Log(0.01*params[2][1]*driftposZ)); fcovX=ROOT.TF1("covX","([0] + [1]*{0}*{0}*x + (({1}*{1})/12)*exp(-{2}*2*x))".format(Dl,dx,decayX),0,72) ferrX=ROOT.TF1("errX","sqrt([0] + [1]*{0}*{0}*x + (({1}*{1})/12)*exp(-{2}*2*x))".format(Dl,dx,decayX),0,72) fdecayX=ROOT.TF1("fdecay", "(({1}*{1})/12 - [0])*exp(-{2}*2*x)".format(Dl,dx,decayX),0,72) #fcovX=ROOT.TF1("covX","sqrt([0] + [1]*{0}*{0}*x)".format(Dl,dx,decayX),0,72) fcovX.SetParameter(0,params[0][0]) fcovX.SetParameter(1,params[0][1]) ferrX.SetParameter(0,params[0][0]) ferrX.SetParameter(1,params[0][1]) ferrX.SetLineColor(1) #fcovX.SetParameter(2,param[0][2]) fdecayX.SetParameter(0,params[0][0]) fdecayX.SetLineColor(3) fdriftposX=ROOT.TLine(driftposX,0,driftposX,0.02) print "parameter:" print params print "xpaderror=",dx*dx/12 h1=ROOT.TH1D("h1","hist",75,0,75) h1.Draw() fcovX.Draw("same") fdecayX.Draw("same") h1.GetYaxis().SetRangeUser(0,0.2) fdriftposX.Draw("same") ferrX.Draw("same") thisIsTheEnd()