To run this example:

! Generate files for nominal solution 
elegant pls220.ele

! Generate files for optimization terms

sddsprocess pls220.twi pls220.twi-betaxTerms -match=col,ElementType=MARK \
            -match=col,ElementName=_BEG_,\! "-print=col,Term,%s#%ld.betax %21.15e / 1 .01 sene,ElementName,ElementOccurence,betax"
sddsprocess pls220.twi pls220.twi-betayTerms -match=col,ElementType=MARK \
            -match=col,ElementName=_BEG_,\! "-print=col,Term,%s#%ld.betay %21.15e / 1 .01 sene,ElementName,ElementOccurence,betay"
sddsprocess pls220.twi pls220.twi-etaxTerms -match=col,ElementType=MARK \
            -match=col,ElementName=_BEG_,\! "-print=col,Term,%s#%ld.etax %21.15e / 1 .01 sene,ElementName,ElementOccurence,etax"


! Perform the matching.  This may take a few hours.
elegant pls22.ele 

! Compute and plot beats
sddsxref pls22.twi pls220.twi -pipe=out -take=beta*,etax -edit=col,*eta*,ei/0/ \
         | sddsprocess -pipe=in pls22.beats \
         "-define=col,%sBeat,%s %s0 - %s0 / 100 *,units=%,select=*eta*0,edit=%/0//" \
         -process=betaxBeat,spread,%sPkPk -process=betaxBeat,rms,%sRms \
         "-print=parameter,betaxLabel,betax : %.2lf%s pk-pk   %.2lf%s rms,betaxBeatPkPk,betaxBeatPkPk.units,betaxBeatRms,betaxBeatRms.units" \
         -process=betayBeat,spread,%sPkPk -process=betayBeat,rms,%sRms \
         "-print=parameter,betayLabel,betay : %.2lf%s pk-pk   %.2lf%s rms,betayBeatPkPk,betayBeatPkPk.units,betayBeatRms,betayBeatRms.units" \
         -process=etaxBeat,spread,%sPkPk -process=etaxBeat,rms,%sRms \
         "-print=parameter,etaxLabel,etax : %.2lf%s pk-pk   %.2lf%s rms,etaxBeatPkPk,etaxBeatPkPk.units,etaxBeatRms,etaxBeatRms.units" \

sddsplot -layout=1,3 -column=s,betaxBeat pls22.beats -title=@betaxLabel -end \
         -column=s,betayBeat pls22.beats -title=@betayLabel -end \
         -column=s,etaxBeat pls22.beats -title=@etaxLabel -end 

