
! *** OPTICS=LCLS2sc19JUN15 ***

! LCLS2sc 3-way spreader system

! ==============================================================================
! Modification History
! ------------------------------------------------------------------------------
! 19-JUN-2015, Y. Nosochkov
!  * add OTRSPDMP ~12 m before the muon wall, deferred at @0 (per Paul)
!  * move WSSP1D upstream to between vertical bends where Dy=0.4 m (per Paul)
!  * add deferred BTMs behind BCS PCSP collimators (per S. Mao)
!  * move IMSP1D upstream of PCSP2D (per S. Mao)
!  * remove PCSP4D, move PCSP3D close to muon wall (per S. Mao)
!  * move BPMSP1d upstream to within 23 m of the septum (per Tor and T. O'Heron)
!  * change the type of BPMSP4D to "Stripline-5" (per C. Iverson)
!  * change the status of IMSP0D, WSSP1D, STSP5S from deferred to baseline
!  * move BPMSP2H,7H,12H outside of the quads (per T. O'Heron)
!  * move QSP1S 5 cm downstream and QSP9S 5 cm upstream (per T. O'Heron)
!  * change type of quads QSP1S,2S,3S,7S,8S,9S,3H,11H to 1.97Q20
!  * adjust positions of correctors and BPMs at 1.97Q20 quads (per T. O'Heron)
!  * remove BXSP1D assuming new BSY dump will be installed (per A. Ibrahimov)
!  * adjust positions of BPMSP3D, IMSP0D, IMSP0H, IMSP0S (per T. O'Heron)
!  * change BPMSP3D to "Stripline-8" (per M. Gaynor)
!  * change type of BPMs at 2Q10 quads to "Stripline-5" (per M. Gaynor)
! ------------------------------------------------------------------------------
! 16-APR-2015, M. Woodley
!  * restore "LQL" parameter and its dependencies
! 20-MAR-2015, M. Woodley
!  * remove dependences on (now undefined) parameter "LQL"
!  * assign TYPEs to BCS devices ... defer at level 0
! 12-MAR-2015, Y. Nosochkov
!  * move QSP3H u/s and QSP11H d/s by 15 inches (per T. O'Heron)
!  * move BPMs outside of 2Q10 quads and adjust positions of corresponding
!    correctors (per T. O'Heron)
!  * move STSP6HB 32 inches downstream (per T. O'Heron)
! 28-FEB-2015, Y. Nosochkov
!  * minor update to definiton of the spreader kickers and septa
!  * change type of QSP1S-QSP9S, QSP1H, QSP3H-QSP6H, QSP8H-QSP11H, QSP13H,
!    QSP1D, QSP2D from "1.97Q10" to "2Q10"
! ------------------------------------------------------------------------------
! 12-DEC-2014, M. Woodley
!  * assign BPM TYPE attributes per PRD LCLSII-2.4-PR-0136
! 09-DEC-2014, Y. Nosochkov
!  * move STBP32 stopper to inside of the SXR spreader chicane and rename it
!    to STSP5s
!  * move D10 dump inside the muon wall in the BSY
!  * change engineering TYPE of QSP1d, QSP2d to "1.97Q10"
!  * rename BXSPd to BXSP1d and change its engineering TYPE to "9D28.5"
!  * rename ROSPs to ROSP1s
!  * rename IMSPs -> IMSP0s, IMSPh -> IMSP0h, IMSPd -> IMSP0d
!  * add BSC current monitors IMSP1d, IMSP2d in SPD (S. Mao)
!  * add BCS collimators PCSP1s, PCSP2s in SPS (S. Mao)
!  * add BCS collimators PCSP1h, PCSP2h in SPH (S. Mao)
!  * add BCS collimators PCSP1d, PCSP2d, PCSP3d, PCSP4d in SPD (S. Mao)
!  * change TYPE of septum magnets from "HLAM" to "0.39SD38.98" (J. Amann)
!  * add BPMSP3d, BPMSP4d at the last two bends in SPD
!  * add fast wire WSSP1d to measure beam size upstream of D10 dump (J. Frisch)
!  * change to type "QE" the following quadrupoles: QSP2h, QSP7h, QSP12h
!  * change to type "1.97Q10" the quads: QSP1h, QSP3h,...,QSP6h,
!    QSP8h,...,QSP11h, QSP13h, QSP1s,...,QSP9s
!    note: field of QSP1s,3s,7s,9s reaches the limit at 7.8 GeV
! ------------------------------------------------------------------------------
! 10-OCT-2014, Y. Nosochkov
!  * update the TYPE of STSP6ha (BCS stopper) and IMSPd (toroid) to indicate
!    the non-baseline level "0"
! 28-JUL-2014, Y. Nosochkov
!  * replace a 3-hole spreader septum with two separate 2-hole septa for SXR
!    and HXR
!  * replace a 1-m deflector in the spreader with six 1-m magnetic kickers
!    (per T. Beukers)
!  * replace dipole corrector type "1.0D18.69" with "1.0D22.625" (per J. Amann)
! 15-JUL-2014, Y. Nosochkov
!  * replace RFBSP1d, RFBSP2d with stripline BPMSP1d, BPMSP2d (per J. Frisch)
! 02-MAY-2014, M. Woodley
!  * add "CNT" MARKERs after dispersive areas (ELEGANT CENTERing)
! 01-MAY-2014, Y. Nosochkov
!  * replace BPMSP1d, BPMSP2d with cavity BPMs RFBSP1d, RFBSP2d (per J. Frisch)
! 30-APR-2014, Y. Nosochkov
!  * add average current monitors IMSPs, IMSPh, IMSPd (per J. Frisch)
! 28-APR-2014, Y. Nosochkov
!  * remove QSP3D, QSP4D and their BPMs and correctors in BSY dumpline
!    assuming OTR and beta waist are not needed (per J. Frisch)
! 23-APR-2014, Y. Nosochkov
!  * remove OTRDMPd in SPD near D10 (per J. Frisch)
! 07-APR-2014, M. Woodley
!  * reorder and/or modify some drift length parameter definitions to avoid
!    using parameters before they are defined
! 04-APR-2014, Y. Nosochkov
! *  add BCS stopper upstream of 3 PPS stoppers in HXR,
!    name the BCS stopper STSP6ha, and PPS stoppers STSP6hb, STSP6hc, STSP6hd
! ------------------------------------------------------------------------------
! 31-MAR-2014, M. Woodley
!  * element names changed to conform to nomenclature PRD
! 25-MAR-2014, Y. Nosochkov
!  * add insertable beam stoppers STSP6ha, STSP6hb, STSP6hc in HXR
! 07-MAR-2014, Y. Nosochkov
!  * move corrector YCSP8h upstream of quad QSP8h for better separation with
!    nearby LCLS-1 quad
! 26-FEB-2014, Y. Nosochkov
!  * change from L=2.623 m dipoles (type 1.26D102.0T) to L=1.0 m dipoles
!    (type 1.0D38.37)
!  * reduce septum length from 2.0 to 1.0 m
!  * change type of BCSP1, BCSP2 dipoles from 1.26D18.43 to 1.0D18.69
! 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
! 16-DEC-2013, Y. Nosochkov
!  * 3-way spreader design with low R56
! ------------------------------------------------------------------------------

! XYZ (linac system) and Twiss at the beginning of spreader (BEGSP)

  XSP  := XOFF
  YSP  := YOFF
  ZSP  := 2780.576003
  THSP := 0.0
  PHSP := 0.0
  PSSP := 0.0

  TBXSP := 25.230614043623
  TBYSP := 2.399999999997E2
  TAXSP := 0.645042193379
  TAYSP := 3.392251096594
  TWSSP : BETA0, BETX=TBXSP, BETY=TBYSP, ALFX=TAXSP, ALFY=TAYSP

! XYZ (linac system) and Twiss at the end of HXR spreader SPRDh

  XSPh  :=  0.0
  YSPh  :=  0.0
  ZSPh  :=  3110.961492
  THSPh :=  0.0
  PHSPh :=  0.0
  PSSPh :=  0.0

  TBXSPh :=  2.507158802E+01
  TBYSPh :=  1.116648089E+02
  TAXSPh :=  6.955527885E-01
  TAYSPh := -2.340149196E+00
  TWSSPh : BETA0, BETX=TBXSPh, BETY=TBYSPh, ALFX=TAXSPh, ALFY=TAYSPh

! SXR quads

  KQSP1S :=  0.360557117898
  KQSP2S := -0.285873994114
  KQSP3S :=  0.357080604694
  KQSP4S := -0.463797861525
  KQSP5S :=  0.175261637732
  KQSP8S := -0.286005302296
  KQSP9S :=  0.360638239977
  KQSP6s :=  KQSP4s
  KQSP7s :=  KQSP3s

  QSP1s : QUAD, TYPE="1.97Q20", L=LQN/2, K1=KQSP1s, APER=rQN
  QSP2s : QUAD, TYPE="1.97Q20", L=LQN/2, K1=KQSP2s, APER=rQN
  QSP3s : QUAD, TYPE="1.97Q20", L=LQN/2, K1=KQSP3s, APER=rQN
  QSP4s : QUAD, TYPE="2Q10"   , L=LQR/2, K1=KQSP4s, APER=rQR
  QSP5s : QUAD, TYPE="2Q10"   , L=LQR/2, K1=KQSP5s, APER=rQR
  QSP6s : QUAD, TYPE="2Q10"   , L=LQR/2, K1=KQSP6s, APER=rQR
  QSP7s : QUAD, TYPE="1.97Q20", L=LQN/2, K1=KQSP7s, APER=rQN
  QSP8s : QUAD, TYPE="1.97Q20", L=LQN/2, K1=KQSP8s, APER=rQN
  QSP9s : QUAD, TYPE="1.97Q20", L=LQN/2, K1=KQSP9s, APER=rQN

! HXR quads

  KQSP1H  :=  0.430369984597
  KQSP2H  := -0.79190064538
  KQSP3H  :=  0.268684040919
  KQSP4H  := -0.431046050788
  KQSP5H  :=  0.190272016191
  KQSP6H  := -0.213198089184
  KQSP7H  :=  0.625961650374
  KQSP10H := -0.432321521304
  KQSP11H :=  0.271259356027
  KQSP12H := -0.820376693332
  KQSP13H :=  0.429099583271
  KQSP8h  :=  KQSP6h
  KQSP9h  :=  KQSP5h

  QSP1h  : QUAD, TYPE="2Q10"      , L=LQR/2, K1=KQSP1h , APER=rQR
  QSP2h  : QUAD, TYPE="1.085Q4.31", L=LQE/2, K1=KQSP2h , APER=rQE
  QSP3h  : QUAD, TYPE="1.97Q20"   , L=LQN/2, K1=KQSP3h , APER=rQN
  QSP4h  : QUAD, TYPE="2Q10"      , L=LQR/2, K1=KQSP4h , APER=rQR
  QSP5h  : QUAD, TYPE="2Q10"      , L=LQR/2, K1=KQSP5h , APER=rQR
  QSP6h  : QUAD, TYPE="2Q10"      , L=LQR/2, K1=KQSP6h , APER=rQR
  QSP7h  : QUAD, TYPE="1.085Q4.31", L=LQE/2, K1=KQSP7h , APER=rQE
  QSP8h  : QUAD, TYPE="2Q10"      , L=LQR/2, K1=KQSP8h , APER=rQR
  QSP9h  : QUAD, TYPE="2Q10"      , L=LQR/2, K1=KQSP9h , APER=rQR
  QSP10h : QUAD, TYPE="2Q10"      , L=LQR/2, K1=KQSP10h, APER=rQR
  QSP11h : QUAD, TYPE="1.97Q20"   , L=LQN/2, K1=KQSP11h, APER=rQN
  QSP12h : QUAD, TYPE="1.085Q4.31", L=LQE/2, K1=KQSP12h, APER=rQE
  QSP13h : QUAD, TYPE="2Q10"      , L=LQR/2, K1=KQSP13h, APER=rQR

! BSY dumpline quads

  !KQSP1D :=  0.233860785389 !with BXSP1d on
  !KQSP2D := -0.23547065246

  KQSP1D :=  0.233866538565 !with BXSP1d off
  KQSP2D := -0.235479464195

  QSP1d : QUAD, TYPE="2Q10", L=LQR/2, K1=KQSP1d, APER=rQR
  QSP2d : QUAD, TYPE="2Q10", L=LQR/2, K1=KQSP2d, APER=rQR

! SXR and HXR vertical magnetic kickers
! All kickers aligned along the same z-axis (per T. Beukers)
! Assume the same z-length per kicker and same field (per SXR or HXR)

  GBKYSP := 0.01 !kicker gap (m) - round pipe, square bore aperture
  LBKYSP := 1.0  !kicker straight length (m)

  ABKYSPh   :=  0.75E-3 *SETKIKh      !total HXR kicker y-angle (rad)
  ABKYSP1h  := ASIN(SIN(ABKYSPh)/3)   !1st HXR kicker y-angle (rad)
  ABKYSP12h := ASIN(2*SIN(ABKYSPh)/3) !1st+2nd HXR kicker y-angle (rad)
  ABKYSP2h  := ABKYSP12h-ABKYSP1h     !2nd HXR kicker y-angle (rad)
  ABKYSP3h  := ABKYSPh-ABKYSP12h      !3rd HXR kicker y-angle (rad)

  ABKYSPs   := -0.75E-3 *SETKIKs      !total SXR kicker y-angle (rad)
  ABKYSP1s  := ASIN(SIN(ABKYSPs)/3)   !1st SXR kicker y-angle (rad)
  ABKYSP12s := ASIN(2*SIN(ABKYSPs)/3) !1st+2nd SXR kicker y-angle (rad)
  ABKYSP2s  := ABKYSP12s-ABKYSP1s     !2nd SXR kicker y-angle (rad)
  ABKYSP3s  := ABKYSPs-ABKYSP12s      !3rd SXR kicker y-angle (rad)

  LBKYSP1h  :=   LBKYSP/(1-ABKYSP1h *ABKYSP1h/6)
  LBKYSP12h := 2*LBKYSP/(1-ABKYSP12h*ABKYSP12h/6)
  LBKYSP13h := 3*LBKYSP/(1-ABKYSPh  *ABKYSPh/6)
  LBKYSP2h  :=  (LBKYSP12h-LBKYSP1h )/COS(ABKYSP1s)
  LBKYSP3h  :=  (LBKYSP13h-LBKYSP12h)/COS(ABKYSP12s)

  LBKYSP1s0 :=   LBKYSP/(1-ABKYSP1s *ABKYSP1s/6)
  LBKYSP12s := 2*LBKYSP/(1-ABKYSP12s*ABKYSP12s/6)
  LBKYSP13s := 3*LBKYSP/(1-ABKYSPs  *ABKYSPs/6)
  LBKYSP1s  :=   LBKYSP1s0/COS(ABKYSP1h)
  LBKYSP2s  :=  (LBKYSP12s-LBKYSP1s0)/COS(ABKYSP12h)
  LBKYSP3s  :=  (LBKYSP13s-LBKYSP12s)/COS(ABKYSPh)

  BKYSP1ha : SBEN, TYPE="spreader", L=LBKYSP1h/2, ANGLE=ABKYSP1h/2, TILT, &
    HGAP=GBKYSP/2, FINT=0.5, FINTX=0, E2=0, E1=0
  BKYSP1hb : SBEN, TYPE="spreader", L=LBKYSP1h/2, ANGLE=ABKYSP1h/2, TILT, &
    HGAP=GBKYSP/2, FINT=0, FINTX=0.5, E1=0, E2=ABKYSP1h

  BKYSP2ha : SBEN, TYPE="spreader", L=LBKYSP2h/2, ANGLE=ABKYSP2h/2, TILT, &
    HGAP=GBKYSP/2, FINT=0.5, FINTX=0, E2=0, E1=-ABKYSP1h
  BKYSP2hb : SBEN, TYPE="spreader", L=LBKYSP2h/2, ANGLE=ABKYSP2h/2, TILT, &
    HGAP=GBKYSP/2, FINT=0, FINTX=0.5, E1=0, E2=ABKYSP12h

  BKYSP3ha : SBEN, TYPE="spreader", L=LBKYSP3h/2, ANGLE=ABKYSP3h/2, TILT, &
    HGAP=GBKYSP/2, FINT=0.5, FINTX=0, E2=0, E1=-ABKYSP12h
  BKYSP3hb : SBEN, TYPE="spreader", L=LBKYSP3h/2, ANGLE=ABKYSP3h/2, TILT, &
    HGAP=GBKYSP/2, FINT=0, FINTX=0.5, E1=0, E2=ABKYSPh

  BKYSP1sa : SBEN, TYPE="spreader", L=LBKYSP1s/2, ANGLE=ABKYSP1s/2, TILT, &
    HGAP=GBKYSP/2, FINT=0.5, FINTX=0, E2=0, E1=0
  BKYSP1sb : SBEN, TYPE="spreader", L=LBKYSP1s/2, ANGLE=ABKYSP1s/2, TILT, &
    HGAP=GBKYSP/2, FINT=0, FINTX=0.5, E1=0, E2=ABKYSP1s

  BKYSP2sa : SBEN, TYPE="spreader", L=LBKYSP2s/2, ANGLE=ABKYSP2s/2, TILT, &
    HGAP=GBKYSP/2, FINT=0.5, FINTX=0, E2=0, E1=-ABKYSP1s
  BKYSP2sb : SBEN, TYPE="spreader", L=LBKYSP2s/2, ANGLE=ABKYSP2s/2, TILT, &
    HGAP=GBKYSP/2, FINT=0, FINTX=0.5, E1=0, E2=ABKYSP12s

  BKYSP3sa : SBEN, TYPE="spreader", L=LBKYSP3s/2, ANGLE=ABKYSP3s/2, TILT, &
    HGAP=GBKYSP/2, FINT=0.5, FINTX=0, E2=0, E1=-ABKYSP12s
  BKYSP3sb : SBEN, TYPE="spreader", L=LBKYSP3s/2, ANGLE=ABKYSP3s/2, TILT, &
    HGAP=GBKYSP/2, FINT=0, FINTX=0.5, E1=0, E2=ABKYSPs

! 2-hole HXR horizontal septum aligned along the bypass axis

  GBLXSP := 0.01 !septum gap height (m) - TBD
  LBLXSP := 1.0  !septum straight length (m)
  ABLXSP := 0.011055447407

  ABLXSPh    := -ABLXSP/2 *SETKIKh
  ABLXSPha   :=  ASIN(SIN(ABLXSPh)/2)
  ABLXSPhb   :=  ABLXSPh-ABLXSPha
  ABLXSPh_2  :=  ABLXSPh   *ABLXSPh
  ABLXSPh_4  :=  ABLXSPh_2 *ABLXSPh_2
  ABLXSPha_2 :=  ABLXSPha  *ABLXSPha
  ABLXSPha_4 :=  ABLXSPha_2*ABLXSPha_2

  LBLXSPh  := LBLXSP   /(1-ABLXSPh_2/6 +ABLXSPh_4/120 )/COS(ABKYSPh)/ &
              COS(ABKYSPs)
  LBLXSPha := LBLXSP/2 /(1-ABLXSPha_2/6+ABLXSPha_4/120)/COS(ABKYSPh)/ &
              COS(ABKYSPs)
  LBLXSPhb := LBLXSPh-LBLXSPha

  BLXSPha : SBEN, TYPE="0.39SD38.98", L=LBLXSPha, ANGLE=ABLXSPha, &
                  E1=0, E2=0, FINT=0.5, FINTX=0, HGAP=GBLXSP/2
  BLXSPhb : SBEN, TYPE="0.39SD38.98", L=LBLXSPhb, ANGLE=ABLXSPhb, &
                  E1=0, E2=ABLXSPh, FINT=0, FINTX=0.5, HGAP=GBLXSP/2

! 2-hole SXR horizontal septum aligned along the bypass axis

  ABLXSPs    := ABLXSP *SETKIKs
  ABLXSPsa   := ASIN(SIN(ABLXSPs)/2)
  ABLXSPsb   := ABLXSPs-ABLXSPsa
  ABLXSPs_2  := ABLXSPs   *ABLXSPs
  ABLXSPs_4  := ABLXSPs_2 *ABLXSPs_2
  ABLXSPsa_2 := ABLXSPsa  *ABLXSPsa
  ABLXSPsa_4 := ABLXSPsa_2*ABLXSPsa_2

  LBLXSPs  := LBLXSP   /(1-ABLXSPs_2/6 +ABLXSPs_4/120 )/COS(ABLXSPh)/ &
              COS(ABKYSPh)/COS(ABKYSPs)
  LBLXSPsa := LBLXSP/2 /(1-ABLXSPsa_2/6+ABLXSPsa_4/120)/COS(ABLXSPh)/ &
              COS(ABKYSPh)/COS(ABKYSPs)
  LBLXSPsb := LBLXSPs-LBLXSPsa

  BLXSPsa : SBEN, TYPE="0.39SD38.98", L=LBLXSPsa, ANGLE=ABLXSPsa, &
                  E1=0, E2=0, FINT=0.5, FINTX=0, HGAP=GBLXSP/2
  BLXSPsb : SBEN, TYPE="0.39SD38.98", L=LBLXSPsb, ANGLE=ABLXSPsb, &
                  E1=0, E2=ABLXSPs, FINT=0, FINTX=0.5, HGAP=GBLXSP/2

! SXR horizontal bends

  dABXSPs := 0.310909196269E-8
  ABXSPs  := ABLXSPs+dABXSPs
  LBXSPs  := LBSP*ABXSPs/(2*SIN(ABXSPs/2)) !BXSPs path length (m)

  BXSP1sa : SBEN, TYPE="1.0D38.37", L=LBXSPs/2, ANGLE=-ABXSPs/2, &
                  E1=-ABXSPs/2, E2=0, FINT=0.5, FINTX=0, HGAP=GBSP/2
  BXSP1sb : SBEN, TYPE="1.0D38.37", L=LBXSPs/2, ANGLE=-ABXSPs/2, &
                  E1=0, E2=-ABXSPs/2, FINT=0, FINTX=0.5, HGAP=GBSP/2

  BXSP2sa : SBEN, TYPE="1.0D38.37", L=LBXSPs/2, ANGLE=-ABXSPs/2, &
                  E1=-ABXSPs/2, E2=0, FINT=0.5, FINTX=0, HGAP=GBSP/2
  BXSP2sb : SBEN, TYPE="1.0D38.37", L=LBXSPs/2, ANGLE=-ABXSPs/2, &
                  E1=0, E2=-ABXSPs/2, FINT=0, FINTX=0.5, HGAP=GBSP/2

  BXSP3sa : SBEN, TYPE="1.0D38.37", L=LBXSPs/2, ANGLE=ABXSPs/2, &
                  E1=ABXSPs/2, E2=0, FINT=0.5, FINTX=0, HGAP=GBSP/2
  BXSP3sb : SBEN, TYPE="1.0D38.37", L=LBXSPs/2, ANGLE=ABXSPs/2, &
                  E1=0, E2=ABXSPs/2, FINT=0, FINTX=0.5, HGAP=GBSP/2

! HXR rolled bends

  ABRSPh := 0.650321256818E-2
  LBRSPh := LBSP*ABRSPh/(2*SIN(ABRSPh/2)) !BRSPh path length (m)
  TBRSPh := 0.55481892884                 !BRSPh roll angle (rad)

  BRSP1ha : SBEN, TYPE="1.0D38.37", L=LBRSPh/2, ANGLE=ABRSPh/2, &
            E1=ABRSPh/2, E2=0, FINT=0.5, FINTX=0, HGAP=GBSP/2, TILT=TBRSPh
  BRSP1hb : SBEN, TYPE="1.0D38.37", L=LBRSPh/2, ANGLE=ABRSPh/2, &
            E1=0, E2=ABRSPh/2, FINT=0, FINTX=0.5, HGAP=GBSP/2, TILT=TBRSPh

  BRSP2ha : SBEN, TYPE="1.0D38.37", L=LBRSPh/2, ANGLE=-ABRSPh/2, &
            E1=-ABRSPh/2, E2=0, FINT=0.5, FINTX=0, HGAP=GBSP/2, TILT=TBRSPh
  BRSP2hb : SBEN, TYPE="1.0D38.37", L=LBRSPh/2, ANGLE=-ABRSPh/2, &
            E1=0, E2=-ABRSPh/2, FINT=0, FINTX=0.5, HGAP=GBSP/2, TILT=TBRSPh

! HXR horizontal bend

  dABXSPh := 0.155464098536E-8
  ABXSPh  := -ABLXSPh+dABXSPh
  LBXSPh  := LBSP*ABXSPh/(2*SIN(ABXSPh/2)) !BXSP1h path length (m)

  BXSP1ha : SBEN, TYPE="1.0D38.37", L=LBXSPh/2, ANGLE=ABXSPh/2, &
                  E1=ABXSPh/2, E2=0, FINT=0.5, FINTX=0, HGAP=GBSP/2
  BXSP1hb : SBEN, TYPE="1.0D38.37", L=LBXSPh/2, ANGLE=ABXSPh/2, &
                  E1=0, E2=ABXSPh/2, FINT=0, FINTX=0.5, HGAP=GBSP/2

! BSY dumpline vertical bends

  ABYSPd := 0.877684127155E-2
  LBYSPd := LBSP*ABYSPd/(2*SIN(ABYSPd/2)) !BYSPd path length (m)

  BYSP1da : SBEN, TYPE="1.0D38.37", L=LBYSPd/2, ANGLE=ABYSPd/2, TILT, &
                  E1=ABYSPd/2, E2=0, FINT=0.5, FINTX=0, HGAP=GBSP/2
  BYSP1db : SBEN, TYPE="1.0D38.37", L=LBYSPd/2, ANGLE=ABYSPd/2, TILT, &
                  E1=0, E2=ABYSPd/2, FINT=0, FINTX=0.5, HGAP=GBSP/2

  BYSP2da : SBEN, TYPE="1.0D38.37", L=LBYSPd/2, ANGLE=-ABYSPd/2, TILT, &
                  E1=-ABYSPd/2, E2=0, FINT=0.5, FINTX=0, HGAP=GBSP/2
  BYSP2db : SBEN, TYPE="1.0D38.37", L=LBYSPd/2, ANGLE=-ABYSPd/2, TILT, &
                  E1=0, E2=-ABYSPd/2, FINT=0, FINTX=0.5, HGAP=GBSP/2

! BSY dumpline horizontal bend

  GBXSPd  :=  0.07874 !BXSP1d gap height (m)
  LBXSPdz :=  0.80340 !BXSP1d straight length (m)
  ABXSPd  := -0.896292406042E-2
  LBXSPd  :=  LBXSPdz*ABXSPd/(2*SIN(ABXSPd/2)) !BXSP1d path length (m)

  BXSP1da : SBEN, TYPE="9D28.5", L=LBXSPd/2, ANGLE=ABXSPd/2, &
                  E1=ABXSPd/2, E2=0, FINT=0.5, FINTX=0, HGAP=GBXSPd/2
  BXSP1db : SBEN, TYPE="9D28.5", L=LBXSPd/2, ANGLE=ABXSPd/2, &
                  E1=0, E2=ABXSPd/2, FINT=0, FINTX=0.5, HGAP=GBXSPd/2

  DBXSP1d : DRIF, L=0.803391932471/2 !half-length of BXSP1d Z-projection

! SXR DC bend correctors to compensate kicker orbit and dispersion

  LBCSP   :=  0.6                             !DC corrector length
  GBCSP   :=  0.0254                          !DC corrector gap
  ABCSP1S :=  0.317906797099E-2
  ABCSP2S := -0.242911380413E-2
  LBCSP1s := LBCSP*ABCSP1s/(2*SIN(ABCSP1s/2)) !BYSP1s path length (m)
  LBCSP2s := LBCSP*ABCSP2s/(2*SIN(ABCSP2s/2)) !BYSP2s path length (m)

  BYSP1sa : SBEN, TYPE="1.0D22.625", L=LBCSP1s/2, ANGLE=ABCSP1s/2, &
            E1=ABCSP1s/2, E2=0, FINT=0.5, FINTX=0, HGAP=GBCSP/2, TILT
  BYSP1sb : SBEN, TYPE="1.0D22.625", L=LBCSP1s/2, ANGLE=ABCSP1s/2, &
            E2=ABCSP1s/2, E1=0, FINTX=0.5, FINT=0, HGAP=GBCSP/2, TILT

  BYSP2sa : SBEN, TYPE="1.0D22.625", L=LBCSP2s/2, ANGLE=ABCSP2s/2, &
            E1=ABCSP2s/2, E2=0, FINT=0.5, FINTX=0, HGAP=GBCSP/2, TILT
  BYSP2sb : SBEN, TYPE="1.0D22.625", L=LBCSP2s/2, ANGLE=ABCSP2s/2, &
            E2=ABCSP2s/2, E1=0, FINTX=0.5, FINT=0, HGAP=GBCSP/2, TILT

! HXR DC bend correctors to compensate kicker orbit and dispersion

  ABCSP1H := -0.37870123934E-2
  ABCSP2H :=  0.303702385177E-2
  LBCSP1h := LBCSP*ABCSP1h/(2*SIN(ABCSP1h/2)) !BYSP1h path length (m)
  LBCSP2h := LBCSP*ABCSP2h/(2*SIN(ABCSP2h/2)) !BYSP2h path length (m)

  BYSP1ha : SBEN, TYPE="1.0D22.625", L=LBCSP1h/2, ANGLE=ABCSP1h/2, &
            E1=ABCSP1h/2, E2=0, FINT=0.5, FINTX=0, HGAP=GBCSP/2, TILT
  BYSP1hb : SBEN, TYPE="1.0D22.625", L=LBCSP1h/2, ANGLE=ABCSP1h/2, &
            E2=ABCSP1h/2, E1=0, FINTX=0.5, FINT=0, HGAP=GBCSP/2, TILT

  BYSP2ha : SBEN, TYPE="1.0D22.625", L=LBCSP2h/2, ANGLE=ABCSP2h/2, &
            E1=ABCSP2h/2, E2=0, FINT=0.5, FINTX=0, HGAP=GBCSP/2, TILT
  BYSP2hb : SBEN, TYPE="1.0D22.625", L=LBCSP2h/2, ANGLE=ABCSP2h/2, &
            E2=ABCSP2h/2, E1=0, FINTX=0.5, FINT=0, HGAP=GBCSP/2, TILT

! drifts

  LDSPBK   := 0.15
  LDSPBK1  := LDSPBK/COS(ABKYSP1h)
  LDSPBK2  := LDSPBK/COS(ABKYSP1h) /COS(ABKYSP1s)
  LDSPBK3  := LDSPBK/COS(ABKYSP12h)/COS(ABKYSP1s)
  LDSPBK4  := LDSPBK/COS(ABKYSP12h)/COS(ABKYSP12s)
  LDSPBK5  := LDSPBK/COS(ABKYSPh)  /COS(ABKYSP12s)
  LDSP1    := 15.375/COS(ABKYSPh)  /COS(ABKYSPs)
  LDSPBLX  := 0.5   /COS(ABKYSPh)  /COS(ABKYSPs)/COS(ABLXSPh)
  LDSPCOR1 := 0.3617
  LDSPCOR2 := 0.5263
  LDSPBPM1 := 0.4471
  LDSPBPM2 := 0.5342

 dLDSP2s   := 0.0
  LDSP2s   := 32.6875+(LQA-LQN)/2 +0.05 +dLDSP2s
  LDSP2sb  := 11.8
  LDSP2sc  := 0.5+(LQA-LQN)/2 +0.05
  LDSP2sa  := LDSP2s-LDSP2sb-LDSP2sc-LBCSP1s-LBCSP2s
 dLDSP3s   := 0.0
  LDSP3s   := 2.1+(LQA-LQN) +dLDSP3s -0.05
  LDSP3sa  := LDSPBPM2
  LDSP3sb  := 0.6445
  LDSP3sc  := LDSP3s-LDSP3sa-LDSP3sb
  LDSP4s   := 8.8+(LQA-LQN)/2 -dLDSP2s -dLDSP3s
  LDSP4sa  := LDSPBPM2
  LDSP4sb  := 0.6445
  LDSP4sd  := 0.42-0.0757-4.6E-6
  LDSP4sc  := LDSP4s-LDSP4sa-LDSP4sb-LDSP4sd
 dLDSP5s   := 0.0
  LDSP5s   := 6.623+(LQA-LQN)/2 +dLDSP5s
  LDSP5sb  := LDSPCOR2
  LDSP5sa  := LDSP5s-LDSP5sb
  LDSP0s   := (69.146+5*LQA-(2*LDSP5s+LQN))/4 !avoid using parameters before they are defined
 dLDSP6s   := -9.4
  LDSP6s   := LDSP0s -(LQR+LQN)/2
  LDSP6sa  := LDSPBPM2
  LDSP6sc  := LDSPCOR1
  LDSP6sb  := LDSP6s-LDSP6sa-LDSP6sc +dLDSP6s
  LDSP7s   := LDSP0s -LQR
  LDSP7sa  := LDSPBPM1
  LDSP7sb  := 1.0-0.0471 +(LQL-LQR)/2 +0.02
  LDSP7sd  := LDSPCOR1
  LDSP7sc  := LDSP7s-LDSP7sa-LDSP7sb-LDSP7sd-LPCSP -dLDSP6s
  LDSP8s   := LDSP7s
  LDSP8sa  := LDSPBPM1
  LDSP8sb  := 2.0-0.0471 +(LQL-LQR)/2
  LDSP8sd  := LDSPCOR1
  LDSP8sc  := LDSP8s-LDSP8sa-LDSP8sb-LDSP8sd -dLDSP6s
  LDSP9s   := LDSP6s
  LDSP9sa  := LDSPBPM1
  LDSP9sc  := LDSPCOR2
  LDSP9sb  := LDSP9s-LDSP9sa-LDSP9sc +dLDSP6s
  LDSP10s  := LDSP5s
  LDSP10sa := LDSPBPM2
  LDSP10sb := LDSP10s-LDSP10sa
  LDSP11s  := LDSP4s
  LDSP11sa := 1.0
  LDSP11sc := LDSPCOR2
  LDSP11sb := LDSP11s-LDSP11sa-LDSP11sc-LPCSP
  LDSP12s  := LDSP3s
  LDSP12sa := LDSPBPM2
  LDSP12sc := LDSPCOR2
  LDSP12sb := LDSP12s-LDSP12sa-LDSP12sc
 dLDSP13s  := -0.414040364762E-4
  LDSP13s  := LDSP2s +dLDSP13s +LBLXSPs/2-LBXSPs/2
  LDSP13sa := LDSPBPM2
  LDSP13sb := LDSP13s-LDSP13sa

  DSPBK1  : DRIF, L=LDSPBK1
  DSPBK2  : DRIF, L=LDSPBK2
  DSPBK3  : DRIF, L=LDSPBK3
  DSPBK4  : DRIF, L=LDSPBK4
  DSPBK5  : DRIF, L=LDSPBK5
  DSP1    : DRIF, L=LDSP1
  DSPBLX  : DRIF, L=LDSPBLX
  DSP2sa  : DRIF, L=LDSP2sa
  DSP2sb  : DRIF, L=LDSP2sb
  DSP2sc  : DRIF, L=LDSP2sc
  DSP3sa  : DRIF, L=LDSP3sa
  DSP3sb  : DRIF, L=LDSP3sb
  DSP3sc  : DRIF, L=LDSP3sc
  DSP4sa  : DRIF, L=LDSP4sa
  DSP4sb  : DRIF, L=LDSP4sb
  DSP4sc  : DRIF, L=LDSP4sc
  DSP4sd  : DRIF, L=LDSP4sd
  DSP5sa  : DRIF, L=LDSP5sa
  DSP5sb  : DRIF, L=LDSP5sb
  DSP6sa  : DRIF, L=LDSP6sa
  DSP6sb  : DRIF, L=LDSP6sb
  DSP6sc  : DRIF, L=LDSP6sc
  DSP7sa  : DRIF, L=LDSP7sa
  DSP7sb  : DRIF, L=LDSP7sb
  DSP7sc  : DRIF, L=LDSP7sc
  DSP7sd  : DRIF, L=LDSP7sd
  DSP8sa  : DRIF, L=LDSP8sa
  DSP8sb  : DRIF, L=LDSP8sb
  DSP8sc  : DRIF, L=LDSP8sc
  DSP8sd  : DRIF, L=LDSP8sd
  DSP9sa  : DRIF, L=LDSP9sa
  DSP9sb  : DRIF, L=LDSP9sb
  DSP9sc  : DRIF, L=LDSP9sc
  DSP10sa : DRIF, L=LDSP10sa
  DSP10sb : DRIF, L=LDSP10sb
  DSP11s  : DRIF, L=LDSP11s
  DSP11sa : DRIF, L=LDSP11sa
  DSP11sb : DRIF, L=LDSP11sb
  DSP11sc : DRIF, L=LDSP11sc
  DSP12sa : DRIF, L=LDSP12sa
  DSP12sb : DRIF, L=LDSP12sb
  DSP12sc : DRIF, L=LDSP12sc
  DSP13sa : DRIF, L=LDSP13sa
  DSP13sb : DRIF, L=LDSP13sb

 dLDSP2h   := 0.0
  LDSP2h   := 43.0+0.175/2+(LQA-LQR)/2 +dLDSP2h
  LDSP2hb  := 12.0-0.2
  LDSP2hc  := 0.5+(LQA-LQR)/2
  LDSP2ha  := LDSP2h-LDSP2hb-LDSP2hc-LBCSP1h-LBCSP2h-LDSPBLX-LBLXSPh
 dLDSP3h   := 0.0
  LDSP3h   := 6.2+(LQA-LQE)/2+(LQA-LQR)/2 +dLDSP3h
  LDSP3ha  := LDSPBPM1
  LDSP3hb  := 0.6368
  LDSP3hd  := 0.1924
  LDSP3hc  := LDSP3h-LDSP3ha-LDSP3hb-LDSP3hd
 dLDSP4h   := 0.012059712049
  LDSP4h   := 7.9+(LQA-LQE)/2 -dLDSP2h-dLDSP3h+dLDSP4h
  LDSP4ha  := 0.4
  LDSP4hc  := 0.4-0.054-8.E-7
  LDSP4hb  := LDSP4h-LDSP4ha-LDSP4hc
 dLDSP5h   := 0.0
  LDSP5h   := 8.94+(LQA-LQR)/2 +dLDSP5h -0.381 +(LQR-LQN)/2
  LDSP5ha  := 1.124131
  LDSP5hc  := LDSPCOR2
  LDSP5hb  := LDSP5h-LDSP5ha-LDSP5hc-LPCSP
 dLDSP6h   := 0.0
  LDSP6h   := 5.0+(LQA-LQR) +dLDSP6h +0.381 +(LQR-LQN)/2
  LDSP6ha  := LDSPBPM2
  LDSP6hc  := LDSPCOR1
  LDSP6hb  := LDSP6h-LDSP6ha-LDSP6hc
 dLDSPh    := 0.0
  LDSPh    := (185.704364464594+9*(LQA-LQR)+2*(LQR-LQN)-2*LDSP5h-2*LDSP6h)/6 &
              +dLDSPh
  LDSP7h   := LDSPh -0.3
  LDSP7ha  := LDSPBPM1
  LDSP7hc  := LDSPCOR1
  LDSP7hb  := LDSP7h-LDSP7ha-LDSP7hc
  LDSP8h   := LDSPh -0.3
  LDSP8ha  := LDSPBPM1
  LDSP8hc  := LDSPCOR1
  LDSP8hb  := LDSP8h-LDSP8ha-LDSP8hc
  LDSP9h   := LDSPh+(LQR-LQE)/2 +0.6
  LDSP9ha  := LDSPBPM1
  LDSP9hb  := 4.3+(LQA-LQR)/2 -0.0471
  LDSP9hc  := 2.5 +0.8128
  LDSP9hd  := 2.5 -0.8128
  LDSP9he  := 2.5
  LDSP9hg  := 0.1924
  LDSP9hf  := LDSP9h-LDSP9ha-LDSP9hb-LDSP9hc-LDSP9hd-LDSP9he-LDSP9hg
  LDSP10h  := LDSP9h
  LDSP10ha := 0.4
  LDSP10hc := LDSPCOR1
  LDSP10hb := LDSP10h-LDSP10ha-LDSP10hc
  LDSP11h  := LDSP8h
  LDSP11ha := LDSPBPM1
  LDSP11hc := 0.4781
  LDSP11hb := LDSP11h-LDSP11ha-LDSP11hc
  LDSP12h  := LDSP7h
  LDSP12ha := 0.4285
  LDSP12hc := LDSPCOR1
  LDSP12hb := LDSP12h-LDSP12ha-LDSP12hc
  LDSP13h  := LDSP6h
  LDSP13ha := LDSPBPM1
  LDSP13hc := LDSPCOR2
  LDSP13hb := LDSP13h-LDSP13ha-LDSP13hc
  LDSP14h  := LDSP5h
  LDSP14ha := LDSPBPM2
  LDSP14hb := LDSP14h-LDSP14ha
  LDSP15h  := LDSP4h
  LDSP15ha := 4.0
  LDSP15hc := 0.1924
  LDSP15hb := LDSP15h-LDSP15ha-LDSP15hc-LPCSP
  LDSP16h  := LDSP3h
  LDSP16ha := 0.4
  LDSP16hc := LDSPCOR1
  LDSP16hb := LDSP16h-LDSP16ha-LDSP16hc
 dLDSP17h  := -0.543682952617E-4
  LDSP17h  := LDSP2h +dLDSP17h +LBLXSPh/2-LBXSPh/2
  LDSP17ha := LDSPBPM1
  LDSP17hb := LDSP17h-LDSP17ha

  DSP2ha  : DRIF, L=LDSP2ha
  DSP2hb  : DRIF, L=LDSP2hb
  DSP2hc  : DRIF, L=LDSP2hc
  DSP3ha  : DRIF, L=LDSP3ha
  DSP3hb  : DRIF, L=LDSP3hb
  DSP3hc  : DRIF, L=LDSP3hc
  DSP3hd  : DRIF, L=LDSP3hd
  DSP4ha  : DRIF, L=LDSP4ha
  DSP4hb  : DRIF, L=LDSP4hb
  DSP4hc  : DRIF, L=LDSP4hc
  DSP5h   : DRIF, L=LDSP5h
  DSP5ha  : DRIF, L=LDSP5ha
  DSP5hb  : DRIF, L=LDSP5hb
  DSP5hc  : DRIF, L=LDSP5hc
  DSP6ha  : DRIF, L=LDSP6ha
  DSP6hb  : DRIF, L=LDSP6hb
  DSP6hc  : DRIF, L=LDSP6hc
  DSP7ha  : DRIF, L=LDSP7ha
  DSP7hb  : DRIF, L=LDSP7hb
  DSP7hc  : DRIF, L=LDSP7hc
  DSP8ha  : DRIF, L=LDSP8ha
  DSP8hb  : DRIF, L=LDSP8hb
  DSP8hc  : DRIF, L=LDSP8hc
  DSP9ha  : DRIF, L=LDSP9ha
  DSP9hb  : DRIF, L=LDSP9hb
  DSP9hc  : DRIF, L=LDSP9hc
  DSP9hd  : DRIF, L=LDSP9hd
  DSP9he  : DRIF, L=LDSP9he
  DSP9hf  : DRIF, L=LDSP9hf
  DSP9hg  : DRIF, L=LDSP9hg
  DSP10ha : DRIF, L=LDSP10ha
  DSP10hb : DRIF, L=LDSP10hb
  DSP10hc : DRIF, L=LDSP10hc
  DSP11ha : DRIF, L=LDSP11ha
  DSP11hb : DRIF, L=LDSP11hb
  DSP11hc : DRIF, L=LDSP11hc
  DSP12ha : DRIF, L=LDSP12ha
  DSP12hb : DRIF, L=LDSP12hb
  DSP12hc : DRIF, L=LDSP12hc
  DSP13ha : DRIF, L=LDSP13ha
  DSP13hb : DRIF, L=LDSP13hb
  DSP13hc : DRIF, L=LDSP13hc
  DSP14ha : DRIF, L=LDSP14ha
  DSP14hb : DRIF, L=LDSP14hb
  DSP15h  : DRIF, L=LDSP15h
  DSP15ha : DRIF, L=LDSP15ha
  DSP15hb : DRIF, L=LDSP15hb
  DSP15hc : DRIF, L=LDSP15hc
  DSP16ha : DRIF, L=LDSP16ha
  DSP16hb : DRIF, L=LDSP16hb
  DSP16hc : DRIF, L=LDSP16hc
  DSP17ha : DRIF, L=LDSP17ha
  DSP17hb : DRIF, L=LDSP17hb

  LDSP2db := 22.147740
  LDSP2dd := LDSPCOR1
  LDSP2dc := 32.0-LDSP2db-LDSP2dd-LPCSP +(LQL-LQR)/2
  LDSP3d  := 5.3 +(LQL-LQR)
  LDSP3da := LDSPBPM1
  LDSP3db := 0.4-0.0471+0.262 +(LQL-LQR)/2
  LDSP3dd := 0.4781
  LDSP3dc := LDSP3d-LDSP3da-LDSP3db-LDSP3dd
  LDSP4d  := 1.0 +(LQL-LQR)/2
  LDSP4da := 0.4285
  LDSP4db := LDSP4d-LDSP4da
  LDSP2da1 := 23.0
  LDSP2da2 := 76.5-LDSP2da1-LDSP2db-LDSP2dc-LDSP2dd-LPCSP-LDSP3d-LDSP4d-2*LQR &
             -LDSPBLX-LBLXSP+0.175
  LDSP5d  := 73.0
  LDSP5da := 45.575-LBYSPd/2
  LDSP5dc := 0.4-0.17018-6.6E-6
  LDSP5db := LDSP5d-LDSP5da-LDSP5dc
  LDSP6da := 4.0
  LDSP6db := 1.5
  LDSP6dd := 1.0
  LDSP6de := 1.0
  LDSP6df := 0.4
  LDSP6dc := 231.0-LDSP6da-LDSP6db-LDSP6dd-LDSP6de-LDSP6df-LPCSP
 dLDSP7d  := 0.0 !adjust Z at muon wall
 !LDSP7d  := (21.9118610101-1.83 +dLDSP7d)/COS(ABXSPd)
  LDSP7d  := 21.9118610101-1.83 +dLDSP7d
  LDSP7db := 1.5
  LDSP7dc := 1.5
  LDSP7da := LDSP7d-LDSP7db-LDSP7dc-LPCSP

  DSP2da1 : DRIF, L=LDSP2da1
  DSP2da2 : DRIF, L=LDSP2da2
  DSP2db : DRIF, L=LDSP2db
  DSP2dc : DRIF, L=LDSP2dc
  DSP2dd : DRIF, L=LDSP2dd
  DSP3da : DRIF, L=LDSP3da
  DSP3db : DRIF, L=LDSP3db
  DSP3dc : DRIF, L=LDSP3dc
  DSP3dd : DRIF, L=LDSP3dd
  DSP4da : DRIF, L=LDSP4da
  DSP4db : DRIF, L=LDSP4db
  DSP5d  : DRIF, L=LDSP5d
  DSP5da : DRIF, L=LDSP5da
  DSP5db : DRIF, L=LDSP5db
  DSP5dc : DRIF, L=LDSP5dc
  DSP6da : DRIF, L=LDSP6da
  DSP6db : DRIF, L=LDSP6db
  DSP6dc : DRIF, L=LDSP6dc
  DSP6dd : DRIF, L=LDSP6dd
  DSP6de : DRIF, L=LDSP6de
  DSP6df : DRIF, L=LDSP6df
  DSP7d  : DRIF, L=LDSP7d
  DSP7da : DRIF, L=LDSP7da
  DSP7db : DRIF, L=LDSP7db
  DSP7dc : DRIF, L=LDSP7dc
 !DWALLad : DRIF, L=1.83/COS(ABXSPd) !distance from face of muon wall to D10
  DWALLad : DRIF, L=1.83 !distance from face of muon wall to D10

! markers

  BEGSP   : MARK
  CNTSP1S : MARK, TYPE="CENTER"
  CNTSP2S : MARK, TYPE="CENTER"
  CNTSP1H : MARK, TYPE="CENTER"
  CNTSP2H : MARK, TYPE="CENTER"
  CNTSP3H : MARK, TYPE="CENTER"
  MUWALLd : MARK !front face of muon wall for dump beam
  D10Jd   : MARK !front face of D10 for dump beam
  DUMPBSY : INST, TYPE="D10" !D10 dump

! monitors

  BPMSP1s  : MONI, TYPE="Stripline-5"
  BPMSP2s  : MONI, TYPE="Stripline-5"
  BPMSP3s  : MONI, TYPE="Stripline-5"
  BPMSP4s  : MONI, TYPE="Stripline-5"
  BPMSP5s  : MONI, TYPE="Stripline-5"
  BPMSP6s  : MONI, TYPE="Stripline-5"
  BPMSP7s  : MONI, TYPE="Stripline-5"
  BPMSP8s  : MONI, TYPE="Stripline-5"
  BPMSP9s  : MONI, TYPE="Stripline-5"

  BPMSP1h  : MONI, TYPE="Stripline-5"
  BPMSP2h  : MONI, TYPE="Stripline-2"
  BPMSP3h  : MONI, TYPE="Stripline-5"
  BPMSP4h  : MONI, TYPE="Stripline-5"
  BPMSP5h  : MONI, TYPE="Stripline-5"
  BPMSP6h  : MONI, TYPE="Stripline-5"
  BPMSP7h  : MONI, TYPE="Stripline-2"
  BPMSP8h  : MONI, TYPE="Stripline-5"
  BPMSP9h  : MONI, TYPE="Stripline-5"
  BPMSP10h : MONI, TYPE="Stripline-5"
  BPMSP11h : MONI, TYPE="Stripline-5"
  BPMSP12h : MONI, TYPE="Stripline-2"
  BPMSP13h : MONI, TYPE="Stripline-5"

  BPMSP1d  : MONI, TYPE="Stripline-5"
  BPMSP2d  : MONI, TYPE="Stripline-5"
  BPMSP3d  : MONI, TYPE="Stripline-8"
  BPMSP4d  : MONI, TYPE="Stripline-5"

  MRFBSP1d : MARK !MONI, TYPE="CavityS-1" !make RF-bpm if spreader is RF
  MRFBSP2d : MARK !MONI, TYPE="CavityS-1" !make RF-bpm if spreader is RF

! steering correctors

  XCSP1s  : HKIC, TYPE="class-4" !type TBD
  XCSP3s  : HKIC, TYPE="class-4" !type TBD
  XCSP5s  : HKIC, TYPE="class-4" !type TBD
  XCSP7s  : HKIC, TYPE="class-4" !type TBD
  XCSP9s  : HKIC, TYPE="class-4" !type TBD

  YCSP2s  : VKIC, TYPE="class-4" !type TBD
  YCSP4s  : VKIC, TYPE="class-4" !type TBD
  YCSP6s  : VKIC, TYPE="class-4" !type TBD
  YCSP8s  : VKIC, TYPE="class-4" !type TBD

  XCSP1h  : HKIC, TYPE="class-4" !type TBD
  XCSP3h  : HKIC, TYPE="class-4" !type TBD
  XCSP5h  : HKIC, TYPE="class-4" !type TBD
  XCSP7h  : HKIC, TYPE="class-4" !type TBD
  XCSP9h  : HKIC, TYPE="class-4" !type TBD
  XCSP11h : HKIC, TYPE="class-4" !type TBD
  XCSP13h : HKIC, TYPE="class-4" !type TBD

  YCSP2h  : VKIC, TYPE="class-4" !type TBD
  YCSP4h  : VKIC, TYPE="class-4" !type TBD
  YCSP6h  : VKIC, TYPE="class-4" !type TBD
  YCSP8h  : VKIC, TYPE="class-4" !type TBD
  YCSP10h : VKIC, TYPE="class-4" !type TBD
  YCSP12h : VKIC, TYPE="class-4" !type TBD

  XCSP1d  : HKIC, TYPE="class-4" !type TBD
  YCSP2d  : VKIC, TYPE="class-4" !type TBD

! stoppers

  STSP5s  : INST, TYPE="BCS STOPPER" !center of BCS stopper

  STSP6ha : INST, TYPE="@0,BCS STOPPER" !BCS stopper
  STSP6hb : INST                        !center of STSP6hb PPS stopper in HXR
  STSP6hc : INST                        !1st PPS backup stopper for STSP6hb
  STSP6hd : INST                        !2nd PPS backup stopper for STSP6hb

! SROT to remove rotation angle

  AROSP1s := -0.829141820717E-5
  AROSP1h := -0.414577244206E-5
  AROSP2h :=  0.946849053318E-5
  AROSP3h := -AROSP2h

  ROSP1s : SROT, ANGLE=AROSP1s
  ROSP1h : SROT, ANGLE=AROSP1h
  ROSP2h : SROT, ANGLE=AROSP2h
  ROSP3h : SROT, ANGLE=AROSP3h

! other diagnostic

  IMSP0s : IMON !diagnostic average current monitor in SPS
  IMSP0h : IMON !diagnostic average current monitor in SPH
  IMSP0d : IMON !diagnostic average current monitor in SPD

  IMSP1d : IMON, TYPE="@0,BCS ACM" !BCS current monitor in SPD
  IMSP2d : IMON, TYPE="@0,BCS ACM" !BCS current monitor in SPD

  PCSP1s : ECOL, L=LPCSP, TYPE="@0,BCS PC" !BCS protection collimator in SPS (size TBD)
  PCSP2s : ECOL, L=LPCSP, TYPE="@0,BCS PC" !BCS protection collimator in SPS (size TBD)
  PCSP1h : ECOL, L=LPCSP, TYPE="@0,BCS PC" !BCS protection collimator in SPH (size TBD)
  PCSP2h : ECOL, L=LPCSP, TYPE="@0,BCS PC" !BCS protection collimator in SPH (size TBD)
  PCSP1d : ECOL, L=LPCSP, TYPE="@0,BCS PC" !BCS protection collimator in SPD (size TBD)
  PCSP2d : ECOL, L=LPCSP, TYPE="@0,BCS PC" !BCS protection collimator in SPD (size TBD)
  PCSP3d : ECOL, L=LPCSP, TYPE="@0,BCS PC" !BCS protection collimator in SPD (size TBD)

  BTMSP1s : INST, TYPE="@0,BCS BTM" !Burn-Through-Monitor behind PCSP1s
  BTMSP2s : INST, TYPE="@0,BCS BTM" !Burn-Through-Monitor behind PCSP2s
  BTMSP1h : INST, TYPE="@0,BCS BTM" !Burn-Through-Monitor behind PCSP1h
  BTMSP2h : INST, TYPE="@0,BCS BTM" !Burn-Through-Monitor behind PCSP2h
  BTMSP1d : INST, TYPE="@0,BCS BTM" !Burn-Through-Monitor behind PCSP1d
  BTMSP2d : INST, TYPE="@0,BCS BTM" !Burn-Through-Monitor behind PCSP2d
  BTMSP3d : INST, TYPE="@0,BCS BTM" !Burn-Through-Monitor behind PCSP3d

  WSSP1d : WIRE, TYPE="fast" !to measure beam size, energy before BSY dump

  OTRSPDMP : PROF, TYPE="@0,OTR" !OTR screen before BSY dump

! beamlines

  SPRDk : LINE=(BEGSP,&
                BKYSP1ha,BKYSP1hb,DSPBK1,BKYSP1sa,BKYSP1sb,DSPBK2,&
                BKYSP2ha,BKYSP2hb,DSPBK3,BKYSP2sa,BKYSP2sb,DSPBK4,&
                BKYSP3ha,BKYSP3hb,DSPBK5,BKYSP3sa,BKYSP3sb,DSP1  ,&
                BLXSPha ,BLXSPhb ,DSPBLX,BLXSPsa ,BLXSPsb)

  SPRDs : LINE=(SEQ06BEG,&
                SPRDk,ROSP1s,DSP2sa ,BYSP1sa,BYSP1sb,DSP2sb ,&
                                     BYSP2sa,BYSP2sb,CNTSP1S,DSP2sc ,&
                QSP1s,QSP1s ,DSP3sa ,BPMSP1s,DSP3sb ,XCSP1s ,DSP3sc ,&
                QSP2s,QSP2s ,DSP4sa ,BPMSP2s,DSP4sb ,YCSP2s ,DSP4sc ,&
                                                     IMSP0s ,DSP4sd ,&
                BXSP1sa,BXSP1sb             ,DSP5sa ,XCSP3s ,DSP5sb ,&
                QSP3s,QSP3s ,DSP6sa ,BPMSP3s,DSP6sb ,YCSP4s ,DSP6sc ,&
                QSP4s,QSP4s ,DSP7sa ,BPMSP4s,DSP7sb ,PCSP1s ,BTMSP1s,DSP7sc ,&
                                                     XCSP5s ,DSP7sd ,&
                QSP5s,QSP5s ,DSP8sa ,BPMSP5s,DSP8sb ,STSP5s ,DSP8sc ,&
                                                     YCSP6s ,DSP8sd ,&
                QSP6s,QSP6s ,DSP9sa ,BPMSP6s,DSP9sb ,XCSP7s ,DSP9sc ,&
                QSP7s,QSP7s ,DSP10sa,BPMSP7s,DSP10sb,&
                BXSP2sa,BXSP2sb             ,DSP11sa,PCSP2s ,BTMSP2s,DSP11sb,&
                                                     YCSP8s ,DSP11sc,&
                QSP8s,QSP8s ,DSP12sa,BPMSP8s,DSP12sb,XCSP9s ,DSP12sc,&
                QSP9s,QSP9s ,DSP13sa,BPMSP9s,DSP13sb,&
                BXSP3sa,BXSP3sb,CNTSP2S)

  SPRDh : LINE=(SEQ11BEG,&
                SPRDk,ROSP1h ,DSP2ha   ,BYSP1ha ,BYSP1hb,DSP2hb ,&
                                        BYSP2ha ,BYSP2hb,CNTSP1H,DSP2hc,&
                QSP1h ,QSP1h ,DSP3ha   ,BPMSP1h ,DSP3hb ,&
                                                 XCSP1h ,DSP3hc ,&
                                        BPMSP2h ,DSP3hd ,&
                QSP2h ,QSP2h ,DSP4ha   ,YCSP2h  ,DSP4hb ,&
                                                 IMSP0h ,DSP4hc ,&
                BRSP1ha,BRSP1hb,ROSP2h ,DSP5ha  ,PCSP1h ,BTMSP1h,DSP5hb ,&
                                                 XCSP3h ,DSP5hc ,&
                QSP3h ,QSP3h ,DSP6ha   ,BPMSP3h ,DSP6hb ,&
                                                 YCSP4h ,DSP6hc ,&
                QSP4h ,QSP4h ,DSP7ha   ,BPMSP4h ,DSP7hb ,&
                                                 XCSP5h ,DSP7hc ,&
                QSP5h ,QSP5h ,DSP8ha   ,BPMSP5h ,DSP8hb ,&
                                                 YCSP6h ,DSP8hc ,&
                QSP6h ,QSP6h ,DSP9ha   ,BPMSP6h ,DSP9hb ,&
                                        STSP6ha ,DSP9hc ,STSP6hb,DSP9hd,&
                                        STSP6hc ,DSP9he ,STSP6hd,DSP9hf,&
                                        BPMSP7h ,DSP9hg ,&
                QSP7h ,QSP7h ,DSP10ha  ,XCSP7h  ,DSP10hb,&
                                                 YCSP8h ,DSP10hc,&
                QSP8h ,QSP8h ,DSP11ha  ,BPMSP8h ,DSP11hb,&
                                        BPMSP9h ,DSP11hc,&
                QSP9h ,QSP9h ,DSP12ha,           XCSP9h ,DSP12hb,&
                                                 YCSP10h,DSP12hc,&
                QSP10h,QSP10h,DSP13ha  ,BPMSP10h,DSP13hb,&
                                                 XCSP11h,DSP13hc,&
                QSP11h,QSP11h,DSP14ha  ,BPMSP11h,DSP14hb,ROSP3h ,&
                BRSP2ha,BRSP2hb,CNTSP2H,DSP15ha ,PCSP2h ,BTMSP2h,DSP15hb,&
                                        BPMSP12h,DSP15hc,&
                QSP12h,QSP12h,DSP16ha  ,YCSP12h ,DSP16hb,&
                                                 XCSP13h,DSP16hc,&
                QSP13h,QSP13h,DSP17ha  ,BPMSP13h,DSP17hb,&
                BXSP1ha,BXSP1hb,CNTSP3H)

  SPRDd : LINE=(SEQ15BEG,&
                SPRDk      ,DSP2da1,BPMSP1d,DSP2da2,&
                                    MRFBSP1d,DSP2db,PCSP1d,BTMSP1d,DSP2dc,&
                                    XCSP1d ,DSP2dd,&
                QSP1d,QSP1d,DSP3da         ,DSP3db,IMSP0d,DSP3dc,MRFBSP2d,&
                                    BPMSP2d,DSP3dd,&
                QSP2d,QSP2d,DSP4da ,YCSP2d ,DSP4db,&
                BYSP1da,BYSP1db,DSP5da,WSSP1d  ,DSP5db,BPMSP3d,DSP5dc,&
                BYSP2da,BYSP2db,DSP6da,IMSP1d  ,DSP6db,PCSP2d ,BTMSP2d,DSP6dc,&
                                DSP6dd,OTRSPDMP,DSP6de,BPMSP4d,DSP6df ,&
                DBXSP1d,DBXSP1d,DSP7da,IMSP2d  ,DSP7db,PCSP3d ,BTMSP3d,DSP7dc,&
                MUWALLd,DWALLad,D10Jd ,DUMPBSY ,&
                ENDSPD,&
                SEQ15END)

  RETURN
