  TITLE, "LCLS2cu (March 20, 2015)"

! *** OPTICS=LCLS2cu20MAR15 ***

  OPTION, -INTER, -ECHO, WARN, DOUBLE
  ASSIGN, ECHO="LCLS2cu.echo"
  ASSIGN, PRINT="LCLS2cu.print"

! ==============================================================================
! Modification History
! ------------------------------------------------------------------------------
! 12-MAR-2015, Y. Nosochkov
!  * remove PCTDKIK1-4 collimators in BSY1 (per S. Mao)
!  * use kicker/septum or pulsed magnets to connect BSY with the A-line
!  * add CUSXR beamline for transport from Cu-linac to SXR
! ------------------------------------------------------------------------------
! 09-DEC-2014, Y. Nosochkov
!  * update initial Twiss and survey coordinates at BSYBEG (BEGBSY1)
! ------------------------------------------------------------------------------
! 28-OCT-2014, M. Woodley
!  * redefine DBMARK29 to be LI30 IV30-9 (Z=3042.005)
! ------------------------------------------------------------------------------
! 15-SEP-2014, Y. Nosochkov
!  * designate BSY1 line connecting the end of LCLS1 L3 with the beginning of
!    LCLS2 HXR merge bend BXSP1h
! 02-MAY-2014, Y. Nosochkov
!  * rematch HXR undulator for 13.64 GeV and 40 kG quad integral field
! 18-APR-2014, Y. Nosochkov
!  * combine upstream LCLS1 lattice with downstream LCLS2scH lattice
! ==============================================================================

! constants

  Cb      : CONSTANT=1.0E10/CLIGHT !energy to magnetic rigidity
  GeV2MeV : CONSTANT=1000.0        !GeV to MeV
  in2m    : CONSTANT=0.0254        !inches to meters
  mc2     : CONSTANT=510.99906E-6  !e- rest mass [GeV]

! initial conditions (exit of L0)

  injdeg := -35.0    !injector bend angle w.r.t. linac [degrees]
  E00    := 0.006    !beam energy after gun (GeV)
  E0i    := 0.064    !beam energy between L0a and L0b sections (GeV)
  Ei     := 0.135    !initial beam energy (GeV) (150->135 MeV on July 9, 2003)
  EBC1   := 0.250    !BC1 energy (GeV)
  EBC2   := 4.300    !BC2 energy (GeV)
  Ef     := 13.640   !final beam energy (GeV)
  EMITXN := 1.00E-06 !normalized horizontal emittance (m)
  EMITYN := 1.00E-06 !normalized vertical emittance (m)
  BLENG  := 0.83E-03 !bunch length (m)
  ESPRD  := 2.00E-05 !slice rms energy spread at 135 MeV (1)
  ZOFFINJ:= 0.012100 !moves entire injector in main-linac z-direction by this amount (+12.100 mm Nov. 17, 2004)

  Brhof := Cb*Ef

! twiss parameters at L0a-exit:

  TBETX :=  1.410  !twiss beta x (m)  ! back-tracked from measured/matched OTR2 through post Aug. 11, 2008 QA01-QE04 real BDES settings
  TALFX := -2.613  !twiss alpha x
  TBETY :=  6.706  !twiss beta y (m)
  TALFY :=  0.506  !twiss alpha y

  TWSS0 : BETA0, ENERGY=E0i, BETX=TBETX, ALFX=TALFX, BETY=TBETY, ALFY=TALFY

! Dummy, fitted twiss parameters at cathode which yield the above twiss parameters at
! L0a-exit (for plotting purposes only - assumes only drift between cathode and L0a-exit)

  CBETX :=  15.574222013212  ! consistent with back-tracked from matched OTR2 through post Aug. 11, 2008 QA01-QE04 real BDES
  CALFX :=  -3.081460532254
  CBETY :=  0.390930039559
  CALFY :=  0.551432669489E-2

  TWSSC : BETA0, ENERGY=E00, BETX=CBETX, ALFX=CALFX, BETY=CBETY, ALFY=CALFY

! initial Twiss for SXR dogleg cells

  MBETXS :=  6.841398793502
  MALFXS := -0.28404423145
  MBETYS := 47.260312519517
  MALFYS :=  2.557074666415

  TWSSms : BETA0, ENERGY=Ef, BETX=MBETXs, ALFX=MALFXs, BETY=MBETYs, ALFY=MALFYs

! periodic Twiss in HXR dogleg cells

  MBETXH := 48.881918788199
  MALFXH :=  3.139871668464
  MBETYH := 96.323786537904
  MALFYH :=  3.616905252587

  TWSSmh : BETA0, ENERGY=Ef, BETX=MBETXh, ALFX=MALFXh, BETY=MBETYh, ALFY=MALFYh

! twiss at the beginning of L3

  ENBEGL3 :=  4.3
  BXBEGL3 :=  1.106003893E+01
  AXBEGL3 := -9.490138298E-01
  BYBEGL3 :=  7.102804796E+01
  AYBEGL3 :=  2.204492752E+00
  TWBEGL3 : BETA0, BETX=BXBEGL3, ALFX=AXBEGL3, &
                   BETY=BYBEGL3, ALFY=AYBEGL3, ENERGY=ENBEGL3

! twiss at end of HXR spreader merge bend in BSY

  TBXSPh :=  2.507158802E+01
  TBYSPh :=  1.116648089E+02
  TAXSPh :=  6.955527885E-01
  TAYSPh := -2.340149196E+00
  TWSSPh : BETA0, BETX=TBXSPh, BETY=TBYSPh, ALFX=TAXSPh, ALFY=TAYSPh

! twiss at the beginning of BSY1

  ENBSY1 :=  Ef
  BXBSY1 :=  4.202634452E+01
  AXBSY1 :=  8.568268114E-01
  BYBSY1 :=  5.382717766E+01
  AYBSY1 := -1.127535585E+00
  MXBSY1 :=  7.616469382
  MYBSY1 :=  7.310866059
  TWBSY1 : BETA0, BETX=BXBSY1, ALFX=AXBSY1, BETY=BYBSY1, ALFY=AYBSY1, &
                  MUX =MXBSY1, MUY =MYBSY1, ENERGY=ENBSY1

! construct input beam matrix

  EMITX :=  EMITXN/(TWSS0[ENERGY]/EMASS)
  EMITY :=  EMITYN/(TWSS0[ENERGY]/EMASS)
  TGAMX :=  (1+TWSS0[ALFX]*TWSS0[ALFX])/TWSS0[BETX]
  TGAMY :=  (1+TWSS0[ALFY]*TWSS0[ALFY])/TWSS0[BETY]
  SIG11 :=  EMITX*TWSS0[BETX]
  SIG21 := -EMITX*TWSS0[ALFX]
  SIG22 :=  EMITX*TGAMX
  SIG33 :=  EMITY*TWSS0[BETY]
  SIG43 := -EMITY*TWSS0[ALFY]
  SIG44 :=  EMITY*TGAMY
  C21   :=  SIG21/SQRT(SIG11*SIG22)
  C43   :=  SIG43/SQRT(SIG33*SIG44)

  SIG0  : SIGMA0, SIGX=SQRT(SIG11), SIGPX=SQRT(SIG22), R21=C21, &
                  SIGY=SQRT(SIG33), SIGPY=SQRT(SIG44), R43=C43, &
                  SIGT=BLENG,       SIGPT=ESPRD

  CGAMX  :=  (1+TWSSC[ALFX]*TWSSC[ALFX])/TWSSC[BETX]
  CGAMY  :=  (1+TWSSC[ALFY]*TWSSC[ALFY])/TWSSC[BETY]
  SIG11C :=  EMITX*TWSSC[BETX]
  SIG21C := -EMITX*TWSSC[ALFX]
  SIG22C :=  EMITX*CGAMX
  SIG33C :=  EMITY*TWSSC[BETY]
  SIG43C := -EMITY*TWSSC[ALFY]
  SIG44C :=  EMITY*CGAMY
  C21C   :=  SIG21C/SQRT(SIG11C*SIG22C)
  C43C   :=  SIG43C/SQRT(SIG33C*SIG44C)

  SIGC  : SIGMA0, SIGX=SQRT(SIG11C), SIGPX=SQRT(SIG22C), R21=C21C, &
                  SIGY=SQRT(SIG33C), SIGPY=SQRT(SIG44C), R43=C43C, &
                  SIGT=BLENG,        SIGPT=ESPRD

  BEAM, PARTICLE=ELECTRON, ENERGY=TWSSC[ENERGY], EX=EMITX, EY=EMITY, &
        SIGT=BLENG, SIGE=ESPRD

! Database MARKer points

  DBMARK80 : MARK !(LCLS GUN) RF gun cathode
  DBMARK81 : MARK !(BXG_entr) entrance of BXG
  DBMARK97 : MARK !(GUNSPECT) 6 MeV gun spectrometer dump
  DBMARK82 : MARK !(BX01entr) entrance of BX01
  DBMARK98 : MARK !(135SPECT) 135-MeV spect. dump
  DBMARK83 : MARK !(BX02exit) exit of BX02 ... LCLS injection point
  DBMARK28 : MARK !(QM15exit) exit of QM15 ... just after TD11
  DBMARK29 : MARK !(IV30-9  ) LI30 isolation valve ... start of BSY

! ==============================================================================
! external files
! ------------------------------------------------------------------------------

! load idealized (design) L1, L2, and L3 lattices ...

!  CALL, FILENAME="LCLS_L1e.xsif"
!  CALL, FILENAME="LCLS_L2e.xsif"
!  CALL, FILENAME="LCLS_L3e.xsif"

! ... or actual (as built) L1, L2, and L3 lattices

  CALL, FILENAME="LCLS_L1.xsif"
  CALL, FILENAME="LCLS_L2.xsif"
  CALL, FILENAME="LCLS_L3.xsif"

! load the remaining LCLS1 and LCLS2scH optics

  CALL, FILENAME="LCLS2cu.xsif"
  CALL, FILENAME="common.xsif"
  CALL, FILENAME="CUSXR.xsif"
  CALL, FILENAME="BYP.xsif"
  CALL, FILENAME="LTU.xsif"
  CALL, FILENAME="UND.xsif"
  CALL, FILENAME="SFT.xsif"
  CALL, FILENAME="ALINE.xsif"

! set HXR undulator quad integral field to 40 kG for 13.64 GeV
! adjust HXR quad strengths for a better match

  SET, IntgHX, 40.0 !kG
  SET, KQ5   ,  0.082597842869
  SET, KQ6   , -0.124545018781
  SET, KQA0  ,  0.112946402969
  SET, KQVM1 , -0.419885047116
  SET, KQVM2 ,  0.304955938493
  SET, KQVM3 ,  0.706968972793
  SET, KQVM4 , -0.674169832321
  SET, KQUM1 ,  0.231175005413
  SET, KQUM2 , -0.20217653153
  SET, KQUM3 ,  0.267154838393
  SET, KQUM4 , -0.255487115431
  SET, KQDHXM, -0.645539330194
  SET, KQUE1 ,  0.129046317692
  SET, KQUE2 , -0.050727500437
  SET, KQDMP , -0.154443652864

! set SXR undulator quad integral field to 30 kG for 13.64 GeV
! adjust SXR quad strengths for a better match

  SET, CUSXRON, 1.0
  SET, IntgSX, 30.0 !kG
  SET, KQBP33, -0.346975356363
  SET, KQBP34,  0.497091213042
  SET, KQDBL1, -0.313608317438
  SET, KQDBL2, -0.316914388102
  SET, KQUM1B,  0.299849874375
  SET, KQUM2B, -0.13
  SET, KQUM3B,  0.488901834606
  SET, KQUM4B, -0.678730418864
  SET, KQSX16,  0.57047742831
  SET, KQSX19, -0.694175917464
  SET, KQSX21,  0.646546484797
  SET, KQSX24, -0.588298929748
  SET, KQDSXM,  0.138043110548
  SET, KQUE1B, -0.250861861186
  SET, KQUE2B,  0.301289917178
  SET, KQDMPB, -0.121515025042

! ==============================================================================
! BEAMLINEs
! ------------------------------------------------------------------------------

  L1c   : LINE=(D9,DAQ1,QFL1,QFL1,DAQ1,&
                D9,DAQ1,QDL1,QDL1,DAQ1)
  L2c   : LINE=(4*D10,DAQ1,QFL2,QFL2,DAQ2,&
                4*D10,DAQ1,QDL2,QDL2,DAQ2)
  L3c   : LINE=(4*D10,DAQ1,QFL3,QFL3,DAQ2,&
                4*D10,DAQ1,QDL3,QDL3,DAQ2)

  SC0   : LINE=(XC00,YC00)
  SC1   : LINE=(XC01,YC01)
  SC2   : LINE=(XC02,YC02)
  SC3   : LINE=(XC03,YC03)
  SC4   : LINE=(XC04,YC04)
  SC5   : LINE=(XC05,YC05)
  SC6   : LINE=(XC06,YC06)
  SC7   : LINE=(XC07,YC07)
  SC8   : LINE=(XC08,YC08)
  SC9   : LINE=(XC09,YC09)
  SC10  : LINE=(XC10,YC10)
  SC11  : LINE=(XC11,YC11)
  SCA11 : LINE=(XCA11,YCA11)
  SCA12 : LINE=(XCA12,YCA12)
  SCM11 : LINE=(XCM11,YCM11)
  SCM13 : LINE=(XCM13,YCM12)
  SCM15 : LINE=(XCM14,YCM15)

  GUNBXG: LINE=(DL00,LOADLOCK,L0beg,SOL1BK,DBMARK80,CATHODE,DL01a,&
                SOL1,CQ01,CQ01,SC0,SQ01,SQ01,SOL1,&
                DL01a1,VV01,DL01a2,AM00,DL01a3,AM01,DL01a4,&
                YAG01,DL01a5,FC01,DL01b,IM01,DL01c,&
                SC1,DL01h,BPM2,DL01d,DBMARK81)

  BXGL0a: LINE=(DXG0,DXGA,DXGB,DL01e,BPM3,&
                DL01f,CR01,DL01f2,YAG02,DL01g,ZLIN00,FLNGa1,L0a___1,DLFDa,&
                L0a___2,SOL2,L0a___3,SC2,L0a___4,L0aMID,L0a___5,SC3,L0a___6,&
                OUTCPa,L0a___7,FLNGa2,L0aWAKE)

  GUNL0a: LINE=(GUNBXG,BXGL0a)

  L0b   : LINE=(L0bBEG,DL02a1,YAG03,DL02a2,DL02a3,QA01,QA01,DL02b1,&
                PH01,DL02b2,QA02,BPM5,QA02,DL02c,FLNGb1,L0b___1,DLFDb,&
                L0b___2,SC4,L0b___3,L0bMID,L0b___4,SC5,L0b___5,OUTCPb,&
                L0b___6,FLNGb2,L0end)

  LSRHTR: LINE=(LHBEG,BXh1A,BXh1B,Dh01,BXh2A,BXh2B,Dh02a,OTRH1,Dh03a,LH_UND,&
                HTRUND,LH_UND,Dh03b,OTRH2,Dh02b,BXh3A,BXh3B,Dh01,&
                BXh4A,BXh4B,LHEND)

  DL1A  : LINE=(EMAT,DL1beg,DE00,DE00a,&
                QE01,BPM6,QE01,DE01a,IM02,DE01b,VV02,DE01c,QE02,QE02,&
                Dh00,LSRHTR,Dh06,TCAV0,SC6,TCAV0,&
                DE02,QE03,BPM8,QE03,DE03a,DE03b,SC7,DE03c,&
                QE04,BPM9,QE04,DE04,&
                WS01,DE05,OTR1,DE05c,VV03,DE06a,RST1,DE06b,WS02,&
                DE05a,MRK0,DE05a,OTR2,DE06d,BPM10,DE06e,WS03,DE05,OTR3,DE07,&
                QM01,BPM11,QM01,DE08,SC8,DE08a,VV04,DE08b,&
                QM02,BPM12,QM02,DE09,DBMARK82)

  DL1B  : LINE=(BX01A,BX01B,DB00a,OTR4,DB00b,SC9,DB00c,&
                QB,BPM13,QB,DB00d,WS04,DB00e,BX02A,BX02B,CNT0,DBMARK83,&
                DM00,SC10,DM00a,QM03,BPM14,QM03,DM01,DM01a,&
                QM04,BPM15,QM04,DM02,IM03,DM02a,DL1end)

  DL1   : LINE=(DL1A,DL1B) !nominal LCLS DL1 layout with BX01/BX02 bends on

  DIAG1 : LINE=(DDG1,BPMS11,DDG2,CE11,DDG3,OTR11,DDG4)
  BC1c  : LINE=(BC1BEG,BX11A,BX11B,DBQ1,&
                CQ11,CQ11,D11o,&
                BX12A,BX12B,DIAG1,&
                BX13A,BX13B,D11oa,SQ13,SQ13,D11ob,&
                CQ12,CQ12,DBQ1,&
                BX14A,BX14B,CNT1,BC1END)
  BC1i  : LINE=(DL1Xa,VVX1,DL1Xb,XBEG,L1X___1,SCM11,L1X___2,XEND,DM10a,VVX2,&
                DM10c,Q21201,BPM21201,ZLIN02,Q21201,DM10x,IMBC1I,&
                DM11,QM11,QM11,DM12)
  BC1e  : LINE=(DM13a,BL11,DM13b,&
                QM12,QM12,DM14a,DM14b,IMBC1O,DM14c,&
                QM13,BPMM12,QM13,DM15a,BL12,DM15b,SCM13,DM15c,&
                WS11,DWW1a,WS12,DWW1b,OTR12,DWW1c1,PH02,DWW1c2,XC21302,&
                DWW1d,YC21303,DWW1e,WS13,DM16,Q21301,BPM21301,ZLIN03,&
                Q21301,DM17a,DM17b,TD11,DM17c,QM14,BPMM14,QM14,&
                DM18a,SCM15,DM18b,QM15,QM15,DBMARK28,DM19)
  BC1   : LINE=(BC1mrk,&
                BC1i,BC1c,BC1e,&
                BC1fin)
  L2    : LINE=(L2beg,&
                LI21,LI22,LI23,LI24,&
                L2end)
  DIAG2 : LINE=(DDG1,BPMS21,DDG2,CE21,DDG3,OTR21,DDG4)
  BC2C1 : LINE=(BC2BEG,BX21A,BX21B,DBQ2a,&
                CQ21,CQ21,D21oa,&
                BX22A,BX22B,DDG0,DIAG2,DDGA,&
                BX23A,BX23B,D21ob,&
                CQ22,CQ22,DBQ2b,&
                BX24A,BX24B,CNT2,BC2END)
  BC2   : LINE=(BC2mrk,&
                DM20,Q24701A,ZLIN08,Q24701A,D10cma,Q24701B,BPM24701,Q24701B,&
                DM21Z,DM21A,DWS24,DM21H,IMBC2I,DM21B,VV21,DM21C,&
                QM21,QM21,DM21D,DM21E,BC2C1,D21w,D21x,BL21,D21y,DM23B,&
                QM22,QM22,DM24A,VV22,DM24B,DM24D,Q24901A,BPM24901,Q24901A,&
                DM24C,Q24901B,Q24901B,DM25,BC2fin)
  L3    : LINE=(L3beg,&
                LI25,LI26,LI27,LI28,LI29,LI30,&
                L3end,RWWAKEss,DBMARK29)

  B52LIN: LINE=(B50B1A    ,B50B1B    ,DRI14001  ,PR45      ,DRI14002  ,&
                BPM52     ,DRI14003  ,B52AGFA   ,B52AGFB   ,DRI14004  ,&
                B52WIG1A  ,B52WIG1B  ,DRI14005  ,B52WIG2A  ,YC54T     ,&
                B52WIG2B  ,DRI14005  ,B52WIG3A  ,B52WIG3B  ,DRI14006  ,&
                PR55      ,DRI14007  ,BPM56     ,DRI14008  ,Q52Q2     ,&
                Q52Q2     ,DRI14009  ,PR60      ,DRI14010  ,IM61      ,&
                DRI14011  ,WS62      ,DRI14012  ,YC59      ,DRI14013  ,&
                SL1X      ,BPM64     ,DRI14014  ,SL1Y      ,DRI14015  ,&
                BPM68     ,DRI14016  ,XC69      ,DRI14017  ,SL2       ,&
                DBMARK99)

  ECELL    : LINE=(QE31,DQEC,DQEC,QE32,QE32,DQEC,DQEC,QE31)

! to HXR

  BSYLTUH  : LINE=(BSY,LTU,HXRUND,DUMPLINE)

  LCLS2cuH : LINE=(DL1,L1,BC1,L2,BC2,L3,BSYLTUH)

! to SXR

  BSYLTUS  : LINE=(BSYSXR,CUSXR,BYPM2,BSYLTUsc,SXRUND,DUMPLINEb)

  LCLS2cuS : LINE=(DL1,L1,BC1,L2,BC2,L3,BSYLTUS)

! to HXR safety dump

  BSYLTUHS : LINE=(BSY,LTU,HXRUND,SFTDUMP)

  LCLS2cuHS : LINE=(DL1,L1,BC1,L2,BC2,L3,BSYLTUHS)

! to SXR safety dump

  BSYLTUSS  : LINE=(BSYSXR,CUSXR,BYPM2,BSYLTUsc,SXRUND,SFTDUMPb)

  LCLS2cuSS : LINE=(DL1,L1,BC1,L2,BC2,L3,BSYLTUSS)

! to A-line

  S100ALINE : LINE=( &
    S100BSY1,ENDBSY1,SEQ19END,&
    DBSY52c,Q50Q3,Q50Q3,DBSY53a,RFBBSY39,DBSY53b,YCBSY35,DBSY53c,IMSP1h,&
    DBSY53d,PCSP3h,DBSY53e,ALINE)

  BSYALINE : LINE=( &
    BSYbeg,BSY1,ENDBSY1,SEQ19END,&
    DBSY52c,Q50Q3,Q50Q3,DBSY53a,RFBBSY39,DBSY53b,YCBSY35,DBSY53c,IMSP1h,&
    DBSY53d,PCSP3h,DBSY53e,ALINE)

  LCLS1AL : LINE=(DL1,L1,BC1,L2,BC2,L3,BSYALINE)

! ------------------------------------------------------------------------------
! initial SURVEY coordinates
! ------------------------------------------------------------------------------

! set initial linac survey coordinates
! (NOTE: pitch is not included here for simplicity - for linac coordinates,
!        read in pitched plane of linac)

  XLL := 10.9474                   !X at loadlock start [m]
  ZLL := 2032.0-14.8125+ZOFFINJ    !Z at loadlock start (move injector ~12 mm dnstr. - Nov. 17, 2004, -PE) [m]
  Xi  := XLL+LOADLOCK[L]*SIN(ADL1) !subtract from upbeam side of loadlock to get to cathode [m]
  Zi  := ZLL+LOADLOCK[L]*COS(ADL1) !subtract from upbeam side of loadlock to get to cathode [m]

 !VALUE, ADL1,Xi,Zi

! initial BSY survey coordinates at BSYbeg

  Xf     :=  0           !hor. position is on linac axis, which is zero here [m]
  Yf     :=  0.027987637 !at BSYbeg (~6 m upbeam S100) in undulator coordinates (for LTU engineers)
  Zf     := -5.99493367  !at BSYbeg (~6 m upbeam S100) in undulator coordinates (for LTU engineers)
  THETAf :=  0           !no yaw at S100
  PSIf   :=  0           !no roll at S100
  PHIf   := 2*AVB        !S100 pitch in undulator coordinates (for LTU engineers)

! linac survey coordinates at BSYbeg (BEGBSY1)

  XBSY1  := -3.309620550E-07
  ZBSY1  :=  3042.005
  THBSY1 := -2.000049721E-12

! ==============================================================================
! COMMANDs
! ------------------------------------------------------------------------------

  SETPLOT, XSIZE=25.4, YSIZE=20.32
  SETPLOT, LWIDTH=5, LSCALE=1.5, SSCALE=1.5, RSCALE=1.5

  OPTION, ECHO

  BEAM, PARTICLE=ELECTRON

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

  BET11 := 10.090395936353
  BET12 := 2.470673595371
  BET21 := 43.876719659503
  BET22 := 16.019619746515
 !BET31 := 53.481287866029
 !BET32 := 35.468087644847
 !BET33 := 29.55797372867
 !BET34 := 63.601589300188
  BET31 := 61.868125327071
  BET32 := 36.40742728964
  BET33 := 36.353377790534
  BET34 := 61.956709274457
 !BET31 := 69.818359882868  ! for WS28 45 deg/wire
 !BET32 := 37.0062095289
 !BET33 := 42.5680425597
 !BET34 := 60.952049693321

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

 !CALL, FILENAME="LCLS2cu_match.mad8" !upstream of BSY routines not checked
 !CALL, FILENAME="RDB/LCLS2cu_makeSymbols.mad8"

 !STOP

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

! complete machine to HXR (linac coordinates)

 !COMMENT
    ASSIGN, PRINT="LCLS2cuH.print"
    BEAM, ENERGY=E00
    USE, (GUNL0a,L0b,LCLS2cuH)
    PRINT, FULL
    SURVEY, THETA0=ADL1, X0=Xi, Z0=Zi, TAPE="LCLS2cuH_survey.tape"
    TWISS, BETA0=TWSSC, SAVE, TAPE="LCLS2cuH_twiss.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, &
      STYLE=100, SPLINE, FILE="LCLS2cuH", RANGE=DL1beg/DUMPFACE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      STYLE=100, SPLINE, FILE="LCLS2cuH", RANGE=DL1beg/DUMPFACE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      STYLE=100, SPLINE, FILE="LCLS2cuH", RANGE=DL1beg/DUMPFACE
 !ENDCOMMENT

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

! complete machine to SXR (linac coordinates)

 !COMMENT
    ASSIGN, PRINT="LCLS2cuS.print"
    BEAM, ENERGY=E00
    USE, (GUNL0a,L0b,LCLS2cuS)
    PRINT, FULL
    SURVEY, THETA0=ADL1, X0=Xi, Z0=Zi, TAPE="LCLS2cuS_survey.tape"
    TWISS, BETA0=TWSSC, SAVE, TAPE="LCLS2cuS_twiss.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, &
      STYLE=100, SPLINE, FILE="LCLS2cuS", RANGE=DL1beg/DUMPFACEb
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      STYLE=100, SPLINE, FILE="LCLS2cuS", RANGE=DL1beg/DUMPFACEb
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      STYLE=100, SPLINE, FILE="LCLS2cuS", RANGE=DL1beg/DUMPFACEb
 !ENDCOMMENT

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

! complete machine to A-line (linac coordinates)

 !COMMENT
    ASSIGN, PRINT="LCLS2cuA.print"
    BEAM, ENERGY=E00
    USE, (GUNL0a,L0b,LCLS1AL)
    PRINT, FULL
    SURVEY, THETA0=ADL1, X0=Xi, Z0=Zi, TAPE="LCLS2cuA_survey.tape"
    TWISS, BETA0=TWSSC, SAVE, TAPE="LCLS2cuA_twiss.tape"
   !PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, STYLE=100, SPLINE, &
   !  FILE="LCLS2cuA", RANGE=DL1beg/ALWALL, TITLE="Cathode to A-line"
   !PLOT, TABLE=TWISS, HAXIS=S, VAXIS=rBETX,rBETY, STYLE=100, SPLINE, &
   !  FILE="LCLS2cuA", RANGE=DL1beg/ALWALL, TITLE="Cathode to A-line"
   !PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, STYLE=100, SPLINE, &
   !  FILE="LCLS2cuA", RANGE=DL1beg/ALWALL, TITLE="Cathode to A-line"
 !ENDCOMMENT

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

! BSY to HXR dump (BSY coordinates)

 !COMMENT
    ASSIGN, PRINT="BSY-LCLS2cuH.print"
    BEAM, ENERGY=Ef
    USE, BSYLTUH
    PRINT, FULL
    SURVEY, X0=Xf, Y0=Yf, Z0=Zf, THETA0=THETAf, PHI0=PHIf, PSI0=PSIf, &
      TAPE="BSY-LCLS2cuH_survey.tape"
 !ENDCOMMENT

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

! BSY to HXR safety dump (BSY coordinates)

  COMMENT
    ASSIGN, PRINT="BSY-LCLS2cuHS.print"
    BEAM, ENERGY=Ef
    USE, BSYLTUHS
    PRINT, FULL
    SURVEY, X0=Xf, Y0=Yf, Z0=Zf, THETA0=THETAf, PHI0=PHIf, PSI0=PSIf, &
      TAPE="BSY-LCLS2cuHS_survey.tape"
  ENDCOMMENT

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

! BSY to SXR dump (BSY coordinates)

 !COMMENT
    ASSIGN, PRINT="BSY-LCLS2cuS.print"
    BEAM, ENERGY=Ef
    USE, BSYLTUS
    PRINT, FULL
    SURVEY, X0=Xf, Y0=Yf, Z0=Zf, THETA0=THETAf, PHI0=PHIf, PSI0=PSIf, &
      TAPE="BSY-LCLS2cuS_survey.tape"
 !ENDCOMMENT

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

! BSY to SXR safety dump (BSY coordinates)

  COMMENT
    ASSIGN, PRINT="BSY-LCLS2cuSS.print"
    BEAM, ENERGY=Ef
    USE, BSYLTUSS
    PRINT, FULL
    SURVEY, X0=Xf, Y0=Yf, Z0=Zf, THETA0=THETAf, PHI0=PHIf, PSI0=PSIf, &
      TAPE="BSY-LCLS2cuSS_survey.tape"
  ENDCOMMENT

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

! BSY to A-line (BSY coordinates)

 !COMMENT
    ASSIGN, PRINT="BSY-LCLS2cuA.print"
    BEAM, ENERGY=Ef
    USE, BSYALINE
    PRINT, FULL
    SURVEY, X0=Xf, Y0=Yf, Z0=Zf, THETA0=THETAf, PHI0=PHIf, PSI0=PSIf, &
      TAPE="BSY-LCLS2cuA_survey.tape"
 !ENDCOMMENT

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

! BSY1 (linac coordinates)

  COMMENT
    ASSIGN, PRINT="BSY1cu.print"
    BEAM, ENERGY=Ef
    USE, BSY, RANGE=BEGBSY1/ENDBSY1
    PRINT, FULL
    SURVEY, X0=XBSY1, Z0=ZBSY1, THETA0=THBSY1, TAPE="BSY1cu_survey.tape"
    TWISS, BETA0=TWBSY1, SAVE, TAPE="BSY1cu_twiss.tape"
    !PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, STYLE=100, SPLINE, &
    !  FILE="BSY1cu", RANGE=BEGBSY1/ENDBSY1, TITLE="BSY1"
  ENDCOMMENT

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

! BSY1 (BSY coordinates)

  COMMENT
    ASSIGN, PRINT="BSY-BSY1cu.print"
    BEAM, ENERGY=Ef
    USE, BSY, RANGE=BEGBSY1/ENDBSY1
    PRINT, FULL
    SURVEY, X0=Xf, Y0=Yf, Z0=Zf, THETA0=THETAf, PHI0=PHIf, PSI0=PSIf
  ENDCOMMENT

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

! S100 to A-line ("A-line BSY" coordinates from Transport deck)
! Note: the "A-line BSY" coordinates differ from the LCLS BSY coordinates

  COMMENT
    ASSIGN, PRINT="BSYAL-LCLS1cuAL.print"
    BEAM, ENERGY=Ef
    USE, S100ALINE
    PRINT, FULL
    SURVEY, Y0=77.643643677513, PHI0=-0.00475999999158308164
  ENDCOMMENT

! ------------------------------------------------------------------------------
! Twiss color plots
! ------------------------------------------------------------------------------

 !COMMENT
    ASSIGN, PRINT="LCLS2cu.print"
    BEAM, ENERGY=E00
    USE, (GUNL0a,L0b,LCLS2cuH)
    PRINT, FULL
    TWISS, BETA0=TWSSC, SAVE !, RTAPE="LCLS2cuH_rmat.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      COLOUR=100, SPLINE=.T., FILE="LCLS2cu_color", &
      RANGE=DL1beg/#E, TITLE="Cathode to HXR Main Dump"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      COLOUR=100, SPLINE=.T., FILE="LCLS2cu_color", &
      RANGE=DL1beg/#E, TITLE="Cathode to HXR Main Dump"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX, &
      COLOUR=100, SPLINE=.F., FILE="LCLS2cu_color", &
      RANGE=CATHODE/DL1beg, TITLE="L0-to-DL1 dog-leg"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX, &
      COLOUR=100, SPLINE=.T., FILE="LCLS2cu_color", &
      RANGE=LHbeg/LHend, TITLE="Laser-Heater"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX, &
      COLOUR=100, SPLINE=.T., FILE="LCLS2cu_color", &
      RANGE=L0bBEG/DL1end, TITLE="L0-to-DL1 dog-leg"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      COLOUR=100, SPLINE=.T., FILE="LCLS2cu_color", &
      RANGE=L1beg/L1end, TITLE="L1-linac"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX, &
      COLOUR=100, SPLINE=.T., FILE="LCLS2cu_color", &
      RANGE=BC1mrk/BC1fin, TITLE="BC1-chicane"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      COLOUR=100, SPLINE=.T., FILE="LCLS2cu_color", &
      RANGE=L2beg/L2end, TITLE="L2-linac"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX, &
      COLOUR=100, SPLINE=.T., FILE="LCLS2cu_color", &
      RANGE=BPM24301/BPM25501, TITLE="BC2-chicane"
     !RANGE=BC2mrk/BC2fin, TITLE="BC2-chicane"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      COLOUR=100, SPLINE=.T., FILE="LCLS2cu_color", &
      RANGE=L3beg/L3end, TITLE="L3-linac"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      COLOUR=100, SPLINE=.T., FILE="LCLS2cu_color", &
      RANGE=BEGBSY1/ENDBSY1, TITLE="BSY1"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      COLOUR=100, SPLINE=.T., FILE="LCLS2cu_color", &
      RANGE=BSYbeg/BSYend, TITLE="BSY"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=BSYend/BEGHXR, TITLE="LTU to HXR Undulator",&
      COLOUR=100, SPLINE, FILE="LCLS2cu_color"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=BEGHXR/DUMPFACE, TITLE="HXR Undulator to Dump",&
      COLOUR=100, SPLINE, FILE="LCLS2cu_color"
    BEAM, ENERGY=E00
    USE, (GUNL0a,L0b,LCLS2cuHS)
    TWISS, BETA0=TWSSC, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=BEGSFTH/SFTDUMP, TITLE="HXR Safety Dump",&
      COLOUR=100, SPLINE, FILE="LCLS2cu_color"
    BEAM, ENERGY=E00
    USE, (GUNL0a,L0b,LCLS2cuS)
    PRINT, FULL
    TWISS, BETA0=TWSSC, SAVE !, RTAPE="LCLS2cuS_rmat.tape"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, &
      COLOUR=100, SPLINE=.T., FILE="LCLS2cu_color", &
      RANGE=DL1beg/#E, TITLE="Cu-linac to SXR Main Dump"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, &
      COLOUR=100, SPLINE=.T., FILE="LCLS2cu_color", &
      RANGE=DL1beg/#E, TITLE="Cu-linac to SXR Main Dump"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      COLOUR=100, SPLINE=.T., FILE="LCLS2cu_color", &
      RANGE=BEGCUS/ENDCUS, TITLE="CUSXR"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      COLOUR=100, SPLINE=.T., FILE="LCLS2cu_color", &
      RANGE=BSYbeg/ENDSPS, TITLE="Cu-linac BSY to SXR muon wall"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      COLOUR=100, SPLINE=.T., FILE="LCLS2cu_color", &
      RANGE=ENDSPS/BEGSXR, TITLE="Muon wall to SXR undulator"
    BEAM, ENERGY=E00
    USE, (GUNL0a,L0b,LCLS2cuSS)
    TWISS, BETA0=TWSSC, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=BEGSFTS/SFTDUMPb, TITLE="SXR Safety Dump",&
      COLOUR=100, SPLINE, FILE="LCLS2cu_color"
   !BEAM, ENERGY=E00
   !USE, (GUNL0a,L0b,LCLS1AL)
   !TWISS, BETA0=TWSSC, SAVE
   !PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=rBETX,rBETY, VAXIS2=DX,DY, &
   !  RANGE=BSYbeg/ALWALL, TITLE="BSY to A-line", &
   !  COLOUR=100, SPLINE, FILE="LCLS2cu_color"
 !ENDCOMMENT

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

  STOP

! ------------------------------------------------------------------------------
! routines below not checked
! ------------------------------------------------------------------------------

 COMMENT
   BEAM, ENERGY=E00
   USE, (GUNL0a,L0b,LCLS2cuH)
   ENVELOPE, SIGMA0=SIGC, TAPE="LCLS2cuH_envelope.tape"
 ENDCOMMENT

 COMMENT
   BEAM, ENERGY=E00
   USE, (GUNL0a,L0b,LCLS2cuH)
   SAVELINE, NAME="LSFEL", FILENAME="LCLS2cuH.saveline"
 ENDCOMMENT

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

! Gun Spectrometer: cathode to 6 MeV spectrometer dump
! ====================================================

 COMMENT
   ASSIGN, PRINT="GSPEC.print"
   BEAM, ENERGY=E00
   USE, (GUNBXG,GSPEC)
   PRINT, FULL
   SURVEY, THETA0=ADL1, X0=Xi, Z0=Zi !, TAPE="GSPEC_survey.tape"
   TWISS, BETA0=TWSSC, SAVE !, TAPE="GSPEC_twiss.tape"
   PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX, &
     STYLE=100, SPLINE=.T., FILE="GSPEC", &
     RANGE=#S/#E, TITLE="Cathode through 6-MeV Gun Spectrometer"
  !PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX, &
  !  STYLE=100, SPLINE=.T., FILE="GSPEC", &
  !  RANGE=GSPECBEG/#E, TITLE="Gun spectrometer"
  !SAVELINE, NAME="LSGUN", FILENAME="GSPEC.saveline"
 ENDCOMMENT

! 135 MeV Spectrometer: cathode to 135 MeV spectrometer dump
! ==========================================================

 COMMENT
   ASSIGN, PRINT="SPEC.print"
   BEAM, ENERGY=E00
   USE, (GUNL0a,L0b,DL1A,SPECBL)
   PRINT, FULL
   SURVEY, THETA0=ADL1, X0=Xi, Z0=Zi !, TAPE="SPEC_survey.tape"
   TWISS, BETA0=TWSSC, SAVE !, TAPE="SPEC_twiss.tape"
   PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX, &
     STYLE=100, SPLINE=.T., FILE="SPEC", &
     RANGE=DL1beg/#E, TITLE="Cathode through 135-MeV Spectrometer"
   PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX, &
     STYLE=100, SPLINE=.T., FILE="SPEC", &
     RANGE=SPECBEG/#E, TITLE="BXS Entrance to 135-MeV Spectrometer"
  !SAVELINE, NAME="LSINJ", FILENAME="SPEC.saveline"
 ENDCOMMENT

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

  STOP
