
! *** OPTICS=LCLS2sc31MAR14 ***

! LCLS2sc post BC1 diagnostic beamline

! ==============================================================================
! Modification History
! ------------------------------------------------------------------------------
! 31-MAR-2014, M. Woodley
!  * add WSDG11
!  * element names changed to conform to nomenclature PRD
! ------------------------------------------------------------------------------
! 20-MAR-2014, P. Emma
!  Initial post-BC1 diagnostic line (based on previous DIAG0 file from
!  M. Woodley)
! 27-FEB-2014, M. Woodley
!  * created (based on a previous deck from Paul Emma)
! ------------------------------------------------------------------------------

! matched Twiss at post-BC1 kicker entrance

  D1BX0 := 18.821186467222 !twiss beta x at start of kicker (m)
  D1AX0 :=  5.516699800601 !twiss alpha x at start of kicker
  D1BY0 := 19.825069532305 !twiss beta y at start of kicker (m)
  D1AY0 :=  3.319949032701 !twiss alpha y at start of kicker

  D1TW0 : BETA0, ENERGY=E1, BETX=D1BX0, ALFX=D1AX0, BETY=D1BY0, ALFY=D1AY0

! geometry and horizontal dispersion matching parameters

  YANG1  := -0.652178033757E-2 !vertical kick angle (rad)
  XANG1  :=  0.071020980529    !septum bend angle (rad)
  SROL1  := -0.184649988362    !septum roll angle (suppress vertical dispersion)
  AROLL1 := -0.476603236275E-7 !removes tiny coordinate roll from rolled HLAM1
  YK11   := -0.618940249359E-2 !simulates vertical kick due to misaligned QDG101
  YK12   := -0.333742627981E-3 !simulates vertical kick due to misaligned QDG103
  LHH1   :=  7.167678817204    !z-distance from HLAM1 center to HBND1 center (m)
  LTWK1a := -0.583592855764    !drift adjust (moves QDG101 and QDG103 w.r.t. QDG102)
  LTWK1b :=  0.322407000121E-3 !drift adjust (moves QDG101/QDG102/QDG103 together)
  KQBF1  := 11.828956409653    !strength of QDG101/QDG103
  KQBD1  := -8.828322072868    !strength of QDG102

! ==============================================================================
! LCAV
! ------------------------------------------------------------------------------

! transverse deflecting cavities

  TCYDG1h : LCAV, TYPE="TRANS_YDEF", FREQ=2856, L=0.8/2 !RF Y-deflector (split)
  TCXDG1h : LCAV, TYPE="TRANS_XDEF", FREQ=2856, L=0.8/2 !RF X-deflector (split)

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

  LKICK1 := 1.0  !kicker magnet length (m)
  GKICK1 := 0.01 !kicker full magnetic gap (m)
  LHLAM1 := 0.4  !effective length of HLAM1 (m)
  GHLAM1 := 0.01 !HLAM1 full magnetic gap (m)
  LHBND1 := 0.4  !effective length of HBND1 (m)
  GHBND1 := 0.01 !HBND1 full magnetic gap (m)
  LBDMP1 := 0.50 !effective length of dump bend (m)
  GBDMP1 := 0.02 !dump bend full magnetic gap (m)

  YKOFF1 := 15E-3      !vertical offset at septum face (m)
  LKS1   := 2.5        !z-distance from BKYDG1 center to HLAM1 center (m)
  DX1    := 0.5        !hor. distance from linac axis to diagnostic line axis (m)
  XANG2  := 4.0*RADDEG !HBND1 bend angle (rad)
  ABDMP1 := -20*RADDEG !dump bend angle (rad)

  BKYDG1a : SBEN, TYPE="kicker", HGAP=GKICK1/2, L=LKICK1/2, ANGLE=YANG1/2, &
                  E1=0, FINT=0.5, FINTX=0, TILT=90*RADDEG
  BKYDG1b : SBEN, TYPE="kicker", HGAP=GKICK1/2, L=LKICK1/2, ANGLE=YANG1/2, &
                  E2=YANG1, FINT=0, FINTX=0.5, TILT=90*RADDEG
  BLRDG1a : SBEN, TYPE="lambertson", HGAP=GHLAM1/2, L=LHLAM1/2, &
                  ANGLE=-XANG1/2, E1=-XANG1/2, FINT=0.5, FINTX=0, TILT=SROL1
  BLRDG1b : SBEN, TYPE="lambertson", HGAP=GHLAM1/2, L=LHLAM1/2, &
                  ANGLE=-XANG1/2, E2=-XANG1/2, FINT=0, FINTX=0.5, TILT=SROL1
  BXDG1a  : SBEN, TYPE="unknown", HGAP=GHBND1/2, L=LHBND1/2, ANGLE=XANG2/2, &
                  E1=XANG2/2, FINT=0.5, FINTX=0
  BXDG1b  : SBEN, TYPE="unknown", HGAP=GHBND1/2, L=LHBND1/2, ANGLE=XANG2/2, &
                  E2=XANG2/2, FINT=0, FINTX=0.5
  BYDG1a  : SBEN, TYPE="unknown", HGAP=GBDMP1/2, L=LBDMP1/2, ANGLE=ABDMP1/2, &
                  E1=ABDMP1/2, FINT=0.5, FINTX=0, TILT=90*RADDEG
  BYDG1b  : SBEN, TYPE="unknown", HGAP=GBDMP1/2, L=LBDMP1/2, ANGLE=ABDMP1/2, &
                  E2=ABDMP1/2, FINT=0, FINTX=0.5, TILT=90*RADDEG

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

  KQDG104 := -4.639921510604
  KQDG105 :=  5.582092783227
  KQDG106 := -2.472354615863
  KQDG107 :=  4.276443625056
  KQDG108 := -5.583285943577
  KQDG109 :=  3.092292063071
  KQDG110 :=  5.822400308324
  KQDG111 := -4.993302589198
  KQDG112 := -5.281577333885

  QDG101 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQBF1
  QDG102 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQBD1
  QDG103 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQBF1
  QDG104 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQDG104
  QDG105 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQDG105
  QDG106 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQDG106
  QDG107 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQDG107
  QDG108 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQDG108
  QDG109 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQDG109
  QDG110 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQDG110
  QDG111 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQDG111
  QDG112 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQDG112

! ==============================================================================
! SEXT
! ------------------------------------------------------------------------------

  KSDG101 := -190.0
  KSDG103 :=  190.0

  SDG101 : SEXT, TYPE="unknown", L=0.1/2, APER=0.016, K2=KSDG101
  SDG103 : SEXT, TYPE="unknown", L=0.1/2, APER=0.016, K2=KSDG103

! ==============================================================================
! MULT
! ------------------------------------------------------------------------------

! model misaligned quadrupoles

  DYQDG101 : MULTIPOLE, K0L=YK11, T0=90*RADDEG
  DYQDG103 : MULTIPOLE, K0L=YK12, T0=90*RADDEG

! ==============================================================================
! SROT
! ------------------------------------------------------------------------------

! removes creeping roll introduced by rolled Lambertson

  RODG1 : SROT, ANGLE=AROLL1

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

  LKSD1  := LKS1-LKICK1/2-LHLAM1/2       !dz between kicker exit and HLAM1 entrance (m)
  LHH1D1 := LHH1/4-LHLAM1/2-LQx/2-LTWK1a !drift between HLAM1 and QDG101
  LHH2D1 := LHH1/4-LQx+LTWK1a            !drift between 1st QDG101 and QDG102
  LHH3D1 := LHH1/4-LQx+LTWK1a            !drift between QDG102 and QDG103
  LHH4D1 := LHH1/4-LHBND1/2-LQx/2-LTWK1a !drift between QDG103 and HBND1

  DKV1   : DRIF, L=LKSD1
  DQB11  : DRIF, L=LHH1D1+LTWK1b-0.2
  DQB12  : DRIF, L=LHH2D1
  DQB13  : DRIF, L=LHH3D1
  DQB14  : DRIF, L=LHH4D1-LTWK1b-0.2
  DS10   : DRIF, L=0.1
  DS11   : DRIF, L=0.3
  DLED15 : DRIF, L=2.5

  BMINDG1 := DLED15[L]/SQRT(3) !betaX=betaY at waist (120 deg between OTRs)

  DKV1a   : DRIF, L=0.15
  DKV1c   : DRIF, L=0.15
  DKV1b   : DRIF, L=DKV1[L]-DKV1a[L]-DKV1c[L]
  DQB11b  : DRIF, L=0.15
  DQB11a  : DRIF, L=DQB11[L]-DQB11b[L]
  DQB13b  : DRIF, L=0.15
  DQB13a  : DRIF, L=DQB13[L]-DQB13b[L]
  DQB14b  : DRIF, L=0.15
  DQB14a  : DRIF, L=DQB14[L]-DQB14b[L]
  DS11a   : DRIF, L=DS11[L]/2
  DS11b   : DRIF, L=DS11[L]-DS11a[L]
  DLED15b : DRIF, L=0.15
  DLED15a : DRIF, L=DLED15[L]-DLED15b[L]
  DS11c   : DRIF, L=DS11[L]/3
  DS11d   : DRIF, L=DS11[L]/3
  DS11e   : DRIF, L=DS11[L]-DS11c[L]-DS11d[L]

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

  BPMDG100 : MONI, TYPE="10_um_res_R45"
  BPMDG102 : MONI, TYPE="10_um_res_R45"
  BPMDG103 : MONI, TYPE="10_um_res_R45"
  BPMDG104 : MONI, TYPE="10_um_res_R45"
  BPMDG105 : MONI, TYPE="10_um_res_R45"
  BPMDG1RF : MONI, TYPE="10_um_res_R45"
  BPMDG108 : MONI, TYPE="10_um_res_R45"
  BPMDG109 : MONI, TYPE="10_um_res_R45"
  BPMDG1PR : MONI, TYPE="10_um_res_R45"
  BPMDG111 : MONI, TYPE="10_um_res_R45"
  BPMDG1DU : MONI, TYPE="10_um_res_R45"

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

  XCDG101 : HKIC, TYPE="class-1a"
  XCDG102 : HKIC, TYPE="class-1a"
  XCDG103 : HKIC, TYPE="class-1a"
  XCDG105 : HKIC, TYPE="class-1a"
  XCDG108 : HKIC, TYPE="class-1a"
  XCDG110 : HKIC, TYPE="class-1a"
  XCDG112 : HKIC, TYPE="class-1a"

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

  YCDG100 : VKIC, TYPE="class-6"
  YCDG101 : VKIC, TYPE="class-1a"
  YCDG102 : VKIC, TYPE="class-1a"
  YCDG103 : VKIC, TYPE="class-1a"
  YCDG105 : VKIC, TYPE="class-1a"
  YCDG108 : VKIC, TYPE="class-1a"
  YCDG110 : VKIC, TYPE="class-1a"
  YCDG112 : VKIC, TYPE="class-1a"

! ==============================================================================
! diagnostics, etc.
! ------------------------------------------------------------------------------

! profile monitors

  OTRDG11 : PROF, TYPE="OTR"
  OTRDG12 : PROF, TYPE="OTR"
  OTRDG13 : PROF, TYPE="OTR"
  OTRDG14 : PROF, TYPE="OTR"

! wire scanners

  WSDG11 : WIRE

! charge monitors

  IMDG1DU : IMON, TYPE="toroid"
  FCDG1DU : IMON, TYPE="Faraday cup"

! ==============================================================================
! marker points
! ------------------------------------------------------------------------------

  M1DG1   : MARK
  M2DG1   : MARK
  MTCYDG1 : MARK
  MTCXDG1 : MARK
  DUMPDG1 : INST

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

  SCDG101 : LINE=(XCDG101,YCDG101)
  SCDG102 : LINE=(XCDG102,YCDG102)
  SCDG103 : LINE=(XCDG103,YCDG103)
  SCDG105 : LINE=(XCDG105,YCDG105)
  SCDG108 : LINE=(XCDG108,YCDG108)
  SCDG110 : LINE=(XCDG110,YCDG110)
  SCDG112 : LINE=(XCDG112,YCDG112)

  TCYDG1 : LINE=(TCYDG1h,MTCYDG1,TCYDG1h)
  TCXDG1 : LINE=(TCXDG1h,MTCXDG1,TCXDG1h)

  DIAG1 : LINE=(&
    SEQ17BEG,&
    BEGDIAG1,&
    BKYDG1a,BKYDG1b,DKV1a,YCDG100,DKV1b,BPMDG100,DKV1c,M1DG1,&
    BLRDG1a,BLRDG1b,RODG1,DQB11a,SCDG101,DQB11b,&
    SDG101,SDG101,DS10,&
    QDG101,DYQDG101,QDG101,DQB12,&
    QDG102,BPMDG102,QDG102,DQB13a,SCDG102,DQB13b,&
    QDG103,BPMDG103,DYQDG103,QDG103,DS10,&
    SDG103,SDG103,DQB14a,SCDG103,DQB14b,&
    BXDG1a,BXDG1b,M2DG1,DS11,&
    QDG104,BPMDG104,QDG104,4*DS11,&
    QDG105,BPMDG105,QDG105,4*DS11,SCDG105,4*DS11,&
    QDG106,QDG106,DS11,TCYDG1,DS11a,BPMDG1RF,DS11b,TCXDG1,DS11,&
    QDG107,QDG107,4*DS11,&
    QDG108,BPMDG108,QDG108,DS11,DS11a,SCDG108,DS11b,DS11,&
    QDG109,BPMDG109,QDG109,DS11,OTRDG11,DLED15a,BPMDG1PR,DLED15b,OTRDG12,&
      WSDG11,DLED15,OTRDG13,DS11,&
    QDG110,QDG110,DS11,SCDG110,DS11,&
    QDG111,BPMDG111,QDG111,DS11,&
    BYDG1a,BYDG1b,4*DS11,&
    QDG112,QDG112,DS11a,SCDG112,DS11b,4*DS11,DS11c,IMDG1DU,DS11d,BPMDG1DU,&
      DS11e,OTRDG14,DS11,FCDG1DU,DUMPDG1,&
    ENDDIAG1,&
    SEQ17END)

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

  RETURN
