from random import choice import os def rand(): return choice([-1.0,1.0]) def randIndexString(): fieldIndex = 0.1058 return str(round(choice([0.95,1.05])*fieldIndex,10)) print("How many lattice files do you want?") num_lattice = int(input()) for latticeNum in range(num_lattice): directory = 'config' + str(latticeNum+1) os.mkdir(directory) with open(directory+"/quad_plate_misalign.bmad", "w") as f: ##quads## #quad1 #inner x avg = 7.0620-7.06147 uncertainty = 0.00053 f.write("quad1_long[grid_field(3)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 7.0620-7.06158 uncertainty = 0.00099 f.write("quad1_short[grid_field(3)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #inner y avg = 0.0 uncertainty = 0.0 f.write("quad1_long[grid_field(3)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 0.0 uncertainty = 0.0 f.write("quad1_short[grid_field(3)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #bottom x avg = 0.0 uncertainty = 0.0 f.write("quad1_long[grid_field(4)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 0.0 uncertainty = 0.0 f.write("quad1_short[grid_field(4)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #bottom y avg = 7.1620-7.16204 uncertainty = 0.00083 f.write("quad1_long[grid_field(4)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 7.1620-7.16144 uncertainty = 0.00099 f.write("quad1_short[grid_field(4)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #outer x avg = 7.1620-7.16204 uncertainty = 0.00083 f.write("quad1_long[grid_field(5)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 7.1620-7.16144 uncertainty = 0.00099 f.write("quad1_short[grid_field(5)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #outer y avg = 0.0 uncertainty = 0.0 f.write("quad1_long[grid_field(5)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 0.0 uncertainty = 0.0 f.write("quad1_short[grid_field(5)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #top x avg = 0.0 uncertainty = 0.0 f.write("quad1_long[grid_field(6)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 0.0 uncertainty = 0.0 f.write("quad1_short[grid_field(6)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #top y avg = 7.0620-7.06147 uncertainty = 0.00053 f.write("quad1_long[grid_field(6)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 7.0620-7.06158 uncertainty = 0.00099 f.write("quad1_short[grid_field(6)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') f.write('\n') #quad2 #inner x avg = 7.0620-7.06206 uncertainty = 0.00058 f.write("quad2_long[grid_field(3)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 7.0620-7.06130 uncertainty = 0.00050 f.write("quad2_short[grid_field(3)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #inner y avg = 0.0 uncertainty = 0.0 f.write("quad2_long[grid_field(3)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 0.0 uncertainty = 0.0 f.write("quad2_short[grid_field(3)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #bottom x avg = 0.0 uncertainty = 0.0 f.write("quad2_long[grid_field(4)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 0.0 uncertainty = 0.0 f.write("quad2_short[grid_field(4)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #bottom y avg = 7.1620-7.16187 uncertainty = 0.00071 f.write("quad2_long[grid_field(4)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 7.1620-7.16071 uncertainty = 0.00070 f.write("quad2_short[grid_field(4)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #outer x avg = 7.1620-7.16187 uncertainty = 0.00071 f.write("quad2_long[grid_field(5)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 7.1620-7.16071 uncertainty = 0.00070 f.write("quad2_short[grid_field(5)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #outer y avg = 0.0 uncertainty = 0.0 f.write("quad2_long[grid_field(5)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 0.0 uncertainty = 0.0 f.write("quad2_short[grid_field(5)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #top x avg = 0.0 uncertainty = 0.0 f.write("quad2_long[grid_field(6)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 0.0 uncertainty = 0.0 f.write("quad2_short[grid_field(6)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #top y avg = 7.0620-7.06206 uncertainty = 0.00058 f.write("quad2_long[grid_field(6)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 7.0620-7.06130 uncertainty = 0.00050 f.write("quad2_short[grid_field(6)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') f.write('\n') #quad3 #inner x avg = 7.0620-7.06231 uncertainty = 0.00051 f.write("quad3_long[grid_field(3)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 7.0620-7.06160 uncertainty = 0.00051 f.write("quad3_short[grid_field(3)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #inner y avg = 0.0 uncertainty = 0.0 f.write("quad3_long[grid_field(3)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 0.0 uncertainty = 0.0 f.write("quad3_short[grid_field(3)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #bottom x avg = 0.0 uncertainty = 0.0 f.write("quad3_long[grid_field(4)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 0.0 uncertainty = 0.0 f.write("quad3_short[grid_field(4)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #bottom y avg = 7.1620-7.16192 uncertainty = 0.00071 f.write("quad3_long[grid_field(4)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 7.1620-7.16200 uncertainty = 0.00081 f.write("quad3_short[grid_field(4)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #outer x avg = 7.1620-7.16192 uncertainty = 0.00071 f.write("quad3_long[grid_field(5)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 7.1620-7.16200 uncertainty = 0.00081 f.write("quad3_short[grid_field(5)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #outer y avg = 0.0 uncertainty = 0.0 f.write("quad3_long[grid_field(5)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 0.0 uncertainty = 0.0 f.write("quad3_short[grid_field(5)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #top x avg = 0.0 uncertainty = 0.0 f.write("quad3_long[grid_field(6)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 0.0 uncertainty = 0.0 f.write("quad3_short[grid_field(6)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #top y avg = 7.0620-7.06231 uncertainty = 0.00051 f.write("quad3_long[grid_field(6)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 7.0620-7.06160 uncertainty = 0.00051 f.write("quad3_short[grid_field(6)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') f.write('\n') #quad4 #inner x avg = 7.0620-7.06220 uncertainty = 0.00067 f.write("quad4_long[grid_field(3)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 7.0620-7.06161 uncertainty = 0.00099 f.write("quad4_short[grid_field(3)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #inner y avg = 0.0 uncertainty = 0.0 f.write("quad4_long[grid_field(3)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 0.0 uncertainty = 0.0 f.write("quad4_short[grid_field(3)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #bottom x avg = 0.0 uncertainty = 0.0 f.write("quad4_long[grid_field(4)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 0.0 uncertainty = 0.0 f.write("quad4_short[grid_field(4)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #bottom y avg = 7.1620-7.16170 uncertainty = 0.00099 f.write("quad4_long[grid_field(4)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 7.1620-7.16197 uncertainty = 0.00080 f.write("quad4_short[grid_field(4)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #outer x avg = 7.1620-7.16170 uncertainty = 0.00099 f.write("quad4_long[grid_field(5)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 7.1620-7.16197 uncertainty = 0.00080 f.write("quad4_short[grid_field(5)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #outer y avg = 0.0 uncertainty = 0.0 f.write("quad4_long[grid_field(5)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 0.0 uncertainty = 0.0 f.write("quad4_short[grid_field(5)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #top x avg = 0.0 uncertainty = 0.0 f.write("quad4_long[grid_field(6)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 0.0 uncertainty = 0.0 f.write("quad4_short[grid_field(6)%r0(1)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') #top y avg = 7.0620-7.06220 uncertainty = 0.00067 f.write("quad4_long[grid_field(6)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') avg = 7.0620-7.06161 uncertainty = 0.00099 f.write("quad4_short[grid_field(6)%r0(2)]=" + str(round(avg+rand()*uncertainty,10))) f.write('\n') f.write('\n') with open(directory + "/quad_input.dat", "w") as f: ##Voltages## f.write("&input") f.write('\n') f.write(" quad_params = "+randIndexString()+" "+randIndexString()+" "+randIndexString()+" "+randIndexString()+" "+randIndexString()+" "+randIndexString()+" "+randIndexString()+" "+randIndexString()) f.write('\n') #short f.write(" quad_params%short_quad_plate_index(1) = "+randIndexString()+" "+randIndexString()+" "+randIndexString()+" "+randIndexString()) f.write('\n') f.write(" quad_params%short_quad_plate_index(2) = "+randIndexString()+" "+randIndexString()+" "+randIndexString()+" "+randIndexString()) f.write('\n') f.write(" quad_params%short_quad_plate_index(3) = "+randIndexString()+" "+randIndexString()+" "+randIndexString()+" "+randIndexString()) f.write('\n') f.write(" quad_params%short_quad_plate_index(4) = "+randIndexString()+" "+randIndexString()+" "+randIndexString()+" "+randIndexString()) f.write('\n') #long f.write(" quad_params%long_quad_plate_index(1) = "+randIndexString()+" "+randIndexString()+" "+randIndexString()+" "+randIndexString()) f.write('\n') f.write(" quad_params%long_quad_plate_index(2) = "+randIndexString()+" "+randIndexString()+" "+randIndexString()+" "+randIndexString()) f.write('\n') f.write(" quad_params%long_quad_plate_index(3) = "+randIndexString()+" "+randIndexString()+" "+randIndexString()+" "+randIndexString()) f.write('\n') f.write(" quad_params%long_quad_plate_index(4) = "+randIndexString()+" "+randIndexString()+" "+randIndexString()+" "+randIndexString()) f.write('\n') f.write("b_radial = 0") f.write('\n') f.write('\\') with open(directory + "/g2.sh", "w") as f: f.write("#!/bin/bash") f.write('\n') f.write("cd /nfs/gm2/data1/dlr10/g-2/mytest/efield_pitch_config_35us_start/"+directory) f.write('\n') f.write("DESTINATION_DIR=${JOB_ID}") f.write('\n') f.write("mkdir -p ${DESTINATION_DIR}") f.write('\n') f.write("/nfs/acc/user/dlr/development9_linux/g-2/softlink_lnx") f.write('\n') f.write("ln -s /nfs/gm2/data1/dlr10/g-2/mytest/efield_pitch_config_35us_start/input.dat") f.write('\n') f.write("ln -s /nfs/gm2/data1/dlr10/g-2/mytest/efield_pitch_config_35us_start/bmad_esquad_grid.") f.write('\n') f.write("/nfs/acc/user/dlr/development9_linux/production/bin/g2_tracking > ${DESTINATION_DIR}/log.dat")