!rep other-wire marker-type circle polymarker-colour purple !rep isochrones polyline-colour orange linetype solid !rep isochrones polymarker-colour orange marker-type plus &CELL Global d=0.0020 Global plane=0.2 Global pitch=0.2 pl y {-plane} lab p pl y {+plane} lab q rows a 1 {d, -5*pitch} 0 2000 b 1 {d, -4*pitch} 0 2000 c 1 {d, -3*pitch} 0 2000 d 1 {d, -2*pitch} 0 2000 e 1 {d, -1*pitch} 0 2000 f 1 {d, 0*pitch} 0 2000 g 1 {d, +1*pitch} 0 2000 h 1 {d, +2*pitch} 0 2000 i 1 {d, +3*pitch} 0 2000 j 1 {d, +4*pitch} 0 2000 k 1 {d, +5*pitch} 0 2000 opt wire-markers &GAS arg-50-eth-50 !add meta type PostScript file-name "drift.ps" !open meta !act meta &DRIFT sel f area {-1.1*pitch,-1.1*plane,+1.1*pitch,+1.1*plane} int-par iso-aspect 200 iso-conn 0.05 drift wire lines 41 contour 5 ion !deact meta !close meta !del meta !add meta type PostScript file-name "weight.ps" !open meta !act meta &SIGNAL sel f p q e g area {-1.1*pitch,-1.1*plane,+1.1*pitch,+1.1*plane} grid 31 plot-field vector !deact meta !close meta !del meta !add meta type PostScript file-name "charge.ps" !open meta !act meta &SIGNAL sel f p q e g area {-1.1*pitch,-1.1*plane,+1.1*pitch,+1.1*plane} int-par check-attracting-wires int-acc 1e-8 Global n=100 Call book_matrix(q1,n) Call book_matrix(q2,n) Call book_matrix(q3,n) Call book_matrix(q4,n) Call book_matrix(q5,n) Call book_matrix(q6,n) Call book_matrix(q7,n) Call book_matrix(a,n) For inter From 1 To 14 Do If 'inter=1' Then Global tmin=0.000 Global tmax=0.001 Elseif 'inter=2' Then Global tmin=0.001 Global tmax=0.002 Elseif 'inter=3' Then Global tmin=0.002 Global tmax=0.005 Elseif 'inter=4' Then Global tmin=0.005 Global tmax=0.010 Elseif 'inter=5' Then Global tmin=0.010 Global tmax=0.020 Elseif 'inter=6' Then Global tmin=0.020 Global tmax=0.050 Elseif 'inter=7' Then Global tmin=0.050 Global tmax=0.100 Elseif 'inter=8' Then Global tmin=0.100 Global tmax=0.200 Elseif 'inter=9' Then Global tmin=0.200 Global tmax=0.500 Elseif 'inter=10' Then Global tmin=0.500 Global tmax=1.000 Elseif 'inter=11' Then Global tmin=1.000 Global tmax=2.000 Elseif 'inter=12' Then Global tmin=2.000 Global tmax=5.000 Elseif 'inter=13' Then Global tmin=5.000 Global tmax=10.00 Elseif 'inter=14' Then Global tmin=10.000 Global tmax=20.00 Endif For i From 1 To n Do Global phi=-pi+2*pi*(i-1)/(n-1) Global r=0.501*d Global a[i]=phi Call induced_charge(r*cos(phi),r*sin(phi),0,`ion+`,1,tmin,tmax,q) Global q1[i]=q Call induced_charge(r*cos(phi),r*sin(phi),0,`ion+`,2,tmin,tmax,q) Global q2[i]=q Call induced_charge(r*cos(phi),r*sin(phi),0,`ion+`,3,tmin,tmax,q) Global q3[i]=q Call induced_charge(r*cos(phi),r*sin(phi),0,`ion+`,4,tmin,tmax,q) Global q4[i]=q Call induced_charge(r*cos(phi),r*sin(phi),0,`ion+`,5,tmin,tmax,q) Global q5[i]=q If 'inter=1' Then Call drift_information(`steps`,nu) Call drift_information(`status`,status) Call drift_information(`drift-time`,time) Say "Angle {i}/{n} - phi: {phi}, steps: {nu}, status={status}, time={time}" Endif Enddo Call plot_frame(-pi,-1.1*maximum(q2),+pi,1.1*maximum(q2), ... `Angle [radian]`,`Charge [electron charges]`, ... `Charge vs angle, `/string(tmin)/` < t < `/string(tmax)/` μsec`) Call plot_line(a,q1,`function-1`) Call plot_line(a,q2,`function-2`) Call plot_line(a,q3,`function-3`) Call plot_line(a,q4,`function-4`) Call plot_line(a,q5,`function-5`) Call plot_end Enddo !deact meta !close meta !del meta