  TITLE, "LCLS2sc (March 31, 2014)"

! *** OPTICS=LCLS2sc31MAR14 ***

  OPTION, -ECHO, VERIFY, DOUBLE
  ASSIGN, ECHO="LCLS2sc.echo"
  ASSIGN, PRINT="LCLS2sc.print"

! ==============================================================================
! Modification History
! ------------------------------------------------------------------------------
! 31-MAR-2014, M. Woodley
!  * add list of beamline area names (per PRD LCLSII-WBS-PR-####-R#)
!  * add list of element name prefixes (per PRD LCLSII-WBS-PR-####-R#)
!  * add beamline area boundary MARKer points
! 26-MAR-2014, Y. Nosochkov
!  * put phase shifter and RFBPM positions back to 03/14 version
!  * remove PCTDKIK1,2,3,4 from HXR LTU
! 25-MAR-2014, Y. Nosochkov
!  * add insertable beam stoppers STSP6ha, STSP6hb, STSP6hc in HXR spreader
!  * remove existing BYKIK, TDKIK and SPOILER from HXR LTU
!  * add missing ST60, ST61 stoppers in the BSY
!  * add marker D10Js for location of D10 dump face in SXR line
!  * remove BYKIKb, SPOILERb, TDKIKb, SPOILD2b from SXR
!  * change names: D2b -> STBP33a, ST60b -> STBP33b, ST61b -> STBP33c
! 21-MAR-2014, Y. Nosochkov
!  * update positions of phase shifters and RFBPMs in undulator cells
!  * add Y-corrector to each undulator
!  * update phase shifter parameters (per H-D. Nuhn)
! 14-MAR-2014, Y. Nosochkov
!  * add/update names for area boundary markers
! 07-MAR-2014, Y. Nosochkov
!  * increase main dump length to 1.5 m (to be confirmed)
!  * remove transverse deflecting cavities from SXR dumpline
! 06-MAR-2014, Y. Nosochkov
!  * add a soft bend upstream of the dump bends
!  * roll the dumpline starting from the soft bend by 10 deg
!    to reduce HXR to SXR x-separation at the dumps to ~1.88 m and
!    adjust the vertical position at the dumps
! ------------------------------------------------------------------------------
! 01-MAR-2014, M. Woodley
!  * move cathode 10 m downstream ... now at Z= -10 m
!  * updated cryomodule layout
!    - 11 lambda CM-to-CM spacing
!    - add special short end cap at upstream end of L0
!      > SOL02 -> CAV011 center-to-center = 1.606 m
!    - include L0/L1/L2 feed boxes, L3 vacuum break box, and L3 end box
!      > use XFEL feed and end box lengths (~3.5 m)
!      > use XFEL "string connection box" length (23 lambda) for L3 break box
!  * add DIAG0 diagnostic line and X/Y collimation section after laser heater
!  * add BC3 chicane after dogleg to bypass line
!  * complete XCOR/YCOR/BPM additions in injector and linac areas
! 28-FEB-2014, Y. Nosochkov
!  * update undulators for reduced cell length of 4.4 m, rematch
! 26-FEB-2014, Y. Nosochkov
!  * update magnet types in the spreader, rematch
! 14-FEB-2014, Y. Nosochkov
!  * add a dumpline from the spreader to D10 dump including optics
!    for energy diagnostic
! 17-JAN-2014, Y. Nosochkov
!  * modify HXR spreader from 1-step to 2-step dogleg for tunable R56
!    and better magnet separation
! 18-DEC-2013, Y. Nosochkov
!  * adjust magnet positions in the spreader for less magnet interference
! 18-DEC-2013, M. Woodley
!  * name change: CE11B -> C1XE, CE21B -> C2XE
! 16-DEC-2013, Y. Nosochkov
!  * 3-way spreader design with low R56
! 03-DEC-2013, Y. Nosochkov
!  * make HXR BSY compatible with the existing divergent and biconcave chambers
!  * modify the spreader to reduce R56 and match to the updated BSY
! 21-NOV-2013, Y. Nosochkov
!  * replace the 2-way spreader (TLINE) with a 3-way spreader in BSY
! ------------------------------------------------------------------------------
! 04-NOV-2013, M. Woodley
!  * assign X or Y correctors to cryomodules
!  * redefine linac axis in LI00-LI10 ... modify bypass dogleg geometry
!  * update quadrupole type 1.26Q12 in HXR
!  * laser heater undulator parameters per M. Venturini
!  * latest compression setup per P. Emma
! 26-OCT-2013, Y. Nosochkov
!  * update quadrupole type 1.26Q12 in SXR
!  * update SXR and HXR undulator design, rematch optics
!  * update LTU match
! 21-OCT-2013, M. Woodley
!  * LCLS2sc v1.1
!  * input Twiss from C. Papadopoulos (Parameters_GUN2013_10_08v3.docx) ...
!    use "avg. beta" and "avg. alpha" parameters
!  * everything downstream of QBP13 from Yuri's LCLS2sc_2013_10_16 files
! 15-OCT-2013, M. Woodley
!  * LCLS2sc v1.0
!  * input Twiss from C. Papadopoulos (Parameters_GUN2013_10_08v3.docx)
! 07-OCT-2013, M. Woodley
!  * LCLS2sc v0.1
!  * initial beam parameters from C. Papadopoulos
!  * change 4-quad match to 6-quad match between L0 and laser heater
!  * increase laser heater chicane dispersion to 7.5 cm ... matching requires
!    inner/outer bend separation to increase
!  * increase laser heater chicane inner bend separation by 1.0 m and add an
!    energy collimator
! 06-OCT-2013, M. Woodley
!  * initial bare-bones lattice ... LCLS2sc v0
! 30-SEP-2013, M. Woodley
!  * from XFEL and NGLS designs
! ------------------------------------------------------------------------------

! ==============================================================================
! Beamline area names (areas with names in parentheses have not been designed)
! ------------------------------------------------------------------------------
! GUNB  : cathode to L0
! L0B   : L0 (end box, CM01, feed box)
! HTR   : laser heater, extraction to DIAG0
! COL0  : collimation 0
! L1B   : L1 (feed box, CM02-03, +HCM01-02, feed box)
! BC1B  : BC1 chicane, extraction to DIAG1
! COL1  : collimation 1
! L2B   : L2 (feed box, CM04-15, feed box)
! BC2B  : BC2 chicane, extraction to DIAG2
! COL2  : collimation 2
! L3B   : L3 (feed box, CM16-25, break box, CM26-23, feed box)
! EXT   : L3 extension
! DOG   : dogleg to bypass line
! BC3   : BC3 chicane
! BYP   : bypass line
! SPS   : spreader to SXR
! LTUS  : SXR LTU
! SXX   : SXR extension
! SXR   : SXR undulator
! DMPS  : SXR dump
! SPH   : spreader to HXR
! LTUH  : HXR LTU
! HXR   : HXR undulator
! DMPH  : HXR dump
!(SFTH  : HXR safety dump)
! SPD   : spreader to BSY dump
! DIAG0 : post laser heater diagnostics line
! DIAG1 : post BC1 diagnostics line
!(DIAGS : SXR diagnostics line)
!(DIAGH : HXR diagnostics line)

! ==============================================================================
! Element naming conventions with the first few characters meaning:
! ------------------------------------------------------------------------------
! CAVL.... = 1.3 GHz RF cavity (superconducting)
! CAVC.... = 3.9 GHz RF cavity (superconducting)
! CAVS.... = 2.856 GHz RF structure (warm copper)
! BUN..... = RF buncher (warm)
! TCX..... = transverse deflecting structure (horizontal deflection)
! TCY..... = transverse deflecting structure (vertical deflection)
! BX...... = horizontal bend (split in two (suffixes "a" and "b"))
! BY...... = vertical bend (split in two (suffixes "a" and "b"))
! BR...... = rolled bend (split in two (suffixes "a" and "b"))
! BCX..... = horizontal chicane bend (split in two (suffixes "a" and "b"))
! BLX..... = horizontal Lambertson septum (split in two (suffixes "a" and "b"))
! BLY..... = vertical Lambertson septum (split in two (suffixes "a" and "b"))
! BLR..... = rolled Lambertson septum (split in two (suffixes "a" and "b"))
! BKX..... = horizontal kicker ((split in two (suffixes "a" and "b"))
! BKY..... = vertical kicker (split in two (suffixes "a" and "b"))
! Q....... = quadrupole (normal quad, split in half)
! QCM..... = standard cryomodule quadrupole (normal quad, split in half)
! QSX..... = undulator quadrupole (normal quad, split in half)
! QHX..... = undulator quadrupole (normal quad, split in half)
! CQ...... = correction quadrupole (normal quad, split in half)
! SQ...... = skew quadrupole (skew quad, split in half)
! SOL..... = solenoid (split in half)
! UM...... = undulator magnet (full undualator segment)
! PS...... = phase shifter undulator
! CX...... = horizontal collimator (vertical jaws, adjustable)
! CY...... = vertical collimator (horizontal jaws, adjustable)
! CE...... = momentum collimator (adjustable)
! PC...... = protection collimator (fixed aperture)
! RO...... = coordinate rotation (non-physical element)
! XC...... = horizontal steering dipole
! XCM..... = standard cryomodule horizontal steering dipole
! YC...... = vertical steering dipole
! YCM..... = standard cryomodule vertical steering dipole
! SC...... = steering coil package (horizontal and vertical dipole correctors)
! BPM..... = beam position monitor (stripline, various resolutions)
! RFB..... = RF beam position monitor (<1 micron rms resolution)
! RFBCM... = standard cryomodule RF beam position monitor
! WS...... = wire scanner
! YAG..... = YAG screen profile monitor
! OTR..... = optical transition radiation profile monitor
! IM...... = bunch charge monitor (toroid, ICT, DCCT, etc.)
! FC...... = Faraday cup
! BZ...... = bunch length monitor (various types)
! BTM..... = burn-through monitor (PPS device)
! PH...... = beam phase detector
! TD...... = tune-up dump (insertable copper block)
! SP...... = beam spoiler
! ST...... = beam stopper
! TR...... = transition radiator
! DUMP.... = beam dump
! VV...... = vacuum valve (not all valves are in the MAD deck)
! MIR..... = laser insertion mirror
! BLM..... = beam loss monitor (undulator areas)
! ==============================================================================

! constants

  IN2M : CONSTANT=0.0254        !m/inch
  Cb   : CONSTANT=1.0E10/CLIGHT !kG-m/GeV
  mc2  : CONSTANT=510.99906E-6  !GeV

! energy profile

  E0 := 0.75E-3 !NGLS/APEX gun
  Ei := 0.098
  E1 := 0.25
  E2 := 1.6
  Ef := 4.0

! compression

  R56HTR := 0.0145 !approximately
  R56BC1 := 0.055
  R56BC2 := 0.0545
  R56BC3 := 0.012

! ------------------------------------------------------------------------------
! select an input beam definition
! ------------------------------------------------------------------------------

 !COMMENT !C. Papadopoulos (100 pC) ["GUN2013_10_08v3"]
   !Twiss at gun
    BX0 := 2.096815458448E2
    AX0 := 81.399961086042
    BY0 := 2.096815458448E2
    AY0 := 81.399961086042
   !Twiss at S= 15.0 m (ASTRA)
    BXa := 7.54352403513   !"avg. beta"
    AXa := -0.217252127319 !"avg. alpha"
    BYa := 7.54352403513   !"avg. beta"
    AYa := -0.217252127319 !"avg. alpha"
   !Twiss at start of INJ
    BXi := 9.844436186786
    AXi := -0.60548582834
    BYi := 9.844436186786
    AYi := -0.60548582834
   !maximum beta in L0-to-LH matching section
    BL0LHmax := 25
 !ENDCOMMENT

  COMMENT !C. Papadopoulos (20 pC) ["20pC_2013_12_04"]
   !Twiss at gun
    BX0 := 7.172301215481E2
    AX0 := 2.765408146872E2
    BY0 := 7.172301215481E2
    AY0 := 2.765408146872E2
   !Twiss at S= 15.0 m (ASTRA)
    BXa := 14.5141571444 !"avg. beta"
    AXa := 1.69345629448 !"avg. alpha"
    BYa := 14.5141571444 !"avg. beta"
    AYa := 1.69345629448 !"avg. alpha"
   !Twiss at start of INJ
    BXi := 7.126383569888
    AXi := 0.94819246483
    BYi := 7.126383569887
    AYi := 0.94819246483
   !maximum beta in L0-to-LH matching section
    BL0LHmax := 50
  ENDCOMMENT

  COMMENT !C. Papadopoulos (300 pC) ["300pC_2013_10_22_v1_rescaled"]
   !Twiss at gun
    BX0 := 2.548553227053E2
    AX0 := 99.942422636841
    BY0 := 2.548553227053E2
    AY0 := 99.942422636841
   !Twiss at S= 15.0 m (ASTRA)
    BXa := 10.2489067594  !"avg. beta"
    AXa := -1.32169788895 !"avg. alpha"
    BYa := 10.2489067594  !"avg. beta"
    AYa := -1.32169788895 !"avg. alpha"
   !Twiss at start of INJ
    BXi := 22.084508367115
    AXi := 1.424972348705
    BYi := 22.084508367115
    AYi := 1.424972348704
   !maximum beta in L0-to-LH matching section
    BL0LHmax := 50
  ENDCOMMENT

  TWSS0 : BETA0, ENERGY=E0, BETX=BX0, ALFX=AX0, BETY=BY0, ALFY=AY0
  TWSSa : BETA0, ENERGY=Ei, BETX=BXa, ALFX=AXa, BETY=BYa, ALFY=AYa
  TWSSi : BETA0, ENERGY=Ei, BETX=BXi, ALFX=AXi, BETY=BYi, ALFY=AYi

! ------------------------------------------------------------------------------

! "treaty" Twiss at center of laser heater undulator

  BXlh := 10.0
  AXlh := 0
  BYlh := 10.0
  AYlh := 0

! matched Twiss for coasting linac FODOs

  BXCMfodo1 := 41.608515338737 !L1: 90 degrees per cell
  BYCMfodo1 :=  7.180312573637 !L1: 90 degrees per cell
  BXCMfodo2 := 61.477468156554 !L2: 30 degrees per cell
  BYCMfodo2 := 36.274091990807 !L2: 30 degrees per cell
  BXCMfodo3 := 61.477468156554 !L3: 30 degrees per cell
  BYCMfodo3 := 36.274091990807 !L3: 30 degrees per cell

! survey (Z values are w.r.t. start of LI01 where Z=0)

  Xgun  :=    0.28     !beam axis (w.r.t. original linac axis)
  Ygun  :=   -0.99     !beam axis (w.r.t. original linac axis)
  Zgun  :=  -10.0      !10 m d/s of approximate location of CID gun
  Za    :=    5.0      !treaty point (ASTRA beam parameters given here)
  Zi    :=    7.796652 !end of L0 (~7.8 m into LI01)
  Zdg0  :=   20.755242 !start of DIAG0 (~19.6 m into LI01)
  Z1beg :=   68.889976 !start of L1 (~68.9 m into LI01)
  Z1end :=  124.149002 !end of L1 (~22.5 m into LI02)
  Zdg1  :=  141.083477 !start of DIAG1 (~32.0 m into LI02)
  Z2beg :=  195.865609 !start of L2 (~89.4 m into LI02)
  Z2end :=  348.903098 !end of L2 (~39.2 m into LI04)
  Z3beg :=  451.897214 !start of L3 (~42.8 m into LI05)
  Z3end :=  705.480482 !end of L3 (~93.2 m into LI07)
  Zdog  :=  951.900013 !entrance first dogleg bend (~22.5 m into LI10)
  Xbyp  := -0.65049400 !QBP13 X is |Xbyp| to the south of linac axis
  Ybyp  :=  0.64947800 !QBP13 Y is Ybyp above linac axis
  Zbyp  := 1254.531303 !QBP13 centerline (~35.3 m into LI13)

! ------------------------------------------------------------------------------

! for matching, etc.

! match into bypass dogleg

  BXDLm := 13.154560632507
  AXDLm := -1.349282054806
  BYDLm := 16.059073464302
  AYDLm :=  1.554382739002

! match into LTU emit-diag section in SXR

  BX1 := 46.225914318019
  AX1 := -1.084608326468
  BY1 := 46.225914318019
  AY1 :=  1.084608326468

! periodic Twiss in SXR dogleg cells

  MBETXs :=  9.243534193816
  MALFXs := -0.679928530859
  MBETYs := 36.124025945455
  MALFYs :=  2.175200883548

  TWSSms : BETA0, ENERGY=Ef, BETX=MBETXs, ALFX=MALFXs, BETY=MBETYs, ALFY=MALFYs

! periodic Twiss in HXR dogleg cells

  MBETXh := 48.881918793286
  MALFXh :=  3.139871668792
  MBETYh := 96.324739380247
  MALFYh :=  3.616931663899

  TWSSmh : BETA0, ENERGY=Ef, BETX=MBETXh, ALFX=MALFXh, BETY=MBETYh, ALFY=MALFYh

! match into LCLS emittance diagnostic section

  BXEDh := 46.347592421655
  AXEDh := -1.088004889273
  BYEDh := 46.098656017174
  AYEDh :=  1.08081945287

! temporary

  TWSSm : BETA0

! ------------------------------------------------------------------------------

  CALL, FILENAME="common.xsif"
  CALL, FILENAME="CM.xsif"
  CALL, FILENAME="INJ.xsif"
  CALL, FILENAME="DIAG0.xsif"
  CALL, FILENAME="BC1.xsif"
  CALL, FILENAME="DIAG1.xsif"
  CALL, FILENAME="BC2.xsif"
  CALL, FILENAME="LX.xsif"
  CALL, FILENAME="DLBM.xsif"
  CALL, FILENAME="SPRD.xsif"
  CALL, FILENAME="BYP.xsif"
  CALL, FILENAME="LTU.xsif"
  CALL, FILENAME="UND.xsif"
 !CALL, FILENAME="DIAGS.xsif" !not yet created
 !CALL, FILENAME="DIAGH.xsif" !not yet created

  QBPF : LIST=(QBP13) !upstream half of QBP13

  LCLS2scC : LINE=(HTR,COL0,L1,BC1,COL1,L2,BC2,COL2,L3,EXT,DLBM)
  LCLS2scS : LINE=(BYPASS,BSYLTUsc,SXRUND,DUMPLINEb)
  LCLS2scH : LINE=(FODOLa,SPRDh,SPhBSY,LTU,HXRUND,DUMPLINE)
  LCLS2scD : LINE=(FODOLa,SPRDd)

! ------------------------------------------------------------------------------

! initial BSY coordinates at BEGSP

  Xf     :=  XOFF
  Yf     :=  1.897939159495
  Zf     := -267.4180504124
  THETAf :=  0
  PHIf   :=  2*AVB
  PSIf   :=  0

! from BEGSP to dump

  BSYLCLS2scS : LINE=(FODOLb,BYPM,BSYLTUsc,SXRUND,DUMPLINEb)
  BSYLCLS2scH : LINE=(SPRDh,SPhBSY,LTU,HXRUND,DUMPLINE)
  BSYLCLS2scD : LINE=(SPRDd)

! ==============================================================================
! COMMANDs
! ------------------------------------------------------------------------------

  SETPLOT, XSIZE=25.4, YSIZE=20.32
  SETPLOT, LWIDTH=5, LSCALE=1.5, SSCALE=1.5, RSCALE=1.5
  OPTION, ECHO

  BEAM, PARTICLE=ELECTRON

! ------------------------------------------------------------------------------

 !CALL, FILENAME="LCLS2sc_match.mad8"
 !CALL, FILENAME="elegant/makeElegant.mad8"
 !CALL, FILENAME="RDB/makeSymbols.mad8"
 !CALL, FILENAME="20pC/20pC.mad8"
 !STOP

! ------------------------------------------------------------------------------

! SXR line (linac coordinates)

 !COMMENT
    ASSIGN, PRINT="LCLS2scS.print"
    BEAM, ENERGY=E0
    SET, SETSP, SETSPs
    USE, (GUN,L0,LCLS2scC,LCLS2scS)
    PRINT, FULL
    SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun, TAPE="LCLS2scS_survey.tape"
    BEAM, ENERGY=Ei
    USE, (LCLS2scC,LCLS2scS)
    PRINT, FULL
    TWISS, BETA0=TWSSi, SAVE, &
      TAPE="LCLS2scS_twiss.tape", RTAPE="LCLS2scS_rmat.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, &
      STYLE=100, SPLINE, FILE="LCLS2scS", VMIN=0, VMAX=5
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      STYLE=100, SPLINE, FILE="LCLS2scS", RANGE=#S/SEQ02END
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      STYLE=100, SPLINE, FILE="LCLS2scS", RANGE=#S/SEQ02END
 !ENDCOMMENT

! ------------------------------------------------------------------------------

! HXR line (linac coordinates)

 !COMMENT
    ASSIGN, PRINT="LCLS2scH.print"
    BEAM, ENERGY=E0
    SET, SETSP, SETSPh
    USE, (GUN,L0,LCLS2scC,LCLS2scH)
    PRINT, FULL
    SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun, TAPE="LCLS2scH_survey.tape"
    BEAM, ENERGY=Ei
    USE, (LCLS2scC,LCLS2scH)
    PRINT, FULL
    TWISS, BETA0=TWSSi, SAVE, TAPE="LCLS2scH_twiss.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, &
      STYLE=100, SPLINE, FILE="LCLS2scH", VMIN=0, VMAX=5
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      STYLE=100, SPLINE, FILE="LCLS2scH"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      STYLE=100, SPLINE, FILE="LCLS2scH"
 !ENDCOMMENT

! ------------------------------------------------------------------------------

! BSY dump line (linac coordinates)

 !COMMENT
    ASSIGN, PRINT="LCLS2scD.print"
    BEAM, ENERGY=E0
    SET, SETSP, SETSPd
    USE, (GUN,L0,LCLS2scC,LCLS2scD)
    PRINT, FULL
    SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun, TAPE="LCLS2scD_survey.tape"
    BEAM, ENERGY=Ei
    USE, (LCLS2scC,LCLS2scD)
    PRINT, FULL
    TWISS, BETA0=TWSSi, SAVE, TAPE="LCLS2scD_twiss.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, &
      STYLE=100, SPLINE, FILE="LCLS2scD", VMIN=0, VMAX=5
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      STYLE=100, SPLINE, FILE="LCLS2scD"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      STYLE=100, SPLINE, FILE="LCLS2scD"
 !ENDCOMMENT

! ------------------------------------------------------------------------------

! DIAG0 diagnostic line (linac coordinates)

 !COMMENT
    ASSIGN, PRINT="DIAG0.print"
    BEAM, ENERGY=E0
    USE, (GUN,L0,HTR,DIAG0)
    PRINT, FULL
    SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun, TAPE="DIAG0_survey.tape"
    BEAM, ENERGY=Ei
    USE, (HTR,DIAG0)
    PRINT, FULL
    TWISS, BETA0=TWSSi, SAVE, &
      TAPE="DIAG0_twiss.tape", RTAPE="DIAG0_rmat.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      STYLE=100, SPLINE, FILE="DIAG0" !, RANGE=SEQ01END/#E
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      STYLE=100, SPLINE, FILE="DIAG0" !, RANGE=SEQ01END/#E
 !ENDCOMMENT

! ------------------------------------------------------------------------------

! DIAG1 diagnostic line (linac coordinates)

 !COMMENT
    ASSIGN, PRINT="DIAG1.print"
    BEAM, ENERGY=E0
    USE, (GUN,L0,HTR,COL0,L1,BC1,DIAG1)
    PRINT, FULL
    SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun, TAPE="DIAG1_survey.tape"
    BEAM, ENERGY=Ei
    USE, (HTR,COL0,L1,BC1,DIAG1)
    PRINT, FULL
    TWISS, BETA0=TWSSi, SAVE, &
      TAPE="DIAG1_twiss.tape", RTAPE="DIAG1_rmat.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      STYLE=100, SPLINE, FILE="DIAG1" !, RANGE=SEQ01END/#E
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      STYLE=100, SPLINE, FILE="DIAG1" !, RANGE=SEQ01END/#E
 !ENDCOMMENT

! ------------------------------------------------------------------------------

! SXR from start of spreader (BSY coordinate system)

 !COMMENT
    ASSIGN, PRINT="BSY-LCLS2scS.print"
    BEAM, ENERGY=Ef
    SET, SETSP, SETSPs
    USE, BSYLCLS2scS
    PRINT, FULL
    SURVEY, X0=Xf, Y0=Yf, Z0=Zf, THETA0=THETAf, PHI0=PHIf, PSI0=PSIf, &
      TAPE="BSY-LCLS2scS_survey.tape"
 !ENDCOMMENT

! ------------------------------------------------------------------------------

! HXR from start of spreader (BSY coordinate system)

 !COMMENT
    ASSIGN, PRINT="BSY-LCLS2scH.print"
    BEAM, ENERGY=Ef
    SET, SETSP, SETSPh
    USE, BSYLCLS2scH
    PRINT, FULL
    SURVEY, X0=Xf, Y0=Yf, Z0=Zf, THETA0=THETAf, PHI0=PHIf, PSI0=PSIf, &
      TAPE="BSY-LCLS2scH_survey.tape"
 !ENDCOMMENT

! ------------------------------------------------------------------------------

! BSY dump line from start of spreader (BSY coordinate system)

 !COMMENT
    ASSIGN, PRINT="BSY-LCLS2scD.print"
    BEAM, ENERGY=Ef
    SET, SETSP, SETSPd
    USE, BSYLCLS2scD
    PRINT, FULL
    SURVEY, X0=Xf, Y0=Yf, Z0=Zf, THETA0=THETAf, PHI0=PHIf, PSI0=PSIf, &
      TAPE="BSY-LCLS2scD_survey.tape"
 !ENDCOMMENT

! ------------------------------------------------------------------------------

! Twiss plots (color)

  COMMENT
    BEAM, ENERGY=E0
    USE, (GUN,L0)
    PRINT, FULL
    TWISS, COUPLE, BETA0=TWSS0, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, &
      TITLE="Gun + L0",&
      COLOUR=100, SPLINE=.F., FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      TITLE="Gun + L0",&
      COLOUR=100, SPLINE=.F., FILE="LCLS2sc_color", VMIN=0, VMAX=20
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPs
    USE, (LCLS2scC,LCLS2scS)
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, &
      RANGE=#S/ENDL1B, TITLE="Laser Heater + Coll0 + L1",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=#S/ENDL1B, TITLE="Laser Heater + Coll0 + L1",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=ENDL1B/BEGL2B, TITLE="BC1 + Coll1",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, &
      RANGE=BEGL2B/ENDL2B, TITLE="L2",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      RANGE=BEGL2B/ENDL2B, TITLE="L2",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=ENDL2B/BEGL3B, TITLE="BC2 + Coll2",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, &
      RANGE=BEGL3B/ENDEXT, TITLE="L3 + Extension",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color", VMIN=0, VMAX=5
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      RANGE=BEGL3B/ENDEXT, TITLE="L3 + Extension",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=ENDEXT/Q1MRK, TITLE="Dogleg + BC3 + Match to Bypass",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      RANGE=Q1MRK/SEQ05END, TITLE="Bypass Line to SPREADER",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=SEQ06BEG/SEQ08END, TITLE="SPREADER to SXR Undulator",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=SEQ09BEG/#E, TITLE="SXR Undulator to Dump",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPh
    USE, (LCLS2scC,LCLS2scH)
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=SEQ11BEG/SEQ12END, TITLE="SPREADER to HXR Undulator",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=SEQ13BEG/#E, TITLE="HXR Undulator to Dump",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPd
    USE, (LCLS2scC,LCLS2scD)
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=SEQ15BEG/#E, TITLE="SPREADER to BSY Dump",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    BEAM, ENERGY=Ei
    USE, (HTR,DIAG0)
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=SEQ16BEG/#E, TITLE="DIAG0",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    BEAM, ENERGY=Ei
    USE, (HTR,COL0,L1,BC1,DIAG1)
    PRINT, FULL
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=SEQ17BEG/#E, TITLE="DIAG1",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
  ENDCOMMENT

! ------------------------------------------------------------------------------

! Twiss plots (black & white)

  COMMENT
    BEAM, ENERGY=E0
    USE, (GUN,L0)
    PRINT, FULL
    TWISS, COUPLE, BETA0=TWSS0, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, &
      TITLE="Gun + L0",&
      STYLE=100, SPLINE=.F., FILE="LCLS2sc"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      TITLE="Gun + L0",&
      STYLE=100, SPLINE=.F., FILE="LCLS2sc", VMIN=0, VMAX=20
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPs
    USE, (LCLS2scC,LCLS2scS)
    PRINT, FULL
    TWISS, BETA0=TWSSi, SAVE, TAPE="LCLS2scS_twiss.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, &
      RANGE=#S/ENDL1B, TITLE="Laser Heater + Coll0 + L1",&
      STYLE=100, SPLINE, FILE="LCLS2sc"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=#S/ENDL1B, TITLE="Laser Heater + Coll0 + L1",&
      STYLE=100, SPLINE, FILE="LCLS2sc"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=ENDL1B/BEGL2B, TITLE="BC1 + Coll1",&
      STYLE=100, SPLINE, FILE="LCLS2sc"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, &
      RANGE=BEGL2B/ENDL2B, TITLE="L2",&
      STYLE=100, SPLINE, FILE="LCLS2sc"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      RANGE=BEGL2B/ENDL2B, TITLE="L2",&
      STYLE=100, SPLINE, FILE="LCLS2sc"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=ENDL2B/BEGL3B, TITLE="BC2 + Coll2",&
      STYLE=100, SPLINE, FILE="LCLS2sc"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, &
      RANGE=BEGL3B/ENDEXT, TITLE="L3 + Extension",&
      STYLE=100, SPLINE, FILE="LCLS2sc", VMIN=0, VMAX=5
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      RANGE=BEGL3B/ENDEXT, TITLE="L3 + Extension",&
      STYLE=100, SPLINE, FILE="LCLS2sc"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=ENDEXT/Q1MRK, TITLE="Dogleg + BC3 + Match to Bypass",&
      STYLE=100, SPLINE, FILE="LCLS2sc"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      RANGE=Q1MRK/SEQ05END, TITLE="Bypass Line to SPREADER",&
      STYLE=100, SPLINE, FILE="LCLS2sc"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=SEQ06BEG/SEQ08END, TITLE="SPREADER to SXR Undulator",&
      STYLE=100, SPLINE, FILE="LCLS2sc"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=SEQ09BEG/#E, TITLE="SXR Undulator to Dump",&
      STYLE=100, SPLINE, FILE="LCLS2sc"
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPh
    USE, (LCLS2scC,LCLS2scH)
    PRINT, FULL
    TWISS, BETA0=TWSSi, SAVE, TAPE="LCLS2scH_twiss.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=SEQ11BEG/SEQ12END, TITLE="SPREADER to HXR Undulator",&
      STYLE=100, SPLINE, FILE="LCLS2sc"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=SEQ13BEG/#E, TITLE="HXR Undulator to Dump",&
      STYLE=100, SPLINE, FILE="LCLS2sc"
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPd
    USE, (LCLS2scC,LCLS2scD)
    TWISS, BETA0=TWSSi, SAVE, TAPE="LCLS2scD_twiss.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=SEQ15BEG/#E, TITLE="SPREADER to BSY Dump",&
      STYLE=100, SPLINE, FILE="LCLS2sc"
    BEAM, ENERGY=Ei
    USE, (HTR,DIAG0)
    PRINT, FULL
    TWISS, BETA0=TWSSi, SAVE, TAPE="DIAG0_twiss.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=SEQ16BEG/#E, TITLE="DIAG0",&
      STYLE=100, SPLINE, FILE="LCLS2sc"
    BEAM, ENERGY=Ei
    USE, (HTR,COL0,L1,BC1,DIAG1)
    PRINT, FULL
    TWISS, BETA0=TWSSi, SAVE, TAPE="DIAG1_twiss.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=SEQ17BEG/#E, TITLE="DIAG1",&
      STYLE=100, SPLINE, FILE="LCLS2sc"
  ENDCOMMENT

! ------------------------------------------------------------------------------

  STOP
