
! *** OPTICS=LCLS2sc29JUN16 ***

! LCLS2sc injector: gun to start of L1 linac

! ==============================================================================
! Modification History
! ------------------------------------------------------------------------------
! 09-JUN-2016, M. Woodley
!  * adjust D0H00 and D0H00a lengths ... longer L0 d/s MSC; move PC0H00 1.5" u/s
!  * set BPMH1 and BPMH2 deferment level to 0
!  * move BPMDG000 to center between BKRDG0 and BLRDG0
!  * set IMBCSC0 TYPE="BCS cavity"
!  * move IMBCSC0 upstream of STC0
! ------------------------------------------------------------------------------
! 25-FEB-2016, M. Woodley
!  * use non-relativistic calculation of Brho in the GUNB region
!  * set BSOL01 = BSOL02 = 0
! 24-FEB-2016, M. Woodley
!  * new GUNB layout per M. Johnson (LBNL) and H. Alvarez
! 01-FEB-2016, M. Woodley
!  * new 100 pC input beams from J. Qiang/C. Mitchell
! 01-NOV-2015, M. Woodley
!  * new 100 pC input beam from F. Zhou (Twiss from P. Emma)
! ------------------------------------------------------------------------------
! 01-OCT-2015, M. Woodley
!  * add MARKers for vacuum components upstream of Q0H01
!  * add fixed 60 mm long, 12 mm bore tungsten PC upstream of Q0H01 (deferred)
!  * change Q0H01-08 and QHD01-04 type to "2Q4"
!  * change class-1a correctors between L0 and DIAG0 to class-6 (separate X, Y)
!  * change "Stripline-1" BPMs between L0 and DIAG0 to "Stripline-12"
!  * switch locations of ST0 and IMBCSC0 per S. Mao
!  * change TYPE of OTRs and YAGs per Henrik's PRD
!  * define zero-angle SBENs at position of DIAG0 kicker and septum
!  * adjust locations of devices per H. Alvarez
! ------------------------------------------------------------------------------
! 19-JUN-2015, M. Woodley
!  * add quad/skew quad MARKers at each end of each solenoid
!  * add 5th x/y corrector pair u/s of buncher ... renumber correctors
!  * undefer BUN01 (buncher) and UMHTR (laser heater undulator)
!  * adjust final drift length before L0 per H. Alvarez
!  * undefer WS0H04 and BZ0H04
!  * move laser heater BPMs to outer bend-to-bend drifts; new stripline type
!  * undefer YAGH1 and YAGH2
!  * positions of devices at laser heater chicane center per G. Bouchard
!  * undefer BPMC002, BPMC007, and BPMC008
!  * undefer YCC003
!  * move IMBCSC0/STC0 upstream per G. DeContreras
!  * move OTRC011 and WSC011 upstream, out of "particle free" zone; change
!    their names to OTRC006 and WSC006
!  * collimator gaps per P. Emma
! ------------------------------------------------------------------------------
! 20-MAR-2015, M. Woodley
!  * location of components u/s of L0 per S. Virostek
!  * add BCS ACM downstream of COL0 collimators
!  * fix interferences per H. Alvarez
!  * set collimator lengths (tungsten) and gaps per LCLSII-2.4-PR-0095-R0
! ------------------------------------------------------------------------------
! 12-DEC-2014, M. Woodley
!  * interference resolution mods per H. Alvarez:
!    - move SCC000 (XCC000/YCC000) 4.0 cm (1.5 inches) upstream
! ------------------------------------------------------------------------------
! 28-OCT-2014, M. Woodley
!  * generate matched optics between laser heater chicane and DIAG0 extraction
!    point for LHUND off and LH chicane off
!  * adjust length of matching section between LH and COL0 to put gun at
!    Z= -10.0 m exactly
!  * move COL0 collimators 7 inches closer to their associated quadrupoles
! ------------------------------------------------------------------------------
! 15-OCT-2014, M. Woodley
!  * new LBNL buncher cavity length per H. Alvarez
!  * add 4 LBNL design X/Y corrector pairs per H. Alvarez
!  * move differential pumping drift into L0 (u/s of Q0H01)
!  * reverse direction of laser heater chicane (into aisle) per H. Alvarez
!  * shorten COL0 FODO cell to 8.0 m
!  * replace narrow "Collins" quadrupole (1.0Q3.1) with standard 1.259Q3.5
!  * adjust deferment/deprecation levels
! ------------------------------------------------------------------------------
! 07-AUG-2014, M. Woodley
!  * diagnostics complement per "Electron Beam Diagnostics Systems" PRD
!    (LCLSII-2.7-PR-0170)
!  * update L0 d/s end cap and mechanical stay clear dimensions
!  * space for L0 differential vacuum pumping between Q0H02 and Q0H03
!  * add emittance measurement in L0-to-laser-heater matching section
!  * laser heater chicane lengthened to reduce R56 to 3.5 mm
!  * CEHTR collimator moved u/s of undulator
!  * COL0 collimation system now consists of four 45 degree FODO cells with 3
!    pairs of collimators separated by 45 degrees (22 m betas at collimators);
!    FODO cell length is 12 m
!  * add a wire scanner at the end of COL0 for "tomographic" emittance
!    measurement
!  * decorate device TYPE attributes to indicate non-baseline status
! ------------------------------------------------------------------------------
! 17-APR-2014, M. Woodley
!  * add "CNT" MARKERs after dispersive areas (ELEGANT CENTERing)
!  * explicitly define R55=R66=1 in MATRs (for translation to BMAD)
! ------------------------------------------------------------------------------
! 19-MAR-2014, M. Woodley
!  * matching around extraction to DIAG0 changed
!  * element names changed to conform to nomenclature PRD
! ------------------------------------------------------------------------------
! 13-JAN-2014, M. Woodley
!  * parameters of buncher and solenoids per C. Papadopoulos
!    (Parameters_GUN2013_10_08v3.docx) ...
! ------------------------------------------------------------------------------
! 07-JAN-2014, M. Woodley
!  * devices between CATHODE and CM01 per H. Alvarez
! ------------------------------------------------------------------------------

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

! buncher cavity
! (no gradient/phase values available)

  Lbun := 0.21876 !m
  Abun := 0.0517  !m
  Gbun := 0       !MV/m
  Pbun := 0       !deg

  BUN01 : LCAV, TYPE="LBNL", FREQ=1300, L=Lbun, APER=Abun/2, &
                DELTAE=Gbun*Lbun, PHI0=Pbun/360

  COMMENT !for checking Z at buncher center
    BUN01a : LCAV, TYPE="LBNL", FREQ=1300, L=Lbun/2, APER=Abun/2, &
                   DELTAE=Gbun*Lbun/2, PHI0=Pbun/360
    BUN01b : LCAV, TYPE="LBNL", FREQ=1300, L=Lbun/2, DELTAE=Gbun*Lbun/2, &
                   PHI0=Pbun/360
    BUN01 : LINE=(BUN01a,BUN01b)
  ENDCOMMENT

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

! laser heater chicane
! - approximate on-axis effective length per R. Carr (01-AUG-05 PE)
! - use series approximation for sinc(x)=sin(x)/x to allow BCXH=0

! Brhoh : beam rigidity at chicane (kG-m)
! GBh   : 5D3.9 gap height (m)
! ZBh   : 5D3.9 "Z" length (m)
! BBh   : heater-chicane bend field for R56=0.005 (kG)
! ABh   : chicane bend angle (rad)
! LBh   : chicane bend path length (m)
! ABhS  : "short" half chicane bend angle (rad)
! LBhS  : "short" half chicane bend path length (m)
! ABhL  : "long" half chicane bend angle (rad)
! LBhL  : "long" half chicane bend path length (m)

  Brhoh    := Cb*Ei
  GBh      := 0.03
  ZBh      := 0.1244
  BBh      := 0.592908149003
  ARGh     := ZBh*BBh/Brhoh
  ABh      := ASIN(ARGh)
  ABh_2    := ABh*ABh
  ABh_4    := ABh_2*ABh_2
  ABh_6    := ABh_4*ABh_2
  SINCABh  := 1-ABh_2/6+ABh_4/120-ABh_6/5040 !~sinc(ABh)=sin(ABh)/ABh
  LBh      := ZBh/SINCABh
  ABhS     := ASIN(ARGh/2)
  ABhS_2   := ABhS*ABhS
  ABhS_4   := ABhS_2*ABhS_2
  ABhS_6   := ABhS_4*ABhS_2
  SINCABhS := 1-ABhS_2/6+ABhS_4/120-ABhS_6/5040 !~sinc(ABhS)=sin(ABhS)/ABhS
  LBhS     := ZBh/(2*SINCABhS)
  ABhL     := ABh-ABhS
  LBhL     := LBh-LBhS

  BCXH1A : SBEN, TYPE="5D3.9", L=LBhS, ANGLE=+ABhS, HGAP=GBh/2, &
                 E1=0, FINT=0.4, FINTX=0
  BCXH1B : SBEN, TYPE="5D3.9", L=LBhL, ANGLE=+ABhL, HGAP=GBh/2, &
                 FINT=0, E2=+ABh, FINTX=0.4
  BCXH2A : SBEN, TYPE="5D3.9", L=LBhL, ANGLE=-ABhL, HGAP=GBh/2, &
                 E1=-ABh, FINT=0.4, FINTX=0
  BCXH2B : SBEN, TYPE="5D3.9", L=LBhS, ANGLE=-ABhS, HGAP=GBh/2, &
                 FINT=0, E2=0, FINTX=0.4
  BCXH3A : SBEN, TYPE="5D3.9", L=LBhS, ANGLE=-ABhS, HGAP=GBh/2, &
                 E1=0, FINT=0.4, FINTX=0
  BCXH3B : SBEN, TYPE="5D3.9", L=LBhL, ANGLE=-ABhL, HGAP=GBh/2, &
                 FINT=0, E2=-ABh, FINTX=0.4
  BCXH4A : SBEN, TYPE="5D3.9", L=LBhL, ANGLE=+ABhL, HGAP=GBh/2, &
                 E1=+ABh, FINT=0.4, FINTX=0
  BCXH4B : SBEN, TYPE="5D3.9", L=LBhS, ANGLE=+ABhS, HGAP=GBh/2, &
                 FINT=0, E2=0, FINTX=0.4

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

! correction coils co-wound on GUNB solenoids

  CQSOL01 : QUAD, TYPE="solenoid trim", L=0, APER=0.0475/2, K1=0
  SQSOL01 : QUAD, TYPE="solenoid trim", L=0, APER=0.0475/2, K1=0
  CQSOL02 : QUAD, TYPE="solenoid trim", L=0, APER=0.0475/2, K1=0
  SQSOL02 : QUAD, TYPE="solenoid trim", L=0, APER=0.0475/2, K1=0

! L0 to WS/OTR (Q0H01-4 match to waists at WS0H04)

  KQ0H01 := -6.337139545056
  KQ0H02 :=  5.879176090035
  KQ0H03 :=  2.283553576325
  KQ0H04 := -5.978823612297

  Q0H01 : QUAD, TYPE="2Q4", L=LQM/2, APER=rQM, K1=KQ0H01
  Q0H02 : QUAD, TYPE="2Q4", L=LQM/2, APER=rQM, K1=KQ0H02
  Q0H03 : QUAD, TYPE="2Q4", L=LQM/2, APER=rQM, K1=KQ0H03
  Q0H04 : QUAD, TYPE="2Q4", L=LQM/2, APER=rQM, K1=KQ0H04

! WS/OTR to laser heater (Q0H05-8 match to 10x10 m beta waists LHMID)

!               heater ON         heater OFF        chicane OFF     
!           ----------------   ----------------   ----------------  
  KQ0H05 :=  -5.586108356122 !  -7.451690534249 !  -7.508072657061 !
  KQ0H06 :=   0.073403810327 !   1.835549316624 !   1.870908387702 !
  KQ0H07 :=   8.162277742575 !   7.794439920783 !   7.804907479844 !
  KQ0H08 :=  -8.409034165155 !  -8.272915023345 !  -8.306722243049 !

  Q0H05 : QUAD, TYPE="2Q4", L=LQM/2, APER=rQM, K1=KQ0H05
  Q0H06 : QUAD, TYPE="2Q4", L=LQM/2, APER=rQM, K1=KQ0H06
  Q0H07 : QUAD, TYPE="2Q4", L=LQM/2, APER=rQM, K1=KQ0H07
  Q0H08 : QUAD, TYPE="2Q4", L=LQM/2, APER=rQM, K1=KQ0H08

! laser heater to diagnostic line

!               heater ON         heater OFF        chicane OFF     
!           ----------------   ----------------   ----------------  
  KQHD01 :=  -9.299420346345 !  -8.492794680472 !  -8.497883874041 !
  KQHD02 :=   6.561965539797 !   6.294736472791 !   6.297127169328 !
  KQHD03 :=  -8.242021001439 !  -8.534882595843 !  -8.5453452333   !
  KQHD04 :=   6.708921733487 !   6.926017101709 !   6.929925208449 !

  QHD01 : QUAD, TYPE="2Q4", L=LQM/2, APER=rQM, K1=KQHD01
  QHD02 : QUAD, TYPE="2Q4", L=LQM/2, APER=rQM, K1=KQHD02
  QHD03 : QUAD, TYPE="2Q4", L=LQM/2, APER=rQM, K1=KQHD03
  QHD04 : QUAD, TYPE="2Q4", L=LQM/2, APER=rQM, K1=KQHD04

! collimation FODO

  KQColl0   := 1.787850470726  !45 degree FODO
! BminColl0 := 6.996145818352
! BmaxColl0 := 15.616293369745

  QFColl0 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1= KQColl0
  QDColl0 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=-KQColl0

! COL0 collimation section

  KQC001 :=  5.055115116104
  KQC002 :=  0.157983741597
  KQC003 := -5.345027237466
  KQC004 :=  2.756594856364
  KQC005 := -KQColl0
  KQC006 :=  KQColl0
  KQC007 := -KQColl0
  KQC008 :=  KQColl0
  KQC009 := -KQColl0
  KQC010 :=  1.027108889074
  KQC011 := -1.580120557888
  KQC012 :=  1.296944319714

  QC001 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQC001
  QC002 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQC002
  QC003 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQC003
  QC004 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQC004
  QC005 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQC005
  QC006 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQC006
  QC007 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQC007
  QC008 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQC008
  QC009 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQC009
  QC010 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQC010
  QC011 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQC011
  QC012 : QUAD, TYPE="1.259Q3.5", L=LQx/2, APER=rQx, K1=KQC012

! ==============================================================================
! SOLE
! ------------------------------------------------------------------------------

! solenoids between gun and L0

  Rsol   := 0.0475/2
  Lsol   := 0.17412             !m
  BSOL01 := 0                   !0.0570 T
  BSOL02 := 0                   !0.0322 T
  Brho   := Cb*SQRT(E0^2-mc2^2) !kG-m (non-relativistic)
  KSOL01 := (10*BSOL01)/Brho    !1/m
  KSOL02 := (10*BSOL02)/Brho    !1/m

  SOL00 : SOLE, TYPE="Bucking Coil", L=0, KS=0
  SOL01 : SOLE, TYPE="LBNL", L=Lsol/2, APER=Rsol, KS=KSOL01
  SOL02 : SOLE, TYPE="LBNL", L=Lsol/2, APER=Rsol, KS=KSOL02

! ==============================================================================
! MATR
! ------------------------------------------------------------------------------

! laser heater undulator
! - modeled as R-matrix to include vertical natural focusing
! - parameters from M. Venturini presentation (23-OCT-13)

! lam   : laser-heater undulator period [m]
! lamr  : heater laser wavelength [m]
! gami  : Lorentz energy factor in laser-heater undulator [1]
! K_und : undulator K for laser heater undulator
! Lhun  : length of laser-heater undulator (10 periods) [m]
! kqlh  : natural undulator focusing "k" in y-plane [1/m2]

  lam   := 0.0471204
  lamr  := 1030E-9
  gami  := Ei/EMASS
  K_und := sqrt(2*(lamr*2*gami^2/lam-1))
  Lhun  := 10*lam
  kqlh  := (K_und*2*pi/lam/sqrt(2)/gami)^2

 !COMMENT
    UMHTR : MATRIX, TYPE="LHund", L=Lhun/2,       &
      RM(1,1)=1.0,                                &
      RM(1,2)=Lhun/2,                             &
      RM(2,1)=0.0,                                &
      RM(2,2)=1.0,                                &
      RM(3,3)=cos(Lhun/2*sqrt(kqlh)),             &
      RM(3,4)=sin(Lhun/2*sqrt(kqlh))/sqrt(kqlh),  &
      RM(4,3)=-sin(Lhun/2*sqrt(kqlh))*sqrt(kqlh), &
      RM(4,4)=cos(Lhun/2*sqrt(kqlh)),             &
      RM(5,5)=1,                                  &
      RM(6,6)=1 !,
     !RM(5,6)=Lhun/2/(gami^2)*(1+(K_und^2)/2)
 !ENDCOMMENT

 !UMHTR : DRIF, TYPE="LHund", L=Lhun/2

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

! gun to L0

  Lgun := 0.04 !APEX gun

  DGBCa : DRIF, L=-0.071705
  DGBCb : DRIF, L=0.071705
  DGUN  : DRIF, L=Lgun
  DG001 : DRIF, L=0.256000-Lgun-Lsol/2
  DG002 : DRIF, L=0.131209-Lsol/2
  DG003 : DRIF, L=0.053230
  DG004 : DRIF, L=0.048826
  DG005 : DRIF, L=0.105156
  DG006 : DRIF, L=0.061918
  DG007 : DRIF, L=0.152973-Lbun/2
  DG008 : DRIF, L=0.133987-Lbun/2
  DG009 : DRIF, L=0.203911
  DG010 : DRIF, L=0.252880 !0.276559-0.023679
  DG011 : DRIF, L=0.091464 !0.067785+0.023679
  DG012 : DRIF, L=0.159446-Lsol/2
  DG013 : DRIF, L=0.131209-Lsol/2
  DG014 : DRIF, L=0.102056
  DG015 : DRIF, L=0.005043
  DG016 : DRIF, L=0.163269

! L0 to laser heater

  D0H00  : DRIF, L=0.347975
  D0H01  : DRIF, L=0.427898
  D0H02  : DRIF, L=4.179215
  D0H03  : DRIF, L=0.409812
  D0H04  : DRIF, L=1.0979
  D0H05  : DRIF, L=0.409812
  D0H06  : DRIF, L=1.366076
  D0H07  : DRIF, L=0.409812
  D0H08  : DRIF, L=0.3687

  D0H00b : DRIF, L=0.291975
  D0H00a : DRIF, L=D0H00[L]-D0H00b[L]
  D0H01a : DRIF, L=0.213949
  D0H01b : DRIF, L=D0H01[L]-D0H01a[L]
  D0H02a : DRIF, L=0.204906
  D0H02b : DRIF, L=0.443171
  D0H02c : DRIF, L=0.64135
  D0H02d : DRIF, L=0.64135
  D0H02f : DRIF, L=0.204906
  D0H02e : DRIF, L=D0H02[L]-D0H02a[L]-D0H02b[L]-D0H02c[L]-D0H02d[L]-D0H02f[L]
  D0H03a : DRIF, L=0.204906
  D0H03b : DRIF, L=D0H03[L]-D0H03a[L]
  D0H04a : DRIF, L=0.2148
  D0H04b : DRIF, L=0.277
  D0H04c : DRIF, L=0.23255
  D0H04d : DRIF, L=0.14365
  D0H04e : DRIF, L=D0H04[L]-D0H04a[L]-D0H04b[L]-D0H04c[L]-D0H04d[L]
  D0H05a : DRIF, L=0.204906
  D0H05b : DRIF, L=D0H05[L]-D0H05a[L]
  D0H06a : DRIF, L=0.204906
  D0H06c : DRIF, L=0.204906
  D0H06b : DRIF, L=D0H06[L]-D0H06a[L]-D0H06c[L]
  D0H07a : DRIF, L=0.204906
  D0H07b : DRIF, L=D0H07[L]-D0H07a[L]
  D0H08a : DRIF, L=0.1934
  D0H08b : DRIF, L=D0H08[L]-D0H08a[L]

! laser heater

  ZhBBo  := 3.264933791099
  ZhBBi  := 2.009304
  ZhBMo  := 1.53742329
  ZhBMIu := 0.37561671
  ZhBMId := 1.389994208901

  Dh01   : DRIF, L=ZhBBo/COS(ABh), TYPE="CSR"
  Dh01a  : DRIF, L=ZhBMo/COS(ABh), TYPE="CSR"
  Dh01b  : DRIF, L=ZhBMIu/COS(ABh), TYPE="CSR"
  Dh01c  : DRIF, L=Dh01[L]-Dh01a[L]-Dh01b[L], TYPE="CSR"
  Dh02   : DRIF, L=ZhBBi, TYPE="CSR"
  Dh02a  : DRIF, L=0.192614-Ljaw/2, TYPE="CSR" !0.20475
  Dh02b  : DRIF, L=0.298450-Ljaw/2, TYPE="CSR" !0.45795
  Dh02c  : DRIF, L=0.297036, TYPE="CSR"        !0.1254
  Dh02d  : DRIF, L=0.2900002, TYPE="CSR"       !0.3785875
  Dh02e  : DRIF, L=0.4599998, TYPE="CSR"       !0.3714125
  Dh03   : DRIF, L=ZhBBo/COS(ABh), TYPE="CSR"
  Dh03a  : DRIF, L=ZhBMId/COS(ABh), TYPE="CSR"
  Dh03c  : DRIF, L=ZhBMo/COS(ABh), TYPE="CSR"
  Dh03b  : DRIF, L=Dh03[L]-Dh03a[L]-Dh03c[L], TYPE="CSR"

! laser heater to diagnostic line

  DHD00 : DRIF, L=0.381398817802
  DHD01 : DRIF, L=0.6566
  DHD02 : DRIF, L=2.707388
  DHD03 : DRIF, L=0.459812
  DHD04 : DRIF, L=0.2417996 !0.25

  DHD00b : DRIF, L=0.1
  DHD00a : DRIF, L=DHD00[L]-DHD00b[L]
  DHD01a : DRIF, L=0.204906
  DHD01c : DRIF, L=0.204906
  DHD01b : DRIF, L=DHD01[L]-DHD01a[L]-DHD01c[L]
  DHD02b : DRIF, L=0.204906
  DHD02a : DRIF, L=DHD02[L]-DHD02b[L]
  DHD03b : DRIF, L=0.204906
  DHD03a : DRIF, L=DHD03[L]-DHD03b[L]
  DHD04a : DRIF, L=DHD04[L]/2
  DHD04b : DRIF, L=DHD04[L]-DHD04a[L]

  COMMENT
    VALUE, DHD00[L],DHD00a[L]+DHD00b[L]
    VALUE, DHD01[L],DHD01a[L]+DHD01b[L]+DHD01c[L]
    VALUE, DHD02[L],DHD02a[L]+DHD02b[L]
    VALUE, DHD03[L],DHD03a[L]+DHD03b[L]
    VALUE, DHD04[L],DHD04a[L]+DHD04b[L]
  ENDCOMMENT

! collimation FODO

  DColl0   : DRIF, L=4.0-LQx
  DColl0a  : DRIF, L=0.2508
  DColl0c  : DRIF, L=0.325-Ljaw/2
  DColl0b  : DRIF, L=DColl0[L]-DColl0a[L]-Ljaw-DColl0c[L]
  DColl0b2 : DRIF, L=0.3
  DColl0b3 : DRIF, L=0.3151
  DColl0b4 : DRIF, L=0.25-Ljaw/2
  DColl0b1 : DRIF, L=DColl0b[L]-DColl0b2[L]-DColl0b3[L]-DColl0b4[L]
  DColl0b5 : DRIF, L=0.73365
  DColl0b6 : DRIF, L=0.6063
  DColl0b7 : DRIF, L=1.94625

! DIAG0 extraction magnets

  DBKRDG0a : DRIF, L=0.5
  DBKRDG0b : DRIF, L=0.5
  DBLRDG0a : DRIF, L=0.2
  DBLRDG0b : DRIF, L=0.2

! COL0 collimation section

  DC000 : DRIF, L=5.4832+4e-7
  DC001 : DRIF, L=0.673
  DC002 : DRIF, L=0.8238
  DC003 : DRIF, L=1.533669597623
  DC004 : DRIF, L=5.2128
  DC010 : DRIF, L=DColl0[L]
  DC011 : DRIF, L=2.8252

  DC000a : DRIF, L=ZKS0-ZK0/2-ZS0/2
  DC000c : DRIF, L=0.19
  DC000b : DRIF, L=DC000[L]-ZK0-DC000a[L]-ZS0-DC000c[L] !2.5932004
  DC003a : DRIF, L=0.2508
  DC003b : DRIF, L=DC003[L]-DC003a[L]
  DC004a : DRIF, L=0.2508
  DC004c : DRIF, L=0.325-Ljaw/2
  DC004b : DRIF, L=DC004[L]-DC004a[L]-Ljaw-DC004c[L]
  DC010a : DRIF, L=DColl0a[L]
  DC010c : DRIF, L=0.3
  DC010b : DRIF, L=DC010[L]-DC010a[L]-DC010c[L]
  DC011a : DRIF, L=0.2508
  DC011c : DRIF, L=0.327
  DC011b : DRIF, L=DC011[L]-DC011a[L]-DC011c[L]

  DC000aa : DRIF, L=DC000a[L]/2
  DC000ab : DRIF, L=DC000a[L]-DC000aa[L]

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

  BPM01   : MONI, TYPE="Stripline-4"
  BPM02   : MONI, TYPE="Stripline-4"

  BPM0H01 : MONI, TYPE="Stripline-12"
  BPM0H04 : MONI, TYPE="Stripline-12"
  BPM0H05 : MONI, TYPE="Stripline-12"
  BPM0H08 : MONI, TYPE="Stripline-12"
  BPMH1   : MONI, TYPE="@0,Stripline-8"
  BPMH2   : MONI, TYPE="@0,Stripline-8"
  BPMHD01 : MONI, TYPE="Stripline-12"
  BPMHD02 : MONI, TYPE="Stripline-12"
  BPMHD03 : MONI, TYPE="Stripline-12"
  BPMHD04 : MONI, TYPE="Stripline-12"
  BPMC001 : MONI, TYPE="Stripline-1"
  BPMC002 : MONI, TYPE="Stripline-1"
  BPMC003 : MONI, TYPE="Stripline-1"
  BPMC004 : MONI, TYPE="Stripline-1"
  BPMC005 : MONI, TYPE="Stripline-1"
  BPMC006 : MONI, TYPE="Stripline-1"
  BPMC007 : MONI, TYPE="Stripline-1"
  BPMC008 : MONI, TYPE="Stripline-1"
  BPMC009 : MONI, TYPE="Stripline-1"
  BPMC010 : MONI, TYPE="Stripline-1"
  BPMC011 : MONI, TYPE="Stripline-1"
  BPMC012 : MONI, TYPE="Stripline-1"

  RFB0H00 : MONI, TYPE="@2,CavityS-1"
  RFB0H04 : MONI, TYPE="@2,CavityS-1"
  RFB0H08 : MONI, TYPE="@2,CavityS-1"
  RFBHD00 : MONI, TYPE="@2,CavityS-1"
  RFBHD04 : MONI, TYPE="@2,CavityS-1"
  RFBC006 : MONI, TYPE="@2,CavityS-1"
  RFBC011 : MONI, TYPE="@4,CavityS-1"

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

  XC01 : HKIC, TYPE="LBNL-xy"
  XC02 : HKIC, TYPE="LBNL-xy"
  XC03 : HKIC, TYPE="LBNL-xy"
  XC04 : HKIC, TYPE="LBNL-xy"
  XC05 : HKIC, TYPE="LBNL-xy"

  XC0H01 : HKIC, TYPE="class-6"
  XC0H03 : HKIC, TYPE="class-6"
  XC0H05 : HKIC, TYPE="class-6"
  XC0H07 : HKIC, TYPE="class-6"
  XCHD01 : HKIC, TYPE="class-6"
  XCHD03 : HKIC, TYPE="class-6"
  XCC000 : HKIC, TYPE="class-1a"
  XCC004 : HKIC, TYPE="class-6"
  XCC006 : HKIC, TYPE="@3,class-6"
  XCC008 : HKIC, TYPE="class-6"
  XCC010 : HKIC, TYPE="@3,class-6"
  XCC012 : HKIC, TYPE="class-6"

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

  YC01 : VKIC, TYPE="LBNL-xy"
  YC02 : VKIC, TYPE="LBNL-xy"
  YC03 : VKIC, TYPE="LBNL-xy"
  YC04 : VKIC, TYPE="LBNL-xy"
  YC05 : VKIC, TYPE="LBNL-xy"

  YC0H01 : VKIC, TYPE="class-6"
  YC0H03 : VKIC, TYPE="class-6"
  YC0H05 : VKIC, TYPE="class-6"
  YC0H07 : VKIC, TYPE="class-6"
  YCHD01 : VKIC, TYPE="class-6"
  YCHD03 : VKIC, TYPE="class-6"
  YCC000 : VKIC, TYPE="class-1a"
  YCC003 : VKIC, TYPE="class-6"
  YCC005 : VKIC, TYPE="@3,class-6"
  YCC007 : VKIC, TYPE="class-6"
  YCC009 : VKIC, TYPE="@3,class-6"
  YCC011 : VKIC, TYPE="class-6"

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

! halo/dark current collimator

  PC0H00 : ECOL, L=0.06, XSIZE=6.0e-3, YSIZE=6.0e-3, TYPE="@0,tungsten"

! collimators
! (betatron X/Y half-gaps are 24/16 sigma for 1 um normalized emittance)

  CEHTR : RCOL, L=Ljaw, XSIZE=3.0e-3, TYPE="HCOLL"    !X momentum collimator
  CYC01 : RCOL, L=Ljaw, YSIZE=4.4e-3, TYPE="VCOLL"    !Y betatron collimator
  CXC01 : RCOL, L=Ljaw, XSIZE=4.4e-3, TYPE="HCOLL"    !X betatron collimator
  CYC02 : RCOL, L=Ljaw, YSIZE=4.4e-3, TYPE="@4,VCOLL" !Y betatron collimator
  CXC02 : RCOL, L=Ljaw, XSIZE=4.4e-3, TYPE="@4,HCOLL" !X betatron collimator
  CYC03 : RCOL, L=Ljaw, YSIZE=4.4e-3, TYPE="VCOLL"    !Y betatron collimator
  CXC03 : RCOL, L=Ljaw, XSIZE=4.4e-3, TYPE="HCOLL"    !X betatron collimator

! instruments

  CATHODE : INST
  IM01    : IMON, TYPE="ICT"
  YAG01   : PROF, TYPE="YAG INJ"
  WS0H04  : WIRE, TYPE="fast"
  OTR0H04 : PROF, TYPE="@2,YAG/OTR PSI"
  BZ0H04  : BLMO, TYPE="gap/diode"
  YAGH1   : PROF, TYPE="YAG INJ"
  YAGH2   : PROF, TYPE="YAG INJ"
  OTRC006 : PROF, TYPE="@4,YAG/OTR PSI"
  WSC006  : WIRE, TYPE="@4,fast"
  IMBCSC0 : IMON, TYPE="@0,BCS cavity" !BCS ACM d/s of collimators
  STC0    : INST, TYPE="stopper"

! marker points

  VV01     : MARK
  MIR01    : MARK
  SQSOL02u : MARK
  QSOL02u  : MARK
  QSOL02d  : MARK
  SQSOL02d : MARK
  VV02     : MARK
  DP0H01   : MARK
  DP0H02   : MARK
  DP0H03   : MARK
  LHBEG    : MARK
  MIRLHu   : MARK, TYPE="laser inj/ext"
  HTRUND   : MARK, TYPE="SCATTER"
  MIRLHd   : MARK, TYPE="laser inj/ext"
  CNTHTR   : MARK, TYPE="CENTER"
  LHEND    : MARK

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

  SOL01L : LINE=(SOL01,CQSOL01,SQSOL01,SOL01)
  SOL02L : LINE=(SOL02,CQSOL02,SQSOL02,SOL02)

  SC01   : LINE=(XC01,YC01)
  SC02   : LINE=(XC02,YC02)
  SC03   : LINE=(XC03,YC03)
  SC04   : LINE=(XC04,YC04)
  SC05   : LINE=(XC05,YC05)
  SCC000 : LINE=(XCC000,YCC000)

  GUN : LINE=(&
    BEGGUNB,&
    DGBCa,SOL00,DGBCb,&
    CATHODE,DGUN,DG001,&
    SOL01L,DG002,VV01,DG003,SC01,DG004,BPM01,DG005,IM01,DG006,SC02,DG007,&
    BUN01,DG008,SC03,DG009,MIR01,DG010,SC04,DG011,YAG01,DG012,&
    SOL02L,DG013,VV02,DG014,BPM02,DG015,SC05,DG016,&
    ENDGUNB)

  LSRHTR : LINE=(LHBEG,&
    BCXH1A,BCXH1B,Dh01a,BPMH1,Dh01b,MIRLHu,Dh01c,&
    BCXH2A,BCXH2B,Dh02a,CEHTR,Dh02b,YAGH1,Dh02c,&
      UMHTR,HTRUND,UMHTR,Dh02d,YAGH2,Dh02e,&
    BCXH3A,BCXH3B,Dh03a,MIRLHd,Dh03b,BPMH2,Dh03c,&
    BCXH4A,BCXH4B,CNTHTR,&
    LHEND)

  HTR : LINE=(&
    BEGHTR,RFB0H00,&
    D0H00a,PC0H00,D0H00b,&
    Q0H01,BPM0H01,Q0H01,D0H01a,YC0H01,D0H01b,&
    Q0H02,Q0H02,D0H02a,XC0H01,D0H02b,DP0H01,D0H02c,DP0H02,D0H02d,DP0H03,&
      D0H02e,XC0H03,D0H02f,&
    Q0H03,Q0H03,D0H03a,YC0H03,D0H03b,&
    Q0H04,BPM0H04,Q0H04,D0H04a,RFB0H04,D0H04b,WS0H04,D0H04c,OTR0H04,D0H04d,&
      BZ0H04,D0H04e,&
    Q0H05,BPM0H05,Q0H05,D0H05a,YC0H05,D0H05b,&
    Q0H06,Q0H06,D0H06a,XC0H05,D0H06b,XC0H07,D0H06c,&
    Q0H07,Q0H07,D0H07a,YC0H07,D0H07b,&
    Q0H08,BPM0H08,Q0H08,D0H08a,RFB0H08,D0H08b,&
    LSRHTR,DHD00a,RFBHD00,DHD00b,&
    QHD01,BPMHD01,QHD01,DHD01a,YCHD01,DHD01b,XCHD01,DHD01c,&
    QHD02,BPMHD02,QHD02,DHD02a,YCHD03,DHD02b,&
    QHD03,BPMHD03,QHD03,DHD03a,XCHD03,DHD03b,&
    QHD04,BPMHD04,QHD04,DHD04a,RFBHD04,DHD04b,&
    ENDHTR)

  COMMENT
    COL0 : LINE=(&
      BEGCOL0,&
      DC000,&
      QC001,QC001,DC001,&
      QC002,QC002,DC002,&
      QC003,QC003,DC003,&
      QC004,QC004,DC004,&
      QC005,QC005,DColl0,&
      QC006,QC006,DColl0,&
      QC007,QC007,DColl0,&
      QC008,QC008,DColl0,&
      QC009,QC009,DColl0,&
      QC010,QC010,DColl0,&
      QC011,QC011,DC011,&
      QC012,QC012,&
      ENDCOL0)
  ENDCOMMENT

 !COMMENT
    COL0 : LINE=(&
      BEGCOL0,&
      DBKRDG0a,DBKRDG0b,DC000aa,BPMDG000,DC000ab,DBLRDG0a,DBLRDG0b,&
        DC000b,SCC000,DC000c,&
      QC001,BPMC001,QC001,DC001,&
      QC002,BPMC002,QC002,DC002,&
      QC003,BPMC003,QC003,DC003a,YCC003,DC003b,&
      QC004,BPMC004,QC004,DC004a,XCC004,DC004b,CYC01,DC004c,&
      QC005,BPMC005,QC005,DColl0a,YCC005,DColl0b,CXC01,DColl0c,&
      QC006,BPMC006,QC006,DColl0a,XCC006,DColl0b1,OTRC006,DColl0b2,&
        WSC006,DColl0b3,RFBC006,DColl0b4,CYC02,DColl0c,&
      QC007,BPMC007,QC007,DColl0a,YCC007,&
        DColl0b5,IMBCSC0,DColl0b6,STC0,DColl0b7,CXC02,DColl0c,&
      QC008,BPMC008,QC008,DColl0a,XCC008,DColl0b,CYC03,DColl0c,&
      QC009,BPMC009,QC009,DColl0a,YCC009,DColl0b,CXC03,DColl0c,&
      QC010,BPMC010,QC010,DC010a,XCC010,DC010b,RFBC011,DC010c,&
      QC011,BPMC011,QC011,DC011a,YCC011,DC011b,XCC012,DC011c,&
      QC012,BPMC012,QC012,&
      ENDCOL0)
 !ENDCOMMENT

  C0fodo : LINE=(QFColl0,DColl0,QDColl0,QDColl0,DColl0,QFColl0)

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

  RETURN
