
! *** OPTICS=LCLS2sc31MAR14 ***

! LCLS2sc sector 10 vertical dogleg, plus BC3 and match to bypass line

! ==============================================================================
! Modification History
! ------------------------------------------------------------------------------
! 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
! ------------------------------------------------------------------------------

  Zdog10 := 37.500012481967 !start of LI10 to BEGDOG

! ==============================================================================
! 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

  Brhof := Cb*Ef
  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

! BC3 chicane

! Brho3 : beam rigidity at chicane (kG-m)
! GB3   : 1D19.7 gap height (m)
! ZB3   : 1D19.7 "Z" length (m)
! BB3   : chicane bend field (kG) for R56= 0.012 m @ 4.0 GeV
! AB3   : chicane bend angle (rad)
! LB3   : chicane bend path length (m)
! AB3S  : "short" half chicane bend angle (rad)
! LB3S  : "short" half chicane bend path length (m)
! AB3L  : "long" half chicane bend angle (rad)
! LB3L  : "long" half chicane bend path length (m)

  Brho3    := Cb*Ef
  GB3c     := 0.03335
  ZB3      := 0.549
  BB3      := -6.834539531787 !R56=0.012
  ARG3     := ZB3*BB3/Brho3
  AB3      := ASIN(ARG3)
  AB3_2    := AB3*AB3
  AB3_4    := AB3_2*AB3_2
  AB3_6    := AB3_4*AB3_2
  SINCAB3  := 1-AB3_2/6+AB3_4/120-AB3_6/5040 !~sinc(AB3)=sin(AB3)/AB3
  LB3c     := ZB3/SINCAB3
  AB3S     := ASIN(ARG3/2)
  AB3S_2   := AB3S*AB3S
  AB3S_4   := AB3S_2*AB3S_2
  AB3S_6   := AB3S_4*AB3S_2
  SINCAB3S := 1-AB3S_2/6+AB3S_4/120-AB3S_6/5040 !~sinc(AB3S)=sin(AB3S)/AB3S
  LB3S     := ZB3/(2*SINCAB3S)
  AB3L     := AB3-AB3S
  LB3L     := LB3c-LB3S

  BCX31A : SBEN, TYPE="1D19.7", L=LB3S, ANGLE=+AB3S, HGAP=GB3c/2, &
                 E1=0, FINT=0.5, FINTX=0
  BCX31B : SBEN, TYPE="1D19.7", L=LB3L, ANGLE=+AB3L, HGAP=GB3c/2, &
                 FINT=0, E2=+AB3, FINTX=0.5
  BCX32A : SBEN, TYPE="1D19.7", L=LB3L, ANGLE=-AB3L, HGAP=GB3c/2, &
                 E1=-AB3, FINT=0.5, FINTX=0
  BCX32B : SBEN, TYPE="1D19.7", L=LB3S, ANGLE=-AB3S, HGAP=GB3c/2, &
                 FINT=0, E2=0, FINTX=0.5
  BCX33A : SBEN, TYPE="1D19.7", L=LB3S, ANGLE=-AB3S, HGAP=GB3c/2, &
                 E1=0, FINT=0.5, FINTX=0
  BCX33B : SBEN, TYPE="1D19.7", L=LB3L, ANGLE=-AB3L, HGAP=GB3c/2, &
                 FINT=0, E2=-AB3, FINTX=0.5
  BCX34A : SBEN, TYPE="1D19.7", L=LB3L, ANGLE=+AB3L, HGAP=GB3c/2, &
                 E1=+AB3, FINT=0.5, FINTX=0
  BCX34B : SBEN, TYPE="1D19.7", L=LB3S, ANGLE=+AB3S, HGAP=GB3c/2, &
                 FINT=0, E2=0, FINTX=0.5

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

! dogleg (6 quads; 3 power supplies)

  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.175192039746
  KQL2P := -0.155436274158
  KQL3P :=  0.22273998463
  KQL4P := -0.114142733167

! 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
  DBD0b : DRIF, L=DBD0[L]-DBD0a[L]
  DBD1a : DRIF, L=1.0
  DBD1b : DRIF, L=DBD1[L]-DBD1a[L]
  DBD2a : DRIF, L=1.0
  DBD2c : DRIF, L=1.0
  DBD2b : DRIF, L=DBD2[L]-(DBD2a[L]+Lcoll+DBD2c[L])
  DBD3a : DRIF, L=1.0
  DBD3b : DRIF, L=DBD3[L]-DBD3a[L]
  DBD4a : DRIF, L=1.0
  DBD4b : DRIF, L=DBD4[L]-DBD4a[L]
  DBD5a : DRIF, L=1.0
  DBD5b : DRIF, L=DBD5[L]-DBD5a[L]
  DBD6a : DRIF, L=1.0
  DBD6c : DRIF, L=1.0
  DBD6b : DRIF, L=DBD6[L]-(DBD6a[L]+DBD6c[L])
  DBD7a : DRIF, L=1.0
  DBD7b : DRIF, L=DBD7[L]-DBD7a[L]
  DBD8a : DRIF, L=1.0
  DBD8b : DRIF, L=DBD8[L]-DBD8a[L]

! match to bypass line

  LL0 := 10.0
  LL1 :=  4.0
  LL2 := 46.1
  LL3 := 42.978448626267
  LL4 := 51.6622

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

  DL0Pb : DRIF, L=0.3
  DL0Pa : DRIF, L=LL0-DL0Pb[L]
  DL1Pa : DRIF, L=0.3
  DL1Pb : DRIF, L=LL1-DL1Pa[L]
  DL1Pc : DRIF, L=0.2
  DL1Pd : DRIF, L=0.2
  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=0.25
  DL4Pe : DRIF, L=LL4-DL4Pa[L]-DL4Pb[L]-DL4Pc[L]-DL4Pd[L]

! BC3 chicane

  ZC3i := 1.0
  ZC3o := 7.211933168817

  DC3ia : DRIF, L=0.35
  DC3ic : DRIF, L=0.35
  DC3ib : DRIF, L=ZC3i-DC3ia[L]-DC3ic[L]
  DC3o  : DRIF, L=ZC3o/COS(AB3)

! 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"
  BPMDOG3 : 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"
  BPMDOG7 : MONI, TYPE="05_um_res_R0"
  BPMDOG8 : MONI, TYPE="05_um_res_R0"
  BPML1P  : MONI, TYPE="05_um_res_R0"
  BPMS31  : MONI, TYPE="40_um_res"
  BPML2P  : MONI, TYPE="05_um_res_R0"
  BPML3P  : MONI, TYPE="05_um_res_R0"
  BPML4P  : MONI, TYPE="05_um_res_R0"

! ==============================================================================
! 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

! toroids

  IMDL2OB : IMON !dogleg MPS output toroid (comparator with IMDLBiB)

! beam profile measurement

  WSDOG : WIRE
  OTR31 : PROF, TYPE="OTR" !BC3 energy spread (tentative)

! markers

  BRB1cl  : MARK !BRB1 centerline
  CNTDLa  : MARK
  MIDBD   : MARK
  BRB2cl  : MARK !BRB2 centerline
  CNTDLb  : MARK
  BC3cBEG : MARK
  BC3cEND : MARK
  Q1MRK   : MARK !QBP13 FODO quad center ... Z=1254.531303 (a.k.a. "QB01")

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

  DLBP0 : LINE=(&
    BRB1a,BRB1cl,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,BRB2cl,BRB2b)

  DLBP : LINE=(&
    SEQ04BEG,&
    BEGDOG,&
    BRB1a,BRB1cl,BRB1b,ROBRB1,CNTDLa,DBD0a,YCDOG0,DBD0b,&
    QDOG1,QDOG1,BPMDOG1,DBD1a,XCDOG1,DBD1b,&
    QDOG2,QDOG2,BPMDOG2,DBD2a,YCDOG2,DBD2b,CEDOG,DBD2c,&
    QDOG3,QDOG3,BPMDOG3,DBD3a,XCDOG3,DBD3b,&
    QDOG4,QDOG4,BPMDOG4,DBD4a,YCDOG4,DBD4b,&
    QDOG5,QDOG5,BPMDOG5,DBD5a,XCDOG5,DBD5b,&
    QDOG6,QDOG6,BPMDOG6,DBD6a,YCDOG6,DBD6b,WSDOG,DBD6c,&
    QDOG7,QDOG7,BPMDOG7,DBD7a,XCDOG7,DBD7b,&
    QDOG8,QDOG8,BPMDOG8,DBD8a,YCDOG8,DBD8b,ROBRB2,&
    BRB2a,BRB2cl,BRB2b,CNTDLb,&
    ENDDOG)

  BC3 : LINE=(BC3cBEG,&
    BCX31A,BCX31B,DC3o,&
    BCX32A,BCX32B,DC3ia,BPMS31,DC3ib,OTR31,DC3ic,&
    BCX33A,BCX33B,DC3o,&
    BCX34A,BCX34B,BC3cEND)

  MTCH1 : LINE=(&
    BEGBC3,&
    DL0Pa,XCL1P,DL0Pb,&
    QL1P,BPML1P,QL1P,DL1Pa,YCL1P,DL1Pb,BC3,DL1Pc,XCL2P,DL1Pd,&
    QL2P,BPML2P,QL2P,DL2Pa,YCL2P,DL2Pb,XCL3P,DL2Pc,&
    QL3P,BPML3P,QL3P,DL3Pa,YCL3P,DL3Pb,&
    QL4P,QL4P,DL4Pa,BPML4P,DL4Pb,XCL4P,DL4Pc,YCL4P,DL4Pd,IMDL2OB,DL4Pe,DBP,&
    ENDBC3,&
    SEQ04END,&
    SEQ05BEG,&
    BEGBYP,&
    QBPF,Q1MRK)

  DLBM : LINE=(DLBP,MTCH1)

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

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

  RETURN
