! *** OPTICS=LCLS2sc27NOV18 *** ! LCLS2sc safety dump lines ! ============================================================================== ! Modification History ! ------------------------------------------------------------------------------ ! 08-OCT-2018, M. Woodley ! * locations of devices downstream of HXR XTES treaty flange per ! 2017-11-21__REF__XTES_BG_HXR__mo37504899_update2017-12-19.xlsx ! * locations of devices downstream of SXR XTES treaty flange per ! 2017-11-21__REF__XTES_BG_SXR__mo37504999_update2017-12-19.xlsx ! * some device locations per SD-375-048-01 (SFTH) and SD-375-049-01 (SFTS) ! 20-JUN-2018, M. Woodley ! * redefine SFTDUMP1 and SFTDUMPB1 beamlines: end at entrance to PM bends ! ------------------------------------------------------------------------------ ! 14-FEB-2018, M. Woodley ! * split SFTDUMP and SFTDUMPb lines to allow XTES output in linac coordinates ! 06-DEC-2017, M. Woodley ! * add HXTES0 (treaty point flange for HXR XTES system) ! * add SXTES0 (treaty point flange for SXR XTES system) ! ------------------------------------------------------------------------------ ! 24-FEB-2017, Y. Nosochkov ! * update some parameter names ! ------------------------------------------------------------------------------ ! 24-JUN-2016, Y. Nosochkov ! * move XDCXRAY & YAGXRAY 0.75 m downstream (E. Johnson) ! ------------------------------------------------------------------------------ ! 24-AUG-2015, Y. Nosochkov ! * remove PCPM3/BTM3, PCPM3B/BTM3B as they are not part of electron line ! ------------------------------------------------------------------------------ ! 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 LBXPM := 0.944 !effective straight length of permanent magnet FFTB dump bends (m) GBXPM0 := 0.0381 !original gap height in FFTB magnets in 2005 (m) GBXPM := 0.052 !modified (larger) gap height for LCLS safety dump BBXPM0 := 4.3 !original magnetic field (kG) at gap = 3.81 cm BBXPM := BBXPM0*GBXPM0/GBXPM !magnetic field (kG) at gap = 5.2 cm RBXPM := Brhof/BBXPM !bending radius (m) in permanent magnets ABXPM := LBXPM/(2*RBXPM) ABXPM1S := ASIN(1*ABXPM) !bending angle of "short" half of BXPM1 ABXPM1L := ASIN(2*ABXPM)-ASIN(1*ABXPM) !bending angle of "long" half of BXPM1 ABXPM2S := ASIN(3*ABXPM)-ASIN(2*ABXPM) !bending angle of "short" half of BXPM2 ABXPM2L := ASIN(4*ABXPM)-ASIN(3*ABXPM) !bending angle of "long" half of BXPM2 ABXPM1 := ABXPM1S+ABXPM1L ABXPM2 := ABXPM2S+ABXPM2L LBXPM1S := RBXPM*ABXPM1S !path length in "short" half of BXPM1 LBXPM1L := RBXPM*ABXPM1L !path length in "long" half of BXPM1 LBXPM2S := RBXPM*ABXPM2S !path length in "short" half of BXPM2 LBXPM2L := RBXPM*ABXPM2L !path length in "long" half of BXPM2 BXPM1a : SBEN, TYPE="4D36-C", L=LBXPM1S, ANGLE=ABXPM1S, HGAP=GBXPM/2, & FINT=0.5, FINTX=0.0, E2=0, E1=0 BXPM1b : SBEN, TYPE="4D36-C", L=LBXPM1L, ANGLE=ABXPM1L, HGAP=GBXPM/2, & FINT=0.0, FINTX=0.5, E1=0, E2=ABXPM1 BXPM2a : SBEN, TYPE="4D36-C", L=LBXPM2S, ANGLE=ABXPM2S, HGAP=GBXPM/2, & FINT=0.5, FINTX=0.0, E2=0, E1=-ABXPM1 BXPM2b : SBEN, TYPE="4D36-C", L=LBXPM2L, ANGLE=ABXPM2L, HGAP=GBXPM/2, & FINT=0.0, FINTX=0.5, E1=0, E2=ABXPM1+ABXPM2 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) LDSCa := 0.479300 !0.479298938157 LDSCb := 0.094517171073 DS1S : DRIFT, L=LDS1 *COS(ABYDS) DSSA : DRIFT, L=LDS *COS(ABYDS+ ABDM) DSSB : DRIFT, L=LDS *COS(ABYDS+2*ABDM) DSCSa : DRIFT, L=LDSCa*COS(ABYDS+3*ABDM) DSCSb : DRIFT, L=LDSCb*COS(ABYDS+3*ABDM) LDPM3 := 8.784 LDPM31 := 8.2704483799 LDPM32 := LDPM3-LDPM31 ZSFTDMP := 0.0762 !safety dump Z-length DPCBTM1 : DRIFT, L=0.15-0.135 DPCBTM2 : DRIFT, L=0.15 DPM1 : DRIFT, L=0.5350338 !0.298 DPM2 : DRIFT, L=0.30 /COS(ABXPM1) DPM3 : DRIFT, L=LDPM3 /COS(ABXPM1+ABXPM2) DPM31 : DRIFT, L=LDPM31 /COS(ABXPM1+ABXPM2) DPM32 : DRIFT, L=LDPM32 /COS(ABXPM1+ABXPM2) DPCBTM3 : DRIFT, L=0 !BTM3 is attached to d/s face of PCPM3 DPM4 : DRIFT, L=2.42 /COS(ABXPM1+ABXPM2) DSFTDMP : DRIFT, L=ZSFTDMP/COS(ABXPM1+ABXPM2) DXDCU : DRIFT, L=1.092223 +0.75 DXDCU1 : DRIFT, L=0.8783 DXDCU2 : DRIFT, L=DXDCU[L]-DXDCU1[L] 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.1789662-DXDCu[L]-XDCa[L]-XDCb[L]-XDCc[L]-XDCd[L] !7.266 DXDCD1 : DRIFT, L=2.661321 DXDCD2 : DRIFT, L=0.512986 DXDCD3 : DRIFT, L=DXDCD[L]-DXDCD1[L]-DXDCD2[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=LPCPMW/COS(ABXPM1+ABXPM2), XSIZE=0.0080, YSIZE=0.0080 DPCPM3 : DRIF, L=LPCPMW/COS(ABXPM1+ABXPM2) !placeholder for PCPM3 BTM1 : INST !Burn-Through-Monitor behind PCPM1 BTM2 : INST !Burn-Through-Monitor behind PCPM2 !BTM3 : INST !Burn-Through-Monitor behind PCPM3 MBTM3 : MARK !placeholder for BTM3 BTMSFT : INST !Burn-Through-Monitor behind HXR safety dump XDCXRAY : PROF !existing safety dump line X-ray screen YAGXRAY : PROF, TYPE="YAG" !existing safety dump line X-ray screen HXTES0 : INST, TYPE="treaty flange" !treaty point for HXR XTES system IM1H : INST, TYPE="imager" SFTDMP : INST !front face of HXR safety dump (Z'=712-715 m per PRD) VV38 : MARK !vac. valve in HXR safety dump line VV1H : MARK !vac. valve in HXR XTES line VV2H : MARK !vac. valve in HXR XTES line MVV10 : MARK !placeholder for vac. valve in HXR XTES line SFTDUMP1: LINE=(& BEGSFTH,DYDS,DS1S,DYD1,DSSA,DYD2,DSSB,DYD3,& DSCSa,VV38,DSCSb,PCPM1,DPCBTM1,BTM1,DXDCU1,HXTES0,DXDCU2,& XDCa,XDCXRAY,XDCb,XDCc,YAGXRAY,XDCd,DXDCD1,VV2H,DXDCD2,IM1H,DXDCD3,& BTM2,PCPM2,DPM1) SFTDUMP2: LINE=(& BXPM1A,BXPM1B,DPM2,& BXPM2A,BXPM2B,DPM31,MVV10,DPM32,DPCPM3,DPCBTM3,MBTM3,DPM4,& SFTDMP,DSFTDMP,BTMSFT,ENDSFTH) SFTDUMP: LINE=(SFTDUMP1,SFTDUMP2) ! ------------------------------------------------------------------------------ ! SXR safety dump ! ------------------------------------------------------------------------------ ! note that BXPM1b bend axis is aligned with the SXR undulator axis without ! any offset RBXPMB := Brhof/BBXPM !bending radius (m) in a permanent magnet ABXPMB := LBXPM/(2*RBXPMB) ABXPM1BS := ASIN(ABXPMB) !bending angle of "short" half of BXPM1B ABXPM1BL := ASIN(2*ABXPMB)-ASIN(ABXPMB) !bending angle of "long" half of BXPM1B LBXPM1BS := RBXPMB*ABXPM1BS !path length in "short" half of BXPM1B LBXPM1BL := RBXPMB*ABXPM1BL !path length in "long" half of BXPM1B BXPM1Ba : SBEN, TYPE="4D36-C", L=LBXPM1BS, ANGLE=ABXPM1BS, HGAP=GBXPM/2, & FINT=0.5, FINTX=0.0, E2=0, E1=0 BXPM1Bb : SBEN, TYPE="4D36-C", L=LBXPM1BL, ANGLE=ABXPM1BL, HGAP=GBXPM/2, & FINT=0.0, FINTX=0.5, E1=0, E2=ABXPM1BS+ABXPM1BL DSCSB1 : DRIFT, L=0.478198407804 !DSCSa[L] DSCSB2 : DRIFT, L=0.0943 !DSCSa[L] DXDCUB : DRIFT, L=1.842223 !1.092223 DXDCUB1 : DRIFT, L=0.8407994 !0.878299738776 DXDCUB2 : DRIFT, L=0.0375006 DXDCUB3 : DRIFT, L=DXDCUB[L]-DXDCUB1[L]-DXDCUB2[L] 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 DXDCDB : DRIFT, L=7.266-DXDCUB[L]-XDCBa[L]-XDCBb[L]-XDCBc[L]-XDCBd[L] DXDCDB1 : DRIF, L=0.262395 DXDCDB2 : DRIF, L=0.363747 DXDCDB3 : DRIF, L=0.966253 DXDCDB4 : DRIF, L=1.492023 DXDCDB5 : DRIF, L=DXDCDB[L]-DXDCDB1[L]-DXDCDB2[L]-DXDCDB3[L]-DXDCDB4[L] DPM1B : DRIFT, L=0.448 DPM2B : DRIFT, L=3.8732111/COS(ABXPM1BS+ABXPM1BL) !10.03 DPM2Ba : DRIFT, L=3.8732111/COS(ABXPM1BS+ABXPM1BL) DPM2Bb : DRIFT, L=DPM2B[L]-DPM2Ba[L] DPCBTM3B : DRIFT, L=0 !BTM3B is attached to d/s face of PCPM3B DPM3B : DRIFT, L=8.5747889/COS(ABXPM1BS+ABXPM1BL) !2.272 DPM3Ba : DRIFT, L=0.6560246/COS(ABXPM1BS+ABXPM1BL) DPM3Bb : DRIFT, L=DPM3B[L]-DPM3Ba[L] DSFTDMPB : DRIFT, L=ZSFTDMP /COS(ABXPM1BS+ABXPM1BL) 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(ABXPM1BS+ABXPM1BL), XSIZE=0.0100, YSIZE=0.0100 DPCPM3B : DRIF, L=LPCPMW/COS(ABXPM1BS+ABXPM1BL) !placeholder for PCPM3B BTM1B : INST !Burn-Through-Monitor behind PCPM1B BTM2B : INST !Burn-Through-Monitor behind PCPM2B !BTM3B : INST !Burn-Through-Monitor behind PCPM3B MBTM3B : MARK !placeholder for BTM3B BTMSFTB : INST !Burn-Through-Monitor behind SXR safety dump YAGXRAYB : PROF, TYPE="YAG" !safety dump line X-ray screen SXTES0 : INST, TYPE="treaty flange" !treaty point for SXR XTES system PC1S : INST, TYPE="photon coll" GMD1S : INST, TYPE="gas monitor" IM1S : INST, TYPE="imager" MSL1S : MARK, TYPE="adj aperture" SFTDMPB : INST !front face of SXR safety dump (Z'=712-715 m per PRD) VV38B : MARK !vac. valve in SXR safety dump line VV1S : MARK !vac. valve in SXR safety dump line VV2S : MARK !vac. valve in SXR safety dump line MVV3S : MARK !placeholder for vac. valve in SXR XTES line SFTDUMPB1: LINE=(& BEGSFTS,DYDS,DS1S,DYD1,DSSA,DYD2,DSSB,DYD3,& DSCSB1,VV38B,DSCSB2,PCPM1B,DPCBTM1,BTM1B,DXDCUB1,VV1S,DXDCUB2,& SXTES0,DXDCUB3,XDCBa,XDCBb,XDCBc,YAGXRAYB,XDCBd,DXDCDB1,& PC1S,DXDCDB2,VV2S,DXDCDB3,GMD1S,DXDCDB4,IM1S,DXDCDB5,& BTM2B,PCPM2B,DPM1B) SFTDUMPB2: LINE=(& BXPM1Ba,BXPM1Bb,DPM2Ba,DPCPM3B,DPCBTM3B,MBTM3B,DPM2Bb,MSL1S,DPM3Ba,& MVV3S,DPM3Bb,SFTDMPB,DSFTDMPB,BTMSFTB,ENDSFTS) SFTDUMPB: LINE=(SFTDUMPB1,SFTDUMPB2) RETURN