  TITLE, "AD_ACCEL_HE (March 13, 2023)" !superconducting linac

! *** OPTICS=AD_ACCEL_HE-13MAR23 ***

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

! ==============================================================================
! Modification History
! ------------------------------------------------------------------------------
! 11-MAR-2023, M. Woodley
!  * "SLOT36" renamed "BR3B"
! ------------------------------------------------------------------------------
! 09-APR-2021, M. Woodley
!  * 2nd injector (LEI) beamline
! ------------------------------------------------------------------------------
! 05-MAR-2020, M. Woodley
!  * no LEX
! ------------------------------------------------------------------------------
! ************************* NEW LCLS-II-HE BASELINE ****************************
! ------------------------------------------------------------------------------
! 07-AUG-2019, M. Woodley
!  * remove "h" from names of split elements
!  * create "_full" sub-LINEs for split elements
! ------------------------------------------------------------------------------
! 28-MAY-2019, M. Woodley
!  * rematch through SXR undulator (self-seeding chicane moved from cell 33
!    to cell 35)
! ------------------------------------------------------------------------------
! 19-JUL-2017, M. Woodley
!  * structural changes in deck to accomodate MAD-to-BMAD
! ------------------------------------------------------------------------------
! 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 (see LCLSII-HE-1.1-PR-0028)
! see: https://docs.slac.stanford.edu/sites/pub/Publications/
!      LCLS-II-HE Beamline Boundaries
! ------------------------------------------------------------------------------
! SC linac common areas
! ------------------------------------------------------------------------------
! GUNB    : cathode to L0
! L0B     : L0 (end cap, CM01, feed cap, mechanical stay-clear)
! HTR_1   : L0 to LEI merge point (emittance measurement)
! HTR_2   : LEI merge point to laser heater (chicane, extraction to DIAG0)
! COL0    : collimation 0
! L1B     : L1 (differential pumping, mechanical stay-clear, feed cap, CM02-03,
!           HCM01-02, feed cap, mechanical stay-clear, differential pumping)
! BC1B    : BC1 chicane
! COL1    : collimation 1 (includes in-line emittance measurement)
! L2B     : L2 (differential pumping, mechanical stay-clear, feed cap, CM04-15,
!           feed 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, feed cap, CM16-25,
!           vacuum break, CM26-35, end cap, mechanical stay-clear)
! BR3B    : drift to L4 (vacuum components)
! L4B     : L4 (mechanical stay-clear, feed cap, CM37-48,vacuum break, CM49-59,
!           end cap, mechanical stay-clear, differential pumping)
! EXT     : L4B-to-dogleg matching
! DOG     : dogleg to PEP-II e- bypass line
! BYP     : bypass line (NIT)
! ------------------------------------------------------------------------------
! SC bypass line to SXR areas
! ------------------------------------------------------------------------------
! SPS     : SXR spreader kickers to start of BSY
! SLTS    : start of BSY to Cu/SC linac merge
! BSYS    : Cu/SC merge to end of BSY
! LTUS    : SXR LTU (from d/s end of muon wall)
! UNDS    : SXR extension + SXR undulator
! DMPS_1  : SXR post-undulator line
! DMPS_2  : SXR dump line
! SFTS_1  : BYDSS u/s face to BXPM1B u/s face
! SFTS_2  : BXPM1B u/s face to SXR safety dump
! SXTES_1 : SXR XTES common line (BSY coordinate SURVEY only)
! SXTES_2 : SXR XTES "2.2" line (BSY coordinate SURVEY only)
! SXTES_3 : SXR XTES TXI line (BSY coordinate SURVEY only)
! SXTES_4 : SXR XTES TMO line (BSY coordinate SURVEY only)
! ------------------------------------------------------------------------------
! SC bypass line to HXR areas
! ------------------------------------------------------------------------------
! SPH     : HXR spreader kickers to start of BSY
! SLTH    : start of BSY to SC/Cu linac merge
! BSYH_1  : SC/Cu linac merge to A-line kickers
! BSYH_2  : A-line kickers to end of BSY
! LTUH    : HXR LTU (from d/s end of muon wall)
! UNDH    : HXR undulator
! DMPH_1  : HXR post-undulator line
! DMPH_2  : HXR dump line
! SFTH_1  : BYDSH u/s face to BXPM1 u/s face
! SFTH_2  : BXPM1 u/s face to HXR safety dump
! HXTES_1 : HXR XTES common line (BSY coordinate SURVEY only)
! HXTES_2 : HXR XTES main line (BSY coordinate SURVEY only)
! HXTES_3 : HXR XTES TXI (BSY coordinate SURVEY only)
! ------------------------------------------------------------------------------
! SC bypass line to BSY dump areas
! ------------------------------------------------------------------------------
! SPD_1   : HXR spreader kickers to SXR spreader kickers
! SPD_2   : SXR spreader kickers to DASEL kickers
! SPD_3   : DASEL kickers to start of BSY
! SLTD    : start of BSY to BSY dump
! ------------------------------------------------------------------------------
! SC linac to other areas
! ------------------------------------------------------------------------------
! DIAG0   : post laser heater diagnostics line
! DASEL   : DASEL kickers to A-line merge ... off project
! BLINE   : B-line connector bends to B-line dump ... off project
! ------------------------------------------------------------------------------
! Low Emittance Injector areas
! ------------------------------------------------------------------------------
! GUNLEI  : cathode to L0LEI
! L0LEI   : L0LEI (end cap, CM00, feed cap, mechanical stay-clear)
! LEI_1   : L0LEI to DLI/DIAGI (TCAV)
! LEI_2   : LEI dogleg (DLI)
! DIAGI_1 : LEI diagnostics line (emittance measurement)
! DIAGI_2 : LEI spectrometer line (longitudinal phase space measurement)
! ==============================================================================

! ==============================================================================
! 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 undulator 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) when keyword=ECOL
! PC...... = RP spot shielding (external plates) when keyword=INST
! 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)
! ==============================================================================

! ------------------------------------------------------------------------------
! deflector switch definitions
! ------------------------------------------------------------------------------

  SETSP     := 0 !deflector switch for HXR/SXR/BSYD spreader
  SETCUS    := 0 !deflector switch for HXR/CUSXR
  SETAL     := 0 !deflector switch for HXR/Aline
  SETDA     := 0 !deflector switch for BSYD/DASEL
  SETXLEAP2 := 0 !selector switch for XLEAP-II components

  SETHXRSS  := 0 !ON/OFF switch for HXR self-seeding chicane
  SETSXRSS  := 0 !ON/OFF switch for SXR self-seeding chicane
  SETCBXFEL := 0 !ON/OFF switch for CBXFEL chicanes
  SETPEPX   := 0 !ON/OFF switch for PEPPEx chicane

! ------------------------------------------------------------------------------
! integrated gradients for undulator quadrupoles
! ------------------------------------------------------------------------------

  IntgSX := 30.0 !kG
  IntgHX := 30.0 !kG

! ------------------------------------------------------------------------------
! element and line definitions
! ------------------------------------------------------------------------------

  CALL, FILENAME="LCLS2sc_master.xsif"

! ------------------------------------------------------------------------------
! input beam definitions (at BEAM0)
! ------------------------------------------------------------------------------

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

  SIG0i : SIGMA0, SIGX=SQRT(SIG11), SIGPX=SQRT(SIG22), R21=C21, &
                  SIGY=SQRT(SIG33), SIGPY=SQRT(SIG44), R43=C43, &
                  SIGT=sig_z      , SIGPT=sig_dp

! ------------------------------------------------------------------------------
! 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
  TWSSms : BETA0, ENERGY=Ef, BETX=MBETXs, ALFX=MALFXs, BETY=MBETYs, ALFY=MALFYs
  TWSSmh : BETA0, ENERGY=Ef, BETX=MBETXh, ALFX=MALFXh, BETY=MBETYh, ALFY=MALFYh
  TWSSP  : BETA0, BETX=TBXSP, BETY=TBYSP, ALFX=TAXSP, ALFY=TAYSP
  TWSSdl : BETA0, ENERGY=Ef, BETX=BXDLm, ALFX=AXDLm, BETY=BYDLm, ALFY=AYDLm

  TWSS0LEI : BETA0, ENERGY=E0LEI, &
                    BETX=BX0LEI, ALFX=AX0LEI, BETY=BY0LEI, ALFY=AY0LEI
  TWSSiLEI : BETA0, ENERGY=Ei, &
                    BETX=BXiLEI, ALFX=AXiLEI, BETY=BYiLEI, ALFY=AYiLEI
  TWSSDLI  : BETA0, ENERGY=Ei, BETX=BXDLI, ALFX=AXDLI, BETY=BYDLI, ALFY=AYDLI

! temporary

  TWSSm : BETA0

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

! quad settings in A-line

  SETK2scA : SUBROUTINE !for LCLS2scA
    SET, KQ10,  0.04078118414
    SET, KQ11, -0.035978491015
    SET, KQ19,  0.0288935235
    SET, KQ20,  0.011673337852
    SET, KQ27, -0.069796542848
    SET, KQ28,  0.029206357304
    SET, KQ30, -0.029497355276
    SET, KQ38,  0.034805766493
  ENDSUBROUTINE

! quad settings in A-line for S30XL (DASEL)

  SETK2scDA : SUBROUTINE !for LCLS2scDA
    SET, KQ10,  0.040805860583    ! 0.040342960252
    SET, KQ11, -0.037868714553    !-0.038654373653
    SET, KQ19,  0.030885241906    ! 0.030550055299
    SET, KQ20,  0.126346032714E-2 !-0.125475964981E-2
    SET, KQ27, -0.086248030355    !-0.074785733615
    SET, KQ28,  0.036681192154    ! 0.041188924033
    SET, KQ30, -0.028767830272    !-0.02927652201
    SET, KQ38,  0.034449466573    ! 0.034027226616
  ENDSUBROUTINE

! laser heater quad settings when using LEI injector

  SETK2scLEI : SUBROUTINE
   !                heater ON        heater OFF        chicane OFF    
   !             ---------------   ---------------   ---------------  
    SET, KQ0H03, -4.60546917112  ! -3.224812726564 ! -3.038528064629 ! bipolar
    SET, KQ0H04,  6.283573671633 !  5.719162586946 !  5.636766437336 ! bipolar
    SET, KQ0H05, -6.547547381968 ! -7.229562482579 ! -7.312879582254 !
    SET, KQ0H06,  5.393689977704 !  5.769170871968 !  5.815149661908 !
    SET, KQ0H07,  0.0
    SET, KQ0H08,  0.0
  ENDSUBROUTINE

! LEI quad settings for mux=1.75*2pi from LEI TCAV to DIAGIb OTR

  SETK2scDGI : SUBROUTINE
    SET, KQDGI01,  18.267196742347 ! 20.936799065219
    SET, KQDGI02, -23.158133926208 !-23.405324163275
    SET, KQDGI03,  29.12920231523  ! 27.616809154239
    SET, KQDGI04, -23.581930408235 !-26.000130823947
    SET, KQDGI05,  13.886129831077 ! 13.856890734561
    SET, KQDGI08, -12.627717511206 !-12.613656066984
  ENDSUBROUTINE

! L3/L4 match with dead QCM34

  SETnoQCM34 : SUBROUTINE
    SET, QCM31[K1],  0.170238849059
    SET, QCM32[K1], -0.207922584033
    SET, QCM33[K1],  0.222808254897
    SET, QCM34[K1],  0.0
    SET, QCM35[K1], -0.195155824877
    SET, QCM37[K1],  0.192954039877
    SET, QCM38[K1],  0.0
    SET, QCM39[K1], -0.222027801998
    SET, QCM40[K1],  0.207854747495
    SET, QCM41[K1], -0.167158144614
    SET, QCM42[K1],  0.178540613654
    SET, QCM43[K1], -0.182549587195
    SET, QCM44[K1],  0.184129326944
    SET, QCM45[K1], -0.185096429372
    SET, QCM46[K1],  0.186777722614
    SET, QCM47[K1], -0.191460821035
    SET, QCM48[K1],  0.181327601246
    SET, QCM49[K1], -0.181907697284
    SET, QCM50[K1],  0.191510153535
    SET, QCM56[K1],  0.187220447025
    SET, QCM57[K1], -0.192787535079
    SET, QCM58[K1],  0.206094599297
    SET, QCM59[K1], -0.299285869081
    SET, KQX01,      1.132419009766
    SET, KQX02,     -0.914214028114
  ENDSUBROUTINE

! ==============================================================================
! for testing the online Matlab model
! ------------------------------------------------------------------------------

! beam from LCLS-II gun

  COMMENT
    BEAM, ENERGY=E0
    USE, SC_DIAG0
    TWISS, COUPLE, SAVE, BETA0=TWSS0, TAPE="DIAG0_twiss.tape"
    BEAM, ENERGY=Ei
    USE, SC_DIAG0i
    TWISS, BETA0=TWSSi, TAPE="DIAG0i_twiss.tape"

    BEAM, ENERGY=E0
    SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF
    USE, SC_SXR
    TWISS, COUPLE, BETA0=TWSS0, TAPE="LCLS2scS_twiss.tape"
    BEAM, ENERGY=Ei
    USE, SC_SXRi
    TWISS, BETA0=TWSSi, TAPE="LCLS2scSi_twiss.tape"

    BEAM, ENERGY=E0
    SET, SETSP, SETSPh ; SET, SETAL, ALOFF
    USE, SC_HXR
    TWISS, COUPLE, BETA0=TWSS0, TAPE="LCLS2scH_twiss.tape"
    BEAM, ENERGY=Ei
    USE, SC_HXRi
    TWISS, BETA0=TWSSi, TAPE="LCLS2scHi_twiss.tape"

    BEAM, ENERGY=E0
    SET, SETSP, SETSPd ; SET, SETDA, DAOFF
    USE, SC_BSYD
    TWISS, COUPLE, BETA0=TWSS0, TAPE="LCLS2scD_twiss.tape"
    BEAM, ENERGY=Ei
    USE, SC_BSYDi
    TWISS, BETA0=TWSSi, TAPE="LCLS2scDi_twiss.tape"

    STOP
  ENDCOMMENT

! beam from LEI gun

  COMMENT
    BEAM, ENERGY=E0LEI
   !SETK2scDGI !for mux=1.75*2pi from TCXDGI to OTRDGI1
    USE, SC_DIAGIS
    TWISS, COUPLE, BETA0=TWSS0LEI, TAPE="DIAGIS_twiss.tape"
    BEAM, ENERGY=Ei
    USE, SC_DIAGISi
    TWISS, BETA0=TWSSiLEI, TAPE="DIAGISi_twiss.tape"

    SETK2scLEI !required for DIAG02/DIAG02i, SXR2/SXR2i, HXR2/HXR2i, and BSYD2/BSYD2i

    BEAM, ENERGY=E0LEI
    USE, SC_DIAG02
    TWISS, COUPLE, BETA0=TWSS0LEI, TAPE="DIAG02_twiss.tape"
    BEAM, ENERGY=Ei
    USE, SC_DIAG02i
    TWISS, BETA0=TWSSiLEI, TAPE="DIAG02i_twiss.tape"

    SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF
    BEAM, ENERGY=E0LEI
    USE, SC_SXR2
    TWISS, COUPLE, BETA0=TWSS0LEI, TAPE="LCLS2scS2_twiss.tape"
    BEAM, ENERGY=Ei
    USE, SC_SXR2i
    TWISS, BETA0=TWSSiLEI, TAPE="LCLS2scS2i_twiss.tape"

    SET, SETSP, SETSPh ; SET, SETAL, ALOFF
    BEAM, ENERGY=E0LEI
    USE, SC_HXR2
    TWISS, COUPLE, BETA0=TWSS0LEI, TAPE="LCLS2scH2_twiss.tape"
    BEAM, ENERGY=Ei
    USE, SC_HXR2i
    TWISS, BETA0=TWSSiLEI, TAPE="LCLS2scH2i_twiss.tape"

    SET, SETSP, SETSPd ; SET, SETDA, DAOFF
    BEAM, ENERGY=E0LEI
    USE, SC_BSYD2
    TWISS, COUPLE, BETA0=TWSS0LEI, TAPE="LCLS2scD2_twiss.tape"
    BEAM, ENERGY=Ei
    USE, SC_BSYD2i
    TWISS, BETA0=TWSSiLEI, TAPE="LCLS2scD2i_twiss.tape"

    STOP
  ENDCOMMENT

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

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

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

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

 !STOP

! ==============================================================================
! Beam from LCLS-II gun (SURVEY in linac coordinates)
! ------------------------------------------------------------------------------

! DIAG0

 !COMMENT
    ASSIGN, PRINT="DIAG0.print"
    BEAM, ENERGY=E0
    USE, SC_DIAG0
   !SAVELINE, NAME="SC_DIAG0", FILENAME="DIAG0.saveline"
    PRINT, FULL
    SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun, TAPE="DIAG0_survey.tape"
    BEAM, ENERGY=Ei
    USE, SC_DIAG0i
    PRINT, FULL
    TWISS, SAVE, BETA0=TWSSi, TAPE="DIAG0_twiss.tape" !, &
   !  RTAPE="DIAG0_rmat.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      STYLE=100, SPLINE, RANGE=#S/#E, FILE="DIAG0", &
      TITLE="SC-linac to DIAG0"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      STYLE=100, SPLINE, RANGE=#S/#E, FILE="DIAG0", &
      TITLE="SC-linac to DIAG0"
 !ENDCOMMENT

! SXR

 !COMMENT
    ASSIGN, PRINT="LCLS2scS.print"
    BEAM, ENERGY=E0
    SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF
    USE, SC_SXR
   !SAVELINE, NAME="SC_SXR", FILENAME="LCLS2scS.saveline"
    PRINT, FULL
    SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun, TAPE="LCLS2scS_survey.tape"
    BEAM, ENERGY=Ei
    USE, SC_SXRi
    PRINT, FULL
    TWISS, SAVE, BETA0=TWSSi, TAPE="LCLS2scS_twiss.tape" !, &
   !  RTAPE="LCLS2scS_rmat.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, VMIN=0, VMAX=10, &
      STYLE=100, SPLINE, RANGE=#S/DUMPFACEB, FILE="LCLS2scS", &
      TITLE="SC-linac to SXR dump"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      STYLE=100, SPLINE, RANGE=#S/DUMPFACEB, FILE="LCLS2scS", &
      TITLE="SC-linac to SXR dump"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      STYLE=100, SPLINE, RANGE=#S/DUMPFACEB, FILE="LCLS2scS", &
      TITLE="SC-linac to SXR dump"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      STYLE=100, SPLINE, RANGE=VBOUTB/DU7S[32], FILE="LCLS2scS", &
      TITLE="VBEND through SXR"
 !ENDCOMMENT

! HXR

 !COMMENT
    ASSIGN, PRINT="LCLS2scH.print"
    BEAM, ENERGY=E0
    SET, SETSP, SETSPh ; SET, SETAL, ALOFF
    USE, SC_HXR
   !SAVELINE, NAME="SC_HXR", FILENAME="LCLS2scH.saveline"
    PRINT, FULL
    SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun, TAPE="LCLS2scH_survey.tape"
    BEAM, ENERGY=Ei
    USE, SC_HXRi
    PRINT, FULL
    TWISS, SAVE, BETA0=TWSSi, TAPE="LCLS2scH_twiss.tape" !, &
   !  RTAPE="LCLS2scH_rmat.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, VMIN=0, VMAX=10, &
      STYLE=100, SPLINE, RANGE=#S/DUMPFACE, FILE="LCLS2scH", &
      TITLE="SC-linac to HXR dump"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      STYLE=100, SPLINE, RANGE=#S/DUMPFACE, FILE="LCLS2scH", &
      TITLE="SC-linac to HXR dump"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      STYLE=100, SPLINE, RANGE=#S/DUMPFACE, FILE="LCLS2scH", &
      TITLE="SC-linac to HXR dump"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      STYLE=100, SPLINE, RANGE=MM2/DU7H[36], FILE="LCLS2scH", &
      TITLE="VBEND through HXR"
 !ENDCOMMENT

! BSY dump

 !COMMENT
    ASSIGN, PRINT="LCLS2scD.print"
    BEAM, ENERGY=E0
    SET, SETSP, SETSPd ; SET, SETDA, DAOFF
    USE, SC_BSYD
   !SAVELINE, NAME="SC_BSYD", FILENAME="LCLS2scD.saveline"
    PRINT, FULL
    SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun, TAPE="LCLS2scD_survey.tape"
    BEAM, ENERGY=Ei
    USE, SC_BSYDi
    PRINT, FULL
    TWISS, SAVE, BETA0=TWSSi, TAPE="LCLS2scD_twiss.tape" !, &
   !  RTAPE="LCLS2scD_rmat.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, VMIN=0, &
      STYLE=100, SPLINE, RANGE=#S/DUMPBSY, FILE="LCLS2scD", &
      TITLE="SC-linac to BSY dump"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      STYLE=100, SPLINE, RANGE=#S/DUMPBSY, FILE="LCLS2scD", &
      TITLE="SC-linac to BSY dump"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      STYLE=100, SPLINE, RANGE=#S/DUMPBSY, FILE="LCLS2scD", &
      TITLE="SC-linac to BSY dump"
 !ENDCOMMENT

! S30XL/DASEL (off-project)

 !COMMENT
    ASSIGN, PRINT="LCLS2scDA.print"
    BEAM, ENERGY=E0
    SET, SETSP, SETSPd ; SET, SETDA, DAON ; SET, ROLLRC, +1
    SETK2scDA
    USE, SC_DASEL
   !SAVELINE, NAME="SC_DASEL", FILENAME="LCLS2scDA.saveline"
    PRINT, FULL
    SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun, TAPE="LCLS2scDA_survey.tape"
    BEAM, ENERGY=Ei
    SET, ROLLRC, 0
    USE, SC_DASELi
    PRINT, FULL
    TWISS, SAVE, BETA0=TWSSi, TAPE="LCLS2scDA_twiss.tape" !, &
   !  RTAPE="LCLS2scDA_rmat.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, VMIN=0, &
      STYLE=100, SPLINE, RANGE=#S/ENDBSYA_2, FILE="LCLS2scDA", &
      TITLE="SC-linac to DASEL"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=rBETX,rBETY, &
      STYLE=100, SPLINE, RANGE=#S/ENDBSYA_2, FILE="LCLS2scDA", &
      TITLE="SC-linac to DASEL"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      STYLE=100, SPLINE, RANGE=#S/ENDBSYA_2, FILE="LCLS2scDA", &
      TITLE="SC-linac to DASEL"
    SET, ROLLRC, +1
 !ENDCOMMENT

! ==============================================================================
! Beam from LEI gun (SURVEY in linac coordinates)
! ------------------------------------------------------------------------------

! DIAGIS (to spectrometer)

 !COMMENT
    ASSIGN, PRINT="DIAGIS.print"
    BEAM, ENERGY=E0LEI
   !SETK2scDGI !for mux=1.75*2pi from TCXDGI to OTRDGI1 ... use for BSC
    USE, SC_DIAGIS
   !SAVELINE, NAME="DIAGIS", FILENAME="DIAGIS.saveline"
    PRINT, FULL
    SURVEY, X0=Xgun2, Y0=Ygun2, Z0=Zgun2, TAPE="DIAGIS_survey.tape"
    BEAM, ENERGY=Ei
    USE, SC_DIAGISi
    PRINT, FULL
    TWISS, SAVE, BETA0=TWSSiLEI, TAPE="DIAGIS_twiss.tape" !, &
   !  RTAPE="DIAGIS_rmat.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      STYLE=100, SPLINE, RANGE=#S/DUMPFACEI, FILE="DIAGIS", &
      TITLE="DIAGI spectrometer"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      STYLE=100, SPLINE, RANGE=#S/DUMPFACEI, FILE="DIAGIS", &
      TITLE="DIAGI spectrometer"
 !ENDCOMMENT

! DIAG02

 !COMMENT
    ASSIGN, PRINT="DIAG02.print"
    BEAM, ENERGY=E0LEI
    SETK2scLEI
    USE, SC_DIAG02
   !SAVELINE, NAME="SC_DIAG02", FILENAME="DIAG02.saveline"
    PRINT, FULL
    SURVEY, X0=Xgun2, Y0=Ygun2, Z0=Zgun2, TAPE="DIAG02_survey.tape"
    BEAM, ENERGY=Ei
    USE, SC_DIAG02i
    PRINT, FULL
    TWISS, SAVE, BETA0=TWSSiLEI, TAPE="DIAG02_twiss.tape" !, &
   !  RTAPE="DIAG02_rmat.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      STYLE=100, SPLINE, RANGE=#S/#E, FILE="DIAG02", &
      TITLE="LEI to DIAG0"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      STYLE=100, SPLINE, RANGE=#S/#E, FILE="DIAG02", &
      TITLE="LEI to DIAG0"
 !ENDCOMMENT

! SXR2

 !COMMENT
    ASSIGN, PRINT="LCLS2scS2.print"
    BEAM, ENERGY=E0LEI
    SETK2scLEI
    SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF
    USE, SC_SXR2
   !SAVELINE, NAME="SC_SXR2", FILENAME="LCLS2scS2.saveline"
    PRINT, FULL
    SURVEY, X0=Xgun2, Y0=Ygun2, Z0=Zgun2, TAPE="LCLS2scS2_survey.tape"
    BEAM, ENERGY=Ei
    USE, SC_SXR2i
    PRINT, FULL
    TWISS, SAVE, BETA0=TWSSiLEI, TAPE="LCLS2scS2_twiss.tape" !, &
   !  RTAPE="LCLS2scS2_rmat.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, VMIN=0, VMAX=10, &
      STYLE=100, SPLINE, RANGE=#S/DUMPFACEB, FILE="LCLS2scS2", &
      TITLE="LEI to SXR dump"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      STYLE=100, SPLINE, RANGE=#S/DUMPFACEB, FILE="LCLS2scS2", &
      TITLE="LEI to SXR dump"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      STYLE=100, SPLINE, RANGE=#S/DUMPFACEB, FILE="LCLS2scS2", &
      TITLE="LEI to SXR dump"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      STYLE=100, SPLINE, RANGE=VBOUTB/DU7S[32], FILE="LCLS2scS2", &
      TITLE="VBEND through SXR"
 !ENDCOMMENT

! HXR

 !COMMENT
    ASSIGN, PRINT="LCLS2scH2.print"
    BEAM, ENERGY=E0LEI
    SETK2scLEI
    SET, SETSP, SETSPh ; SET, SETAL, ALOFF
    USE, SC_HXR2
   !SAVELINE, NAME="SC_HXR2", FILENAME="LCLS2scH2.saveline"
    PRINT, FULL
    SURVEY, X0=Xgun2, Y0=Ygun2, Z0=Zgun2, TAPE="LCLS2scH2_survey.tape"
    BEAM, ENERGY=Ei
    USE, SC_HXR2i
    PRINT, FULL
    TWISS, SAVE, BETA0=TWSSiLEI, TAPE="LCLS2scH2_twiss.tape" !, &
   !  RTAPE="LCLS2scH2_rmat.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, VMIN=0, VMAX=10, &
      STYLE=100, SPLINE, RANGE=#S/DUMPFACE, FILE="LCLS2scH2", &
      TITLE="LEI to HXR dump"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      STYLE=100, SPLINE, RANGE=#S/DUMPFACE, FILE="LCLS2scH2", &
      TITLE="LEI to HXR dump"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      STYLE=100, SPLINE, RANGE=#S/DUMPFACE, FILE="LCLS2scH2", &
      TITLE="SC-linac to HXR dump"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      STYLE=100, SPLINE, RANGE=MM2/DU7H[36], FILE="LCLS2scH2", &
      TITLE="VBEND through HXR"
 !ENDCOMMENT

! BSY dump

 !COMMENT
    ASSIGN, PRINT="LCLS2scD2.print"
    BEAM, ENERGY=E0LEI
    SETK2scLEI
    SET, SETSP, SETSPd ; SET, SETDA, DAOFF
    USE, SC_BSYD2
   !SAVELINE, NAME="SC_BSYD2", FILENAME="LCLS2scD2.saveline"
    PRINT, FULL
    SURVEY, X0=Xgun2, Y0=Ygun2, Z0=Zgun2, TAPE="LCLS2scD2_survey.tape"
    BEAM, ENERGY=Ei
    USE, SC_BSYD2i
    PRINT, FULL
    TWISS, SAVE, BETA0=TWSSiLEI, TAPE="LCLS2scD2_twiss.tape" !, &
   !  RTAPE="LCLS2scD2_rmat.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, VMIN=0, &
      STYLE=100, SPLINE, RANGE=#S/DUMPBSY, FILE="LCLS2scD2", &
      TITLE="LEI to BSY dump"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      STYLE=100, SPLINE, RANGE=#S/DUMPBSY, FILE="LCLS2scD2", &
      TITLE="LEI to BSY dump"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      STYLE=100, SPLINE, RANGE=#S/DUMPBSY, FILE="LCLS2scD2", &
      TITLE="LEI to BSY dump"
 !ENDCOMMENT

! S30XL/DASEL (off-project)

 !COMMENT
    ASSIGN, PRINT="LCLS2scDA2.print"
    BEAM, ENERGY=E0LEI
    SETK2scLEI
    SET, SETSP, SETSPd ; SET, SETDA, DAON ; SET, ROLLRC, +1
    SETK2scDA
    USE, SC_DASEL2
   !SAVELINE, NAME="SC_DASEL2", FILENAME="LCLS2scDA2.saveline"
    PRINT, FULL
    SURVEY, X0=Xgun2, Y0=Ygun2, Z0=Zgun2, TAPE="LCLS2scDA2_survey.tape"
    BEAM, ENERGY=Ei
    SET, ROLLRC, 0
    USE, SC_DASEL2i
    PRINT, FULL
    TWISS, SAVE, BETA0=TWSSiLEI, TAPE="LCLS2scDA2_twiss.tape" !, &
   !  RTAPE="LCLS2scDA2_rmat.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, VMIN=0, &
      STYLE=100, SPLINE, RANGE=#S/ENDBSYA_2, FILE="LCLS2scDA2", &
      TITLE="LEI to DASEL"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=rBETX,rBETY, &
      STYLE=100, SPLINE, RANGE=#S/ENDBSYA_2, FILE="LCLS2scDA2", &
      TITLE="LEI to DASEL"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      STYLE=100, SPLINE, RANGE=#S/ENDBSYA_2, FILE="LCLS2scDA2", &
      TITLE="LEI to DASEL"
    SET, ROLLRC, +1
 !ENDCOMMENT

! ==============================================================================
! SURVEY in BSY coordinates (from start of spreader)
! ------------------------------------------------------------------------------

! SXR

 !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 (nominal energy: 8 GeV; energy range: 2-10 GeV)

 !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

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

! SXR TMO

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

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

! SXR TXI

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

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

! SXR 2_X !"2.X"

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

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

! HXR

 !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

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

! BSY dump

 !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

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

! S30XL/DASEL (off-project)

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

! ==============================================================================
! Color Twiss plots (beam from LCLS-II gun)
! ------------------------------------------------------------------------------

 !COMMENT
    ASSIGN, PRINT="LCLS2sc.print"

  ! Cathode to BEAM0

    BEAM, ENERGY=E0
    USE, (GUN,L0)
    PRINT, FULL
    TWISS, SAVE, COUPLE, BETA0=TWSS0
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, VMIN=0, VMAX=0.12, &
      COLOUR=100, -SPLINE, RANGE=CATHODEB/#E, FILE="LCLS2sc_color", &
      TITLE="GUNB + L0B"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, VMIN=0, VMAX=20, &
      COLOUR=100, -SPLINE, RANGE=CATHODEB/#E, FILE="LCLS2sc_color", &
      TITLE="GUNB + L0B"

  ! BEAM0 to SXR Main Dump

    BEAM, ENERGY=Ei
    SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF
    USE, SC_SXRi
    TWISS, SAVE, BETA0=TWSSi
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, VMIN=0, &
      COLOUR=100, SPLINE, RANGE=#S/ENDL1B, FILE="LCLS2sc_color", &
      TITLE="SC_linac: Laser Heater + Coll0 + L1B"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      COLOUR=100, SPLINE, RANGE=#S/ENDL1B, FILE="LCLS2sc_color", &
      TITLE="SC_linac: Laser Heater + Coll0 + L1B"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      COLOUR=100, SPLINE, RANGE=BEGBC1B/ENDCOL1, FILE="LCLS2sc_color", &
      TITLE="SC_linac: BC1B + Coll1"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, VMIN=0, &
      COLOUR=100, SPLINE, RANGE=BEGL2B/ENDL2B, FILE="LCLS2sc_color", &
      TITLE="SC_linac: L2B"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      COLOUR=100, SPLINE, RANGE=BEGL2B/ENDL2B, FILE="LCLS2sc_color", &
      TITLE="SC_linac: L2B"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      COLOUR=100, SPLINE, RANGE=BEGBC2B/ENDEMIT2, FILE="LCLS2sc_color", &
      TITLE="SC_linac: BC2B + Emit2"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, VMIN=0, &
      COLOUR=100, SPLINE, RANGE=BEGL3B/ENDBR3B, FILE="LCLS2sc_color", &
      TITLE="SC_linac: L3B + BR3B"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      COLOUR=100, SPLINE, RANGE=BEGL3B/ENDBR3B, FILE="LCLS2sc_color", &
      TITLE="SC_linac: L3B + BR3B"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, VMIN=0, &
      COLOUR=100, SPLINE, RANGE=BEGL4B/ENDEXT, FILE="LCLS2sc_color", &
      TITLE="SC_linac: L4B + Extension"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      COLOUR=100, SPLINE, RANGE=BEGL4B/ENDEXT, FILE="LCLS2sc_color", &
      TITLE="SC_linac: L4B + Extension"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      COLOUR=100, SPLINE, RANGE=BEGDOG/MQBP13, FILE="LCLS2sc_color", &
      TITLE="SC_linac: Dogleg + Match to Bypass"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      COLOUR=100, SPLINE, RANGE=MQBP13/ENDSPD_1, FILE="LCLS2sc_color", &
      TITLE="SC_linac: Bypass Line to Spreader"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      COLOUR=100, SPLINE, RANGE=BEGSPS/ENDLTUS, FILE="LCLS2sc_color", &
      TITLE="SC_linac: Spreader + LTUS"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      COLOUR=100, SPLINE, RANGE=BEGUNDS/ENDUNDS, FILE="LCLS2sc_color", &
      TITLE="SXR Undulator"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      COLOUR=100, SPLINE, RANGE=BEGDMPS_1/DUMPFACEB, FILE="LCLS2sc_color", &
      TITLE="SXR Post-undulator to Dump"

  ! SXR Safety Dump

    BEAM, ENERGY=Ei
    SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF
    USE, SC_SFTSi
    TWISS, SAVE, BETA0=TWSSi
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      COLOUR=100, SPLINE, RANGE=BEGSFTS_1/SFTDMPB, FILE="LCLS2sc_color", &
      TITLE="SXR Safety Dump"

  ! Spreader to HXR Main Dump

    BEAM, ENERGY=Ei
    SET, SETSP, SETSPh ; SET, SETAL, ALOFF
    USE, SC_HXRi
    TWISS, SAVE, BETA0=TWSSi
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      COLOUR=100, SPLINE, RANGE=BEGSPH/ENDLTUH, FILE="LCLS2sc_color", &
      TITLE="Spreader + LTUH"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      COLOUR=100, SPLINE, RANGE=BEGUNDH/DUMPFACE, FILE="LCLS2sc_color", &
      TITLE="HXR Undulator to Dump"

  ! Spreader to BSY Dump

    BEAM, ENERGY=Ei
    SET, SETSP, SETSPd ; SET, SETDA, DAOFF
    USE, SC_BSYDi
    TWISS, SAVE, BETA0=TWSSi
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      COLOUR=100, SPLINE, RANGE=BEGSPD_1/DUMPBSY, FILE="LCLS2sc_color", &
      TITLE="Spreader to BSY Dump"

  ! DIAG0

    BEAM, ENERGY=Ei
    USE, SC_DIAG0i
    TWISS, SAVE, BETA0=TWSSi
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      COLOUR=100, SPLINE, RANGE=BEGDIAG0/ENDDIAG0, FILE="LCLS2sc_color", &
      TITLE="DIAG0"

  ! S30XL/DASEL (off-project)

    BEAM, ENERGY=Ei
    SET, SETSP, SETSPd ; SET, SETDA, DAON ; SET, ROLLRC, 0
    SETK2scDA
    USE, SC_DASELi
    TWISS, SAVE, BETA0=TWSSi
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=rBETX,rBETY, VAXIS2=DX,DY, &
      COLOUR=100, SPLINE, RANGE=BEGDASEL/ENDBSYA_2, FILE="LCLS2sc_color", &
      TITLE="DASEL to A-line"
    SET, ROLLRC, +1
 !ENDCOMMENT

! ==============================================================================
! Color Twiss plots (beam from LEI gun)
! ------------------------------------------------------------------------------

 !COMMENT
    ASSIGN, PRINT="LCLS2sc.print"

  ! Cathode to BEAM0LEI

    BEAM, ENERGY=E0LEI
    USE, (GUNLEI,L0LEI)
    PRINT, FULL
    TWISS, SAVE, COUPLE, BETA0=TWSS0LEI
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, VMIN=0, VMAX=0.12, &
      COLOUR=100, -SPLINE, RANGE=#S/BEAM0LEI, FILE="LCLS2sc_color", &
      TITLE="GUNLEI + L0LEI"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, & !VMIN=0, VMAX=20, &
      COLOUR=100, SPLINE, RANGE=#S/BEAM0LEI, FILE="LCLS2sc_color", &
      TITLE="GUNLEI + L0LEI"

  ! DIAGIS

    BEAM, ENERGY=Ei
    SETK2scDGI !for mux=1.75*2pi from TCXDGI to OTRDGI1
    USE, SC_DIAGISi
    TWISS, SAVE, BETA0=TWSSiLEI
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      COLOUR=100, SPLINE, RANGE=BEGLEI_1/ENDDIAGI_2, FILE="LCLS2sc_color", &
      TITLE="BEAM0LEI to DIAGI spectrometer"

  ! DIAG02

    BEAM, ENERGY=Ei
    SETK2scLEI
    USE, SC_DIAG02i
    TWISS, SAVE, BETA0=TWSSiLEI
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      COLOUR=100, SPLINE, RANGE=BEGLEI_1/#E, FILE="LCLS2sc_color", &
      TITLE="BEAM0LEI to DIAG0"
 !ENDCOMMENT

! ==============================================================================

 !CALL "LCLS2sc_area_plots.mad8"

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

  STOP

