# slit d_sl = 0.4 angle_sl = -2 sl = phoray.SimpleMirror(p, along(r2, d_m3), Vector(angle_m3,0,0)) print beam4.make_beam4_table( ("X", "Y", "Z", "Tilt", "Pitch", "Roll", "Cx", "C", "Gy", "Ord", "Type", "Dx", "Dy", "Form"), ( #m1 (m1.position.x, m1.position.y, m1.position.z, degrees(m1.rotation.x), 0, 0, 0, 0, None, None, "mirror", 0.05, 0.05, "S"), #m2 (m2.position.x, m2.position.y, m2.position.z, degrees(m2.rotation.x), 0, 0, 0, 0, None, None, "mirror", 0.05, 0.05, "S"), #m3 (m3.position.x, m3.position.y, m3.position.z, degrees(m3.rotation.x), 0, 0, 0, 0, None, None, "mirror", 0.05, 0.05, "S"), (sl.position.x, sl.position.y, sl.position.z, degrees(sl.rotation.x), 0, 0, 0, 0, None, None, "exit", 0.05, 0.05, "S"), ), width=15 )
print beam4.make_beam4_table( ("X", "Y", "Z", "Tilt", "Pitch", "Roll", "Cx", "C", "Asph", "Gx", "Ord", "Type", "Dx", "Dy", "offOy", "Form"), ( #m1 (r.endpoint.x, r.endpoint.y+a1*sin(tilt_m1), r.endpoint.z-a1*cos(tilt_m1), degrees(tilt_m1), 0, 0, None, -C1, -1, None, None, "mirror", 0.01, 0.10, None, "S"), #gr (gr.position.x, gr.position.y, gr.position.z, degrees(gr.rotation.x), theta, 0, None, None, None, ldensity, 1, "mirror", 0.01, 0.05, None, "S"), #m2 (sl.position.x, sl.position.y-a2*sin(tilt_m2), sl.position.z+a2*cos(tilt_m2), degrees(tilt_m2), 0, 0, None, C2, -1, None, None, "mirror", 0.01, 0.05, None, "S"), # slit (sl.position.x, sl.position.y, sl.position.z, degrees(sl.rotation.x), 0, 0, 0, 0, None, None, None, "iris", 50e-2, 0.05, None, "S"), #m3 (sl.position.x, sl.position.y+a3*sin(tilt_m3), sl.position.z-a3*cos(tilt_m3), degrees(tilt_m3), 0, 0, None, -C3, -1, None, None, ("mirror", ">"), 0.01, 0.35, None, "S"), #m4 (det.position.x, det.position.y-a4*sin(tilt_m4), det.position.z+a4*cos(tilt_m4), degrees(tilt_m4), 0, 0, None, C4, -1, None, None, "mirror", 0.01, 0.25, None, "S"), # #det (det.position.x, det.position.y, det.position.z, degrees(det.rotation.x), 0, 0, 0, 0, None, None, None, "exit", 0.05, 0.05, None, None), ), width=15 )
print beam4.make_beam4_table( ("X", "Y", "Z", "Tilt", "Pitch", "Roll", "Cx", "C", "Asph", "Gx", "Ord", "Type", "Dx", "Dy", "offOy", "Form"), ( #m1 (m1.position.x, m1.position.y, m1.position.z, degrees(m1.rotation.x), 0, 0, Cx1, C1, asph1, None, None, "mirror", 0.01, 0.05, None, "S"), #m2/gr (m2.position.x, m2.position.y, m2.position.z, degrees(m2.rotation.x), theta, 0, None, None, None, ldensity, m, "mirror", 0.01, 0.05, None, "S"), #m3 (m3.position.x, m3.position.y, m3.position.z, degrees(m3.rotation.x), 0, 0, Cx1, C1, asph1, None, None, "mirror", 0.01, 0.05, None, "S"), # slit (sl.position.x, sl.position.y, sl.position.z, degrees(sl.rotation.x), 0, 0, 0, 0, None, None, None, "iris", 50e-6, 0.05, None, "S"), #m4 (sl.position.x, sl.position.y-a4p*sin(angle_m4p), sl.position.z+a4p*cos(angle_m4p), degrees(angle_m4p), 0, 0, Cx4p, C4p, asph4p, None, None, ("mirror", ">"), 0.01, 0.005, 0.121, "S"), #m5 (det.position.x, det.position.y-a5p*sin(angle_m5p), det.position.z+a5p*cos(angle_m5p), degrees(angle_m5p), 0, 0, Cx5p, C5p, asph5p, None, None, "mirror", 0.01, 0.095, None, "S"), #det (det.position.x, det.position.y, det.position.z, degrees(det.rotation.x), 0, 0, 0, 0, None, None, None, "exit", 0.05, 0.05, None, None), ), width=15 )
n) s1 = zip(s1[0], s1[1], s1[2]) s2 = zip(s2[0], s2[1], s2[2]) p1 = [] p2 = [] for a in s1: line = [] line.extend(a[0]) line.extend(a[1]) line.extend(((float(wl(a[2][0]).rescale(m)), "r"), 1, None, None, None)) p1.append(line) for a in s2: line = [] line.extend(a[0]) line.extend(a[1]) line.extend(((float(wl(a[2][0]).rescale(m)), "b"), 1, None, None, None)) p2.append(line) r = beam4.make_beam4_table( ("X0", "Y0", "Z0", "U0", "V0", "W0", "@wavel", "Order", "Xfinal", "Yfinal", "Notes"), p1+p2, 15 ) #print p1 print 2*n print r