#!/bin/csh set path = (../../bin $path) cp data/APS.twi . cp data/APS0.twi . # # Make various plots as in the sddsplot manual page # sddsplot -columnNames=s,betax APS0.twi -title="A simple plot of one beta function" sddsplot -columnNames=s,'(beta?,etax)' APS0.twi -graph=line,vary \ -title="Principle Twiss parameters for APS design" sddsplot -columnNames=s,'(beta?,etax)' APS.twi -graphic=line,vary -legend \ -split=page -separate=page \ -title="Principle Twiss parameters for APS lattices" sddsplot -columnNames=s,'(beta?,etax)' APS.twi -graphic=line,vary \ -split=page -groupby=nameIndex -separate=nameIndex -unsuppress=y \ -title="Principle Twiss parameters for APS lattices" # # Compute and plot changes in Twiss parameters in file APS.twi relative # to the design (APS0.twi) # sddschanges APS.twi -baseline=APS0.twi APS.changes -copy=s -changesIn=betax,betay,etax sddsplot -column=s,'(beta?,etax)' -graphic=line,vary APS.changes \ -title="Changes from Design Lattice" -groupby=page -separate=page -split=page \rm APS.changes # # Compute and plot changes in Twiss parameters in file APS.twi relative # to the first page of that file # sddschanges APS.twi APS.changes -copy=s -changesIn=betax,betay,etax sddsplot -column=s,'(beta?,etax)' -graphic=line,vary APS.changes \ -title="Changes from First Lattice" -groupby=page -separate=page -split=page \rm APS.changes # # Collapse the APS.twi file down to parameters, then fit nuy as a function of nux # sddscollapse APS.twi -pipe=out \ | tee APS.twic \ | sddspfit -pipe=in APS.twic.fit -column=nux,nuy -verbose sddsplot -column=nux,nuy APS.twic -graph=symbol -legend=spec=Data \ -column=nux,nuyFit APS.twic.fit -graph=line,type=1 -legend=spec=Fit \ -title="Fit of y tune vs x tune" \rm APS.twic APS.twic.fit # # Compute and plot envelopes of twiss parameters # sddsenvelope APS.twi APS.twi.env -copy=s -minimum='beta?',etax -maximum='beta?',etax sddsplot -graph=line,vary,eachreq -unsuppress=y \ -column=s,'*Min*' APS.twi.env -legend=yname,edit=%/Min// \ -column=s,'*Max*' APS.twi.env \ -title="Min and max values for APS lattices" \rm APS.twi.env # # Interpolate Twiss parameters and plot original and interpolated data # sddsinterp APS0.twi APS0.interp -column=s,betax,betay,etax -order=2 -sequence=250 sddsplot -groupby=namei -separate=namei -unsuppress=y -graph=line,vary \ -column=s,'(beta?,etax)' APS0.twi -legend=spec=Original \ -column=s,'(beta?,etax)' APS0.interp -legend=spec=Interpolated \ -title="Original and interpolated Twiss functions" \rm APS0.interp # # Compute and plot beam sizes # sddsprocess APS0.twi -define=parameter,epsx,8.2e-9,units=nm -define=parameter,sigmaDelta,1e-3 \ -define=parameter,coupling,0.01 -define=parameter,epsy,"epsx coupling *" \ -define=column,sigmax,"epsx betax * sigmaDelta etax * sqr + sqrt",units=m,symbol='$gs$r$bx$n' \ -define=column,sigmay,"epsy betay * sqrt",units=m,symbol='$gs$r$by$n' sddsplot -column=s,'sigma?' -graph=line,vary -legend APS0.twi -unsuppress=y \ -title="Beam sizes for APS design with 1% coupling" # # Make list of quad names # sddsconvert APS.twi -pipe=out -retain=column,ElementName,ElementType \ | sddsprocess -pipe -match=column,ElementType='QUAD' \ | sddssort -pipe=in quadNames.sdds -unique -column=ElementName sddsconvert quadNames.sdds -pipe=out -toPage=1 \ | sdds2stream -column=ElementName -pipe=in # # Make twiss files for quads only and for nonquads only # sddsselect APS.twi quadNames.sdds APSquad.twi -match=ElementName -reuse sddsselect APS.twi quadNames.sdds APSnquad.twi -match=ElementName -reuse -invert \rm quadNames.sdds sddsplot -groupby=page -separate=page -split=page \ -column=s,'(betax,betay,etax)' APSquad.twi -graph=symbol,type=0,vary=subtype,scale=2,eachreq \ -column=s,'(betax,betay,etax)' APSnquad.twi -graph=symbol,type=1,vary=subtype,scale=2,eachreq \ -column=s,'(betax,betay,etax)' APS.twi -graph=line,vary -legend \rm APS*quad.twi APS.twi APS0.twi*