  TITLE, "LCLS2sc (November 28, 2016)"

! *** OPTICS=LCLS2sc28NOV16 ***

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

! ==============================================================================
! Modification History
! ------------------------------------------------------------------------------
! 28-NOV-2016, M. Woodley
!  * merge LCLS-II' version 28NOV16 with LCLS2sc version 04NOV16
! ------------------------------------------------------------------------------
! **************************** NEW LCLS2sc BASELINE ****************************
! ------------------------------------------------------------------------------
! 26-FEB-2016, M. Woodley / Y. Nosochkov
!  * replace the HXR undulator with HGVPU undulator
! 01-FEB-2016, M. Woodley
!  * new 100 pC input beams from J. Qiang/C. Mitchell
! 01-NOV-2015, M. Woodley
!  * new 100 pC input beam from F. Zhou (Twiss from P. Emma)
! ------------------------------------------------------------------------------
! 01-OCT-2015, M. Woodley / Y. Nosochkov
!  * update boundary Z-locations (Z0end, Z2end)
!  * see list of changes in .xsif files and in file MADdeckChanges.pdf
!  * add BKR (rolled kicker) to the list of defined element name prefixes
!  * update initial Twiss in LTU dogleg with stronger R56 chicanes
!  * load ALINE.xsif before LTU.xsif
! ------------------------------------------------------------------------------
! 20-MAR-2015, M. Woodley
!  * list of changes ...
! 12-MAR-2015, Y. Nosochkov
!  * update quad/BPM/corrector positions in the spreader (per T. O'Heron)
!  * add dogleg connection from CuRF to SXR
!  * add kicker/septum in BSY to connect with the existing A-line
!  * update existing LCLS-I devices in the HXR (per updated LCLS-I lattice)
!  * change quad type "1.97Q10" to "2Q10"
! ------------------------------------------------------------------------------
! 12-DEC-2014, M. Woodley
!  * change name prefix for cryomodule BPMs from "BPMCM" to "CMB"
!  * assign BPM TYPE attributes per PRD LCLSII-2.4-PR-0136
!  * change deferral level for some diagnostic devices per T. Taubenheimer
!  * change some RFBs (defer>0) to BPMs (defer=0)
! 09-DEC-2014, Y. Nosochkov
!  * add safety dump lines based on LCLS1 design and PRD LCLSII-3.5-PR-0111
!  * update types of various magnets
!  * add radiation physics collimators and ACMs
!  * move D10 dump inside the muon wall
! ------------------------------------------------------------------------------
! 28-OCT-2014, M. Woodley
!  * new 1.3 GHz cryomodule layout from FNAL
!  * move GUN-L3 upstream 30 m to align 3.9 GHz CMs with NLTR tunnel (tweak
!    matching section between LH and COL0 to put gun at Z= -10.0 m exactly)
!  * lengthen EXT FODO cells by 12 m (57 m to 69 m)
!  * rematch EXT (layout and optics)
! ------------------------------------------------------------------------------
! 15-OCT-2014, M. Woodley
!  * shortened inter-linac warm sections ... gun moved 30 m d/s (to Z=20m ...
!    there is now 40 m from present location of CID gun to location of LCLS-II
!    gun)
!  * various cost-cutting changes ... see individual xsif-files
! ------------------------------------------------------------------------------
! 07-AUG-2014, M. Woodley
!  * add emittance measurement in L0-to-laser-heater matching section
!  * laser heater chicane lengthened to reduce R56 to 3.5 mm
!  * collimation systems (COL0, COL1, and COL2) now consist of four 45 degree
!    FODO cells with 3 pairs of collimators separated by 45 degrees (22 m betas
!    at collimators); FODO cell length is 12 m
!  * added a wire scanner at the end of COL0 for "tomographic" emittance
!    measurement
!  * L1 phase advance per cell lowered to 45 degrees
!  * DIAG1 beamline (post-BC1 off-axis diagnostics line) removed
!  * in-line emittance measurement systems incorporated into COL1 and COL2
!  * TCAV(Y), vertical kicker, and lambertson septum added d/s of BC1
!  * change bending direction in BC2 chicane ... toward the aisle
!  * TCAV(Y) added d/s of BC2
!  * EXT FODO cell length doubled, phase advance per cell lowered to 60 degrees
!  * 1.259Q12 quadrupoles replaced by QWs or QEs
!  * BC3 removed
!  * diagnostics complement per "Electron Beam Diagnostics Systems" PRD
!    (LCLSII-2.7-PR-0170)
!  * TYPE attribute of "deprecated" devices is now "decorated" ... see below
! 31-JUL-2014, Y. Nosochkov
!  * implement magnetic kicker with two 2-hole septa in the spreader
!  * remove QBP37 and adjust positions of QBP31, QBP32, QBP35, QBP36
!  * remove unnecessary diagnostics (per J. Frisch)
!  * move TDUNDb 2.8 m d/s, QUM1b 2.0 m d/s, QDL11-QDL19 2.5 m d/s
!    (per J. Stieber)
!  * move markers ENDSXR, BEGDMPS and ENDHXR, BEGDMPH to include
!    RFBSX51 and RFBHX51 into the SXR and HXR areas (per D. Hanquist)
! ------------------------------------------------------------------------------
! 02-MAY-2014, M. Woodley
!  * update 1.3 GHz cryomodule layout (including end caps) per H. Alvarez
!  * update baseline compression setup per P. Emma
!  * remove DIAG1 beamline ... prepare COL1 for inline emittance diagnostics
!  * add "CNT" to list of defined element name prefixes (MARKER element)
!  * add "HOMCM" to list of defined element name prefixes (MARKER element)
! ------------------------------------------------------------------------------
! 31-MAR-2014, M. Woodley
!  * add list of beamline area names (per document LCLSII-2.1-PR-0134)
!  * add list of element name prefixes (per document LCLSII-1.1-TS-0159)
!  * 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
! ------------------------------------------------------------------------------

! ==============================================================================
! Deferred devices
! ------------------------------------------------------------------------------
! see: https://slacspace.slac.stanford.edu/sites/lcls/lcls-2/ap/InjSim/
!      150129%20Deferment%20Levels.xlsx
! ------------------------------------------------------------------------------
! Device TYPE attributes have been prefixed by a 2-character deferment
! indicator. If the first character of a device's TYPE attribute is not "@" (or
! if a device has no defined TYPE attribute), the device is baseline. If the
! first character of a device's TYPE attribute is "@", the device is deferred.
! The level of deferral is indicated by the second character of the TYPE
! attribute:
!
! TYPE="@0..." : level 0 (required for CD4-Threshold with >100 pC/bunch and
!                         50 kHz operation)
! TYPE="@1..." : level 1 (required to approach CD4-Objective, but limited to
!                         ~100 pC/bunch)
! TYPE="@2..." : level 2 (required to meet science objectives across parameter
!                         range)
! TYPE="@3..." : level 3 (component to improve tuning time)
! TYPE="@4..." : level 4 (space for future components that may be needed)
! TYPE="@5..." : level 5 (probably not needed ... leave space in beamline for
!                         future installation)
! TYPE="@9..." : level 9 (previously baseline (costed) ... removed but might
!                         return)
!
! The remaining characters of TYPE define the device's engineering type.
! ------------------------------------------------------------------------------

! ==============================================================================
! Beamline area names (areas with names in parentheses have not been designed)
! ------------------------------------------------------------------------------
! see: https://docs.slac.stanford.edu/sites/pub/Publications/
!      Beamline%20Boundaries.pdf (LCLSII-2.1-PR-0134)
! ------------------------------------------------------------------------------
! GUNB  : cathode to L0
! L0B   : L0 (end cap, CM01, end cap, mechanical stay-clear)
! HTR   : laser heater (emittance measurement, chicane, extraction to DIAG0)
! COL0  : collimation 0
! L1B   : L1 (differential pumping, mechanical stay-clear, end cap, CM02-03,
!         HCM01-02, end cap, mechanical stay-clear, differential pumping)
! BC1B  : BC1 chicane
! COL1  : collimation 1 (includes in-line emittance measurement)
! L2B   : L2 (differential pumping, mechanical stay-clear, end cap, CM04-15,
!         end cap, mechanical stay-clear, differential pumping)
! BC2B  : BC2 chicane
! EMIT2 : match BC2 to L3 (includes quad-scan emittance measurement station)
! L3B   : L3 (differential pumping, mechanical stay-clear, end cap, CM16-25,
!         vacuum break, CM26-23, end cap, mechanical stay-clear, differential
!         pumping)
! EXT   : L3 extension
! DOG   : dogleg to bypass line
! BYP   : bypass line
! SPD   : spreader to start of BSY (BSY dump line)
! SLTD  : BSY to BSY dump (BSY dump line)
! SPS   : spreader to start of BSY (SXR line, from SC linac)
! SLTS  : BSY to Cu/SC linac merge (SXR line, from SC linac)
! BSYS  : Cu/SC merge to end of BSY (SXR line, from either linac)
! LTUS  : SXR LTU (from end of BSY)
! SXX   : SXR extension
! SXR   : SXR undulator
! UES   : SXR undulator end to dump line
! DMPS  : SXR dump line
! SFTS  : SXR safety dump line
! SPH   : spreader to start of BSY (HXR line, from SC linac)
! SLTH  : BSY to Cu/SC linac merge (HXR line, from SC linac)
! CLTH  : end of LI30 to Cu/SC linac merge (HXR line, from Cu linac)
! BSYH  : Cu/SC merge to end of BSY (HXR line, from either linac)
! LTUH  : HXR LTU (from end of BSY)
! HXR   : HXR undulator
! UEH   : HXR undulator end to dump line
! DMPH  : HXR dump line
! SFTH  : HXR safety dump line
! CLTS  : BSY to Cu/SC linac merge (SXR line, from Cu linac) 
! BSYA  : BSY to A-line (from either linac)
! DIAG0 : post laser heater 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)
! CSP..... = cryomodule support post
! 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"))
! BKR..... = rolled 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 ... SXR)
! QHX..... = undulator quadrupole (normal quad, split in half ... HXR)
! 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)
! CMB..... = standard cryomodule button beam position monitor
! WS...... = wire scanner
! YAG..... = YAG screen profile monitor
! OTR..... = optical transition radiation profile monitor
! IM...... = bunch charge monitor (ICT, DCCT, ACM, 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
! BOD..... = beam overlap monitor
! VV...... = vacuum valve (not all valves are in the MAD deck)
! MIR..... = laser insertion mirror
! BLM..... = beam loss monitor (undulator areas)
! CNT..... = ELEGANT centering element
! HOMCM... = standard cryomodule HOM absorber
! S....... = sextupole (normal or rolled sextupole, split in half)
! ==============================================================================

! constants

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

! energy profile

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

  Brho0 := Cb*E0
  Brhoi := Cb*Ei
  Brho1 := Cb*E1
  Brho2 := Cb*E2
  Brhof := Cb*Ef

! compression

  R56HTR := 0.0035 !DXmax = 75 cm
  R56BC1 := 0.055
  R56BC2 := 0.037

  R56CCDLU := 9.99E-5
  R56CCDLD := 9.99E-5

! ------------------------------------------------------------------------------
! input beam definition: F. Zhou (100 pC)
! ------------------------------------------------------------------------------

! Twiss at gun

  BX0 := 3.949042136246E2
  AX0 := 1.525610502992E2
  BY0 := 3.94640860598E2
  AY0 := 1.524592881855E2

! Twiss at S= 15.0 m (ASTRA MARKER)

  BXa := 14.340151152121
  AXa := -2.111789110488
  BYa := 14.336513707843
  AYa := -2.110636132949

! Twiss at BEAM0 MARKER (specified)

  BXi := 10.3555
  AXi := -1.7154
  BYi := 10.3540
  AYi := -1.7145

! max beta u/s of WS0H04

  Bmax := 46.5

! beta at WS0H04 waist

  B0H04w := 5.0

! beam parameters

  QBNCH  := 100.0E-12 !C
  EMITn  := 0.268E-06 !m
  sig_z  := 1.007E-03 !m
  sig_dp := 0.041E-02 !1

! BETA0 block definitions

  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

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

! input beam SIGMA0 definition (entrance to QCM01)

  EMITXn := 0.45E-6 !normalized horizontal emittance (m)
  EMITYn := 0.45E-6 !normalized vertical emittance (m)
  BLENG  := 1.02E-3 !rms bunch length (m)
  ESPRD  := 0.05E-2 !rms energy spread (1)

  EMITX := EMITn/(Ei/EMASS)
  EMITY := EMITn/(Ei/EMASS)

  BEAM, PARTICLE=ELECTRON, NPART=QBNCH/QELEC, &
        EX=EMITX, EY=EMITY, SIGT=BLENG, SIGE=ESPRD

  GXi   := (1+AXi*AXi)/BXi
  SIG11 := EMITX*BXi
  SIG21 := -EMITX*AXi
  SIG22 := EMITX*GXi
  C21   := SIG21/SQRT(SIG11*SIG22)
  GYi   := (1+AYi*AYi)/BYi
  SIG33 := EMITY*BYi
  SIG43 := -EMITY*AYi
  SIG44 := EMITY*GYi
  C43   := SIG43/SQRT(SIG33*SIG44)
  SIG0a : SIGMA0, SIGX=SQRT(SIG11), SIGPX=SQRT(SIG22), R21=C21, &
                  SIGY=SQRT(SIG33), SIGPY=SQRT(SIG44), R43=C43, &
                  SIGT=BLENG      , SIGPT=ESPRD

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

! "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 := 47.719294763762 !L1: 45 degrees per cell
  BYCMfodo1 := 21.369473357891 !L1: 45 degrees per cell
  BXCMfodo2 := 61.469987291175 !L2: 30 degrees per cell
  BYCMfodo2 := 36.267129824058 !L2: 30 degrees per cell
  BXCMfodo3 := 61.469987291175 !L3: 30 degrees per cell
  BYCMfodo3 := 36.267129824058 !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.044667 !10.0 m d/s of location of CID gun
  Z0beg :=   -7.992090 !start of L0 (12.0 m d/s of location of CID gun)
  Zi    :=    3.914190 !entrance to QCM01 (~3.9 m into LI01)
  Za    :=   Zgun+15.0 !ASTRA treaty point (~4.8 m into LI01)
  Z0end :=    8.130200 !end of L0 (~8.0 m into LI01)
  Zhtr  :=   18.202600 !start of laser heater chicane (~18.2 m into LI01)
  Zdg0  :=   32.183970 !start of DIAG0 (~32.2 m into LI01)
  Z1beg :=   73.383640 !start of L1 (~73.4 m into LI01)
  Z1loc :=  104.194330 !center of CAVC011 (sholud be 104.0 m)
  Z1end :=  121.344620 !end of L1 (~19.7 m into LI02)
  Z2beg :=  174.885202 !start of L2 (~73.3 m into LI02)
  Z2end :=  331.562942 !end of L2 (~26.8 m into LI04)
  Z3beg :=  385.847300 !start of L3 (~81.0 m into LI04)
  Z3end :=  643.543300 !end of L3 (~33.9 m into LI07)
  Zdog  :=  667.043300 !entrance first dogleg bend (~57.4 m into LI07)
  Xbyp  :=   -0.650494 !QBP13 X is |Xbyp| to the south of linac axis
  Ybyp  :=    0.649478 !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.103980147754
  AXDLm := -1.328117574824
  BYDLm := 15.962709228317
  AYDLm :=  1.529776835343

! match into SXR LTU emittance diagnostic section

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

! match into HXR LTU emittance diagnostic section

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

! initial Twiss for SXR dogleg

  MBETXS :=  6.841330860042
  MALFXS := -0.284047412936
  MBETYS := 47.066495355511
  MALFYS :=  2.555431832313

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

! periodic Twiss in HXR dogleg cells

  MBETXH := 48.881918788199
  MALFXH :=  3.139871668464
  MBETYH := 96.323786537904
  MALFYH :=  3.616905252587

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

! temporary

  TWSSm : BETA0

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

  CALL "common.xsif"
  CALL "CM.xsif"
  CALL "DIAG0.xsif"
  CALL "INJ.xsif"
  CALL "BC1.xsif"
  CALL "BC2.xsif"
  CALL "EXT.xsif"
  CALL "DLBM.xsif"
  CALL "SPRD.xsif"
  CALL "CUSXR.xsif"
  CALL "ALINE.xsif"
  CALL "BYP.xsif"
  CALL "LTU.xsif"
  CALL "UND.xsif"
  CALL "SFT.xsif"
  CALL "DASEL.xsif"

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

  LCLS2scI : LINE=(BEAM0,DCM4b,QCM01,XCM01,YCM01,QCM01,DCM5,CM01END,&
    DCMCM1,HOMCM,DCAP0da,ASTRA,DCAP0db,FC1,&
    DMSC0da,VG0H00,DMSC0db,VP0H00,DMSC0dc,VV0H00,DMSC0dd,MSC0d,ENDL0B)
  LCLS2scC : LINE=(HTR,COL0,L1,BC1,COL1,L2,BC2,EMIT2,L3,EXT,DLBM)

! new BSY area definitions

  CALL "BSYsc.xsif"
 
! initial BSY coordinates at BEGSP (LTUSPLIT)

  Xf     :=  XOFF
  Yf     :=  1.899339708719 !1.897939159495 -0.3*SIN(2*AVB)
  Zf     := -267.7180471432 !-267.4180504124 -0.3*COS(2*AVB)
  THETAf :=  0
  PHIf   :=  2*AVB
  PSIf   :=  0

! ==============================================================================
! SUBROUTINEs
! ------------------------------------------------------------------------------

! quad settings in A-line

  SETK2scA : SUBROUTINE !for LCLS2sc
    SET, KQ10,  0.040562593923
    SET, KQ11, -0.033577157433
    SET, KQ19,  0.028596205953
    SET, KQ20,  0.012609992225
    SET, KQ27, -0.061763391269
    SET, KQ28,  0.03154138433
    SET, KQ30, -0.030289938043
    SET, KQ38,  0.034801871726
  ENDSUBROUTINE

  SETK2scDA : SUBROUTINE !for DASEL, 4 GeV
    SET, KQ10,  0.039328599694
    SET, KQ11, -0.03454881345
    SET, KQ19,  0.030795593516
    SET, KQ20, -0.504496621976E-3
    SET, KQ27, -0.083115468455
    SET, KQ28,  0.040276527544
    SET, KQ30, -0.028711007764
    SET, KQ38,  0.03419319725
  ENDSUBROUTINE

  SETK2scDA8 : SUBROUTINE !for DASEL8, 8 GeV
    SET, KQ10,  0.039321980559
    SET, KQ11, -0.034479794005
    SET, KQ19,  0.030792250355
    SET, KQ20, -0.410955494886E-3
    SET, KQ27, -0.082858692343
    SET, KQ28,  0.040154487702
    SET, KQ30, -0.028720187532
    SET, KQ38,  0.034198726531
  ENDSUBROUTINE

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

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

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

 !CALL "LCLS2sc_beams.mad8" !alternate beams & configurations
 !CALL "LCLS2sc_match.mad8"
 !CALL "RDB/LCLS2sc_makeSymbols.mad8"
 !CALL "elegant/LCLS2sc_makeElegant.mad8"

 !STOP

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

! SXR line (linac coordinates)

 !COMMENT
    ASSIGN, PRINT="LCLS2scS.print"
    BEAM, ENERGY=E0
    SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF
    USE, (GUN,L0,LCLS2scC,LCLS2scS)
    PRINT, FULL
    SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun, TAPE="LCLS2scS_survey.tape"
    BEAM, ENERGY=Ei
    USE, (LCLS2scI,LCLS2scC,LCLS2scS)
   !SAVELINE, NAME="LCLS2scS", FILENAME="LCLS2scS.saveline"
    PRINT, FULL
    TWISS, BETA0=TWSSi, SAVE, TAPE="LCLS2scS_twiss.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"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      STYLE=100, SPLINE, FILE="LCLS2scS"
 !ENDCOMMENT

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

! SXR line to safety dump (linac coordinates)

  COMMENT
    ASSIGN, PRINT="LCLS2scSS.print"
    BEAM, ENERGY=E0
    SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF
    USE, (GUN,L0,LCLS2scC,LCLS2scSS)
    PRINT, FULL
    SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun, TAPE="LCLS2scSS_survey.tape"
    BEAM, ENERGY=Ei
    USE, (LCLS2scI,LCLS2scC,LCLS2scSS)
   !SAVELINE, NAME="LCLS2scSS", FILENAME="LCLS2scSS.saveline"
    PRINT, FULL
    TWISS, BETA0=TWSSi, SAVE, TAPE="LCLS2scSS_twiss.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, &
      STYLE=100, SPLINE, FILE="LCLS2scSS", VMIN=0, VMAX=5
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      STYLE=100, SPLINE, FILE="LCLS2scSS"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      STYLE=100, SPLINE, FILE="LCLS2scSS"
  ENDCOMMENT

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

! HXR line (linac coordinates)

 !COMMENT
    ASSIGN, PRINT="LCLS2scH.print"
    BEAM, ENERGY=E0
    SET, SETSP, SETSPh ; SET, SETAL, ALOFF
    USE, (GUN,L0,LCLS2scC,LCLS2scH)
    PRINT, FULL
    SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun, TAPE="LCLS2scH_survey.tape"
    BEAM, ENERGY=Ei
    USE, (LCLS2scI,LCLS2scC,LCLS2scH)
   !SAVELINE, NAME="LCLS2scH", FILENAME="LCLS2scH.saveline"
    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

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

! HXR line to safety dump (linac coordinates)

  COMMENT
    ASSIGN, PRINT="LCLS2scHS.print"
    BEAM, ENERGY=E0
    SET, SETSP, SETSPh ; SET, SETAL, ALOFF
    USE, (GUN,L0,LCLS2scC,LCLS2scHS)
    PRINT, FULL
    SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun, TAPE="LCLS2scHS_survey.tape"
    BEAM, ENERGY=Ei
    USE, (LCLS2scI,LCLS2scC,LCLS2scHS)
   !SAVELINE, NAME="LCLS2scHS", FILENAME="LCLS2scHS.saveline"
    PRINT, FULL
    TWISS, BETA0=TWSSi, SAVE, TAPE="LCLS2scHS_twiss.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, &
      STYLE=100, SPLINE, FILE="LCLS2scHS", VMIN=0, VMAX=5
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      STYLE=100, SPLINE, FILE="LCLS2scHS"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      STYLE=100, SPLINE, FILE="LCLS2scHS"
  ENDCOMMENT

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

! BSY dump line (linac coordinates)

 !COMMENT
    ASSIGN, PRINT="LCLS2scD.print"
    BEAM, ENERGY=E0
    SET, SETSP, SETSPd ; SET, SETDA, DAOFF
    USE, (GUN,L0,LCLS2scC,LCLS2scD)
    PRINT, FULL
    SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun, TAPE="LCLS2scD_survey.tape"
    BEAM, ENERGY=Ei
    USE, (LCLS2scI,LCLS2scC,LCLS2scD)
   !SAVELINE, NAME="LCLS2scD", FILENAME="LCLS2scD.saveline"
    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

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

! DASEL (linac coordinates)

  COMMENT
    ASSIGN, PRINT="LCLS2scDA.print"
    BEAM, ENERGY=E0
    SET, SETSP, SETSPd ; SET, SETDA, DAON
    SET, ROLLRC, 1.0 !for survey -- turn RC corrector roll angle ON
    SETK2scDA
    USE, (GUN,L0,LCLS2scC,LCLS2scDA)
    PRINT, FULL
    SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun, TAPE="LCLS2scDA_survey.tape"
    BEAM, ENERGY=Ei
    SET, ROLLRC, 0.0 !for twiss -- turn RC corrector roll angle OFF
    USE, (LCLS2scI,LCLS2scC,LCLS2scDA)
   !SAVELINE, NAME="LCLS2scDA", FILENAME="LCLS2scDA.saveline"
    PRINT, FULL
    TWISS, BETA0=TWSSi, SAVE, TAPE="LCLS2scDA_twiss.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, STYLE=100, SPLINE, &
      FILE="LCLS2scDA", TITLE="Injector to DASEL", &
      VMIN=0, VMAX=5, RANGE=#S/ALWALL
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=rBETX,rBETY, STYLE=100, SPLINE, &
      FILE="LCLS2scDA", TITLE="Injector to DASEL", RANGE=#S/ALWALL
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, STYLE=100, SPLINE, &
      FILE="LCLS2scDA", TITLE="Injector to DASEL", RANGE=#S/ALWALL
  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, (LCLS2scI,HTR,DIAG0)
   !SAVELINE, NAME="DIAG0", FILENAME="DIAG0.saveline"
    PRINT, FULL
    TWISS, BETA0=TWSSi, SAVE, TAPE="DIAG0_twiss.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      STYLE=100, SPLINE, FILE="DIAG0"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      STYLE=100, SPLINE, FILE="DIAG0"
 !ENDCOMMENT

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

! Injector to A-line (linac coordinates)

  COMMENT
    ASSIGN, PRINT="LCLS2scA.print"
    BEAM, ENERGY=E0
    SET, SETSP, SETSPh ; SET, SETAL, ALON
    SETK2scA
    USE, (GUN,L0,LCLS2scC,LCLS2scA)
    PRINT, FULL
    SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun, TAPE="LCLS2scA_survey.tape"
    BEAM, ENERGY=Ei
    USE, (LCLS2scI,LCLS2scC,LCLS2scA)
   !SAVELINE, NAME="LCLS2scA", FILENAME="LCLS2scA.saveline"
    PRINT, FULL
    TWISS, BETA0=TWSSi, SAVE, TAPE="LCLS2scA_twiss.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, STYLE=100, SPLINE, &
      FILE="LCLS2scA", RANGE=#S/ALWALL, TITLE="Injector to A-line", &
      VMIN=0, VMAX=5
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=rBETX,rBETY, STYLE=100, SPLINE, &
      FILE="LCLS2scA", RANGE=#S/ALWALL, TITLE="Injector to A-line"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, STYLE=100, SPLINE, &
      FILE="LCLS2scA", RANGE=#S/ALWALL, TITLE="Injector to A-line"
  ENDCOMMENT

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

! SXR from start of spreader (BSY coordinate system)

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

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

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

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

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

! HXR from start of spreader (BSY coordinate system)

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

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

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

  COMMENT
    ASSIGN, PRINT="BSY-LCLS2scHS.print"
    BEAM, ENERGY=Ef
    SET, SETSP, SETSPh ; SET, SETAL, ALOFF
    USE, BSYLCLS2scHS
    PRINT, FULL
    SURVEY, X0=Xf, Y0=Yf, Z0=Zf, THETA0=THETAf, PHI0=PHIf, PSI0=PSIf, &
      TAPE="BSY-LCLS2scHS_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 ; SET, SETDA, DAOFF
    USE, BSYLCLS2scD
    PRINT, FULL
    SURVEY, X0=Xf, Y0=Yf, Z0=Zf, THETA0=THETAf, PHI0=PHIf, PSI0=PSIf, &
      TAPE="BSY-LCLS2scD_survey.tape"
 !ENDCOMMENT

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

! DASEL (BSY coordinate system)

  COMMENT
    ASSIGN, PRINT="BSY-LCLS2scDA.print"
    BEAM, ENERGY=Ef
    SET, SETSP, SETSPd ; SET, SETDA, DAON
    SET, ROLLRC, 1.0 !for survey -- turn RC corrector roll angle ON
    SETK2scDA
    USE, BSYLCLS2scDA
    PRINT, FULL
    SURVEY, X0=Xf, Y0=Yf, Z0=Zf, THETA0=THETAf, PHI0=PHIf, PSI0=PSIf, &
      TAPE="BSY-LCLS2scDA_survey.tape"
  ENDCOMMENT

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

! HXR spreader to A-line (BSY coordinate system)

  COMMENT
    ASSIGN, PRINT="BSY-LCLS2scA.print"
    BEAM, ENERGY=Ef
    SET, SETSP, SETSPh ; SET, SETAL, ALON
    SETK2scA
    USE, BSYLCLS2scA
    PRINT, FULL
    SURVEY, X0=Xf, Y0=Yf, Z0=Zf, THETA0=THETAf, PHI0=PHIf, PSI0=PSIf, &
      TAPE="BSY-LCLS2scA_survey.tape"
  ENDCOMMENT

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

! Twiss plots (color)

 !COMMENT
    ASSIGN, PRINT="LCLS2sc.print"
    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", VMIN=0, VMAX=0.12
    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 ; SET, SETCUS, CUSOFF
    USE, (LCLS2scI,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 + Emit2",&
      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/MQBP13, TITLE="Dogleg + Match to Bypass + NIT Extension",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      RANGE=MQBP13/LTUSPLIT, TITLE="Bypass Line to SPREADER",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=LTUSPLIT/ENDSXX, TITLE="SPREADER to SXR Undulator",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=ENDSXX/#E, TITLE="SXR Undulator to Dump",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPh ; SET, SETAL, ALOFF
    USE, (LCLS2scI,LCLS2scC,LCLS2scH)
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=LTUSPLIT/BEGHXR, TITLE="SPREADER to HXR Undulator",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=BEGHXR/#E, TITLE="HXR Undulator to Dump",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPd ; SET, SETDA, DAOFF
    USE, (LCLS2scI,LCLS2scC,LCLS2scD)
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=LTUSPLIT/#E, TITLE="SPREADER to BSY Dump",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    BEAM, ENERGY=Ei
    USE, (LCLS2scI,HTR,DIAG0)
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=BEGDIAG0/#E, TITLE="DIAG0",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF
    USE, (LCLS2scI,LCLS2scC,LCLS2scSS)
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=BEGSFTS/#E, TITLE="SXR Safety Dump",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPh ; SET, SETAL, ALOFF
    USE, (LCLS2scI,LCLS2scC,LCLS2scHS)
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=BEGSFTH/#E, TITLE="HXR Safety Dump",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPh ; SET, SETAL, ALON
    SETK2scA
    USE, (LCLS2scI,LCLS2scC,LCLS2scA)
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=rBETX,rBETY, VAXIS2=DX, &
      RANGE=Q50Q3[1]/ALWALL, TITLE="A-line (from HXR)", &
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPd ; SET, SETDA, DAON
    SET, ROLLRC, 0.0 !for twiss -- turn RC corrector roll angle OFF
    SETK2scDA
    USE, (LCLS2scI,LCLS2scC,LCLS2scDA)
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=rBETX,rBETY, VAXIS2=DX,DY, &
      RANGE=DASEL/ALWALL, TITLE="DASEL to A-line", &
      COLOUR=100, SPLINE, FILE="LCLS2sc_color"
 !ENDCOMMENT

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

! Twiss plots (black & white)

  COMMENT
    ASSIGN, PRINT="LCLS2sc.print"
    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_color", VMIN=0, VMAX=0.12
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      TITLE="Gun + L0",&
      STYLE=100, SPLINE=.F., FILE="LCLS2sc_color", VMIN=0, VMAX=20
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF
    USE, (LCLS2scI,LCLS2scC,LCLS2scS)
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, &
      RANGE=#S/ENDL1B, TITLE="Laser Heater + Coll0 + L1",&
      STYLE=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=#S/ENDL1B, TITLE="Laser Heater + Coll0 + L1",&
      STYLE=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=ENDL1B/BEGL2B, TITLE="BC1 + Coll1",&
      STYLE=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, &
      RANGE=BEGL2B/ENDL2B, TITLE="L2",&
      STYLE=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      RANGE=BEGL2B/ENDL2B, TITLE="L2",&
      STYLE=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=ENDL2B/BEGL3B, TITLE="BC2 + Emit2",&
      STYLE=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, &
      RANGE=BEGL3B/ENDEXT, TITLE="L3 + Extension",&
      STYLE=100, SPLINE, FILE="LCLS2sc_color", VMIN=0, VMAX=5
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      RANGE=BEGL3B/ENDEXT, TITLE="L3 + Extension",&
      STYLE=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=ENDEXT/MQBP13, TITLE="Dogleg + Match to Bypass + NIT Extension",&
      STYLE=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      RANGE=MQBP13/LTUSPLIT, TITLE="Bypass Line to SPREADER",&
      STYLE=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=LTUSPLIT/ENDSXX, TITLE="SPREADER to SXR Undulator",&
      STYLE=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=ENDSXX/#E, TITLE="SXR Undulator to Dump",&
      STYLE=100, SPLINE, FILE="LCLS2sc_color"
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPh ; SET, SETAL, ALOFF
    USE, (LCLS2scI,LCLS2scC,LCLS2scH)
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=LTUSPLIT/BEGHXR, TITLE="SPREADER to HXR Undulator",&
      STYLE=100, SPLINE, FILE="LCLS2sc_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=BEGHXR/#E, TITLE="HXR Undulator to Dump",&
      STYLE=100, SPLINE, FILE="LCLS2sc_color"
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPd ; SET, SETDA, DAOFF
    USE, (LCLS2scI,LCLS2scC,LCLS2scD)
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=LTUSPLIT/#E, TITLE="SPREADER to BSY Dump",&
      STYLE=100, SPLINE, FILE="LCLS2sc_color"
    BEAM, ENERGY=Ei
    USE, (LCLS2scI,HTR,DIAG0)
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=BEGDIAG0/#E, TITLE="DIAG0",&
      STYLE=100, SPLINE, FILE="LCLS2sc_color"
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF
    USE, (LCLS2scI,LCLS2scC,LCLS2scSS)
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=BEGSFTS/#E, TITLE="SXR Safety Dump",&
      STYLE=100, SPLINE, FILE="LCLS2sc_color"
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPh ; SET, SETAL, ALOFF
    USE, (LCLS2scI,LCLS2scC,LCLS2scHS)
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=BEGSFTH/#E, TITLE="HXR Safety Dump",&
      STYLE=100, SPLINE, FILE="LCLS2sc_color"
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPh ; SET, SETAL, ALON
    SETK2scA
    USE, (LCLS2scI,LCLS2scC,LCLS2scA)
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=rBETX,rBETY, VAXIS2=DX, &
      RANGE=Q50Q3[1]/ALWALL, TITLE="A-line", &
      STYLE=100, SPLINE, FILE="LCLS2sc_color"
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPd ; SET, SETDA, DAON
    SET, ROLLRC, 0.0 !for twiss -- turn RC corrector roll angle OFF
    SETK2scDA
    USE, (LCLS2scI,LCLS2scC,LCLS2scDA)
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=rBETX,rBETY, VAXIS2=DX,DY, &
      RANGE=DASEL/ALWALL, TITLE="DASEL to A-line", &
      STYLE=100, SPLINE, FILE="LCLS2sc_color"
  ENDCOMMENT

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

 !CALL, FILENAME="LCLS2sc_area_plots.mad8"

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

  STOP

! ------------------------------------------------------------------------------
! working stuff
! ------------------------------------------------------------------------------

  COMMENT
    BEAM, ENERGY=E0
    USE, (GUN,L0,LCLS2scC)
   !VALUE, Zgun
    VALUE, Lastra
   !VALUE, DMSC0d[L]
   !VALUE, DPSC1d[L]
   !VALUE, DPSC2d[L]
   !VALUE, DPSC3d[L]
    MATCH, SURVEY, XS=Xgun, YS=Ygun, ZS=Zgun
     !VARY, Zgun,      STEP=1.E-6
      VARY, Lastra,    STEP=1.E-6
     !VARY, DMSC0d[L], STEP=1.E-6
     !VARY, DPSC1d[L], STEP=1.E-6
     !VARY, DPSC2d[L], STEP=1.E-6
     !VARY, DPSC3d[L], STEP=1.E-6
      WEIGHT, CIRC=1 !, ZS=1 !
      CONSTR, ASTRA,  CIRC=15.0
     !CONSTR, VV0H00, ZS=8.027407000E+00
     !CONSTR, ENDL1B, ZS=1.213386200E+02
     !CONSTR, ENDL2B, ZS=3.321632519E+02
     !CONSTR, ENDL3B, ZS=6.877196495E+02
      LMDIF, TOL=1.E-20, CALLS=10000
      MIGRAD, TOL=1.E-20, CALLS=10000
    ENDMATCH
   !VALUE, Zgun
    VALUE, Lastra
   !VALUE, DMSC0d[L]
   !VALUE, DPSC1d[L]
   !VALUE, DPSC2d[L]
   !VALUE, DPSC3d[L]
    BEAM, ENERGY=E0
    USE, (GUN,L0,LCLS2scC)
    PRINT, FULL
    SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun
    STOP
  ENDCOMMENT

  COMMENT
    SETPLOT, XSIZE=25, YSIZE=15
    ASSIGN, PRINT="LCLS2sc.print"
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPh ; SET, SETAL, ALOFF
    USE, (LCLS2scI,LCLS2scC,LCLS2scH)
    TWISS, BETA0=TWSSi, SAVE
    !PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY,&
    !  COLOUR=100, SPLINE, FILE="LCLS2sc_color", TITLE="R56 chicanes",&
    !  RANGE=DL21/TRIP4
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY,&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color", TITLE="Complete HXR",&
      RANGE=#S/DUMPFACE, VMIN=0,-3, VMAX=600,1
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=BKYSP0ha[1]/BXSP1hb[1], TITLE="HXR spreader dogleg",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color", VMIN=0,-1.19, VMAX=300,0.39
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=QBP35[1]/MUWALL, TITLE="HXR spreader to muon wall",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color", VMIN=0,-1.19, VMAX=300,0.39
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      RANGE=Q50Q3[1]/MUWALL, TITLE="From HXR/BSY merge point to muon wall", &
      COLOUR=100, SPLINE, FILE="LCLS2sc_color", VMIN=0, VMAX=160
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=HXCEL46/DUMPFACE, TITLE="From last HXR undulator cells to dump",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color", VMIN=0,0, VMAX=120,1.59
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF
    USE, (LCLS2scI,LCLS2scC,LCLS2scS)
    TWISS, BETA0=TWSSi, SAVE
    !PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY,&
    !  COLOUR=100, SPLINE, FILE="LCLS2sc_color", TITLE="R56 chicanes",&
    !  RANGE=MM1B/DL2SC
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY,&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color", TITLE="Complete SXR",&
      RANGE=#S/DUMPFACEB, VMIN=0,-3, VMAX=600,1
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=BKYSP0sa[1]/BXSP3sb[1], TITLE="SXR spreader chicane",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color", VMIN=0,-1.19, VMAX=200,0.39
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=QBP35[1]/MUWALLB, TITLE="SXR spreader to muon wall",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color", VMIN=0,-1.39, VMAX=200,0.39
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY,&
      RANGE=MRGCUSXR/MM1B, TITLE="From Cu-linac/SXR merge point to LTUS",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color", VMIN=0, VMAX=160
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=SXCEL46/DUMPFACEB, TITLE="From last SXR undulator cells to dump",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color", VMIN=0,0, VMAX=160,1.59
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPd ; SET, SETDA, DAOFF
    USE, (LCLS2scI,LCLS2scC,LCLS2scD)
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=BEGSP/#E, TITLE="Spreader to BSY dump",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color", VMIN=0,0, VMAX=400,1.19
  ENDCOMMENT

  COMMENT
    SETPLOT, XSIZE=25, YSIZE=15
    ASSIGN, PRINT="LCLS2sc.print"
    BEAM, ENERGY=Ei
    USE, (LCLS2scI,LCLS2scC)
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY,&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color",&
      TITLE="SC-linac QCM01 to end of L3",&
      RANGE=#S/ENDL3B, VMIN=0,-1, VMAX=400,0.6
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPh ; SET, SETAL, ALOFF
    USE, (LCLS2scI,LCLS2scC,LCLS2scH)
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY,&
      RANGE=BKYSP0ha[1]/DUMPFACE, TITLE="HXR kicker to HXR main dump",&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color", VMIN=0,-2, VMAX=400,1
    BEAM, ENERGY=Ei
    SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF
    USE, (LCLS2scI,LCLS2scC,LCLS2scS)
    TWISS, BETA0=TWSSi, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY,&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color",&
      TITLE="SC-linac QCM01 to SXR kicker",&
      RANGE=#S/BKYSP4sb[1], VMIN=0,-2, VMAX=600,0.5
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY,&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color", &
      TITLE="SXR kicker to SXR main dump",&
      RANGE=BKYSP0sa[1]/DUMPFACEB, VMIN=0,-2, VMAX=250,1
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY,&
      COLOUR=100, SPLINE, FILE="LCLS2sc_color",&
      TITLE="SC-linac QCM01 to beginning of L2B",&
      RANGE=#S/ENDCOL1, VMIN=0,-0.8, VMAX=160,0.2
  ENDCOMMENT

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

  COMMENT
    BEAM, ENERGY=Ef
    USE, CCDLU
    MATCH, SURVEY
      VARY, BBCXDLU, STEP=1.E-6
      WEIGHT, XS=1
      CONSTR, CCDLUMID, XS=-10e-3
      LMDIF, TOL=1.E-20
      MIGRAD, TOL=1.E-20
    ENDMATCH
    Dmdw : DRIF, L=2.0
    USE, (Dmdw,CCDLU,Dmdw)
    SURVEY, Z0=-ZBCC/2-Dmdw[L], TAPE="survey.tape"
  ENDCOMMENT

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

  STOP
