
! *** OPTICS=AD_ACCEL_HE-30SEP20 ***

! LCLS2sc B-line

! ==============================================================================
! Modification History
! ------------------------------------------------------------------------------
! 25-MAY-2018, Y. Nosochkov
!  * add four 3.94Q17 quads to reduce dispersion and beta functions in B-line
!  * replace six 1.0D22.625 dipoles with PEP-II LER dipoles
! 15-AUG-2017, Y. Nosochkov
!  * replace two A-line bends (not available) with 4D56C and 9D88.5 bends
!    (available per J. Amann)
!  * set dump face 2 m upstream of shield wall (Tor)
!  * add quadrupole to focus dispersion on the dump (Tor)
! 28-JUL-2017, Y. Nosochkov
!  * initial optics
! ------------------------------------------------------------------------------

! dipoles (from PEP-II LER)

  ABXBL0 := 3.191844086541*RADDEG        !bending angle in 6 bends
  ABXBL  := ABXBL0/6                     !angle per bend, max BL = 4.365 kGm
  ZBXBL  := 0.45                         !Z-length
  GBXBL  := 0.0635                       !full gap (to be confirmed)
  LBXBL  := ZBXBL*ABXBL/(2*SIN(ABXBL/2)) !path length (m)

  BXBL1a : SBEN, TYPE="LER dipole", L=LBXBL/2, ANGLE=ABXBL/2, E1=ABXBL/2, &
           E2=0, FINT=0.5, FINTX=0, HGAP=GBXBL/2
  BXBL1b : SBEN, TYPE="LER dipole", L=LBXBL/2, ANGLE=ABXBL/2, E2=ABXBL/2, &
           E1=0, FINTX=0.5, FINT=0, HGAP=GBXBL/2

  BXBL2a : SBEN, TYPE="LER dipole", L=LBXBL/2, ANGLE=ABXBL/2, E1=ABXBL/2, &
           E2=0, FINT=0.5, FINTX=0, HGAP=GBXBL/2
  BXBL2b : SBEN, TYPE="LER dipole", L=LBXBL/2, ANGLE=ABXBL/2, E2=ABXBL/2, &
           E1=0, FINTX=0.5, FINT=0, HGAP=GBXBL/2

  BXBL3a : SBEN, TYPE="LER dipole", L=LBXBL/2, ANGLE=ABXBL/2, E1=ABXBL/2, &
           E2=0, FINT=0.5, FINTX=0, HGAP=GBXBL/2
  BXBL3b : SBEN, TYPE="LER dipole", L=LBXBL/2, ANGLE=ABXBL/2, E2=ABXBL/2, &
           E1=0, FINTX=0.5, FINT=0, HGAP=GBXBL/2

  BXBL4a : SBEN, TYPE="LER dipole", L=LBXBL/2, ANGLE=ABXBL/2, E1=ABXBL/2, &
           E2=0, FINT=0.5, FINTX=0, HGAP=GBXBL/2
  BXBL4b : SBEN, TYPE="LER dipole", L=LBXBL/2, ANGLE=ABXBL/2, E2=ABXBL/2, &
           E1=0, FINTX=0.5, FINT=0, HGAP=GBXBL/2

  BXBL5a : SBEN, TYPE="LER dipole", L=LBXBL/2, ANGLE=ABXBL/2, E1=ABXBL/2, &
           E2=0, FINT=0.5, FINTX=0, HGAP=GBXBL/2
  BXBL5b : SBEN, TYPE="LER dipole", L=LBXBL/2, ANGLE=ABXBL/2, E2=ABXBL/2, &
           E1=0, FINTX=0.5, FINT=0, HGAP=GBXBL/2

  BXBL6a : SBEN, TYPE="LER dipole", L=LBXBL/2, ANGLE=ABXBL/2, E1=ABXBL/2, &
           E2=0, FINT=0.5, FINTX=0, HGAP=GBXBL/2
  BXBL6b : SBEN, TYPE="LER dipole", L=LBXBL/2, ANGLE=ABXBL/2, E2=ABXBL/2, &
           E1=0, FINTX=0.5, FINT=0, HGAP=GBXBL/2

! 4D56C (K2) magnet: max BL = 24.0 kGm
 
  ABXBL7 := 6.5*RADDEG-ABXBL0
  ZBXBL7 := 1.4383
  GBXBL7 := 0.03175 !1.25" full gap
  LBXBL7 := ZBXBL7*ABXBL7/(2*SIN(ABXBL7/2))

  BXBL7a : SBEN, TYPE="4D56C", L=LBXBL7/2, ANGLE=ABXBL7/2, E1=ABXBL7/2, &
           E2=0, FINT=0.5, FINTX=0, HGAP=GBXBL7/2
  BXBL7b : SBEN, TYPE="4D56C", L=LBXBL7/2, ANGLE=ABXBL7/2, E2=ABXBL7/2, &
           E1=0, FINTX=0.5, FINT=0, HGAP=GBXBL7/2

! 9D88.5 (B1) magnet: max BL = 31.7 kGm

  ABXBL8 := 6.0*RADDEG
  ZBXBL8 := 2.30419
  GBXBL8 := 0.1143 !4.5" full gap
  LBXBL8 := ZBXBL8*ABXBL8/(2*SIN(ABXBL8/2))

  BXBL8a : SBEN, TYPE="9D88.5", L=LBXBL8/2, ANGLE=ABXBL8/2, E1=ABXBL8/2, &
           E2=0, FINT=0.5, FINTX=0, HGAP=GBXBL8/2
  BXBL8b : SBEN, TYPE="9D88.5", L=LBXBL8/2, ANGLE=ABXBL8/2, E2=ABXBL8/2, &
           E1=0, FINTX=0.5, FINT=0, HGAP=GBXBL8/2

! quadrupole

  KQBL1 := -0.22222534094
  KQBL2 :=  0.291592922538
  KQBL3 :=  0.335924220181
  KQBL4 := -0.254816960094
  KQBL5 := -0.205191866142
  KQBL6 :=  KQBL5

  QBL1 : QUAD, TYPE="3.94Q17", L=LQP/2, K1=KQBL1, APER=rQP
  QBL2 : QUAD, TYPE="3.94Q17", L=LQP/2, K1=KQBL2, APER=rQP
  QBL3 : QUAD, TYPE="3.94Q17", L=LQP/2, K1=KQBL3, APER=rQP
  QBL4 : QUAD, TYPE="3.94Q17", L=LQP/2, K1=KQBL4, APER=rQP
  QBL5 : QUAD, TYPE="3.94Q17", L=LQP/2, K1=KQBL5, APER=rQP
  QBL6 : QUAD, TYPE="3.94Q17", L=LQP/2, K1=KQBL6, APER=rQP

! drifts

 dDQBL1 := 0.0
 dDQBL2 := 0.0
 dDQBL3 := 0.0
 dDQBL4 := 0.0
 dDQBL5 := 0.0
 dDQBL6 := 0.0

  DBLBB  : DRIF, L=0.5 +0.15
  DBL0   : DRIF, L=14.358367116041
  DBL1   : DRIF, L=15.65
  DBL2a  : DRIF, L=16.258943767876
  DBL2aa : DRIF, L=1.0 +0.075 +dDQBL1
  DBL2ab : DRIF, L=0.5
  DBL2ac : DRIF, L=2.5 +dDQBL2
  DBL2ad : DRIF, L=DBL2a[L]-DBL2aa[L]-DBL2ab[L]-DBL2ac[L]-2*LQP
  DBL2b  : DRIF, L=6.643731419752
  DBL2c  : DRIF, L=13.545131203716
  DBL3   : DRIF, L=1.0 +dDQBL3
  DBL4a  : DRIF, L=0.5
  DBL4b  : DRIF, L=5.5 +dDQBL4
  DBL5   : DRIF, L=32.562867650557 -dDQBL3-dDQBL4
  DBL5a  : DRIF, L=0.5
  DBL5b  : DRIF, L=0.5
  DBL5d  : DRIF, L=1.0 +dDQBL5
  DBL5e  : DRIF, L=2.0 +dDQBL6
  DBL5c  : DRIF, L=DBL5[L]-DBL5a[L]-DBL5b[L]-DBL5d[L]-DBL5e[L]-2*LQP
  DBL6   : DRIF, L=17.995243684716
  DBL6b  : DRIF, L=1.0
  DBL6a  : DRIF, L=DBL6[L]-DBL6b[L]
  DBL7   : DRIF, L=42.422123577416

  DDUMPBL : DRIF, L=1.8288 !length of BLINE dump

! steering correctors

  XCBL1 : HKIC, TYPE="class-4"
  YCBL1 : VKIC, TYPE="class-4"

! monitors

  BPMBL1 : MONI, TYPE="Stripline-8"
  BPMBL2 : MONI, TYPE="Stripline-8"
  BPMBL3 : MONI, TYPE="Stripline-14"

! other diagnostics

  !IMBL1 : IMON, TYPE="BCS cavity" !BCS ACM in SPH

  !PCBL1 : ECOL, L=LPCSP, TYPE="BCS PC" !BCS protection collimator

  !OTRBLDMP : PROF, TYPE="@1,OTR" !OTR screen before BLINE dump

  DUMPBL : INST, TYPE="DUMPBL" !front face of BLINE dump

! markers

  BEGBL    : MARK !start of B-line
  ENDBL    : MARK !end of B-line (front of BLINE dump)
  ENDBLT   : MARK !end of B-line tunnel
  MUWALLBL : MARK !muon wall
  MTUNL1   : MARK !tight spot near South wall

! beamlines

! to dump

 !  DBL0,&
  BLINE : LINE=(BEGBL,&
    BXBL1a,BXBL1b,DBLBB,BXBL2a,BXBL2b,DBL1,&
    BXBL3a,BXBL3b,DBLBB,BXBL4a,BXBL4b,DBLBB,&
    BXBL5a,BXBL5b,DBLBB,BXBL6a,BXBL6b,DBL2aa,&
    QBL1,QBL1,DBL2ab,BPMBL1,DBL2ac,&
    QBL2,QBL2,DBL2ad,&
    MTUNL1,DBL2b,MUWALLBL,DBL2c,&
    BXBL7a,BXBL7b,DBL3,&
    QBL3,QBL3,DBL4a,BPMBL2,DBL4b,&
    QBL4,QBL4,DBL5a,XCBL1,DBL5b,YCBL1,DBL5c,&
    QBL5,QBL5,DBL5d,&
    QBL6,QBL6,DBL5e,&
    BXBL8a,BXBL8b,DBL6a,BPMBL3,DBL6b,DUMPBL,&
    ENDBL)

! to end of the tunnel

  BLINET : LINE=(BLINE,DDUMPBL,DBL7,ENDBLT)

  RETURN

