
! *** OPTICS=LCLS2sc28OCT14 ***

! LCLS2sc sector 10 dogleg plus match to bypass line

! ==============================================================================
! Modification History
! ------------------------------------------------------------------------------
! 28-OCT-2014, M. Woodley
!  * move stripline BPMs from quadrupole centers to ~0.543 m u/s of quadrupole
!    center per D. Hanquist and J. Amann
!  * add resistive-wall wakefield MARKer (for ELEGANT) per P. Emma
! ------------------------------------------------------------------------------
! 15-OCT-2014, M. Woodley
!  * add R56 compensation chicane
!  * adjust deferment/deprecation levels
! ------------------------------------------------------------------------------
! 07-AUG-2014, M. Woodley
!  * diagnostics complement per "Electron Beam Diagnostics Systems" PRD
!    (LCLSII-2.7-PR-0170)
!  * replace some dogleg stripline BPMs with cavity BPMs
!  * remove BC3
!  * decorate device TYPE attributes to indicate non-baseline status
! 17-APR-2014, M. Woodley
!  * add "CNT" MARKERs after dispersive areas (ELEGANT CENTERing)
! ------------------------------------------------------------------------------
! 26-MAR-2014, M. Woodley
!  * element names changed to conform to nomenclature PRD
! ------------------------------------------------------------------------------
! 01-MAR-2014, M. Woodley
!  * change BC3 dipole type from 1.0D38.37 to 1D19.7 (BC2 dipole)
! 14-JAN-2014, M. Woodley
!  * add BC3
! ------------------------------------------------------------------------------

  dZdog := 77.99997504 !Z-extent of dogleg

! ==============================================================================
! SBEN
! ------------------------------------------------------------------------------

! dogleg

! XOFF  : x-offset of bypass line (old PEP-II 9-GeV) w.r.t. old linac axis
!         (<0 is south)
! YOFF  : y-offset of bypass line (old PEP-II 9-GeV) w.r.t. old linac axis
!         (>0 is up)
! ROLLA : roll angle of sec-10 bends to get XOFF and YOFF bypass offsets

  GBR   := 0.0254          !1.0D38.37 gap height (m)
  LBR   := 1.0             !1.0D38.37 gap height (m)
  ANGA  := 0.024477314713  !dogleg bend angle (rad)
  XOFF  := -25.610*IN2M
  YOFF  := 25.570*IN2M
  ROLLA := -1.054575132367

  BRB1a : SBEN, TYPE="1.0D38.37", HGAP=GBR/2, L=LBR/2, ANGLE= ANGA/2, &
                E1= ANGA/2, E2=0, FINT=0.5, FINTX=0, TILT=ROLLA
  BRB1b : SBEN, TYPE="1.0D38.37", HGAP=GBR/2, L=LBR/2, ANGLE= ANGA/2, &
                E1=0, E2= ANGA/2, FINT=0, FINTX=0.5, TILT=ROLLA
  BRB2a : SBEN, TYPE="1.0D38.37", HGAP=GBR/2, L=LBR/2, ANGLE=-ANGA/2, &
                E1=-ANGA/2, E2=0, FINT=0.5, FINTX=0, TILT=ROLLA
  BRB2b : SBEN, TYPE="1.0D38.37", HGAP=GBR/2, L=LBR/2, ANGLE=-ANGA/2, &
                E1=0, E2=-ANGA/2, FINT=0, FINTX=0.5, TILT=ROLLA


! R56 compensation chicane:
!   BBCX..  = chicane bend field (kG) at 4 GeV
!   ABCX..  = chicane bend angle (rad)
!   LBCX..  = chicane bend path length (m)
!   ABCX..S = "short" half chicane bend angle (rad)
!   ABCX..L = "long" half chicane bend angle (rad)
!   LBCX..S = "short" half chicane bend path length (m)
!   LBCX..L = "long" half chicane bend path length (m)

  BBCXDLD     := 4.091923726641
  ARGXDLD     := ZBCC*BBCXDLD/Brhof
  ABCXDLD     := ASIN(ARGXDLD)
  ABCXDLD_2   := ABCXDLD*ABCXDLD
  ABCXDLD_4   := ABCXDLD_2*ABCXDLD_2
  ABCXDLD_6   := ABCXDLD_4*ABCXDLD_2
  SINCBCXDLD  := 1-ABCXDLD_2/6+ABCXDLD_4/120-ABCXDLD_6/5040
  LBCXDLD     := ZBCC/SINCBCXDLD
  ABCXDLDS    := ASIN(ARGXDLD/2)
  ABCXDLDS_2  := ABCXDLDS*ABCXDLDS
  ABCXDLDS_4  := ABCXDLDS_2*ABCXDLDS_2
  ABCXDLDS_6  := ABCXDLDS_4*ABCXDLDS_2
  SINCBCXDLDS := 1-ABCXDLDS_2/6+ABCXDLDS_4/120-ABCXDLDS_6/5040
  LBCXDLDS    := ZBCC/(2*SINCBCXDLDS)
  ABCXDLDL    := ABCXDLD-ABCXDLDS
  LBCXDLDL    := LBCXDLD-LBCXDLDS

  BCXDLD1a : SBEN, TYPE="@0,R56", HGAP=GBCC/2, L=LBCXDLDS, ANGLE=+ABCXDLDS, &
                   E1=0, FINT=0.5, FINTX=0
  BCXDLD1b : SBEN, TYPE="@0,R56", HGAP=GBCC/2, L=LBCXDLDL, ANGLE=+ABCXDLDL, &
                   E2=+ABCXDLD, FINT=0, FINTX=0.5
  BCXDLD2a : SBEN, TYPE="@0,R56", HGAP=GBCC/2, L=LBCXDLDL, ANGLE=-ABCXDLDL, &
                   E1=-ABCXDLD, FINT=0.5, FINTX=0
  BCXDLD2b : SBEN, TYPE="@0,R56", HGAP=GBCC/2, L=LBCXDLDS, ANGLE=-ABCXDLDS, &
                   E2=0, FINT=0, FINTX=0.5
  BCXDLD3a : SBEN, TYPE="@0,R56", HGAP=GBCC/2, L=LBCXDLDS, ANGLE=-ABCXDLDS, &
                   E1=0, FINT=0.5, FINTX=0
  BCXDLD3b : SBEN, TYPE="@0,R56", HGAP=GBCC/2, L=LBCXDLDL, ANGLE=-ABCXDLDL, &
                   E2=-ABCXDLD, FINT=0, FINTX=0.5
  BCXDLD4a : SBEN, TYPE="@0,R56", HGAP=GBCC/2, L=LBCXDLDL, ANGLE=+ABCXDLDL, &
                   E1=+ABCXDLD, FINT=0.5, FINTX=0
  BCXDLD4b : SBEN, TYPE="@0,R56", HGAP=GBCC/2, L=LBCXDLDS, ANGLE=+ABCXDLDS, &
                   E2=0, FINT=0, FINTX=0.5

! ==============================================================================
! QUAD
! ------------------------------------------------------------------------------

! dogleg

  KQDOG := 0.210962514633

  QDOG1 : QUAD, TYPE="1.625Q27.3", L=LQK/2, K1= KQDOG, APER=rQK
  QDOG2 : QUAD, TYPE="1.625Q27.3", L=LQK/2, K1=-KQDOG, APER=rQK
  QDOG3 : QUAD, TYPE="1.625Q27.3", L=LQK/2, K1= KQDOG, APER=rQK
  QDOG4 : QUAD, TYPE="1.625Q27.3", L=LQK/2, K1=-KQDOG, APER=rQK
  QDOG5 : QUAD, TYPE="1.625Q27.3", L=LQK/2, K1= KQDOG, APER=rQK
  QDOG6 : QUAD, TYPE="1.625Q27.3", L=LQK/2, K1=-KQDOG, APER=rQK
  QDOG7 : QUAD, TYPE="1.625Q27.3", L=LQK/2, K1= KQDOG, APER=rQK
  QDOG8 : QUAD, TYPE="1.625Q27.3", L=LQK/2, K1=-KQDOG, APER=rQK

  KQL1P :=  0.174493421865
  KQL2P := -0.165217807869
  KQL3P :=  0.221852312483
  KQL4P := -0.112485080643

! match to bypass line

  QL1P : QUAD, TYPE="1.97Q20", L=LQN/2, K1= KQL1P, APER=rQN
  QL2P : QUAD, TYPE="1.97Q10", L=LQL/2, K1= KQL2P, APER=rQL
  QL3P : QUAD, TYPE="2Q4W",    L=LQM/2, K1= KQL3P, APER=rQM
  QL4P : QUAD, TYPE="2Q4W",    L=LQM/2, K1= KQL4P, APER=rQM

! bypass line FODO

  KQBYP :=  0.060580505638 !45 degree per cell

  QBPF : QUAD, TYPE="2Q4", L=LQM/2, K1= KQBYP, APER=rQM !"QB01"
  QBPD : QUAD, TYPE="2Q4", L=LQM/2, K1=-KQBYP, APER=rQM !"QB02"

! ==============================================================================
! ROLL
! ------------------------------------------------------------------------------

  AROBRB1 := -0.12862097586E-3
  AROBRB2 := -AROBRB1

  ROBRB1 : SROT, ANGLE=AROBRB1
  ROBRB2 : SROT, ANGLE=AROBRB2

! ==============================================================================
! DRIF
! ------------------------------------------------------------------------------

! dogleg

  NQBD  := 8                    !number of dogleg quads
  LTOTA := 76.02294776001       !path length from BRB1-exit to BRB2-entrance
  LDBD  := (LTOTA+LBR)/(NQBD/2) !FODO cell half length
  dLDBD := -0.124816871989E-4   !adjustment for dispersion correction
  LDBDh := LDBD/2+dLDBD         !FODO cell half length

  DBD  : DRIF, L=LTOTA
  DBD0 : DRIF, L=(LDBDh-LBR-LQK)/2-4*dLDBD
  DBD1 : DRIF, L=LDBDh-LQK
  DBD2 : DRIF, L=LDBDh-LQK
  DBD3 : DRIF, L=LDBDh-LQK
  DBD4 : DRIF, L=LDBDh-LQK
  DBD5 : DRIF, L=LDBDh-LQK
  DBD6 : DRIF, L=LDBDh-LQK
  DBD7 : DRIF, L=LDBDh-LQK
  DBD8 : DRIF, L=(LDBDh-LQK-LBR)/2-4*dLDBD

  COMMENT
    VALUE, LTOTA,(NQBD/2)*LDBD-LBR
    VALUE, DBD0[L]+DBD1[L]+DBD2[L]+DBD3[L]+DBD4[L]+&
           DBD5[L]+DBD6[L]+DBD7[L]+DBD8[L]+NQBD*LQK
  ENDCOMMENT

  DBD4h : DRIF, L=DBD4[L]/2

  DBD0a : DRIF, L=1.0
  DBD0c : DRIF, L=0.186
  DBD0b : DRIF, L=DBD0[L]-DBD0a[L]-DBD0c[L]
  DBD1a : DRIF, L=1.0
  DBD1b : DRIF, L=DBD1[L]-DBD1a[L]-DBD1c[L]
  DBD1c : DRIF, L=0.186
  DBD2a : DRIF, L=1.0
  DBD2c : DRIF, L=0.1
  DBD2d : DRIF, L=1.0
  DBD2b : DRIF, L=DBD2[L]-DBD2a[L]-DBD2c[L]-Lcoll-DBD2d[L]
  DBD3a : DRIF, L=1.0
  DBD3c : DRIF, L=0.186
  DBD3b : DRIF, L=DBD3[L]-DBD3a[L]-DBD3c[L]
  DBD4a : DRIF, L=1.0
  DBD4c : DRIF, L=0.186
  DBD4b : DRIF, L=DBD4[L]-DBD4a[L]-DBD4c[L]
  DBD5a : DRIF, L=1.0
  DBD5c : DRIF, L=0.186
  DBD5b : DRIF, L=DBD5[L]-DBD5a[L]-DBD5c[L]
  DBD6a : DRIF, L=1.0
  DBD6c : DRIF, L=0.1
  DBD6d : DRIF, L=1.0
  DBD6b : DRIF, L=DBD6[L]-DBD6a[L]-DBD6c[L]-DBD6d[L]
  DBD7a : DRIF, L=1.0
  DBD7c : DRIF, L=0.186
  DBD7b : DRIF, L=DBD7[L]-DBD7a[L]-DBD7c[L]
  DBD8a : DRIF, L=1.0
  DBD8b : DRIF, L=DBD8[L]-DBD8a[L]

! R56 compensation chicane

  DCCDLDo : DRIF, L=ZDCC/COS(ABCXDLD), TYPE="CSR"
  DCCDLDi : DRIF, L=ZDCC,              TYPE="CSR"

! match to bypass line

  LL0 := 7.5
  LL1 := 22.0
  LL2 := 46.1
  LL3 := 43.0
  LL4 := 51.660514963935

  DLCCP : DRIF, L=0.5
  DL0P  : DRIF, L=LL0
  DL1P  : DRIF, L=LL1
  DL2P  : DRIF, L=LL2
  DL3P  : DRIF, L=LL3
  DL4P  : DRIF, L=LL4

  DL0Pa : DRIF, L=0.3
  DL0Pc : DRIF, L=0.3
  DL0Pb : DRIF, L=LL0-DL0Pa[L]-DL0Pc[L]
  DL1Pa : DRIF, L=0.3
  DL1Pc : DRIF, L=0.3
  DL1Pb : DRIF, L=LL1-DL1Pa[L]-DL1Pc[L]
  DL2Pa : DRIF, L=0.3
  DL2Pc : DRIF, L=0.3
  DL2Pb : DRIF, L=LL2-DL2Pa[L]-DL2Pc[L]
  DL3Pa : DRIF, L=0.3
  DL3Pb : DRIF, L=LL3-DL3Pa[L]
  DL4Pa : DRIF, L=0.4598
  DL4Pb : DRIF, L=0.7433
  DL4Pc : DRIF, L=0.2794
  DL4Pd : DRIF, L=LL4-DL4Pa[L]-DL4Pb[L]-DL4Pc[L]

! bypass line FODO

  DBP : DRIF, L=(101.6-LQM)/2

! ==============================================================================
! BPMs
! ------------------------------------------------------------------------------

  BPMDOG1 : MONI, TYPE="05_um_res_R0"
  BPMDOG2 : MONI, TYPE="05_um_res_R0"
  BPMDOG4 : MONI, TYPE="05_um_res_R0"
  BPMDOG5 : MONI, TYPE="05_um_res_R0"
  BPMDOG6 : MONI, TYPE="05_um_res_R0"
  BPMDOG8 : MONI, TYPE="05_um_res_R0"
  BPML1P  : MONI, TYPE="05_um_res_R0"
  BPML2P  : MONI, TYPE="05_um_res_R0"
  BPML3P  : MONI, TYPE="05_um_res_R0"
  BPML4P  : MONI, TYPE="05_um_res_R0"

  RFBDOG3 : MONI, TYPE="@0,01_um_res"
  RFBDOG7 : MONI, TYPE="@0,01_um_res"

! ==============================================================================
! XCORs
! ------------------------------------------------------------------------------

  XCDOG1 : HKIC, TYPE="type-4"
  XCDOG3 : HKIC, TYPE="type-4"
  XCDOG5 : HKIC, TYPE="type-4"
  XCDOG7 : HKIC, TYPE="type-4"
  XCL1P  : HKIC, TYPE="type-4"
  XCL2P  : HKIC, TYPE="type-4"
  XCL3P  : HKIC, TYPE="type-4"
  XCL4P  : HKIC, TYPE="type-4"

! ==============================================================================
! YCORs
! ------------------------------------------------------------------------------

  YCDOG0 : VKIC, TYPE="type-4"
  YCDOG2 : VKIC, TYPE="type-4"
  YCDOG4 : VKIC, TYPE="type-4"
  YCDOG6 : VKIC, TYPE="type-4"
  YCDOG8 : VKIC, TYPE="type-4"
  YCL1P  : VKIC, TYPE="type-4"
  YCL2P  : VKIC, TYPE="type-4"
  YCL3P  : VKIC, TYPE="type-4"
  YCL4P  : VKIC, TYPE="type-4"

! ==============================================================================
! marker points, etc.
! ------------------------------------------------------------------------------

! collimator

! CEDOG : energy coll in bypass dog-leg (YSIZE is half-gap)

  CEDOG : RCOL, L=Lcoll, XSIZE=20E-3, YSIZE=4.0E-3

! beam profile measurement

  WSDOG : WIRE, TYPE="@0,fast"
  OTR31 : PROF, TYPE="@3,OTR" !CSR-induced coupling from dogleg

! markers

  clBRB1   : MARK !BRB1 centerline
  MIDBD    : MARK
  clBRB2   : MARK !BRB2 centerline
  CNTDOG   : MARK, TYPE="CENTER"
  CCDLDBEG : MARK
  CNTDLD   : MARK, TYPE="CENTER"
  CCDLDEND : MARK
  RWWAKE2  : MARK, TYPE="WAKE" !dogleg beampipe wake applied here
  MQBP13   : MARK !QBP13 FODO quad center ... Z=1254.531303 (a.k.a. "QB01")

! ==============================================================================
! BEAMLINE
! ------------------------------------------------------------------------------

  CCDLD : LINE=(CCDLDBEG,&
    BCXDLD1a,BCXDLD1b,DCCDLDo,&
    BCXDLD2a,BCXDLD2b,DCCDLDi,&
    BCXDLD3a,BCXDLD3b,DCCDLDo,&
    BCXDLD4a,BCXDLD4b,CNTDLD,CCDLDEND)

  DLBP0 : LINE=(&
    BRB1a,clBRB1,BRB1b,ROBRB1,DBD0,&
    QDOG1,QDOG1,DBD1,&
    QDOG2,QDOG2,DBD2,&
    QDOG3,QDOG3,DBD3,&
    QDOG4,QDOG4,DBD4h,MIDBD,DBD4h,&
    QDOG5,QDOG5,DBD5,&
    QDOG6,QDOG6,DBD6,&
    QDOG7,QDOG7,DBD7,&
    QDOG8,QDOG8,DBD8,&
    ROBRB2,BRB2a,clBRB2,BRB2b)

  DLBP : LINE=(&
    SEQ04BEG,&
    BEGDOG,&
    BRB1a,clBRB1,BRB1b,ROBRB1,DBD0a,YCDOG0,DBD0b,BPMDOG1,DBD0c,&
    QDOG1,QDOG1,DBD1a,XCDOG1,DBD1b,BPMDOG2,DBD1c,&
    QDOG2,QDOG2,DBD2a,YCDOG2,DBD2b,RFBDOG3,DBD2c,CEDOG,DBD2d,&
    QDOG3,QDOG3,DBD3a,XCDOG3,DBD3b,BPMDOG4,DBD3c,&
    QDOG4,QDOG4,DBD4a,YCDOG4,DBD4b,BPMDOG5,DBD4c,&
    QDOG5,QDOG5,DBD5a,XCDOG5,DBD5b,BPMDOG6,DBD5c,&
    QDOG6,QDOG6,DBD6a,YCDOG6,DBD6b,RFBDOG7,DBD6c,WSDOG,DBD6d,&
    QDOG7,QDOG7,DBD7a,XCDOG7,DBD7b,BPMDOG8,DBD7c,&
    QDOG8,QDOG8,DBD8a,YCDOG8,DBD8b,ROBRB2,&
    BRB2a,clBRB2,BRB2b,CNTDOG)

  MTCH1 : LINE=(&
    DLCCP,CCDLD,&
    DL0Pa,OTR31,DL0Pb,XCL1P,DL0Pc,&
    QL1P,BPML1P,QL1P,DL1Pa,YCL1P,DL1Pb,XCL2P,DL1Pc,&
    QL2P,BPML2P,QL2P,DL2Pa,YCL2P,DL2Pb,XCL3P,DL2Pc,&
    QL3P,BPML3P,QL3P,DL3Pa,YCL3P,DL3Pb,&
    QL4P,QL4P,DL4Pa,BPML4P,DL4Pb,XCL4P,DL4Pc,YCL4P,DL4Pd,DBP,&
    ENDDOG,RWWAKE2,&
    SEQ04END,&
    SEQ05BEG,&
    BEGBYP,&
    QBPF,MQBP13)

  DLBM : LINE=(DLBP,MTCH1)

  Bfodo : LINE=(QBPF,DBP,DBP,QBPD,QBPD,DBP,DBP,QBPF)

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

  RETURN
