
! *** OPTICS=LCLS2sc15OCT14 ***

! LCLS2sc LTU and dump

! ==============================================================================
! Modification History
! ------------------------------------------------------------------------------
! 15-OCT-2014, M. Woodley
!  * move Brhof, GBCC, ZBCC, and ZDCC parameter definitions to common.xsif
!  * change names of R56 compensation chicane bends from "BX..." to "BCX..."
!    to conform with nomenclature rules
!  * rematch BSY to DL2 dogleg (matching subroutine MBSYDL2)
! 14-OCT-2014, Y. Nosochkov
!  * add four R56 compensating chicanes in HXR (u/s of muon wall,
!    d/s of BX32, u/s of BX35, and d/s of BX36) and two chicanes in SXR
!    (u/s of BX31b, and d/s of BX32b) -- set to non-baseline level "0"
!  * add existing WSVM1 wire scanner in the LTUH VBEND area at Z'=177.4709 m
!    (per J. Steiber)
!  * restore dumpline toroids IMDUMP, IMBCS4, IMBCS4b (per LCLSII-2.4-PR-0107)
!  * modify locations of various devices in the dumpline (per A. Callen)
! 10-OCT-2014, Y. Nosochkov
!  * update the TYPE of (13) RFBPMs to indicate the non-baseline level "0"
!  * update the TYPE of (5) LTUH WIRE scanners to indicate the non-baseline
!    level "0"
! 30-SEP-2014, Y. Nosochkov
!  * rematch geometry and optics for the updated type of BX31B, BX32B
!    (1.26D103.3T)
!  * restore TDUND to its existing position in LCLS-1, specify TDUND length
!    per D. Bruch
!  * restore locations of QUM1B, QUM2B, QUM3B, QUM4B as in LCLS-1
!  * add markers for BTH/UH walls
!  * change type of XCDL4 from class-4f to class-5f (per J. Amann)
!  * restore existing LCLS1 devices IMUNDI, IM31, IM36, IMBCS1, IMBCS2,
!    OTR33, BPMEM4, BPMDL1, BPME32, BPME34, BPME36 (not part of LCLS2)
!    to avoid cost of their removal (per A. Callen)
!  * replace YCEM1B with XCEM1B, XCEM2B with YCEM2B, YCEM3B with XCEM3B,
!    and XCEM4B with YCEM4B
! 15-SEP-2014, Y. Nosochkov
!  * designate BSY1 line connecting the end of LCLS1 L3 with the beginning of
!    LCLS2 HXR merge bend BXSP1h
! 07-AUG-2014, M. Woodley
!  * change bend type of BX31B, BX32B to 1.26D103.3T (per J. Amann) ... did
!    not change length (yet)
!  * decorate device TYPE attributes to indicate non-baseline status
! 31-JUL-2014, Y. Nosochkov
!  * replace BPMDL1 with RFBDL1 in HXR
!  * remove IM31, IM31b, IMBCS1, IMBCS1b, IM36, IM36b, IMBCS2, IMUNDI, IMUNDIb,
!    RFB07, RFB07b, RFB08, RFB08b, IMDUMP, IMDUMPb, IMBCS4, IMBCS4b
! 23-JUL-2014, Y. Nosochkov
!  * move TDUNDb 2.8 m downstream (per J. Stieber)
! 15-JUL-2014, Y. Nosochkov
!  * move SXR quad QUM1b 2.0 m downstream (per J. Stieber)
! 14-JUL-2014, Y. Nosochkov
!  * move SXR quad QDL19 2.5 m downstream (per J. Stieber) -- this requires
!    moving along (2.5 m d/s) the quads QDL11 to QDL18 (to maintain dispersion
!    cancellation without moving the bends)
! 17-JUN-2014, Y. Nosochkov
!  * remove OTR33 in HXR (per J. Frisch)
!  * replace all stripline BPMs downstream of the undulators with RFBPMs
!    (per J. Frisch)
!  * move OTR33B to dispersive location near QDL18 and rename it to OTRDL18
! 12-MAY-2014, Y. Nosochkov
!  * add beam abort horizontal kicker BXKIK, SPOILER and in-line dump TDKIK
!    in the beginning of LCLS1 BSY, upstream of the LCLS2 HXR merge bend BXSP1h
! 02-MAY-2014, M. Woodley
!  * move definition of DRFB drift to common.xsif
!  * add "CNT" MARKERs after dispersive areas (ELEGANT CENTERing)
!  * remove RWWAKEal* MARKER points per P. Emma
!  * change names of wiggler segments (WIG11s/WIG12s -> WIG1SA/WIG1SB, etc.)
! 01-MAY-2014, Y. Nosochkov
!  * change YCUM3 -> XCUM3, XCUM4 -> YCUM4, YCUM3B -> XCUM3B, XCUM4B -> YCUM4B
!  * replace BPMBSY39, BPMBSY88 with cavity BPMs RFBBSY39, RFBBSY88
! 29-APR-2014, Y. Nosochkov
!  * add sync. light vertical wiggler EWIGh in LTUH
!  * add sync. light vertical wiggler EWIGs in LTUS (per J. Frisch)
! 23-APR-2014, Y. Nosochkov
!  * replace stripline BPMs BPMEM4B, BPME32B, BPME34B, BPME36B, BPMEM4,
!    BPME32, BPME34, BPME36, BPMDDB, BPMDD with cavity BPMs RFBEM4B, RFBE32B,
!    RFBE34B, RFBE36B, RFBEM4, RFBE32, RFBE34, RFBE36, RFBDDB, RFBDD
!    (per J. Frisch)
! 22-APR-2014, Y. Nosochkov
!  * add missing existing DM60 BTM monitor in the HXR BSY
!  * adjust length of PCPM1L,PCPM2L,PCPM1Lb,PCPM2Lb
!  * change magnet type of QDMP1, QDMP2 to 3.94Q17
!  * change magnet type of QDMP1b, QDMP2b to 3.25Q20
! 17-APR-2014, Y. Nosochkov
!  * change D2 definition from MARK to INST
! 15-APR-2014, Y. Nosochkov
!  * update collimator jaw aperture per LCLSII-2.4-PR-0095
! 08-APR-2014, Y. Nosochkov
!  * remove HXR betatron collimators CX31, CY32, CX35, CY36
!  * remove SXR betatron collimators CX31b, CY32b, CX35b, CY36b
!  * add HXR betatron collimators CXQ6, CYBX32, CXQT22, CYBX36
!  * add SXR betatron collimator CYBDL, CYDL16
!  * rename YCQT22 to YCQT21 and move it upstream of QT21
! 07-APR-2014, M. Woodley
!  * reorder some drift length parameter definitions and drift length
!    definitions to avoid using parameters/attributes before they are defined
! ------------------------------------------------------------------------------
! 31-MAR-2014, M. Woodley
!  * element names changed to conform to nomenclature PRD
! 26-MAR-2014, Y. Nosochkov
!  * remove PCTDKIK1,2,3,4 from HXR LTU
!  * update beta match to undulator
! 25-MAR-2014, Y. Nosochkov
!  * remove BYKIK, TDKIK and SPOILER from HXR LTU
!  * add missing ST60, ST61 stoppers in the BSY
! 21-MAR-2014, Y. Nosochkov
!  * rematch to updated undulator cells
! 07-MAR-2014, Y. Nosochkov
!  * increase main dump length (from DUMPFACE to BTMDUMP) to 1.5 m (to be
!    confirmed), remove markers EOL, EOLB
! 06-MAR-2014, Y. Nosochkov
!  * add a 0.6 mrad soft bend in front of the dump bends
!  * roll the HXR/SXR dumplines starting from the soft bend by 10 deg
!    to reduce the beam-to-beam x-separation at the dumps to ~1.88 m
!    and the vertical descent (relative to undulator) to ~1.76 m
!  * adjust Z-positions of the dump face and QDMP quads (per Mario and Maceo)
! ------------------------------------------------------------------------------
! 28-FEB-2014, Y. Nosochkov
!  * rematch to the updated undulator
! 26-FEB-2014, Y. Nosochkov
!  * rematch to the updated spreader
! 17-JAN-2014, Y. Nosochkov
!  * rematch to the updated spreader
! 18-DEC-2013, Y. Nosochkov
!  * update match to the spreader
! 16-DEC-2013, Y. Nosochkov
!  * update match to the 3-way spreader with low R56
! 03-DEC-2013, Y. Nosochkov
!  * update match to the spreader
! 25-NOV-2013, Y. Nosochkov
!  * remove QBSY1, QBSY2 and adjust locations of Q50Q1,Q50Q2,Q50Q3,Q5,Q6 to
!    maintain FODO optics while avoiding interference with divergent and
!    biconcave chambers
! 21-NOV-2013, Y. Nosochkov
!  * update QDBL1,2 strengths for the 3-way spreader system
! 26-OCT-2013, Y. Nosochkov
!  * update quadrupole type 1.26Q12 in SXR
!  * move QDBL1, QDBL2 0.5 m downstream
! 25-OCT-2013, Y. Nosochkov
!  * add BPMs, correctors to FODO BSY in HXR
!  * add place holder for pulse magnets to FODO BSY (per R. Iverson)
! 22-OCT-2013, Y. Nosochkov
!  * move TDUNDb 4.844538 m upstream
! 18-OCT-2013, Y. Nosochkov
!  * change quadrupole type of QBSY1, QBSY2 to 1.26Q12
! 17-OCT-2013, Y. Nosochkov
!  * change quadrupole type of QVB1B, QVB2B, QVB3B, QVM3B, QVM4B to 1.26Q12
!  * change bend type of BX31B, BX32B to 1.26D102.0T (per C. Spencer)
! 17-OCT-2013, M. Woodley
!  * from Yuri's LTU.xsif ... this file now defines MUWALL to SXXSTART, plus
!    the SXR dump line
! ------------------------------------------------------------------------------

! ------------------------------------------------------------------------------
! SXR R56 compensating chicanes
! - use series approximation for sinc(x)=sin(x)/x to allow zero field
! ------------------------------------------------------------------------------

! BBX..  : chicane bend field (kG) at 4 GeV
! ABX..  : chicane bend angle (rad)
! LBX..  : chicane bend path length (m)
! ABX..S : "short" half chicane bend angle (rad)
! ABX..L : "long" half chicane bend angle (rad)
! LBX..S : "short" half chicane bend path length (m)
! LBX..L : "long" half chicane bend path length (m)

  BBX31B    := 5.0450
  ARG31B    := ZBCC*BBX31B/Brhof
  ABX31B    := ASIN(ARG31B)
  ABX31B_2  := ABX31B*ABX31B
  ABX31B_4  := ABX31B_2*ABX31B_2
  ABX31B_6  := ABX31B_4*ABX31B_2
  SINC31B   := 1-ABX31B_2/6+ABX31B_4/120-ABX31B_6/5040
  LBX31B    := ZBCC/SINC31B
  ABX31BS   := ASIN(ARG31B/2)
  ABX31BS_2 := ABX31BS*ABX31BS
  ABX31BS_4 := ABX31BS_2*ABX31BS_2
  ABX31BS_6 := ABX31BS_4*ABX31BS_2
  SINC31BS  := 1-ABX31BS_2/6+ABX31BS_4/120-ABX31BS_6/5040
  LBX31BS   := ZBCC/(2*SINC31BS)
  ABX31BL   := ABX31B-ABX31BS
  LBX31BL   := LBX31B-LBX31BS

  BCX31B1A : SBEN, TYPE="@0,R56", L=LBX31BS, ANGLE=+ABX31BS, E1=0,       &
                   HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX31B1B : SBEN, TYPE="@0,R56", L=LBX31BL, ANGLE=+ABX31BL, E2=+ABX31B, &
                   HGAP=GBCC/2, FINT=0, FINTX=0.5
  BCX31B2A : SBEN, TYPE="@0,R56", L=LBX31BL, ANGLE=-ABX31BL, E1=-ABX31B, &
                   HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX31B2B : SBEN, TYPE="@0,R56", L=LBX31BS, ANGLE=-ABX31BS, E2=0,       &
                   HGAP=GBCC/2, FINT=0, FINTX=0.5
  BCX31B3A : SBEN, TYPE="@0,R56", L=LBX31BS, ANGLE=-ABX31BS, E1=0,       &
                   HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX31B3B : SBEN, TYPE="@0,R56", L=LBX31BL, ANGLE=-ABX31BL, E2=-ABX31B, &
                   HGAP=GBCC/2, FINT=0, FINTX=0.5
  BCX31B4A : SBEN, TYPE="@0,R56", L=LBX31BL, ANGLE=+ABX31BL, E1=+ABX31B, &
                   HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX31B4B : SBEN, TYPE="@0,R56", L=LBX31BS, ANGLE=+ABX31BS, E2=0,       &
                   HGAP=GBCC/2, FINT=0, FINTX=0.5

  DCC31Bo : DRIF, L=ZDCC/COS(ABX31B), TYPE="CSR"
  DCC31Bi : DRIF, L=ZDCC            , TYPE="CSR"

  CC31B   : LINE=(          &
    BCX31B1A,BCX31B1B,DCC31Bo,&
    BCX31B2A,BCX31B2B,DCC31Bi,&
    BCX31B3A,BCX31B3B,DCC31Bo,&
    BCX31B4A,BCX31B4B)

  BBX32B    := 5.0450
  ARG32B    := ZBCC*BBX32B/Brhof
  ABX32B    := ASIN(ARG32B)
  ABX32B_2  := ABX32B*ABX32B
  ABX32B_4  := ABX32B_2*ABX32B_2
  ABX32B_6  := ABX32B_4*ABX32B_2
  SINC32B   := 1-ABX32B_2/6+ABX32B_4/120-ABX32B_6/5040
  LBX32B    := ZBCC/SINC32B
  ABX32BS   := ASIN(ARG32B/2)
  ABX32BS_2 := ABX32BS*ABX32BS
  ABX32BS_4 := ABX32BS_2*ABX32BS_2
  ABX32BS_6 := ABX32BS_4*ABX32BS_2
  SINC32BS  := 1-ABX32BS_2/6+ABX32BS_4/120-ABX32BS_6/5040
  LBX32BS   := ZBCC/(2*SINC32BS)
  ABX32BL   := ABX32B-ABX32BS
  LBX32BL   := LBX32B-LBX32BS

  BCX32B1A : SBEN, TYPE="@0,R56", L=LBX32BS, ANGLE=+ABX32BS, E1=0,       &
                   HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX32B1B : SBEN, TYPE="@0,R56", L=LBX32BL, ANGLE=+ABX32BL, E2=+ABX32B, &
                   HGAP=GBCC/2, FINT=0, FINTX=0.5
  BCX32B2A : SBEN, TYPE="@0,R56", L=LBX32BL, ANGLE=-ABX32BL, E1=-ABX32B, &
                   HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX32B2B : SBEN, TYPE="@0,R56", L=LBX32BS, ANGLE=-ABX32BS, E2=0,       &
                   HGAP=GBCC/2, FINT=0, FINTX=0.5
  BCX32B3A : SBEN, TYPE="@0,R56", L=LBX32BS, ANGLE=-ABX32BS, E1=0,       &
                   HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX32B3B : SBEN, TYPE="@0,R56", L=LBX32BL, ANGLE=-ABX32BL, E2=-ABX32B, &
                   HGAP=GBCC/2, FINT=0, FINTX=0.5
  BCX32B4A : SBEN, TYPE="@0,R56", L=LBX32BL, ANGLE=+ABX32BL, E1=+ABX32B, &
                   HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX32B4B : SBEN, TYPE="@0,R56", L=LBX32BS, ANGLE=+ABX32BS, E2=0,       &
                   HGAP=GBCC/2, FINT=0, FINTX=0.5

  DCC32Bo : DRIF, L=ZDCC/COS(ABX32B), TYPE="CSR"
  DCC32Bi : DRIF, L=ZDCC            , TYPE="CSR"

  CC32B   : LINE=(          &
    BCX32B1A,BCX32B1B,DCC32Bo,&
    BCX32B2A,BCX32B2B,DCC32Bi,&
    BCX32B3A,BCX32B3B,DCC32Bo,&
    BCX32B4A,BCX32B4B)

! ------------------------------------------------------------------------------
! SXR dogleg
! ------------------------------------------------------------------------------

  KQDBL1 := -0.533182087268
  KQDBL2 :=  0.516486146108

  QDBL1 : QUAD, TYPE="1.26Q12", L=LQA/2, K1=KQDBL1, APER=rQA
  QDBL2 : QUAD, TYPE="1.26Q12", L=LQA/2, K1=KQDBL2, APER=rQA

  KQDLb  :=  0.349560152413
  KQDL20 := -0.168763714901
  KQDL21 := -0.648938351328
  KQDL22 :=  0.746001499909

  QDL11 : QUAD, TYPE="1.26Q12", L=LQA/2, K1= KQDLb , APER=rQA
  QDL12 : QUAD, TYPE="1.26Q12", L=LQA/2, K1=-KQDLb , APER=rQA
  QDL13 : QUAD, TYPE="1.26Q12", L=LQA/2, K1= KQDLb , APER=rQA
  QDL14 : QUAD, TYPE="1.26Q12", L=LQA/2, K1=-KQDLb , APER=rQA
  QDL15 : QUAD, TYPE="1.26Q12", L=LQA/2, K1= KQDLb , APER=rQA
  QDL16 : QUAD, TYPE="1.26Q12", L=LQA/2, K1=-KQDLb , APER=rQA
  QDL17 : QUAD, TYPE="1.26Q12", L=LQA/2, K1= KQDLb , APER=rQA
  QDL18 : QUAD, TYPE="1.26Q12", L=LQA/2, K1=-KQDLb , APER=rQA
  QDL19 : QUAD, TYPE="1.26Q12", L=LQA/2, K1= KQDLb , APER=rQA
  QDL20 : QUAD, TYPE="1.26Q12", L=LQA/2, K1= KQDL20, APER=rQA
  QDL21 : QUAD, TYPE="1.26Q12", L=LQA/2, K1= KQDL21, APER=rQA
  QDL22 : QUAD, TYPE="1.26Q12", L=LQA/2, K1= KQDL22, APER=rQA

  LB3b    := 2.656      !1.26D103.3T effective length (m)
  GB3b    := 0.032      !1.26D103.3T gap height (m)
  AB3Pb   := 0.018633330237
  AB3Mb   := -AB3Pb
  LeffB3b := LB3b*AB3Pb/(2*SIN(AB3Pb/2)) !full bend eff. path length (m)

  BX31BA  : SBEN, TYPE="1.26D103.3T", L=LeffB3b/2, ANGLE=AB3Mb/2, HGAP=GB3b/2,&
                  E1=AB3Mb/2, E2=0, FINT=0.5, FINTX=0.0
  BX31BB  : SBEN, TYPE="1.26D103.3T", L=LeffB3b/2, ANGLE=AB3Mb/2, HGAP=GB3b/2,&
                  E1=0, E2=AB3Mb/2, FINT=0.0, FINTX=0.5
  BX32BA  : SBEN, TYPE="1.26D103.3T", L=LeffB3b/2, ANGLE=AB3Pb/2, HGAP=GB3b/2,&
                  E1=AB3Pb/2, E2=0, FINT=0.5, FINTX=0.0
  BX32BB  : SBEN, TYPE="1.26D103.3T", L=LeffB3b/2, ANGLE=AB3Pb/2, HGAP=GB3b/2,&
                  E1=0, E2=AB3Pb/2, FINT=0.0, FINTX=0.5

  LDBLDL := 3.0 ! length of LTU doublet including drifts

  WALL    : DRIF, L=16.764
  DDBLDLb : DRIF, L=0.5
  DDBLDLc : DRIF, L=0.4
  DDBLDLa : DRIF, L=0.5*(LDBLDL-2*LQA-DDBLDLb[L]-2*DDBLDLc[L]-Lcoll)

  LDLCEL := 25.5
  LDL6b  := 0.4
  LDL0b  := LDLCEL/2-LQA-LDL6b
  LDL1b  := 0.5+(-0.004)/2 +2.5 -0.0165
  LDL2b  := LDL0b+LDL6b-LDL1b-LB3b+(LeffB3b-LB3b)*3
  LDL4b  := 2.0-LDL6b+(-0.004)
  LDL3b  := LDL0b-LQA-LDL4b-2*LDL6b+1.0
  LDL5b  := 0.5+(-0.004)/2
  LDL7b  := 0.5
  LDL8b  := LDL0b-LDL7b-Lcoll
  LDL8c  := 1.0
  LDL8d  := LDL8b-LDL8c-ZWIG
  LDL9b  := LDL0b-LDL6b
  LDL10b := 0.8
  LDL11b := LDL0b-LDL10b-Lcoll
  LDL13b := 0.4
  LDL12b := LDL0b-LDL13b
 dLDL14b := 0.0 !-0.629048771033E-5
  LDL14b := 0.5+(-0.004)/2 -0.0165 +dLDL14b
  LDL16b := 0.5
  LDL15b := LDL2b-LDL16b-2.0
  LDL17b := 0.5
  LDL18b := LDL3b-LDL17b-2.0
  LDL20b := LDL0b-0.5-1.0-(-0.004)/2 +2.5

  DDL0b  : DRIFT, L=LDL0b
  DDL1b  : DRIFT, L=LDL1b
  DDL2b  : DRIFT, L=LDL2b
  DDL3b  : DRIFT, L=LDL3b
  DDL4b  : DRIFT, L=LDL4b
  DDL5b  : DRIFT, L=LDL5b
  DDL6b  : DRIFT, L=LDL6b
  DDL7b  : DRIFT, L=LDL7b
  DDL8b  : DRIFT, L=LDL8b
  DDL8c  : DRIFT, L=LDL8c
  DDL8d  : DRIFT, L=LDL8d
  DDL9b  : DRIFT, L=LDL9b
  DDL10b : DRIFT, L=LDL10b
  DDL11b : DRIFT, L=LDL11b
  DDL12b : DRIFT, L=LDL12b
  DDL13b : DRIFT, L=LDL13b
  DDL14b : DRIFT, L=LDL14b
  DDL15b : DRIFT, L=LDL15b
  DDL16b : DRIFT, L=LDL16b
  DDL17b : DRIFT, L=LDL17b
  DDL18b : DRIFT, L=LDL18b
  DDL20b : DRIFT, L=LDL20b

  BPMDBL1 : MONI, TYPE="05_um_res"
  BPMDBL2 : MONI, TYPE="05_um_res"
  BPMDL11 : MONI, TYPE="05_um_res"
  BPMDL12 : MONI, TYPE="05_um_res"
  BPMDL13 : MONI, TYPE="05_um_res"
  BPMDL14 : MONI, TYPE="05_um_res"
  BPMDL15 : MONI, TYPE="05_um_res"
  BPMDL16 : MONI, TYPE="05_um_res"
  BPMDL17 : MONI, TYPE="05_um_res"
  BPMDL18 : MONI, TYPE="05_um_res"
  BPMDL19 : MONI, TYPE="05_um_res"
  BPMDL20 : MONI, TYPE="05_um_res"
  BPMDL21 : MONI, TYPE="05_um_res"
  BPMDL22 : MONI, TYPE="05_um_res"

  XCDBL2 : HKIC,TYPE="class-4"
  XCDL11 : HKIC,TYPE="class-4"
  XCDL13 : HKIC,TYPE="class-4"
  XCDL15 : HKIC,TYPE="class-4"
  XCDL17 : HKIC,TYPE="class-4"
  XCDL19 : HKIC,TYPE="class-4"
  XCDL22 : HKIC,TYPE="class-4"

  YCDBL1 : VKIC,TYPE="class-4"
  YCDL12 : VKIC,TYPE="class-4"
  YCDL14 : VKIC,TYPE="class-4"
  YCDL16 : VKIC,TYPE="class-4"
  YCDL18 : VKIC,TYPE="class-4"
  YCDL20 : VKIC,TYPE="class-4"
  YCDL21 : VKIC,TYPE="class-4"

  CEDL14 : RCOL, L=Lcoll, XSIZE=3.1E-3, YSIZE=20E-3
  CEDL18 : RCOL, L=Lcoll, XSIZE=3.1E-3, YSIZE=20E-3

  CYBDL  : RCOL, L=Lcoll, YSIZE=3.3E-3, XSIZE=20E-3
  CYDL16 : RCOL, L=Lcoll, YSIZE=2.8E-3, XSIZE=20E-3

  OTRDL18 : PROF, TYPE="@3,OTR"

  DBMARK34b : MARK !entrance of BX31
  CNTLT1S   : MARK, TYPE="CENTER"

! wiggler for sync. light energy diagnostic (described in SLAC-PUB-3945)
! based on FACET optics model (M. Woodley)
! (series approximation for sinc(x)=sin(x)/x to enable setting with x=0)

  GWIG  := 0.02032       !gap height
  ZWHP  := 0.244         !half-pole Z length
  ZDWG  := 0.126525      !pole-to-pole Z spacing
  ZWIG  := 4*ZWHP+2*ZDWG !total wiggler Z length

  BWGs  := 1.E-12                  !wiggler bend field (kG)
  AWGs  := ASIN(BWGs*ZWHP/(Ef*Cb)) !bend angle per half-pole
  AWGs2 := AWGs*AWGs
  AWGs4 := AWGs2*AWGs2
  AWGs6 := AWGs4*AWGs2
  SINCs := 1-AWGs2/6+AWGs4/120-AWGs6/5040
  LWGs  := ZWHP/SINCs              !half-pole path length

  AWG1s  := ASIN(SIN(AWGs)/2) !"short half" half-pole bend angle
  AWG1s2 := AWG1s*AWG1s
  AWG1s4 := AWG1s2*AWG1s2
  AWG1s6 := AWG1s4*AWG1s2
  SINC1s := 1-AWG1s2/6+AWG1s4/120-AWG1s6/5040
  LWG1s  := (ZWHP/2)/SINC1s   !"short half" half-pole path length

  AWG2s  := AWGs-AWG1s        !"long half" half-pole bend angle
  LWG2s  := LWGs-LWG1s        !"long half" half-pole path length

  WIG1SA : SBEN, TYPE="@3,SLC wiggler", L=LWG1s , HGAP=GWIG/2, ANGLE=AWG1s, &
                 E1=0    , E2=0       , FINT=0.5, FINTX=0    , TILT
  WIG1SB : SBEN, TYPE="@3,SLC wiggler", L=LWG2s , HGAP=GWIG/2, ANGLE=AWG2s, &
                 E1=0    , E2=AWGs    , FINT=0  , FINTX=0.5  , TILT
  WIG2SA : SBEN, TYPE="@3,SLC wiggler", L=LWGs  , HGAP=GWIG/2, ANGLE=-AWGs, &
                 E1=-AWGs, E2=0       , FINT=0.5, FINTX=0    , TILT
  WIG2SB : SBEN, TYPE="@3,SLC wiggler", L=LWGs  , HGAP=GWIG/2, ANGLE=-AWGs, &
                 E1=0    , E2=-AWGs   , FINT=0  , FINTX=0.5  , TILT
  WIG3SA : SBEN, TYPE="@3,SLC wiggler", L=LWG2s , HGAP=GWIG/2, ANGLE=AWG2s, &
                 E1=AWGs , E2=0       , FINT=0.5, FINTX=0    , TILT
  WIG3SB : SBEN, TYPE="@3,SLC wiggler", L=LWG1s , HGAP=GWIG/2, ANGLE=AWG1s, &
                 E1=0    , E2=0       , FINT=0  , FINTX=0.5  , TILT

  LDWGs := ZDWG/COS(AWGs)

  DWGs   : DRIF, L=LDWGs

  YCWIGs : VKIC, TYPE="wiggler trim"

  CNTWIGS : MARK, TYPE="CENTER" !ELEGANT will correct the orbit here for CSR-steering

  EWIGs : LINE=(WIG1SA,WIG1SB,DWGs,WIG2SA,YCWIGs,WIG2SB,DWGs,WIG3SA,WIG3SB,&
                CNTWIGS)

  DBLDL21 : LINE=(BEGLTUS,DDBLDLb,&
                  QDBL1,BPMDBL1,QDBL1,DDBLDLc,YCDBL1,DDBLDLa,CYBDL,&
                                      DDBLDLa,XCDBL2,DDBLDLc,&
                  QDBL2,BPMDBL2,QDBL2)

  DL2sc : LINE=(DBMARK34b                         ,DDL20b,XCDL11,DDL6b,&
                QDL11,BPMDL11,QDL11               ,DDL15b,CC31b ,DDL16b,&
                BX31BA,BX31BB                     ,DDL1b ,&
                QDL12,BPMDL12,QDL12               ,DDL6b ,YCDL12,&
                                                   DDL9b ,XCDL13,DDL6b,&
                QDL13,BPMDL13,QDL13               ,DDL0b ,YCDL14,DDL6b,&
                QDL14,BPMDL14,QDL14,DDL7b ,CEDL14 ,DDL8c ,EWIGs ,DDL8d,&
                                                          XCDL15,DDL6b,&
                QDL15,BPMDL15,QDL15               ,DDL0b ,YCDL16,DDL6b,&
                QDL16,BPMDL16,QDL16,DDL10b,CYDL16 ,DDL11b,XCDL17,DDL6b,&
                QDL17,BPMDL17,QDL17,DDL12b,OTRDL18,DDL13b,YCDL18,DDL6b,&
                QDL18,BPMDL18,QDL18,DDL7b ,CEDL18 ,DDL8b ,XCDL19,DDL6b,&
                QDL19,BPMDL19,QDL19               ,DDL2b ,&
                BX32BA,BX32BB,CNTLT1S             ,DDL14b,&
                QDL20,BPMDL20,QDL20               ,DDL6b ,YCDL20,&
                                    DDL17b,CC32b  ,DDL18b,YCDL21,DDL6b,&
                QDL21,BPMDL21,QDL21               ,DDL4b ,XCDL22,DDL6b,&
                QDL22,BPMDL22,QDL22               ,DDL5b )

! ------------------------------------------------------------------------------
! SXR VBEND
! ------------------------------------------------------------------------------

  KQVBb  := -0.852380195079
  KQVM3B :=  0.905102691719
  KQVM4B := -1.158424723047

  QVB1B : QUAD, TYPE="1.26Q12", L=LQA/2, K1= KQVBb , APER=rQA
  QVB2B : QUAD, TYPE="1.26Q12", L=LQA/2, K1=-KQVBb , APER=rQA
  QVB3B : QUAD, TYPE="1.26Q12", L=LQA/2, K1= KQVBb , APER=rQA
  QVM3B : QUAD, TYPE="1.26Q12", L=LQA/2, K1= KQVM3b, APER=rQA
  QVM4B : QUAD, TYPE="1.26Q12", L=LQA/2, K1= KQVM4b, APER=rQA

  S100_PITCH  := -4.760000E-3
  S100_HEIGHT := 77.643680
  Z_S100_UNDH := 583.000000
  R_Earth     := 6.372508025E6

  LVB := 1.025      !3D39 vertical bend effective length (m)
  GVB := 0.034925   !gap width (m)
  AVB := (S100_PITCH+ASIN(Z_S100_UNDH/(R_Earth+S100_HEIGHT)))/2 !bend up twice this angle so e- is level in cnt. of und.

  BY1BA : SBEN, TYPE="3D39", L=LVB/2, ANGLE=AVB/2, HGAP=GVB/2, &
                E1=AVB/2, FINT=0.5, FINTX=0, TILT
  BY1BB : SBEN, TYPE="3D39", L=LVB/2, ANGLE=AVB/2, HGAP=GVB/2, &
                E2=AVB/2, FINT=0, FINTX=0.5, TILT
  BY2BA : SBEN, TYPE="3D39", L=LVB/2, ANGLE=AVB/2, HGAP=GVB/2, &
                E1=AVB/2, FINT=0.5, FINTX=0, TILT
  BY2BB : SBEN, TYPE="3D39", L=LVB/2, ANGLE=AVB/2, HGAP=GVB/2, &
                E2=AVB/2, FINT=0, FINTX=0.5, TILT

  dDVB := 4.114978912453 !adjust Y in undulator

  DVB1b      : DRIF, L=8.0-2*0.3125    -dDVB*0.5+0.07246+(-0.004)/2, TYPE="CSR"
  DVB2b      : DRIF, L=4.0             -dDVB*0.5+0.07246*2+(-0.004), TYPE="CSR"
  DVB2m80cmb : DRIF, L=4.0-0.4-0.4     -dDVB*0.5+0.07246*2+(-0.004), TYPE="CSR"
  DVB1m40cmb : DRIF, L=8.0-0.4-2*0.3125-dDVB*0.5+0.07246+(-0.004)/2, TYPE="CSR"
  D40cmC     : DRIF, L=0.40, TYPE="CSR"
  DYCVM1     : DRIF, L=0.40
  DQVM1      : DRIF, L=0.34
  DQVM2      : DRIF, L=0.5
  DRQVM1     : DRIF, L=LQF/2
  DRQVM2     : DRIF, L=LQF/2
  DXCVM2     : DRIF, L=0.25
  DVB25cm    : DRIF, L=0.25
  DVB25cmcb  : DRIF, L=0.25 +1.0              +0.07246+(-0.004)/2
  D25cm      : DRIF, L=0.25
  DVBem25cmb : DRIF, L=0.25 +1.0              +0.07246*2+(-0.004), TYPE="CSR"
  DVBem15cmb : DRIF, L=0.15 +0.00381+0.018803 +0.07246+(-0.004)/2, TYPE="CSR"
  D10cmb     : DRIF, L=0.1064869
  D25cma     : DRIF, L=0.25-0.00381-0.018803-0.0064869, TYPE="CSR"

  BPMVB1B : MONI, TYPE="05_um_res"
  BPMVB2B : MONI, TYPE="05_um_res"
  BPMVB3B : MONI, TYPE="05_um_res"
  BPMVM3B : MONI, TYPE="05_um_res"
  BPMVM4B : MONI, TYPE="05_um_res"

  XCVM3B : HKIC,TYPE="type-4"

  YCVB1B : VKIC,TYPE="class-4"
  YCVB3B : VKIC,TYPE="class-4"
  YCVM4B : VKIC,TYPE="class-5"

  VBINb   : MARK !start of vert. bend system
  VBOUTb  : MARK !end of vert. bend system
  CNTLT2S : MARK, TYPE="CENTER" !ELEGANT will correct the orbit here for CSR-steering

  VBENDb : LINE=(VBinb,&
                 BY1BA,BY1BB,DVB1b,&
                 QVB1B,BPMVB1B,QVB1B,D40cmC,YCVB1B,DVB2m80cmb,D40cmC,&
                 QVB2B,BPMVB2B,QVB2B,DVB2b, &
                 QVB3B,BPMVB3B,QVB3B,D40cmC,YCVB3B,DVB1m40cmb,&
                 BY2BA,BY2BB,CNTLT2S,VBoutb)

  VBSYSb : LINE=(DYCVM1,DQVM1,DRQVM1,DRQVM1,DQVM2,DRQVM2,DRQVM2,&
                 DXCVM2,DVB25cm,&
                 VBENDb,DVB25cmcb,XCVM3B,D25cm,&
                 QVM3B,BPMVM3B,QVM3B,DVBem25cmb,YCVM4B,D25cm,&
                 QVM4B,BPMVM4B,QVM4B,DVBem15cmb,D10cmb,D25cma)

! ------------------------------------------------------------------------------
! SXR emittance diagnostic
! ------------------------------------------------------------------------------

  KQEM1B :=  0.680072467482
  KQEM2B := -0.609274603982
  KQEM3B :=  0.453913391785
  KQEM4B := -0.308668336646

  QEM1B  : QUAD, TYPE="1.26Q12"  , L=LQA/2, K1=KQEM1b, APER=rQA
  QEM2B  : QUAD, TYPE="1.26Q12"  , L=LQA/2, K1=KQEM2b, APER=rQA
  QEM3B  : QUAD, TYPE="1.26Q12"  , L=LQA/2, K1=KQEM3b, APER=rQA
  QEM4B  : QUAD, TYPE="1.26Q12"  , L=LQA/2, K1=KQEM4b, APER=rQA
  QEM3VB : QUAD, TYPE="1.259Q3.5", L=LQx/2, K1=0     , APER=rQx

  KQED2b := 0.402753197988 !ED2 FODO quad strength

  QE31B : QUAD, TYPE="1.259Q3.5", L=LQx/2, K1=+KQED2b, APER=rQx
  QE32B : QUAD, TYPE="1.259Q3.5", L=LQx/2, K1=-KQED2b, APER=rQx
  QE33B : QUAD, TYPE="1.259Q3.5", L=LQx/2, K1=+KQED2b, APER=rQx
  QE34B : QUAD, TYPE="1.259Q3.5", L=LQx/2, K1=-KQED2b, APER=rQx
  QE35B : QUAD, TYPE="1.259Q3.5", L=LQx/2, K1=+KQED2b, APER=rQx
  QE36B : QUAD, TYPE="1.259Q3.5", L=LQx/2, K1=-KQED2b, APER=rQx

  dz_adjust := 47.825
  dDMM      := 0.161670898486E-2 !adjust Z in undulator

  D25cmb      : DRIF, L=0.2627
  D25cmc      : DRIF, L=0.2373
  DMM1m90cmB  : DRIF, L=dDVB*2 -0.79954 +dDMM
  DEM1A       : DRIF, L=0.37
  DEM1B       : DRIF, L=4.14092
  DEM2B       : DRIF, L=0.50
  DMM3m80cm   : DRIF, L=11.27092
  DEM3A       : DRIF, L=0.37
  DEM3B       : DRIF, L=0.773299
  DMM4m90cm   : DRIF, L=2.759621
  DEM4A       : DRIF, L=0.50
  DMM5        : DRIF, L=2.07046-DRFB[L]
  D40cm       : DRIF, L=0.40
  D40cmW      : DRIF, L=0.3915855
  DE3m80cma   : DRIF, L=4.6-0.4-0.4+dz_adjust/12+0.15046
  DQEA        : DRIF, L=0.40+(LQF-LQx)/2-0.15046
  DQEBx       : DRIF, L=0.32+(LQF-LQx)/2+0.33655-0.0768665+0.04
  DQEBx2      : DRIF, L=4.6-0.4-0.4+dz_adjust/12-0.33655+0.0768665-0.04
  DE3a        : DRIF, L=4.6+dz_adjust/12+0.14046
  DQEAa       : DRIF, L=0.40+(LQF-LQx)/2-0.14046
  DQEBy       : DRIF, L=0.32+(LQF-LQx)/2+0.33655-0.0768665+0.04
  DQEBy1      : DRIF, L=DQEBy[L]-DRFB[L]
  DQEBy2      : DRIF, L=4.6-0.4+dz_adjust/12-0.33655+0.0768665-0.04
  DE3m80cmb   : DRIF, L=4.6-0.4-0.4+dz_adjust/12+0.12046
  DQEAb       : DRIF, L=0.40+(LQF-LQx)/2-0.12046
  DQEC        : DRIF, L=4.6+dz_adjust/12+(LQF-LQx)/2
  DQEC1       : DRIF, L=DQEC[L]-DRFB[L]
  DE3m40cm    : DRIF, L=4.6-0.4+dz_adjust/12+0.15046
  DE3m80cm    : DRIF, L=4.6-0.4-0.4+dz_adjust/12-0.02954
  DQEAc       : DRIF, L=0.40+(LQF-LQx)/2+0.02954
  DE3         : DRIF, L=4.6+dz_adjust/12+0.15046

  BPMEM1B : MONI, TYPE="05_um_res"
  BPMEM2B : MONI, TYPE="05_um_res"
  BPMEM3B : MONI, TYPE="05_um_res"
  RFBEM4B : MONI, TYPE="@0,01_um_res"
  BPME31B : MONI, TYPE="05_um_res"
  RFBE32B : MONI, TYPE="@0,01_um_res"
  BPME33B : MONI, TYPE="05_um_res"
  RFBE34B : MONI, TYPE="@0,01_um_res"
  BPME35B : MONI, TYPE="05_um_res"
  RFBE36B : MONI, TYPE="@0,01_um_res"

  XCEM1B : HKIC,TYPE="class-4"
  XCEM3B : HKIC,TYPE="class-4"
  XCE31B : HKIC,TYPE="class-4"
  XCE33B : HKIC,TYPE="class-4"
  XCE35B : HKIC,TYPE="class-4"

  YCEM2B : VKIC,TYPE="class-4"
  YCEM4B : VKIC,TYPE="class-4"
  YCE32B : VKIC,TYPE="class-4"
  YCE34B : VKIC,TYPE="class-4"
  YCE36B : VKIC,TYPE="class-4"

  WS31B : WIRE !LTU emittance
  WS32B : WIRE !LTU emittance
  WS33B : WIRE !LTU emittance
  WS34B : WIRE !LTU emittance

  DCX31B : DRIF,L=Lcoll
  DCY32B : DRIF,L=Lcoll
  DCX35B : DRIF,L=Lcoll
  DCY36B : DRIF,L=Lcoll

  DBMARK36b : MARK !center of WS31B

  EDMCHb : LINE=(D25cmb,D25cmc,DMM1m90cmB,XCEM1B,DEM1A,&
                 QEM1B,BPMEM1B,QEM1B,DEM1B,&
                 QEM2B,BPMEM2B,QEM2B,DEM2B,YCEM2B,DMM3m80cm,XCEM3B,DEM3A,&
                 QEM3B,BPMEM3B,QEM3B,DEM3B,&
                 QEM3VB,QEM3VB,DMM4m90cm,YCEM4B,DEM4A,&
                 QEM4B,QEM4B,DRFB,RFBEM4B,DMM5)

  EDSYSb : LINE=(DBMARK36b,WS31B,D40cm,DE3m80cma,XCE31B,DQEA,&
                 QE31B,BPME31B,QE31B,DQEBx,DCX31B,DQEBx2,DE3a,YCE32B,DQEAa,&
                 QE32B,QE32B,DRFB,RFBE32B,DQEBy1,DCY32B,DQEBy2,WS32B,D40cm,&
                   DE3m80cmb,XCE33B,DQEAb, &
                 QE33B,BPME33B,QE33B,DQEC,DE3m40cm,YCE34B,DQEA,&
                 QE34B,QE34B,DRFB,RFBE34B,DQEC1,WS33B,D40cm,DE3m80cm,XCE35B,&
                   DQEAc,&
                 QE35B,BPME35B,QE35B,DQEBx,DCX35B,DQEBx2,DE3,YCE36B,DQEA,&
                 QE36B,QE36B,DRFB,RFBE36B,DQEBy1,DCY36B,DQEBy2,WS34B,D40cm)

  ECELLb : LINE=(QE31B,DQEC,DQEC,QE32B,QE32B,DQEC,DQEC,QE31B)

! ------------------------------------------------------------------------------
! SXR undulator match
! ------------------------------------------------------------------------------

  KQUM1B :=  0.11110379435
  KQUM2B := -0.05
  KQUM3B :=  0.148341964195
  KQUM4B := -0.215828153995

  QUM1B : QUAD, TYPE="1.26Q12", L=LQA/2, K1=KQUM1b, APER=rQA
  QUM2B : QUAD, TYPE="1.26Q12", L=LQA/2, K1=KQUM2b, APER=rQA
  QUM3B : QUAD, TYPE="1.26Q12", L=LQA/2, K1=KQUM3b, APER=rQA
  QUM4B : QUAD, TYPE="1.26Q12", L=LQA/2, K1=KQUM4b, APER=rQA

  DU1m80cm   : DRIF, L=4.550
  DCX37      : DRIFT,L=Lcoll
  DCY38      : DRIFT,L=Lcoll
  D32cmcB    : DRIF, L=0.30046 +1.0
  DUM1A      : DRIF, L=0.49
  DUM1B      : DRIF, L=0.47046
  D32cm      : DRIF, L=0.32
  DU2m120cmB : DRIF, L=4.730 -1.0
  D32cma     : DRIF, L=0.42046
  DUM2A      : DRIF, L=0.37
  DUM2B      : DRIF, L=0.47046
  DU3m80cm   : DRIF, L=7.29046
  DUM3A      : DRIF, L=0.38
  DUM3B      : DRIF, L=0.47046
  D40cma     : DRIF, L=1.807939
  DU4m120cm  : DRIF, L=1.362521
  DUM4A      : DRIF, L=0.50
  DUM4B      : DRIF, L=0.59746
  DU5m80cm   : DRIF, L=0.5
  DUHWALL1   : DRIF, L=0.250825 !length of BTH/UH wall-1
  DUHVEST    : DRIF, L=2.009175 !length of BTH/UH vestibule
  DUHWALL2   : DRIF, L=0.250825 !length of BTH/UH wall-2
  DW2TDUNDb  : DRIF, L=3.001537 !drift from BTH/UH wall-2 to TDUNDB u/s flange
  DTDUND1b   : DRIF, L=0.855853 !from u/s TDUND flange to TDUND center
  DTDUND2b   : DRIF, L=0.347853 !from TDUND center to d/s TDUND flange
  DPCMUON    : DRIF, L=0.031498
  DMUON1     : DRIF, L=0.154859
  DMUON3     : DRIF, L=0.310592

  BPMUM1B : MONI, TYPE="05_um_res"
  BPMUM2B : MONI, TYPE="05_um_res"
  BPMUM3B : MONI, TYPE="05_um_res"
  BPMUM4B : MONI, TYPE="05_um_res"

  XCUM1B : HKIC,TYPE="class-4f" !fast-feedback (loop-5)
  XCUM3B : HKIC,TYPE="class-4f" !fast-feedback (loop-5)

  YCUM2B : VKIC,TYPE="class-4f" !fast-feedback (loop-5)
  YCUM4B : VKIC,TYPE="class-4f" !fast-feedback (loop-5)

  TDUNDB : INST !LTU insertable block at und. extension entrance (w/ screen)

  PCMUONb : ECOL,L=1.1684,XSIZE=8.64E-03/2,YSIZE=4.32E-03/2 !muon scattering collimator after pre-undulator tune-up dump (ID from Rago: 7/18/08)

  VV999b    : MARK !vacuum valve just upbeam of undulator - TBD
  PFILT1b   : MARK
  MM1b      : MARK
  MM2b      : MARK
  MM3b      : MARK
  MUWALL    : MARK
  BSYENDb   : MARK !FFTB side of muon plug wall
  MUHWALL1b : MARK !upstream end of BTH/UH wall-1
  MUHWALL2b : MARK !upstream end of BTH/UH wall-2
  DBMARK37b : MARK !end of undulator match

  UNMCHb : LINE=(DU1m80cm,DCX37,D32cmcB,XCUM1B,DUM1A,&
                 QUM1B,BPMUM1B,QUM1B,DUM1B,D32cm,DU2m120cmB,DCY38,D32cma,&
                 YCUM2B,DUM2A,&
                 QUM2B,BPMUM2B,QUM2B,DUM2B,DU3m80cm,XCUM3B,DUM3A,&
                 QUM3B,BPMUM3B,QUM3B,DUM3B,D40cma,DU4m120cm,YCUM4B,DUM4A,&
                 QUM4B,BPMUM4B,QUM4B,DUM4B,DU5m80cm,D40cmW,&
                 MUHWALL1b,DUHWALL1,DUHVEST,MUHWALL2b,DUHWALL2,&
                 DW2TDUNDb,DTDUND1b,TDUNDB,DTDUND2b,DPCMUON,PCMUONb,DMUON1,&
                 VV999b,DMUON3,MM3b,PFILT1b,DBMARK37b)

  LTUsc : LINE=(MM1b,DL2sc,VBSYSb,MM2b,EDMCHb,EDSYSb,UNMCHb)

  BSYLTUsc : LINE=(MUWALL,WALL,BSYENDb,ENDSPS,SEQ06END,SEQ07BEG,&
                   DBLDL21,LTUsc,ENDLTUS,SEQ07END)

! ------------------------------------------------------------------------------
! SXR dumpline
! ------------------------------------------------------------------------------

  KQDMPB := -0.121513062007

  QDmp1B : QUAD, TYPE="3.25Q20", L=LQD/2, K1=KQDmpb, APER=rQD
  QDmp2B : QUAD, TYPE="3.25Q20", L=LQD/2, K1=KQDmpb, APER=rQD

  LBYDS    := 0.5   !effective straight length of dump soft bend 1.26D18.43
  GBYDS    := 0.032 !full gap of dump soft bend
  ABYDS    := 6.E-4
  LeffBYDS := LBYDS*ABYDS/(2*SIN(ABYDS/2)) !bend path length (m)

  BYDSSA : SBEN, TYPE="1.26D18.43", L=LeffBYDS/2, ANGLE=ABYDS/2, &
                 HGAP=GBYDS/2, E1=ABYDS/2, E2=0, FINT=0.5, FINTX=0.0, TILT
  BYDSSB : SBEN, TYPE="1.26D18.43", L=LeffBYDS/2, ANGLE=ABYDS/2, &
                 HGAP=GBYDS/2, E1=0, E2=ABYDS/2, FINT=0.0, FINTX=0.5, TILT

  LBdm    := 1.452 !effective vertical bend length of main dump bends - from J. Tanabe (m)
  GBdm    := 0.043 !full gap (m) - this is a full gap 'width' for these vert. dipoles
  ABdm0   := 0.02240073511 !angle per bend (rad)
  LeffBdm := LBdm*ABdm0/(2*SIN(ABdm0/2)) !bend path length (m)

  BYD1BA : SBEN, TYPE="1.69VD55.1", L=LeffBdm/2, ANGLE=ABdm0/2, HGAP=GBdm/2, &
                 E1=ABdm0/2, E2=0, FINT=0.57, FINTX=0.00, TILT
  BYD1BB : SBEN, TYPE="1.69VD55.1", L=LeffBdm/2, ANGLE=ABdm0/2, HGAP=GBdm/2, &
                 E1=0, E2=ABdm0/2, FINT=0.00, FINTX=0.57, TILT
  BYD2BA : SBEN, TYPE="1.69VD55.1", L=LeffBdm/2, ANGLE=ABdm0/2, HGAP=GBdm/2, &
                 E1=ABdm0/2, E2=0, FINT=0.57, FINTX=0.00, TILT
  BYD2BB : SBEN, TYPE="1.69VD55.1", L=LeffBdm/2, ANGLE=ABdm0/2, HGAP=GBdm/2, &
                 E1=0, E2=ABdm0/2, FINT=0.00, FINTX=0.57, TILT
  BYD3BA : SBEN, TYPE="1.69VD55.1", L=LeffBdm/2, ANGLE=ABdm0/2, HGAP=GBdm/2, &
                 E1=ABdm0/2, E2=0, FINT=0.57, FINTX=0.00, TILT
  BYD3BB : SBEN, TYPE="1.69VD55.1", L=LeffBdm/2, ANGLE=ABdm0/2, HGAP=GBdm/2, &
                 E1=0, E2=ABdm0/2 , FINT=0.00, FINTX=0.57, TILT

  LDS   := 0.300-0.026027*2
  LDSC  := 0.499225-0.026027+0.1124278-0.008032
  LDS1  := 0.3+0.0158763
  Ddmpv := -0.73352263654
  LPCPM : = 0.076

  DS     : DRIFT, L=LDS
  DSc    : DRIFT, L=LDSC
  DS1    : DRIFT, L=LDS1
  DD1a   : DRIFT, L=2.6512616
  DD1b   : DRIFT, L=6.8896877-LQD/2-Ddmpv+0.017094407653 +0.110945871327
  DD1f   : DRIFT, L=0.266645-0.017094407653
  dDD1c  := -0.330134190934E-6 !set Z at QDMP quads
  DD1cSA : DRIFT, L=0.3491529203258 +dDD1c
  DD1dSA : DRIFT, L=0.25-0.0079372
  DD1eSA : DRIFT, L=0.25
  DD1g   : DRIFT, L=0.0079372
  DD2a   : DRIFT, L=0.4+0.0634916+0.0115084
  DD2bSA : DRIFT, L=8.425460-LQD/2+Ddmpv-0.15-0.0634916-0.049684-0.0115084
  DD3a   : DRIFT, L=0.3+0.049684+0.001583
  DD3b   : DRIFT, L=0.3-0.001583-0.1447026
  DWSDUMPa : DRIFT, L=0.44156 !0.5-0.058217-0.000222-0.000001
  dDWSDUMP := 0.248126313572 !set Z at DUMPFACEB
  DWSDUMPb : DRIFT, L=2.038949 +dDWSDUMP
  DD3d   : DRIFT, L=1.5 !0.2441932
  DD3e   : DRIFT, L=0.0 !0.2857474-0.2441932

  RFBQDB : MONI, TYPE="@0,01_um_res"
  RFBDDB : MONI, TYPE="@1,01_um_res"

  XCDDB : HKIC,TYPE="class-5"

  YCDDB : VKIC,TYPE="class-5"

  OTRDMPB : PROF, TYPE="@1,OTR" !Dump screen

  WSDUMPB : WIRE

  PCPM1LB : ECOL, L=LPCPM/cos(3*ABdm0+ABYDS),XSIZE=0.025,YSIZE=0.025
  PCPM2LB : ECOL, L=LPCPM/cos(3*ABdm0+ABYDS),XSIZE=0.025,YSIZE=0.025

  IMBCS4b : IMON !BCS comparator toroid in dumpline after Y-bends

  BTM1LB    : INST !Burn-Through-Monitor behind PCPM1LB
  BTM2LB    : INST !Burn-Through-Monitor behind PCPM2LB
  DUMPFACEB : INST !entrance face of main e- dump
  BTMDUMPB  : INST !Burn-Through-Monitor of main e- dump

  MQDMPB    : MARK
  DMPendb   : MARK
  DBMARK38b : MARK !end of final undulator dump

  ARODMP1S := -0.174519678252
  ARODMP2S :=  0.174913455104

  RODMP1S : SROT, ANGLE=ARODMP1S
  RODMP2S : SROT, ANGLE=ARODMP2S

  DUMPLINEb : LINE=(SEQ10BEG,RODMP1S,&
    BYDSSA,BYDSSb,DS1,BYD1BA,BYD1BB,DS,BYD2BA,BYD2BB,DS,BYD3BA,BYD3BB,&
    DSc,PCPM1LB,BTM1LB,DD1a,DD1b,YCDDB,DD1f,PCPM2LB,BTM2LB,DD1cSA,&
    QDmp1B,QDmp1B,DD1dSA,RFBQDB,DD1g,MQDMPB,DD1eSA,&
    QDmp2B,QDmp2B,DD2a,XCDDB,DD2bSA,IMBCS4b,DD3a,RFBDDB,DD3b,OTRDMPB,&
    DWSDUMPa,WSDUMPB,DWSDUMPb,RODMP2S,DUMPFACEB,DD3d,DMPendb,BTMDUMPB,&
    DBMARK38b,ENDDMPS,SEQ10END)

! ==============================================================================
! LCLS HXR LTU and dump
! ==============================================================================

! ------------------------------------------------------------------------------
! HXR BSY
! ------------------------------------------------------------------------------

  KQ50Q3  := -0.134350955516
  KQ5     :=  0.082619342005
  KQ6     := -0.124643842723
  KQA0    :=  0.112991286968

  Q50Q3 : QUAD, TYPE="50Q3"      , L=0.143254, K1=KQ50Q3, APER=0.010325
  Q5    : QUAD, TYPE="0.91Q17.72", L=LQF/2   , K1=KQ5,    APER=rQF
  Q6    : QUAD, TYPE="0.91Q17.72", L=LQF/2   , K1=KQ6,    APER=rQF
  QA0   : QUAD, TYPE="0.91Q17.72", L=LQF/2   , K1=KQA0,   APER=rQF

  DBSY42  : DRIF, L=0.615959
  DBSY43  : DRIF, L=2.850589
  DBSY44  : DRIF, L=0.15875
  D2L     : DRIF, L=0.6096
  DM3     : DRIF, L=0.1524
  DST60L  : DRIF, L=0.6096
  DM4a    : DRIF, L=0.8816-DST60L[L]
  DM4b    : DRIF, L=8.622041-DM4a[L]
  DM4d    : DRIF, L=0.5
  DM4c    : DRIF, L=DM4b[L]-DM4d[L]-2.0
  DXCA0   : DRIF, L=0.31
  DYCA0   : DRIF, L=0.356220-0.076799
  DST61L  : DRIF, L=0.6096
  DM5     : DRIF, L=0.561379
  DM6     : DRIF, L=0.567588
  DMONI   : DRIF, L=0.009525

  DBSY52c : DRIF, L=0.5
  DBSY53a : DRIF, L=DRFB[L]
  DBSY53b : DRIF, L=0.7-DBSY53a[L]
  DBSY53c : DRIF, L=38.916540-DBSY53a[L]-DBSY53b[L]
  DBSY54a : DRIF, L=0.5
  DBSY54c : DRIF, L=0.5
  DBSY54b : DRIF, L=29.260056-DBSY54a[L]-DBSY54c[L]-DBSY42[L]-DBSY43[L] &
                   -DBSY44[L]
  DBSY55a : DRIF, L=0.5
  DBSY55c : DRIF, L=7.1
  DBSY55b : DRIF, L=11.281590-DBSY55c[L]-Lcoll-DRFB[L]

  RFBBSY39 : MONI, TYPE="@0,01_um_res"
  BPMBSY85 : MONI, TYPE="10_um_res"
  RFBBSY88 : MONI, TYPE="@0,01_um_res"
  BPMBSY92 : MONI, TYPE="10_um_res"

  XCBSY26 : HKIC
  XCA0    : HKIC

  YCBSY35 : VKIC
  YCBSY62 : VKIC
  YCA0    : VKIC

  BSYend  : MARK !FFTB side of muon plug wall: Z=3224.022426 (Z'=176.020508 m, X'=0.0 m, Y'=-0.821761 m)
  D10J    : MARK !D10
  D19A    : MARK !D10
  D10H    : MARK !D10
  FLNG    : MARK !D10

  D2      : INST !stopper
  ST60    : INST !backup stopper
  ST61    : INST !backup stopper
  DM60    : INST !"disaster" burn-through-monitor behind ST60

  CXQ6    : RCOL, L=Lcoll, XSIZE=4.3E-3, YSIZE=20E-3

  SPhBSY : LINE=(DBSY52c,&
    Q50Q3,Q50Q3,DBSY53a,RFBBSY39,DBSY53b,YCBSY35,DBSY53c,&
    Q5,BPMBSY85,Q5,DBSY54a,XCBSY26,DBSY54b,&
      D10J,DBSY42,D19A,DBSY43,D10H,DBSY44,FLNG,DBSY54c,&
    Q6,Q6,DRFB,RFBBSY88,DBSY55a,YCBSY62,DBSY55b,CXQ6,DBSY55c,D2L,D2,D2L,&
      DM3,DST60L,ST60,DST60L,DM4a,DM60,DM4c,CC31,DM4d,&
      XCA0,DXCA0,YCA0,DYCA0,DST61L,ST61,DST61L,DM5,&
    QA0,BPMBSY92,QA0,DM6,DMONI,DMONI,WALL,BSYend,ENDSPH,SEQ11END,SEQ12BEG)

! ------------------------------------------------------------------------------
! LCLS1H BSY
! ------------------------------------------------------------------------------

  KQ30801 :=  0.387375783858
  KQ50Q1  := -0.207065282623
  KQ50Q2  :=  0.125729323434

  Q50Q1 : QUAD, TYPE="50Q1", L=0.093671, K1=KQ50Q1, APER=0.010325
  Q50Q2 : QUAD, TYPE="50Q2", L=0.162151, K1=KQ50Q2, APER=0.010325

  LKIK   := 1.0601 ! kicker coil length per magnet (m) [41.737 in from SA-380-330-02, rev. 0]
  ABXKIK := 0.75E-3 *1E-10 !full angle =0.75E-3 when BXKIK1,2 are turned on

  BXKIK1A : SBEN, TYPE="XPULSED", L=LKIK/2, ANGLE=ABXKIK/4, HGAP=25.4E-3, &
                  E1=ABXKIK/4, E2=0, FINT=0.5, FINTX=0
  BXKIK1B : SBEN, TYPE="XPULSED", L=LKIK/2, ANGLE=ABXKIK/4, HGAP=25.4E-3, &
                  E1=0, E2=ABXKIK/4, FINT=0  , FINTX=0.5
  BXKIK2A : SBEN, TYPE="XPULSED", L=LKIK/2, ANGLE=ABXKIK/4, HGAP=25.4E-3, &
                  E1=ABXKIK/4, E2=0, FINT=0.5, FINTX=0
  BXKIK2B : SBEN, TYPE="XPULSED", L=LKIK/2, ANGLE=ABXKIK/4, HGAP=25.4E-3, &
                  E1=0, E2=ABXKIK/4, FINT=0  , FINTX=0.5

  DBXK   : DRIF, L=0.079176
  DAQ17a : DRIF, L=3.9709-LKIK-DBXK[L]

  DAQ17 : LINE=(DAQ17a,BXKIK1A,BXKIK1B,DBXK) !redefine DAQ17

  SPOILER : INST           !TDKIK dump spoiler
  TDKIK   : INST, L=0.6096 !horizontal off-axis in-line dump

  DBSY00  : DRIF, L=0.322128+0.140208+1.605264
  DBSY02a : DRIF, L=DBSY00[L]-LKIK-DBXK[L]
  DBSY02b : DRIF, L=0.0184
  DBSY01  : DRIF, L=0.140208
  DBSY50  : DRIF, L=7.035849-DBSY00[L]-DBSY02b[L]
  DBSY51a : DRIF, L=0.5
  DBSY51b : DRIF, L=1.11-DBSY01[L]-DBSY51a[L]
  DBSY51c : DRIF, L=8.04
  DBSY51e : DRIF, L=0.5
  DBSY51d : DRIF, L=29.0-DBSY01[L]-DBSY51a[L]-DBSY51b[L]-DBSY51c[L] &
                        -DBSY51e[L]-TDKIK[L]

  ABXSP1h  := ABLXSP/2+dABXSPh            !BXSP1h angle (rad) in HXR spreader
  LZBXSP1h := LBSP*COS(ABXSP1h/2)         !Z-length of BXSP1h (m)

  DBXSP1hb : DRIF, L=LBSP/2               !Z-length of BXSP1h 2nd half (m)
  DBXSP1ha : DRIF, L=LZBXSP1h-DBXSP1hb[L] !Z-length of BXSP1h 1st half (m)
  DBSY52a  : DRIF, L=0.2
  DBSY52b  : DRIF, L=29.0-DBSY52a[L]-DBSY52c[L]-LZBXSP1h

  BPMBSY1  : MONI, TYPE="10_um_res"
  BPMBSY29 : MONI, TYPE="10_um_res"

  XCBSY09 : HKIC

  YCBSY10 : VKIC

  BSYbeg   : MARK
  BEGBSY1  : MARK
  ENDBSY1  : MARK
  FFTBORGN : MARK
  S100     : MARK !station 100
  ZLIN15   : MARK !station-100 (or "S100"): Z=3048.0 (Z'=X'=Y'=0.0 m)

  BSY1 : LINE=(BEGBSY1,DBXK,BXKIK2A,BXKIK2B,DBSY02a,FFTBORGN,DBSY02b,&
    S100,ZLIN15,DBSY50,&
    Q50Q1,Q50Q1,DBSY01,BPMBSY1,DBSY51a,YCBSY10,DBSY51b,SPOILER,DBSY51c,TDKIK,&
    DBSY51d,XCBSY09,DBSY51e,&
    Q50Q2,Q50Q2,DBSY52a,BPMBSY29,DBSY52b,ENDBSY1)

  BSY : LINE=(BSYbeg,BSY1,DBXSP1ha,DBXSP1hb,SPhBSY)

! ------------------------------------------------------------------------------
! HXR VBEND
! ------------------------------------------------------------------------------

  KQVM1 := -0.421842075101 !-0.421821564052
  KQVM2 :=  0.306555381905 ! 0.306529847009
  KQVM3 :=  0.706426533973 ! 0.706426679719
  KQVM4 := -0.673301413284 !-0.673301568389

  QVM1 : QUAD, TYPE="0.91Q17.72", L=LQF/2, K1= KQVM1, APER=rQF
  QVM2 : QUAD, TYPE="0.91Q17.72", L=LQF/2, K1= KQVM2, APER=rQF
  QVM3 : QUAD, TYPE="0.91Q17.72", L=LQF/2, K1= KQVM3, APER=rQF
  QVM4 : QUAD, TYPE="0.91Q17.72", L=LQF/2, K1= KQVM4, APER=rQF

  KQVB := -0.42223036711

  QVB1 : QUAD, TYPE="0.91Q17.72", L=LQF/2, K1= KQVB,  APER=rQF
  QVB2 : QUAD, TYPE="0.91Q17.72", L=LQF/2, K1=-KQVB,  APER=rQF
  QVB3 : QUAD, TYPE="0.91Q17.72", L=LQF/2, K1= KQVB,  APER=rQF

  BY1A : SBEN, TYPE="3D39", L=LVB/2, ANGLE=AVB/2, HGAP=GVB/2, &
               E1=AVB/2, FINT=0.5, FINTX=0, TILT
  BY1B : SBEN, TYPE="3D39", L=LVB/2, ANGLE=AVB/2, HGAP=GVB/2, &
               FINT=0, E2=AVB/2, FINTX=0.5, TILT
  BY2A : SBEN, TYPE="3D39", L=LVB/2, ANGLE=AVB/2, HGAP=GVB/2, &
               E1=AVB/2, FINT=0.5, FINTX=0, TILT
  BY2B : SBEN, TYPE="3D39", L=LVB/2, ANGLE=AVB/2, HGAP=GVB/2, &
               FINT=0, E2=AVB/2, FINTX=0.5, TILT

  DVB1      : DRIF, L=8.0-2*0.3125, TYPE="CSR"
  DVB2m80cm : DRIF, L=4.0-0.4-0.4, TYPE="CSR"
  DVB2      : DRIF, L=4.0, TYPE="CSR"
  DVB1m40cm : DRIF, L=8.0-0.4-2*0.3125, TYPE="CSR"
  DVB25cmc  : DRIF, L=0.5-0.25
  DVBem25cm : DRIF, L=0.5-0.25 , TYPE="CSR"
  DVBem15cm : DRIF, L=0.150+0.00381+0.018803, TYPE="CSR"
  DQVM2a    : DRIF, L=0.2494888
  DQVM2b    : DRIF, L=DQVM2[L]-DQVM2a[L]

  BPMVM1 : MONI, TYPE="05_um_res"
  BPMVM2 : MONI, TYPE="05_um_res"
  BPMVM3 : MONI, TYPE="05_um_res"
  BPMVM4 : MONI, TYPE="05_um_res"
  BPMVB1 : MONI, TYPE="05_um_res"
  BPMVB2 : MONI, TYPE="05_um_res"
  BPMVB3 : MONI, TYPE="05_um_res"

  XCVM2 : HKIC,TYPE="type-4"
  XCVM3 : HKIC,TYPE="type-4"

  YCVM1 : VKIC,TYPE="class-5c" !calibrated to <1%
  YCVB1 : VKIC,TYPE="class-4"
  YCVB3 : VKIC,TYPE="class-4"
  YCVM4 : VKIC,TYPE="class-5"

  IM31   : IMON !comparator with IM36 (existing in LCLS1 -- not part of LCLS2)
  IMBCS1 : IMON !comparator with IMBCS2 (existing in LCLS1 -- not part of LCLS2)

  WSVM1 : WIRE !per AOES request (J. Stieber, A. Cedillos)

  VBIN    : MARK !start of vert. bend system: Z=3226.684266 (Z'=178.682319 m, X'=0.0 m, Y'=-0.834188 m)
  VBOUT   : MARK !end of vert. bend system: Z=3252.866954 (Z'=204.865007 m, X'= 0.0 m, Y'=-0.895305 m)
  CNTLT1H : MARK, TYPE="CENTER" !ELEGANT will correct the orbit here for CSR-steering

  VBEND : LINE=(VBin,&
                BY1A,BY1B,DVB1,&
                QVB1,BPMVB1,QVB1,D40cmC,YCVB1,DVB2m80cm,D40cmC,&
                QVB2,BPMVB2,QVB2,DVB2, &
                QVB3,BPMVB3,QVB3,D40cmC,YCVB3,DVB1m40cm,&
                BY2A,BY2B,CNTLT1H,VBout)

  VBSYS : LINE=(BEGLTUH,DYCVM1,YCVM1,DQVM1,&
                QVM1,BPMVM1,QVM1,DQVM2a,WSVM1,DQVM2b,&
                QVM2,BPMVM2,QVM2,DXCVM2,XCVM2,DVB25cm,&
                VBEND,DVB25cmc,XCVM3,D25cm,&
                QVM3,BPMVM3,QVM3,DVBem25cm,YCVM4,D25cm,&
                QVM4,BPMVM4,QVM4,DVBem15cm,IM31,D10cmb,IMBCS1,D25cma)

! ------------------------------------------------------------------------------
! HXR R56 compensating chicanes
! - use series approximation for sinc(x)=sin(x)/x to allow zero field
! ------------------------------------------------------------------------------

! Brhof  : beam rigidity at chicane (kG-m)
! GBCC   : gap height (m)
! ZBCC   : magnet Z-length (m)
! ZDCC   : Z-space between magnets (m)
! BBX..  : chicane bend field (kG) at 4 GeV
! ABX..  : chicane bend angle (rad)
! LBX..  : chicane bend path length (m)
! ABX..S : "short" half chicane bend angle (rad)
! ABX..L : "long" half chicane bend angle (rad)
! LBX..S : "short" half chicane bend path length (m)
! LBX..L : "long" half chicane bend path length (m)

  BBX31    := 0.0
  ARG31    := ZBCC*BBX31/Brhof
  ABX31    := ASIN(ARG31)
  ABX31_2  := ABX31*ABX31
  ABX31_4  := ABX31_2*ABX31_2
  ABX31_6  := ABX31_4*ABX31_2
  SINC31   := 1-ABX31_2/6+ABX31_4/120-ABX31_6/5040
  LBX31    := ZBCC/SINC31
  ABX31S   := ASIN(ARG31/2)
  ABX31S_2 := ABX31S*ABX31S
  ABX31S_4 := ABX31S_2*ABX31S_2
  ABX31S_6 := ABX31S_4*ABX31S_2
  SINC31S  := 1-ABX31S_2/6+ABX31S_4/120-ABX31S_6/5040
  LBX31S   := ZBCC/(2*SINC31S)
  ABX31L   := ABX31-ABX31S
  LBX31L   := LBX31-LBX31S

  BCX311A : SBEN, TYPE="@0,R56", L=LBX31S, ANGLE=+ABX31S, E1=0,      &
                  HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX311B : SBEN, TYPE="@0,R56", L=LBX31L, ANGLE=+ABX31L, E2=+ABX31, &
                  HGAP=GBCC/2, FINT=0, FINTX=0.5
  BCX312A : SBEN, TYPE="@0,R56", L=LBX31L, ANGLE=-ABX31L, E1=-ABX31, &
                  HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX312B : SBEN, TYPE="@0,R56", L=LBX31S, ANGLE=-ABX31S, E2=0,      &
                  HGAP=GBCC/2, FINT=0, FINTX=0.5
  BCX313A : SBEN, TYPE="@0,R56", L=LBX31S, ANGLE=-ABX31S, E1=0,      &
                  HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX313B : SBEN, TYPE="@0,R56", L=LBX31L, ANGLE=-ABX31L, E2=-ABX31, &
                  HGAP=GBCC/2, FINT=0, FINTX=0.5
  BCX314A : SBEN, TYPE="@0,R56", L=LBX31L, ANGLE=+ABX31L, E1=+ABX31, &
                  HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX314B : SBEN, TYPE="@0,R56", L=LBX31S, ANGLE=+ABX31S, E2=0,      &
                  HGAP=GBCC/2, FINT=0, FINTX=0.5

  DCC31o : DRIF, L=ZDCC/COS(ABX31), TYPE="CSR"
  DCC31i : DRIF, L=ZDCC           , TYPE="CSR"

  CC31   : LINE=(        &
    BCX311A,BCX311B,DCC31o,&
    BCX312A,BCX312B,DCC31i,&
    BCX313A,BCX313B,DCC31o,&
    BCX314A,BCX314B)

  BBX32    := 2.3628*SQRT(2.0)
  ARG32    := ZBCC*BBX32/Brhof
  ABX32    := ASIN(ARG32)
  ABX32_2  := ABX32*ABX32
  ABX32_4  := ABX32_2*ABX32_2
  ABX32_6  := ABX32_4*ABX32_2
  SINC32   := 1-ABX32_2/6+ABX32_4/120-ABX32_6/5040
  LBX32    := ZBCC/SINC32
  ABX32S   := ASIN(ARG32/2)
  ABX32S_2 := ABX32S*ABX32S
  ABX32S_4 := ABX32S_2*ABX32S_2
  ABX32S_6 := ABX32S_4*ABX32S_2
  SINC32S  := 1-ABX32S_2/6+ABX32S_4/120-ABX32S_6/5040
  LBX32S   := ZBCC/(2*SINC32S)
  ABX32L   := ABX32-ABX32S
  LBX32L   := LBX32-LBX32S

  BCX321A : SBEN, TYPE="@0,R56", L=LBX32S, ANGLE=+ABX32S, E1=0,      &
                  HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX321B : SBEN, TYPE="@0,R56", L=LBX32L, ANGLE=+ABX32L, E2=+ABX32, &
                  HGAP=GBCC/2, FINT=0, FINTX=0.5
  BCX322A : SBEN, TYPE="@0,R56", L=LBX32L, ANGLE=-ABX32L, E1=-ABX32, &
                  HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX322B : SBEN, TYPE="@0,R56", L=LBX32S, ANGLE=-ABX32S, E2=0,      &
                  HGAP=GBCC/2, FINT=0, FINTX=0.5
  BCX323A : SBEN, TYPE="@0,R56", L=LBX32S, ANGLE=-ABX32S, E1=0,      &
                  HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX323B : SBEN, TYPE="@0,R56", L=LBX32L, ANGLE=-ABX32L, E2=-ABX32, &
                  HGAP=GBCC/2, FINT=0, FINTX=0.5
  BCX324A : SBEN, TYPE="@0,R56", L=LBX32L, ANGLE=+ABX32L, E1=+ABX32, &
                  HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX324B : SBEN, TYPE="@0,R56", L=LBX32S, ANGLE=+ABX32S, E2=0,      &
                  HGAP=GBCC/2, FINT=0, FINTX=0.5

  DCC32o : DRIF, L=ZDCC/COS(ABX32), TYPE="CSR"
  DCC32i : DRIF, L=ZDCC           , TYPE="CSR"

  CC32   : LINE=(        &
    BCX321A,BCX321B,DCC32o,&
    BCX322A,BCX322B,DCC32i,&
    BCX323A,BCX323B,DCC32o,&
    BCX324A,BCX324B)

  BBX35    := 2.3628
  ARG35    := ZBCC*BBX35/Brhof
  ABX35    := ASIN(ARG35)
  ABX35_2  := ABX35*ABX35
  ABX35_4  := ABX35_2*ABX35_2
  ABX35_6  := ABX35_4*ABX35_2
  SINC35   := 1-ABX35_2/6+ABX35_4/120-ABX35_6/5040
  LBX35    := ZBCC/SINC35
  ABX35S   := ASIN(ARG35/2)
  ABX35S_2 := ABX35S*ABX35S
  ABX35S_4 := ABX35S_2*ABX35S_2
  ABX35S_6 := ABX35S_4*ABX35S_2
  SINC35S  := 1-ABX35S_2/6+ABX35S_4/120-ABX35S_6/5040
  LBX35S   := ZBCC/(2*SINC35S)
  ABX35L   := ABX35-ABX35S
  LBX35L   := LBX35-LBX35S

  BCX351A : SBEN, TYPE="@0,R56", L=LBX35S, ANGLE=+ABX35S, E1=0,      &
                  HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX351B : SBEN, TYPE="@0,R56", L=LBX35L, ANGLE=+ABX35L, E2=+ABX35, &
                  HGAP=GBCC/2, FINT=0, FINTX=0.5
  BCX352A : SBEN, TYPE="@0,R56", L=LBX35L, ANGLE=-ABX35L, E1=-ABX35, &
                  HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX352B : SBEN, TYPE="@0,R56", L=LBX35S, ANGLE=-ABX35S, E2=0,      &
                  HGAP=GBCC/2, FINT=0, FINTX=0.5
  BCX353A : SBEN, TYPE="@0,R56", L=LBX35S, ANGLE=-ABX35S, E1=0,      &
                  HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX353B : SBEN, TYPE="@0,R56", L=LBX35L, ANGLE=-ABX35L, E2=-ABX35, &
                  HGAP=GBCC/2, FINT=0, FINTX=0.5
  BCX354A : SBEN, TYPE="@0,R56", L=LBX35L, ANGLE=+ABX35L, E1=+ABX35, &
                  HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX354B : SBEN, TYPE="@0,R56", L=LBX35S, ANGLE=+ABX35S, E2=0,      &
                  HGAP=GBCC/2, FINT=0, FINTX=0.5

  DCC35o : DRIF, L=ZDCC/COS(ABX35), TYPE="CSR"
  DCC35i : DRIF, L=ZDCC           , TYPE="CSR"

  CC35   : LINE=(        &
    BCX351A,BCX351B,DCC35o,&
    BCX352A,BCX352B,DCC35i,&
    BCX353A,BCX353B,DCC35o,&
    BCX354A,BCX354B)

  BBX36    := 2.3628
  ARG36    := ZBCC*BBX36/Brhof
  ABX36    := ASIN(ARG36)
  ABX36_2  := ABX36*ABX36
  ABX36_4  := ABX36_2*ABX36_2
  ABX36_6  := ABX36_4*ABX36_2
  SINC36   := 1-ABX36_2/6+ABX36_4/120-ABX36_6/5040
  LBX36    := ZBCC/SINC36
  ABX36S   := ASIN(ARG36/2)
  ABX36S_2 := ABX36S*ABX36S
  ABX36S_4 := ABX36S_2*ABX36S_2
  ABX36S_6 := ABX36S_4*ABX36S_2
  SINC36S  := 1-ABX36S_2/6+ABX36S_4/120-ABX36S_6/5040
  LBX36S   := ZBCC/(2*SINC36S)
  ABX36L   := ABX36-ABX36S
  LBX36L   := LBX36-LBX36S

  BCX361A : SBEN, TYPE="@0,R56", L=LBX36S, ANGLE=+ABX36S, E1=0,      &
                  HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX361B : SBEN, TYPE="@0,R56", L=LBX36L, ANGLE=+ABX36L, E2=+ABX36, &
                  HGAP=GBCC/2, FINT=0, FINTX=0.5
  BCX362A : SBEN, TYPE="@0,R56", L=LBX36L, ANGLE=-ABX36L, E1=-ABX36, &
                  HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX362B : SBEN, TYPE="@0,R56", L=LBX36S, ANGLE=-ABX36S, E2=0,      &
                  HGAP=GBCC/2, FINT=0, FINTX=0.5
  BCX363A : SBEN, TYPE="@0,R56", L=LBX36S, ANGLE=-ABX36S, E1=0,      &
                  HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX363B : SBEN, TYPE="@0,R56", L=LBX36L, ANGLE=-ABX36L, E2=-ABX36, &
                  HGAP=GBCC/2, FINT=0, FINTX=0.5
  BCX364A : SBEN, TYPE="@0,R56", L=LBX36L, ANGLE=+ABX36L, E1=+ABX36, &
                  HGAP=GBCC/2, FINT=0.5, FINTX=0
  BCX364B : SBEN, TYPE="@0,R56", L=LBX36S, ANGLE=+ABX36S, E2=0,      &
                  HGAP=GBCC/2, FINT=0, FINTX=0.5

  DCC36o : DRIF, L=ZDCC/COS(ABX36), TYPE="CSR"
  DCC36i : DRIF, L=ZDCC           , TYPE="CSR"

  CC36   : LINE=(        &
    BCX361A,BCX361B,DCC36o,&
    BCX362A,BCX362B,DCC36i,&
    BCX363A,BCX363B,DCC36o,&
    BCX364A,BCX364B)

! ------------------------------------------------------------------------------
! HXR dogleg
! ------------------------------------------------------------------------------

  KQDL := 0.437183970154

  QDL31 : QUAD, TYPE="1.26Q12", L=LQA/2, K1=KQDL, APER=rQA
  QDL32 : QUAD, TYPE="1.26Q12", L=LQA/2, K1=KQDL, APER=rQA
  QDL33 : QUAD, TYPE="1.26Q12", L=LQA/2, K1=KQDL, APER=rQA
  QDL34 : QUAD, TYPE="1.26Q12", L=LQA/2, K1=KQDL, APER=rQA

  KCQ31 := 0
  KCQ32 := 0

  CQ31 : QUAD, TYPE="1.259Q3.5", L=LQx/2, K1=KCQ31, APER=rQx
  CQ32 : QUAD, TYPE="1.259Q3.5", L=LQx/2, K1=KCQ32, APER=rQx

  KQT1 :=-0.420937827343
  KQT2 := 0.839614778043

  QT11 : QUAD, TYPE="0.91Q17.72", L=LQF/2, K1=KQT1, APER=rQF
  QT12 : QUAD, TYPE="0.91Q17.72", L=LQF/2, K1=KQT2, APER=rQF
  QT13 : QUAD, TYPE="0.91Q17.72", L=LQF/2, K1=KQT1, APER=rQF
  QT21 : QUAD, TYPE="0.91Q17.72", L=LQF/2, K1=KQT1, APER=rQF
  QT22 : QUAD, TYPE="0.91Q17.72", L=LQF/2, K1=KQT2, APER=rQF
  QT23 : QUAD, TYPE="0.91Q17.72", L=LQF/2, K1=KQT1, APER=rQF
  QT31 : QUAD, TYPE="0.91Q17.72", L=LQF/2, K1=KQT1, APER=rQF
  QT32 : QUAD, TYPE="0.91Q17.72", L=LQF/2, K1=KQT2, APER=rQF
  QT33 : QUAD, TYPE="0.91Q17.72", L=LQF/2, K1=KQT1, APER=rQF
  QT41 : QUAD, TYPE="0.91Q17.72", L=LQF/2, K1=KQT1, APER=rQF
  QT42 : QUAD, TYPE="0.91Q17.72", L=LQF/2, K1=KQT2, APER=rQF
  QT43 : QUAD, TYPE="0.91Q17.72", L=LQF/2, K1=KQT1, APER=rQF

  LB3    :=  2.623                   !4D102.36T effective length (m)
  GB3    :=  0.023                   !4D102.36T gap height (m)
  AB3P   :=  0.499999821952*RADDEG
  AB3M   := -AB3P
  LeffB3 := LB3*AB3P/(2*SIN(AB3P/2)) !full bend eff. path length (m)

  BX31A : SBEN, TYPE="4D102.36T"    , L=LeffB3/2 , ANGLE=AB3P/2, HGAP=GB3/2, &
                E1=AB3P/2, E2=0     , FINT=0.5, FINTX=0.0
  BX31B : SBEN, TYPE="4D102.36T"    , L=LeffB3/2 , ANGLE=AB3P/2, HGAP=GB3/2, &
                E1=0     , E2=AB3P/2, FINT=0.0, FINTX=0.5
  BX32A : SBEN, TYPE="4D102.36T"    , L=LeffB3/2 , ANGLE=AB3P/2, HGAP=GB3/2, &
                E1=AB3P/2, E2=0     , FINT=0.5, FINTX=0.0
  BX32B : SBEN, TYPE="4D102.36T"    , L=LeffB3/2 , ANGLE=AB3P/2, HGAP=GB3/2, &
                E1=0     , E2=AB3P/2, FINT=0.0, FINTX=0.5

  BX35A  : SBEN, TYPE="4D102.36T"   , L=LeffB3/2 , ANGLE=AB3M/2, HGAP=GB3/2, &
                 E1=AB3M/2, E2=0    , FINT=0.5, FINTX=0.0
  BX35B  : SBEN, TYPE="4D102.36T"   , L=LeffB3/2 , ANGLE=AB3M/2, HGAP=GB3/2, &
                 E1=0    , E2=AB3M/2, FINT=0.0, FINTX=0.5
  BX36A  : SBEN, TYPE="4D102.36T"   , L=LeffB3/2 , ANGLE=AB3M/2, HGAP=GB3/2, &
                 E1=AB3M/2, E2=0    , FINT=0.5, FINTX=0.0
  BX36B  : SBEN, TYPE="4D102.36T"   , L=LeffB3/2 , ANGLE=AB3M/2, HGAP=GB3/2, &
                 E1=0    , E2=AB3M/2, FINT=0.0, FINTX=0.5

! single beam dumper vertical kicker (removed)

  DBYKIK1 : DRIF, L=LKIK
  DBYKIK2 : DRIF, L=LKIK

  LPCTDKIK := 0.8128 !length of each of 4 muon protection collimator after TDKIK (0.875" ID w/pipe)
  LSPONT   := 1.5 !length of possible spontaneous undulator (<=5 m now that TDKIK is also there)

  DCB32    : DRIF, L=0.8
  DDL10w   : DRIF, L=10.65494465, TYPE="CSR"
  DWSDL31a : DRIF, L=0.096237
  DWSDL31b : DRIF, L=0.3
  DDL10x   : DRIF, L=0.6, TYPE="CSR"
  D32cmb   : DRIF, L=0.6
  D31A     : DRIF, L=0.6
  D31B     : DRIF, L=0.4-DRFB[L]
  DDL10em80cm : DRIF, L=10.5221285-0.1, TYPE="CSR"
  DX33B    : DRIF, L=0.5
  DX33A    : DRIF, L=LB3-DX33B[L]-2.0
  DX34B    : DRIF, L=0.5
  DX34A    : DRIF, L=LB3-DX34B[L]-2.0
  DX37B    : DRIF, L=0.5
  DX37A    : DRIF, L=LB3-DX37B[L]-2.0
  DX38A    : DRIF, L=LB3/2
  DX38B    : DRIF, L=LB3/2
  DDL1a    : DRIF, L=5.820626-LKIK/2
  DDL1d    : DRIF, L=0.609226-LKIK/2
  DDL1e    : DRIF, L=5.421642-LKIK/2
  D32A     : DRIF, L=0.47046
  D32B     : DRIF, L=0.47046
  D33A     : DRIF, L=0.39
  D33B     : DRIF, L=0.32
  D34A     : DRIF, L=0.56
  D34B     : DRIF, L=0.32
  DSPLR    : DRIF, L=0.43036
  DDL1cm40cm : DRIF, L=6.03036-0.43036-0.6096/2
  D30cma   : DRIF, L=0.257426
  DPC1     : DRIF, L=0.266697
  DPC2     : DRIF, L=0.266697
  DPC3     : DRIF, L=0.266697
  DPC4     : DRIF, L=0.266697+0.339613-0.8128/2
  DSPONTUA : DRIF, L=LSPONT/2
  DSPONTUB : DRIF, L=LSPONT/2
  DDL1dm30cm : DRIF, L=0.379160-0.262228 !allow possible new spontaneous undulator here
  DCQ31a   : DRIF, L=6.037182, TYPE="CSR"
  DCQ31b   : DRIF, L=5.811658, TYPE="CSR"
  D29cma   : DRIF, L=0.29+0.023878+0.1000244+0.1704396
  D32cmd   : DRIF, L=0.32-0.056221+0.4000244+0.2404381
  DCQ32a   : DRIF, L=5.4817585, TYPE="CSR"
  DCB36    : DRIF, L=2.7
  DCQ32b   : DRIF, L=6.0371785-DCB36[L]-Lcoll, TYPE="CSR"
  D30cm    : DRIF, L=0.30
  DDL10m70cm : DRIF, L=12.86072-0.4-0.3-0.09+0.00046
  DDL10um25cm : DRIF, L=0.5-0.25-0.2399776+0.2404376
  DDL10v   : DRIF, L=12.86072-0.5
  DDL20e   : DRIF, L=0.5, TYPE="CSR"
  DDL30em40cm : DRIF, L=1.0-0.4-0.090013, TYPE="CSR"
  D40cmb   : DRIF, L=0.40+0.090013
  D46cm    : DRIF, L=(1.0-Lcoll)/2
  DDL20    : DRIF, L=0.5
  DDL30em40cma : DRIF, L=1.0-0.4-0.090013+0.000473, TYPE="CSR"
  D40cmd   : DRIF, L=0.40+0.090013-0.000473
  D40cme   : DRIF, L=0.40+0.090013+0.010447
  DDL30em40cmb : DRIF, L=1.0-0.4-0.090013-0.010447, TYPE="CSR"
  DDL30em40cmc : DRIF, L=1.0-0.4-0.090013+0.065013, TYPE="CSR"
  D40cmf   : DRIF, L=0.40+0.090013-0.065013

  RFBDL1 : MONI, TYPE="@0,01_um_res"
  BPMDL2 : MONI, TYPE="05_um_res"
  BPMDL3 : MONI, TYPE="05_um_res"
  BPMDL4 : MONI, TYPE="05_um_res"
  BPMT12 : MONI, TYPE="05_um_res"
  BPMT22 : MONI, TYPE="05_um_res"
  BPMT32 : MONI, TYPE="05_um_res"
  BPMT42 : MONI, TYPE="05_um_res"

  BPMDL1 : MONI, TYPE="05_um_res" !existing LCLS1 device -- not part of LCLS2

  XCDL1  : HKIC,TYPE="class-4"
  XCDL2  : HKIC,TYPE="class-4"
  XCDL3  : HKIC,TYPE="class-4"
  XCQT12 : HKIC,TYPE="class-5"
  XCQT22 : HKIC,TYPE="class-5"
  XCQT42 : HKIC,TYPE="class-5"

  YCDL1  : VKIC,TYPE="class-4"
  YCDL2  : VKIC,TYPE="class-4"
  YCDL3  : VKIC,TYPE="class-4"
  YCDL4  : VKIC,TYPE="class-4"
  YCQT12 : VKIC,TYPE="class-5"
  YCQT21 : VKIC,TYPE="class-5"

  XCQT32 : HKIC,TYPE="class-5f" !fast-feedback (loop-4)
  XCDL4  : HKIC,TYPE="class-5f" !fast-feedback (loop-4)

  YCQT32 : VKIC,TYPE="class-5f" !fast-feedback (loop-4)
  YCQT42 : VKIC,TYPE="class-5f" !fast-feedback (loop-4)

  DSPOILER : MARK
  DTDKIK   : DRIF, L=0.6096

  WSDL31 : WIRE, TYPE="@0"

  OTR30 : PROF, TYPE="OTR" !LTU slice energy spread (90 deg from TCAV3)

  CEDL1    : RCOL, L=Lcoll, XSIZE=2.3E-3, YSIZE=20E-3
  CEDL3    : RCOL, L=Lcoll, XSIZE=2.3E-3, YSIZE=20E-3

  CYBX32   : RCOL, L=Lcoll, YSIZE=3.8E-3, XSIZE=20E-3
  CXQT22   : RCOL, L=Lcoll, XSIZE=6.2E-3, YSIZE=20E-3
  CYBX36   : RCOL, L=Lcoll, YSIZE=3.5E-3, XSIZE=20E-3

 !PCTDKIK1 : ECOL,L=LPCTDKIK,XSIZE=11.1125E-3,YSIZE=11.1125E-3 !muon collimator after SBD TDKIK in-line dump
 !PCTDKIK2 : ECOL,L=LPCTDKIK,XSIZE=11.1125E-3,YSIZE=11.1125E-3 !muon collimator after SBD TDKIK in-line dump
 !PCTDKIK3 : ECOL,L=LPCTDKIK,XSIZE=11.1125E-3,YSIZE=11.1125E-3 !muon collimator after SBD TDKIK in-line dump
 !PCTDKIK4 : ECOL,L=LPCTDKIK,XSIZE=11.1125E-3,YSIZE=11.1125E-3 !muon collimator after SBD TDKIK in-line dump

  DPCTDKIK : DRIF,L=LPCTDKIK

  IMBCS2 : IMON !comparator with IMBCS1 (existing in LCLS1 -- not part of LCLS2)

  DL23BEG : MARKER
  CNTWIGH : MARK, TYPE="CENTER" !ELEGANT will correct the orbit here for CSR-steering
  CNTLT2H : MARK, TYPE="CENTER" !ELEGANT will correct the orbit here for CSR-steering
  CNTLT3H : MARK, TYPE="CENTER" !ELEGANT will correct the orbit here for CSR-steering
  SS1     : MARK
  SS3     : MARK

  DBMARK34 : MARK !entrance of BX31

! wiggler for sync. light energy diagnostic (described in SLAC-PUB-3945)
! based on FACET optics model (M. Woodley)
! (series approximation for sinc(x)=sin(x)/x to enable setting with x=0)

  BWGh  := 1.E-12                  !wiggler bend field (kG)
  AWGh  := ASIN(BWGh*ZWHP/(Ef*Cb)) !bend angle per half-pole
  AWGh2 := AWGh*AWGh
  AWGh4 := AWGh2*AWGh2
  AWGh6 := AWGh4*AWGh2
  SINCh := 1-AWGh2/6+AWGh4/120-AWGh6/5040
  LWGh  := ZWHP/SINCh              !half-pole path length

  AWG1h  := ASIN(SIN(AWGh)/2) !"short half" half-pole bend angle
  AWG1h2 := AWG1h*AWG1h
  AWG1h4 := AWG1h2*AWG1h2
  AWG1h6 := AWG1h4*AWG1h2
  SINC1h := 1-AWG1h2/6+AWG1h4/120-AWG1h6/5040
  LWG1h  := (ZWHP/2)/SINC1h   !"short half" half-pole path length

  AWG2h  := AWGh-AWG1h        !"long half" half-pole bend angle
  LWG2h  := LWGh-LWG1h        !"long half" half-pole path length

  WIG1HA : SBEN, TYPE="@3,SLC wiggler", L=LWG1h , HGAP=GWIG/2, ANGLE=AWG1h, &
                 E1=0    , E2=0       , FINT=0.5, FINTX=0    , TILT
  WIG1HB : SBEN, TYPE="@3,SLC wiggler", L=LWG2h , HGAP=GWIG/2, ANGLE=AWG2h, &
                 E1=0    , E2=AWGh    , FINT=0  , FINTX=0.5  , TILT
  WIG2HA : SBEN, TYPE="@3,SLC wiggler", L=LWGh  , HGAP=GWIG/2, ANGLE=-AWGh, &
                 E1=-AWGh, E2=0       , FINT=0.5, FINTX=0    , TILT
  WIG2HB : SBEN, TYPE="@3,SLC wiggler", L=LWGh  , HGAP=GWIG/2, ANGLE=-AWGh, &
                 E1=0    , E2=-AWGh   , FINT=0  , FINTX=0.5  , TILT
  WIG3HA : SBEN, TYPE="@3,SLC wiggler", L=LWG2h , HGAP=GWIG/2, ANGLE=AWG2h, &
                 E1=AWGh , E2=0       , FINT=0.5, FINTX=0    , TILT
  WIG3HB : SBEN, TYPE="@3,SLC wiggler", L=LWG1h , HGAP=GWIG/2, ANGLE=AWG1h, &
                 E1=0    , E2=0       , FINT=0  , FINTX=0.5  , TILT

  LDWGh := ZDWG/COS(AWGh)

  DWGh : DRIF, L=LDWGh

  YCWIGh : VKIC, TYPE="wiggler trim"

  EWIGh : LINE=(WIG1HA,WIG1HB,DWGh,WIG2HA,YCWIGh,WIG2HB,DWGh,WIG3HA,WIG3HB,&
                CNTWIGH)

  DL21 : LINE=(DBMARK34,&
               BX31A,BX31B,DDL10w,DWSDL31a,WSDL31,DWSDL31b,YCDL1,DDL10x,&
                 XCDL1,D32cmb,CEDL1,D31A,&
               QDL31,BPMDL1,QDL31,DRFB,RFBDL1,D31B,EWIGh,DDL10em80cm,&
                 CYBX32,DCB32,&
               BX32A,BX32B,CNTLT2H)

  DL22 : LINE=(DX33A,CC32,DX33B,DDL1a,&
               DBYKIK1,DDL1d,DDL1d,DBYKIK2,DDL1e,XCDL2,D32A,&
               QDL32,BPMDL2,QDL32,D32B,YCDL2,DSPLR,DSPOILER,DDL1cm40cm,&
               DTDKIK,D30cma,&
               DPCTDKIK,DPC1,DPCTDKIK,DPC2,DPCTDKIK,DPC3,DPCTDKIK,DPC4,&
               DSPONTUA,DSPONTUB,DDL1dm30cm,DX34A,CC35,DX34B)

  DL23 : LINE=(DL23BEG,&
               BX35A,BX35B,DCQ31a,CQ31,CQ31,DCQ31b,OTR30,D29cma,XCDL3,D33A,&
               QDL33,BPMDL3,QDL33,D33B,YCDL3,D32cmd,CEDL3,DCQ32a, &
               CQ32,CQ32,DCQ32b,CYBX36,DCB36,&
               BX36A,BX36B,CNTLT3H)

  DL24 : LINE=(DX37A,CC36,DX37B,D30cm,IMBCS2,DDL10m70cm,XCDL4,D34A,&
               QDL34,BPMDL4,QDL34,D34B,YCDL4,DDL10um25cm,DDL10v,DX38A,DX38B)

  TRIP1 : LINE=(DDL20e,&
                QT11,QT11,DDL30em40cm,XCQT12,D40cmb,&
                QT12,BPMT12,QT12,D40cmb,YCQT12,DDL30em40cm,&
                QT13,QT13,DDL20e)

  TRIP2 : LINE=(YCQT21,DDL20,&
                QT21,QT21,DDL30em40cm,XCQT22,D40cmb,&
                QT22,BPMT22,QT22,D46cm,CXQT22,D46cm,&
                QT23,QT23,DDL20)

  TRIP3 : LINE=(DDL20e,&
                QT31,QT31,DDL30em40cma,XCQT32,D40cmd,&
                QT32,BPMT32,QT32,D40cme,YCQT32,DDL30em40cmb,&
                QT33,QT33,DDL20e)

  TRIP4 : LINE=(DDL20,&
                QT41,QT41,DDL30em40cmc,XCQT42,D40cmf,&
                QT42,BPMT42,QT42,D40cmb,YCQT42,DDL30em40cm,&
                QT43,QT43,DDL20)

  DOGLG2A : LINE=(DL21,TRIP1,SS1,DL22,TRIP2)

  DOGLG2B : LINE=(DL23,TRIP3,SS3,DL24,TRIP4)

! ------------------------------------------------------------------------------
! HXR emittance diagnostic
! ------------------------------------------------------------------------------

  KQEM1 := -0.387036041613
  KQEM2 :=  0.429975454622
  KQEM3 := -0.595670990775
  KQEM4 :=  0.419862367114

  QEM1  : QUAD, TYPE="1.26Q12"  , L=LQA/2, K1=KQEM1, APER=rQA
  QEM2  : QUAD, TYPE="1.26Q12"  , L=LQA/2, K1=KQEM2, APER=rQA
  QEM3  : QUAD, TYPE="1.26Q12"  , L=LQA/2, K1=KQEM3, APER=rQA
  QEM3V : QUAD, TYPE="1.259Q3.5", L=LQx/2, K1=0    , APER=rQx
  QEM4  : QUAD, TYPE="1.26Q12"  , L=LQA/2, K1=KQEM4, APER=rQA

  KQED2 := 0.402753198232

  QE31 : QUAD, TYPE="1.259Q3.5", L=LQx/2, K1=+KQED2, APER=rQx
  QE32 : QUAD, TYPE="1.259Q3.5", L=LQx/2, K1=-KQED2, APER=rQx
  QE33 : QUAD, TYPE="1.259Q3.5", L=LQx/2, K1=+KQED2, APER=rQx
  QE34 : QUAD, TYPE="1.259Q3.5", L=LQx/2, K1=-KQED2, APER=rQx
  QE35 : QUAD, TYPE="1.259Q3.5", L=LQx/2, K1=+KQED2, APER=rQx
  QE36 : QUAD, TYPE="1.259Q3.5", L=LQx/2, K1=-KQED2, APER=rQx

  DMM1m90cm : DRIF, L=1.20046

  BPMEM1 : MONI, TYPE="05_um_res"
  BPMEM2 : MONI, TYPE="05_um_res"
  BPMEM3 : MONI, TYPE="05_um_res"
  RFBEM4 : MONI, TYPE="@0,01_um_res"
  BPME31 : MONI, TYPE="05_um_res"
  RFBE32 : MONI, TYPE="@0,01_um_res"
  BPME33 : MONI, TYPE="05_um_res"
  RFBE34 : MONI, TYPE="@0,01_um_res"
  BPME35 : MONI, TYPE="05_um_res"
  RFBE36 : MONI, TYPE="@0,01_um_res"

  BPMEM4 : MONI, TYPE="05_um_res" !existing LCLS1 device -- not part of LCLS2
  BPME32 : MONI, TYPE="05_um_res" !existing LCLS1 device -- not part of LCLS2
  BPME34 : MONI, TYPE="05_um_res" !existing LCLS1 device -- not part of LCLS2
  BPME36 : MONI, TYPE="05_um_res" !existing LCLS1 device -- not part of LCLS2

  XCEM2 : HKIC,TYPE="class-4"
  XCEM4 : HKIC,TYPE="class-4"
  XCE31 : HKIC,TYPE="class-4"
  XCE33 : HKIC,TYPE="class-4"
  XCE35 : HKIC,TYPE="class-4"

  YCEM1 : VKIC,TYPE="class-4"
  YCEM3 : VKIC,TYPE="class-4"
  YCE32 : VKIC,TYPE="class-4"
  YCE34 : VKIC,TYPE="class-4"
  YCE36 : VKIC,TYPE="class-4"

  WS31 : WIRE, TYPE="@0" !LTU emittance
  WS32 : WIRE, TYPE="@0" !LTU emittance
  WS33 : WIRE, TYPE="@0" !LTU emittance
  WS34 : WIRE, TYPE="@0" !LTU emittance

  IM36 : IMON !comparator with IM31 (existing in LCLS1 -- not part of LCLS2)

  OTR33 : PROF, TYPE="OTR" !LTU slice emittance (existing in LCLS1 -- not part of LCLS2)

  DCX31 : DRIF,L=Lcoll
  DCY32 : DRIF,L=Lcoll
  DCX35 : DRIF,L=Lcoll
  DCY36 : DRIF,L=Lcoll

  DBMARK36 : MARK !center of WS31

  EDMCH : LINE=(D25cmb,IM36,D25cmc,DMM1m90cm,YCEM1,DEM1A,&
                QEM1,BPMEM1,QEM1,DEM1B,QEM2,BPMEM2,&
                QEM2,DEM2B,XCEM2,DMM3m80cm,YCEM3,DEM3A,&
                QEM3,BPMEM3,QEM3,DEM3B,&
                QEM3V,QEM3V,DMM4m90cm,XCEM4,DEM4A,&
                QEM4,BPMEM4,QEM4,DRFB,RFBEM4,DMM5)

  EDSYS : LINE=(DBMARK36,WS31,D40cm,DE3m80cma,XCE31,DQEA,&
                QE31,BPME31,QE31,DQEBx,DCX31,DQEBx2,DE3a,YCE32,DQEAa,&
                QE32,BPME32,QE32,DRFB,RFBE32,DQEBy1,DCY32,DQEBy2,WS32,D40cm,&
                  DE3m80cmb,XCE33,DQEAb, &
                QE33,BPME33,QE33,DQEC,OTR33,DE3m40cm,YCE34,DQEA,&
                QE34,BPME34,QE34,DRFB,RFBE34,DQEC1,WS33,D40cm,DE3m80cm,XCE35,&
                  DQEAc,&
                QE35,BPME35,QE35,DQEBx,DCX35,DQEBx2,DE3,YCE36,DQEA,&
                QE36,BPME36,QE36,DRFB,RFBE36,DQEBy1,DCY36,DQEBy2,WS34,D40cm)

! ------------------------------------------------------------------------------
! HXR undulator match
! ------------------------------------------------------------------------------

  KQUM1 :=  0.243208508516
  KQUM2 := -0.236795345170
  KQUM3 :=  0.278081503889
  KQUM4 := -0.242048459324

  QUM1 : QUAD, TYPE="1.26Q12", L=LQA/2, K1=KQUM1, APER=rQA
  QUM2 : QUAD, TYPE="1.26Q12", L=LQA/2, K1=KQUM2, APER=rQA
  QUM3 : QUAD, TYPE="1.26Q12", L=LQA/2, K1=KQUM3, APER=rQA
  QUM4 : QUAD, TYPE="1.26Q12", L=LQA/2, K1=KQUM4, APER=rQA

  D32cmc    : DRIF, L=0.30046
  DU2m120cm : DRIF, L=4.730
  DW2TDUND  : DRIF, L=0.201537 !drift from BTH/UH wall-2 to TDUNDB u/s flange
  DTDUND1   : DRIF, L=0.855853 !from u/s TDUND flange to TDUND center
  DTDUND2   : DRIF, L=0.347853 !from TDUND center to d/s TDUND flange

  BPMUM1 : MONI, TYPE="05_um_res"
  BPMUM2 : MONI, TYPE="05_um_res"
  BPMUM3 : MONI, TYPE="05_um_res"
  BPMUM4 : MONI, TYPE="05_um_res"

  IMUNDI : IMON !FEL-undulator input toroid (existing in LCLS1 - not part of LCLS2)

  XCUM1 : HKIC,TYPE="class-4f" !fast-feedback (loop-5)
  XCUM3 : HKIC,TYPE="class-4f" !fast-feedback (loop-5)

  YCUM2 : VKIC,TYPE="class-4f" !fast-feedback (loop-5)
  YCUM4 : VKIC,TYPE="class-4f" !fast-feedback (loop-5)

  PCMUON : ECOL,L=1.1684,XSIZE=8.64E-03/2,YSIZE=4.32E-03/2 !muon scattering collimator after pre-undulator tune-up dump (ID from Rago: 7/18/08)

  TDUND : INST !LTU insertable block at und. extension entrance (w/ screen)

  MM1      : MARK
  MM2      : MARK
  MM3      : MARK
  EOBLM    : MARK !future electro-optic bunch length monitor?
  VV999    : MARK !new vacuum valve just upbeam of undulator
  PFILT1   : MARK
  MUHWALL1 : MARK !upstream end of BTH/UH wall-1
  MUHWALL2 : MARK !upstream end of BTH/UH wall-2
  DBMARK37 : MARK !end of undulator match

  UNMCH : LINE=(DU1m80cm,DCX37,D32cmc,XCUM1,DUM1A,&
                QUM1,BPMUM1,QUM1,DUM1B,D32cm,DU2m120cm,DCY38,D32cma,&
                YCUM2,DUM2A,&
                QUM2,BPMUM2,QUM2,DUM2B,DU3m80cm,XCUM3,DUM3A,&
                QUM3,BPMUM3,QUM3,DUM3B,D40cma,EOBLM,DU4m120cm,YCUM4,DUM4A,&
                QUM4,BPMUM4,QUM4,DUM4B,DU5m80cm,IMUNDI,D40cmW,&
                MUHWALL1,DUHWALL1,DUHVEST,MUHWALL2,DUHWALL2,&
                DW2TDUND,DTDUND1,TDUND,DTDUND2,DPCMUON,PCMUON,DMUON1,&
                VV999,DMUON3,MM3,PFILT1,DBMARK37)

  LTU : LINE=(VBSYS,MM1,DOGLG2A,DOGLG2B,MM2,EDMCH,EDSYS,UNMCH,&
              ENDLTUH,SEQ12END)

! ------------------------------------------------------------------------------
! HXR dumpline
! ------------------------------------------------------------------------------

  KQDMP := -0.155138029848

  QDmp1 : QUAD,TYPE="3.94Q17",L=LQP/2,K1=KQDmp,APER=rQP
  QDmp2 : QUAD,TYPE="3.94Q17",L=LQP/2,K1=KQDmp,APER=rQP

  BYDSHA : SBEN, TYPE="1.26D18.43", L=LeffBYDS/2, ANGLE=ABYDS/2, &
                 HGAP=GBYDS/2, E1=ABYDS/2, E2=0, FINT=0.5, FINTX=0.0, TILT
  BYDSHB : SBEN, TYPE="1.26D18.43", L=LeffBYDS/2, ANGLE=ABYDS/2, &
                 HGAP=GBYDS/2, E1=0, E2=ABYDS/2, FINT=0.0, FINTX=0.5, TILT

  BYD1A  : SBEN, TYPE="1.69VD55.1", L=LeffBdm/2, ANGLE=ABdm0/2, HGAP=GBdm/2, &
                 E1=ABdm0/2, E2=0, FINT=0.57, FINTX=0.00, TILT
  BYD1B  : SBEN, TYPE="1.69VD55.1", L=LeffBdm/2, ANGLE=ABdm0/2, HGAP=GBdm/2, &
                 E1=0, E2=ABdm0/2, FINT=0.00, FINTX=0.57, TILT
  BYD2A  : SBEN, TYPE="1.69VD55.1", L=LeffBdm/2, ANGLE=ABdm0/2, HGAP=GBdm/2, &
                 E1=ABdm0/2, E2=0, FINT=0.57, FINTX=0.00, TILT
  BYD2B  : SBEN, TYPE="1.69VD55.1", L=LeffBdm/2, ANGLE=ABdm0/2, HGAP=GBdm/2, &
                 E1=0, E2=ABdm0/2, FINT=0.00, FINTX=0.57, TILT
  BYD3A  : SBEN, TYPE="1.69VD55.1", L=LeffBdm/2, ANGLE=ABdm0/2, HGAP=GBdm/2, &
                 E1=ABdm0/2, E2=0, FINT=0.57, FINTX=0.00, TILT
  BYD3B  : SBEN, TYPE="1.69VD55.1", L=LeffBdm/2, ANGLE=ABdm0/2, HGAP=GBdm/2, &
                 E1=0, E2=ABdm0/2 , FINT=0.00, FINTX=0.57, TILT

  DD1c   : DRIFT, L=0.3491529203258+0.06 +dDD1c
  DD1d   : DRIFT, L=0.25-0.0079372+0.06
  DD1e   : DRIFT, L=0.25+0.06
  DD2b   : DRIFT, L=8.425460-LQD/2+Ddmpv-0.15-0.0634916-0.049684-0.0115084+0.06

  RFBQD : MONI, TYPE="@0,01_um_res"
  RFBDD : MONI, TYPE="@1,01_um_res"

  XCDD : HKIC,TYPE="class-5"

  YCDD : VKIC,TYPE="class-5"

  OTRDMP : PROF, TYPE="@1,OTR" !Dump screen

  WSDUMP : WIRE

  PCPM1L : ECOL, L=LPCPM/cos(3*ABdm0+ABYDS),XSIZE=0.025,YSIZE=0.025
  PCPM2L : ECOL, L=LPCPM/cos(3*ABdm0+ABYDS),XSIZE=0.025,YSIZE=0.025

  IMDUMP : IMON !BCS comparator toroid in dumpline after Y-bends
  IMBCS4 : IMON !BCS comparator toroid in dumpline after Y-bends

  BTM1L    : INST !Burn-Through-Monitor behind PCPM1L
  BTM2L    : INST !Burn-Through-Monitor behind PCPM2L
  DUMPFACE : INST !entrance face of main e- dump
  BTMDUMP  : INST !Burn-Through-Monitor of main e- dump

  MQDMP    : MARK
  DMPend   : MARK
  DBMARK38 : MARK !end of final undulator dump

  ARODMP1H := -ARODMP1S
  ARODMP2H := -ARODMP2S

  RODMP1H : SROT, ANGLE=ARODMP1H
  RODMP2H : SROT, ANGLE=ARODMP2H

  DUMPLINE : LINE=(SEQ14BEG,RODMP1H,&
    BYDSHA,BYDSHB,DS1,BYD1A,BYD1B,DS,BYD2A,BYD2B,DS,BYD3A,BYD3B,&
    DSc,PCPM1L,BTM1L,DD1a,IMDUMP,DD1b,YCDD,DD1f,PCPM2L,BTM2L,DD1c,&
    QDmp1,QDmp1,DD1d,RFBQD,DD1g,MQDMP,DD1e,&
    QDmp2,QDmp2,DD2a,XCDD,DD2b,IMBCS4,DD3a,RFBDD,DD3b,OTRDMP,&
    DWSDUMPa,WSDUMP,DWSDUMPb,RODMP2H,DUMPFACE,DD3d,DMPend,BTMDUMP,&
    DBMARK38,ENDDMPH,SEQ14END)

  RETURN
