
! ------------------------------------------------------------------------------
! XLEAP-II optics (Yuri Nosochkov)
! ------------------------------------------------------------------------------

! to run XLEAP-II optics, uncomment the SUBROUTINE with the appropriate energy;
! within the selected SUBROUTINE, comment out any unused wiggler pair

 !COMMENT
    SETK2XL2 : SUBROUTINE !4 GeV
      SET, Ef, 4.0 ; SET, Eu, Ef
     !comment !turn on first wiggler pair and match (chicane and XLEAP wiggler OFF)
        SET, R11XL1,  1.098929204922070 ; SET, R11XL2, R11XL1
        SET, R12XL1,  1.719551869522400 ; SET, R12XL2, R12XL1
        SET, R21XL1,  0.120755530037211 ; SET, R21XL2, R21XL1
        SET, R22XL1,  1.098929204922070 ; SET, R22XL2, R22XL1
        SET, R33XL1,  0.904229208659358 ; SET, R33XL2, R33XL1
        SET, R34XL1,  1.611499871655030 ; SET, R34XL2, R34XL1
        SET, R43XL1, -0.113167578486975 ; SET, R43XL2, R43XL1
        SET, R44XL1,  0.904229208659358 ; SET, R44XL2, R44XL1
        SET, KQEM2B, -1.855597499801
        SET, KQEM3B,  2.029672289863
        SET, KQEM4B, -1.894033245576
        SET, KQE31B, -0.911483880729
        SET, KQFXL1,  3.973250008086
       !Yuri match (Ef=4.0, KSXU=5.0)
        SET, KQUM4B, -0.522052682614
        SET, KQSX16,  0.386434780667
        SET, KQSX19, -0.894006742269
        SET, KQSX21,  1.22862150816
        SET, KQSX24, -1.251292803834
        SET, KQDSXM, -2.295714281502
        SET, KQUE1B,  0.289647390030
        SET, KQUE2B, -0.006066762022
     !endcomment
     !comment !turn on second wiggler pair and match (chicane and XLEAP wiggler ON)
        SET, SETXLEAP2, 1 !turn on XLEAP chicane and XLEAP wiggler
        SET, R11XL3,  1.098929204922070 ; SET, R11XL4, R11XL3
        SET, R12XL3,  1.719551869522400 ; SET, R12XL4, R12XL3
        SET, R21XL3,  0.120755530037211 ; SET, R21XL4, R21XL3
        SET, R22XL3,  1.098929204922070 ; SET, R22XL4, R22XL3
        SET, R33XL3,  0.904229208659358 ; SET, R33XL4, R33XL3
        SET, R34XL3,  1.611499871655030 ; SET, R34XL4, R34XL3
        SET, R43XL3, -0.113167578486975 ; SET, R43XL4, R43XL3
        SET, R44XL3,  0.904229208659358 ; SET, R44XL4, R44XL3
        SET, KQFXL2,  3.389084494844
        SET, KQE36B,  0.464496912086
        SET, KQUM1B, -1.288258487292
        SET, KQUM2B,  1.041228170092
        SET, KQUM3B,  0.407065056038
        SET, KQUM4B, -0.560689701297
        SET, KQSX16,  0.290640871929
        SET, KQSX19, -0.767829223363
        SET, KQSX21,  1.215779744406
        SET, KQSX24, -1.329281363177
        SET, KQDSXM, -2.35530398789
        SET, KQUE1B,  0.287123287034
        SET, KQUE2B, -0.459677422214E-2
     !endcomment
    ENDSUBROUTINE
 !ENDCOMMENT

  COMMENT
    SETK2XL2 : SUBROUTINE !5 GeV
      SET, Ef, 5.0 ; SET, Eu, Ef
     !comment !turn on first wiggler pair and match (chicane and XLEAP wiggler OFF)
        SET, R11XL1,  1.062946961078510 ; SET, R11XL2, R11XL1
        SET, R12XL1,  1.699791113287200 ; SET, R12XL2, R12XL1
        SET, R21XL1,  0.076395411795580 ; SET, R21XL2, R21XL1
        SET, R22XL1,  1.062946961078510 ; SET, R22XL2, R22XL1
        SET, R33XL1,  0.938346707893913 ; SET, R33XL2, R33XL1
        SET, R34XL1,  1.630639676711440 ; SET, R34XL2, R34XL1
        SET, R43XL1, -0.073287469630119 ; SET, R43XL2, R43XL1
        SET, R44XL1,  0.938346707893913 ; SET, R44XL2, R44XL1
        SET, KQEM2B, -2.142973249297
        SET, KQEM3B,  1.647737152819
        SET, KQEM4B, -1.995037119049
        SET, KQE31B,  0.449342062876
        SET, KQFXL1,  2.403996935928
       !Yuri match (Ef=5.0, KSXU=5.0)
        SET, KQUM4B, -0.577392226859
        SET, KQSX16,  0.537345289645
        SET, KQSX19, -0.919001038802
        SET, KQSX21,  1.149032721175
        SET, KQSX24, -1.149198905131
        SET, KQDSXM, -2.274032862665
        SET, KQUE1B,  0.294640131345
        SET, KQUE2B, -0.039040543319
     !endcomment
     !comment !turn on second wiggler pair and match (chicane and XLEAP wiggler ON)
        SET, SETXLEAP2, 1 !turn on XLEAP chicane and XLEAP wiggler
        SET, R11XL3,  1.062946961078510 ; SET, R11XL4, R11XL3
        SET, R12XL3,  1.699791113287200 ; SET, R12XL4, R12XL3
        SET, R21XL3,  0.076395411795580 ; SET, R21XL4, R21XL3
        SET, R22XL3,  1.062946961078510 ; SET, R22XL4, R22XL3
        SET, R33XL3,  0.938346707893913 ; SET, R33XL4, R33XL3
        SET, R34XL3,  1.630639676711440 ; SET, R34XL4, R34XL3
        SET, R43XL3, -0.073287469630119 ; SET, R43XL4, R43XL3
        SET, R44XL3,  0.938346707893913 ; SET, R44XL4, R44XL3
        SET, KQFXL2,  2.028913100615
        SET, KQE36B,  0.296823732929
        SET, KQUM1B,  0.470161614571
        SET, KQUM2B, -0.895521946436
        SET, KQUM3B,  0.731006631117
        SET, KQUM4B, -0.663851007883
        SET, KQSX16,  0.425985523532
        SET, KQSX19, -0.845890823594
        SET, KQSX21,  1.194038975447
        SET, KQSX24, -1.20312897334
        SET, KQDSXM, -2.214455093268
        SET, KQUE1B,  0.276688999314
        SET, KQUE2B, -0.819338710187E-2
     !endcomment
    ENDSUBROUTINE
  ENDCOMMENT

  COMMENT
    SETK2XL2 : SUBROUTINE !6 GeV
      SET, Ef, 6.0 ; SET, Eu, Ef
     !comment !turn on first wiggler pair and match (chicane and XLEAP wiggler OFF)
        SET, R11XL1,  1.043574947350930 ; SET, R11XL2, R11XL1
        SET, R12XL1,  1.689114560362730 ; SET, R12XL2, R12XL1
        SET, R21XL1,  0.052719142222877 ; SET, R21XL2, R21XL1
        SET, R22XL1,  1.043574947350930 ; SET, R22XL2, R22XL1
        SET, R33XL1,  0.957048925519107 ; SET, R33XL2, R33XL1
        SET, R34XL1,  1.641093188891540 ; SET, R34XL2, R34XL1
        SET, R43XL1, -0.051220341862181 ; SET, R43XL2, R43XL1
        SET, R44XL1,  0.957048925519107 ; SET, R44XL2, R44XL1
        SET, KQEM2B, -2.086763336102
        SET, KQEM3B,  1.312007902964
        SET, KQEM4B, -0.933181570665
        SET, KQE31B,  0.258485548676
        SET, KQFXL1,  1.806104323421
       !Yuri match (Ef=6.0, KSXU=5.0)
        SET, KQUM4B, -0.602392867736
        SET, KQSX16,  0.615336296192
        SET, KQSX19, -0.928947112742
        SET, KQSX21,  1.068847626658
        SET, KQSX24, -1.041727553275
        SET, KQDSXM, -2.192708210169
        SET, KQUE1B,  0.311244605889
        SET, KQUE2B, -0.0881305063
     !endcomment
     !comment !turn on second wiggler pair and match (chicane and XLEAP wiggler ON)
        SET, R11XL3,  1.043574947350930 ; SET, R11XL4, R11XL3
        SET, R12XL3,  1.689114560362730 ; SET, R12XL4, R12XL3
        SET, R21XL3,  0.052719142222877 ; SET, R21XL4, R21XL3
        SET, R22XL3,  1.043574947350930 ; SET, R22XL4, R22XL3
        SET, R33XL3,  0.957048925519107 ; SET, R33XL4, R33XL3
        SET, R34XL3,  1.641093188891540 ; SET, R34XL4, R34XL3
        SET, R43XL3, -0.051220341862181 ; SET, R43XL4, R43XL3
        SET, R44XL3,  0.957048925519107 ; SET, R44XL4, R44XL3
        SET, SETXLEAP2, 1 !turn on XLEAP chicane and XLEAP wiggler
        SET, KQFXL2,  1.347300109414
        SET, KQE36B,  0.295229916889
        SET, KQUM1B,  0.232862504101
        SET, KQUM2B, -0.346147623983
        SET, KQUM3B,  0.631417482569
        SET, KQUM4B, -0.7771256824
        SET, KQSX16,  0.532641841189
        SET, KQSX19, -0.865220359407
        SET, KQSX21,  1.133561342406
        SET, KQSX24, -1.115093081884
        SET, KQDSXM, -2.140462468904
        SET, KQUE1B,  0.305120871802 
        SET, KQUE2B, -0.075603072915
     !endcomment
    ENDSUBROUTINE
  ENDCOMMENT

  COMMENT
    SETK2XL2 : SUBROUTINE !7 GeV
      SET, Ef, 7.0 ; SET, Eu, Ef
     !comment !turn on first wiggler pair and match (chicane and XLEAP wiggler OFF)
        SET, R11XL1,  1.031953140218210 ; SET, R11XL2, R11XL1
        SET, R12XL1,  1.682696500322550 ; SET, R12XL2, R12XL1
        SET, R21XL1,  0.038585260974743 ; SET, R21XL2, R21XL1
        SET, R22XL1,  1.031953140218210 ; SET, R22XL2, R22XL1
        SET, R33XL1,  0.968383610128047 ; SET, R33XL2, R33XL1
        SET, R34XL1,  1.647415637422870 ; SET, R34XL2, R34XL1
        SET, R43XL1, -0.037776249187925 ; SET, R43XL2, R43XL1
        SET, R44XL1,  0.968383610128047 ; SET, R44XL2, R44XL1
        SET, KQEM2B, -1.966460407249
        SET, KQEM3B,  1.149339285652
        SET, KQEM4B, -0.609094273466
        SET, KQE31B,  0.291728304235
        SET, KQFXL1,  1.33582677812
       !Yuri match (Ef=7.0, KSXU=5.0)
        SET, KQUM4B, -0.612553547942
        SET, KQSX16,  0.656531988316
        SET, KQSX19, -0.918397681573
        SET, KQSX21,  0.985606839833
        SET, KQSX24, -0.92622038386
        SET, KQDSXM, -2.040561838231
        SET, KQUE1B,  0.323345951278
        SET, KQUE2B, -0.126793918904
     !endcomment
     !comment !turn on second wiggler pair and match (chicane and XLEAP wiggler ON)
        SET, SETXLEAP2, 1 !turn on XLEAP chicane and XLEAP wiggler
        SET, R11XL3,  1.031953140218210 ; SET, R11XL4, R11XL3
        SET, R12XL3,  1.682696500322550 ; SET, R12XL4, R12XL3
        SET, R21XL3,  0.038585260974743 ; SET, R21XL4, R21XL3
        SET, R22XL3,  1.031953140218210 ; SET, R22XL4, R22XL3
        SET, R33XL3,  0.968383610128047 ; SET, R33XL4, R33XL3
        SET, R34XL3,  1.647415637422870 ; SET, R34XL4, R34XL3
        SET, R43XL3, -0.037776249187925 ; SET, R43XL4, R43XL3
        SET, R44XL3,  0.968383610128047 ; SET, R44XL4, R44XL3
        SET, KQFXL2,  0.954259354436
        SET, KQE36B,  0.223879720714
        SET, KQUM1B,  0.37992474682
        SET, KQUM2B, -0.600721859547
        SET, KQUM3B,  0.601182182909
        SET, KQUM4B, -0.577653054937
        SET, KQSX16,  0.529965207303
        SET, KQSX19, -0.903616279843
        SET, KQSX21,  1.088895212513
        SET, KQSX24, -1.070854350113
        SET, KQDSXM, -2.003920050097
        SET, KQUE1B,  0.321468480252 
        SET, KQUE2B, -0.123151696076
     !endcomment
    ENDSUBROUTINE
  ENDCOMMENT

  COMMENT
    SETK2XL2 : SUBROUTINE !8 GeV
      SET, Ef, 8.0 ; SET, Eu, Ef
     !comment !turn on first wiggler pair and match (chicane and XLEAP wiggler OFF)
        SET, R11XL1,  1.024433796036150 ; SET, R11XL2, R11XL1 
        SET, R12XL1,  1.678538794967410 ; SET, R12XL2, R12XL1 
        SET, R21XL1,  0.029468846719147 ; SET, R21XL2, R21XL1 
        SET, R22XL1,  1.024433796036150 ; SET, R22XL2, R22XL1 
        SET, R33XL1,  0.975763600637818 ; SET, R33XL2, R33XL1 
        SET, R34XL1,  1.651526938083830 ; SET, R34XL2, R34XL1 
        SET, R43XL1, -0.028994619806734 ; SET, R43XL2, R43XL1 
        SET, R44XL1,  0.975763600637818 ; SET, R44XL2, R44XL1 
        SET, KQEM2B, -1.90691592871
        SET, KQEM3B,  1.191623728587
        SET, KQEM4B, -0.664838884251
        SET, KQE31B,  0.230547717948
        SET, KQFXL1,  1.111758049867
       !Yuri match (Ef=8.0, KSXU=5.0)
        SET, KQUM4B, -0.61774146348
        SET, KQSX16,  0.677894017174
        SET, KQSX19, -0.893321229694
        SET, KQSX21,  0.901518123026
        SET, KQSX24, -0.825282828044
        SET, KQDSXM, -1.843482712046
        SET, KQUE1B,  0.325725075565
        SET, KQUE2B, -0.144356640751
     !endcomment
     !comment !turn on second wiggler pair and match (chicane and XLEAP wiggler ON)
        SET, SETXLEAP2, 1 !turn on XLEAP chicane and XLEAP wiggler
        SET, R11XL3,  1.024433796036150 ; SET, R11XL4, R11XL3
        SET, R12XL3,  1.678538794967410 ; SET, R12XL4, R12XL3
        SET, R21XL3,  0.029468846719147 ; SET, R21XL4, R21XL3
        SET, R22XL3,  1.024433796036150 ; SET, R22XL4, R22XL3
        SET, R33XL3,  0.975763600637818 ; SET, R33XL4, R33XL3
        SET, R34XL3,  1.651526938083830 ; SET, R34XL4, R34XL3
        SET, R43XL3, -0.028994619806734 ; SET, R43XL4, R43XL3
        SET, R44XL3,  0.975763600637818 ; SET, R44XL4, R44XL3
        SET, KQFXL2,  0.80795621658
        SET, KQE36B,  0.576286649843E-2
        SET, KQUM1B,  0.421280440634
        SET, KQUM2B, -0.565123338154
        SET, KQUM3B,  0.623837052173
        SET, KQUM4B, -0.626404824474
        SET, KQSX16,  0.539702428378
        SET, KQSX19, -0.839075812772
        SET, KQSX21,  1.009894190449
        SET, KQSX24, -1.013981671812
        SET, KQDSXM, -1.784478916667
        SET, KQUE1B,  0.310926049255
        SET, KQUE2B, -0.110591700418
     !endcomment
    ENDSUBROUTINE
  ENDCOMMENT

  COMMENT
    SETK2XL2 : SUBROUTINE !9 GeV
      SET, Ef, 9.0 ; SET, Eu, Ef
     !comment !turn on first wiggler pair and match (chicane and wiggler OFF)
        SET, R11XL1,  1.019289300836160 ; SET, R11XL2, R11XL1
        SET, R12XL1,  1.675691857965750 ; SET, R12XL2, R12XL1
        SET, R21XL1,  0.023244535451979 ; SET, R21XL2, R21XL1
        SET, R22XL1,  1.019289300836160 ; SET, R22XL2, R22XL1
        SET, R33XL1,  0.980833932870322 ; SET, R33XL2, R33XL1
        SET, R34XL1,  1.654349178842450 ; SET, R34XL2, R34XL1
        SET, R43XL1, -0.022948478238857 ; SET, R43XL2, R43XL1
        SET, R44XL1,  0.980833932870322 ; SET, R44XL2, R44XL1
        SET, KQEM2B, -1.869925264101
        SET, KQEM3B,  1.223473474334
        SET, KQEM4B, -0.762872788064
        SET, KQE31B,  0.314407523713
        SET, KQFXL1,  0.865767364731
       !Yuri match (Ef=9.0, KSXU=5.0)
        SET, KQUM4B, -0.620070539426
        SET, KQSX16,  0.686904936425
        SET, KQSX19, -0.862547903987
        SET, KQSX21,  0.821318329891
        SET, KQSX24, -0.742610254846
        SET, KQDSXM, -1.643834219472
        SET, KQUE1B,  0.318005451435
        SET, KQUE2B, -0.137993505202
     !endcomment
     !comment !turn on second wiggler pair and match (chicane and XLEAP wiggler ON)
        SET, SETXLEAP2, 1 !turn on XLEAP chicane and XLEAP wiggler
        SET, R11XL3,  1.019289300836160 ; SET, R11XL4, R11XL3
        SET, R12XL3,  1.675691857965750 ; SET, R12XL4, R12XL3
        SET, R21XL3,  0.023244535451979 ; SET, R21XL4, R21XL3
        SET, R22XL3,  1.019289300836160 ; SET, R22XL4, R22XL3
        SET, R33XL3,  0.980833932870322 ; SET, R33XL4, R33XL3
        SET, R34XL3,  1.654349178842450 ; SET, R34XL4, R34XL3
        SET, R43XL3, -0.022948478238857 ; SET, R43XL4, R43XL3
        SET, R44XL3,  0.980833932870322 ; SET, R44XL4, R44XL3
        SET, KQFXL2,  0.676092865748
        SET, KQE36B, -0.115195486421
        SET, KQUM1B,  0.445496193551
        SET, KQUM2B, -0.551516458129
        SET, KQUM3B,  0.618784432631
        SET, KQUM4B, -0.624872408649
        SET, KQSX16,  0.548607431728
        SET, KQSX19, -0.815006333033
        SET, KQSX21,  0.944812827688
        SET, KQSX24, -0.922819701132
        SET, KQDSXM, -1.586203481381
        SET, KQUE1B,  0.296269880553 
        SET, KQUE2B, -0.089899461548
     !endcomment
    ENDSUBROUTINE
  ENDCOMMENT

  COMMENT
    SETK2XL2 : SUBROUTINE !10 GeV
      SET, Ef, 10.0 ; SET, Eu, Ef
     !comment !turn on first wiggler pair and match (chicane and wiggler OFF)
        SET, R11XL1,  1.015614828829930 ; SET, R11XL2, R11XL1
        SET, R12XL1,  1.673657241934410 ; SET, R12XL2, R12XL1
        SET, R21XL1,  0.018805212770375 ; SET, R21XL2, R21XL1
        SET, R22XL1,  1.015614828829930 ; SET, R22XL2, R22XL1
        SET, R33XL1,  0.984466024780417 ; SET, R33XL2, R33XL1
        SET, R34XL1,  1.656369682310920 ; SET, R34XL2, R34XL1
        SET, R43XL1, -0.018610969750446 ; SET, R43XL2, R43XL1
        SET, R44XL1,  0.984466024780417 ; SET, R44XL2, R44XL1
        SET, KQEM2B, -1.844949572743
        SET, KQEM3B,  1.253752374149
        SET, KQEM4B, -0.801695737186
        SET, KQE31B,  0.259681460234
        SET, KQFXL1,  0.771217575894
       !Yuri match (Ef=10.0, KSXU=5.0)
        SET, KQUM4B, -0.620550775736
        SET, KQSX16,  0.687744906904
        SET, KQSX19, -0.829520512329
        SET, KQSX21,  0.747580051633
        SET, KQSX24, -0.674907978729
        SET, KQDSXM, -1.490999997513
        SET, KQUE1B,  0.302231833894
        SET, KQUE2B, -0.111425150391
     !endcomment
     !comment !turn on second wiggler pair and match (chicane and XLEAP wiggler ON)
        SET, SETXLEAP2, 1 !turn on XLEAP chicane and XLEAP wiggler
        SET, R11XL3,  1.015614828829930 ; SET, R11XL4, R11XL3
        SET, R12XL3,  1.673657241934410 ; SET, R12XL4, R12XL3
        SET, R21XL3,  0.018805212770375 ; SET, R21XL4, R21XL3
        SET, R22XL3,  1.015614828829930 ; SET, R22XL4, R22XL3
        SET, R33XL3,  0.984466024780417 ; SET, R33XL4, R33XL3
        SET, R34XL3,  1.656369682310920 ; SET, R34XL4, R34XL3
        SET, R43XL3, -0.018610969750446 ; SET, R43XL4, R43XL3
        SET, R44XL3,  0.984466024780417 ; SET, R44XL4, R44XL3
        SET, KQFXL2,  0.560671458918
        SET, KQE36B, -0.174487700478
        SET, KQUM1B,  0.456142334525
        SET, KQUM2B, -0.543717103234
        SET, KQUM3B,  0.616773367803
        SET, KQUM4B, -0.62490556008
        SET, KQSX16,  0.5465354403
        SET, KQSX19, -0.784574259726
        SET, KQSX21,  0.884535481464
        SET, KQSX24, -0.850997100567
        SET, KQDSXM, -1.427583133238
        SET, KQUE1B,  0.284692708939 
        SET, KQUE2B, -0.076124961797
     !endcomment
    ENDSUBROUTINE
  ENDCOMMENT

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

! SXR from SC linac (XLEAP-II)

  ASSIGN, PRINT="LCLS2scS-XL2.print"
  BEAM, ENERGY=Ei
  SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF
  USE, SC_SXRi
  SAVEBETA, TWXL, VBOUTB
  TWISS, BETA0=TWSSi
  BEAM, ENERGY=Ef
  SETK2XL2
  USE, SC_SXRi, RANGE=VBOUTB/#E
  PRINT, FULL
  TWISS, SAVE, &
    BETX=TWXL[BETX], ALFX=TWXL[ALFX], &
    BETY=TWXL[BETY], ALFY=TWXL[ALFY], &
    TAPE="LCLS2scS-XL2_twiss.tape" !, RTAPE="LCLS2scS-XL2_rmat.tape"
  PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
    STYLE=100, SPLINE, RANGE=#S/DU7S[31], FILE="LCLS2scS-XL2", &
    TITLE="XLEAP-II (from SC linac): LTUS-UNDS"
  PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, &
    STYLE=100, SPLINE, RANGE=DU7S[26]/#E, FILE="LCLS2scS-XL2", &
    TITLE="XLEAP-II (from SC linac): DMPS"

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

  RETURN
  
