  TITLE, "LCLS2cu (February 26, 2016)"

! *** OPTICS=LCLS2cu26FEB16 ***

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

! ==============================================================================
! Modification History
! ------------------------------------------------------------------------------
! 25-SEP-2015, Y. Nosochkov
!  * rename LCLS1AL to LCLS2cuAL
!  * load ALINE.xsif before LTU.xsif
!  * load SPRD.xsif
! 24-AUG-2015, Y. Nosochkov
!  * see list of changes in .xsif files
! ------------------------------------------------------------------------------
! 19-JUN-2015, Y. Nosochkov
!  * see list of changes in .xsif files and in file MADdeckChanges.pdf
! ------------------------------------------------------------------------------
! 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 (at DBMARK34B)

  MBETXCUS :=  7.52385951454
  MALFXCUS := -0.330525739255
  MBETYCUS := 46.317733327026
  MALFYCUS :=  2.516469165781

  TWSSmcus : BETA0, ENERGY=Ef, BETX=MBETXcus, ALFX=MALFXcus, &
                               BETY=MBETYcus, ALFY=MALFYcus

! periodic Twiss in HXR dogleg cells (copy from LCLS2sc_main.mad8)

  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 linac

  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

! 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="SPRD.xsif"
  CALL, FILENAME="CUSXR.xsif"
  CALL, FILENAME="ALINE.xsif"
  CALL, FILENAME="BYP.xsif"
  CALL, FILENAME="LTU.xsif"
  CALL, FILENAME="UND.xsif"
  CALL, FILENAME="SFT.xsif"

! set HXR undulator quad integral field to 40 kG for 13.64 GeV
! set BSY and A-line quad strengths for Cu beam optics
! fine tune HXR quad strengths for a better match

  SET, IntgHX, 40.0 !kG
  SET, KQ50Q3,  0.391135502137
  SET, KQ4   , -0.219871175878
  SET, KQ5   ,  0.166804654659
  SET, KQ6   , -0.111397666004
  SET, KQA0  ,  0.120418710568
  SET, KQVM1 , -0.33737663383
  SET, KQVM2 ,  0.233178602736
  SET, KQVM3 ,  0.724411572898
  SET, KQVM4 , -0.682622141896
  SET, KQUM1 ,  0.265764489953
  SET, KQUM2 , -0.237180899085
  SET, KQUM3 ,  0.165910120487
  SET, KQUM4 , -0.17537081416
  SET, KQDHXM, -0.462007123826
  SET, KQUE1 , -0.094048953252
  SET, KQUE2 ,  0.160549634478
  SET, KQDMP , -0.155211312125
  SET, KQ10  ,  0.041243418637
  SET, KQ11  , -0.03218972476
  SET, KQ19  ,  0.028013094091
  SET, KQ20  ,  0.014459597958
  SET, KQ27  , -0.050070048059
  SET, KQ28  ,  0.019747309135
  SET, KQ30  , -0.032093946374
  SET, KQ38  ,  0.035266149466

! set SXR undulator quad integral field to 30 kG for 13.64 GeV
! fine tune SXR quad strengths for a better match
! note: QBP33 limits SXR energy to 9.1 GeV

  SET, IntgSX, 30.0 !kG
  SET, KQBP33, -0.713139419969
  SET, KQBP34,  0.591164862233
  SET, KQDBL1,  0.754024291641
  SET, KQDBL2, -1.342545887469
  SET, KQDL11,  0.416190231667
  SET, KQUM1B,  0.348249369688
  SET, KQUM2B, -0.13
  SET, KQUM3B,  0.383309826748
  SET, KQUM4B, -0.627452982018
  SET, KQSX16,  0.620095298251
  SET, KQSX19, -0.710032423563
  SET, KQSX21,  0.634741079005
  SET, KQSX24, -0.554578781835
  SET, KQDSXM, -0.394917483006
  SET, KQUE1B, -0.224167081886
  SET, KQUE2B,  0.330755849173
  SET, KQDMPB, -0.155218750141

! ==============================================================================
! 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)

! new BSY area definitions

  CALL, FILENAME="BSYcu.xsif"

! ------------------------------------------------------------------------------
! 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
    SET, SETCUS, CUSOFF ; SET, SETAL, ALOFF
    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
    SET, SETCUS, CUSON
    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
    SET, SETCUS, CUSOFF ; SET, SETAL, ALON
    USE, (GUNL0a,L0b,LCLS2cuA)
    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
    SET, SETCUS, CUSOFF ; SET, SETAL, ALOFF
    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
    SET, SETCUS, CUSOFF ; SET, SETAL, ALOFF
    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
    SET, SETCUS, CUSON
    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
    SET, SETCUS, CUSON
    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
    SET, SETCUS, CUSOFF ; SET, SETAL, ALON
    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
    SET, SETCUS, CUSOFF
    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
    SET, SETCUS, CUSOFF
    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="BSYA-LCLS1cuA.print"
    BEAM, ENERGY=Ef
    SET, SETCUS, CUSOFF ; SET, SETAL, ALON
    USE, S100ALINE
    PRINT, FULL
    SURVEY, Y0=77.643643677513, PHI0=-0.00475999999158308164
  ENDCOMMENT

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

 !COMMENT
    ASSIGN, PRINT="LCLS2cu.print"
    BEAM, ENERGY=E00
    SET, SETCUS, CUSOFF ; SET, SETAL, ALOFF
    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/#E, 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
    SET, SETCUS, CUSON
    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=BSYbeg/BSYENDB, 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=BSYENDB/BEGSXR, TITLE="Muon wall to SXR undulator"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=BEGSXR/#E, TITLE="SXR Undulator to Dump",&
      COLOUR=100, SPLINE, FILE="LCLS2cu_color"
    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
    SET, SETCUS, CUSOFF ; SET, SETAL, ALON
    USE, (GUNL0a,L0b,LCLS2cuA)
    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

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

 !CALL, FILENAME="LCLS2cu_area_plots.mad8"

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

  STOP

! ------------------------------------------------------------------------------
! working stuff
! ------------------------------------------------------------------------------

! 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="BSYA-LCLS1cuA.print"
    BEAM, ENERGY=Ef
    USE, S100ALINE
    PRINT, FULL
    SURVEY, Y0=77.643643677513, PHI0=-0.00475999999158308164
  ENDCOMMENT

  COMMENT
    SETPLOT, XSIZE=25, YSIZE=15
    ASSIGN, PRINT="LCLS2cu.print"
    BEAM, ENERGY=E00
    SET, SETCUS, CUSOFF ; SET, SETAL, ALOFF
    USE, (GUNL0a,L0b,LCLS2cuH)
    TWISS, BETA0=TWSSC, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY,&
      COLOUR=100, SPLINE, FILE="LCLS2cu_color", TITLE="Complete HXR",&
      RANGE=DL1beg/DUMPFACE, VMIN=0,-2.5, VMAX=250,1
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY,&
      COLOUR=100, SPLINE, FILE="LCLS2cu_color", RANGE=BSYbeg/MUWALL,&
      TITLE="BSY from end of Cu-linac to muon wall"
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY,&
      COLOUR=100, SPLINE, FILE="LCLS2cu_color", RANGE=Q50Q3[1]/MUWALL,&
      TITLE="From HXR/BSY merge point to muon wall", VMIN=0, VMAX=160
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=HXCEL46/DUMPFACE, TITLE="From last HXR undulator cells to dump",&
      COLOUR=100, SPLINE, FILE="LCLS2cu_color", VMIN=0,0, VMAX=120,1.59
    BEAM, ENERGY=E00
    SET, SETCUS, CUSON
    USE, (GUNL0a,L0b,LCLS2cuS)
    TWISS, BETA0=TWSSC, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY,&
      COLOUR=100, SPLINE, FILE="LCLS2cu_color", TITLE="Complete SXR",&
      RANGE=DL1beg/DUMPFACEB, VMIN=0,-2.5, VMAX=250,1
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY,&
      COLOUR=100, SPLINE, FILE="LCLS2cu_color", RANGE=BEGCUS/ENDCUS,&
      TITLE="Dogleg from Cu-linac to SXR", VMIN=0,-1.59, VMAX=250,0.39
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY,&
      COLOUR=100, SPLINE, FILE="LCLS2cu_color",RANGE=ENDCUS/MM1B,&
      TITLE="From Cu-linac/SXR merge point to LTUS", VMIN=0, VMAX=160
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
      RANGE=SXCEL46/DUMPFACEB, TITLE="From last SXR undulator cells to dump",&
      COLOUR=100, SPLINE, FILE="LCLS2cu_color", VMIN=0,0, VMAX=160,1.59
  ENDCOMMENT

  COMMENT
    SETPLOT, XSIZE=25, YSIZE=15
    ASSIGN, PRINT="LCLS2cu.print"
    BEAM, ENERGY=E00
    SET, SETCUS, CUSOFF ; SET, SETAL, ALOFF
    USE, (GUNL0a,L0b,LCLS2cuH)
    TWISS, BETA0=TWSSC, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY,&
      COLOUR=100, SPLINE, FILE="LCLS2cu_color", &
      TITLE="Cu-linac cathode to HXR main dump",&
      RANGE=DL1beg/DUMPFACE, VMIN=0,-1.5, VMAX=250,1
    BEAM, ENERGY=E00
    SET, SETCUS, CUSON
    USE, (GUNL0a,L0b,LCLS2cuS)
    TWISS, BETA0=TWSSC, SAVE
    PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY,&
      COLOUR=100, SPLINE, FILE="LCLS2cu_color", &
      TITLE="Cu-linac kicker to SXR main dump",&
      RANGE=BKRCUS1A[1]/DUMPFACEB, VMIN=0,-2, VMAX=300,1
  ENDCOMMENT

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

  STOP

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

 COMMENT
   BEAM, ENERGY=E00
    SET, SETCUS, CUSOFF ; SET, SETAL, ALOFF
   USE, (GUNL0a,L0b,LCLS2cuH)
   ENVELOPE, SIGMA0=SIGC, TAPE="LCLS2cuH_envelope.tape"
 ENDCOMMENT

 COMMENT
   BEAM, ENERGY=E00
    SET, SETCUS, CUSOFF ; SET, SETAL, ALOFF
   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
