Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F7877729
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
49 KB
Subscribers
None
View Options
Index: branches/Kmatrix_reloaded/src/omega/src/targets_Kmatrix.ml
===================================================================
--- branches/Kmatrix_reloaded/src/omega/src/targets_Kmatrix.ml (revision 4404)
+++ branches/Kmatrix_reloaded/src/omega/src/targets_Kmatrix.ml (revision 4405)
@@ -1,640 +1,597 @@
(* $Id$
Copyright (C) 1999-2012 by
Wolfgang Kilian <kilian@physik.uni-siegen.de>
Thorsten Ohl <ohl@physik.uni-wuerzburg.de>
Juergen Reuter <juergen.reuter@physik.uni-freiburg.de>
Christian Speckner <christian.speckner@physik.uni-freiburg.de>
WHIZARD is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
WHIZARD is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *)
let rcs_file = RCS.parse "Targets_Kmatrix" ["K-Matrix Support routines"]
{ RCS.revision = "$Revision$";
RCS.date = "$Date$";
RCS.author = "$Author$";
RCS.source
= "$URL$" }
module Fortran =
struct
open Format
let nl = print_newline
(* Special functions for the K matrix approach. This might be generalized
to other functions that have to have access to the parameters and
coupling constants. At the moment, this is hardcoded. *)
let print pure_functions =
let pure =
if pure_functions then
"pure "
else
"" in
printf " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; nl ();
printf " !!! Special K matrix functions"; nl ();
printf " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; nl ();
nl();
printf " %sfunction width_res (z,res,w_wkm,m,g) result (w)" pure; nl ();
printf " real(kind=default), intent(in) :: z, w_wkm, m, g"; nl ();
printf " integer, intent(in) :: res"; nl ();
printf " real(kind=default) :: w"; nl ();
printf " if (z.eq.0) then"; nl ();
printf " w = 0"; nl ();
printf " else"; nl ();
printf " if (w_wkm.eq.0) then"; nl ();
printf " select case (res)"; nl ();
printf " case (1) !!! Scalar isosinglet"; nl ();
- printf " w = 3.*g**2/32./PI * m**3/vev**2"; nl ();
+ printf " w = 3.*g**2/32./Pi * m**3/vev**2"; nl ();
printf " case (2) !!! Scalar isoquintet"; nl ();
- printf " w = g**2/64./PI * m**3/vev**2"; nl ();
+ printf " w = g**2/64./Pi * m**3/vev**2"; nl ();
printf " case (3) !!! Vector isotriplet"; nl ();
- printf " w = g**2/48./PI * m"; nl ();
+ printf " w = g**2/48./Pi * m"; nl ();
printf " case (4) !!! Tensor isosinglet"; nl ();
- printf " w = g**2/320./PI * m**3/vev**2"; nl ();
+ printf " w = g**2/320./Pi * m**3/vev**2"; nl ();
printf " case (5) !!! Tensor isoquintet"; nl ();
- printf " w = 3.*g**2/1920./PI * m**3/vev**2"; nl ();
+ printf " w = g**2/1920./Pi * m**3/vev**2"; nl ();
printf " case default"; nl ();
printf " w = 0"; nl ();
printf " end select"; nl ();
printf " else"; nl ();
printf " w = w_wkm"; nl ();
printf " end if"; nl ();
printf " end if"; nl ();
printf " end function width_res"; nl ();
nl ();
printf " %sfunction s0stu (s, m) result (s0)" pure; nl ();
printf " real(kind=default), intent(in) :: s, m"; nl ();
printf " real(kind=default) :: s0"; nl ();
printf " if (m.ge.1.0e08) then"; nl ();
printf " s0 = 0"; nl ();
printf " else"; nl ();
printf " s0 = m**2 - s/2 + m**4/s * log(m**2/(s+m**2))"; nl ();
printf " end if"; nl ();
printf " end function s0stu"; nl();
nl ();
printf " %sfunction s1stu (s, m) result (s1)" pure; nl ();
printf " real(kind=default), intent(in) :: s, m"; nl ();
printf " real(kind=default) :: s1"; nl ();
printf " if (m.ge.1.0e08) then"; nl ();
printf " s1 = 0"; nl ();
printf " else"; nl ();
printf " s1 = 2*m**4/s + s/6 + m**4/s**2*(2*m**2+s) &"; nl();
printf " * log(m**2/(s+m**2))"; nl ();
printf " end if"; nl ();
printf " end function s1stu"; nl();
nl ();
printf " %sfunction s2stu (s, m) result (s2)" pure; nl ();
printf " real(kind=default), intent(in) :: s, m"; nl ();
printf " real(kind=default) :: s2"; nl ();
printf " if (m.ge.1.0e08) then"; nl ();
printf " s2 = 0"; nl ();
printf " else"; nl ();
printf " s2 = m**4/s**2 * (6*m**2 + 3*s) + &"; nl();
printf " m**4/s**3 * (6*m**4 + 6*m**2*s + s**2) &"; nl();
printf " * log(m**2/(s+m**2))"; nl ();
printf " end if"; nl ();
printf " end function s2stu"; nl();
nl ();
printf " !! %sfunction s3stu (s, m) result (s3)" pure; nl ();
printf " !! real(kind=default), intent(in) :: s, m"; nl ();
printf " !! real(kind=default) :: s3"; nl ();
printf " !! if (m.ge.1.0e08) then"; nl ();
printf " !! s3 = 0"; nl ();
printf " !! else"; nl ();
printf " !! s3 = m**4/s**3 * (60*m**4 + 60*m**2*s+11*s**2) + &"; nl();
printf " !! m**4/s**4 *(2*m**2+s) (10*m**4 + 10*m**2*s + s**2) &"; nl();
printf " !! * log(m**2/(s+m**2))"; nl ();
printf " !! end if"; nl ();
printf " !! end function s3stu"; nl();
nl ();
printf " %sfunction p0stu (s, m) result (p0)" pure; nl ();
printf " real(kind=default), intent(in) :: s, m"; nl ();
printf " real(kind=default) :: p0"; nl ();
printf " if (m.ge.1.0e08) then"; nl ();
printf " p0 = 0"; nl ();
printf " else"; nl ();
printf " p0 = 1 + (2*s+m**2)*log(m**2/(s+m**2))/s"; nl ();
printf " end if"; nl ();
printf " end function p0stu"; nl();
nl ();
printf " %sfunction p1stu (s, m) result (p1)" pure; nl ();
printf " real(kind=default), intent(in) :: s, m"; nl ();
printf " real(kind=default) :: p1"; nl ();
printf " if (m.ge.1.0e08) then"; nl ();
printf " p1 = 0"; nl ();
printf " else"; nl ();
printf " p1 = (m**2 + 2*s)/s**2 * (2*s+(2*m**2+s) &"; nl();
printf " * log(m**2/(s+m**2)))"; nl ();
printf " end if"; nl ();
printf " end function p1stu"; nl();
nl ();
printf " %sfunction d0stu (s, m) result (d0)" pure; nl ();
printf " real(kind=default), intent(in) :: s, m"; nl ();
printf " real(kind=default) :: d0"; nl ();
printf " if (m.ge.1.0e08) then"; nl ();
printf " d0 = 0"; nl ();
printf " else"; nl ();
printf " d0 = (2*m**2+11*s)/2 + (m**4+6*m**2*s+6*s**2) &"; nl();
printf " /s * log(m**2/(s+m**2))"; nl ();
printf " end if"; nl ();
printf " end function d0stu"; nl();
nl ();
printf " %sfunction d1stu (s, m) result (d1)" pure; nl ();
printf " real(kind=default), intent(in) :: s, m"; nl ();
printf " real(kind=default) :: d1"; nl ();
printf " if (m.ge.1.0e08) then"; nl ();
printf " d1 = 0"; nl ();
printf " else"; nl ();
printf " d1 = (s*(12*m**4 + 72*m**2*s + 73*s**2) &"; nl();
printf " + 6*(2*m**2 + s)*(m**4 + 6*m**2*s + 6*s**2) &"; nl();
printf " * log(m**2/(s+m**2)))/6/s**2"; nl ();
printf " end if"; nl ();
printf " end function d1stu"; nl();
nl ();
printf " %sfunction da00 (cc, s, m) result (amp_00)" pure; nl ();
printf " real(kind=default), intent(in) :: s"; nl ();
printf " real(kind=default), dimension(1:8), intent(in) :: cc"; nl ();
printf " real(kind=default), dimension(1:5), intent(in) :: m"; nl ();
printf " complex(kind=default) :: a00_0, a00_1, a00_a, a00_f"; nl ();
printf " complex(kind=default), dimension(1:7) :: a00"; nl ();
printf " complex(kind=default) :: ii, jj, amp_00"; nl ();
- printf " complex(kind=default) :: kappal, kappam, kappat"; nl ();
+ printf " real(kind=default) :: kappal, kappam, kappat"; nl ();
printf " ii = cmplx(0.0,1.0/32.0/Pi,default)"; nl ();
printf " jj = s**2/vev**4*ii"; nl ();
printf " kappal = cc(8)*((mass(23)**2+mass(24)**2)/m(4)**2-2*mass(23)**2*mass(24)**2/m(4)**4)"; nl ();
printf " kappam = cc(8)*((mass(23)**4+mass(24)**4)/m(4)**2/(mass(23)**2+mass(24)**2) &"; nl ();
printf " - 2*mass(23)**2*mass(24)**2/m(4)**4)"; nl ();
printf " kappat = cc(8)*mass(23)**2*mass(24)**2/m(4)**4"; nl ();
printf " !!! Longitudinal"; nl ();
printf " !!! Scalar isosinglet"; nl ();
printf " a00(1) = -2.0 * cc(1)**2/vev**2 * s0stu(s,m(1)) "; nl ();
- printf " if (fudge_km.ne.0) then"; nl ();
- printf " a00(1) = a00(1) - 3.0*cc(1)**2/vev**2 * s**2/(s-m(1)**2) "; nl ();
- printf " else"; nl ();
- printf " a00(1) = a00(1) - 3.0*cc(1)**2/vev**2 * &"; nl ();
- printf " s**2/cmplx(s-m(1)**2,m(1)*width_res(w_res,1,wkm(1),m(1),cc(1)),default) "; nl ();
- printf " end if"; nl();
+ printf " a00(1) = a00(1) - 3.0*cc(1)**2/vev**2 * &"; nl ();
+ printf " s**2/cmplx(s-m(1)**2,s**2/m(1)**3*width_res(w_res,1,wkm(1),m(1),cc(1)),default) "; nl ();
printf " !!! Scalar isoquintet"; nl ();
printf " a00(2) = -5.0*cc(2)**2/vev**2 * s0stu(s,m(2)) / 3.0"; nl ();
printf " !!! Vector isotriplet"; nl ();
printf " a00(3) = -cc(3)**2*(4.0*p0stu(s,m(3)) + 6.0*s/m(3)**2)"; nl ();
printf " !!! Tensor isosinglet"; nl ();
printf " a00(4) = -cc(4)**2/vev**2/3 * (d0stu(s,m(4)) &"; nl ();
printf " - 2*kappal*s0stu(s,m(4)))"; nl ();
- printf " if (fudge_km /= 0) then"; nl ();
- printf " a00(4) = a00(4) - cc(4)**2/vev**2*kappal * s**2/(s-m(4)**2)"; nl ();
- printf " else"; nl ();
- printf " a00(4) = a00(4) - cc(4)**2/vev**2*kappal * &"; nl ();
- printf " s**2/cmplx(s-m(4)**2,m(4)* width_res(w_res,4,wkm(4),m(4),cc(4)),default)"; nl ();
- printf " end if"; nl ();
+ printf " a00(4) = a00(4) - cc(4)**2/vev**2*kappal * &"; nl ();
+ printf " s**2/cmplx(s-m(4)**2,s**2/m(4)**3*10*kappal* width_res(w_res,4,wkm(4),m(4),cc(4)),default)"; nl ();
printf " !!! Tensor isoquintet"; nl ();
printf " a00(5) = -5.0*cc(5)**2/vev**2*(d0stu(s,m(5)) &"; nl ();
printf " /3.0)/6.0"; nl ();
printf " !!! Transversal"; nl ();
printf " !!! Tensor isosinglet"; nl ();
- printf " a00(6) = -cc(6)**2/Pi/vev**6*mass(23)**2*mass(24)**2/12 * (s0stu(s,m(4)) &"; nl ();
- printf " * (3*(1+2*s/m(4)**2+2*s**2/m(4)**4)+kappat ))"; nl ();
- printf " if (fudge_km /= 0) then"; nl ();
- printf " a00(6) = a00(6) - cc(6)**2/Pi/vev**6*mass(23)**2*mass(24)**2/4* s**2/(s-m(4)**2) &"; nl ();
+ printf " a00(6) = - cc(6)**2/Pi/vev**6*mass(23)**2*mass(24)**2/4* s**2 &"; nl ();
printf " * ((2-2*s/m(4)**2+s**2/m(4)**4)+kappat/2 )"; nl ();
- printf " else"; nl ();
- printf " a00(6) = a00(6) - cc(6)**2/Pi/vev**6*mass(23)**2*mass(24)**2/4 * &"; nl ();
- printf " s**2/cmplx(s-m(4)**2,m(4)* width_res(w_res,4,wkm(4),m(4),cc(4)),default) &"; nl ();
- printf " * ((2-2*s/m(4)**2+s**2/m(4)**4)+kappat/2 )"; nl ();
- printf " end if"; nl ();
+ printf " a00(6) = a00(6)/cmplx(s-m(4)**2, - w_res/32/Pi * realpart(a00(6)),default) "; nl ();
+ printf " a00(6) = a00(6) - cc(6)**2/Pi/vev**6*mass(23)**2*mass(24)**2/12 * (s0stu(s,m(4)) &"; nl ();
+ printf " * (3*(1+2*s/m(4)**2+2*s**2/m(4)**4)+kappat ))"; nl ();
printf " !!! Mixed"; nl ();
printf " !!! Tensor isosinglet"; nl ();
- printf " a00(7) = -cc(7)*cc(6)*cc(4)/Pi/vev**4*(mass(23)**2+mass(24)**2)/12 * (s0stu(s,m(4)) &"; nl ();
+ printf " a00(7) = - cc(7)*cc(6)*cc(4)/Pi/vev**4*(mass(23)**2+mass(24)**2)/4 * s**2 &"; nl ();
+ printf " * ((1-4*s/m(4)**2+2*s**2/m(4)**4)+kappam )"; nl ();
+ printf " a00(7) = a00(7)/cmplx(s-m(4)**2, - w_res/32/Pi * realpart(a00(7)),default) "; nl ();
+ printf " a00(7) = a00(7) - cc(7)*cc(6)*cc(4)/Pi/vev**4*(mass(23)**2+mass(24)**2)/12 * (s0stu(s,m(4)) &"; nl ();
printf " * (12*s/m(4)**2+12*s**2/m(4)**4+2*kappam ))"; nl ();
- printf " if (fudge_km /= 0) then"; nl ();
- printf " a00(7) = a00(7) - cc(7)*cc(6)*cc(4)/Pi/vev**4*(mass(23)**2+mass(24)**2)/4 &"; nl ();
- printf " * s**2/(s-m(4)**2) &"; nl ();
- printf " * ((1-4*s/m(4)**2+2*s**2/m(4)**4)+kappam )"; nl ();
- printf " else"; nl ();
- printf " a00(7) = a00(7) - cc(7)*cc(6)*cc(4)/Pi/vev**4*(mass(23)**2+mass(24)**2)/4 &"; nl ();
- printf " * s**2/cmplx(s-m(4)**2,m(4)* width_res(w_res,4,wkm(4),m(4),cc(4)),default) &"; nl ();
- printf " * ((1-4*s/m(4)**2+2*s**2/m(4)**4)+kappam )"; nl ();
- printf " end if"; nl ();
printf " !!! Fudge-Higgs"; nl ();
printf " a00_f = 2.*fudge_higgs*s/vev**2"; nl ();
printf " a00_f = a00_f !!! - 0*5.*(1-ghvva)**2/vev**2*mass(25)**2"; nl ();
printf " !!! Low energy theory alphas"; nl ();
printf " a00_0 = 8.*(7.*a4 + 11.*a5)/3.*s**2/vev**4"; nl ();
printf " a00_1 = (25.*log(lam_reg**2/s)/9 + 11./54.0_default)*s**2/vev**4"; nl ();
printf " a00_a = a00_0 !!! + a00_1/16./Pi**2"; nl ();
printf " !!! Unitarize"; nl ();
printf " if (fudge_km /= 0) then"; nl ();
printf " amp_00 = sum(a00)+a00_f+a00_a"; nl();
printf " if (amp_00 /= 0) then"; nl ();
printf " amp_00 = - a00_a - a00_f+ 1/(realpart(1/amp_00)-ii)"; nl();
printf " end if"; nl ();
printf " else"; nl ();
printf " amp_00 = sum(a00)+a00_f"; nl ();
printf " end if"; nl ();
printf " amp_00 = vev**4/s**2 * amp_00"; nl ();
printf " end function da00"; nl();
nl ();
printf " %sfunction da02 (cc, s, m) result (amp_02)" pure; nl ();
printf " real(kind=default), intent(in) :: s"; nl ();
printf " real(kind=default), dimension(1:8), intent(in) :: cc"; nl ();
printf " real(kind=default), dimension(1:5), intent(in) :: m"; nl ();
printf " complex(kind=default) :: a02_0, a02_1, a02_a"; nl ();
printf " complex(kind=default), dimension(1:7) :: a02"; nl ();
printf " complex(kind=default) :: ii, jj, amp_02"; nl ();
printf " real(kind=default) :: kappal, kappam, kappat"; nl ();
printf " ii = cmplx(0.0,1.0/32.0/Pi,default)"; nl ();
printf " jj = s**2/vev**4*ii"; nl ();
printf " kappal = cc(8)*((mass(23)**2+mass(24)**2)/m(4)**2-2*mass(23)**2*mass(24)**2/m(4)**4)"; nl ();
printf " kappam = cc(8)*((mass(23)**4+mass(24)**4)/m(4)**2/(mass(23)**2+mass(24)**2) &"; nl ();
printf " - 2*mass(23)**2*mass(24)**2/m(4)**4)"; nl ();
printf " kappat = cc(8)*mass(23)**2*mass(24)**2/m(4)**4"; nl ();
printf " !!! Longitudinal"; nl ();
printf " !!! Scalar isosinglet"; nl ();
printf " a02(1) = -2.0*cc(1)**2/vev**2 * s2stu(s,m(1))"; nl ();
printf " !!! Scalar isoquintet"; nl ();
printf " a02(2) = -5.0*cc(2)**2/vev**2 * s2stu(s,m(2)) / 3.0"; nl ();
printf " !!! Vector isotriplet"; nl ();
printf " a02(3) = -4.0*cc(3)**2*(2*s+m(3)**2)*s2stu(s,m(3))/m(3)**4"; nl ();
printf " !!! Tensor isosinglet"; nl ();
printf " a02(4) = - cc(4)**2/vev**2/3 * &"; nl ();
printf " ((1.+6.*s/m(4)**2+6.*s**2/m(4)**4)-2*kappal) * s2stu(s,m(4))"; nl ();
- printf " if (fudge_km /= 0) then"; nl ();
- printf " a02(4) = a02(4) - cc(4)**2/vev**2/10. * s**2/(s-m(4)**2)"; nl ();
- printf " else"; nl ();
- printf " a02(4) = a02(4) - cc(4)**2/vev**2/10. &"; nl ();
- printf " * s**2/cmplx(s-m(4)**2,m(4)* width_res(w_res,4,wkm(4),m(4),cc(4)),default)"; nl ();
- printf " end if"; nl ();
+ printf " a02(4) = a02(4) - cc(4)**2/vev**2/10. &"; nl ();
+ printf " * s**2/cmplx(s-m(4)**2,width_res(w_res,4,wkm(4),m(4),cc(4)),default)*s**2/m(4)**3"; nl ();
printf " !!! Tensor isoquintet"; nl ();
printf " a02(5) = -cc(5)**2/vev**2*(5.0*(1.0+6.0* &"; nl ();
printf " s/m(5)**2+6.0*s**2/m(5)**4)*s2stu(s,m(5))/3.0 &"; nl ();
printf " )/6.0"; nl ();
printf " !!! Transversal"; nl ();
printf " !!! Tensor isosinglet"; nl ();
- printf " a02(6) = -cc(6)**2/Pi/vev**6*mass(23)**2*mass(24)**2/12 * (s2stu(s,m(4)) &"; nl ();
+ printf " a02(6) = - cc(6)**2/Pi/vev**6*mass(23)**2*mass(24)**2/40* s**2"; nl ();
+ printf " a02(6) = a02(6)/cmplx(s-m(4)**2, - w_res/32/Pi * realpart(a02(6)),default) "; nl ();
+ printf " a02(6) = a02(6) - cc(6)**2/Pi/vev**6*mass(23)**2*mass(24)**2/12 * (s2stu(s,m(4)) &"; nl ();
printf " * (3*(1+2*s/m(4)**2+2*s**2/m(4)**4)+kappat ))"; nl ();
- printf " if (fudge_km /= 0) then"; nl ();
- printf " a02(6) = a02(6) - cc(6)**2/Pi/vev**6*mass(23)**2*mass(24)**2/40* s**2/(s-m(4)**2)"; nl ();
- printf " else"; nl ();
- printf " a02(6) = a02(6) - cc(6)**2/Pi/vev**6*mass(23)**2*mass(24)**2/40 &"; nl ();
- printf " * s**2/cmplx(s-m(4)**2,m(4)* width_res(w_res,4,wkm(4),m(4),cc(4)),default) "; nl ();
- printf " end if"; nl ();
printf " !!! Mixed"; nl ();
printf " !!! Tensor isosinglet"; nl ();
- printf " a02(7) = -cc(7)*cc(6)*cc(4)/Pi/vev**4*(mass(23)**2+mass(24)**2)/12 * (s2stu(s,m(4)) &"; nl ();
+ printf " a02(7) = - cc(7)*cc(6)*cc(4)/Pi/vev**4*(mass(23)**2+mass(24)**2)/20 &"; nl ();
+ printf " * s**2"; nl ();
+ printf " a02(7) = a02(7)/cmplx(s-m(4)**2, - w_res/32/Pi * realpart(a02(7)),default) "; nl ();
+ printf " a02(7) = a02(7) - cc(7)*cc(6)*cc(4)/Pi/vev**4*(mass(23)**2+mass(24)**2)/12 * (s2stu(s,m(4)) &"; nl ();
printf " * (12*s/m(4)**2+12*s**2/m(4)**4+2*kappam ))"; nl ();
- printf " if (fudge_km /= 0) then"; nl ();
- printf " a02(7) = a02(7) - cc(7)*cc(6)*cc(4)/Pi/vev**4*(mass(23)**2+mass(24)**2)/20 &"; nl ();
- printf " * s**2/(s-m(4)**2)"; nl ();
- printf " else"; nl ();
- printf " a02(7) = a02(7) - cc(7)*cc(6)*cc(4)/Pi/vev**4*(mass(23)**2+mass(24)**2)/20 &"; nl ();
- printf " * s**2/cmplx(s-m(4)**2,m(4)* width_res(w_res,4,wkm(4),m(4),cc(4)),default) "; nl ();
- printf " end if"; nl ();
printf " !!! Low energy theory alphas"; nl ();
printf " a02_0 = (8.*(2.*a4 + a5)/15.) * s**2/vev**4"; nl ();
printf " a02_1 = (log(lam_reg**2/s)/9. - 7./135.0_default) * s**2/vev**4"; nl ();
printf " a02_a = a02_0 !!! + a02_1/16/Pi**2"; nl ();
printf " !!! Unitarize"; nl ();
printf " if (fudge_km /= 0) then"; nl ();
printf " amp_02 = sum(a02)+a02_a"; nl();
printf " if (amp_02 /= 0) then"; nl ();
printf " amp_02 = - a02_a + 1/(realpart(1/amp_02)-ii)"; nl();
printf " end if"; nl ();
printf " else"; nl ();
printf " amp_02 = sum(a02)"; nl ();
printf " end if"; nl ();
printf " amp_02 = vev**4/s**2 * amp_02"; nl ();
printf " end function da02"; nl();
nl ();
printf " %sfunction da11 (cc, s, m) result (amp_11)" pure; nl ();
printf " real(kind=default), intent(in) :: s"; nl ();
printf " real(kind=default), dimension(1:8), intent(in) :: cc"; nl ();
printf " real(kind=default), dimension(1:5), intent(in) :: m"; nl ();
printf " complex(kind=default) :: a11_0, a11_1, a11_a, a11_f"; nl ();
printf " complex(kind=default), dimension(1:7) :: a11"; nl ();
printf " complex(kind=default) :: ii, jj, amp_11"; nl ();
printf " real(kind=default) :: kappal, kappam, kappat"; nl ();
printf " ii = cmplx(0.0,1.0/32.0/Pi,default)"; nl ();
printf " jj = s**2/vev**4*ii"; nl ();
printf " kappal = cc(8)*((mass(23)**2+mass(24)**2)/m(4)**2-2*mass(23)**2*mass(24)**2/m(4)**4)"; nl ();
printf " kappam = cc(8)*((mass(23)**4+mass(24)**4)/m(4)**2/(mass(23)**2+mass(24)**2) &"; nl ();
printf " - 2*mass(23)**2*mass(24)**2/m(4)**4)"; nl ();
printf " kappat = cc(8)*mass(23)**2*mass(24)**2/m(4)**4"; nl ();
printf " !!! Longitudinal"; nl ();
printf " !!! Scalar isosinglet"; nl ();
printf " a11(1) = - 2.0*cc(1)**2/vev**2 * s1stu(s,m(1))"; nl ();
printf " !!! Scalar isoquintet"; nl ();
printf " a11(2) = 5.0*cc(2)**2/vev**2 * s1stu(s,m(2)) / 6.0"; nl ();
printf " !!! Vector isotriplet"; nl ();
printf " a11(3) = - cc(3)**2 * &"; nl ();
printf " (s/m(3)**2 + 2. * p1stu(s,m(3)))"; nl ();
- printf " if (fudge_km /= 0) then"; nl ();
- printf " a11(3) = a11(3) -2./3. * cc(3)**2 * s/(s-m(3)**2) "; nl ();
- printf " else"; nl ();
- printf " a11(3) = a11(3) -2./3. * cc(3)**2 * &"; nl ();
- printf " s/cmplx(s-m(3)**2,m(3)*width_res(w_res,3,wkm(3),m(3),cc(3)),default) "; nl ();
- printf " end if"; nl ();
+ printf " a11(3) = a11(3) -2./3. * cc(3)**2 * &"; nl ();
+ printf " s/cmplx(s-m(3)**2,s/m(3)*width_res(w_res,3,wkm(3),m(3),cc(3)),default) "; nl ();
printf " !!! Tensor isosinglet"; nl ();
printf " a11(4) = - cc(4)**2/vev**2*(d1stu(s,m(4)-2*kappal*s1stu(s,m(4))) &"; nl ();
printf " /3.0)"; nl ();
printf " !!! Tensor isoquintet"; nl ();
printf " a11(5) = 5.0*cc(5)**2/vev**2*(d1stu(s,m(5)) &"; nl ();
printf " )/36.0"; nl ();
printf " !!! Transversal"; nl ();
printf " !!! Tensor isosinglet"; nl ();
printf " a11(6) = -cc(6)**2/Pi/vev**6*mass(23)**2*mass(24)**2/12 * (s1stu(s,m(4)) * &"; nl ();
printf " (3*(1+2*s/m(4)**2+2*s**2/m(4)**4)+kappat ) - (s/m(4)**2+s**2/m(4)**4)*s)"; nl ();
printf " !!! Mixed"; nl ();
printf " !!! Tensor isosinglet"; nl ();
printf " a11(7) = -cc(7)*cc(6)*cc(4)/Pi/vev**4*(mass(23)**2+mass(24)**2)/12 * (s1stu(s,m(4)) &"; nl ();
printf " * (12*s/m(4)**2+12*s**2/m(4)**4+2*kappam ) - 2*(s/m(4)**2+s**2/m(4)**4)*s)"; nl ();
printf " !!! Fudge-Higgs"; nl ();
printf " a11_f = fudge_higgs*s/3./vev**2"; nl ();
printf " !!! Low energy theory alphas"; nl ();
printf " a11_0 = 4.*(a4 - 2*a5)/3. * s**2/vev**4 "; nl ();
printf " a11_1 = - 1.0/54.0_default * s**2/vev**4"; nl ();
printf " a11_a = a11_0 !!! + a11_1/16/Pi**2"; nl ();
printf " !!! Unitarize"; nl ();
printf " if (fudge_km /= 0) then"; nl ();
printf " amp_11 = sum(a11)+a11_f+a11_a"; nl();
printf " if (amp_11 /= 0) then"; nl ();
printf " amp_11 = - a11_a - a11_f + 1/(realpart(1/amp_11)-ii)"; nl();
printf " end if"; nl ();
printf " else"; nl ();
printf " amp_11 = sum(a11)+a11_f"; nl ();
printf " end if"; nl ();
printf " amp_11 = vev**4/s**2 * amp_11"; nl ();
printf " end function da11"; nl();
nl ();
printf " %sfunction da20 (cc, s, m) result (amp_20)" pure; nl ();
printf " real(kind=default), intent(in) :: s"; nl ();
printf " real(kind=default), dimension(1:8), intent(in) :: cc"; nl ();
printf " real(kind=default), dimension(1:5), intent(in) :: m"; nl ();
printf " complex(kind=default) :: a20_0, a20_1, a20_a, a20_f"; nl ();
printf " complex(kind=default), dimension(1:7) :: a20"; nl ();
printf " complex(kind=default) :: ii, jj, amp_20"; nl ();
printf " real(kind=default) :: kappal, kappam, kappat"; nl ();
printf " ii = cmplx(0.0,1.0/32.0/Pi,default)"; nl ();
printf " jj = s**2/vev**4*ii"; nl ();
printf " !!! Scalar isosinglet"; nl ();
printf " kappal = cc(8)*((mass(23)**2+mass(24)**2)/m(4)**2-2*mass(23)**2*mass(24)**2/m(4)**4)"; nl ();
printf " kappam = cc(8)*((mass(23)**4+mass(24)**4)/m(4)**2/(mass(23)**2+mass(24)**2) &"; nl ();
printf " - 2*mass(23)**2*mass(24)**2/m(4)**4)"; nl ();
printf " kappat = cc(8)*mass(23)**2*mass(24)**2/m(4)**4"; nl ();
printf " !!! Longitudinal"; nl ();
printf " a20(1) = -2.0*cc(1)**2/vev**2 * s0stu(s,m(1))"; nl ();
printf " !!! Scalar isoquintet"; nl ();
printf " a20(2) = - cc(2)**2/vev**2/6. * s0stu(s,m(2))"; nl ();
- printf " if (fudge_km /= 0) then"; nl ();
- printf " a20(2) = a20(2) - cc(2)**2/vev**2/2. * s**2/(s-m(2)**2)"; nl ();
- printf " else"; nl ();
- printf " a20(2) = a20(2) - cc(2)**2/vev**2/2. *&"; nl ();
- printf " s**2/cmplx(s-m(2)**2,m(2)*width_res(w_res,2,wkm(2),m(2),cc(2)),default)"; nl ();
- printf " end if"; nl ();
+ printf " a20(2) = a20(2) - cc(2)**2/vev**2/2. *&"; nl ();
+ printf " s**2/cmplx(s-m(2)**2,s**2/m(2)**3*width_res(w_res,2,wkm(2),m(2),cc(2)),default)"; nl ();
printf " !!! Vector isotriplet"; nl ();
printf " a20(3) = cc(3)**2*(2.0*p0stu(s,m(3)) + 3.0*s/m(3)**2)"; nl ();
printf " !!! Tensor isosinglet"; nl ();
printf " a20(4) = - cc(4)**2/vev**2*(d0stu(s,m(4)-2*kappal*s0stu(s,m(4))) &"; nl ();
printf " /3.0)"; nl ();
printf " !!! Tensor isoquintet"; nl ();
printf " a20(5) = - cc(5)**2/vev**2*(d0stu(s,m(5)) &"; nl ();
printf " )/36.0"; nl ();
printf " !!! Transversal"; nl ();
printf " !!! Tensor isosinglet"; nl ();
printf " a20(6) = -cc(6)**2/Pi/vev**6*mass(23)**2*mass(24)**2/12 * (s0stu(s,m(4)) &"; nl ();
printf " * (3*(1+2*s/m(4)**2+2*s**2/m(4)**4)+kappat ) - 3*(s/m(4)**2-s**2/m(4)**4)*s)"; nl ();
printf " !!! Mixed"; nl ();
printf " !!! Tensor isosinglet"; nl ();
printf " a20(7) = -cc(7)*cc(6)*cc(4)/Pi/vev**4*(mass(23)**2+mass(24)**2)/12 * (s0stu(s,m(4)) &"; nl ();
printf " * (12*s/m(4)**2+12*s**2/m(4)**4+2*kappam ) - 6*(s/m(4)**2-s**2/m(4)**4)*s)"; nl ();
printf " !!! Fudge-Higgs"; nl ();
printf " a20_f = - fudge_higgs*s/vev**2"; nl ();
printf " a20_f = a20_f - 0*2*(1-ghvva)**2/vev**2*mass(25)**2"; nl ();
printf " !!! Low energy theory alphas"; nl ();
printf " a20_0 = 16*(2*a4 + a5)/3*s**2/vev**4"; nl ();
printf " a20_1 = (10*log(lam_reg**2/s)/9 + 25/108.0_default) * s**2/vev**4"; nl ();
printf " a20_a = a20_0 !!! + a20_1/16/Pi**2"; nl ();
printf " !!! Unitarize"; nl ();
printf " if (fudge_km /= 0) then"; nl ();
printf " amp_20 = sum(a20)+a20_f+a20_a"; nl();
printf " if (amp_20 /= 0) then"; nl ();
printf " amp_20 = - a20_a - a20_f + 1/(realpart(1/amp_20)-ii)"; nl();
printf " end if"; nl ();
printf " else"; nl ();
printf " amp_20 = sum(a20)+a20_f"; nl ();
printf " end if"; nl ();
printf " amp_20 = vev**4/s**2 * amp_20"; nl ();
printf " end function da20"; nl();
nl ();
printf " %sfunction da22 (cc, s, m) result (amp_22)" pure; nl ();
printf " real(kind=default), intent(in) :: s"; nl ();
printf " real(kind=default), dimension(1:8), intent(in) :: cc"; nl ();
printf " real(kind=default), dimension(1:5), intent(in) :: m"; nl ();
printf " complex(kind=default) :: a22_0, a22_1, a22_a, a22_r"; nl ();
printf " complex(kind=default), dimension(1:7) :: a22"; nl ();
printf " complex(kind=default) :: ii, jj, amp_22"; nl ();
printf " real(kind=default) :: kappal, kappam, kappat"; nl ();
printf " ii = cmplx(0.0,1.0/32.0/Pi,default)"; nl ();
printf " jj = s**2/vev**4*ii"; nl ();
printf " kappal = cc(8)*((mass(23)**2+mass(24)**2)/m(4)**2-2*mass(23)**2*mass(24)**2/m(4)**4)"; nl ();
printf " kappam = cc(8)*((mass(23)**4+mass(24)**4)/m(4)**2/(mass(23)**2+mass(24)**2) &"; nl ();
printf " - 2*mass(23)**2*mass(24)**2/m(4)**4)"; nl ();
printf " kappat = cc(8)*mass(23)**2*mass(24)**2/m(4)**4"; nl ();
printf " !!! Longitudinal"; nl ();
printf " !!! Scalar isosinglet"; nl ();
printf " a22(1) = - 2.0*cc(1)**2/vev**2 * s2stu(s,m(1))"; nl ();
printf " !!! Scalar isoquintet"; nl ();
printf " a22(2) = - cc(2)**2/vev**2 * s2stu(s,m(2)) / 6.0"; nl ();
printf " !!! Vector triplet"; nl ();
printf " a22(3) = 2.0*cc(3)**2*(2*s+m(3)**2)*s2stu(s,m(3))/m(3)**4"; nl ();
printf " !!! Tensor isosinglet"; nl ();
printf " a22(4) = - cc(4)**2/vev**2*((1.0 + 6.0*s/m(4)**2 &"; nl ();
printf " +6.0*s**2/m(4)**4-2*kappal)*s2stu(s,m(4))/3.0)"; nl ();
printf " !!! Tensor isoquintet"; nl ();
printf " a22(5) = - cc(5)**2/vev**2/36. * &"; nl ();
printf " ((1.+6.*s/m(5)**2+6.*s**2/m(5)**4 ) &"; nl ();
printf " * s2stu(s,m(5)))"; nl ();
- printf " if (fudge_km /= 0) then"; nl ();
- printf " a22(5) = a22(5) - cc(5)**2/vev**2/60 * s**2/(s-m(5)**2)"; nl ();
- printf " else"; nl ();
- printf " a22(5) = a22(5) - cc(5)**2/vev**2/60 * &"; nl ();
- printf " s**2/cmplx(s-m(5)**2,m(5)*width_res(w_res,5,wkm(5),m(5),cc(5)),default)"; nl ();
- printf " end if"; nl ();
+ printf " a22(5) = a22(5) - cc(5)**2/vev**2/60 * &"; nl ();
+ printf " s**2/cmplx(s-m(5)**2,s**2/m(5)**3*width_res(w_res,5,wkm(5),m(5),cc(5)),default)"; nl ();
printf " a22(6) = -cc(6)**2/Pi/vev**6*mass(23)**2*mass(24)**2/12 * (s2stu(s,m(4)) &"; nl ();
printf " * (3*(1+2*s/m(4)**2+2*s**2/m(4)**4)+kappat ))"; nl ();
printf " !!! Mixed"; nl ();
printf " !!! Tensor isosinglet"; nl ();
printf " a22(7) = -cc(7)*cc(6)*cc(4)/Pi/vev**4*(mass(23)**2+mass(24)**2)/12 * (s2stu(s,m(4)) &"; nl ();
printf " * (12*s/m(4)**2+12*s**2/m(4)**4+2*kappam ))"; nl ();
printf " !!! Low energy theory alphas"; nl ();
printf " a22_0 = 4*(a4 + 2*a5)/15*s**2/vev**4 "; nl ();
printf " a22_1 = (2*log(lam_reg**2/s)/45 - 247/5400.0_default)*s**2/vev**4"; nl ();
printf " a22_a = a22_0 !!! + a22_1/16/Pi**2"; nl ();
printf " !!! Unitarize"; nl ();
printf " if (fudge_km /= 0) then"; nl ();
printf " amp_22 = sum(a22)+a22_a"; nl();
printf " if (amp_22 /= 0) then"; nl ();
printf " amp_22 = - a22_a + 1/(realpart(1/amp_22)-ii)"; nl();
printf " end if"; nl ();
printf " else"; nl ();
printf " amp_22 = sum(a22)"; nl ();
printf " end if"; nl ();
printf " amp_22 = vev**4/s**2 * amp_22"; nl ();
printf " end function da22"; nl();
nl ();
printf " %sfunction dalzz0_s (cc,m,k) result (alzz0_s)" pure; nl ();
printf " type(momentum), intent(in) :: k"; nl ();
printf " real(kind=default), dimension(1:8), intent(in) :: cc"; nl ();
printf " real(kind=default), dimension(1:5), intent(in) :: m"; nl ();
printf " complex(kind=default) :: alzz0_s"; nl ();
printf " real(kind=default) :: s"; nl ();
printf " s = k*k"; nl ();
printf " alzz0_s = 2*g**4/costhw**2*((da00(cc,s,m) &"; nl ();
printf " - da20(cc,s,m))/24 &"; nl ();
printf " - (5.)*(da02(cc,s,m) - da22(cc,s,m))/12)"; nl ();
printf " end function dalzz0_s"; nl ();
nl ();
printf " %sfunction dalzz0_t (cc,m,k) result (alzz0_t)" pure; nl ();
printf " type(momentum), intent(in) :: k"; nl ();
printf " real(kind=default), dimension(1:8), intent(in) :: cc"; nl ();
printf " real(kind=default), dimension(1:5), intent(in) :: m"; nl ();
printf " complex(kind=default) :: alzz0_t"; nl ();
printf " real(kind=default) :: s"; nl ();
printf " s = k*k"; nl ();
printf " alzz0_t = (5.)*g**4/costhw**2*(da02(cc,s,m) - &"; nl ();
printf " da22(cc,s,m))/4"; nl ();
printf " end function dalzz0_t"; nl ();
nl ();
printf " %sfunction dalzz1_s (cc,m,k) result (alzz1_s)" pure; nl ();
printf " type(momentum), intent(in) :: k"; nl ();
printf " real(kind=default), dimension(1:8), intent(in) :: cc"; nl ();
printf " real(kind=default), dimension(1:5), intent(in) :: m"; nl ();
printf " complex(kind=default) :: alzz1_s"; nl ();
printf " real(kind=default) :: s"; nl ();
printf " s = k*k"; nl ();
printf " alzz1_s = g**4/costhw**2*(da20(cc,s,m)/8 &"; nl ();
printf " - (5.)*da22(cc,s,m)/4)"; nl ();
printf " end function dalzz1_s"; nl ();
nl ();
printf " %sfunction dalzz1_t (cc,m,k) result (alzz1_t)" pure; nl ();
printf " type(momentum), intent(in) :: k"; nl ();
printf " real(kind=default), dimension(1:8), intent(in) :: cc"; nl ();
printf " real(kind=default), dimension(1:5), intent(in) :: m"; nl ();
printf " complex(kind=default) :: alzz1_t"; nl ();
printf " real(kind=default) :: s"; nl ();
printf " s = k*k"; nl ();
printf " alzz1_t = g**4/costhw**2*(- (3.)*da11(cc,s,m)/8 &"; nl ();
printf " + 3*(5.)*da22(cc,s,m)/8)"; nl ();
printf " end function dalzz1_t"; nl ();
nl ();
printf " %sfunction dalzz1_u (cc,m,k) result (alzz1_u)" pure; nl ();
printf " type(momentum), intent(in) :: k"; nl ();
printf " real(kind=default), dimension(1:8), intent(in) :: cc"; nl ();
printf " real(kind=default), dimension(1:5), intent(in) :: m"; nl ();
printf " complex(kind=default) :: alzz1_u"; nl ();
printf " real(kind=default) :: s"; nl ();
printf " s = k*k"; nl ();
printf " alzz1_u = g**4/costhw**2*((3.)*da11(cc,s,m)/8 &"; nl ();
printf " + 3*(5.)*da22(cc,s,m)/8)"; nl ();
printf " end function dalzz1_u"; nl ();
nl ();
printf " %sfunction dalww0_s (cc,m,k) result (alww0_s)" pure; nl ();
printf " type(momentum), intent(in) :: k"; nl ();
printf " real(kind=default), dimension(1:8), intent(in) :: cc"; nl ();
printf " real(kind=default), dimension(1:5), intent(in) :: m"; nl ();
printf " complex(kind=default) :: alww0_s"; nl ();
printf " real(kind=default) :: s"; nl ();
printf " s = k*k"; nl ();
printf " alww0_s = g**4*((2*da00(cc,s,m) + da20(cc,s,m))/24 &"; nl ();
printf " - (5.)*(2*da02(cc,s,m) + da22(cc,s,m))/12)"; nl ();
printf " end function dalww0_s"; nl ();
nl ();
printf " %sfunction dalww0_t (cc,m,k) result (alww0_t)" pure; nl ();
printf " type(momentum), intent(in) :: k"; nl ();
printf " real(kind=default), dimension(1:8), intent(in) :: cc"; nl ();
printf " real(kind=default), dimension(1:5), intent(in) :: m"; nl ();
printf " complex(kind=default) :: alww0_t"; nl ();
printf " real(kind=default) :: s"; nl ();
printf " s = k*k"; nl ();
printf " alww0_t = g**4*(2*(5.)*da02(cc,s,m) - (3.)*da11(cc,s,m) &"; nl ();
printf " + (5.)*da22(cc,s,m))/8"; nl ();
printf " end function dalww0_t"; nl ();
nl ();
printf " %sfunction dalww0_u (cc,m,k) result (alww0_u)" pure; nl ();
printf " type(momentum), intent(in) :: k"; nl ();
printf " real(kind=default), dimension(1:8), intent(in) :: cc"; nl ();
printf " real(kind=default), dimension(1:5), intent(in) :: m"; nl ();
printf " complex(kind=default) :: alww0_u"; nl ();
printf " real(kind=default) :: s"; nl ();
printf " s = k*k"; nl ();
printf " alww0_u = g**4*(2*(5.)*da02(cc,s,m) + (3.)*da11(cc,s,m) &"; nl ();
printf " + (5.)*da22(cc,s,m))/8"; nl ();
printf " end function dalww0_u"; nl ();
nl ();
printf " %sfunction dalww2_s (cc,m,k) result (alww2_s)" pure; nl ();
printf " type(momentum), intent(in) :: k"; nl ();
printf " real(kind=default), dimension(1:8), intent(in) :: cc"; nl ();
printf " real(kind=default), dimension(1:5), intent(in) :: m"; nl ();
printf " complex(kind=default) :: alww2_s"; nl ();
printf " real(kind=default) :: s"; nl ();
printf " s = k*k"; nl ();
printf " alww2_s = g**4*(da20(cc,s,m) - 2*(5.)*da22(cc,s,m))/4 "; nl ();
printf " end function dalww2_s"; nl ();
nl ();
printf " %sfunction dalww2_t (cc,m,k) result (alww2_t)" pure; nl ();
printf " type(momentum), intent(in) :: k"; nl ();
printf " real(kind=default), dimension(1:8), intent(in) :: cc"; nl ();
printf " real(kind=default), dimension(1:5), intent(in) :: m"; nl ();
printf " complex(kind=default) :: alww2_t"; nl ();
printf " real(kind=default) :: s"; nl ();
printf " s = k*k"; nl ();
printf " alww2_t = 3*(5.)*g**4*da22(cc,s,m)/4"; nl ();
printf " end function dalww2_t"; nl ();
nl ();
printf " %sfunction dalz4_s (cc,m,k) result (alz4_s)" pure; nl ();
printf " type(momentum), intent(in) :: k"; nl ();
printf " real(kind=default), dimension(1:8), intent(in) :: cc"; nl ();
printf " real(kind=default), dimension(1:5), intent(in) :: m"; nl ();
printf " complex(kind=default) :: alz4_s"; nl ();
printf " real(kind=default) :: s"; nl ();
printf " s = k*k"; nl ();
printf " alz4_s = g**4/costhw**4*((da00(cc,s,m) &"; nl ();
printf " + 2*da20(cc,s,m))/12 &"; nl ();
printf " - (5.)*(da02(cc,s,m)+2*da22(cc,s,m))/6)"; nl ();
printf " end function dalz4_s"; nl ();
nl ();
printf " @[<5>";
printf " %sfunction dalz4_t (cc,m,k) result (alz4_t)" pure; nl ();
printf " type(momentum), intent(in) :: k"; nl ();
printf " real(kind=default), dimension(1:8), intent(in) :: cc"; nl ();
printf " real(kind=default), dimension(1:5), intent(in) :: m"; nl ();
printf " complex(kind=default) :: alz4_t"; nl ();
printf " real(kind=default) :: s"; nl ();
printf " s = k*k"; nl ();
printf " alz4_t = g**4/costhw**4*(5.)*(da02(cc,s,m) &"; nl ();
printf " + 2*da22(cc,s,m))/4"; nl ();
printf " end function dalz4_t"; nl ();
nl ();
end
(*i
* Local Variables:
* mode:caml
* indent-tabs-mode:nil
* page-delimiter:"^(\\* .*\n"
* End:
i*)
Index: branches/Kmatrix_reloaded/share/models/SM_km.mdl
===================================================================
--- branches/Kmatrix_reloaded/share/models/SM_km.mdl (revision 4404)
+++ branches/Kmatrix_reloaded/share/models/SM_km.mdl (revision 4405)
@@ -1,275 +1,275 @@
########################################################################
# Standard Model (unitary gauge) with anomalous couplings,
# CKM matrix and K-Matrix unitarization
# Default Higgs mass is very large
model "SM_km"
# Independent parameters
### DO NOT CHANGE THE ORDER OF THESE PARAMETERS
parameter GF = 1.16639E-5 # Fermi constant
parameter mZ = 91.1882 # Z-boson mass
parameter mW = 80.419 # W-boson mass
parameter mH = 1.E10 # Higgs mass
parameter alphas = 0.1178 # Strong coupling constant (Z point)
parameter me = 0.000511 # electron mass
parameter mmu = 0.1057 # muon mass
parameter mtau = 1.777 # tau-lepton mass
parameter ms = 0.12 # s-quark mass
parameter mc = 1.25 # c-quark mass
parameter mb = 4.2 # b-quark mass
parameter mtop = 174 # t-quark mass
parameter wtop = 1.523 # t-quark width
parameter wZ = 2.443 # Z-boson width
parameter wW = 2.049 # W-boson width
parameter wH = 0 # Higgs width
parameter xi0 = 0 # R_xi parameter for Z-boson
parameter xipm = 0 # R_xi parameter for W-boson
parameter a4 = 0 # Coefficient of L4
parameter a5 = 0 # Coefficient of L5
parameter a6 = 0 # Coefficient of L6
parameter a7 = 0 # Coefficient of L7
parameter a10 = 0 # Coefficient of L10
parameter mkm_s = 1.E10 # Mass for scalar isoscalar resonance
parameter mkm_p = 1.E10 # Mass for scalar isotensor resonance
parameter mkm_r = 1.E10 # Mass for vector isovector resonance
parameter mkm_f = 1.E10 # Mass for tensor isotensor resonance
parameter mkm_t = 1.E10 # Mass for tensor isotensor resonance
parameter gkm_s = 0 # Coupling for scalar isoscalar resonance
parameter gkm_p = 0 # Coupling for scalar isotensor resonance
parameter gkm_r = 0 # Coupling for vector isovector resonance
parameter gkm_f = 0 # Coupling for longitudinal terms of tensor isoscalar resonance
parameter gkm_t = 0 # Coupling for tensor isotensor resonance
parameter wkm_s = 0 # Width for scalar isoscalar resonance
parameter wkm_p = 0 # Width for scalar isotensor resonance
parameter wkm_r = 0 # Width for vector isovector resonance
parameter wkm_f = 0 # Width for tensor isotensor resonance
parameter wkm_t = 0 # Width for tensor isotensor resonance
parameter g1a = 1 # anomalous TGC
parameter g1z = 1 # anomalous TGC
parameter g4a = 0 # anomalous TGC
parameter g4z = 0 # anomalous TGC
parameter g5a = 0 # anomalous TGC
parameter g5z = 0 # anomalous TGC
parameter ka = 1 # anomalous TGC
parameter kz = 1 # anomalous TGC
parameter la = 0 # anomalous TGC
parameter lz = 0 # anomalous TGC
parameter k5a = 0 # anomalous TGC
parameter k5z = 0 # anomalous TGC
parameter l5a = 0 # anomalous TGC
parameter l5z = 0 # anomalous TGC
parameter mreg = 1000 # regulator mass for one-loop correction
parameter fhig = 0 # fudge factor for the lowest order K matrix
# regularization of the Higgs boson
parameter fkm = 1 # fudge factor to switch K matrix unitarization
# for resonances on or off
-parameter wres = 0 # switch for resonance widths without K matrix
+parameter wres = 1 # switch for resonance widths without K matrix
parameter gkm_ft = 0 # Coupling for transversal terms of tensor isoscalar resonance
parameter gkm_fm = 1 # Coupling for mixed terms of tensor isoscalar resonance
parameter fkappa = 1 # kappa Term for tensor isoscalar resonance
# Dependent parameters
derived v = 1 / sqrt (sqrt (2.) * GF) # v (Higgs vev)
derived cw = mW / mZ # cos(theta-W)
derived sw = sqrt (1-cw**2) # sin(theta-W)
derived ee = 2 * sw * mW / v # em-coupling (GF scheme)
derived alpha_em_i = 4 * pi / ee**2 # inverse fine structure const
########################################################################
# Particle content
# The quarks
particle D_QUARK 1 parton
spin 1/2 charge -1/3 isospin -1/2 color 3
name d down
anti dbar D "d~"
tex_anti "\bar{d}"
particle U_QUARK 2 parton
spin 1/2 charge 2/3 isospin 1/2 color 3
name u up
anti ubar U "u~"
tex_anti "\bar{u}"
particle S_QUARK 3 like D_QUARK
name s strange
anti sbar S "s~"
tex_anti "\bar{s}"
mass ms
particle C_QUARK 4 like U_QUARK
name c charm
anti cbar C "c~"
tex_anti "\bar{c}"
mass mc
particle B_QUARK 5 like D_QUARK
name b bottom
anti bbar B "b~"
tex_anti "\bar{b}"
mass mb
particle T_QUARK 6 like U_QUARK
name t top
anti tbar T "t~"
tex_anti "\bar{t}"
mass mtop width wtop
# The leptons
particle E_LEPTON 11
spin 1/2 charge -1 isospin -1/2
name "e-" e1 electron e
anti "e+" E1 positron
tex_name "e^-"
tex_anti "e^+"
mass me
particle E_NEUTRINO 12 left
spin 1/2 isospin 1/2
name nue n1 "nu_e" ve "e-neutrino"
anti nuebar N1 "ve~"
tex_name "\nu_e"
tex_anti "\bar\nu_e"
particle MU_LEPTON 13 like E_LEPTON
name "mu-" e2 mu muon
anti "mu+" E2
tex_name "\mu^-"
tex_anti "\mu^+"
mass mmu
particle MU_NEUTRINO 14 like E_NEUTRINO
name numu "nu_mu" n2 vm "mu-neutrino"
anti numubar N2 "vm~"
tex_name "\nu_\mu"
tex_anti "\bar\nu_\mu"
particle TAU_LEPTON 15 like E_LEPTON
name "tau-" e3 tau "ta-" tauon
anti "tau+" E3 "ta+"
tex_name "\tau^-"
tex_anti "\tau^+"
mass mtau
particle TAU_NEUTRINO 16 like E_NEUTRINO
name nutau "nu_tau" n3 vt "tau_neutrino"
anti nutaubar N3 "vt~"
tex_name "\nu_\tau"
tex_anti "\bar\nu_\tau"
# The vector bosons
particle GLUON 21 parton gauge
spin 1 color 8
name gl g G gluon
particle PHOTON 22 gauge
spin 1
name A gamma photon
tex_name "\gamma"
particle Z_BOSON 23 gauge
spin 1
name Z
mass mZ width wZ
particle W_BOSON 24 gauge
spin 1 charge 1
name "W+" Wp
anti "W-" Wm
tex_name "W^+"
tex_anti "W^-"
mass mW width wW
# The Higgs
particle HIGGS 25
spin 0
name H h Higgs
mass mH width wH
# Hadrons
particle PROTON 2212
spin 1/2 charge 1
name p "p+"
anti pbar "p-"
particle HADRON_REMNANT 90
particle HADRON_REMNANT_SINGLET 91
particle HADRON_REMNANT_TRIPLET 92
color 3
particle HADRON_REMNANT_OCTET 93
color 8
########################################################################
# Vertices of the Standard model with anomalous couplings
# In graphs with identical structure, the first vertex is kept for phase space,
# therefore, lighter particles come before heavier ones.
#
# Note: The electric charge has opposite sign compared to SM.mdl
# QED
vertex D d A
vertex U u A
vertex S s A
vertex C c A
vertex B b A
vertex T t A
vertex E1 e1 A
vertex E2 e2 A
vertex E3 e3 A
# QCD
vertex G G G
vertex D d G
vertex U u G
vertex S s G
vertex C c G
vertex B b G
vertex T t G
# Neutral currents
vertex D d Z
vertex U u Z
vertex S s Z
vertex C c Z
vertex B b Z
vertex T t Z
vertex E1 e1 Z
vertex E2 e2 Z
vertex E3 e3 Z
vertex N1 n1 Z
vertex N2 n2 Z
vertex N3 n3 Z
# Charged currents
vertex U d Wp
vertex C s Wp
vertex T b Wp
vertex D u Wm
vertex S c Wm
vertex B t Wm
vertex N1 e1 Wp
vertex N2 e2 Wp
vertex N3 e3 Wp
vertex E1 n1 Wm
vertex E2 n2 Wm
vertex E3 n3 Wm
# Vector-boson self-interactions
vertex A Wm Wp
vertex Wm Wp Z
vertex A A Wm Wp
vertex A Wm Wp Z
vertex Wm Wm Wp Wp
vertex Wm Wp Z Z
vertex Z Z Z Z
# Higgs - vector boson
vertex H Wp Wm
vertex H Z Z
vertex H H Z Z
vertex H H Wp Wm
# Higgs self-interactions
vertex H H H
vertex H H H H
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Tue, Nov 19, 4:20 PM (1 d, 13 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3805120
Default Alt Text
(49 KB)
Attached To
rWHIZARDSVN whizardsvn
Event Timeline
Log In to Comment