@@ -745,11 +745,14 @@ M.sbend_kick = \el,m,lw -> M.curex_kick(el,m,lw,true) ; --
745
745
746
746
-- TKT [INTER_STREX] ----------------------------------------------------------o
747
747
748
- function M.rbend_thick_new (elm, m, lw) -- [SPAR] -- checked
748
+
749
+ local function rbend_thick_new (elm, m, lw) -- [SPAR] -- checked
749
750
m.atdebug(elm, m, lw, 'rbend_thick:0')
750
751
751
752
local el, eld, knl, beam, T in m
752
- local ld, k0 = (eld or el)*lw, knl[1]/abs(el)
753
+ -- local ld, k0 = (eld or el)*lw, knl[1]/abs(el)
754
+ local l, ld, k0 = el*lw, (eld or el)*lw, knl[1]/abs(eld)
755
+ local lw = (el/eld)*lw
753
756
local beta, k0q, k0lq = beam.beta, k0*beam.charge, knl[1]*lw*beam.charge
754
757
755
758
for i=1,m.npar do
@@ -766,11 +769,12 @@ function M.rbend_thick_new (elm, m, lw) -- [SPAR] --
766
769
local xi = px*_ptt
767
770
local zeta = npx*_ptt
768
771
local xtd = xi*sqrt(1-zeta^2) + zeta*sqrt(1-xi^2)
769
- local xt = ld *(2*px - k0lq)*_ptt^2 / xtd
772
+ local xt = l *(2*px - k0lq)*_ptt^2 / xtd
770
773
local dxs = asinc(xt*k0q)*xt
771
774
775
+ -- MAD.dbg()
772
776
-- eq. 129 in Forest06 with modif. from Sagan
773
- m[i].x = x + ld *(2*px - k0lq) / (pz+pzs)
777
+ m[i].x = x + l *(2*px - k0lq) / (pz+pzs)
774
778
m[i].px = npx
775
779
m[i].y = y + dxs*py
776
780
m[i].t = t - dxs*(1/beta+pt) + (1-T)*ld/beta
@@ -779,11 +783,12 @@ function M.rbend_thick_new (elm, m, lw) -- [SPAR] --
779
783
m.atdebug(elm, m, lw, 'rbend_thick:1')
780
784
end
781
785
782
- function M.rbend_thick (elm, m, lw) -- [SPAR] -- checked
786
+ local function rbend_thick_old (elm, m, lw) -- [SPAR] -- checked
783
787
m.atdebug(elm, m, lw, 'rbend_thick:0')
784
788
785
789
local el, eld, knl, beam, T in m
786
- local ld, k0 = (eld or el)*lw, knl[1]/abs(el)
790
+ local ld, k0 = (eld or el)*lw, knl[1]/abs(eld)
791
+ local lw = (el/eld)*lw
787
792
local beta, k0q, k0lq = beam.beta, k0*beam.charge, knl[1]*lw*beam.charge
788
793
789
794
for i=1,m.npar do
@@ -809,7 +814,14 @@ function M.rbend_thick (elm, m, lw) -- [SPAR] --
809
814
m.atdebug(elm, m, lw, 'rbend_thick:1')
810
815
end
811
816
812
- M.rbend_kick = \el,m,lw -> M.strex_kick(el,m,lw,true) -- checked
817
+ if new_bend_thick then
818
+ M.rbend_thick = rbend_thick_new
819
+ else
820
+ M.rbend_thick = rbend_thick_old
821
+ end
822
+
823
+ M.rbend_strex = \el,m,lw -> M.strex_kick(el,m,(m.el/m.eld)*lw)
824
+ M.rbend_kick = \el,m,lw -> M.strex_kick(el,m,lw,true) -- checked
813
825
814
826
-- TKT [INTER_TKTF] -----------------------------------------------------------o
815
827
0 commit comments