
! *** OPTICS=LCLS2sc19JUN15 ***

! LCLS2sc safety dump lines

! ==============================================================================
! Modification History
! ------------------------------------------------------------------------------
! 20-MAY-2015, Y. Nosochkov
!  * add PCPM3, PCPM3B, remove BXPM3 (per Shanjie)
!  * update aperture of PCPM1,2,3 and PCPM1B,2B,3B (per LCLSII-3.5-PR-0111-R1)
!  * update positions of PCPM2, BXPM1, BXPM2 (per Shanjie)
!  * move PCPM1, PCPM1B 0.135 m downstream (per A. Ibrahimov)
! ------------------------------------------------------------------------------
! 12-MAR-2015, Y. Nosochkov
!  * add existing XDCXRAY screen in the XDC chamber in HXR
! ------------------------------------------------------------------------------
! 12-DEC-2014, M. Woodley
!  * move area BEG/END MARKers to common.xsif
!  * add SEQ BEG/END MARKers
! 09-DEC-2014, Y. Nosochkov
!  * safety dump lines based on LCLS-I design and PRD LCLSII-3.5-PR-0111
! ------------------------------------------------------------------------------

! ------------------------------------------------------------------------------
! HXR safety dump
! ------------------------------------------------------------------------------

! note that axis of BXPM1H,2H bends is parallel to HXR undulator axis but
! horizontally offset by +35 mm towards the North

  LBPM  := 0.944            !effective straight length of permanent magnet FFTB dump bends (m)
  GBPM0 := 0.0381           !original gap height in FFTB magnets in 2005 (m)
  GBPM  := 0.052            !modified (larger) gap height for LCLS safety dump
  BBPM0 := 4.3              !original magnetic field (kG) at gap = 3.81 cm
  BBPM  := BBPM0*GBPM0/GBPM !magnetic field (kG) at gap = 5.2 cm
  RBPM  := Brhof/BBPM       !bending radius (m) in permanent magnets

  ABPM   := LBPM/(2*RBPM)
  ABPM1A := ASIN(  ABPM)              !bending angle of "short" half of BXPM1
  ABPM1B := ASIN(2*ABPM)-ASIN(  ABPM) !bending angle of "long"  half of BXPM1
  ABPM2A := ASIN(3*ABPM)-ASIN(2*ABPM) !bending angle of "short" half of BXPM2
  ABPM2B := ASIN(4*ABPM)-ASIN(3*ABPM) !bending angle of "long"  half of BXPM2

  ABPM1  := ABPM1A+ABPM1B
  ABPM2  := ABPM2A+ABPM2B

  LBPM1A := RBPM*ABPM1A !path length in "short" half of BXPM1
  LBPM1B := RBPM*ABPM1B !path length in "long"  half of BXPM1
  LBPM2A := RBPM*ABPM2A !path length in "short" half of BXPM2
  LBPM2B := RBPM*ABPM2B !path length in "long"  half of BXPM2

  BXPM1A : SBEN, TYPE="4D36-C", L=LBPM1A, ANGLE=ABPM1A, HGAP=GBPM/2, &
                 FINT=0.5, FINTX=0.0, E2=0, E1=0
  BXPM1B : SBEN, TYPE="4D36-C", L=LBPM1B, ANGLE=ABPM1B, HGAP=GBPM/2, &
                 FINT=0.0, FINTX=0.5, E1=0, E2=ABPM1

  BXPM2A : SBEN, TYPE="4D36-C", L=LBPM2A, ANGLE=ABPM2A, HGAP=GBPM/2, &
                 FINT=0.5, FINTX=0.0, E2=0, E1=-ABPM1
  BXPM2B : SBEN, TYPE="4D36-C", L=LBPM2B, ANGLE=ABPM2B, HGAP=GBPM/2, &
                 FINT=0.0, FINTX=0.5, E1=0, E2=ABPM1+ABPM2

  DYDS  : DRIFT, L=LBYDS*COS(ABYDS/2)
  DYD1  : DRIFT, L=LBDM *COS(ABYDS+  ABDM/2)
  DYD2  : DRIFT, L=LBDM *COS(ABYDS+3*ABDM/2)
  DYD3  : DRIFT, L=LBDM *COS(ABYDS+5*ABDM/2)

  DS1S  : DRIFT, L=LDS1*COS(ABYDS)
  DSSA  : DRIFT, L=LDS *COS(ABYDS+  ABDM)
  DSSB  : DRIFT, L=LDS *COS(ABYDS+2*ABDM)
  DSCSA : DRIFT, L=LDSC*COS(ABYDS+3*ABDM)/2 +0.190065
  DSCSB : DRIFT, L=LDSC*COS(ABYDS+3*ABDM)/2 -0.190065-0.138768+0.135

  ZSFTDMP := 0.0762 !safety dump Z-length

  DPCBTM1 : DRIFT, L=0.15-0.135
  DPCBTM2 : DRIFT, L=0.15
  DPM1    : DRIFT, L=0.298
  DPM2    : DRIFT, L=0.30/COS(ABPM1)
  DPM3    : DRIFT, L=8.786/COS(ABPM1+ABPM2)
  DPCBTM3 : DRIFT, L=0.15/COS(ABPM1+ABPM2)
  DPM4    : DRIFT, L=2.272/COS(ABPM1+ABPM2)
  DSFTDMP : DRIFT, L=ZSFTDMP/COS(ABPM1+ABPM2)

  DXDCu  : DRIFT, L=1.092223
  XDCa   : DRIFT, L=0.312777 !XDC chamber
  XDCb   : DRIFT, L=0.693    !XDC chamber
  XDCc   : DRIFT, L=0.542    !XDC chamber
  XDCd   : DRIFT, L=0.255376 !XDC chamber
  DXDCd  : DRIFT, L=7.266-DXDCu[L]-XDCa[L]-XDCb[L]-XDCc[L]-XDCd[L]

  PCPM1 : ECOL, L=LPCPM, XSIZE=0.0080, YSIZE=0.0080 !per LCLSII-3.5-PR-0111-R1
  PCPM2 : ECOL, L=LPCPM, XSIZE=0.0127, YSIZE=0.0127
  PCPM3 : ECOL, L=LPCPM/COS(ABPM1+ABPM2), XSIZE=0.0080, YSIZE=0.0080

  BTM1   : INST !Burn-Through-Monitor behind PCPM1
  BTM2   : INST !Burn-Through-Monitor behind PCPM2
  BTM3   : INST !Burn-Through-Monitor behind PCPM3
  BTMSFT : INST !Burn-Through-Monitor behind HXR safety dump

  YAGXRAY : PROF, TYPE="YAG" !existing safety dump line X-ray screen
  XDCXRAY : PROF             !existing safety dump line X-ray screen

  SFTDMP  : INST !front face of HXR safety dump (Z'=712-715 m per PRD)

  VV38    : MARK !vac. valve in HXR safety dump line

  SFTDUMP: LINE=(SEQ18BEG,&
    BEGSFTH,DYDS,DS1S,DYD1,DSSA,DYD2,DSSB,DYD3,&
    DSCSA,VV38,DSCSB,PCPM1,DPCBTM1,BTM1,DXDCu,&
    XDCa,XDCXRAY,XDCb,XDCc,YAGXRAY,XDCd,DXDCd,PCPM2,DPCBTM2,BTM2,DPM1,&
    BXPM1A,BXPM1B,DPM2,BXPM2A,BXPM2B,DPM3,PCPM3,DPCBTM3,BTM3,DPM4,&
    SFTDMP,DSFTDMP,BTMSFT,ENDSFTH,&
    SEQ18END)

! ------------------------------------------------------------------------------
! SXR safety dump
! ------------------------------------------------------------------------------

! note that BXPM1b bend axis is aligned with the SXR undulator axis without
! any offset

  RBPMb := Brhof/BBPM !bending radius (m) in a permanent magnet

  ABPMb   := LBPM/(2*RBPMb)
  ABPM1bA := ASIN(ABPMb)               !bending angle of "short" half of BXPM1b
  ABPM1bB := ASIN(2*ABPMb)-ASIN(ABPMb) !bending angle of "long"  half of BXPM1b

  LBPM1bA := RBPMb*ABPM1bA !path length in "short" half of BXPM1b
  LBPM1bB := RBPMb*ABPM1bB !path length in "long"  half of BXPM1b

  BXPM1bA : SBEN, TYPE="4D36-C", L=LBPM1bA, ANGLE=ABPM1bA, HGAP=GBPM/2, &
                  FINT=0.5, FINTX=0.0, E2=0, E1=0
  BXPM1bB : SBEN, TYPE="4D36-C", L=LBPM1bB, ANGLE=ABPM1bB, HGAP=GBPM/2, &
                  FINT=0.0, FINTX=0.5, E1=0, E2=ABPM1bA+ABPM1bB

  DPM1b    : DRIFT, L=0.298
  DPM2b    : DRIFT, L=10.03/COS(ABPM1bA+ABPM1bB)
  DPCBTM3b : DRIFT, L=0.15/COS(ABPM1bA+ABPM1bB)
  DPM3b    : DRIFT, L=2.272/COS(ABPM1bA+ABPM1bB)
  DSFTDMPb : DRIFT, L=ZSFTDMP/COS(ABPM1bA+ABPM1bB)

  DXDCbu  : DRIFT, L=1.092223
  XDCba   : DRIFT, L=0.312777 !XDC chamber
  XDCbb   : DRIFT, L=0.693    !XDC chamber
  XDCbc   : DRIFT, L=0.542    !XDC chamber
  XDCbd   : DRIFT, L=0.255376 !XDC chamber
  DXDCbd  : DRIFT, L=7.266-DXDCbu[L]-XDCba[L]-XDCbb[L]-XDCbc[L]-XDCbd[L]

  PCPM1b : ECOL, L=LPCPM, XSIZE=0.0100, YSIZE=0.0100 !per LCLSII-3.5-PR-0111-R1
  PCPM2b : ECOL, L=LPCPM, XSIZE=0.0127, YSIZE=0.0127
  PCPM3b : ECOL, L=LPCPM/COS(ABPM1bA+ABPM1bB), XSIZE=0.0100, YSIZE=0.0100

  BTM1b   : INST !Burn-Through-Monitor behind PCPM1b
  BTM2b   : INST !Burn-Through-Monitor behind PCPM2b
  BTM3b   : INST !Burn-Through-Monitor behind PCPM3b
  BTMSFTb : INST !Burn-Through-Monitor behind SXR safety dump

  YAGXRAYb : PROF, TYPE="YAG" !safety dump line X-ray screen

  SFTDMPb  : INST !front face of SXR safety dump (Z'=712-715 m per PRD)

  VV38b    : MARK !vac. valve in SXR safety dump line

  SFTDUMPb: LINE=(SEQ17BEG,&
    BEGSFTS,DYDS,DS1S,DYD1,DSSA,DYD2,DSSB,DYD3,&
    DSCSA,VV38b,DSCSB,PCPM1b,DPCBTM1,BTM1b,DXDCbu,&
    XDCba,XDCbb,XDCbc,YAGXRAYb,XDCbd,DXDCbd,PCPM2b,DPCBTM2,BTM2b,DPM1b,&
    BXPM1bA,BXPM1bB,DPM2b,PCPM3b,DPCBTM3b,BTM3b,DPM3b,&
    SFTDMPb,DSFTDMPb,BTMSFTb,ENDSFTS,&
    SEQ17END)

  RETURN
