
! *** OPTICS=AD_ACCEL-14SEP22 ***

! LCLS2sc DASEL

! ==============================================================================
! Modification History
! ------------------------------------------------------------------------------
! 26-MAR-2020, M. Woodley
!  * DASEL is being funded off-project ... undefer everything
! 31-JAN-2020, Y. Nosochkov
!  * add vertical collimator (jaw or shielding plate) in front of BLRDAS to
!    prevent errant electrons entering the S30XL septum aperture
!    when S30XL and SXR kickers are off
!  * move PRDAS12 to 1.5 m d/s of QDAS11
!  * add dump u/s of QDAS12 for S30XL stage-A (reuse PEP-II stopper per Alev)
!  * rename DUMPS30XL to DUMPDAS for similar naming with other DASEL elements
! ------------------------------------------------------------------------------
! 25-NOV-2019, Y. Nosochkov
!  * update quad/corrector/BPM positions per L. Borzenets
!  * add two ACMs
! ------------------------------------------------------------------------------
! 23-AUG-2019, Y. Nosochkov
!  * split drift DDASBK3 in two halves DDASBK3h
! ------------------------------------------------------------------------------
! 31-OCT-2018, Y. Nosochkov
!  * move DASEL septum 3.685 m d/s to reduce each kicker BL to 25 Gm @ 8 GeV
!  * move BRDAS1 12.8 m u/s and increase septum angle to avoid interferences
!  * adjust other magnet positions, rematch geometry and optics
! ------------------------------------------------------------------------------
! 05-FEB-2018, Y. Nosochkov
!  * minor optics rematch
! 06-SEP-2017, Y. Nosochkov
!  * move BRDAS1 0.8 m downstream (K. Grouev), adjust positions of quads,
!    rematch optics
!  * update bore aperture of fast kickers to 20 mm (10 mm beam space +
!    10 mm pipe width)
! 22-AUG-2017, M. Woodley
!  * add WOODDOOR MARKer
! 19-JUL-2017, M. Woodley
!  * set ROLLRC = +1 by default (for MAD-to-BMAD); set to zero for Twiss in
!    MAD driver file
! ------------------------------------------------------------------------------
! 24-FEB-2017, Y. Nosochkov
!  * rename rolled BKYDAS1-6 to BKRDAS1-6 (per naming convention)
!  * move definitions of DDASA1, DDASA2 drifts to ALINE.xsif and rename
!  * add three quads QDAS1b, QDAS2b, QDAS18b for compatibility with 8 GeV 
! 23-NOV-2016, Y. Nosochkov
!  * reduce number of kickers from 7 to 6 (T. Beukers)
!  * correct minor error in kicker length formulas
!  * move PRDAS14 to center of the drift between quads QDAS14 and QDAS15
!  * move PRDAS17 to upstream side of QDAS17 to avoid interference with BXSP1H
! 02-NOV-2016, Y. Nosochkov
!  * match DASEL to new trajectory between BSY pulsed magnets and BXAM1
!  * increase x-offset of DASEL line between DC-bends from 35 to 40 cm
!  * add a note that BRDAS2 is a merge DC-bend which is turned ON for
!    DASEL beam to A-line or OFF for beam to A-line from BSY pulsed magnets 
! 21-SEP-2016, Y. Nosochkov
!  * add Y-corrector YCDAS1 (to compensate for missing trims on BYDAS1,2)
!  * move YCDAS15 downstream and rename to YCDAS17 (for better phase)
! 16-SEP-2016, Y. Nosochkov
!  * remove weak vertical bends BYDAS1, BYDAS2
!  * roll kicker/septum to compensate kicker vertical angle
!  * rematch geometry & optics to compensate kicker orbit & dispersion
! 26-AUG-2016, Y. Nosochkov
!  * change quad type from 2Q10 to 2Q4W
!  * rename QDAS1 -> QDAS1a, QDAS2 -> QDAS2a
! 17-AUG-2016, Y. Nosochkov
!  * add 3 BPMs (2 for MPS), 5 dipole correctors, 3 profile monitors
! 05-AUG-2016, Y. Nosochkov
!  * resolve interferences:
!    move QDAS1&2 and BYDAS2 0.815 m downstream
!    move QDAS19 0.6 m upstream --> this will move QDAS17 0.45 m upstream
!  * increase the number of kickers to 7 and move them 3 m upstream,
!    note: this will also require moving dumpline BPMSP1D 3 m upstream
! 30-APR-2016, Y. Nosochkov
!  * initial lattice
! ------------------------------------------------------------------------------

! NOTE: ABRDAS2 and TBRDAS2 are defined in common.xsif

! ------------------------------------------------------------------------------
! DASEL
! ------------------------------------------------------------------------------

! Six rolled vertical kickers aligned along the BSY dumpline axis

  GBKRDAS := 0.02            !kicker bore gap (m)
  ZBKRDAS := 1.0             !kicker straight length (m)
  TBKRDAS := -0.030150284271 !kicker tilt angle relative to y-axis (rad)

  ABKRDAS0  := -0.56211349418E-3
  ABKRDAS   := ABKRDAS0 *SETDA        !total kicker angle (rad)
  ABKRDAS1  := ASIN(1*SIN(ABKRDAS)/6) !1st kicker angle (rad)
  ABKRDAS12 := ASIN(2*SIN(ABKRDAS)/6) !1st+2nd kicker angle (rad)
  ABKRDAS13 := ASIN(3*SIN(ABKRDAS)/6) !1+2+3 kicker angle (rad)
  ABKRDAS14 := ASIN(4*SIN(ABKRDAS)/6) !1+2+3+4 kicker angle (rad)
  ABKRDAS15 := ASIN(5*SIN(ABKRDAS)/6) !1+2+3+4+5 kicker angle (rad)
  ABKRDAS2  := ABKRDAS12-ABKRDAS1     !2nd kicker angle (rad)
  ABKRDAS3  := ABKRDAS13-ABKRDAS12    !3rd kicker angle (rad)
  ABKRDAS4  := ABKRDAS14-ABKRDAS13    !4th kicker angle (rad)
  ABKRDAS5  := ABKRDAS15-ABKRDAS14    !5th kicker angle (rad)
  ABKRDAS6  := ABKRDAS  -ABKRDAS15    !6th kicker angle (rad)

  LBKRDAS1  := 1*ZBKRDAS/(1-ABKRDAS1 *ABKRDAS1 /6)
  LBKRDAS12 := 2*ZBKRDAS/(1-ABKRDAS12*ABKRDAS12/6)
  LBKRDAS13 := 3*ZBKRDAS/(1-ABKRDAS13*ABKRDAS13/6)
  LBKRDAS14 := 4*ZBKRDAS/(1-ABKRDAS14*ABKRDAS14/6)
  LBKRDAS15 := 5*ZBKRDAS/(1-ABKRDAS15*ABKRDAS15/6)
  LBKRDAS   := 6*ZBKRDAS/(1-ABKRDAS  *ABKRDAS  /6)
  LBKRDAS2  :=   LBKRDAS12-LBKRDAS1
  LBKRDAS3  :=   LBKRDAS13-LBKRDAS12
  LBKRDAS4  :=   LBKRDAS14-LBKRDAS13
  LBKRDAS5  :=   LBKRDAS15-LBKRDAS14
  LBKRDAS6  :=   LBKRDAS  -LBKRDAS15

  BKRDAS1a : SBEN, TYPE="0.787K35.4", L=LBKRDAS1/2, ANGLE=ABKRDAS1/2, &
    E1=0         , E2=0, FINT=0.5, FINTX=0, HGAP=GBKRDAS/2, TILT=PI/2+TBKRDAS
  BKRDAS1b : SBEN, TYPE="0.787K35.4", L=LBKRDAS1/2, ANGLE=ABKRDAS1/2, &
    E2=ABKRDAS1  , E1=0, FINT=0, FINTX=0.5, HGAP=GBKRDAS/2, TILT=PI/2+TBKRDAS

  BKRDAS2a : SBEN, TYPE="0.787K35.4", L=LBKRDAS2/2, ANGLE=ABKRDAS2/2, &
    E1=-ABKRDAS1 , E2=0, FINT=0.5, FINTX=0, HGAP=GBKRDAS/2, TILT=PI/2+TBKRDAS
  BKRDAS2b : SBEN, TYPE="0.787K35.4", L=LBKRDAS2/2, ANGLE=ABKRDAS2/2, &
    E2= ABKRDAS12, E1=0, FINT=0, FINTX=0.5, HGAP=GBKRDAS/2, TILT=PI/2+TBKRDAS

  BKRDAS3a : SBEN, TYPE="0.787K35.4", L=LBKRDAS3/2, ANGLE=ABKRDAS3/2, &
    E1=-ABKRDAS12, E2=0, FINT=0.5, FINTX=0, HGAP=GBKRDAS/2, TILT=PI/2+TBKRDAS
  BKRDAS3b : SBEN, TYPE="0.787K35.4", L=LBKRDAS3/2, ANGLE=ABKRDAS3/2, &
    E2= ABKRDAS13, E1=0, FINT=0, FINTX=0.5, HGAP=GBKRDAS/2, TILT=PI/2+TBKRDAS

  BKRDAS4a : SBEN, TYPE="0.787K35.4", L=LBKRDAS4/2, ANGLE=ABKRDAS4/2, &
    E1=-ABKRDAS13, E2=0, FINT=0.5, FINTX=0, HGAP=GBKRDAS/2, TILT=PI/2+TBKRDAS
  BKRDAS4b : SBEN, TYPE="0.787K35.4", L=LBKRDAS4/2, ANGLE=ABKRDAS4/2, &
    E2= ABKRDAS14, E1=0, FINT=0, FINTX=0.5, HGAP=GBKRDAS/2, TILT=PI/2+TBKRDAS

  BKRDAS5a : SBEN, TYPE="0.787K35.4", L=LBKRDAS5/2, ANGLE=ABKRDAS5/2, &
    E1=-ABKRDAS14, E2=0, FINT=0.5, FINTX=0, HGAP=GBKRDAS/2, TILT=PI/2+TBKRDAS
  BKRDAS5b : SBEN, TYPE="0.787K35.4", L=LBKRDAS5/2, ANGLE=ABKRDAS5/2, &
    E2= ABKRDAS15, E1=0, FINT=0, FINTX=0.5, HGAP=GBKRDAS/2, TILT=PI/2+TBKRDAS

  BKRDAS6a : SBEN, TYPE="0.787K35.4", L=LBKRDAS6/2, ANGLE=ABKRDAS6/2, &
    E1=-ABKRDAS15, E2=0, FINT=0.5, FINTX=0, HGAP=GBKRDAS/2, TILT=PI/2+TBKRDAS
  BKRDAS6b : SBEN, TYPE="0.787K35.4", L=LBKRDAS6/2, ANGLE=ABKRDAS6/2, &
    E2= ABKRDAS  , E1=0, FINT=0, FINTX=0.5, HGAP=GBKRDAS/2, TILT=PI/2+TBKRDAS

! 2-hole rolled horizontal septum aligned along the BSY dumpline axis

  GBLRDAS := GBLSP !septum gap height (m)
  ZBLRDAS := LBLSP !septum straight length (m)

  ABLRDAS0   := -0.018635912887
  ABLRDAS    := ABLRDAS0 *SETDA      !septum bending angle (rad)
  ABLRDASa   := ASIN(SIN(ABLRDAS)/2) !angle per 1st half of the septum
  ABLRDASb   := ABLRDAS-ABLRDASa     !angle per 2nd half of the septum
  ABLRDAS_2  := ABLRDAS   *ABLRDAS
  ABLRDAS_4  := ABLRDAS_2 *ABLRDAS_2
  ABLRDASa_2 := ABLRDASa  *ABLRDASa
  ABLRDASa_4 := ABLRDASa_2*ABLRDASa_2

  LBLRDAS  := ZBLRDAS   /(1-ABLRDAS_2/6 +ABLRDAS_4/120 )/COS(ABKRDAS)
  LBLRDASa := ZBLRDAS/2 /(1-ABLRDASa_2/6+ABLRDASa_4/120)/COS(ABKRDAS)
  LBLRDASb := LBLRDAS-LBLRDASa

  BLRDASa : SBEN, TYPE="0.625SD38.98", L=LBLRDASa, ANGLE=ABLRDASa, &
            E1=0, E2=0      , FINT=0.5, FINTX=0, HGAP=GBLRDAS/2, TILT=TBKRDAS
  BLRDASb : SBEN, TYPE="0.625SD38.98", L=LBLRDASb, ANGLE=ABLRDASb, &
            E1=0, E2=ABLRDAS, FINT=0, FINTX=0.5, HGAP=GBLRDAS/2, TILT=TBKRDAS

! rolled DC-bends (BLmax of 1.0D38.37 = 7.35 kGm per J. Amann)

  ABRDAS1 := 0.019101579697
  LBRDAS1 := LBSP*ABRDAS1/(2*SIN(ABRDAS1/2)) !BRDAS1 path length (m)
  TBRDAS1 := 0.219255742276                  !BRDAS1 roll angle (rad)

  BRDAS1a : SBEN, TYPE="1.0D38.37", L=LBRDAS1/2, ANGLE=ABRDAS1/2, &
            E1=ABRDAS1/2, E2=0, FINT=0.5, FINTX=0, HGAP=GBSP/2, TILT=TBRDAS1
  BRDAS1b : SBEN, TYPE="1.0D38.37", L=LBRDAS1/2, ANGLE=ABRDAS1/2, &
            E1=0, E2=ABRDAS1/2, FINT=0, FINTX=0.5, HGAP=GBSP/2, TILT=TBRDAS1

! Note: BRDAS2 is a merge DC-bend which is either turned ON to operate
!       DASEL beam in A-line, or turned OFF to operate beam in A-line from
!       BSY pulsed magnets

  LBRDAS2 := LBSP*ABRDAS2/(2*SIN(ABRDAS2/2)) !BRDAS2 path length (m)

  BRDAS2a : SBEN, TYPE="1.0D38.37", L=LBRDAS2/2, ANGLE=ABRDAS2/2, &
            E1=ABRDAS2/2, E2=0, FINT=0.5, FINTX=0, HGAP=GBSP/2, TILT=TBRDAS2
  BRDAS2b : SBEN, TYPE="1.0D38.37", L=LBRDAS2/2, ANGLE=ABRDAS2/2, &
            E1=0, E2=ABRDAS2/2, FINT=0, FINTX=0.5, HGAP=GBSP/2, TILT=TBRDAS2

! define unsplit SBENs for BMAD ... not used by MAD

  BKRDAS1 : SBEN, TYPE="0.787K35.4", L=LBKRDAS1, ANGLE=ABKRDAS1, &
    E1=0, FINT=0.5, E2=ABKRDAS1, FINTX=0.5, &
    HGAP=GBKRDAS/2, TILT=PI/2+TBKRDAS
  BKRDAS2 : SBEN, TYPE="0.787K35.4", L=LBKRDAS2, ANGLE=ABKRDAS2, &
    E1=-ABKRDAS1 , FINT=0.5, E2=ABKRDAS12, FINTX=0.5, &
    HGAP=GBKRDAS/2, TILT=PI/2+TBKRDAS
  BKRDAS3 : SBEN, TYPE="0.787K35.4", L=LBKRDAS3, ANGLE=ABKRDAS3, &
    E1=-ABKRDAS12, FINT=0.5, E2=ABKRDAS13, FINTX=0.5, &
    HGAP=GBKRDAS/2, TILT=PI/2+TBKRDAS
  BKRDAS4 : SBEN, TYPE="0.787K35.4", L=LBKRDAS4, ANGLE=ABKRDAS4, &
    E1=-ABKRDAS13, FINT=0.5, E2=ABKRDAS14, FINTX=0.5, &
    HGAP=GBKRDAS/2, TILT=PI/2+TBKRDAS
  BKRDAS5 : SBEN, TYPE="0.787K35.4", L=LBKRDAS5, ANGLE=ABKRDAS5, &
    E1=-ABKRDAS14, FINT=0.5, E2=ABKRDAS15, FINTX=0.5, &
    HGAP=GBKRDAS/2, TILT=PI/2+TBKRDAS
  BKRDAS6 : SBEN, TYPE="0.787K35.4", L=LBKRDAS6, ANGLE=ABKRDAS6, &
    E1=-ABKRDAS15, FINT=0.5, E2=ABKRDAS, FINTX=0.5, &
    HGAP=GBKRDAS/2, TILT=PI/2+TBKRDAS
  BLRDAS : SBEN, TYPE="0.625SD38.98", L=LBLRDAS, ANGLE=ABLRDAS, &
    E1=0, FINT=0.5, E2=ABLRDAS, FINTX=0.5, &
    HGAP=GBLRDAS/2, TILT=TBKRDAS
  BRDAS1 : SBEN, TYPE="1.0D38.37", L=LBRDAS1, ANGLE=ABRDAS1, &
    E1=ABRDAS1/2, FINT=0.5, E2=ABRDAS1/2, FINTX=0.5, &
    HGAP=GBSP/2, TILT=TBRDAS1
  BRDAS2 : SBEN, TYPE="1.0D38.37", L=LBRDAS2, ANGLE=ABRDAS2, &
    E1=ABRDAS2/2, FINT=0.5, E2=ABRDAS2/2, FINTX=0.5, &
    HGAP=GBSP/2, TILT=TBRDAS2

! quads

  KQDAS1  := -0.453695580774
  KQDAS2  :=  0.456501974891
  KQDAS11 := -0.29960177747
  KQDAS12 :=  0.324000602479
  KQDAS13 := -0.68249002529
  KQDAS14 :=  0.519096986888
  KQDAS17 := -0.577539463501
  KQDAS18 :=  0.540526371867
  KQDAS19 := -0.314095531193
  KQDAS15 := -KQDAS14
  KQDAS16 :=  KQDAS14

  QDAS1a : QUAD, TYPE="2Q4W", L=LQM/2, K1=KQDAS1 , APER=rQM
  QDAS1b : QUAD, TYPE="2Q4W", L=LQM/2, K1=KQDAS1 , APER=rQM
  QDAS2a : QUAD, TYPE="2Q4W", L=LQM/2, K1=KQDAS2 , APER=rQM
  QDAS2b : QUAD, TYPE="2Q4W", L=LQM/2, K1=KQDAS2 , APER=rQM
  QDAS11 : QUAD, TYPE="2Q4W", L=LQM/2, K1=KQDAS11, APER=rQM
  QDAS12 : QUAD, TYPE="2Q4W", L=LQM/2, K1=KQDAS12, APER=rQM
  QDAS13 : QUAD, TYPE="2Q4W", L=LQM/2, K1=KQDAS13, APER=rQM
  QDAS14 : QUAD, TYPE="2Q4W", L=LQM/2, K1=KQDAS14, APER=rQM
  QDAS15 : QUAD, TYPE="2Q4W", L=LQM/2, K1=KQDAS15, APER=rQM
  QDAS16 : QUAD, TYPE="2Q4W", L=LQM/2, K1=KQDAS16, APER=rQM
  QDAS17 : QUAD, TYPE="2Q4W", L=LQM/2, K1=KQDAS17, APER=rQM
  QDAS18a: QUAD, TYPE="2Q4W", L=LQM/2, K1=KQDAS18, APER=rQM
  QDAS18b: QUAD, TYPE="2Q4W", L=LQM/2, K1=KQDAS18, APER=rQM
  QDAS19 : QUAD, TYPE="2Q4W", L=LQM/2, K1=KQDAS19, APER=rQM

! drifts

  LPCBLRDAS  := 0.0 !thickness of PCBLRDAS -- to be determined !!!!!

  ZDDASBK    := 0.3      !Z-space between consecutive kickers
  ZDDASBLX   := 18.75 +3.685 !Z-space between the last kicker and the septum
  ZDDASBLXa  := 5.145    !set for y=5mm at BPM
  ZDDASBLXb  := ZDDASBLX-ZDDASBLXa
  ZDDASBLXb2 := 0.0      !distance from PCBLRDAS to BLRDAS to be determined !!!!!
  ZDDASBLXb1 := ZDDASBLXb-ZDDASBLXb2-LPCBLRDAS

  LDDASBK1   := ZDDASBK   /COS(ABKRDAS1)
  LDDASBK2   := ZDDASBK   /COS(ABKRDAS12)
  LDDASBK3   := ZDDASBK   /COS(ABKRDAS13)
  LDDASBK4   := ZDDASBK   /COS(ABKRDAS14)
  LDDASBK5   := ZDDASBK   /COS(ABKRDAS15)
  LDDASBLXa  := ZDDASBLXa /COS(ABKRDAS)
  LDDASBLXb  := ZDDASBLXb /COS(ABKRDAS)
  LDDASBLXb1 := ZDDASBLXb1/COS(ABKRDAS)
  LDDASBLXb2 := ZDDASBLXb2/COS(ABKRDAS)

  DDASBK1   : DRIF, L=LDDASBK1
  DDASBK2   : DRIF, L=LDDASBK2
  DDASBK3h  : DRIF, L=LDDASBK3/2
  DDASBK4   : DRIF, L=LDDASBK4
  DDASBK5   : DRIF, L=LDDASBK5
  DDASBLXa  : DRIF, L=LDDASBLXa
  DDASBLXb  : DRIF, L=LDDASBLXb
  DDASBLXb1 : DRIF, L=LDDASBLXb1
  DDASBLXb2 : DRIF, L=LDDASBLXb2

  LDUMPDAS := 0.2032 !dump length = 8" = slug length of PEP2 inj. stoppper

  LDDASQQ := 0.1357
  LDDAS1  := 23.2085 -0.761426-0.000133
  LDDAS2a := 0.5
  LDDAS2b := 0.5 +0.761426-0.025296+0.000133-0.000004
  LDDAS3  := 0.5 +0.025296+0.000004
 dLDDAS4  := 0.0
  LDDAS4  := 1.9 +dLDDAS4
 dLDDAS5  := 0.765561526879E-2
  LDDAS5  := 56.315-(LBLSP+LBSP)/2-4*LQM-2*LDDASQQ &
             -LDDAS1-LDDAS2a-LDDAS2b-LDDAS3-LDDAS4 +dLDDAS5
  LDDAS5b := 12.05*0.0254 !=0.30607 per C. Clarke
  LDDAS5c := 1.0
  LDDAS5a := LDDAS5-LDDAS5b-LDDAS5c

 dLDDAS11  := 0.0
  LDDAS11  := 5.5-(LBSP+LQM)/2 +dLDDAS11 -0.7
  LDDAS11a := 0.5 +0.300006+0.000003
  LDDAS11b := LDDAS11-LDDAS11a
 dLDDAS12  := 0.0
  LDDAS12  := 14.1 +dLDDAS12 +0.7
  LDDAS12a := 1.5
  LDDAS12b := 9.877925-LDDAS12a-LDUMPDAS/2
  LDDAS12c := LDDAS12-LDDAS12a-LDDAS12b-LDUMPDAS
  LDDAS13  := 18.128190337721 +0.5
 !LDDAS13a := 2.97
 !LDDAS13b := LDDAS13-LDDAS13a
  LDDAS14  := 18.128190337721 -0.5+0.79997
  LDDAS14b := 0.5
  LDDAS14a := LDDAS14-LDDAS14b
  LDDAS14aa := 14.473260664942 -0.5  !set Z=3050.512000 m at WOODDOOR
  LDDAS14ab := LDDAS14a-LDDAS14aa
  LDDAS17  := 18.128190337721 -0.79997
  LDDAS17b := 0.5
  LDDAS17c := 0.5
  LDDAS17a := LDDAS17-LDDAS17b-LDDAS17c
  LDDAS18  := 15.540177251451
 dLDDAS19  := 0.0
  LDDAS19  := 9.24017725092-LDDASQQ-LQM +dLDDAS19
 dLDDAS20  := 0.0
  LDDAS20  := 22.55-(LBSP+LQM)/2 +dLDDAS20
  LDDAS20a := 0.5 -0.05163
  LDDAS20b := LDDAS20-LDDAS20a
 dLDDAS    := 0.0
  LDDAS    := (158.566506190974298-10*LQM-LBSP-LDDASQQ-LDDAS11-LDDAS12 &
              -LDDAS13-LDDAS14-LDDAS17-LDDAS18-LDDAS19-LDDAS20)/2 +dLDDAS
  LDDAS15  := LDDAS
  LDDAS15a := LDDAS/2 -0.79997
  LDDAS15b := LDDAS15-LDDAS15a
  LDDAS16  := LDDAS

  DDASQQ  : DRIF, L=LDDASQQ
  DDAS1   : DRIF, L=LDDAS1
  DDAS2a  : DRIF, L=LDDAS2a
  DDAS2b  : DRIF, L=LDDAS2b
  DDAS3   : DRIF, L=LDDAS3
  DDAS4   : DRIF, L=LDDAS4
  DDAS5a  : DRIF, L=LDDAS5a
  DDAS5b  : DRIF, L=LDDAS5b
  DDAS5c  : DRIF, L=LDDAS5c
  DDAS11a : DRIF, L=LDDAS11a
  DDAS11b : DRIF, L=LDDAS11b
  DDAS12a : DRIF, L=LDDAS12a
  DDAS12b : DRIF, L=LDDAS12b
  DDAS12c : DRIF, L=LDDAS12c
  DDAS13  : DRIF, L=LDDAS13
  DDAS14a : DRIF, L=LDDAS14a
  DDAS14aa : DRIF, L=LDDAS14aa
  DDAS14ab : DRIF, L=LDDAS14ab
  DDAS14b : DRIF, L=LDDAS14b
  DDAS15a : DRIF, L=LDDAS15a
  DDAS15b : DRIF, L=LDDAS15b
  DDAS16  : DRIF, L=LDDAS16
  DDAS17a : DRIF, L=LDDAS17a
  DDAS17b : DRIF, L=LDDAS17b
  DDAS17c : DRIF, L=LDDAS17c
  DDAS18  : DRIF, L=LDDAS18
  DDAS19  : DRIF, L=LDDAS19
  DDAS20a : DRIF, L=LDDAS20a
  DDAS20b : DRIF, L=LDDAS20b

! roll angles

  ARODAS1 :=  0.523790078614E-5
  ARODAS2 :=  0.387294376318E-4
  ARODAS3 := -0.229813948141E-4

  RODAS1 : SROT, ANGLE=ARODAS1
  RODAS2 : SROT, ANGLE=ARODAS2
  RODAS3 : SROT, ANGLE=ARODAS3

! monitors

  BPMDAS   : MONI, TYPE="Stripline-5" !not rolled
  BPMDAS1  : MONI, TYPE="Stripline-5" !MPS BPM
  BPMDAS19 : MONI, TYPE="Stripline-5" !MPS BPM

! steering correctors
! Notes: trims on all bends are used as correctors as well,
!        rolled correctors are rolled 90 deg relative to rolled bends

  XCDAS1  : HKIC, TYPE="class-4"
  XCDAS14 : HKIC, TYPE="class-4"

  YCDAS1  : VKIC, TYPE="class-4"
  YCDAS17 : VKIC, TYPE="class-4"

  RCDAS11 : HKIC, TYPE="class-4"
  RCDAS19 : HKIC, TYPE="class-4"

  ROLLRC := +1 !+1 for survey to show RC roll angle, but zero for twiss

  RODAS11P : SROT, ANGLE=(TBRDAS1-PI/2) *ROLLRC
  RODAS11M : SROT, ANGLE=-RODAS11P[ANGLE]

  RODAS19P : SROT, ANGLE=(TBRDAS2-PI/2) *ROLLRC
  RODAS19M : SROT, ANGLE=-RODAS19P[ANGLE]

! profile monitors

  PRDAS12 : PROF, TYPE="YAG" !two YAG crystals 50 um thick and 1 mm thick)
  PRDAS14 : PROF, TYPE="PHOSPHOR"
  PRDAS17 : PROF, TYPE="PHOSPHOR"

! ACMs

  IMDAS1 : IMON, TYPE="BCS ACM"
  IMDAS2 : IMON, TYPE="BCS ACM"

! collimator in front of BLRDAS septum
! * this collimator should be attached to or be very close to the entrance
!   of the septum aperture with the non-zero field
! * the collimator length (thickness) is to be determined !!!!!
! * it protects against large amplitude errant electrons which may enter
!   the septum field aperture through turned off SXR and S30XL kickers
! * the collimator may look like a shielding plate or a jaw covering
!   the very bottom of the field aperture
! * only the bottom jaw is needed
! * it should not interfere with the no-field aperture
! * the collimator X,Y sizes are relative to the beam center in the septum
!   field aperture
! * the vertical size is determined by maximum Y-coordinate of errant electrons
!   at the septum entrance (=9.487mm measured from unkicked trajectory)
! * horizontal size is sufficient for the expected range of the
!   electron horizontal angles; a larger horizontal size is ok

  PCBLRDAS : RCOL, TYPE="VCOLL", L=LPCBLRDAS/COS(ABKRDAS), &
                   YSIZE=5.5E-3, XSIZE=10.E-3

! stage-A dump (reused PEP2 inj. stopper with 8" slug length per Alev)

  DUMPDAS : INST, TYPE="400W-dump", L=LDUMPDAS/2 !half-dump
 !DUMPDAS : MONI, TYPE="400W-dump", L=LDUMPDAS/2 !half-dump

! markers

  BEGDASEL : MARK
  ENDDASEL : MARK

! ------------------------------------------------------------------------------
! A-line adjustments
! ------------------------------------------------------------------------------

! quad strengths (also copy to SETK2scDA subroutine)

  COMMENT !causes redefinitions when using SETK2scDA
  KQ10 :=  0.04034296448
  KQ11 := -0.03865438496
  KQ19 :=  0.030550055348
  KQ20 := -0.125475886882E-2
  KQ27 := -0.074785603391
  KQ28 :=  0.041188876983
  KQ30 := -0.029276530035
  KQ38 :=  0.034027229146
  ENDCOMMENT

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

! beamlines

  BKRDAS1_full : LINE=(BKRDAS1a,BKRDAS1b)
  BKRDAS2_full : LINE=(BKRDAS2a,BKRDAS2b)
  BKRDAS3_full : LINE=(BKRDAS3a,BKRDAS3b)
  BKRDAS4_full : LINE=(BKRDAS4a,BKRDAS4b)
  BKRDAS5_full : LINE=(BKRDAS5a,BKRDAS5b)
  BKRDAS6_full : LINE=(BKRDAS6a,BKRDAS6b)
  BLRDAS_full  : LINE=(BLRDASa,BLRDASb)
  BRDAS1_full  : LINE=(BRDAS1a,BRDAS1b)
  BRDAS2_full  : LINE=(BRDAS2a,BRDAS2b)

  QDAS1b_full  : LINE=(QDAS1b,QDAS1b)
  QDAS1a_full  : LINE=(QDAS1a,QDAS1a)
  QDAS2a_full  : LINE=(QDAS2a,QDAS2a)
  QDAS2b_full  : LINE=(QDAS2b,QDAS2b)
  QDAS11_full  : LINE=(QDAS11,QDAS11)
  QDAS12_full  : LINE=(QDAS12,QDAS12)
  QDAS13_full  : LINE=(QDAS13,QDAS13)
  QDAS14_full  : LINE=(QDAS14,QDAS14)
  QDAS15_full  : LINE=(QDAS15,QDAS15)
  QDAS16_full  : LINE=(QDAS16,QDAS16)
  QDAS17_full  : LINE=(QDAS17,QDAS17)
  QDAS18a_full : LINE=(QDAS18a,QDAS18a)
  QDAS18b_full : LINE=(QDAS18b,QDAS18b)
  QDAS19_full  : LINE=(QDAS19,QDAS19)

  DUMPDAS_full : LINE=(DUMPDAS,DUMPDAS)

! stage-A and stage-B with dump in sector-30

  DASELSA : LINE=(&
    BKRDAS1_full,DDASBK1 ,&
    BKRDAS2_full,DDASBK2 ,&
    BKRDAS3_full,DDASBK3h,DDASBK3h,&
    BKRDAS4_full,DDASBK4 ,&
    BKRDAS5_full,DDASBK5 ,&
    BKRDAS6_full,DDASBLXa,BPMDAS  ,DDASBLXb1,PCBLRDAS,DDASBLXb2,&
    BLRDAS_full ,RODAS1  ,DDAS1   ,&
                 XCDAS1  ,DDAS2a  ,&
                 YCDAS1  ,DDAS2b  ,&
                 BPMDAS1 ,DDAS3   ,&
    QDAS1b_full,DDASQQ  ,&
    QDAS1a_full,DDAS4   ,&
    QDAS2a_full,DDASQQ  ,&
    QDAS2b_full,DDAS5a  ,IMDAS1  ,DDAS5b  ,IMDAS2 ,DDAS5c ,&
    BRDAS1_full,RODAS2  ,DDAS11a ,&
                RODAS11P,RCDAS11 ,RODAS11M,DDAS11b,&
    QDAS11_full,DDAS12a ,PRDAS12 ,DDAS12b ,DUMPDAS_full)

  DASELSB : LINE=(&
                 DDAS12c ,&
    QDAS12_full ,DDAS13  ,&
    QDAS13_full ,DDAS14aa,WOODDOOR,DDAS14ab,XCDAS14,DDAS14b,&
    QDAS14_full ,DDAS15a ,PRDAS14 ,DDAS15b ,&
    QDAS15_full ,DDAS16  ,&
    QDAS16_full ,DDAS17a ,PRDAS17 ,DDAS17b ,YCDAS17,DDAS17c,&
    QDAS17_full ,DDAS18  ,&
    QDAS18a_full,DDASQQ  ,&
    QDAS18b_full,DDAS19  ,&
    QDAS19_full ,DDAS20a ,BPMDAS19,DDAS20b ,RODAS3 ,&
    BRDAS2_full)

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

! stage-A and stage-B with dump in BSY (alternative design)

COMMENT
  DDAS12bc  : DRIF, L=LDDAS12b+LDDAS12c+LDUMPDAS
  DDAS14ab1 : DRIF, L=2.688023-LDUMPDAS/2
  DDAS14ab2 : DRIF, L=LDDAS14ab-DDAS14ab1[L]-LDUMPDAS


  DASELSA : LINE=(&
    BKRDAS1_full,DDASBK1 ,&
    BKRDAS2_full,DDASBK2 ,&
    BKRDAS3_full,DDASBK3h,DDASBK3h,&
    BKRDAS4_full,DDASBK4 ,&
    BKRDAS5_full,DDASBK5 ,&
    BKRDAS6_full,DDASBLXa,BPMDAS  ,DDASBLXb1,PCBLRDAS,DDASBLXb2,&
    BLRDAS_full ,RODAS1  ,DDAS1   ,&
                 XCDAS1  ,DDAS2a  ,&
                 YCDAS1  ,DDAS2b  ,&
                 BPMDAS1 ,DDAS3   ,&
    QDAS1b_full ,DDASQQ  ,&
    QDAS1a_full ,DDAS4   ,&
    QDAS2a_full ,DDASQQ  ,&
    QDAS2b_full ,DDAS5a  ,IMDAS1  ,DDAS5b  ,IMDAS2 ,DDAS5c ,&
    BRDAS1_full ,RODAS2  ,DDAS11a ,&
                 RODAS11P,RCDAS11 ,RODAS11M,DDAS11b,&
    QDAS11_full ,DDAS12a ,PRDAS12 ,DDAS12bc,&
    QDAS12_full ,DDAS13  ,&
    QDAS13_full ,DDAS14aa,WOODDOOR,DDAS14ab1,DUMPDAS,DUMPDAS)

  DASELSB : LINE=(&
                 DDAS14ab2,XCDAS14,DDAS14b ,&
    QDAS14_full ,DDAS15a ,PRDAS14 ,DDAS15b ,&
    QDAS15_full ,DDAS16  ,&
    QDAS16_full ,DDAS17a ,PRDAS17 ,DDAS17b ,YCDAS17,DDAS17c,&
    QDAS17_full ,DDAS18  ,&
    QDAS18a_full,DDASQQ  ,&
    QDAS18b_full,DDAS19  ,&
    QDAS19_full ,DDAS20a ,BPMDAS19,DDAS20b ,RODAS3 ,&
    BRDAS2_full)
ENDCOMMENT

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

  DASEL  : LINE=(DASELSA,DASELSB)

  DASELA : LINE=(BEGDASEL,DASEL,&
                 DA04b,RODAS19P,RCDAS19,RODAS19M,ENDDASEL,ALINEc)

  SPDASELA : LINE=(SPRDkh,SPRDks,SPRDda,DASELA)

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

  RETURN
