! ==============================================================================
! transfer line from LCLS2sc bypass to LCLS BSY
! ==============================================================================

! ==============================================================================
! Modification History
! ------------------------------------------------------------------------------
! 26-OCT-2013, Y. Nosochkov
!  * update quadrupole type 1.26Q12
! 18-OCT-2013, Y. Nosochkov
!  * include two SROTs to TLINE to remove residual survey roll angle
!  * update initial conditions and quad strengths
! ------------------------------------------------------------------------------

! XYZ (linac system) and twiss at beginning of transfer line (BEGTL)

  XTL  := -6.504940000E-01
  YTL  :=  6.494780000E-01
  ZTL  :=  2869.007003
  THTL :=  0
  PHTL :=  0
  PSTL :=  0
  BXTL := 65.037716213932
  BYTL := 79.28158786017
  AXTL := 1.850545888101
  AYTL := 0.433825733939
  TWSTL : BETA0, BETX=BXTL, BETY=BYTL, ALFX=AXTL, ALFY=AYTL

! XYZ (linac system) and twiss at end of transfer line (ENDTL)

  XETL  := -3.310606452E-07
  YETL  :=  0
  ZETL  :=  3091.298880
  THETL :=  0
  PHETL :=  0
  PSETL :=  0
  BXETL :=  1.399496966E+01
  BYETL :=  7.505730698E+01
  AXETL :=  5.150545381E-01
  AYETL := -2.598710076E+00
  TWSSETL : BETA0, BETX=BXETL, BETY=BYETL, ALFX=AXETL, ALFY=AYETL

! quads

  KQTL1 := -0.156320930079
  KQTL2 :=  0.286469930972
  KQTL3 := -0.220309898142
  KQTL4 :=  0.293578560843
  KQTL5 := -0.199895509055
  KQTL6 :=  0.155929504585
  KQTL7 := -0.202193909151
  KQTL8 :=  0.158279110794

  QTL1 : QUAD, TYPE="1.26Q12", L=LQA/2, K1=KQTL1, APER=rQA
  QTL2 : QUAD, TYPE="1.26Q12", L=LQA/2, K1=KQTL2, APER=rQA
  QTL3 : QUAD, TYPE="1.26Q12", L=LQA/2, K1=KQTL3, APER=rQA
  QTL4 : QUAD, TYPE="1.26Q12", L=LQA/2, K1=KQTL4, APER=rQA
  QTL5 : QUAD, TYPE="1.26Q12", L=LQA/2, K1=KQTL5, APER=rQA
  QTL6 : QUAD, TYPE="1.26Q12", L=LQA/2, K1=KQTL6, APER=rQA
  QTL7 : QUAD, TYPE="1.26Q12", L=LQA/2, K1=KQTL7, APER=rQA
  QTL8 : QUAD, TYPE="1.26Q12", L=LQA/2, K1=KQTL8, APER=rQA

! septum and bend

  AXYLAM    := -0.459605475319E-2
  GXYLAM    :=  0.006                           !septum gap height (m) - TBD
  LeffXYLAM :=  LXYLAM*AXYLAM/(2*SIN(AXYLAM/2)) !XYLAM effective path length (m)
  TXYLAM    := -0.770461036742                  !roll angle of XYLAM

  XYLAMa : SBEN, TYPE="HLAM", L=LeffXYLAM/2, ANGLE=AXYLAM/2, TILT=TXYLAM,&
                 E1=AXYLAM/2, E2=0, FINT=0.5, FINTX=0, HGAP=GXYLAM/2
  XYLAMb : SBEN, TYPE="HLAM", L=LeffXYLAM/2, ANGLE=AXYLAM/2, TILT=TXYLAM,&
                 E1=0, E2=AXYLAM/2, FINT=0, FINTX=0.5, HGAP=GXYLAM/2

  ABTL    := -AXYLAM
  GBTL    :=  0.032                     !1.26D102.0T gap height (m)
  LeffBTL :=  LBTL*ABTL/(2*SIN(ABTL/2)) !BTL2 effective path length (m)
  TBTL    :=  TXYLAM                    !roll angle of BTL2

  BTL2a : SBEN, TYPE="1.26D102.0T", L=LeffBTL/2, ANGLE=ABTL/2, TILT=TBTL,&
                 E1=ABTL/2, E2=0, FINT=0.5, FINTX=0, HGAP=GBTL/2
  BTL2b : SBEN, TYPE="1.26D102.0T", L=LeffBTL/2, ANGLE=ABTL/2, TILT=TBTL,&
                 E1=0, E2=ABTL/2, FINT=0, FINTX=0.5, HGAP=GBTL/2

! kicker and corrector bends

  RXYLAM   := 1.E-20              !radial offset at center of XYLAM
  RXYLAM15 := 0.015               !design radial offset at center of XYLAM
  YXYLAM   := -RXYLAM*COS(TXYLAM) !design y-offset (m) at center of XYLAM

  AKIKTL :=  0.050000004629 *RXYLAM      !TL kicker angle (rad)
  GKIKTL :=  0.02                        !TL kicker gap (m) - TBD
  TKIKTL :=  PI/2+TXYLAM                 !TL kicker roll angle (rad)

  KIKTLa : SBEN, TYPE="TL-kicker", L=LKIKTL/2, ANGLE=AKIKTL/2,&
           E1=0, E2=0, FINT=0.5, FINTX=0, HGAP=GKIKTL/2, TILT=TKIKTL
  KIKTLb : SBEN, TYPE="TL-kicker", L=LKIKTL/2, ANGLE=AKIKTL/2,&
           E1=0, E2=AKIKTL, FINT=0, FINTX=0.5, HGAP=GKIKTL/2, TILT=TKIKTL

  LBCTL   :=  0.5                        !DC corrector length
  GBCTL   :=  0.032                      !DC corrector gap
  ABC1TL  := -0.225772405146 *RXYLAM
  ABC2TL  := -AKIKTL-ABC1TL
  TBC1TL  := TKIKTL
  TBC2TL  := TKIKTL

  BC1TLa : SBEN, TYPE="1.26D18.43", L=LBCTL/2, ANGLE=ABC1TL/2,&
            E1=ABC1TL/2, E2=0, FINT=0.5, FINTX=0, HGAP=GBCTL/2, TILT=TBC1TL
  BC1TLb : SBEN, TYPE="1.26D18.43", L=LBCTL/2, ANGLE=ABC1TL/2,&
            E2=ABC1TL/2, E1=0, FINTX=0.5, FINT=0, HGAP=GBCTL/2, TILT=TBC1TL
  BC2TLa : SBEN, TYPE="1.26D18.43", L=LBCTL/2, ANGLE=ABC2TL/2,&
            E1=ABC2TL/2, E2=0, FINT=0.5, FINTX=0, HGAP=GBCTL/2, TILT=TBC2TL
  BC2TLb : SBEN, TYPE="1.26D18.43", L=LBCTL/2, ANGLE=ABC2TL/2,&
            E2=ABC2TL/2, E1=0, FINTX=0.5, FINT=0, HGAP=GBCTL/2, TILT=TBC2TL

! drifts

  LDTL1  := 40.0
  LDTL1a := LDTL1-LDTL1b-LDTL1c-2*LBCTL-0.002
  LDTL1b := 9.0
  LDTL1c := 0.5
  LDTL2  := 5.0
  LDTL2a := 0.4
  LDTL2b := LDTL2-LDTL2a-0.004
  dLDTL3 := -0.565709731713E-7
  LDTL3  := (195.14302373651-LDTL1-LDTL2-LDTL8-LDTL9-0.002)/5 +dLDTL3
  LDTL3a := 0.4
  LDTL3b := LDTL3-LDTL3a-0.004
  LDTL4  := LDTL3
  LDTL4a := 0.4
  LDTL4b := LDTL4-LDTL4a-0.004
  LDTL5  := LDTL3
  LDTL5a := 0.4
  LDTL5b := LDTL5-LDTL5a-0.004
  LDTL6  := LDTL3
  LDTL6a := 0.4
  LDTL6b := LDTL6-LDTL6a-0.004
  LDTL7  := LDTL3
  LDTL7a := 0.4
  LDTL7b := LDTL7-LDTL7a-LDTL7c-0.004
  LDTL7c := 0.4
  LDTL8  := 12.0
  LDTL8b := 0.4
  LDTL8a := LDTL8-LDTL8b-0.004
  LDTL9  := LDTL1+LeffXYLAM/2-LeffBTL/2-0.002

  DTL1a : DRIF, L=LDTL1a
  DTL1b : DRIF, L=LDTL1b
  DTL1c : DRIF, L=LDTL1c
  DTL2a : DRIF, L=LDTL2a
  DTL2b : DRIF, L=LDTL2b
  DTL3a : DRIF, L=LDTL3a
  DTL3b : DRIF, L=LDTL3b
  DTL4a : DRIF, L=LDTL4a
  DTL4b : DRIF, L=LDTL4b
  DTL5a : DRIF, L=LDTL5a
  DTL5b : DRIF, L=LDTL5b
  DTL6a : DRIF, L=LDTL6a
  DTL6b : DRIF, L=LDTL6b
  DTL7a : DRIF, L=LDTL7a
  DTL7b : DRIF, L=LDTL7b
  DTL7c : DRIF, L=LDTL7c
  DTL8a : DRIF, L=LDTL8a
  DTL8b : DRIF, L=LDTL8b
  DTL9  : DRIF, L=LDTL9

! markers

  BEGTL  : MARKER
  ENDTL  : MARKER
  MKIKTL : MARKER
  MXYLAM : MARKER

! monitors

  BPMTL1 : MONI, TYPE="05_um_res" !type TBD
  BPMTL2 : MONI, TYPE="05_um_res" !type TBD
  BPMTL3 : MONI, TYPE="05_um_res" !type TBD
  BPMTL4 : MONI, TYPE="05_um_res" !type TBD
  BPMTL5 : MONI, TYPE="05_um_res" !type TBD
  BPMTL6 : MONI, TYPE="05_um_res" !type TBD
  BPMTL7 : MONI, TYPE="05_um_res" !type TBD
  BPMTL8 : MONI, TYPE="05_um_res" !type TBD

! steering correctors

  XTL2 : HKIC, TYPE="class-4" !type TBD
  XTL4 : HKIC, TYPE="class-4" !type TBD
  XTL6 : HKIC, TYPE="class-4" !type TBD
  XTL8 : HKIC, TYPE="class-4" !type TBD

  YTL1 : VKIC, TYPE="class-4" !type TBD
  YTL3 : VKIC, TYPE="class-4" !type TBD
  YTL5 : VKIC, TYPE="class-4" !type TBD
  YTL7 : VKIC, TYPE="class-4" !type TBD

! SROT to remove survey roll angle

  ARTL1 := -0.872563482747E-5
  ARTL2 :=  0.527856949476E-5

  RTL1 : SROT, ANGLE=ARTL1
  RTL2 : SROT, ANGLE=ARTL2

! beamlines

  TLINE : LINE=(SEQ10BEG,&
                BEGTL,D2Q4q,KIKTLa,KIKTLb,D2Q4r,&
                XYLAMa,MXYLAM,XYLAMb,DTL1a,BC1TLa,BC1TLb,DTL1b,&
                                           BC2TLa,BC2TLb,DTL1c,RTL1,&
                QTL1,BPMTL1,QTL1,DTL2a,YTL1,DTL2b,&
                QTL2,BPMTL2,QTL2,DTL3a,XTL2,DTL3b,&
                QTL3,BPMTL3,QTL3,DTL4a,YTL3,DTL4b,&
                QTL4,BPMTL4,QTL4,DTL5a,XTL4,DTL5b,&
                QTL5,BPMTL5,QTL5,DTL6a,YTL5,DTL6b,&
                QTL6,BPMTL6,QTL6,DTL7a,XTL6,DTL7b,YTL7,DTL7c,&
                QTL7,BPMTL7,QTL7,DTL8a,XTL8,DTL8b,&
                QTL8,BPMTL8,QTL8,DTL9,RTL2,&
                BTL2a,BTL2b,ENDTL)

  RETURN
