import sys, os, string, commands, xreadlines , getopt
def main():
gpaccname="NLC-B-500"
dpath="/home/fz/gp/run/"
hpath="/home/fz/"
gpaccstring="standard"
gpaccparam="standard"
dnamelist= ['nlcb-500-y6','nlcb-500-y8','nlcb-500-y10']
loopenergy=['245','245','245']
loopxoffset=['0','0','0']
loopyoffset=['6','8','10']
analonly = 0
try:
opts , args = getopt.getopt(sys.argv[1:], "n", "nogp")
except getopt.GetoptError:
print "\n usage: rungp.py [-n or --nogp for analysis only] \n"
sys.exit(2)
for opt , arg in opts:
if opt in ("-n", "--nogp"):
analonly = 1
print "argument given: n \n"
sys.argv[1]
for i in range( len(dnamelist) ):
if analonly != 1 :
os.mkdir(dpath+dnamelist[i])
os.chdir(dpath+dnamelist[i])
stdacc=open(dpath+"acc."+gpaccstring+".dat" , 'r')
newacc=open(dpath+"acc"+dnamelist[i]+".dat",'w')
very elegant loop, but does the job to replace tags
for s in xreadlines.xreadlines(stdacc):
s=s.replace( "<ENERGY>", loopenergy[i])
s=s.replace( "<XOFFSET>", loopxoffset[i])
s=s.replace( "<YOFFSET>", loopyoffset[i])
newacc.write(s)
stdacc.close()
newacc.close()
print 'wrote accelerator file \n'
commands.getstatusoutput("ln -s "+dpath+"acc"+dnamelist[i]+".dat acc.dat")
print 'running '+dpath+"guinea "+gpaccname+' '+gpaccparam+' main.dat '
commands.getstatusoutput(dpath+"guinea "+gpaccname+" "+gpaccparam+" main.dat")
print 'ran gp OK, \n'
os.chdir(dpath+dnamelist[i])
print 'now running '+hpath+"gpanal/src/GPAnal_fz "+dpath+dnamelist[i]+" "+loopenergy[i]
commands.getstatusoutput(hpath+"gpanal/src/GPAnal_fz "+dpath+dnamelist[i]+" "+loopenergy[i])
print 'ran gpanal OK'
commands.getstatusoutput("mv *.root "+hpath+"gpanal/run/")
print "ran mv *.root "+hpath+"gpanal/run/ \n"
if __name__ == "__main__":
main()