def __init__ (   self,
  extras 
)

Definition at line 284 of file general_optics_example.py.

00284                                 :
00285         inch=0.0254
00286         entrance_y=5.0*inch
00287         exit_y=13.5*inch
00288         my=ir_line
00289         optics={}
00290         
00291         #first, list all mirrors, and point them at each other
00292         optics[my.M1]=mir("M1", (2*inch, entrance_y, 10*inch))
00293         optics[my.M2]=mir("M2", (4*inch, entrance_y, 10*inch))
00294         optics[my.TrM1]=mir("TrM1", (4*inch, entrance_y, 96*inch))
00295         optics[my.TrM2]=mir("TrM2", (6*inch, entrance_y, 96*inch))
00296         optics[my.TrM3]=mir("TrM3", (6*inch, entrance_y, 82.5*inch))
00297         optics[my.TrM4]=mir("TrM4", (2*inch, entrance_y, 82.5*inch))
00298         optics[my.M3]=mir("M3", (4*inch, entrance_y, 135*inch))
00299         optics[my.M4]=mir("M4", (12*inch, entrance_y, 135*inch))
00300         optics[my.M5]=mir("M5", (13*inch, entrance_y, 105*inch))
00301         optics[my.M6]=mir("M6", (14*inch, entrance_y, 105*inch))
00302         optics[my.M7]=mir("M7", (16.5*inch, entrance_y, 3*inch))
00303         optics[my.M8]=mir("M8", (24*inch, entrance_y, 3*inch))
00304         optics[my.M9]=mir("M9", (23*inch, entrance_y, 135*inch))
00305         optics[my.M10]=mir("M10", (33*inch, entrance_y, 134.5*inch))
00306         optics[my.M11]=mir("M11", (33*inch, entrance_y, -6*inch))
00307         optics[my.BP4]=PL_brewster_filter("BP4", (33*inch, entrance_y, 27*inch), reversed=1)
00308         optics[my.M12]=mir("M12", (20*inch, entrance_y, 33*inch))
00309         optics[my.M13]=mir("M13", (20*inch, entrance_y, 12*inch))
00310         optics[my.M14]=mir("M14", (8.5*inch, entrance_y, 11.5*inch))
00311         optics[my.M15]=mir("M15", (8.5*inch, exit_y, 11.5*inch))
00312         
00313         optics[my.EXIT]=sys_exit=null_optic("exit", (10.0*inch, exit_y, 142.0*inch))
00314                 
00315         optics[my.L1]=lens("L1", f=+0.400).place_between(optics[my.M2], optics[my.TrM1], 12.0*inch)
00316         optics[my.L2]=lens("L2", f=+0.800).place_between(optics[my.L1], optics[my.TrM1], 1.30)
00317         optics[my.L3]=lens("L3", f=+0.750).place_between(optics[my.M6], optics[my.M7], 10*inch)
00318         optics[my.L4]=lens("L4", f=+1.500).place_between(optics[my.L3], optics[my.M7], 2.25)
00319         optics[my.L5]=lens("L5", f=+0.750).place_between(optics[my.M10], optics[my.M11], 5*inch)
00320         optics[my.L6]=lens("L6", f=+1.500).place_between(optics[my.L5], optics[my.M11], 95.5*inch)
00321         optics[my.L7]=lens("L7", f=+0.750).place_between(optics[my.M15], sys_exit, 4.5*inch)
00322         optics[my.L8]=lens("L8", f=+2.500, width=6*inch, thickness=0.25*inch).\
00323             place_between(optics[my.M15], sys_exit, -1*inch).tilt_off_axis((0,45,0))
00324         
00325         optics[my.G9a]=laser_head("9mm-1", width=2.0*inch, thickness=6.0*inch, rodsize=0.009).\
00326             place_between(optics[my.M4], optics[my.M5], 9*inch)
00327         optics[my.G9b]=laser_head("9mm-2", width=2.0*inch, thickness=6.0*inch, rodsize=0.009).\
00328             place_between(optics[my.M4], optics[my.M5], 23*inch)
00329         
00330         optics[my.G25a]=laser_head("25mm-1", width=6.0*inch, thickness=12.0*inch, rodsize=0.025).\
00331             place_between(optics[my.M8], optics[my.M9], 74*inch)
00332         optics[my.G25b]=laser_head("25mm-2", width=6.0*inch, thickness=12.0*inch, rodsize=0.025).\
00333             place_between(optics[my.M8], optics[my.M9], 94*inch)
00334 
00335         optics[my.G50]=laser_head("50mm", width=9.0*inch, thickness=15.0*inch, rodsize=0.050).\
00336             place_between(optics[my.M10], optics[my.M11], -19*inch)
00337 
00338         optics[my.SERR1]=serrated_aperture("serrated aperture", diameter=0.003).\
00339             place_between(optics[my.M2], optics[my.TrM1], 10*inch)      
00340         optics[my.SF1]=plain_aperture("spatial filter 1", diameter=0.001).\
00341             place_between(optics[my.M2], optics[my.TrM1], 35*inch)
00342         
00343         optics[my.QR1]=halfwave_plate("QR1", width=1*inch, thickness=0.5*inch).\
00344             place_between(optics[my.G9a], optics[my.G9b], 8*inch).rotate_axis(22.5) 
00345         optics[my.FR12]=faraday_rotator("FR12", width=0.5*inch, thickness=6*inch, rotation=45).\
00346             place_between(optics[my.M6], optics[my.M7], 5*inch)
00347         optics[my.VSF1]=vacuum_spatial_filter("VSF1", thickness=24*inch, width=2*inch).\
00348             place_between(optics[my.L3], optics[my.L4], 0.750)
00349             
00350         optics[my.QR2]=halfwave_plate("QR2", width=1*inch, thickness=0.5*inch).\
00351             place_between(optics[my.G25a], optics[my.G25b], 8*inch).rotate_axis(22.5)   
00352 
00353         optics[my.BP2]=PL_brewster_filter("BP2", transmit=1).\
00354             place_between(optics[my.G25b], optics[my.M9], 13*inch).rotate_axis(90)
00355         optics[my.QR3]=halfwave_plate("QR3", width=1*inch, thickness=0.5*inch).\
00356             place_between(optics[my.G25b], optics[my.M9], 19*inch).rotate_axis(22.5)    
00357         optics[my.FR25]=faraday_rotator("FR25", width=1.0*inch, thickness=6.0*inch, rotation=45).\
00358             place_between(optics[my.G25b], optics[my.M9], 23*inch)
00359         optics[my.BP3]=PL_brewster_filter("BP3", transmit=1).\
00360             place_between(optics[my.G25b], optics[my.M9], 30*inch).rotate_axis(0)
00361         
00362         looks=[my.M1, my.M2, my.TrM1, my.TrM2, my.TrM3, my.TrM4, my.M3, my.M4, my.M5,
00363             my.M6, my.M7, my.M8, my.M9, 
00364             my.M10, my.M11, my.BP4, my.M12, my.M13, my.M14, my.M15, my.EXIT]
00365         #align all mirrors
00366         for i in range(1, len(looks)-1):
00367             optics[looks[i]].set_direction(optics[looks[i-1]], optics[looks[i+1]])
00368 
00369         order=[my.M1, my.M2, my.SERR1, my.L1, my.SF1, my.L2, my.TrM1, my.TrM2, my.TrM3, my.TrM4, my.M3, my.M4, my.G9a, 
00370             my.QR1, my.G9b, my.M5,
00371             my.M6, my.FR12, my.L3, my.VSF1, my.L4, my.M7, my.M8, my.G25a, my.QR2, my.G25b, 
00372             my.BP2, my.QR3, my.FR25, my.BP3, 
00373             my.M9, my.M10, my.L5, my.L6, my.G50, my.M11, my.BP4, my.M12, 
00374             my.M13, my.M14, my.M15, my.L7, my.L8]
00375         
00376         #specify center and reference as (0,0,0) to make our coordinates absolute
00377         composite_optic.init(self, "IR line", optics, order, (0,0,0), (0,0,0), 0, extras=extras )
00378 
class ir_compressor(composite_optic):


Generated on Wed Nov 21 10:18:33 2007 for analysis by  doxygen 1.5.4