import ROOT,glob,math,argparse,sys sys.path.append('$PANDAPATH/macro/tpc/FOPI/mberger') from functions import thisIsTheEnd class paramSet(): def __init__(self): self.params=[] self.title="" self.angle=-10 def addSet(self,set): self.params.append([]) for val in set: self.params[-1].append(float(val)) def setTitle(self,tit): self.title=tit if tit.find('theta')!=-1: self.angle=float(tit[tit.find('theta')+5:tit.find('theta')+7]) parser=argparse.ArgumentParser(description="plot the parameters obtained from BAT fit") parser.add_argument("folder",help="the path to the folder containing all parameter files to plot",type=str) args=parser.parse_args() infiles=glob.glob(args.folder+'*param.txt') paramColl=[] for f in infiles: print f paramColl.append(paramSet()) tmp=f.split('/')[-1] tmp=tmp.replace("_param.txt","") paramColl[-1].setTitle(tmp.replace('bat_','')) for line in open(f): paramColl[-1].addSet(line.split()) goffsetXY=ROOT.TGraph() goffsetZ=ROOT.TGraph() gdiffXY=ROOT.TGraph() gdiffZ=ROOT.TGraph() for p in paramColl: goffsetXY.SetPoint(goffsetXY.GetN(),p.angle*ROOT.TMath.DegToRad(),p.params[0][0]) goffsetZ.SetPoint(goffsetZ.GetN(),p.angle*ROOT.TMath.DegToRad(),p.params[2][0]) gdiffXY.SetPoint(gdiffXY.GetN(),p.angle*ROOT.TMath.DegToRad(),p.params[0][1]) gdiffZ.SetPoint(gdiffZ.GetN(),p.angle*ROOT.TMath.DegToRad(),p.params[2][1]) #print p.angle #print p.title #print p.params c1=ROOT.TCanvas("c1","offsetXY") goffsetXY.SetMarkerStyle(20) goffsetXY.Draw("AP") c2=ROOT.TCanvas("c2","offsetZ") goffsetZ.SetMarkerStyle(20) goffsetZ.Draw("AP") c3=ROOT.TCanvas("c3","diffXY") gdiffXY.SetMarkerStyle(20) gdiffXY.Draw("AP") c4=ROOT.TCanvas("c4","diffZ") gdiffZ.SetMarkerStyle(20) gdiffZ.Draw("AP") thisIsTheEnd()