
! *** OPTICS=LCLS2sc29JUN16 ***

! LCLS2sc A-line

! ==============================================================================
! Modification History
! ------------------------------------------------------------------------------
! 24-JUN-2016, Y. Nosochkov
!  * add deferred BPMCUA between A-line kicker and septum
!  * update the engineering type of BKYAL1,...,BKYAL5 kickers to
!    "0.787K35.4" (J. Amann)
! ------------------------------------------------------------------------------
! 26-FEB-2016, M. Woodley
!  * remove SEQnn MARKers
! 26-FEB-2016, Y. Nosochkov
!  * add BCS PCBSY2/BTMBSY2 at Z=3124 m (deferred @0) (S. Mao)
!  * increase distance between kickers from 15 cm to 30 cm
! ------------------------------------------------------------------------------
! 25-SEP-2015, Y. Nosochkov
!  * update definitions of kickers and septum to allow zero angle
! 24-AUG-2015, Y. Nosochkov
!  * update the TYPE of septum from 0.39SD38.98 to 0.625SD38.98 (J. Amann)
!  * adjust quad strengths for match to the updated BSY optics
!  * match geometry to the updated positions of A-line kicker & septum
! ------------------------------------------------------------------------------
! 20-MAR-2015, M. Woodley
!  * add SEQ21BEG, SEQ21END, BEGBSYA, ENDBSYA MARKERs
! 12-MAR-2015, Y. Nosochkov
!  * add fast kickers and septum (as in spreader) to deflect beam into A-line
!  * A-line optics based on original design per M. Woodley's deck
! ------------------------------------------------------------------------------

! ==============================================================================
! dipoles
! ------------------------------------------------------------------------------

! fast magnetic kickers aligned along the LCLS-2 axis
! assume energy is limited to 10 GeV and BL is up to 70 Gm per kicker

  GBKYAL := GBKSP !kicker gap (m) - round pipe, square bore aperture
  ZBKYAL := LBKSP !kicker straight length (m)

  ABKYAL0  := -1.05E-3
  ABKYAL   := ABKYAL0 *SETAL        !total kicker angle (rad)
  ABKYAL1  := ASIN(  SIN(ABKYAL)/5) !1st kicker angle (rad)
  ABKYAL12 := ASIN(2*SIN(ABKYAL)/5) !1st+2nd kicker angle (rad)
  ABKYAL13 := ASIN(3*SIN(ABKYAL)/5) !1+2+3 kicker angle (rad)
  ABKYAL14 := ASIN(4*SIN(ABKYAL)/5) !1+2+3+4 kicker angle (rad)
  ABKYAL2  := ABKYAL12-ABKYAL1      !2nd kicker angle (rad)
  ABKYAL3  := ABKYAL13-ABKYAL12     !3rd kicker angle (rad)
  ABKYAL4  := ABKYAL14-ABKYAL13     !4th kicker angle (rad)
  ABKYAL5  := ABKYAL  -ABKYAL14     !5th kicker angle (rad)

  LBKYAL1  :=   ZBKYAL/(1-ABKYAL1 *ABKYAL1 /6)
  LBKYAL12 := 2*ZBKYAL/(1-ABKYAL12*ABKYAL12/6)
  LBKYAL13 := 3*ZBKYAL/(1-ABKYAL13*ABKYAL13/6)
  LBKYAL14 := 4*ZBKYAL/(1-ABKYAL14*ABKYAL14/6)
  LBKYAL15 := 5*ZBKYAL/(1-ABKYAL  *ABKYAL  /6)
  LBKYAL2  :=   LBKYAL12-LBKYAL1
  LBKYAL3  :=   LBKYAL13-LBKYAL12
  LBKYAL4  :=   LBKYAL14-LBKYAL13
  LBKYAL5  :=   LBKYAL15-LBKYAL14

  BKYAL1a : SBEN, TYPE="@3,0.787K35.4", L=LBKYAL1/2, ANGLE=ABKYAL1/2, TILT, &
    E1=0, E2=0, FINT=0.5, FINTX=0, HGAP=GBKYAL/2
  BKYAL1b : SBEN, TYPE="@3,0.787K35.4", L=LBKYAL1/2, ANGLE=ABKYAL1/2, TILT, &
    E2=ABKYAL1, E1=0, FINT=0, FINTX=0.5, HGAP=GBKYAL/2

  BKYAL2a : SBEN, TYPE="@3,0.787K35.4", L=LBKYAL2/2, ANGLE=ABKYAL2/2, TILT, &
    E1=-ABKYAL1, E2=0, FINT=0.5, FINTX=0, HGAP=GBKYAL/2
  BKYAL2b : SBEN, TYPE="@3,0.787K35.4", L=LBKYAL2/2, ANGLE=ABKYAL2/2, TILT, &
    E2=ABKYAL12, E1=0, FINT=0, FINTX=0.5, HGAP=GBKYAL/2

  BKYAL3a : SBEN, TYPE="@3,0.787K35.4", L=LBKYAL3/2, ANGLE=ABKYAL3/2, TILT, &
    E1=-ABKYAL12, E2=0, FINT=0.5, FINTX=0, HGAP=GBKYAL/2
  BKYAL3b : SBEN, TYPE="@3,0.787K35.4", L=LBKYAL3/2, ANGLE=ABKYAL3/2, TILT, &
    E2=ABKYAL13, E1=0, FINT=0, FINTX=0.5, HGAP=GBKYAL/2

  BKYAL4a : SBEN, TYPE="@3,0.787K35.4", L=LBKYAL4/2, ANGLE=ABKYAL4/2, TILT, &
    E1=-ABKYAL13, E2=0, FINT=0.5, FINTX=0, HGAP=GBKYAL/2
  BKYAL4b : SBEN, TYPE="@3,0.787K35.4", L=LBKYAL4/2, ANGLE=ABKYAL4/2, TILT, &
    E2=ABKYAL14, E1=0, FINT=0, FINTX=0.5, HGAP=GBKYAL/2

  BKYAL5a : SBEN, TYPE="@3,0.787K35.4", L=LBKYAL5/2, ANGLE=ABKYAL5/2, TILT, &
    E1=-ABKYAL14, E2=0, FINT=0.5, FINTX=0, HGAP=GBKYAL/2
  BKYAL5b : SBEN, TYPE="@3,0.787K35.4", L=LBKYAL5/2, ANGLE=ABKYAL5/2, TILT, &
    E2=ABKYAL, E1=0, FINT=0, FINTX=0.5, HGAP=GBKYAL/2

! 2-hole horizontal septum aligned along the LCLS-2 axis

  GBLXAL := GBLSP !septum gap height (m)
  ZBLXAL := LBLSP !septum straight length (m)

  ABLXAL0   := -0.014600080882
  ABLXAL    := ABLXAL0 *SETAL      !septum bending angle (rad)
  ABLXALa   := ASIN(SIN(ABLXAL)/2) !angle per 1st half of the septum
  ABLXALb   := ABLXAL-ABLXALa      !angle per 2nd half of the septum
  ABLXAL_2  := ABLXAL   *ABLXAL
  ABLXAL_4  := ABLXAL_2 *ABLXAL_2
  ABLXALa_2 := ABLXALa  *ABLXALa
  ABLXALa_4 := ABLXALa_2*ABLXALa_2

  LBLXAL  := ZBLXAL   /(1-ABLXAL_2/6 +ABLXAL_4/120 )/COS(ABKYAL)
  LBLXALa := ZBLXAL/2 /(1-ABLXALa_2/6+ABLXALa_4/120)/COS(ABKYAL)
  LBLXALb := LBLXAL-LBLXALa

  BLXALa : SBEN, TYPE="@3,0.625SD38.98", L=LBLXALa, ANGLE=ABLXALa, &
                 E1=0, E2=0, FINT=0.5, FINTX=0, HGAP=GBLXAL/2
  BLXALb : SBEN, TYPE="@3,0.625SD38.98", L=LBLXALb, ANGLE=ABLXALb, &
                 E1=0, E2=ABLXAL, FINT=0, FINTX=0.5, HGAP=GBLXAL/2

! A-line merge bend 

  GBXAM := GBSP                         !1.0D38.37 gap height (m)
  ZBXAM := LBSP                         !1.0D38.37 straight length (m)
  ABXAM := 0.582022147894E-2            !bend angle (rad)
  LBXAM := ZBXAM*ABXAM/(2*SIN(ABXAM/2)) !BXAM1 path length (m)

  BXAM1A : SBEN, TYPE="@3,1.0D38.37", L=LBXAM/2, ANGLE=ABXAM/2, &
                 E1=ABXAM/2, E2=0, HGAP=GBXAM/2, FINT=0.5, FINTX=0
  BXAM1B : SBEN, TYPE="@3,1.0D38.37", L=LBXAM/2, ANGLE=ABXAM/2, &
                 E2=ABXAM/2, E1=0, HGAP=GBXAM/2, FINT=0,   FINTX=0.5

! A-bends

  !AARC  := -24*RADDEG !total arc bend angle (24 degrees)
  !Nbend := 12         !number of arc bends
  !ABA   := AARC/Nbend !arc bend angle
  ABA   := -1.999526617334*RADDEG !arc bend angle per Transport deck

  LBA := 3.024 !present A-line bends
  GBA := 0.06  !Blue Book value

  BA1 : SBEN, L=LBA/2, HGAP=GBA/2, ANGLE=ABA/2, E1=ABA/2, FINT=0.5, FINTX=0
  BA2 : SBEN, L=LBA/2, HGAP=GBA/2, ANGLE=ABA/2, E2=ABA/2, FINT=0, FINTX=0.5

  BA  : LINE=(BA1,BA2)

! ==============================================================================
! quadrupoles
! ------------------------------------------------------------------------------

  LQ8cm := 2.0
  rQ8cm := 0.08/2
  LQ19  := 2.0
  rQ19  := 0.186/2
  LQ20  := 1.31318
  rQ20  := 8.25*0.0254/2
  LSQ   := 0.55
  rSQ   := 0.08/2

  !KQ10 :=  0.040190926401
  !KQ11 := -0.037926743862
  !KQ19 :=  0.029507959162    !0.032191661707
  !KQ20 :=  0.961853807504E-2 !0.20869827928E-2
  !KQ27 := -0.06339026
  !KQ28 :=  0.03715726
  !KQ30 := -0.03054855
  !KQ38 :=  0.03460619

! note: the K-values below are for SC beam; the settings for Cu beam are
! in the "LCLS2cu_main.mad8" file

  KQ10 :=  0.040550487747
  KQ11 := -0.033425480507
  KQ19 :=  0.028576034034
  KQ20 :=  0.012672928209
  KQ27 := -0.061266575088
  KQ28 :=  0.031642080848
  KQ30 := -0.030359541225
  KQ38 :=  0.034804449344

  Q10 : QUAD, L=LQ8cm/2, APER=rQ8cm, K1=KQ10
  Q11 : QUAD, L=LQ8cm/2, APER=rQ8cm, K1=KQ11
  Q19 : QUAD, L=LQ19/2,  APER=rQ19,  K1=KQ19
  Q20 : QUAD, L=LQ20/2,  APER=rQ20,  K1=KQ20
  Q27 : QUAD, L=LQ8cm/2, APER=rQ8cm, K1=KQ27
  Q28 : QUAD, L=LQ8cm/2, APER=rQ8cm, K1=KQ28
  Q30 : QUAD, L=LQ8cm/2, APER=rQ8cm, K1=KQ30
  Q38 : QUAD, L=LQ8cm/2, APER=rQ8cm, K1=KQ38

  KSQ := 0.0

  "SQ27.5" : QUAD, L=LSQ/2,   APER=rSQ,   K1=KSQ, TILT

! ==============================================================================
! drifts
! ------------------------------------------------------------------------------

  D105 : DRIF, L=5.5372
  D106 : DRIF, L=0.727
  D107 : DRIF, L=0.7755
  D108 : DRIF, L=3.84839
  D109 : DRIF, L=0.7755
  D110 : DRIF, L=3.84839
  D111 : DRIF, L=0.7755
  D112 : DRIF, L=15.74899
  D113 : DRIF, L=9.0997
  D114 : DRIF, L=5.94572
  D115 : DRIF, L=0.7755
  D116 : DRIF, L=3.84839
  D117 : DRIF, L=0.7755
  D118 : DRIF, L=3.84839
  D119 : DRIF, L=0.7755
  D120 : DRIF, L=1.744768 !1.74477
  D121 : DRIF, L=1.525
  D122 : DRIF, L=1.925
  D123 : DRIF, L=38.1116
  D124 : DRIF, L=21.4778
  D125 : DRIF, L=5.04065
  D126 : DRIF, L=76.23456
  D127 : DRIF, L=92.118

  D126a : DRIF, L=15.322492
  D126b : DRIF, L=9.72325
  D126c : DRIF, L=D126[L]-(D126a[L]+D126b[L])

  ZDALBK   := 0.3     !Z-space between consecutive kickers
  ZDALBLX  := 10.827  !Z-space between the last kicker and the septum
  ZDALBLX1 := 0.74108 !Z-space between the last kicker and PCBSY2
  ZDALBLX2 := 0.62125 !Z-space between the PCBSY2 and BPM
  ZDALBLX3 := ZDALBLX-ZDALBLX1-LPCSP-ZDALBLX2 !Z-space between BPM and septum
  LDALBK1  := ZDALBK/COS(ABKYAL1)
  LDALBK2  := ZDALBK/COS(ABKYAL12)
  LDALBK3  := ZDALBK/COS(ABKYAL13)
  LDALBK4  := ZDALBK/COS(ABKYAL14)
  LDALBLX1 := ZDALBLX1/COS(ABKYAL)
  LDALBLX2 := ZDALBLX2/COS(ABKYAL)
  LDALBLX3 := ZDALBLX3/COS(ABKYAL)

  DALBK1  : DRIF, L=LDALBK1
  DALBK2  : DRIF, L=LDALBK2
  DALBK3  : DRIF, L=LDALBK3
  DALBK4  : DRIF, L=LDALBK4
  DALBLX1 : DRIF, L=LDALBLX1
  DALBLX2 : DRIF, L=LDALBLX2
  DALBLX3 : DRIF, L=LDALBLX3

  DLXAM  : DRIF, L=43.474196295826
  DAMQ10 : DRIF, L=1.0

! ==============================================================================
! monitors
! ------------------------------------------------------------------------------

  BPMCUA : MONI, TYPE="@3,Stripline-5"

! ==============================================================================
! BCS devices
! ------------------------------------------------------------------------------

  PCBSY2 : ECOL, TYPE="@0,BCS PC", L=LPCSP/COS(ABKYAL), &
                 XSIZE=27.94E-3, YSIZE=27.94E-3 !BCS protection collimator in BSY (2.2" diameter)

  BTMBSY2 : INST, TYPE="@0,BCS BTM" !Burn-Through-Monitor behind PCBSY2

! ==============================================================================
! coordinate rolls ... bend plane rotated to remove linac slope
! ------------------------------------------------------------------------------

  ROLLON := 1.0

  !ROLL1 : SROT, ANGLE= 0.014303845885    * ROLLON
  !ROLL2 : SROT, ANGLE=-0.393462907527E-2 * ROLLON
  !ROLL3 : SROT, ANGLE=-0.011395368282    * ROLLON

  ROLL1 : SROT, ANGLE= -0.081073470970 * ROLLON
  ROLL4 : SROT, ANGLE=  0.036833756175 * ROLLON
  ROLL2 : SROT, ANGLE=  0.054553257659 * ROLLON
  ROLL3 : SROT, ANGLE=  0.0            * ROLLON !no final roll per alignment group

! ==============================================================================
! markers
! ------------------------------------------------------------------------------

  BEGB     : MARK
  ENDB     : MARK
  ALWALL   : MARK
  ESAW     : MARK
  PVOT     : MARK
  ESAE     : MARK
  BMDE     : MARK
  MARC     : MARK !match point
  BEGALINE : MARK

! ==============================================================================
! beamlines
! ------------------------------------------------------------------------------

  LD126 : LINE=(D126a,ESAW,D126b,PVOT,D126c)

  ALINEa : LINE=(&
    BKYAL1a,BKYAL1b,DALBK1,&
    BKYAL2a,BKYAL2b,DALBK2,&
    BKYAL3a,BKYAL3b,DALBK3,&
    BKYAL4a,BKYAL4b,DALBK4,&
    BKYAL5a,BKYAL5b,DALBLX1,PCBSY2,BTMBSY2,DALBLX2,BPMCUA,DALBLX3)

  ALINEb : LINE=(&
    ROLL1,&
    BLXALa,BLXALb,DLXAM,ROLL4,&
    BXAM1A,BXAM1B,ROLL2,&
    ENDBSYA,DAMQ10,&
    Q10,Q10,D105,&
    Q11,Q11,D106,&
    BEGB,&
    BA,D107,&
    BA,D108,&
    BA,D109,&
    BA,D110,&
    BA,D111,&
    BA,D112,&
    Q19,Q19,D113,&
    Q20,Q20,D114,&
    BA,D115,&
    BA,D116,&
    BA,D117,&
    BA,D118,&
    BA,D119,&
    BA,MARC,ROLL3,&
    ENDB,D120,&
    Q27,Q27,D121,&
    "SQ27.5","SQ27.5",D122,&
    Q28,Q28,D123,&
    Q30,Q30,D124,&
    Q38,Q38,D125,ALWALL,LD126,ESAE,D127,BMDE)

  ALINE : LINE=(BEGBSYA,ALINEa,ALINEb)

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

  RETURN
