
! *** OPTICS=LCLS2sc15OCT14 ***

! LCLS2sc post laser heater diagnostic beamline

! ==============================================================================
! Modification History
! ------------------------------------------------------------------------------
! 13-OCT-2014, M. Woodley
!  * parameters of extraction magnets (BKYDG0, BLRDG0, and BXDG0) per "Post-LH
!    Diagnostic Beamline Requirements" PRD (LCLSII-2.4-PR-0068-R1)
!  * adjust deferment/deprecation levels
! ------------------------------------------------------------------------------
! 07-AUG-2014, M. Woodley
!  * diagnostics complement per "Electron Beam Diagnostics Systems" PRD
!    (LCLSII-2.7-PR-0170)
!  * decorate device TYPE attributes to indicate non-baseline status
! 17-APR-2014, M. Woodley
!  * add "CNT" MARKERs after dispersive areas (ELEGANT CENTERing)
! ------------------------------------------------------------------------------
! 31-MAR-2014, M. Woodley
!  * reduce horizontal beamline offset from 70 cm to 50 cm per H. Alvarez
!  * add WSDG01
!  * element names changed to conform to nomenclature PRD
! 27-FEB-2014, M. Woodley
!  * created (based on a previous deck from Paul Emma)
! ------------------------------------------------------------------------------

! matched Twiss at kicker entrance

  D0BX0 := 19.999999969159 !twiss beta x at start of kicker (m)
  D0AX0 := 7.05493233088   !twiss alpha x at start of kicker
  D0BY0 := 19.452694213812 !twiss beta y at start of kicker (m)
  D0AY0 := 3.591924627005  !twiss alpha y at start of kicker

  D0TW0 : BETA0, ENERGY=Ei, BETX=D0BX0, ALFX=D0AX0, BETY=D0BY0, ALFY=D0AY0

! geometry and horizontal dispersion matching parameters

  YANG0  := -0.833341639024E-2 !vertical kick angle (rad)
  XANG0  := 0.106398670257     !septum bend angle (rad)
  SROL0  := -0.177860748643    !septum roll angle (suppress vertical dispersion)
  AROLL0 := -0.113675429933E-3 !removes tiny coordinate roll from rolled HLAM
  YK01   := -0.991363415647E-2 !simulates vertical kick due to misaligned QDG001
  YK02   := -0.588742887647E-3 !simulates vertical kick due to misaligned QDG003
  LHH0   := 4.783096491709     !z-distance from HLAM0 center to HBND0 center (m)
  LTWK0a := -0.289257004596    !drift adjust (moves QDG001 and QBF0 w.r.t. QDG002)
  LTWK0b := 0.264063568743E-3  !drift adjust (moves QDG001/QDG002/QDG003 together)
  KQBF0  := 17.0               !strength of QDG001/QDG003
  KQBD0  := -12.169866762683   !strength of QDG002

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

! transverse deflecting cavities
! (NOTE: TCYDG0 might be installed as an uprgade at a later time)

  TCYDG0h : LCAV, TYPE="@4,TRANS_YDEF", FREQ=2856, L=0.8/2 !Y-deflector (split)
  TCXDG0h : LCAV, TYPE="@1,TRANS_XDEF", FREQ=2856, L=0.8/2 !X-deflector (split)

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

  LKICK0 := 1.0   !kicker path length (m)
  GKICK0 := 0.02  !kicker full gap (m)
  LHLAM0 := 0.4   !lambertson path length (m)
  GHLAM0 := 0.02  !lambertson full gap (m)
  LHBND0 := 0.4   !BXDG0 path length (m)
  GHBND0 := 0.02  !BXDG0 full gap (m)
  LBDMP0 := 0.5   !dump bend path length (m)
  GBDMP0 := 0.025 !dump bend full gap (m)

  YKOFF0 := 15E-3      !vertical offset at septum face (m)
  LKS0   := 2.0        !z-distance from KDIAG0 center to HLAM0 center (m)
  DX0    := 0.5        !x-distance from linac axis to diagnostic line axis (m)
  XANG02 := 6*RADDEG   !HBND0 bend angle (rad)
  ABDMP0 := -30*RADDEG !dump bend angle (rad)

  BKYDG0a : SBEN, TYPE="kicker", HGAP=GKICK0/2, L=LKICK0/2, ANGLE=YANG0/2, &
                  E1=0, FINT=0.5, FINTX=0, TILT=90*RADDEG
  BKYDG0b : SBEN, TYPE="kicker", HGAP=GKICK0/2, L=LKICK0/2, ANGLE=YANG0/2, &
                  E2=YANG0, FINT=0, FINTX=0.5, TILT=90*RADDEG
  BLRDG0a : SBEN, TYPE="lambertson", HGAP=GHLAM0/2, L=LHLAM0/2, &
                  ANGLE=-XANG0/2, E1=-XANG0/2, FINT=0.5, FINTX=0, TILT=SROL0
  BLRDG0b : SBEN, TYPE="lambertson", HGAP=GHLAM0/2, L=LHLAM0/2, &
                  ANGLE=-XANG0/2, E2=-XANG0/2, FINT=0, FINTX=0.5, TILT=SROL0
  BXDG0a  : SBEN, TYPE="unknown", HGAP=GHBND0/2, L=LHBND0/2, ANGLE=XANG02/2, &
                  E1=XANG02/2, FINT=0.5, FINTX=0
  BXDG0b  : SBEN, TYPE="unknown", HGAP=GHBND0/2, L=LHBND0/2, ANGLE=XANG02/2, &
                  E2=XANG02/2, FINT=0, FINTX=0.5
  BYDG0a  : SBEN, TYPE="unknown", HGAP=GBDMP0/2, L=LBDMP0/2, ANGLE=ABDMP0/2, &
                  E1=ABDMP0/2, FINT=0.5, FINTX=0, TILT=90*RADDEG
  BYDG0b  : SBEN, TYPE="unknown", HGAP=GBDMP0/2, L=LBDMP0/2, ANGLE=ABDMP0/2, &
                  E2=ABDMP0/2, FINT=0, FINTX=0.5, TILT=90*RADDEG

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

  KQDG004 :=   4.609471733188
  KQDG005 := -11.674818508678
  KQDG006 :=   9.17148736963
  KQDG007 := -16.090098035396
  KQDG008 :=  15.346157002335
  KQDG009 := -15.161645781277
  KQDG010 :=  15.010299616234
  KQDG011 := -12.648200513029
  KQDG012 :=  -0.906340220374

  QDG001 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQBF0
  QDG002 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQBD0
  QDG003 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQBF0
  QDG004 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQDG004
  QDG005 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQDG005
  QDG006 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQDG006
  QDG007 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQDG007
  QDG008 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQDG008
  QDG009 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQDG009
  QDG010 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQDG010
  QDG011 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQDG011
  QDG012 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQDG012

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

! model misaligned quadrupoles

  DYQDG001 : MULTIPOLE, K0L=YK01, T0=90*RADDEG
  DYQDG003 : MULTIPOLE, K0L=YK02, T0=90*RADDEG

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

! removes creeping roll introduced by rolled Lambertson

  RODG0 : SROT, ANGLE=AROLL0

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

  LKSD0  := LKS0-LKICK0/2-LHLAM0/2       !dz between kicker exit and HLAM0 entrance (m)
  LHH1D0 := LHH0/4-LHLAM0/2-LQx/2-LTWK0a !drift between HLAM0 and 1st QBF0
  LHH2D0 := LHH0/4-LQx+LTWK0a            !drift between 1st QBF0 and QDG002
  LHH3D0 := LHH0/4-LQx+LTWK0a            !drift between QDG002 and 2nd QBF0
  LHH4D0 := LHH0/4-LHBND0/2-LQx/2-LTWK0a !drift between 2nd QBF0 and HBND0

  DKV0   : DRIF, L=LKSD0
  DQB01  : DRIF, L=LHH1D0+LTWK0b
  DQB02  : DRIF, L=LHH2D0
  DQB03  : DRIF, L=LHH3D0
  DQB04  : DRIF, L=LHH4D0-LTWK0b
  DS00   : DRIF, L=0.296
  DS01   : DRIF, L=0.3
  DLED05 : DRIF, L=1.0

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

  DKV0a   : DRIF, L=0.15
  DKV0c   : DRIF, L=0.15
  DKV0b   : DRIF, L=DKV0[L]-DKV0a[L]-DKV0c[L]
  DQB01a  : DRIF, L=0.15
  DQB01c  : DRIF, L=0.15
  DQB01b  : DRIF, L=DQB01[L]-DQB01a[L]-DQB01c[L]
  DQB03b  : DRIF, L=0.15
  DQB03a  : DRIF, L=DQB03[L]-DQB03b[L]
  DQB04b  : DRIF, L=0.15
  DQB04a  : DRIF, L=DQB04[L]-DQB04b[L]
  DS01a   : DRIF, L=DS01[L]/2
  DS01b   : DRIF, L=DS01[L]/2
  DLED05b : DRIF, L=0.15
  DLED05c : DRIF, L=0.15
  DLED05a : DRIF, L=DLED05[L]-DLED05b[L]-DLED05c[L]
  DS00a   : DRIF, L=0.1
  DS00b   : DRIF, L=DS00[L]-DS00a[L]
  DS01c   : DRIF, L=(2/3)*DS01[L]
  DS01d   : DRIF, L=(1/3)*DS01[L]

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

  BPMDG000 : MONI, TYPE="10_um_res_R45"
  BPMDG002 : MONI, TYPE="10_um_res_R45"
  BPMDG003 : MONI, TYPE="10_um_res_R45"
  BPMDG004 : MONI, TYPE="10_um_res_R45"
  BPMDG005 : MONI, TYPE="10_um_res_R45"
  BPMDG0RF : MONI, TYPE="10_um_res_R45"
  BPMDG008 : MONI, TYPE="10_um_res_R45"
  BPMDG009 : MONI, TYPE="10_um_res_R45"
  BPMDG011 : MONI, TYPE="10_um_res_R45"

  RFBDG001 : MONI, TYPE="@1,01_um_res"
  RFBDG002 : MONI, TYPE="@0,01_um_res"
  RFBDG003 : MONI, TYPE="@0,01_um_res"
  RFBDG004 : MONI, TYPE="@0,01_um_res"

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

  XCDG001 : HKIC, TYPE="class-1a"
  XCDG002 : HKIC, TYPE="class-1a"
  XCDG003 : HKIC, TYPE="class-1a"
  XCDG005 : HKIC, TYPE="class-1a"
  XCDG008 : HKIC, TYPE="class-1a"
  XCDG010 : HKIC, TYPE="class-1a"
  XCDG012 : HKIC, TYPE="class-1a"

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

  YCDG000 : VKIC, TYPE="class-6"
  YCDG001 : VKIC, TYPE="class-1a"
  YCDG002 : VKIC, TYPE="class-1a"
  YCDG003 : VKIC, TYPE="class-1a"
  YCDG005 : VKIC, TYPE="class-1a"
  YCDG008 : VKIC, TYPE="class-1a"
  YCDG010 : VKIC, TYPE="class-1a"
  YCDG012 : VKIC, TYPE="class-1a"

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

! profile monitors

  OTRDG01 : PROF, TYPE="@3,OTR"
  OTRDG02 : PROF, TYPE="OTR"
  OTRDG03 : PROF, TYPE="@3,OTR"
  OTRDG04 : PROF, TYPE="OTR"

! wire scanners

  WSDG01 : WIRE

! charge monitors

  FCDG0DU : IMON, TYPE="Faraday cup"

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

  M1DG0   : MARK
  CNTDG0  : MARK, TYPE="CENTER"
  M2DG0   : MARK
  MTCYDG0 : MARK
  MTCXDG0 : MARK

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

  SCDG001 : LINE=(XCDG001,YCDG001)
  SCDG002 : LINE=(XCDG002,YCDG002)
  SCDG003 : LINE=(XCDG003,YCDG003)
  SCDG005 : LINE=(XCDG005,YCDG005)
  SCDG008 : LINE=(XCDG008,YCDG008)
  SCDG010 : LINE=(XCDG010,YCDG010)
  SCDG012 : LINE=(XCDG012,YCDG012)

  TCYDG0 : LINE=(TCYDG0h,MTCYDG0,TCYDG0h)
  TCXDG0 : LINE=(TCXDG0h,MTCXDG0,TCXDG0h)

  DIAG0 : LINE=(&
    SEQ16BEG,&
    BEGDIAG0,&
    BKYDG0a,BKYDG0b,DKV0a,YCDG000,DKV0b,BPMDG000,DKV0c,M1DG0,&
    BLRDG0a,BLRDG0b,RODG0,DQB01a,RFBDG001,DQB01b,SCDG001,DQB01c,&
    QDG001,DYQDG001,QDG001,DQB02,&
    QDG002,BPMDG002,QDG002,DQB03a,SCDG002,DQB03b,&
    QDG003,BPMDG003,DYQDG003,QDG003,DQB04a,SCDG003,DQB04b,&
    BXDG0a,BXDG0b,CNTDG0,M2DG0,DS00,&
    QDG004,BPMDG004,QDG004,DS00,DS00,&
    QDG005,BPMDG005,QDG005,DS00,SCDG005,DS00,&
    QDG006,QDG006,DS00,TCYDG0,DS01a,BPMDG0RF,DS01b,TCXDG0,DS00,&
    QDG007,QDG007,DS00,DS00,&
    QDG008,BPMDG008,QDG008,DS00,SCDG008,DS00,&
    QDG009,BPMDG009,QDG009,DS00,OTRDG01,DLED05a,RFBDG002,DLED05b,WSDG01,&
      DLED05c,OTRDG02,DLED05,OTRDG03,DS00,&
    QDG010,QDG010,DS00,SCDG010,DS00,&
    QDG011,BPMDG011,QDG011,DS00a,RFBDG003,DS00b,&
    BYDG0a,BYDG0b,DS00,&
    QDG012,QDG012,DS00,SCDG012,DS01,DS01c,RFBDG004,DS01d,&
     OTRDG04,DS01,FCDG0DU,&
    ENDDIAG0,&
    SEQ16END)

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

  RETURN
