def analysis.general_optics_example.doit_bc (   theta1,
  clen,
  lambda0,
  drawit = 0 
)

Definition at line 546 of file general_optics_example.py.

00546                                             :
00547     
00548     print "\n\n***start blue line trace***\n"
00549     grating_offset=-0.075
00550     exit_height=0
00551     exit_z=-0.3
00552     eta1=0.0
00553     
00554     optics={}
00555     
00556     END='end'
00557     optics[END]=null_optic("end", (0.15,exit_height,0), 0)
00558     START='start'
00559     optics[START]=null_optic("start", (0,0,-0.85))
00560 
00561     
00562     tracebeam=basebeam.clone()
00563     system_center=Numeric.array((-0.1, 0, -0.85))
00564     
00565     basebeam=beam(system_center, qtens(lambda0, q=spitfire.q0), lambda0)
00566     tracebeam.free_drift(-0.2)
00567         
00568     COMP='comp'
00569     comp=optics[COMP]=blue_compressor(theta1, clen, lambda0, center=system_center, angle=rotation)
00570     TM2='turn2'
00571     optics[TM2]=reflector("output turn 2", angle=0, center=(0.15,exit_height,-0.6), width=.025)
00572 
00573     optics[COMP].set_exit_direction(optics[TM2])
00574     optics[TM2].set_direction(optics[COMP], optics[END])
00575 
00576     sys_order=(START, COMP, TM2, DEMAG1, DEMAG2, END)
00577 
00578     GRATE=comp.mark_label(blue_compressor.GRATE)
00579     IR1=comp.mark_label(blue_compressor.IR1)
00580     IR2=comp.mark_label(blue_compressor.IR2)
00581     
00582     optic_sys=composite_optic("system", optics, sys_order, center=optics[START].center)
00583     
00584     trace0=trace_path(optic_sys, tracebeam.shift_lambda(0))
00585     trace0.color=graphite.green
00586     trace1=trace_path(optic_sys, tracebeam.shift_lambda(-0.5e-9))
00587     trace1.color=graphite.blue
00588     trace2=trace_path(optic_sys, tracebeam.shift_lambda(+0.5e-9))
00589     trace2.color=graphite.red
00590             
00591     try: #if one of the traces failed, this may not work
00592         print "Theta1=%.3f eta=%.3f len=%.3f lambda=%.4f" % (theta1, eta1, clen, lambda0*1e6)
00593         d0=trace0[-1]['total_drift']
00594         d1=trace1[-1]['total_drift']
00595         d2=trace2[-1]['total_drift']
00596         print ("d(lambda0-0.5nm)=%.3f m, d(lambda0+0.5nm)=%.3f m, dt/dl=%.0f ps/nm, " % (d1, d2, (d2-d1)*1e12/clight)), 
00597         print "d2t/dl2 = %.2f ps/nm^2" % ((d2+d1-2.0*d0)*(1e12/clight)*4)
00598         spot1info=trace0[(GRATE,0)] 
00599         spot2info=trace0[(GRATE,1)] 
00600         ir1info=trace0[(IR1,0)]
00601         ir2info=trace0[(IR2,0)]
00602         spot_offset=spot2info['position']-spot1info['position']
00603         retro_offset=ir2info['position']-ir1info['position']
00604         print "Grating offset = %.3f, retro_offset=%.3f" % (vec_mag(spot_offset), vec_mag(retro_offset))
00605         print "measured vertex length = %.3f" % vec_mag(comp[GRATE].center-comp[IR1].center)
00606         print "dispersion offset on grating = %.3f m / nm" % vec_mag(trace2[(GRATE,1)]['position']-trace1[(GRATE,1)]['position'])
00607         print "final q = ", trace0[-1]['q']
00608     except:
00609         traceback.print_exc()
00610         pass
00611                 
00612     if drawit:
00613         g=draw_everything({"sys":optic_sys}, trace0, (-.9, .1), (-.5, .5), three_d=0)
00614         #g=draw_everything(optics, trace0, (-2, 2), (-2, 2))
00615         draw_trace(g, trace1)
00616         draw_trace(g, trace2)
00617         graphite.genOutput(g,'QD',canvasname="Compressor layout", size=(600,500))
00618         #graphite.genOutput(g,'PDF',canvasname="mendenhall pbg3:compressor.pdf", size=(600,500))
00619 
class quadrupler(composite_optic):


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