From c40f4c443e6a010dfb30e75a875c10a42cdedf86 Mon Sep 17 00:00:00 2001
From: Hannah van der Schyf <hvanders@cern.ch>
Date: Tue, 20 Jun 2023 15:07:10 +0200
Subject: [PATCH] Request to add UFO which has been previously merged but was
 python 2 and not python 3. Has been updated to python will be used to produce
 samples for my QT>

---
 HAHM_variableMW_v3_UFO_QT1.txt                |   4 +
 HAHM_variableMW_v3_UFO_QT1/__init__.py        |  50 ++
 HAHM_variableMW_v3_UFO_QT1/coupling_orders.py |  24 +
 HAHM_variableMW_v3_UFO_QT1/couplings.py       | 347 +++++++++
 HAHM_variableMW_v3_UFO_QT1/decays.py          | 105 +++
 .../function_library.py                       |  71 ++
 HAHM_variableMW_v3_UFO_QT1/lorentz.py         |  98 +++
 HAHM_variableMW_v3_UFO_QT1/object_library.py  | 377 +++++++++
 HAHM_variableMW_v3_UFO_QT1/parameters.py      | 523 +++++++++++++
 HAHM_variableMW_v3_UFO_QT1/particles.py       | 299 ++++++++
 HAHM_variableMW_v3_UFO_QT1/propagators.py     |  35 +
 HAHM_variableMW_v3_UFO_QT1/vertices.py        | 713 ++++++++++++++++++
 .../write_param_card.py                       | 182 +++++
 model_list.txt                                |   6 +
 14 files changed, 2834 insertions(+)
 create mode 100644 HAHM_variableMW_v3_UFO_QT1.txt
 create mode 100644 HAHM_variableMW_v3_UFO_QT1/__init__.py
 create mode 100644 HAHM_variableMW_v3_UFO_QT1/coupling_orders.py
 create mode 100644 HAHM_variableMW_v3_UFO_QT1/couplings.py
 create mode 100644 HAHM_variableMW_v3_UFO_QT1/decays.py
 create mode 100644 HAHM_variableMW_v3_UFO_QT1/function_library.py
 create mode 100644 HAHM_variableMW_v3_UFO_QT1/lorentz.py
 create mode 100644 HAHM_variableMW_v3_UFO_QT1/object_library.py
 create mode 100644 HAHM_variableMW_v3_UFO_QT1/parameters.py
 create mode 100644 HAHM_variableMW_v3_UFO_QT1/particles.py
 create mode 100644 HAHM_variableMW_v3_UFO_QT1/propagators.py
 create mode 100644 HAHM_variableMW_v3_UFO_QT1/vertices.py
 create mode 100755 HAHM_variableMW_v3_UFO_QT1/write_param_card.py

diff --git a/HAHM_variableMW_v3_UFO_QT1.txt b/HAHM_variableMW_v3_UFO_QT1.txt
new file mode 100644
index 00000000..d5183770
--- /dev/null
+++ b/HAHM_variableMW_v3_UFO_QT1.txt
@@ -0,0 +1,4 @@
+Requestor: Hannah van der Schyf
+Content: Hidden Abelian Higgs Model
+JIRA: https://its.cern.ch/jira/browse/ATR-27184
+Source: https://gitlab.cern.ch/atlas-generators-team/MadGraphModels/-/tree/main/HAHM_variableMW_v3_UFO
\ No newline at end of file
diff --git a/HAHM_variableMW_v3_UFO_QT1/__init__.py b/HAHM_variableMW_v3_UFO_QT1/__init__.py
new file mode 100644
index 00000000..903e2ed1
--- /dev/null
+++ b/HAHM_variableMW_v3_UFO_QT1/__init__.py
@@ -0,0 +1,50 @@
+import function_library 
+import object_library 
+
+import particles
+import couplings
+import lorentz
+import parameters
+import vertices
+import coupling_orders
+import write_param_card
+import propagators
+
+
+all_particles = particles.all_particles
+all_vertices = vertices.all_vertices
+all_couplings = couplings.all_couplings
+all_lorentz = lorentz.all_lorentz
+all_parameters = parameters.all_parameters
+all_orders = coupling_orders.all_orders
+all_functions = function_library.all_functions
+all_propagators = propagators.all_propagators
+
+try:
+   import decays
+except ImportError:
+   pass
+else:
+   all_decays = decays.all_decays
+
+try:
+   import form_factors
+except ImportError:
+   pass
+else:
+   all_form_factors = form_factors.all_form_factors
+
+try:
+   import CT_vertices
+except ImportError:
+   pass
+else:
+   all_CTvertices = CT_vertices.all_CTvertices
+
+
+gauge = [0]
+
+
+__author__ = "C. Duhr, David Curtin"
+__date__ = "02. 06. 2009"
+__version__= "1.5"
diff --git a/HAHM_variableMW_v3_UFO_QT1/coupling_orders.py b/HAHM_variableMW_v3_UFO_QT1/coupling_orders.py
new file mode 100644
index 00000000..6783df0c
--- /dev/null
+++ b/HAHM_variableMW_v3_UFO_QT1/coupling_orders.py
@@ -0,0 +1,24 @@
+# This file was automatically created by FeynRules 2.0.23
+# Mathematica version: 9.0 for Mac OS X x86 (64-bit) (November 20, 2012)
+# Date: Sat 20 Sep 2014 16:11:37
+
+
+from object_library import all_orders, CouplingOrder
+
+
+HIG = CouplingOrder(name = 'HIG',
+                    expansion_order = 99,
+                    hierarchy = 1)
+
+HIW = CouplingOrder(name = 'HIW',
+                    expansion_order = 99,
+                    hierarchy = 1)
+
+QCD = CouplingOrder(name = 'QCD',
+                    expansion_order = 99,
+                    hierarchy = 1)
+
+QED = CouplingOrder(name = 'QED',
+                    expansion_order = 99,
+                    hierarchy = 1)
+
diff --git a/HAHM_variableMW_v3_UFO_QT1/couplings.py b/HAHM_variableMW_v3_UFO_QT1/couplings.py
new file mode 100644
index 00000000..590119d1
--- /dev/null
+++ b/HAHM_variableMW_v3_UFO_QT1/couplings.py
@@ -0,0 +1,347 @@
+# This file was automatically created by FeynRules 2.0.23
+# Mathematica version: 9.0 for Mac OS X x86 (64-bit) (November 20, 2012)
+# Date: Sat 20 Sep 2014 16:11:37
+
+
+from object_library import all_couplings, Coupling
+
+from function_library import complexconjugate, re, im, csc, sec, acsc, asec, cot
+
+
+
+GC_1 = Coupling(name = 'GC_1',
+                value = '-(AH*ch*complex(0,1))',
+                order = {'HIW':1})
+
+GC_2 = Coupling(name = 'GC_2',
+                value = '-(ee*complex(0,1))/3.',
+                order = {'QED':1})
+
+GC_3 = Coupling(name = 'GC_3',
+                value = '(2*ee*complex(0,1))/3.',
+                order = {'QED':1})
+
+GC_4 = Coupling(name = 'GC_4',
+                value = '-(ee*complex(0,1))',
+                order = {'QED':1})
+
+GC_5 = Coupling(name = 'GC_5',
+                value = '-G',
+                order = {'QCD':1})
+
+GC_6 = Coupling(name = 'GC_6',
+                value = 'complex(0,1)*G',
+                order = {'QCD':1})
+
+GC_7 = Coupling(name = 'GC_7',
+                value = 'complex(0,1)*G**2',
+                order = {'QCD':2})
+
+GC_8 = Coupling(name = 'GC_8',
+                value = '-(ch*complex(0,1)*GH)',
+                order = {'HIG':1})
+
+GC_9 = Coupling(name = 'GC_9',
+                value = '-(ch*G*GH)',
+                order = {'HIG':1,'QCD':1})
+
+GC_10 = Coupling(name = 'GC_10',
+                 value = 'ch*complex(0,1)*G**2*GH',
+                 order = {'HIG':1,'QCD':2})
+
+GC_11 = Coupling(name = 'GC_11',
+                 value = 'ca*cw*complex(0,1)*gw',
+                 order = {'QED':1})
+
+GC_12 = Coupling(name = 'GC_12',
+                 value = '-(complex(0,1)*gw**2)',
+                 order = {'QED':2})
+
+GC_13 = Coupling(name = 'GC_13',
+                 value = 'ca**2*cw**2*complex(0,1)*gw**2',
+                 order = {'QED':2})
+
+GC_14 = Coupling(name = 'GC_14',
+                 value = '-(cw*complex(0,1)*gw*sa)',
+                 order = {'QED':1})
+
+GC_15 = Coupling(name = 'GC_15',
+                 value = '-(ca*cw**2*complex(0,1)*gw**2*sa)',
+                 order = {'QED':2})
+
+GC_16 = Coupling(name = 'GC_16',
+                 value = 'cw**2*complex(0,1)*gw**2*sa**2',
+                 order = {'QED':2})
+
+GC_17 = Coupling(name = 'GC_17',
+                 value = '-(AH*complex(0,1)*sh)',
+                 order = {'HIW':1})
+
+GC_18 = Coupling(name = 'GC_18',
+                 value = '-(complex(0,1)*GH*sh)',
+                 order = {'HIG':1})
+
+GC_19 = Coupling(name = 'GC_19',
+                 value = '-(G*GH*sh)',
+                 order = {'HIG':1,'QCD':1})
+
+GC_20 = Coupling(name = 'GC_20',
+                 value = 'complex(0,1)*G**2*GH*sh',
+                 order = {'HIG':1,'QCD':2})
+
+GC_21 = Coupling(name = 'GC_21',
+                 value = '-3*ch**3*complex(0,1)*kap*sh + 6*ch**3*complex(0,1)*rho*sh + 3*ch*complex(0,1)*kap*sh**3 - 6*ch*complex(0,1)*lam*sh**3',
+                 order = {'QED':2})
+
+GC_22 = Coupling(name = 'GC_22',
+                 value = '3*ch**3*complex(0,1)*kap*sh - 6*ch**3*complex(0,1)*lam*sh - 3*ch*complex(0,1)*kap*sh**3 + 6*ch*complex(0,1)*rho*sh**3',
+                 order = {'QED':2})
+
+GC_23 = Coupling(name = 'GC_23',
+                 value = '-(ch**4*complex(0,1)*kap) + 4*ch**2*complex(0,1)*kap*sh**2 - 6*ch**2*complex(0,1)*lam*sh**2 - 6*ch**2*complex(0,1)*rho*sh**2 - complex(0,1)*kap*sh**4',
+                 order = {'QED':2})
+
+GC_24 = Coupling(name = 'GC_24',
+                 value = '-6*ch**4*complex(0,1)*rho - 6*ch**2*complex(0,1)*kap*sh**2 - 6*complex(0,1)*lam*sh**4',
+                 order = {'QED':2})
+
+GC_25 = Coupling(name = 'GC_25',
+                 value = '-6*ch**4*complex(0,1)*lam - 6*ch**2*complex(0,1)*kap*sh**2 - 6*complex(0,1)*rho*sh**4',
+                 order = {'QED':2})
+
+GC_26 = Coupling(name = 'GC_26',
+                 value = '(ch**2*ee**2*complex(0,1))/(2.*sw**2)',
+                 order = {'QED':2})
+
+GC_27 = Coupling(name = 'GC_27',
+                 value = '(ch*ee**2*complex(0,1)*sh)/(2.*sw**2)',
+                 order = {'QED':2})
+
+GC_28 = Coupling(name = 'GC_28',
+                 value = '(ee**2*complex(0,1)*sh**2)/(2.*sw**2)',
+                 order = {'QED':2})
+
+GC_29 = Coupling(name = 'GC_29',
+                 value = '(ee*complex(0,1))/(sw*cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_30 = Coupling(name = 'GC_30',
+                 value = '(CKM1x1*ee*complex(0,1))/(sw*cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_31 = Coupling(name = 'GC_31',
+                 value = '(CKM1x2*ee*complex(0,1))/(sw*cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_32 = Coupling(name = 'GC_32',
+                 value = '(CKM2x1*ee*complex(0,1))/(sw*cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_33 = Coupling(name = 'GC_33',
+                 value = '(CKM2x2*ee*complex(0,1))/(sw*cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_34 = Coupling(name = 'GC_34',
+                 value = '-(ca*cw*ee*complex(0,1))/(2.*sw)',
+                 order = {'QED':1})
+
+GC_35 = Coupling(name = 'GC_35',
+                 value = '(ca*cw*ee*complex(0,1))/(2.*sw)',
+                 order = {'QED':1})
+
+GC_36 = Coupling(name = 'GC_36',
+                 value = '-(cw*ee*complex(0,1)*sa)/(2.*sw)',
+                 order = {'QED':1})
+
+GC_37 = Coupling(name = 'GC_37',
+                 value = '(cw*ee*complex(0,1)*sa)/(2.*sw)',
+                 order = {'QED':1})
+
+GC_38 = Coupling(name = 'GC_38',
+                 value = 'complex(0,1)*gw*sw',
+                 order = {'QED':1})
+
+GC_39 = Coupling(name = 'GC_39',
+                 value = '-2*ca*cw*complex(0,1)*gw**2*sw',
+                 order = {'QED':2})
+
+GC_40 = Coupling(name = 'GC_40',
+                 value = '2*cw*complex(0,1)*gw**2*sa*sw',
+                 order = {'QED':2})
+
+GC_41 = Coupling(name = 'GC_41',
+                 value = 'complex(0,1)*gw**2*sw**2',
+                 order = {'QED':2})
+
+GC_42 = Coupling(name = 'GC_42',
+                 value = '(ee*eta*complex(0,1)*sa)/(6.*cw) - (ca*ee*complex(0,1)*sw)/(6.*cw)',
+                 order = {'QED':1})
+
+GC_43 = Coupling(name = 'GC_43',
+                 value = '-(ee*eta*complex(0,1)*sa)/(2.*cw) + (ca*ee*complex(0,1)*sw)/(2.*cw)',
+                 order = {'QED':1})
+
+GC_44 = Coupling(name = 'GC_44',
+                 value = '-(ee*eta*complex(0,1)*sa)/(2.*cw) + (ca*cw*ee*complex(0,1))/(2.*sw) + (ca*ee*complex(0,1)*sw)/(2.*cw)',
+                 order = {'QED':1})
+
+GC_45 = Coupling(name = 'GC_45',
+                 value = '(ca*ee*eta*complex(0,1))/(6.*cw) + (ee*complex(0,1)*sa*sw)/(6.*cw)',
+                 order = {'QED':1})
+
+GC_46 = Coupling(name = 'GC_46',
+                 value = '-(ca*ee*eta*complex(0,1))/(2.*cw) - (ee*complex(0,1)*sa*sw)/(2.*cw)',
+                 order = {'QED':1})
+
+GC_47 = Coupling(name = 'GC_47',
+                 value = '-(ca*ee*eta*complex(0,1))/(2.*cw) - (cw*ee*complex(0,1)*sa)/(2.*sw) - (ee*complex(0,1)*sa*sw)/(2.*cw)',
+                 order = {'QED':1})
+
+GC_48 = Coupling(name = 'GC_48',
+                 value = 'ca**2*ch**2*ee**2*complex(0,1) + (ch**2*ee**2*eta**2*complex(0,1)*sa**2)/(2.*cw**2) + (2*eta**2*complex(0,1)*gX**2*sa**2*sh**2)/chi**2 + (ca**2*ch**2*cw**2*ee**2*complex(0,1))/(2.*sw**2) - (ca*ch**2*ee**2*eta*complex(0,1)*sa)/sw - (ca*ch**2*ee**2*eta*complex(0,1)*sa*sw)/cw**2 + (ca**2*ch**2*ee**2*complex(0,1)*sw**2)/(2.*cw**2)',
+                 order = {'QED':2})
+
+GC_49 = Coupling(name = 'GC_49',
+                 value = '-(ca*ch**2*ee**2*complex(0,1)*sa) + (ca*ch**2*ee**2*eta**2*complex(0,1)*sa)/(2.*cw**2) + (2*ca*eta**2*complex(0,1)*gX**2*sa*sh**2)/chi**2 - (ca*ch**2*cw**2*ee**2*complex(0,1)*sa)/(2.*sw**2) - (ca**2*ch**2*ee**2*eta*complex(0,1))/(2.*sw) + (ch**2*ee**2*eta*complex(0,1)*sa**2)/(2.*sw) - (ca**2*ch**2*ee**2*eta*complex(0,1)*sw)/(2.*cw**2) + (ch**2*ee**2*eta*complex(0,1)*sa**2*sw)/(2.*cw**2) - (ca*ch**2*ee**2*complex(0,1)*sa*sw**2)/(2.*cw**2)',
+                 order = {'QED':2})
+
+GC_50 = Coupling(name = 'GC_50',
+                 value = '(ca**2*ch**2*ee**2*eta**2*complex(0,1))/(2.*cw**2) + ch**2*ee**2*complex(0,1)*sa**2 + (2*ca**2*eta**2*complex(0,1)*gX**2*sh**2)/chi**2 + (ch**2*cw**2*ee**2*complex(0,1)*sa**2)/(2.*sw**2) + (ca*ch**2*ee**2*eta*complex(0,1)*sa)/sw + (ca*ch**2*ee**2*eta*complex(0,1)*sa*sw)/cw**2 + (ch**2*ee**2*complex(0,1)*sa**2*sw**2)/(2.*cw**2)',
+                 order = {'QED':2})
+
+GC_51 = Coupling(name = 'GC_51',
+                 value = 'ca**2*ch*ee**2*complex(0,1)*sh + (ch*ee**2*eta**2*complex(0,1)*sa**2*sh)/(2.*cw**2) - (2*ch*eta**2*complex(0,1)*gX**2*sa**2*sh)/chi**2 + (ca**2*ch*cw**2*ee**2*complex(0,1)*sh)/(2.*sw**2) - (ca*ch*ee**2*eta*complex(0,1)*sa*sh)/sw - (ca*ch*ee**2*eta*complex(0,1)*sa*sh*sw)/cw**2 + (ca**2*ch*ee**2*complex(0,1)*sh*sw**2)/(2.*cw**2)',
+                 order = {'QED':2})
+
+GC_52 = Coupling(name = 'GC_52',
+                 value = '-(ca*ch*ee**2*complex(0,1)*sa*sh) + (ca*ch*ee**2*eta**2*complex(0,1)*sa*sh)/(2.*cw**2) - (2*ca*ch*eta**2*complex(0,1)*gX**2*sa*sh)/chi**2 - (ca*ch*cw**2*ee**2*complex(0,1)*sa*sh)/(2.*sw**2) - (ca**2*ch*ee**2*eta*complex(0,1)*sh)/(2.*sw) + (ch*ee**2*eta*complex(0,1)*sa**2*sh)/(2.*sw) - (ca**2*ch*ee**2*eta*complex(0,1)*sh*sw)/(2.*cw**2) + (ch*ee**2*eta*complex(0,1)*sa**2*sh*sw)/(2.*cw**2) - (ca*ch*ee**2*complex(0,1)*sa*sh*sw**2)/(2.*cw**2)',
+                 order = {'QED':2})
+
+GC_53 = Coupling(name = 'GC_53',
+                 value = '(ca**2*ch*ee**2*eta**2*complex(0,1)*sh)/(2.*cw**2) - (2*ca**2*ch*eta**2*complex(0,1)*gX**2*sh)/chi**2 + ch*ee**2*complex(0,1)*sa**2*sh + (ch*cw**2*ee**2*complex(0,1)*sa**2*sh)/(2.*sw**2) + (ca*ch*ee**2*eta*complex(0,1)*sa*sh)/sw + (ca*ch*ee**2*eta*complex(0,1)*sa*sh*sw)/cw**2 + (ch*ee**2*complex(0,1)*sa**2*sh*sw**2)/(2.*cw**2)',
+                 order = {'QED':2})
+
+GC_54 = Coupling(name = 'GC_54',
+                 value = '(2*ch**2*eta**2*complex(0,1)*gX**2*sa**2)/chi**2 + ca**2*ee**2*complex(0,1)*sh**2 + (ee**2*eta**2*complex(0,1)*sa**2*sh**2)/(2.*cw**2) + (ca**2*cw**2*ee**2*complex(0,1)*sh**2)/(2.*sw**2) - (ca*ee**2*eta*complex(0,1)*sa*sh**2)/sw - (ca*ee**2*eta*complex(0,1)*sa*sh**2*sw)/cw**2 + (ca**2*ee**2*complex(0,1)*sh**2*sw**2)/(2.*cw**2)',
+                 order = {'QED':2})
+
+GC_55 = Coupling(name = 'GC_55',
+                 value = '(2*ca*ch**2*eta**2*complex(0,1)*gX**2*sa)/chi**2 - ca*ee**2*complex(0,1)*sa*sh**2 + (ca*ee**2*eta**2*complex(0,1)*sa*sh**2)/(2.*cw**2) - (ca*cw**2*ee**2*complex(0,1)*sa*sh**2)/(2.*sw**2) - (ca**2*ee**2*eta*complex(0,1)*sh**2)/(2.*sw) + (ee**2*eta*complex(0,1)*sa**2*sh**2)/(2.*sw) - (ca**2*ee**2*eta*complex(0,1)*sh**2*sw)/(2.*cw**2) + (ee**2*eta*complex(0,1)*sa**2*sh**2*sw)/(2.*cw**2) - (ca*ee**2*complex(0,1)*sa*sh**2*sw**2)/(2.*cw**2)',
+                 order = {'QED':2})
+
+GC_56 = Coupling(name = 'GC_56',
+                 value = '(2*ca**2*ch**2*eta**2*complex(0,1)*gX**2)/chi**2 + (ca**2*ee**2*eta**2*complex(0,1)*sh**2)/(2.*cw**2) + ee**2*complex(0,1)*sa**2*sh**2 + (cw**2*ee**2*complex(0,1)*sa**2*sh**2)/(2.*sw**2) + (ca*ee**2*eta*complex(0,1)*sa*sh**2)/sw + (ca*ee**2*eta*complex(0,1)*sa*sh**2*sw)/cw**2 + (ee**2*complex(0,1)*sa**2*sh**2*sw**2)/(2.*cw**2)',
+                 order = {'QED':2})
+
+GC_57 = Coupling(name = 'GC_57',
+                 value = '(ch*ee**2*complex(0,1)*v)/(2.*sw**2)',
+                 order = {'QED':1})
+
+GC_58 = Coupling(name = 'GC_58',
+                 value = '(ee**2*complex(0,1)*sh*v)/(2.*sw**2)',
+                 order = {'QED':1})
+
+GC_59 = Coupling(name = 'GC_59',
+                 value = '(ca**2*ee**2*eta**2*complex(0,1)*sh*v)/(2.*cw**2) + ee**2*complex(0,1)*sa**2*sh*v + (cw**2*ee**2*complex(0,1)*sa**2*sh*v)/(2.*sw**2) + (ca*ee**2*eta*complex(0,1)*sa*sh*v)/sw + (ca*ee**2*eta*complex(0,1)*sa*sh*sw*v)/cw**2 + (ee**2*complex(0,1)*sa**2*sh*sw**2*v)/(2.*cw**2) + (2*ca**2*ch*eta**2*complex(0,1)*gX**2*xi)/chi**2',
+                 order = {'QED':1})
+
+GC_60 = Coupling(name = 'GC_60',
+                 value = '-(ca*ee**2*complex(0,1)*sa*sh*v) + (ca*ee**2*eta**2*complex(0,1)*sa*sh*v)/(2.*cw**2) - (ca*cw**2*ee**2*complex(0,1)*sa*sh*v)/(2.*sw**2) - (ca**2*ee**2*eta*complex(0,1)*sh*v)/(2.*sw) + (ee**2*eta*complex(0,1)*sa**2*sh*v)/(2.*sw) - (ca**2*ee**2*eta*complex(0,1)*sh*sw*v)/(2.*cw**2) + (ee**2*eta*complex(0,1)*sa**2*sh*sw*v)/(2.*cw**2) - (ca*ee**2*complex(0,1)*sa*sh*sw**2*v)/(2.*cw**2) + (2*ca*ch*eta**2*complex(0,1)*gX**2*sa*xi)/chi**2',
+                 order = {'QED':1})
+
+GC_61 = Coupling(name = 'GC_61',
+                 value = 'ca**2*ee**2*complex(0,1)*sh*v + (ee**2*eta**2*complex(0,1)*sa**2*sh*v)/(2.*cw**2) + (ca**2*cw**2*ee**2*complex(0,1)*sh*v)/(2.*sw**2) - (ca*ee**2*eta*complex(0,1)*sa*sh*v)/sw - (ca*ee**2*eta*complex(0,1)*sa*sh*sw*v)/cw**2 + (ca**2*ee**2*complex(0,1)*sh*sw**2*v)/(2.*cw**2) + (2*ch*eta**2*complex(0,1)*gX**2*sa**2*xi)/chi**2',
+                 order = {'QED':1})
+
+GC_62 = Coupling(name = 'GC_62',
+                 value = '(ca**2*ch*ee**2*eta**2*complex(0,1)*v)/(2.*cw**2) + ch*ee**2*complex(0,1)*sa**2*v + (ch*cw**2*ee**2*complex(0,1)*sa**2*v)/(2.*sw**2) + (ca*ch*ee**2*eta*complex(0,1)*sa*v)/sw + (ca*ch*ee**2*eta*complex(0,1)*sa*sw*v)/cw**2 + (ch*ee**2*complex(0,1)*sa**2*sw**2*v)/(2.*cw**2) - (2*ca**2*eta**2*complex(0,1)*gX**2*sh*xi)/chi**2',
+                 order = {'QED':1})
+
+GC_63 = Coupling(name = 'GC_63',
+                 value = '-(ca*ch*ee**2*complex(0,1)*sa*v) + (ca*ch*ee**2*eta**2*complex(0,1)*sa*v)/(2.*cw**2) - (ca*ch*cw**2*ee**2*complex(0,1)*sa*v)/(2.*sw**2) - (ca**2*ch*ee**2*eta*complex(0,1)*v)/(2.*sw) + (ch*ee**2*eta*complex(0,1)*sa**2*v)/(2.*sw) - (ca**2*ch*ee**2*eta*complex(0,1)*sw*v)/(2.*cw**2) + (ch*ee**2*eta*complex(0,1)*sa**2*sw*v)/(2.*cw**2) - (ca*ch*ee**2*complex(0,1)*sa*sw**2*v)/(2.*cw**2) - (2*ca*eta**2*complex(0,1)*gX**2*sa*sh*xi)/chi**2',
+                 order = {'QED':1})
+
+GC_64 = Coupling(name = 'GC_64',
+                 value = 'ca**2*ch*ee**2*complex(0,1)*v + (ch*ee**2*eta**2*complex(0,1)*sa**2*v)/(2.*cw**2) + (ca**2*ch*cw**2*ee**2*complex(0,1)*v)/(2.*sw**2) - (ca*ch*ee**2*eta*complex(0,1)*sa*v)/sw - (ca*ch*ee**2*eta*complex(0,1)*sa*sw*v)/cw**2 + (ca**2*ch*ee**2*complex(0,1)*sw**2*v)/(2.*cw**2) - (2*eta**2*complex(0,1)*gX**2*sa**2*sh*xi)/chi**2',
+                 order = {'QED':1})
+
+GC_65 = Coupling(name = 'GC_65',
+                 value = '-3*ch**2*complex(0,1)*kap*sh*v - 6*complex(0,1)*lam*sh**3*v - 6*ch**3*complex(0,1)*rho*xi - 3*ch*complex(0,1)*kap*sh**2*xi',
+                 order = {'QED':1})
+
+GC_66 = Coupling(name = 'GC_66',
+                 value = '2*ch**2*complex(0,1)*kap*sh*v - 6*ch**2*complex(0,1)*lam*sh*v - complex(0,1)*kap*sh**3*v - ch**3*complex(0,1)*kap*xi + 2*ch*complex(0,1)*kap*sh**2*xi - 6*ch*complex(0,1)*rho*sh**2*xi',
+                 order = {'QED':1})
+
+GC_67 = Coupling(name = 'GC_67',
+                 value = '-(ch**3*complex(0,1)*kap*v) + 2*ch*complex(0,1)*kap*sh**2*v - 6*ch*complex(0,1)*lam*sh**2*v - 2*ch**2*complex(0,1)*kap*sh*xi + 6*ch**2*complex(0,1)*rho*sh*xi + complex(0,1)*kap*sh**3*xi',
+                 order = {'QED':1})
+
+GC_68 = Coupling(name = 'GC_68',
+                 value = '-6*ch**3*complex(0,1)*lam*v - 3*ch*complex(0,1)*kap*sh**2*v + 3*ch**2*complex(0,1)*kap*sh*xi + 6*complex(0,1)*rho*sh**3*xi',
+                 order = {'QED':1})
+
+GC_69 = Coupling(name = 'GC_69',
+                 value = '-((ch*complex(0,1)*yb)/cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_70 = Coupling(name = 'GC_70',
+                 value = '-((complex(0,1)*sh*yb)/cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_71 = Coupling(name = 'GC_71',
+                 value = '-((ch*complex(0,1)*yc)/cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_72 = Coupling(name = 'GC_72',
+                 value = '-((complex(0,1)*sh*yc)/cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_73 = Coupling(name = 'GC_73',
+                 value = '-((ch*complex(0,1)*ye)/cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_74 = Coupling(name = 'GC_74',
+                 value = '-((complex(0,1)*sh*ye)/cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_75 = Coupling(name = 'GC_75',
+                 value = '-((ch*complex(0,1)*ym)/cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_76 = Coupling(name = 'GC_76',
+                 value = '-((complex(0,1)*sh*ym)/cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_77 = Coupling(name = 'GC_77',
+                 value = '-((ch*complex(0,1)*yt)/cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_78 = Coupling(name = 'GC_78',
+                 value = '-((complex(0,1)*sh*yt)/cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_79 = Coupling(name = 'GC_79',
+                 value = '-((ch*complex(0,1)*ytau)/cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_80 = Coupling(name = 'GC_80',
+                 value = '-((complex(0,1)*sh*ytau)/cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_81 = Coupling(name = 'GC_81',
+                 value = '(ee*complex(0,1)*complexconjugate(CKM1x1))/(sw*cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_82 = Coupling(name = 'GC_82',
+                 value = '(ee*complex(0,1)*complexconjugate(CKM1x2))/(sw*cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_83 = Coupling(name = 'GC_83',
+                 value = '(ee*complex(0,1)*complexconjugate(CKM2x1))/(sw*cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_84 = Coupling(name = 'GC_84',
+                 value = '(ee*complex(0,1)*complexconjugate(CKM2x2))/(sw*cmath.sqrt(2))',
+                 order = {'QED':1})
+
diff --git a/HAHM_variableMW_v3_UFO_QT1/decays.py b/HAHM_variableMW_v3_UFO_QT1/decays.py
new file mode 100644
index 00000000..c39198bb
--- /dev/null
+++ b/HAHM_variableMW_v3_UFO_QT1/decays.py
@@ -0,0 +1,105 @@
+# This file was automatically created by FeynRules 2.0.23
+# Mathematica version: 9.0 for Mac OS X x86 (64-bit) (November 20, 2012)
+# Date: Sat 20 Sep 2014 16:11:37
+
+
+from object_library import all_decays, Decay
+import particles as P
+
+
+Decay_b = Decay(name = 'Decay_b',
+                particle = P.b,
+                partial_widths = {(P.W__minus__,P.t):'(((3*ee**2*MB**2)/(2.*sw**2) + (3*ee**2*MT**2)/(2.*sw**2) + (3*ee**2*MB**4)/(2.*MW**2*sw**2) - (3*ee**2*MB**2*MT**2)/(MW**2*sw**2) + (3*ee**2*MT**4)/(2.*MW**2*sw**2) - (3*ee**2*MW**2)/sw**2)*cmath.sqrt(MB**4 - 2*MB**2*MT**2 + MT**4 - 2*MB**2*MW**2 - 2*MT**2*MW**2 + MW**4))/(96.*cmath.pi*abs(MB)**3)'})
+
+Decay_c = Decay(name = 'Decay_c',
+                particle = P.c,
+                partial_widths = {(P.W__plus__,P.d):'((MC**2 - MW**2)*((3*CKM2x1*ee**2*MC**2*complexconjugate(CKM2x1))/(2.*sw**2) + (3*CKM2x1*ee**2*MC**4*complexconjugate(CKM2x1))/(2.*MW**2*sw**2) - (3*CKM2x1*ee**2*MW**2*complexconjugate(CKM2x1))/sw**2))/(96.*cmath.pi*abs(MC)**3)',
+                                  (P.W__plus__,P.s):'((MC**2 - MW**2)*((3*CKM2x2*ee**2*MC**2*complexconjugate(CKM2x2))/(2.*sw**2) + (3*CKM2x2*ee**2*MC**4*complexconjugate(CKM2x2))/(2.*MW**2*sw**2) - (3*CKM2x2*ee**2*MW**2*complexconjugate(CKM2x2))/sw**2))/(96.*cmath.pi*abs(MC)**3)'})
+
+Decay_h = Decay(name = 'Decay_h',
+                particle = P.h,
+                partial_widths = {(P.A,P.A):'(AH**2*ch**2*MH**6)/(64.*cmath.pi*abs(MH)**3)',
+                                  (P.b,P.b__tilde__):'((-12*ch**2*MB**2*yb**2 + 3*ch**2*MH**2*yb**2)*cmath.sqrt(-4*MB**2*MH**2 + MH**4))/(16.*cmath.pi*abs(MH)**3)',
+                                  (P.c,P.c__tilde__):'((-12*ch**2*MC**2*yc**2 + 3*ch**2*MH**2*yc**2)*cmath.sqrt(-4*MC**2*MH**2 + MH**4))/(16.*cmath.pi*abs(MH)**3)',
+                                  (P.e__minus__,P.e__plus__):'(ch**2*MH**4*ye**2)/(16.*cmath.pi*abs(MH)**3)',
+                                  (P.G,P.G):'(ch**2*GH**2*MH**6)/(8.*cmath.pi*abs(MH)**3)',
+                                  (P.hs,P.hs):'((ch**6*kap**2*v**2 - 4*ch**4*kap**2*sh**2*v**2 + 12*ch**4*kap*lam*sh**2*v**2 + 4*ch**2*kap**2*sh**4*v**2 - 24*ch**2*kap*lam*sh**4*v**2 + 36*ch**2*lam**2*sh**4*v**2 + 4*ch**5*kap**2*sh*v*xi - 12*ch**5*kap*rho*sh*v*xi - 10*ch**3*kap**2*sh**3*v*xi + 24*ch**3*kap*lam*sh**3*v*xi + 24*ch**3*kap*rho*sh**3*v*xi - 72*ch**3*lam*rho*sh**3*v*xi + 4*ch*kap**2*sh**5*v*xi - 12*ch*kap*lam*sh**5*v*xi + 4*ch**4*kap**2*sh**2*xi**2 - 24*ch**4*kap*rho*sh**2*xi**2 + 36*ch**4*rho**2*sh**2*xi**2 - 4*ch**2*kap**2*sh**4*xi**2 + 12*ch**2*kap*rho*sh**4*xi**2 + kap**2*sh**6*xi**2)*cmath.sqrt(MH**4 - 4*MH**2*MHS**2))/(32.*cmath.pi*abs(MH)**3)',
+                                  (P.m__minus__,P.m__plus__):'(ch**2*MH**4*ym**2)/(16.*cmath.pi*abs(MH)**3)',
+                                  (P.t,P.t__tilde__):'((3*ch**2*MH**2*yt**2 - 12*ch**2*MT**2*yt**2)*cmath.sqrt(MH**4 - 4*MH**2*MT**2))/(16.*cmath.pi*abs(MH)**3)',
+                                  (P.tt__minus__,P.tt__plus__):'((ch**2*MH**2*ytau**2 - 4*ch**2*MTA**2*ytau**2)*cmath.sqrt(MH**4 - 4*MH**2*MTA**2))/(16.*cmath.pi*abs(MH)**3)',
+                                  (P.W__minus__,P.W__plus__):'(((3*ch**2*ee**4*v**2)/(4.*sw**4) + (ch**2*ee**4*MH**4*v**2)/(16.*MW**4*sw**4) - (ch**2*ee**4*MH**2*v**2)/(4.*MW**2*sw**4))*cmath.sqrt(MH**4 - 4*MH**2*MW**2))/(16.*cmath.pi*abs(MH)**3)',
+                                  (P.Z,P.Z):'(((9*ca**4*ch**2*ee**4*v**2)/2. + (3*ca**4*ch**2*ee**4*MH**4*v**2)/(8.*MZ**4) - (3*ca**4*ch**2*ee**4*MH**2*v**2)/(2.*MZ**2) + (9*ca**2*ch**2*ee**4*eta**2*sa**2*v**2)/cw**2 + (3*ca**2*ch**2*ee**4*eta**2*MH**4*sa**2*v**2)/(4.*cw**2*MZ**4) - (3*ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*v**2)/(cw**2*MZ**2) + (3*ch**2*ee**4*eta**4*sa**4*v**2)/(4.*cw**4) + (ch**2*ee**4*eta**4*MH**4*sa**4*v**2)/(16.*cw**4*MZ**4) - (ch**2*ee**4*eta**4*MH**2*sa**4*v**2)/(4.*cw**4*MZ**2) + (3*ca**4*ch**2*cw**4*ee**4*v**2)/(4.*sw**4) + (ca**4*ch**2*cw**4*ee**4*MH**4*v**2)/(16.*MZ**4*sw**4) - (ca**4*ch**2*cw**4*ee**4*MH**2*v**2)/(4.*MZ**2*sw**4) - (3*ca**3*ch**2*cw**2*ee**4*eta*sa*v**2)/sw**3 - (ca**3*ch**2*cw**2*ee**4*eta*MH**4*sa*v**2)/(4.*MZ**4*sw**3) + (ca**3*ch**2*cw**2*ee**4*eta*MH**2*sa*v**2)/(MZ**2*sw**3) + (3*ca**4*ch**2*cw**2*ee**4*v**2)/sw**2 + (ca**4*ch**2*cw**2*ee**4*MH**4*v**2)/(4.*MZ**4*sw**2) - (ca**4*ch**2*cw**2*ee**4*MH**2*v**2)/(MZ**2*sw**2) + (9*ca**2*ch**2*ee**4*eta**2*sa**2*v**2)/(2.*sw**2) + (3*ca**2*ch**2*ee**4*eta**2*MH**4*sa**2*v**2)/(8.*MZ**4*sw**2) - (3*ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*v**2)/(2.*MZ**2*sw**2) - (9*ca**3*ch**2*ee**4*eta*sa*v**2)/sw - (3*ca**3*ch**2*ee**4*eta*MH**4*sa*v**2)/(4.*MZ**4*sw) + (3*ca**3*ch**2*ee**4*eta*MH**2*sa*v**2)/(MZ**2*sw) - (3*ca*ch**2*ee**4*eta**3*sa**3*v**2)/(cw**2*sw) - (ca*ch**2*ee**4*eta**3*MH**4*sa**3*v**2)/(4.*cw**2*MZ**4*sw) + (ca*ch**2*ee**4*eta**3*MH**2*sa**3*v**2)/(cw**2*MZ**2*sw) - (9*ca**3*ch**2*ee**4*eta*sa*sw*v**2)/cw**2 - (3*ca**3*ch**2*ee**4*eta*MH**4*sa*sw*v**2)/(4.*cw**2*MZ**4) + (3*ca**3*ch**2*ee**4*eta*MH**2*sa*sw*v**2)/(cw**2*MZ**2) - (3*ca*ch**2*ee**4*eta**3*sa**3*sw*v**2)/cw**4 - (ca*ch**2*ee**4*eta**3*MH**4*sa**3*sw*v**2)/(4.*cw**4*MZ**4) + (ca*ch**2*ee**4*eta**3*MH**2*sa**3*sw*v**2)/(cw**4*MZ**2) + (3*ca**4*ch**2*ee**4*sw**2*v**2)/cw**2 + (ca**4*ch**2*ee**4*MH**4*sw**2*v**2)/(4.*cw**2*MZ**4) - (ca**4*ch**2*ee**4*MH**2*sw**2*v**2)/(cw**2*MZ**2) + (9*ca**2*ch**2*ee**4*eta**2*sa**2*sw**2*v**2)/(2.*cw**4) + (3*ca**2*ch**2*ee**4*eta**2*MH**4*sa**2*sw**2*v**2)/(8.*cw**4*MZ**4) - (3*ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*sw**2*v**2)/(2.*cw**4*MZ**2) - (3*ca**3*ch**2*ee**4*eta*sa*sw**3*v**2)/cw**4 - (ca**3*ch**2*ee**4*eta*MH**4*sa*sw**3*v**2)/(4.*cw**4*MZ**4) + (ca**3*ch**2*ee**4*eta*MH**2*sa*sw**3*v**2)/(cw**4*MZ**2) + (3*ca**4*ch**2*ee**4*sw**4*v**2)/(4.*cw**4) + (ca**4*ch**2*ee**4*MH**4*sw**4*v**2)/(16.*cw**4*MZ**4) - (ca**4*ch**2*ee**4*MH**2*sw**4*v**2)/(4.*cw**4*MZ**2) - (12*ca**2*ch*ee**2*eta**2*gX**2*sa**2*sh*v*xi)/chi**2 - (ca**2*ch*ee**2*eta**2*gX**2*MH**4*sa**2*sh*v*xi)/(chi**2*MZ**4) + (4*ca**2*ch*ee**2*eta**2*gX**2*MH**2*sa**2*sh*v*xi)/(chi**2*MZ**2) - (6*ch*ee**2*eta**4*gX**2*sa**4*sh*v*xi)/(chi**2*cw**2) - (ch*ee**2*eta**4*gX**2*MH**4*sa**4*sh*v*xi)/(2.*chi**2*cw**2*MZ**4) + (2*ch*ee**2*eta**4*gX**2*MH**2*sa**4*sh*v*xi)/(chi**2*cw**2*MZ**2) - (6*ca**2*ch*cw**2*ee**2*eta**2*gX**2*sa**2*sh*v*xi)/(chi**2*sw**2) - (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MH**4*sa**2*sh*v*xi)/(2.*chi**2*MZ**4*sw**2) + (2*ca**2*ch*cw**2*ee**2*eta**2*gX**2*MH**2*sa**2*sh*v*xi)/(chi**2*MZ**2*sw**2) + (12*ca*ch*ee**2*eta**3*gX**2*sa**3*sh*v*xi)/(chi**2*sw) + (ca*ch*ee**2*eta**3*gX**2*MH**4*sa**3*sh*v*xi)/(chi**2*MZ**4*sw) - (4*ca*ch*ee**2*eta**3*gX**2*MH**2*sa**3*sh*v*xi)/(chi**2*MZ**2*sw) + (12*ca*ch*ee**2*eta**3*gX**2*sa**3*sh*sw*v*xi)/(chi**2*cw**2) + (ca*ch*ee**2*eta**3*gX**2*MH**4*sa**3*sh*sw*v*xi)/(chi**2*cw**2*MZ**4) - (4*ca*ch*ee**2*eta**3*gX**2*MH**2*sa**3*sh*sw*v*xi)/(chi**2*cw**2*MZ**2) - (6*ca**2*ch*ee**2*eta**2*gX**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2) - (ca**2*ch*ee**2*eta**2*gX**2*MH**4*sa**2*sh*sw**2*v*xi)/(2.*chi**2*cw**2*MZ**4) + (2*ca**2*ch*ee**2*eta**2*gX**2*MH**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2*MZ**2) + (12*eta**4*gX**4*sa**4*sh**2*xi**2)/chi**4 + (eta**4*gX**4*MH**4*sa**4*sh**2*xi**2)/(chi**4*MZ**4) - (4*eta**4*gX**4*MH**2*sa**4*sh**2*xi**2)/(chi**4*MZ**2))*cmath.sqrt(MH**4 - 4*MH**2*MZ**2))/(32.*cmath.pi*abs(MH)**3)',
+                                  (P.Z,P.Zp):'(((5*ca**4*ch**2*ee**4*eta**2*v**2)/(4.*cw**2) - (ca**4*ch**2*ee**4*eta**2*MH**2*v**2)/(4.*cw**2*MZ**2) - (ca**4*ch**2*ee**4*eta**2*MH**2*v**2)/(4.*cw**2*MZp**2) + (ca**4*ch**2*ee**4*eta**2*MH**4*v**2)/(8.*cw**2*MZ**2*MZp**2) + (ca**4*ch**2*ee**4*eta**2*MZ**2*v**2)/(8.*cw**2*MZp**2) + (ca**4*ch**2*ee**4*eta**2*MZp**2*v**2)/(8.*cw**2*MZ**2) + (15*ca**2*ch**2*ee**4*sa**2*v**2)/4. - (5*ca**2*ch**2*ee**4*eta**2*sa**2*v**2)/cw**2 + (5*ca**2*ch**2*ee**4*eta**4*sa**2*v**2)/(8.*cw**4) - (3*ca**2*ch**2*ee**4*MH**2*sa**2*v**2)/(4.*MZ**2) + (ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*v**2)/(cw**2*MZ**2) - (ca**2*ch**2*ee**4*eta**4*MH**2*sa**2*v**2)/(8.*cw**4*MZ**2) - (3*ca**2*ch**2*ee**4*MH**2*sa**2*v**2)/(4.*MZp**2) + (ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*v**2)/(cw**2*MZp**2) - (ca**2*ch**2*ee**4*eta**4*MH**2*sa**2*v**2)/(8.*cw**4*MZp**2) + (3*ca**2*ch**2*ee**4*MH**4*sa**2*v**2)/(8.*MZ**2*MZp**2) - (ca**2*ch**2*ee**4*eta**2*MH**4*sa**2*v**2)/(2.*cw**2*MZ**2*MZp**2) + (ca**2*ch**2*ee**4*eta**4*MH**4*sa**2*v**2)/(16.*cw**4*MZ**2*MZp**2) + (3*ca**2*ch**2*ee**4*MZ**2*sa**2*v**2)/(8.*MZp**2) - (ca**2*ch**2*ee**4*eta**2*MZ**2*sa**2*v**2)/(2.*cw**2*MZp**2) + (ca**2*ch**2*ee**4*eta**4*MZ**2*sa**2*v**2)/(16.*cw**4*MZp**2) + (3*ca**2*ch**2*ee**4*MZp**2*sa**2*v**2)/(8.*MZ**2) - (ca**2*ch**2*ee**4*eta**2*MZp**2*sa**2*v**2)/(2.*cw**2*MZ**2) + (ca**2*ch**2*ee**4*eta**4*MZp**2*sa**2*v**2)/(16.*cw**4*MZ**2) + (5*ch**2*ee**4*eta**2*sa**4*v**2)/(4.*cw**2) - (ch**2*ee**4*eta**2*MH**2*sa**4*v**2)/(4.*cw**2*MZ**2) - (ch**2*ee**4*eta**2*MH**2*sa**4*v**2)/(4.*cw**2*MZp**2) + (ch**2*ee**4*eta**2*MH**4*sa**4*v**2)/(8.*cw**2*MZ**2*MZp**2) + (ch**2*ee**4*eta**2*MZ**2*sa**4*v**2)/(8.*cw**2*MZp**2) + (ch**2*ee**4*eta**2*MZp**2*sa**4*v**2)/(8.*cw**2*MZ**2) + (5*ca**2*ch**2*cw**4*ee**4*sa**2*v**2)/(8.*sw**4) - (ca**2*ch**2*cw**4*ee**4*MH**2*sa**2*v**2)/(8.*MZ**2*sw**4) - (ca**2*ch**2*cw**4*ee**4*MH**2*sa**2*v**2)/(8.*MZp**2*sw**4) + (ca**2*ch**2*cw**4*ee**4*MH**4*sa**2*v**2)/(16.*MZ**2*MZp**2*sw**4) + (ca**2*ch**2*cw**4*ee**4*MZ**2*sa**2*v**2)/(16.*MZp**2*sw**4) + (ca**2*ch**2*cw**4*ee**4*MZp**2*sa**2*v**2)/(16.*MZ**2*sw**4) + (5*ca**3*ch**2*cw**2*ee**4*eta*sa*v**2)/(4.*sw**3) - (ca**3*ch**2*cw**2*ee**4*eta*MH**2*sa*v**2)/(4.*MZ**2*sw**3) - (ca**3*ch**2*cw**2*ee**4*eta*MH**2*sa*v**2)/(4.*MZp**2*sw**3) + (ca**3*ch**2*cw**2*ee**4*eta*MH**4*sa*v**2)/(8.*MZ**2*MZp**2*sw**3) + (ca**3*ch**2*cw**2*ee**4*eta*MZ**2*sa*v**2)/(8.*MZp**2*sw**3) + (ca**3*ch**2*cw**2*ee**4*eta*MZp**2*sa*v**2)/(8.*MZ**2*sw**3) - (5*ca*ch**2*cw**2*ee**4*eta*sa**3*v**2)/(4.*sw**3) + (ca*ch**2*cw**2*ee**4*eta*MH**2*sa**3*v**2)/(4.*MZ**2*sw**3) + (ca*ch**2*cw**2*ee**4*eta*MH**2*sa**3*v**2)/(4.*MZp**2*sw**3) - (ca*ch**2*cw**2*ee**4*eta*MH**4*sa**3*v**2)/(8.*MZ**2*MZp**2*sw**3) - (ca*ch**2*cw**2*ee**4*eta*MZ**2*sa**3*v**2)/(8.*MZp**2*sw**3) - (ca*ch**2*cw**2*ee**4*eta*MZp**2*sa**3*v**2)/(8.*MZ**2*sw**3) + (5*ca**4*ch**2*ee**4*eta**2*v**2)/(8.*sw**2) - (ca**4*ch**2*ee**4*eta**2*MH**2*v**2)/(8.*MZ**2*sw**2) - (ca**4*ch**2*ee**4*eta**2*MH**2*v**2)/(8.*MZp**2*sw**2) + (ca**4*ch**2*ee**4*eta**2*MH**4*v**2)/(16.*MZ**2*MZp**2*sw**2) + (ca**4*ch**2*ee**4*eta**2*MZ**2*v**2)/(16.*MZp**2*sw**2) + (ca**4*ch**2*ee**4*eta**2*MZp**2*v**2)/(16.*MZ**2*sw**2) + (5*ca**2*ch**2*cw**2*ee**4*sa**2*v**2)/(2.*sw**2) - (5*ca**2*ch**2*ee**4*eta**2*sa**2*v**2)/(2.*sw**2) - (ca**2*ch**2*cw**2*ee**4*MH**2*sa**2*v**2)/(2.*MZ**2*sw**2) + (ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*v**2)/(2.*MZ**2*sw**2) - (ca**2*ch**2*cw**2*ee**4*MH**2*sa**2*v**2)/(2.*MZp**2*sw**2) + (ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*v**2)/(2.*MZp**2*sw**2) + (ca**2*ch**2*cw**2*ee**4*MH**4*sa**2*v**2)/(4.*MZ**2*MZp**2*sw**2) - (ca**2*ch**2*ee**4*eta**2*MH**4*sa**2*v**2)/(4.*MZ**2*MZp**2*sw**2) + (ca**2*ch**2*cw**2*ee**4*MZ**2*sa**2*v**2)/(4.*MZp**2*sw**2) - (ca**2*ch**2*ee**4*eta**2*MZ**2*sa**2*v**2)/(4.*MZp**2*sw**2) + (ca**2*ch**2*cw**2*ee**4*MZp**2*sa**2*v**2)/(4.*MZ**2*sw**2) - (ca**2*ch**2*ee**4*eta**2*MZp**2*sa**2*v**2)/(4.*MZ**2*sw**2) + (5*ch**2*ee**4*eta**2*sa**4*v**2)/(8.*sw**2) - (ch**2*ee**4*eta**2*MH**2*sa**4*v**2)/(8.*MZ**2*sw**2) - (ch**2*ee**4*eta**2*MH**2*sa**4*v**2)/(8.*MZp**2*sw**2) + (ch**2*ee**4*eta**2*MH**4*sa**4*v**2)/(16.*MZ**2*MZp**2*sw**2) + (ch**2*ee**4*eta**2*MZ**2*sa**4*v**2)/(16.*MZp**2*sw**2) + (ch**2*ee**4*eta**2*MZp**2*sa**4*v**2)/(16.*MZ**2*sw**2) + (15*ca**3*ch**2*ee**4*eta*sa*v**2)/(4.*sw) - (5*ca**3*ch**2*ee**4*eta**3*sa*v**2)/(4.*cw**2*sw) - (3*ca**3*ch**2*ee**4*eta*MH**2*sa*v**2)/(4.*MZ**2*sw) + (ca**3*ch**2*ee**4*eta**3*MH**2*sa*v**2)/(4.*cw**2*MZ**2*sw) - (3*ca**3*ch**2*ee**4*eta*MH**2*sa*v**2)/(4.*MZp**2*sw) + (ca**3*ch**2*ee**4*eta**3*MH**2*sa*v**2)/(4.*cw**2*MZp**2*sw) + (3*ca**3*ch**2*ee**4*eta*MH**4*sa*v**2)/(8.*MZ**2*MZp**2*sw) - (ca**3*ch**2*ee**4*eta**3*MH**4*sa*v**2)/(8.*cw**2*MZ**2*MZp**2*sw) + (3*ca**3*ch**2*ee**4*eta*MZ**2*sa*v**2)/(8.*MZp**2*sw) - (ca**3*ch**2*ee**4*eta**3*MZ**2*sa*v**2)/(8.*cw**2*MZp**2*sw) + (3*ca**3*ch**2*ee**4*eta*MZp**2*sa*v**2)/(8.*MZ**2*sw) - (ca**3*ch**2*ee**4*eta**3*MZp**2*sa*v**2)/(8.*cw**2*MZ**2*sw) - (15*ca*ch**2*ee**4*eta*sa**3*v**2)/(4.*sw) + (5*ca*ch**2*ee**4*eta**3*sa**3*v**2)/(4.*cw**2*sw) + (3*ca*ch**2*ee**4*eta*MH**2*sa**3*v**2)/(4.*MZ**2*sw) - (ca*ch**2*ee**4*eta**3*MH**2*sa**3*v**2)/(4.*cw**2*MZ**2*sw) + (3*ca*ch**2*ee**4*eta*MH**2*sa**3*v**2)/(4.*MZp**2*sw) - (ca*ch**2*ee**4*eta**3*MH**2*sa**3*v**2)/(4.*cw**2*MZp**2*sw) - (3*ca*ch**2*ee**4*eta*MH**4*sa**3*v**2)/(8.*MZ**2*MZp**2*sw) + (ca*ch**2*ee**4*eta**3*MH**4*sa**3*v**2)/(8.*cw**2*MZ**2*MZp**2*sw) - (3*ca*ch**2*ee**4*eta*MZ**2*sa**3*v**2)/(8.*MZp**2*sw) + (ca*ch**2*ee**4*eta**3*MZ**2*sa**3*v**2)/(8.*cw**2*MZp**2*sw) - (3*ca*ch**2*ee**4*eta*MZp**2*sa**3*v**2)/(8.*MZ**2*sw) + (ca*ch**2*ee**4*eta**3*MZp**2*sa**3*v**2)/(8.*cw**2*MZ**2*sw) + (15*ca**3*ch**2*ee**4*eta*sa*sw*v**2)/(4.*cw**2) - (5*ca**3*ch**2*ee**4*eta**3*sa*sw*v**2)/(4.*cw**4) - (3*ca**3*ch**2*ee**4*eta*MH**2*sa*sw*v**2)/(4.*cw**2*MZ**2) + (ca**3*ch**2*ee**4*eta**3*MH**2*sa*sw*v**2)/(4.*cw**4*MZ**2) - (3*ca**3*ch**2*ee**4*eta*MH**2*sa*sw*v**2)/(4.*cw**2*MZp**2) + (ca**3*ch**2*ee**4*eta**3*MH**2*sa*sw*v**2)/(4.*cw**4*MZp**2) + (3*ca**3*ch**2*ee**4*eta*MH**4*sa*sw*v**2)/(8.*cw**2*MZ**2*MZp**2) - (ca**3*ch**2*ee**4*eta**3*MH**4*sa*sw*v**2)/(8.*cw**4*MZ**2*MZp**2) + (3*ca**3*ch**2*ee**4*eta*MZ**2*sa*sw*v**2)/(8.*cw**2*MZp**2) - (ca**3*ch**2*ee**4*eta**3*MZ**2*sa*sw*v**2)/(8.*cw**4*MZp**2) + (3*ca**3*ch**2*ee**4*eta*MZp**2*sa*sw*v**2)/(8.*cw**2*MZ**2) - (ca**3*ch**2*ee**4*eta**3*MZp**2*sa*sw*v**2)/(8.*cw**4*MZ**2) - (15*ca*ch**2*ee**4*eta*sa**3*sw*v**2)/(4.*cw**2) + (5*ca*ch**2*ee**4*eta**3*sa**3*sw*v**2)/(4.*cw**4) + (3*ca*ch**2*ee**4*eta*MH**2*sa**3*sw*v**2)/(4.*cw**2*MZ**2) - (ca*ch**2*ee**4*eta**3*MH**2*sa**3*sw*v**2)/(4.*cw**4*MZ**2) + (3*ca*ch**2*ee**4*eta*MH**2*sa**3*sw*v**2)/(4.*cw**2*MZp**2) - (ca*ch**2*ee**4*eta**3*MH**2*sa**3*sw*v**2)/(4.*cw**4*MZp**2) - (3*ca*ch**2*ee**4*eta*MH**4*sa**3*sw*v**2)/(8.*cw**2*MZ**2*MZp**2) + (ca*ch**2*ee**4*eta**3*MH**4*sa**3*sw*v**2)/(8.*cw**4*MZ**2*MZp**2) - (3*ca*ch**2*ee**4*eta*MZ**2*sa**3*sw*v**2)/(8.*cw**2*MZp**2) + (ca*ch**2*ee**4*eta**3*MZ**2*sa**3*sw*v**2)/(8.*cw**4*MZp**2) - (3*ca*ch**2*ee**4*eta*MZp**2*sa**3*sw*v**2)/(8.*cw**2*MZ**2) + (ca*ch**2*ee**4*eta**3*MZp**2*sa**3*sw*v**2)/(8.*cw**4*MZ**2) + (5*ca**4*ch**2*ee**4*eta**2*sw**2*v**2)/(8.*cw**4) - (ca**4*ch**2*ee**4*eta**2*MH**2*sw**2*v**2)/(8.*cw**4*MZ**2) - (ca**4*ch**2*ee**4*eta**2*MH**2*sw**2*v**2)/(8.*cw**4*MZp**2) + (ca**4*ch**2*ee**4*eta**2*MH**4*sw**2*v**2)/(16.*cw**4*MZ**2*MZp**2) + (ca**4*ch**2*ee**4*eta**2*MZ**2*sw**2*v**2)/(16.*cw**4*MZp**2) + (ca**4*ch**2*ee**4*eta**2*MZp**2*sw**2*v**2)/(16.*cw**4*MZ**2) + (5*ca**2*ch**2*ee**4*sa**2*sw**2*v**2)/(2.*cw**2) - (5*ca**2*ch**2*ee**4*eta**2*sa**2*sw**2*v**2)/(2.*cw**4) - (ca**2*ch**2*ee**4*MH**2*sa**2*sw**2*v**2)/(2.*cw**2*MZ**2) + (ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*sw**2*v**2)/(2.*cw**4*MZ**2) - (ca**2*ch**2*ee**4*MH**2*sa**2*sw**2*v**2)/(2.*cw**2*MZp**2) + (ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*sw**2*v**2)/(2.*cw**4*MZp**2) + (ca**2*ch**2*ee**4*MH**4*sa**2*sw**2*v**2)/(4.*cw**2*MZ**2*MZp**2) - (ca**2*ch**2*ee**4*eta**2*MH**4*sa**2*sw**2*v**2)/(4.*cw**4*MZ**2*MZp**2) + (ca**2*ch**2*ee**4*MZ**2*sa**2*sw**2*v**2)/(4.*cw**2*MZp**2) - (ca**2*ch**2*ee**4*eta**2*MZ**2*sa**2*sw**2*v**2)/(4.*cw**4*MZp**2) + (ca**2*ch**2*ee**4*MZp**2*sa**2*sw**2*v**2)/(4.*cw**2*MZ**2) - (ca**2*ch**2*ee**4*eta**2*MZp**2*sa**2*sw**2*v**2)/(4.*cw**4*MZ**2) + (5*ch**2*ee**4*eta**2*sa**4*sw**2*v**2)/(8.*cw**4) - (ch**2*ee**4*eta**2*MH**2*sa**4*sw**2*v**2)/(8.*cw**4*MZ**2) - (ch**2*ee**4*eta**2*MH**2*sa**4*sw**2*v**2)/(8.*cw**4*MZp**2) + (ch**2*ee**4*eta**2*MH**4*sa**4*sw**2*v**2)/(16.*cw**4*MZ**2*MZp**2) + (ch**2*ee**4*eta**2*MZ**2*sa**4*sw**2*v**2)/(16.*cw**4*MZp**2) + (ch**2*ee**4*eta**2*MZp**2*sa**4*sw**2*v**2)/(16.*cw**4*MZ**2) + (5*ca**3*ch**2*ee**4*eta*sa*sw**3*v**2)/(4.*cw**4) - (ca**3*ch**2*ee**4*eta*MH**2*sa*sw**3*v**2)/(4.*cw**4*MZ**2) - (ca**3*ch**2*ee**4*eta*MH**2*sa*sw**3*v**2)/(4.*cw**4*MZp**2) + (ca**3*ch**2*ee**4*eta*MH**4*sa*sw**3*v**2)/(8.*cw**4*MZ**2*MZp**2) + (ca**3*ch**2*ee**4*eta*MZ**2*sa*sw**3*v**2)/(8.*cw**4*MZp**2) + (ca**3*ch**2*ee**4*eta*MZp**2*sa*sw**3*v**2)/(8.*cw**4*MZ**2) - (5*ca*ch**2*ee**4*eta*sa**3*sw**3*v**2)/(4.*cw**4) + (ca*ch**2*ee**4*eta*MH**2*sa**3*sw**3*v**2)/(4.*cw**4*MZ**2) + (ca*ch**2*ee**4*eta*MH**2*sa**3*sw**3*v**2)/(4.*cw**4*MZp**2) - (ca*ch**2*ee**4*eta*MH**4*sa**3*sw**3*v**2)/(8.*cw**4*MZ**2*MZp**2) - (ca*ch**2*ee**4*eta*MZ**2*sa**3*sw**3*v**2)/(8.*cw**4*MZp**2) - (ca*ch**2*ee**4*eta*MZp**2*sa**3*sw**3*v**2)/(8.*cw**4*MZ**2) + (5*ca**2*ch**2*ee**4*sa**2*sw**4*v**2)/(8.*cw**4) - (ca**2*ch**2*ee**4*MH**2*sa**2*sw**4*v**2)/(8.*cw**4*MZ**2) - (ca**2*ch**2*ee**4*MH**2*sa**2*sw**4*v**2)/(8.*cw**4*MZp**2) + (ca**2*ch**2*ee**4*MH**4*sa**2*sw**4*v**2)/(16.*cw**4*MZ**2*MZp**2) + (ca**2*ch**2*ee**4*MZ**2*sa**2*sw**4*v**2)/(16.*cw**4*MZp**2) + (ca**2*ch**2*ee**4*MZp**2*sa**2*sw**4*v**2)/(16.*cw**4*MZ**2) + (10*ca**2*ch*ee**2*eta**2*gX**2*sa**2*sh*v*xi)/chi**2 - (5*ca**2*ch*ee**2*eta**4*gX**2*sa**2*sh*v*xi)/(chi**2*cw**2) - (2*ca**2*ch*ee**2*eta**2*gX**2*MH**2*sa**2*sh*v*xi)/(chi**2*MZ**2) + (ca**2*ch*ee**2*eta**4*gX**2*MH**2*sa**2*sh*v*xi)/(chi**2*cw**2*MZ**2) - (2*ca**2*ch*ee**2*eta**2*gX**2*MH**2*sa**2*sh*v*xi)/(chi**2*MZp**2) + (ca**2*ch*ee**2*eta**4*gX**2*MH**2*sa**2*sh*v*xi)/(chi**2*cw**2*MZp**2) + (ca**2*ch*ee**2*eta**2*gX**2*MH**4*sa**2*sh*v*xi)/(chi**2*MZ**2*MZp**2) - (ca**2*ch*ee**2*eta**4*gX**2*MH**4*sa**2*sh*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) + (ca**2*ch*ee**2*eta**2*gX**2*MZ**2*sa**2*sh*v*xi)/(chi**2*MZp**2) - (ca**2*ch*ee**2*eta**4*gX**2*MZ**2*sa**2*sh*v*xi)/(2.*chi**2*cw**2*MZp**2) + (ca**2*ch*ee**2*eta**2*gX**2*MZp**2*sa**2*sh*v*xi)/(chi**2*MZ**2) - (ca**2*ch*ee**2*eta**4*gX**2*MZp**2*sa**2*sh*v*xi)/(2.*chi**2*cw**2*MZ**2) + (5*ca**2*ch*cw**2*ee**2*eta**2*gX**2*sa**2*sh*v*xi)/(chi**2*sw**2) - (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MH**2*sa**2*sh*v*xi)/(chi**2*MZ**2*sw**2) - (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MH**2*sa**2*sh*v*xi)/(chi**2*MZp**2*sw**2) + (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MH**4*sa**2*sh*v*xi)/(2.*chi**2*MZ**2*MZp**2*sw**2) + (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MZ**2*sa**2*sh*v*xi)/(2.*chi**2*MZp**2*sw**2) + (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MZp**2*sa**2*sh*v*xi)/(2.*chi**2*MZ**2*sw**2) + (5*ca**3*ch*ee**2*eta**3*gX**2*sa*sh*v*xi)/(chi**2*sw) - (ca**3*ch*ee**2*eta**3*gX**2*MH**2*sa*sh*v*xi)/(chi**2*MZ**2*sw) - (ca**3*ch*ee**2*eta**3*gX**2*MH**2*sa*sh*v*xi)/(chi**2*MZp**2*sw) + (ca**3*ch*ee**2*eta**3*gX**2*MH**4*sa*sh*v*xi)/(2.*chi**2*MZ**2*MZp**2*sw) + (ca**3*ch*ee**2*eta**3*gX**2*MZ**2*sa*sh*v*xi)/(2.*chi**2*MZp**2*sw) + (ca**3*ch*ee**2*eta**3*gX**2*MZp**2*sa*sh*v*xi)/(2.*chi**2*MZ**2*sw) - (5*ca*ch*ee**2*eta**3*gX**2*sa**3*sh*v*xi)/(chi**2*sw) + (ca*ch*ee**2*eta**3*gX**2*MH**2*sa**3*sh*v*xi)/(chi**2*MZ**2*sw) + (ca*ch*ee**2*eta**3*gX**2*MH**2*sa**3*sh*v*xi)/(chi**2*MZp**2*sw) - (ca*ch*ee**2*eta**3*gX**2*MH**4*sa**3*sh*v*xi)/(2.*chi**2*MZ**2*MZp**2*sw) - (ca*ch*ee**2*eta**3*gX**2*MZ**2*sa**3*sh*v*xi)/(2.*chi**2*MZp**2*sw) - (ca*ch*ee**2*eta**3*gX**2*MZp**2*sa**3*sh*v*xi)/(2.*chi**2*MZ**2*sw) + (5*ca**3*ch*ee**2*eta**3*gX**2*sa*sh*sw*v*xi)/(chi**2*cw**2) - (ca**3*ch*ee**2*eta**3*gX**2*MH**2*sa*sh*sw*v*xi)/(chi**2*cw**2*MZ**2) - (ca**3*ch*ee**2*eta**3*gX**2*MH**2*sa*sh*sw*v*xi)/(chi**2*cw**2*MZp**2) + (ca**3*ch*ee**2*eta**3*gX**2*MH**4*sa*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) + (ca**3*ch*ee**2*eta**3*gX**2*MZ**2*sa*sh*sw*v*xi)/(2.*chi**2*cw**2*MZp**2) + (ca**3*ch*ee**2*eta**3*gX**2*MZp**2*sa*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2) - (5*ca*ch*ee**2*eta**3*gX**2*sa**3*sh*sw*v*xi)/(chi**2*cw**2) + (ca*ch*ee**2*eta**3*gX**2*MH**2*sa**3*sh*sw*v*xi)/(chi**2*cw**2*MZ**2) + (ca*ch*ee**2*eta**3*gX**2*MH**2*sa**3*sh*sw*v*xi)/(chi**2*cw**2*MZp**2) - (ca*ch*ee**2*eta**3*gX**2*MH**4*sa**3*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) - (ca*ch*ee**2*eta**3*gX**2*MZ**2*sa**3*sh*sw*v*xi)/(2.*chi**2*cw**2*MZp**2) - (ca*ch*ee**2*eta**3*gX**2*MZp**2*sa**3*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2) + (5*ca**2*ch*ee**2*eta**2*gX**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2) - (ca**2*ch*ee**2*eta**2*gX**2*MH**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2*MZ**2) - (ca**2*ch*ee**2*eta**2*gX**2*MH**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2*MZp**2) + (ca**2*ch*ee**2*eta**2*gX**2*MH**4*sa**2*sh*sw**2*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) + (ca**2*ch*ee**2*eta**2*gX**2*MZ**2*sa**2*sh*sw**2*v*xi)/(2.*chi**2*cw**2*MZp**2) + (ca**2*ch*ee**2*eta**2*gX**2*MZp**2*sa**2*sh*sw**2*v*xi)/(2.*chi**2*cw**2*MZ**2) + (10*ca**2*eta**4*gX**4*sa**2*sh**2*xi**2)/chi**4 - (2*ca**2*eta**4*gX**4*MH**2*sa**2*sh**2*xi**2)/(chi**4*MZ**2) - (2*ca**2*eta**4*gX**4*MH**2*sa**2*sh**2*xi**2)/(chi**4*MZp**2) + (ca**2*eta**4*gX**4*MH**4*sa**2*sh**2*xi**2)/(chi**4*MZ**2*MZp**2) + (ca**2*eta**4*gX**4*MZ**2*sa**2*sh**2*xi**2)/(chi**4*MZp**2) + (ca**2*eta**4*gX**4*MZp**2*sa**2*sh**2*xi**2)/(chi**4*MZ**2))*cmath.sqrt(MH**4 - 2*MH**2*MZ**2 + MZ**4 - 2*MH**2*MZp**2 - 2*MZ**2*MZp**2 + MZp**4))/(16.*cmath.pi*abs(MH)**3)',
+                                  (P.Zp,P.Zp):'(((3*ca**4*ch**2*ee**4*eta**4*v**2)/(4.*cw**4) + (ca**4*ch**2*ee**4*eta**4*MH**4*v**2)/(16.*cw**4*MZp**4) - (ca**4*ch**2*ee**4*eta**4*MH**2*v**2)/(4.*cw**4*MZp**2) + (9*ca**2*ch**2*ee**4*eta**2*sa**2*v**2)/cw**2 + (3*ca**2*ch**2*ee**4*eta**2*MH**4*sa**2*v**2)/(4.*cw**2*MZp**4) - (3*ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*v**2)/(cw**2*MZp**2) + (9*ch**2*ee**4*sa**4*v**2)/2. + (3*ch**2*ee**4*MH**4*sa**4*v**2)/(8.*MZp**4) - (3*ch**2*ee**4*MH**2*sa**4*v**2)/(2.*MZp**2) + (3*ch**2*cw**4*ee**4*sa**4*v**2)/(4.*sw**4) + (ch**2*cw**4*ee**4*MH**4*sa**4*v**2)/(16.*MZp**4*sw**4) - (ch**2*cw**4*ee**4*MH**2*sa**4*v**2)/(4.*MZp**2*sw**4) + (3*ca*ch**2*cw**2*ee**4*eta*sa**3*v**2)/sw**3 + (ca*ch**2*cw**2*ee**4*eta*MH**4*sa**3*v**2)/(4.*MZp**4*sw**3) - (ca*ch**2*cw**2*ee**4*eta*MH**2*sa**3*v**2)/(MZp**2*sw**3) + (9*ca**2*ch**2*ee**4*eta**2*sa**2*v**2)/(2.*sw**2) + (3*ca**2*ch**2*ee**4*eta**2*MH**4*sa**2*v**2)/(8.*MZp**4*sw**2) - (3*ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*v**2)/(2.*MZp**2*sw**2) + (3*ch**2*cw**2*ee**4*sa**4*v**2)/sw**2 + (ch**2*cw**2*ee**4*MH**4*sa**4*v**2)/(4.*MZp**4*sw**2) - (ch**2*cw**2*ee**4*MH**2*sa**4*v**2)/(MZp**2*sw**2) + (3*ca**3*ch**2*ee**4*eta**3*sa*v**2)/(cw**2*sw) + (ca**3*ch**2*ee**4*eta**3*MH**4*sa*v**2)/(4.*cw**2*MZp**4*sw) - (ca**3*ch**2*ee**4*eta**3*MH**2*sa*v**2)/(cw**2*MZp**2*sw) + (9*ca*ch**2*ee**4*eta*sa**3*v**2)/sw + (3*ca*ch**2*ee**4*eta*MH**4*sa**3*v**2)/(4.*MZp**4*sw) - (3*ca*ch**2*ee**4*eta*MH**2*sa**3*v**2)/(MZp**2*sw) + (3*ca**3*ch**2*ee**4*eta**3*sa*sw*v**2)/cw**4 + (ca**3*ch**2*ee**4*eta**3*MH**4*sa*sw*v**2)/(4.*cw**4*MZp**4) - (ca**3*ch**2*ee**4*eta**3*MH**2*sa*sw*v**2)/(cw**4*MZp**2) + (9*ca*ch**2*ee**4*eta*sa**3*sw*v**2)/cw**2 + (3*ca*ch**2*ee**4*eta*MH**4*sa**3*sw*v**2)/(4.*cw**2*MZp**4) - (3*ca*ch**2*ee**4*eta*MH**2*sa**3*sw*v**2)/(cw**2*MZp**2) + (9*ca**2*ch**2*ee**4*eta**2*sa**2*sw**2*v**2)/(2.*cw**4) + (3*ca**2*ch**2*ee**4*eta**2*MH**4*sa**2*sw**2*v**2)/(8.*cw**4*MZp**4) - (3*ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*sw**2*v**2)/(2.*cw**4*MZp**2) + (3*ch**2*ee**4*sa**4*sw**2*v**2)/cw**2 + (ch**2*ee**4*MH**4*sa**4*sw**2*v**2)/(4.*cw**2*MZp**4) - (ch**2*ee**4*MH**2*sa**4*sw**2*v**2)/(cw**2*MZp**2) + (3*ca*ch**2*ee**4*eta*sa**3*sw**3*v**2)/cw**4 + (ca*ch**2*ee**4*eta*MH**4*sa**3*sw**3*v**2)/(4.*cw**4*MZp**4) - (ca*ch**2*ee**4*eta*MH**2*sa**3*sw**3*v**2)/(cw**4*MZp**2) + (3*ch**2*ee**4*sa**4*sw**4*v**2)/(4.*cw**4) + (ch**2*ee**4*MH**4*sa**4*sw**4*v**2)/(16.*cw**4*MZp**4) - (ch**2*ee**4*MH**2*sa**4*sw**4*v**2)/(4.*cw**4*MZp**2) - (6*ca**4*ch*ee**2*eta**4*gX**2*sh*v*xi)/(chi**2*cw**2) - (ca**4*ch*ee**2*eta**4*gX**2*MH**4*sh*v*xi)/(2.*chi**2*cw**2*MZp**4) + (2*ca**4*ch*ee**2*eta**4*gX**2*MH**2*sh*v*xi)/(chi**2*cw**2*MZp**2) - (12*ca**2*ch*ee**2*eta**2*gX**2*sa**2*sh*v*xi)/chi**2 - (ca**2*ch*ee**2*eta**2*gX**2*MH**4*sa**2*sh*v*xi)/(chi**2*MZp**4) + (4*ca**2*ch*ee**2*eta**2*gX**2*MH**2*sa**2*sh*v*xi)/(chi**2*MZp**2) - (6*ca**2*ch*cw**2*ee**2*eta**2*gX**2*sa**2*sh*v*xi)/(chi**2*sw**2) - (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MH**4*sa**2*sh*v*xi)/(2.*chi**2*MZp**4*sw**2) + (2*ca**2*ch*cw**2*ee**2*eta**2*gX**2*MH**2*sa**2*sh*v*xi)/(chi**2*MZp**2*sw**2) - (12*ca**3*ch*ee**2*eta**3*gX**2*sa*sh*v*xi)/(chi**2*sw) - (ca**3*ch*ee**2*eta**3*gX**2*MH**4*sa*sh*v*xi)/(chi**2*MZp**4*sw) + (4*ca**3*ch*ee**2*eta**3*gX**2*MH**2*sa*sh*v*xi)/(chi**2*MZp**2*sw) - (12*ca**3*ch*ee**2*eta**3*gX**2*sa*sh*sw*v*xi)/(chi**2*cw**2) - (ca**3*ch*ee**2*eta**3*gX**2*MH**4*sa*sh*sw*v*xi)/(chi**2*cw**2*MZp**4) + (4*ca**3*ch*ee**2*eta**3*gX**2*MH**2*sa*sh*sw*v*xi)/(chi**2*cw**2*MZp**2) - (6*ca**2*ch*ee**2*eta**2*gX**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2) - (ca**2*ch*ee**2*eta**2*gX**2*MH**4*sa**2*sh*sw**2*v*xi)/(2.*chi**2*cw**2*MZp**4) + (2*ca**2*ch*ee**2*eta**2*gX**2*MH**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2*MZp**2) + (12*ca**4*eta**4*gX**4*sh**2*xi**2)/chi**4 + (ca**4*eta**4*gX**4*MH**4*sh**2*xi**2)/(chi**4*MZp**4) - (4*ca**4*eta**4*gX**4*MH**2*sh**2*xi**2)/(chi**4*MZp**2))*cmath.sqrt(MH**4 - 4*MH**2*MZp**2))/(32.*cmath.pi*abs(MH)**3)'})
+
+Decay_hs = Decay(name = 'Decay_hs',
+                 particle = P.hs,
+                 partial_widths = {(P.A,P.A):'(AH**2*MHS**6*sh**2)/(64.*cmath.pi*abs(MHS)**3)',
+                                   (P.b,P.b__tilde__):'((-12*MB**2*sh**2*yb**2 + 3*MHS**2*sh**2*yb**2)*cmath.sqrt(-4*MB**2*MHS**2 + MHS**4))/(16.*cmath.pi*abs(MHS)**3)',
+                                   (P.c,P.c__tilde__):'((-12*MC**2*sh**2*yc**2 + 3*MHS**2*sh**2*yc**2)*cmath.sqrt(-4*MC**2*MHS**2 + MHS**4))/(16.*cmath.pi*abs(MHS)**3)',
+                                   (P.e__minus__,P.e__plus__):'(MHS**4*sh**2*ye**2)/(16.*cmath.pi*abs(MHS)**3)',
+                                   (P.G,P.G):'(GH**2*MHS**6*sh**2)/(8.*cmath.pi*abs(MHS)**3)',
+                                   (P.h,P.h):'((4*ch**4*kap**2*sh**2*v**2 - 24*ch**4*kap*lam*sh**2*v**2 + 36*ch**4*lam**2*sh**2*v**2 - 4*ch**2*kap**2*sh**4*v**2 + 12*ch**2*kap*lam*sh**4*v**2 + kap**2*sh**6*v**2 - 4*ch**5*kap**2*sh*v*xi + 12*ch**5*kap*lam*sh*v*xi + 10*ch**3*kap**2*sh**3*v*xi - 24*ch**3*kap*lam*sh**3*v*xi - 24*ch**3*kap*rho*sh**3*v*xi + 72*ch**3*lam*rho*sh**3*v*xi - 4*ch*kap**2*sh**5*v*xi + 12*ch*kap*rho*sh**5*v*xi + ch**6*kap**2*xi**2 - 4*ch**4*kap**2*sh**2*xi**2 + 12*ch**4*kap*rho*sh**2*xi**2 + 4*ch**2*kap**2*sh**4*xi**2 - 24*ch**2*kap*rho*sh**4*xi**2 + 36*ch**2*rho**2*sh**4*xi**2)*cmath.sqrt(-4*MH**2*MHS**2 + MHS**4))/(32.*cmath.pi*abs(MHS)**3)',
+                                   (P.m__minus__,P.m__plus__):'(MHS**4*sh**2*ym**2)/(16.*cmath.pi*abs(MHS)**3)',
+                                   (P.t,P.t__tilde__):'((3*MHS**2*sh**2*yt**2 - 12*MT**2*sh**2*yt**2)*cmath.sqrt(MHS**4 - 4*MHS**2*MT**2))/(16.*cmath.pi*abs(MHS)**3)',
+                                   (P.tt__minus__,P.tt__plus__):'((MHS**2*sh**2*ytau**2 - 4*MTA**2*sh**2*ytau**2)*cmath.sqrt(MHS**4 - 4*MHS**2*MTA**2))/(16.*cmath.pi*abs(MHS)**3)',
+                                   (P.W__minus__,P.W__plus__):'(((3*ee**4*sh**2*v**2)/(4.*sw**4) + (ee**4*MHS**4*sh**2*v**2)/(16.*MW**4*sw**4) - (ee**4*MHS**2*sh**2*v**2)/(4.*MW**2*sw**4))*cmath.sqrt(MHS**4 - 4*MHS**2*MW**2))/(16.*cmath.pi*abs(MHS)**3)',
+                                   (P.Z,P.Z):'(((9*ca**4*ee**4*sh**2*v**2)/2. + (3*ca**4*ee**4*MHS**4*sh**2*v**2)/(8.*MZ**4) - (3*ca**4*ee**4*MHS**2*sh**2*v**2)/(2.*MZ**2) + (9*ca**2*ee**4*eta**2*sa**2*sh**2*v**2)/cw**2 + (3*ca**2*ee**4*eta**2*MHS**4*sa**2*sh**2*v**2)/(4.*cw**2*MZ**4) - (3*ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*v**2)/(cw**2*MZ**2) + (3*ee**4*eta**4*sa**4*sh**2*v**2)/(4.*cw**4) + (ee**4*eta**4*MHS**4*sa**4*sh**2*v**2)/(16.*cw**4*MZ**4) - (ee**4*eta**4*MHS**2*sa**4*sh**2*v**2)/(4.*cw**4*MZ**2) + (3*ca**4*cw**4*ee**4*sh**2*v**2)/(4.*sw**4) + (ca**4*cw**4*ee**4*MHS**4*sh**2*v**2)/(16.*MZ**4*sw**4) - (ca**4*cw**4*ee**4*MHS**2*sh**2*v**2)/(4.*MZ**2*sw**4) - (3*ca**3*cw**2*ee**4*eta*sa*sh**2*v**2)/sw**3 - (ca**3*cw**2*ee**4*eta*MHS**4*sa*sh**2*v**2)/(4.*MZ**4*sw**3) + (ca**3*cw**2*ee**4*eta*MHS**2*sa*sh**2*v**2)/(MZ**2*sw**3) + (3*ca**4*cw**2*ee**4*sh**2*v**2)/sw**2 + (ca**4*cw**2*ee**4*MHS**4*sh**2*v**2)/(4.*MZ**4*sw**2) - (ca**4*cw**2*ee**4*MHS**2*sh**2*v**2)/(MZ**2*sw**2) + (9*ca**2*ee**4*eta**2*sa**2*sh**2*v**2)/(2.*sw**2) + (3*ca**2*ee**4*eta**2*MHS**4*sa**2*sh**2*v**2)/(8.*MZ**4*sw**2) - (3*ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*v**2)/(2.*MZ**2*sw**2) - (9*ca**3*ee**4*eta*sa*sh**2*v**2)/sw - (3*ca**3*ee**4*eta*MHS**4*sa*sh**2*v**2)/(4.*MZ**4*sw) + (3*ca**3*ee**4*eta*MHS**2*sa*sh**2*v**2)/(MZ**2*sw) - (3*ca*ee**4*eta**3*sa**3*sh**2*v**2)/(cw**2*sw) - (ca*ee**4*eta**3*MHS**4*sa**3*sh**2*v**2)/(4.*cw**2*MZ**4*sw) + (ca*ee**4*eta**3*MHS**2*sa**3*sh**2*v**2)/(cw**2*MZ**2*sw) - (9*ca**3*ee**4*eta*sa*sh**2*sw*v**2)/cw**2 - (3*ca**3*ee**4*eta*MHS**4*sa*sh**2*sw*v**2)/(4.*cw**2*MZ**4) + (3*ca**3*ee**4*eta*MHS**2*sa*sh**2*sw*v**2)/(cw**2*MZ**2) - (3*ca*ee**4*eta**3*sa**3*sh**2*sw*v**2)/cw**4 - (ca*ee**4*eta**3*MHS**4*sa**3*sh**2*sw*v**2)/(4.*cw**4*MZ**4) + (ca*ee**4*eta**3*MHS**2*sa**3*sh**2*sw*v**2)/(cw**4*MZ**2) + (3*ca**4*ee**4*sh**2*sw**2*v**2)/cw**2 + (ca**4*ee**4*MHS**4*sh**2*sw**2*v**2)/(4.*cw**2*MZ**4) - (ca**4*ee**4*MHS**2*sh**2*sw**2*v**2)/(cw**2*MZ**2) + (9*ca**2*ee**4*eta**2*sa**2*sh**2*sw**2*v**2)/(2.*cw**4) + (3*ca**2*ee**4*eta**2*MHS**4*sa**2*sh**2*sw**2*v**2)/(8.*cw**4*MZ**4) - (3*ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*sw**2*v**2)/(2.*cw**4*MZ**2) - (3*ca**3*ee**4*eta*sa*sh**2*sw**3*v**2)/cw**4 - (ca**3*ee**4*eta*MHS**4*sa*sh**2*sw**3*v**2)/(4.*cw**4*MZ**4) + (ca**3*ee**4*eta*MHS**2*sa*sh**2*sw**3*v**2)/(cw**4*MZ**2) + (3*ca**4*ee**4*sh**2*sw**4*v**2)/(4.*cw**4) + (ca**4*ee**4*MHS**4*sh**2*sw**4*v**2)/(16.*cw**4*MZ**4) - (ca**4*ee**4*MHS**2*sh**2*sw**4*v**2)/(4.*cw**4*MZ**2) + (12*ca**2*ch*ee**2*eta**2*gX**2*sa**2*sh*v*xi)/chi**2 + (ca**2*ch*ee**2*eta**2*gX**2*MHS**4*sa**2*sh*v*xi)/(chi**2*MZ**4) - (4*ca**2*ch*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*v*xi)/(chi**2*MZ**2) + (6*ch*ee**2*eta**4*gX**2*sa**4*sh*v*xi)/(chi**2*cw**2) + (ch*ee**2*eta**4*gX**2*MHS**4*sa**4*sh*v*xi)/(2.*chi**2*cw**2*MZ**4) - (2*ch*ee**2*eta**4*gX**2*MHS**2*sa**4*sh*v*xi)/(chi**2*cw**2*MZ**2) + (6*ca**2*ch*cw**2*ee**2*eta**2*gX**2*sa**2*sh*v*xi)/(chi**2*sw**2) + (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MHS**4*sa**2*sh*v*xi)/(2.*chi**2*MZ**4*sw**2) - (2*ca**2*ch*cw**2*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*v*xi)/(chi**2*MZ**2*sw**2) - (12*ca*ch*ee**2*eta**3*gX**2*sa**3*sh*v*xi)/(chi**2*sw) - (ca*ch*ee**2*eta**3*gX**2*MHS**4*sa**3*sh*v*xi)/(chi**2*MZ**4*sw) + (4*ca*ch*ee**2*eta**3*gX**2*MHS**2*sa**3*sh*v*xi)/(chi**2*MZ**2*sw) - (12*ca*ch*ee**2*eta**3*gX**2*sa**3*sh*sw*v*xi)/(chi**2*cw**2) - (ca*ch*ee**2*eta**3*gX**2*MHS**4*sa**3*sh*sw*v*xi)/(chi**2*cw**2*MZ**4) + (4*ca*ch*ee**2*eta**3*gX**2*MHS**2*sa**3*sh*sw*v*xi)/(chi**2*cw**2*MZ**2) + (6*ca**2*ch*ee**2*eta**2*gX**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2) + (ca**2*ch*ee**2*eta**2*gX**2*MHS**4*sa**2*sh*sw**2*v*xi)/(2.*chi**2*cw**2*MZ**4) - (2*ca**2*ch*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2*MZ**2) + (12*ch**2*eta**4*gX**4*sa**4*xi**2)/chi**4 + (ch**2*eta**4*gX**4*MHS**4*sa**4*xi**2)/(chi**4*MZ**4) - (4*ch**2*eta**4*gX**4*MHS**2*sa**4*xi**2)/(chi**4*MZ**2))*cmath.sqrt(MHS**4 - 4*MHS**2*MZ**2))/(32.*cmath.pi*abs(MHS)**3)',
+                                   (P.Z,P.Zp):'(((5*ca**4*ee**4*eta**2*sh**2*v**2)/(4.*cw**2) - (ca**4*ee**4*eta**2*MHS**2*sh**2*v**2)/(4.*cw**2*MZ**2) - (ca**4*ee**4*eta**2*MHS**2*sh**2*v**2)/(4.*cw**2*MZp**2) + (ca**4*ee**4*eta**2*MHS**4*sh**2*v**2)/(8.*cw**2*MZ**2*MZp**2) + (ca**4*ee**4*eta**2*MZ**2*sh**2*v**2)/(8.*cw**2*MZp**2) + (ca**4*ee**4*eta**2*MZp**2*sh**2*v**2)/(8.*cw**2*MZ**2) + (15*ca**2*ee**4*sa**2*sh**2*v**2)/4. - (5*ca**2*ee**4*eta**2*sa**2*sh**2*v**2)/cw**2 + (5*ca**2*ee**4*eta**4*sa**2*sh**2*v**2)/(8.*cw**4) - (3*ca**2*ee**4*MHS**2*sa**2*sh**2*v**2)/(4.*MZ**2) + (ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*v**2)/(cw**2*MZ**2) - (ca**2*ee**4*eta**4*MHS**2*sa**2*sh**2*v**2)/(8.*cw**4*MZ**2) - (3*ca**2*ee**4*MHS**2*sa**2*sh**2*v**2)/(4.*MZp**2) + (ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*v**2)/(cw**2*MZp**2) - (ca**2*ee**4*eta**4*MHS**2*sa**2*sh**2*v**2)/(8.*cw**4*MZp**2) + (3*ca**2*ee**4*MHS**4*sa**2*sh**2*v**2)/(8.*MZ**2*MZp**2) - (ca**2*ee**4*eta**2*MHS**4*sa**2*sh**2*v**2)/(2.*cw**2*MZ**2*MZp**2) + (ca**2*ee**4*eta**4*MHS**4*sa**2*sh**2*v**2)/(16.*cw**4*MZ**2*MZp**2) + (3*ca**2*ee**4*MZ**2*sa**2*sh**2*v**2)/(8.*MZp**2) - (ca**2*ee**4*eta**2*MZ**2*sa**2*sh**2*v**2)/(2.*cw**2*MZp**2) + (ca**2*ee**4*eta**4*MZ**2*sa**2*sh**2*v**2)/(16.*cw**4*MZp**2) + (3*ca**2*ee**4*MZp**2*sa**2*sh**2*v**2)/(8.*MZ**2) - (ca**2*ee**4*eta**2*MZp**2*sa**2*sh**2*v**2)/(2.*cw**2*MZ**2) + (ca**2*ee**4*eta**4*MZp**2*sa**2*sh**2*v**2)/(16.*cw**4*MZ**2) + (5*ee**4*eta**2*sa**4*sh**2*v**2)/(4.*cw**2) - (ee**4*eta**2*MHS**2*sa**4*sh**2*v**2)/(4.*cw**2*MZ**2) - (ee**4*eta**2*MHS**2*sa**4*sh**2*v**2)/(4.*cw**2*MZp**2) + (ee**4*eta**2*MHS**4*sa**4*sh**2*v**2)/(8.*cw**2*MZ**2*MZp**2) + (ee**4*eta**2*MZ**2*sa**4*sh**2*v**2)/(8.*cw**2*MZp**2) + (ee**4*eta**2*MZp**2*sa**4*sh**2*v**2)/(8.*cw**2*MZ**2) + (5*ca**2*cw**4*ee**4*sa**2*sh**2*v**2)/(8.*sw**4) - (ca**2*cw**4*ee**4*MHS**2*sa**2*sh**2*v**2)/(8.*MZ**2*sw**4) - (ca**2*cw**4*ee**4*MHS**2*sa**2*sh**2*v**2)/(8.*MZp**2*sw**4) + (ca**2*cw**4*ee**4*MHS**4*sa**2*sh**2*v**2)/(16.*MZ**2*MZp**2*sw**4) + (ca**2*cw**4*ee**4*MZ**2*sa**2*sh**2*v**2)/(16.*MZp**2*sw**4) + (ca**2*cw**4*ee**4*MZp**2*sa**2*sh**2*v**2)/(16.*MZ**2*sw**4) + (5*ca**3*cw**2*ee**4*eta*sa*sh**2*v**2)/(4.*sw**3) - (ca**3*cw**2*ee**4*eta*MHS**2*sa*sh**2*v**2)/(4.*MZ**2*sw**3) - (ca**3*cw**2*ee**4*eta*MHS**2*sa*sh**2*v**2)/(4.*MZp**2*sw**3) + (ca**3*cw**2*ee**4*eta*MHS**4*sa*sh**2*v**2)/(8.*MZ**2*MZp**2*sw**3) + (ca**3*cw**2*ee**4*eta*MZ**2*sa*sh**2*v**2)/(8.*MZp**2*sw**3) + (ca**3*cw**2*ee**4*eta*MZp**2*sa*sh**2*v**2)/(8.*MZ**2*sw**3) - (5*ca*cw**2*ee**4*eta*sa**3*sh**2*v**2)/(4.*sw**3) + (ca*cw**2*ee**4*eta*MHS**2*sa**3*sh**2*v**2)/(4.*MZ**2*sw**3) + (ca*cw**2*ee**4*eta*MHS**2*sa**3*sh**2*v**2)/(4.*MZp**2*sw**3) - (ca*cw**2*ee**4*eta*MHS**4*sa**3*sh**2*v**2)/(8.*MZ**2*MZp**2*sw**3) - (ca*cw**2*ee**4*eta*MZ**2*sa**3*sh**2*v**2)/(8.*MZp**2*sw**3) - (ca*cw**2*ee**4*eta*MZp**2*sa**3*sh**2*v**2)/(8.*MZ**2*sw**3) + (5*ca**4*ee**4*eta**2*sh**2*v**2)/(8.*sw**2) - (ca**4*ee**4*eta**2*MHS**2*sh**2*v**2)/(8.*MZ**2*sw**2) - (ca**4*ee**4*eta**2*MHS**2*sh**2*v**2)/(8.*MZp**2*sw**2) + (ca**4*ee**4*eta**2*MHS**4*sh**2*v**2)/(16.*MZ**2*MZp**2*sw**2) + (ca**4*ee**4*eta**2*MZ**2*sh**2*v**2)/(16.*MZp**2*sw**2) + (ca**4*ee**4*eta**2*MZp**2*sh**2*v**2)/(16.*MZ**2*sw**2) + (5*ca**2*cw**2*ee**4*sa**2*sh**2*v**2)/(2.*sw**2) - (5*ca**2*ee**4*eta**2*sa**2*sh**2*v**2)/(2.*sw**2) - (ca**2*cw**2*ee**4*MHS**2*sa**2*sh**2*v**2)/(2.*MZ**2*sw**2) + (ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*v**2)/(2.*MZ**2*sw**2) - (ca**2*cw**2*ee**4*MHS**2*sa**2*sh**2*v**2)/(2.*MZp**2*sw**2) + (ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*v**2)/(2.*MZp**2*sw**2) + (ca**2*cw**2*ee**4*MHS**4*sa**2*sh**2*v**2)/(4.*MZ**2*MZp**2*sw**2) - (ca**2*ee**4*eta**2*MHS**4*sa**2*sh**2*v**2)/(4.*MZ**2*MZp**2*sw**2) + (ca**2*cw**2*ee**4*MZ**2*sa**2*sh**2*v**2)/(4.*MZp**2*sw**2) - (ca**2*ee**4*eta**2*MZ**2*sa**2*sh**2*v**2)/(4.*MZp**2*sw**2) + (ca**2*cw**2*ee**4*MZp**2*sa**2*sh**2*v**2)/(4.*MZ**2*sw**2) - (ca**2*ee**4*eta**2*MZp**2*sa**2*sh**2*v**2)/(4.*MZ**2*sw**2) + (5*ee**4*eta**2*sa**4*sh**2*v**2)/(8.*sw**2) - (ee**4*eta**2*MHS**2*sa**4*sh**2*v**2)/(8.*MZ**2*sw**2) - (ee**4*eta**2*MHS**2*sa**4*sh**2*v**2)/(8.*MZp**2*sw**2) + (ee**4*eta**2*MHS**4*sa**4*sh**2*v**2)/(16.*MZ**2*MZp**2*sw**2) + (ee**4*eta**2*MZ**2*sa**4*sh**2*v**2)/(16.*MZp**2*sw**2) + (ee**4*eta**2*MZp**2*sa**4*sh**2*v**2)/(16.*MZ**2*sw**2) + (15*ca**3*ee**4*eta*sa*sh**2*v**2)/(4.*sw) - (5*ca**3*ee**4*eta**3*sa*sh**2*v**2)/(4.*cw**2*sw) - (3*ca**3*ee**4*eta*MHS**2*sa*sh**2*v**2)/(4.*MZ**2*sw) + (ca**3*ee**4*eta**3*MHS**2*sa*sh**2*v**2)/(4.*cw**2*MZ**2*sw) - (3*ca**3*ee**4*eta*MHS**2*sa*sh**2*v**2)/(4.*MZp**2*sw) + (ca**3*ee**4*eta**3*MHS**2*sa*sh**2*v**2)/(4.*cw**2*MZp**2*sw) + (3*ca**3*ee**4*eta*MHS**4*sa*sh**2*v**2)/(8.*MZ**2*MZp**2*sw) - (ca**3*ee**4*eta**3*MHS**4*sa*sh**2*v**2)/(8.*cw**2*MZ**2*MZp**2*sw) + (3*ca**3*ee**4*eta*MZ**2*sa*sh**2*v**2)/(8.*MZp**2*sw) - (ca**3*ee**4*eta**3*MZ**2*sa*sh**2*v**2)/(8.*cw**2*MZp**2*sw) + (3*ca**3*ee**4*eta*MZp**2*sa*sh**2*v**2)/(8.*MZ**2*sw) - (ca**3*ee**4*eta**3*MZp**2*sa*sh**2*v**2)/(8.*cw**2*MZ**2*sw) - (15*ca*ee**4*eta*sa**3*sh**2*v**2)/(4.*sw) + (5*ca*ee**4*eta**3*sa**3*sh**2*v**2)/(4.*cw**2*sw) + (3*ca*ee**4*eta*MHS**2*sa**3*sh**2*v**2)/(4.*MZ**2*sw) - (ca*ee**4*eta**3*MHS**2*sa**3*sh**2*v**2)/(4.*cw**2*MZ**2*sw) + (3*ca*ee**4*eta*MHS**2*sa**3*sh**2*v**2)/(4.*MZp**2*sw) - (ca*ee**4*eta**3*MHS**2*sa**3*sh**2*v**2)/(4.*cw**2*MZp**2*sw) - (3*ca*ee**4*eta*MHS**4*sa**3*sh**2*v**2)/(8.*MZ**2*MZp**2*sw) + (ca*ee**4*eta**3*MHS**4*sa**3*sh**2*v**2)/(8.*cw**2*MZ**2*MZp**2*sw) - (3*ca*ee**4*eta*MZ**2*sa**3*sh**2*v**2)/(8.*MZp**2*sw) + (ca*ee**4*eta**3*MZ**2*sa**3*sh**2*v**2)/(8.*cw**2*MZp**2*sw) - (3*ca*ee**4*eta*MZp**2*sa**3*sh**2*v**2)/(8.*MZ**2*sw) + (ca*ee**4*eta**3*MZp**2*sa**3*sh**2*v**2)/(8.*cw**2*MZ**2*sw) + (15*ca**3*ee**4*eta*sa*sh**2*sw*v**2)/(4.*cw**2) - (5*ca**3*ee**4*eta**3*sa*sh**2*sw*v**2)/(4.*cw**4) - (3*ca**3*ee**4*eta*MHS**2*sa*sh**2*sw*v**2)/(4.*cw**2*MZ**2) + (ca**3*ee**4*eta**3*MHS**2*sa*sh**2*sw*v**2)/(4.*cw**4*MZ**2) - (3*ca**3*ee**4*eta*MHS**2*sa*sh**2*sw*v**2)/(4.*cw**2*MZp**2) + (ca**3*ee**4*eta**3*MHS**2*sa*sh**2*sw*v**2)/(4.*cw**4*MZp**2) + (3*ca**3*ee**4*eta*MHS**4*sa*sh**2*sw*v**2)/(8.*cw**2*MZ**2*MZp**2) - (ca**3*ee**4*eta**3*MHS**4*sa*sh**2*sw*v**2)/(8.*cw**4*MZ**2*MZp**2) + (3*ca**3*ee**4*eta*MZ**2*sa*sh**2*sw*v**2)/(8.*cw**2*MZp**2) - (ca**3*ee**4*eta**3*MZ**2*sa*sh**2*sw*v**2)/(8.*cw**4*MZp**2) + (3*ca**3*ee**4*eta*MZp**2*sa*sh**2*sw*v**2)/(8.*cw**2*MZ**2) - (ca**3*ee**4*eta**3*MZp**2*sa*sh**2*sw*v**2)/(8.*cw**4*MZ**2) - (15*ca*ee**4*eta*sa**3*sh**2*sw*v**2)/(4.*cw**2) + (5*ca*ee**4*eta**3*sa**3*sh**2*sw*v**2)/(4.*cw**4) + (3*ca*ee**4*eta*MHS**2*sa**3*sh**2*sw*v**2)/(4.*cw**2*MZ**2) - (ca*ee**4*eta**3*MHS**2*sa**3*sh**2*sw*v**2)/(4.*cw**4*MZ**2) + (3*ca*ee**4*eta*MHS**2*sa**3*sh**2*sw*v**2)/(4.*cw**2*MZp**2) - (ca*ee**4*eta**3*MHS**2*sa**3*sh**2*sw*v**2)/(4.*cw**4*MZp**2) - (3*ca*ee**4*eta*MHS**4*sa**3*sh**2*sw*v**2)/(8.*cw**2*MZ**2*MZp**2) + (ca*ee**4*eta**3*MHS**4*sa**3*sh**2*sw*v**2)/(8.*cw**4*MZ**2*MZp**2) - (3*ca*ee**4*eta*MZ**2*sa**3*sh**2*sw*v**2)/(8.*cw**2*MZp**2) + (ca*ee**4*eta**3*MZ**2*sa**3*sh**2*sw*v**2)/(8.*cw**4*MZp**2) - (3*ca*ee**4*eta*MZp**2*sa**3*sh**2*sw*v**2)/(8.*cw**2*MZ**2) + (ca*ee**4*eta**3*MZp**2*sa**3*sh**2*sw*v**2)/(8.*cw**4*MZ**2) + (5*ca**4*ee**4*eta**2*sh**2*sw**2*v**2)/(8.*cw**4) - (ca**4*ee**4*eta**2*MHS**2*sh**2*sw**2*v**2)/(8.*cw**4*MZ**2) - (ca**4*ee**4*eta**2*MHS**2*sh**2*sw**2*v**2)/(8.*cw**4*MZp**2) + (ca**4*ee**4*eta**2*MHS**4*sh**2*sw**2*v**2)/(16.*cw**4*MZ**2*MZp**2) + (ca**4*ee**4*eta**2*MZ**2*sh**2*sw**2*v**2)/(16.*cw**4*MZp**2) + (ca**4*ee**4*eta**2*MZp**2*sh**2*sw**2*v**2)/(16.*cw**4*MZ**2) + (5*ca**2*ee**4*sa**2*sh**2*sw**2*v**2)/(2.*cw**2) - (5*ca**2*ee**4*eta**2*sa**2*sh**2*sw**2*v**2)/(2.*cw**4) - (ca**2*ee**4*MHS**2*sa**2*sh**2*sw**2*v**2)/(2.*cw**2*MZ**2) + (ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*sw**2*v**2)/(2.*cw**4*MZ**2) - (ca**2*ee**4*MHS**2*sa**2*sh**2*sw**2*v**2)/(2.*cw**2*MZp**2) + (ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*sw**2*v**2)/(2.*cw**4*MZp**2) + (ca**2*ee**4*MHS**4*sa**2*sh**2*sw**2*v**2)/(4.*cw**2*MZ**2*MZp**2) - (ca**2*ee**4*eta**2*MHS**4*sa**2*sh**2*sw**2*v**2)/(4.*cw**4*MZ**2*MZp**2) + (ca**2*ee**4*MZ**2*sa**2*sh**2*sw**2*v**2)/(4.*cw**2*MZp**2) - (ca**2*ee**4*eta**2*MZ**2*sa**2*sh**2*sw**2*v**2)/(4.*cw**4*MZp**2) + (ca**2*ee**4*MZp**2*sa**2*sh**2*sw**2*v**2)/(4.*cw**2*MZ**2) - (ca**2*ee**4*eta**2*MZp**2*sa**2*sh**2*sw**2*v**2)/(4.*cw**4*MZ**2) + (5*ee**4*eta**2*sa**4*sh**2*sw**2*v**2)/(8.*cw**4) - (ee**4*eta**2*MHS**2*sa**4*sh**2*sw**2*v**2)/(8.*cw**4*MZ**2) - (ee**4*eta**2*MHS**2*sa**4*sh**2*sw**2*v**2)/(8.*cw**4*MZp**2) + (ee**4*eta**2*MHS**4*sa**4*sh**2*sw**2*v**2)/(16.*cw**4*MZ**2*MZp**2) + (ee**4*eta**2*MZ**2*sa**4*sh**2*sw**2*v**2)/(16.*cw**4*MZp**2) + (ee**4*eta**2*MZp**2*sa**4*sh**2*sw**2*v**2)/(16.*cw**4*MZ**2) + (5*ca**3*ee**4*eta*sa*sh**2*sw**3*v**2)/(4.*cw**4) - (ca**3*ee**4*eta*MHS**2*sa*sh**2*sw**3*v**2)/(4.*cw**4*MZ**2) - (ca**3*ee**4*eta*MHS**2*sa*sh**2*sw**3*v**2)/(4.*cw**4*MZp**2) + (ca**3*ee**4*eta*MHS**4*sa*sh**2*sw**3*v**2)/(8.*cw**4*MZ**2*MZp**2) + (ca**3*ee**4*eta*MZ**2*sa*sh**2*sw**3*v**2)/(8.*cw**4*MZp**2) + (ca**3*ee**4*eta*MZp**2*sa*sh**2*sw**3*v**2)/(8.*cw**4*MZ**2) - (5*ca*ee**4*eta*sa**3*sh**2*sw**3*v**2)/(4.*cw**4) + (ca*ee**4*eta*MHS**2*sa**3*sh**2*sw**3*v**2)/(4.*cw**4*MZ**2) + (ca*ee**4*eta*MHS**2*sa**3*sh**2*sw**3*v**2)/(4.*cw**4*MZp**2) - (ca*ee**4*eta*MHS**4*sa**3*sh**2*sw**3*v**2)/(8.*cw**4*MZ**2*MZp**2) - (ca*ee**4*eta*MZ**2*sa**3*sh**2*sw**3*v**2)/(8.*cw**4*MZp**2) - (ca*ee**4*eta*MZp**2*sa**3*sh**2*sw**3*v**2)/(8.*cw**4*MZ**2) + (5*ca**2*ee**4*sa**2*sh**2*sw**4*v**2)/(8.*cw**4) - (ca**2*ee**4*MHS**2*sa**2*sh**2*sw**4*v**2)/(8.*cw**4*MZ**2) - (ca**2*ee**4*MHS**2*sa**2*sh**2*sw**4*v**2)/(8.*cw**4*MZp**2) + (ca**2*ee**4*MHS**4*sa**2*sh**2*sw**4*v**2)/(16.*cw**4*MZ**2*MZp**2) + (ca**2*ee**4*MZ**2*sa**2*sh**2*sw**4*v**2)/(16.*cw**4*MZp**2) + (ca**2*ee**4*MZp**2*sa**2*sh**2*sw**4*v**2)/(16.*cw**4*MZ**2) - (10*ca**2*ch*ee**2*eta**2*gX**2*sa**2*sh*v*xi)/chi**2 + (5*ca**2*ch*ee**2*eta**4*gX**2*sa**2*sh*v*xi)/(chi**2*cw**2) + (2*ca**2*ch*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*v*xi)/(chi**2*MZ**2) - (ca**2*ch*ee**2*eta**4*gX**2*MHS**2*sa**2*sh*v*xi)/(chi**2*cw**2*MZ**2) + (2*ca**2*ch*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*v*xi)/(chi**2*MZp**2) - (ca**2*ch*ee**2*eta**4*gX**2*MHS**2*sa**2*sh*v*xi)/(chi**2*cw**2*MZp**2) - (ca**2*ch*ee**2*eta**2*gX**2*MHS**4*sa**2*sh*v*xi)/(chi**2*MZ**2*MZp**2) + (ca**2*ch*ee**2*eta**4*gX**2*MHS**4*sa**2*sh*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) - (ca**2*ch*ee**2*eta**2*gX**2*MZ**2*sa**2*sh*v*xi)/(chi**2*MZp**2) + (ca**2*ch*ee**2*eta**4*gX**2*MZ**2*sa**2*sh*v*xi)/(2.*chi**2*cw**2*MZp**2) - (ca**2*ch*ee**2*eta**2*gX**2*MZp**2*sa**2*sh*v*xi)/(chi**2*MZ**2) + (ca**2*ch*ee**2*eta**4*gX**2*MZp**2*sa**2*sh*v*xi)/(2.*chi**2*cw**2*MZ**2) - (5*ca**2*ch*cw**2*ee**2*eta**2*gX**2*sa**2*sh*v*xi)/(chi**2*sw**2) + (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*v*xi)/(chi**2*MZ**2*sw**2) + (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*v*xi)/(chi**2*MZp**2*sw**2) - (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MHS**4*sa**2*sh*v*xi)/(2.*chi**2*MZ**2*MZp**2*sw**2) - (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MZ**2*sa**2*sh*v*xi)/(2.*chi**2*MZp**2*sw**2) - (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MZp**2*sa**2*sh*v*xi)/(2.*chi**2*MZ**2*sw**2) - (5*ca**3*ch*ee**2*eta**3*gX**2*sa*sh*v*xi)/(chi**2*sw) + (ca**3*ch*ee**2*eta**3*gX**2*MHS**2*sa*sh*v*xi)/(chi**2*MZ**2*sw) + (ca**3*ch*ee**2*eta**3*gX**2*MHS**2*sa*sh*v*xi)/(chi**2*MZp**2*sw) - (ca**3*ch*ee**2*eta**3*gX**2*MHS**4*sa*sh*v*xi)/(2.*chi**2*MZ**2*MZp**2*sw) - (ca**3*ch*ee**2*eta**3*gX**2*MZ**2*sa*sh*v*xi)/(2.*chi**2*MZp**2*sw) - (ca**3*ch*ee**2*eta**3*gX**2*MZp**2*sa*sh*v*xi)/(2.*chi**2*MZ**2*sw) + (5*ca*ch*ee**2*eta**3*gX**2*sa**3*sh*v*xi)/(chi**2*sw) - (ca*ch*ee**2*eta**3*gX**2*MHS**2*sa**3*sh*v*xi)/(chi**2*MZ**2*sw) - (ca*ch*ee**2*eta**3*gX**2*MHS**2*sa**3*sh*v*xi)/(chi**2*MZp**2*sw) + (ca*ch*ee**2*eta**3*gX**2*MHS**4*sa**3*sh*v*xi)/(2.*chi**2*MZ**2*MZp**2*sw) + (ca*ch*ee**2*eta**3*gX**2*MZ**2*sa**3*sh*v*xi)/(2.*chi**2*MZp**2*sw) + (ca*ch*ee**2*eta**3*gX**2*MZp**2*sa**3*sh*v*xi)/(2.*chi**2*MZ**2*sw) - (5*ca**3*ch*ee**2*eta**3*gX**2*sa*sh*sw*v*xi)/(chi**2*cw**2) + (ca**3*ch*ee**2*eta**3*gX**2*MHS**2*sa*sh*sw*v*xi)/(chi**2*cw**2*MZ**2) + (ca**3*ch*ee**2*eta**3*gX**2*MHS**2*sa*sh*sw*v*xi)/(chi**2*cw**2*MZp**2) - (ca**3*ch*ee**2*eta**3*gX**2*MHS**4*sa*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) - (ca**3*ch*ee**2*eta**3*gX**2*MZ**2*sa*sh*sw*v*xi)/(2.*chi**2*cw**2*MZp**2) - (ca**3*ch*ee**2*eta**3*gX**2*MZp**2*sa*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2) + (5*ca*ch*ee**2*eta**3*gX**2*sa**3*sh*sw*v*xi)/(chi**2*cw**2) - (ca*ch*ee**2*eta**3*gX**2*MHS**2*sa**3*sh*sw*v*xi)/(chi**2*cw**2*MZ**2) - (ca*ch*ee**2*eta**3*gX**2*MHS**2*sa**3*sh*sw*v*xi)/(chi**2*cw**2*MZp**2) + (ca*ch*ee**2*eta**3*gX**2*MHS**4*sa**3*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) + (ca*ch*ee**2*eta**3*gX**2*MZ**2*sa**3*sh*sw*v*xi)/(2.*chi**2*cw**2*MZp**2) + (ca*ch*ee**2*eta**3*gX**2*MZp**2*sa**3*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2) - (5*ca**2*ch*ee**2*eta**2*gX**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2) + (ca**2*ch*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2*MZ**2) + (ca**2*ch*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2*MZp**2) - (ca**2*ch*ee**2*eta**2*gX**2*MHS**4*sa**2*sh*sw**2*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) - (ca**2*ch*ee**2*eta**2*gX**2*MZ**2*sa**2*sh*sw**2*v*xi)/(2.*chi**2*cw**2*MZp**2) - (ca**2*ch*ee**2*eta**2*gX**2*MZp**2*sa**2*sh*sw**2*v*xi)/(2.*chi**2*cw**2*MZ**2) + (10*ca**2*ch**2*eta**4*gX**4*sa**2*xi**2)/chi**4 - (2*ca**2*ch**2*eta**4*gX**4*MHS**2*sa**2*xi**2)/(chi**4*MZ**2) - (2*ca**2*ch**2*eta**4*gX**4*MHS**2*sa**2*xi**2)/(chi**4*MZp**2) + (ca**2*ch**2*eta**4*gX**4*MHS**4*sa**2*xi**2)/(chi**4*MZ**2*MZp**2) + (ca**2*ch**2*eta**4*gX**4*MZ**2*sa**2*xi**2)/(chi**4*MZp**2) + (ca**2*ch**2*eta**4*gX**4*MZp**2*sa**2*xi**2)/(chi**4*MZ**2))*cmath.sqrt(MHS**4 - 2*MHS**2*MZ**2 + MZ**4 - 2*MHS**2*MZp**2 - 2*MZ**2*MZp**2 + MZp**4))/(16.*cmath.pi*abs(MHS)**3)',
+                                   (P.Zp,P.Zp):'(((3*ca**4*ee**4*eta**4*sh**2*v**2)/(4.*cw**4) + (ca**4*ee**4*eta**4*MHS**4*sh**2*v**2)/(16.*cw**4*MZp**4) - (ca**4*ee**4*eta**4*MHS**2*sh**2*v**2)/(4.*cw**4*MZp**2) + (9*ca**2*ee**4*eta**2*sa**2*sh**2*v**2)/cw**2 + (3*ca**2*ee**4*eta**2*MHS**4*sa**2*sh**2*v**2)/(4.*cw**2*MZp**4) - (3*ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*v**2)/(cw**2*MZp**2) + (9*ee**4*sa**4*sh**2*v**2)/2. + (3*ee**4*MHS**4*sa**4*sh**2*v**2)/(8.*MZp**4) - (3*ee**4*MHS**2*sa**4*sh**2*v**2)/(2.*MZp**2) + (3*cw**4*ee**4*sa**4*sh**2*v**2)/(4.*sw**4) + (cw**4*ee**4*MHS**4*sa**4*sh**2*v**2)/(16.*MZp**4*sw**4) - (cw**4*ee**4*MHS**2*sa**4*sh**2*v**2)/(4.*MZp**2*sw**4) + (3*ca*cw**2*ee**4*eta*sa**3*sh**2*v**2)/sw**3 + (ca*cw**2*ee**4*eta*MHS**4*sa**3*sh**2*v**2)/(4.*MZp**4*sw**3) - (ca*cw**2*ee**4*eta*MHS**2*sa**3*sh**2*v**2)/(MZp**2*sw**3) + (9*ca**2*ee**4*eta**2*sa**2*sh**2*v**2)/(2.*sw**2) + (3*ca**2*ee**4*eta**2*MHS**4*sa**2*sh**2*v**2)/(8.*MZp**4*sw**2) - (3*ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*v**2)/(2.*MZp**2*sw**2) + (3*cw**2*ee**4*sa**4*sh**2*v**2)/sw**2 + (cw**2*ee**4*MHS**4*sa**4*sh**2*v**2)/(4.*MZp**4*sw**2) - (cw**2*ee**4*MHS**2*sa**4*sh**2*v**2)/(MZp**2*sw**2) + (3*ca**3*ee**4*eta**3*sa*sh**2*v**2)/(cw**2*sw) + (ca**3*ee**4*eta**3*MHS**4*sa*sh**2*v**2)/(4.*cw**2*MZp**4*sw) - (ca**3*ee**4*eta**3*MHS**2*sa*sh**2*v**2)/(cw**2*MZp**2*sw) + (9*ca*ee**4*eta*sa**3*sh**2*v**2)/sw + (3*ca*ee**4*eta*MHS**4*sa**3*sh**2*v**2)/(4.*MZp**4*sw) - (3*ca*ee**4*eta*MHS**2*sa**3*sh**2*v**2)/(MZp**2*sw) + (3*ca**3*ee**4*eta**3*sa*sh**2*sw*v**2)/cw**4 + (ca**3*ee**4*eta**3*MHS**4*sa*sh**2*sw*v**2)/(4.*cw**4*MZp**4) - (ca**3*ee**4*eta**3*MHS**2*sa*sh**2*sw*v**2)/(cw**4*MZp**2) + (9*ca*ee**4*eta*sa**3*sh**2*sw*v**2)/cw**2 + (3*ca*ee**4*eta*MHS**4*sa**3*sh**2*sw*v**2)/(4.*cw**2*MZp**4) - (3*ca*ee**4*eta*MHS**2*sa**3*sh**2*sw*v**2)/(cw**2*MZp**2) + (9*ca**2*ee**4*eta**2*sa**2*sh**2*sw**2*v**2)/(2.*cw**4) + (3*ca**2*ee**4*eta**2*MHS**4*sa**2*sh**2*sw**2*v**2)/(8.*cw**4*MZp**4) - (3*ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*sw**2*v**2)/(2.*cw**4*MZp**2) + (3*ee**4*sa**4*sh**2*sw**2*v**2)/cw**2 + (ee**4*MHS**4*sa**4*sh**2*sw**2*v**2)/(4.*cw**2*MZp**4) - (ee**4*MHS**2*sa**4*sh**2*sw**2*v**2)/(cw**2*MZp**2) + (3*ca*ee**4*eta*sa**3*sh**2*sw**3*v**2)/cw**4 + (ca*ee**4*eta*MHS**4*sa**3*sh**2*sw**3*v**2)/(4.*cw**4*MZp**4) - (ca*ee**4*eta*MHS**2*sa**3*sh**2*sw**3*v**2)/(cw**4*MZp**2) + (3*ee**4*sa**4*sh**2*sw**4*v**2)/(4.*cw**4) + (ee**4*MHS**4*sa**4*sh**2*sw**4*v**2)/(16.*cw**4*MZp**4) - (ee**4*MHS**2*sa**4*sh**2*sw**4*v**2)/(4.*cw**4*MZp**2) + (6*ca**4*ch*ee**2*eta**4*gX**2*sh*v*xi)/(chi**2*cw**2) + (ca**4*ch*ee**2*eta**4*gX**2*MHS**4*sh*v*xi)/(2.*chi**2*cw**2*MZp**4) - (2*ca**4*ch*ee**2*eta**4*gX**2*MHS**2*sh*v*xi)/(chi**2*cw**2*MZp**2) + (12*ca**2*ch*ee**2*eta**2*gX**2*sa**2*sh*v*xi)/chi**2 + (ca**2*ch*ee**2*eta**2*gX**2*MHS**4*sa**2*sh*v*xi)/(chi**2*MZp**4) - (4*ca**2*ch*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*v*xi)/(chi**2*MZp**2) + (6*ca**2*ch*cw**2*ee**2*eta**2*gX**2*sa**2*sh*v*xi)/(chi**2*sw**2) + (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MHS**4*sa**2*sh*v*xi)/(2.*chi**2*MZp**4*sw**2) - (2*ca**2*ch*cw**2*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*v*xi)/(chi**2*MZp**2*sw**2) + (12*ca**3*ch*ee**2*eta**3*gX**2*sa*sh*v*xi)/(chi**2*sw) + (ca**3*ch*ee**2*eta**3*gX**2*MHS**4*sa*sh*v*xi)/(chi**2*MZp**4*sw) - (4*ca**3*ch*ee**2*eta**3*gX**2*MHS**2*sa*sh*v*xi)/(chi**2*MZp**2*sw) + (12*ca**3*ch*ee**2*eta**3*gX**2*sa*sh*sw*v*xi)/(chi**2*cw**2) + (ca**3*ch*ee**2*eta**3*gX**2*MHS**4*sa*sh*sw*v*xi)/(chi**2*cw**2*MZp**4) - (4*ca**3*ch*ee**2*eta**3*gX**2*MHS**2*sa*sh*sw*v*xi)/(chi**2*cw**2*MZp**2) + (6*ca**2*ch*ee**2*eta**2*gX**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2) + (ca**2*ch*ee**2*eta**2*gX**2*MHS**4*sa**2*sh*sw**2*v*xi)/(2.*chi**2*cw**2*MZp**4) - (2*ca**2*ch*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2*MZp**2) + (12*ca**4*ch**2*eta**4*gX**4*xi**2)/chi**4 + (ca**4*ch**2*eta**4*gX**4*MHS**4*xi**2)/(chi**4*MZp**4) - (4*ca**4*ch**2*eta**4*gX**4*MHS**2*xi**2)/(chi**4*MZp**2))*cmath.sqrt(MHS**4 - 4*MHS**2*MZp**2))/(32.*cmath.pi*abs(MHS)**3)'})
+
+Decay_t = Decay(name = 'Decay_t',
+                particle = P.t,
+                partial_widths = {(P.W__plus__,P.b):'(((3*ee**2*MB**2)/(2.*sw**2) + (3*ee**2*MT**2)/(2.*sw**2) + (3*ee**2*MB**4)/(2.*MW**2*sw**2) - (3*ee**2*MB**2*MT**2)/(MW**2*sw**2) + (3*ee**2*MT**4)/(2.*MW**2*sw**2) - (3*ee**2*MW**2)/sw**2)*cmath.sqrt(MB**4 - 2*MB**2*MT**2 + MT**4 - 2*MB**2*MW**2 - 2*MT**2*MW**2 + MW**4))/(96.*cmath.pi*abs(MT)**3)'})
+
+Decay_tt__minus__ = Decay(name = 'Decay_tt__minus__',
+                          particle = P.tt__minus__,
+                          partial_widths = {(P.W__minus__,P.vt):'((MTA**2 - MW**2)*((ee**2*MTA**2)/(2.*sw**2) + (ee**2*MTA**4)/(2.*MW**2*sw**2) - (ee**2*MW**2)/sw**2))/(32.*cmath.pi*abs(MTA)**3)'})
+
+Decay_W__plus__ = Decay(name = 'Decay_W__plus__',
+                        particle = P.W__plus__,
+                        partial_widths = {(P.c,P.d__tilde__):'((-MC**2 + MW**2)*((-3*CKM2x1*ee**2*MC**2*complexconjugate(CKM2x1))/(2.*sw**2) - (3*CKM2x1*ee**2*MC**4*complexconjugate(CKM2x1))/(2.*MW**2*sw**2) + (3*CKM2x1*ee**2*MW**2*complexconjugate(CKM2x1))/sw**2))/(48.*cmath.pi*abs(MW)**3)',
+                                          (P.c,P.s__tilde__):'((-MC**2 + MW**2)*((-3*CKM2x2*ee**2*MC**2*complexconjugate(CKM2x2))/(2.*sw**2) - (3*CKM2x2*ee**2*MC**4*complexconjugate(CKM2x2))/(2.*MW**2*sw**2) + (3*CKM2x2*ee**2*MW**2*complexconjugate(CKM2x2))/sw**2))/(48.*cmath.pi*abs(MW)**3)',
+                                          (P.t,P.b__tilde__):'(((-3*ee**2*MB**2)/(2.*sw**2) - (3*ee**2*MT**2)/(2.*sw**2) - (3*ee**2*MB**4)/(2.*MW**2*sw**2) + (3*ee**2*MB**2*MT**2)/(MW**2*sw**2) - (3*ee**2*MT**4)/(2.*MW**2*sw**2) + (3*ee**2*MW**2)/sw**2)*cmath.sqrt(MB**4 - 2*MB**2*MT**2 + MT**4 - 2*MB**2*MW**2 - 2*MT**2*MW**2 + MW**4))/(48.*cmath.pi*abs(MW)**3)',
+                                          (P.u,P.d__tilde__):'(CKM1x1*ee**2*MW**4*complexconjugate(CKM1x1))/(16.*cmath.pi*sw**2*abs(MW)**3)',
+                                          (P.u,P.s__tilde__):'(CKM1x2*ee**2*MW**4*complexconjugate(CKM1x2))/(16.*cmath.pi*sw**2*abs(MW)**3)',
+                                          (P.ve,P.e__plus__):'(ee**2*MW**4)/(48.*cmath.pi*sw**2*abs(MW)**3)',
+                                          (P.vm,P.m__plus__):'(ee**2*MW**4)/(48.*cmath.pi*sw**2*abs(MW)**3)',
+                                          (P.vt,P.tt__plus__):'((-MTA**2 + MW**2)*(-(ee**2*MTA**2)/(2.*sw**2) - (ee**2*MTA**4)/(2.*MW**2*sw**2) + (ee**2*MW**2)/sw**2))/(48.*cmath.pi*abs(MW)**3)'})
+
+Decay_Z = Decay(name = 'Decay_Z',
+                particle = P.Z,
+                partial_widths = {(P.b,P.b__tilde__):'((-7*ca**2*ee**2*MB**2 + ca**2*ee**2*MZ**2 - (17*ee**2*eta**2*MB**2*sa**2)/(6.*cw**2) + (5*ee**2*eta**2*MZ**2*sa**2)/(6.*cw**2) - (3*ca**2*cw**2*ee**2*MB**2)/(2.*sw**2) + (3*ca**2*cw**2*ee**2*MZ**2)/(2.*sw**2) + (7*ca*ee**2*eta*MB**2*sa)/sw - (ca*ee**2*eta*MZ**2*sa)/sw + (17*ca*ee**2*eta*MB**2*sa*sw)/(3.*cw**2) - (5*ca*ee**2*eta*MZ**2*sa*sw)/(3.*cw**2) - (17*ca**2*ee**2*MB**2*sw**2)/(6.*cw**2) + (5*ca**2*ee**2*MZ**2*sw**2)/(6.*cw**2))*cmath.sqrt(-4*MB**2*MZ**2 + MZ**4))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.c,P.c__tilde__):'((-11*ca**2*ee**2*MC**2 - ca**2*ee**2*MZ**2 + (7*ee**2*eta**2*MC**2*sa**2)/(6.*cw**2) + (17*ee**2*eta**2*MZ**2*sa**2)/(6.*cw**2) - (3*ca**2*cw**2*ee**2*MC**2)/(2.*sw**2) + (3*ca**2*cw**2*ee**2*MZ**2)/(2.*sw**2) + (11*ca*ee**2*eta*MC**2*sa)/sw + (ca*ee**2*eta*MZ**2*sa)/sw - (7*ca*ee**2*eta*MC**2*sa*sw)/(3.*cw**2) - (17*ca*ee**2*eta*MZ**2*sa*sw)/(3.*cw**2) + (7*ca**2*ee**2*MC**2*sw**2)/(6.*cw**2) + (17*ca**2*ee**2*MZ**2*sw**2)/(6.*cw**2))*cmath.sqrt(-4*MC**2*MZ**2 + MZ**4))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.d,P.d__tilde__):'(MZ**2*(ca**2*ee**2*MZ**2 + (5*ee**2*eta**2*MZ**2*sa**2)/(6.*cw**2) + (3*ca**2*cw**2*ee**2*MZ**2)/(2.*sw**2) - (ca*ee**2*eta*MZ**2*sa)/sw - (5*ca*ee**2*eta*MZ**2*sa*sw)/(3.*cw**2) + (5*ca**2*ee**2*MZ**2*sw**2)/(6.*cw**2)))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.e__minus__,P.e__plus__):'(MZ**2*(-(ca**2*ee**2*MZ**2) + (5*ee**2*eta**2*MZ**2*sa**2)/(2.*cw**2) + (ca**2*cw**2*ee**2*MZ**2)/(2.*sw**2) + (ca*ee**2*eta*MZ**2*sa)/sw - (5*ca*ee**2*eta*MZ**2*sa*sw)/cw**2 + (5*ca**2*ee**2*MZ**2*sw**2)/(2.*cw**2)))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.h,P.Zp):'(((5*ca**4*ch**2*ee**4*eta**2*v**2)/(4.*cw**2) - (ca**4*ch**2*ee**4*eta**2*MH**2*v**2)/(4.*cw**2*MZ**2) - (ca**4*ch**2*ee**4*eta**2*MH**2*v**2)/(4.*cw**2*MZp**2) + (ca**4*ch**2*ee**4*eta**2*MH**4*v**2)/(8.*cw**2*MZ**2*MZp**2) + (ca**4*ch**2*ee**4*eta**2*MZ**2*v**2)/(8.*cw**2*MZp**2) + (ca**4*ch**2*ee**4*eta**2*MZp**2*v**2)/(8.*cw**2*MZ**2) + (15*ca**2*ch**2*ee**4*sa**2*v**2)/4. - (5*ca**2*ch**2*ee**4*eta**2*sa**2*v**2)/cw**2 + (5*ca**2*ch**2*ee**4*eta**4*sa**2*v**2)/(8.*cw**4) - (3*ca**2*ch**2*ee**4*MH**2*sa**2*v**2)/(4.*MZ**2) + (ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*v**2)/(cw**2*MZ**2) - (ca**2*ch**2*ee**4*eta**4*MH**2*sa**2*v**2)/(8.*cw**4*MZ**2) - (3*ca**2*ch**2*ee**4*MH**2*sa**2*v**2)/(4.*MZp**2) + (ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*v**2)/(cw**2*MZp**2) - (ca**2*ch**2*ee**4*eta**4*MH**2*sa**2*v**2)/(8.*cw**4*MZp**2) + (3*ca**2*ch**2*ee**4*MH**4*sa**2*v**2)/(8.*MZ**2*MZp**2) - (ca**2*ch**2*ee**4*eta**2*MH**4*sa**2*v**2)/(2.*cw**2*MZ**2*MZp**2) + (ca**2*ch**2*ee**4*eta**4*MH**4*sa**2*v**2)/(16.*cw**4*MZ**2*MZp**2) + (3*ca**2*ch**2*ee**4*MZ**2*sa**2*v**2)/(8.*MZp**2) - (ca**2*ch**2*ee**4*eta**2*MZ**2*sa**2*v**2)/(2.*cw**2*MZp**2) + (ca**2*ch**2*ee**4*eta**4*MZ**2*sa**2*v**2)/(16.*cw**4*MZp**2) + (3*ca**2*ch**2*ee**4*MZp**2*sa**2*v**2)/(8.*MZ**2) - (ca**2*ch**2*ee**4*eta**2*MZp**2*sa**2*v**2)/(2.*cw**2*MZ**2) + (ca**2*ch**2*ee**4*eta**4*MZp**2*sa**2*v**2)/(16.*cw**4*MZ**2) + (5*ch**2*ee**4*eta**2*sa**4*v**2)/(4.*cw**2) - (ch**2*ee**4*eta**2*MH**2*sa**4*v**2)/(4.*cw**2*MZ**2) - (ch**2*ee**4*eta**2*MH**2*sa**4*v**2)/(4.*cw**2*MZp**2) + (ch**2*ee**4*eta**2*MH**4*sa**4*v**2)/(8.*cw**2*MZ**2*MZp**2) + (ch**2*ee**4*eta**2*MZ**2*sa**4*v**2)/(8.*cw**2*MZp**2) + (ch**2*ee**4*eta**2*MZp**2*sa**4*v**2)/(8.*cw**2*MZ**2) + (5*ca**2*ch**2*cw**4*ee**4*sa**2*v**2)/(8.*sw**4) - (ca**2*ch**2*cw**4*ee**4*MH**2*sa**2*v**2)/(8.*MZ**2*sw**4) - (ca**2*ch**2*cw**4*ee**4*MH**2*sa**2*v**2)/(8.*MZp**2*sw**4) + (ca**2*ch**2*cw**4*ee**4*MH**4*sa**2*v**2)/(16.*MZ**2*MZp**2*sw**4) + (ca**2*ch**2*cw**4*ee**4*MZ**2*sa**2*v**2)/(16.*MZp**2*sw**4) + (ca**2*ch**2*cw**4*ee**4*MZp**2*sa**2*v**2)/(16.*MZ**2*sw**4) + (5*ca**3*ch**2*cw**2*ee**4*eta*sa*v**2)/(4.*sw**3) - (ca**3*ch**2*cw**2*ee**4*eta*MH**2*sa*v**2)/(4.*MZ**2*sw**3) - (ca**3*ch**2*cw**2*ee**4*eta*MH**2*sa*v**2)/(4.*MZp**2*sw**3) + (ca**3*ch**2*cw**2*ee**4*eta*MH**4*sa*v**2)/(8.*MZ**2*MZp**2*sw**3) + (ca**3*ch**2*cw**2*ee**4*eta*MZ**2*sa*v**2)/(8.*MZp**2*sw**3) + (ca**3*ch**2*cw**2*ee**4*eta*MZp**2*sa*v**2)/(8.*MZ**2*sw**3) - (5*ca*ch**2*cw**2*ee**4*eta*sa**3*v**2)/(4.*sw**3) + (ca*ch**2*cw**2*ee**4*eta*MH**2*sa**3*v**2)/(4.*MZ**2*sw**3) + (ca*ch**2*cw**2*ee**4*eta*MH**2*sa**3*v**2)/(4.*MZp**2*sw**3) - (ca*ch**2*cw**2*ee**4*eta*MH**4*sa**3*v**2)/(8.*MZ**2*MZp**2*sw**3) - (ca*ch**2*cw**2*ee**4*eta*MZ**2*sa**3*v**2)/(8.*MZp**2*sw**3) - (ca*ch**2*cw**2*ee**4*eta*MZp**2*sa**3*v**2)/(8.*MZ**2*sw**3) + (5*ca**4*ch**2*ee**4*eta**2*v**2)/(8.*sw**2) - (ca**4*ch**2*ee**4*eta**2*MH**2*v**2)/(8.*MZ**2*sw**2) - (ca**4*ch**2*ee**4*eta**2*MH**2*v**2)/(8.*MZp**2*sw**2) + (ca**4*ch**2*ee**4*eta**2*MH**4*v**2)/(16.*MZ**2*MZp**2*sw**2) + (ca**4*ch**2*ee**4*eta**2*MZ**2*v**2)/(16.*MZp**2*sw**2) + (ca**4*ch**2*ee**4*eta**2*MZp**2*v**2)/(16.*MZ**2*sw**2) + (5*ca**2*ch**2*cw**2*ee**4*sa**2*v**2)/(2.*sw**2) - (5*ca**2*ch**2*ee**4*eta**2*sa**2*v**2)/(2.*sw**2) - (ca**2*ch**2*cw**2*ee**4*MH**2*sa**2*v**2)/(2.*MZ**2*sw**2) + (ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*v**2)/(2.*MZ**2*sw**2) - (ca**2*ch**2*cw**2*ee**4*MH**2*sa**2*v**2)/(2.*MZp**2*sw**2) + (ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*v**2)/(2.*MZp**2*sw**2) + (ca**2*ch**2*cw**2*ee**4*MH**4*sa**2*v**2)/(4.*MZ**2*MZp**2*sw**2) - (ca**2*ch**2*ee**4*eta**2*MH**4*sa**2*v**2)/(4.*MZ**2*MZp**2*sw**2) + (ca**2*ch**2*cw**2*ee**4*MZ**2*sa**2*v**2)/(4.*MZp**2*sw**2) - (ca**2*ch**2*ee**4*eta**2*MZ**2*sa**2*v**2)/(4.*MZp**2*sw**2) + (ca**2*ch**2*cw**2*ee**4*MZp**2*sa**2*v**2)/(4.*MZ**2*sw**2) - (ca**2*ch**2*ee**4*eta**2*MZp**2*sa**2*v**2)/(4.*MZ**2*sw**2) + (5*ch**2*ee**4*eta**2*sa**4*v**2)/(8.*sw**2) - (ch**2*ee**4*eta**2*MH**2*sa**4*v**2)/(8.*MZ**2*sw**2) - (ch**2*ee**4*eta**2*MH**2*sa**4*v**2)/(8.*MZp**2*sw**2) + (ch**2*ee**4*eta**2*MH**4*sa**4*v**2)/(16.*MZ**2*MZp**2*sw**2) + (ch**2*ee**4*eta**2*MZ**2*sa**4*v**2)/(16.*MZp**2*sw**2) + (ch**2*ee**4*eta**2*MZp**2*sa**4*v**2)/(16.*MZ**2*sw**2) + (15*ca**3*ch**2*ee**4*eta*sa*v**2)/(4.*sw) - (5*ca**3*ch**2*ee**4*eta**3*sa*v**2)/(4.*cw**2*sw) - (3*ca**3*ch**2*ee**4*eta*MH**2*sa*v**2)/(4.*MZ**2*sw) + (ca**3*ch**2*ee**4*eta**3*MH**2*sa*v**2)/(4.*cw**2*MZ**2*sw) - (3*ca**3*ch**2*ee**4*eta*MH**2*sa*v**2)/(4.*MZp**2*sw) + (ca**3*ch**2*ee**4*eta**3*MH**2*sa*v**2)/(4.*cw**2*MZp**2*sw) + (3*ca**3*ch**2*ee**4*eta*MH**4*sa*v**2)/(8.*MZ**2*MZp**2*sw) - (ca**3*ch**2*ee**4*eta**3*MH**4*sa*v**2)/(8.*cw**2*MZ**2*MZp**2*sw) + (3*ca**3*ch**2*ee**4*eta*MZ**2*sa*v**2)/(8.*MZp**2*sw) - (ca**3*ch**2*ee**4*eta**3*MZ**2*sa*v**2)/(8.*cw**2*MZp**2*sw) + (3*ca**3*ch**2*ee**4*eta*MZp**2*sa*v**2)/(8.*MZ**2*sw) - (ca**3*ch**2*ee**4*eta**3*MZp**2*sa*v**2)/(8.*cw**2*MZ**2*sw) - (15*ca*ch**2*ee**4*eta*sa**3*v**2)/(4.*sw) + (5*ca*ch**2*ee**4*eta**3*sa**3*v**2)/(4.*cw**2*sw) + (3*ca*ch**2*ee**4*eta*MH**2*sa**3*v**2)/(4.*MZ**2*sw) - (ca*ch**2*ee**4*eta**3*MH**2*sa**3*v**2)/(4.*cw**2*MZ**2*sw) + (3*ca*ch**2*ee**4*eta*MH**2*sa**3*v**2)/(4.*MZp**2*sw) - (ca*ch**2*ee**4*eta**3*MH**2*sa**3*v**2)/(4.*cw**2*MZp**2*sw) - (3*ca*ch**2*ee**4*eta*MH**4*sa**3*v**2)/(8.*MZ**2*MZp**2*sw) + (ca*ch**2*ee**4*eta**3*MH**4*sa**3*v**2)/(8.*cw**2*MZ**2*MZp**2*sw) - (3*ca*ch**2*ee**4*eta*MZ**2*sa**3*v**2)/(8.*MZp**2*sw) + (ca*ch**2*ee**4*eta**3*MZ**2*sa**3*v**2)/(8.*cw**2*MZp**2*sw) - (3*ca*ch**2*ee**4*eta*MZp**2*sa**3*v**2)/(8.*MZ**2*sw) + (ca*ch**2*ee**4*eta**3*MZp**2*sa**3*v**2)/(8.*cw**2*MZ**2*sw) + (15*ca**3*ch**2*ee**4*eta*sa*sw*v**2)/(4.*cw**2) - (5*ca**3*ch**2*ee**4*eta**3*sa*sw*v**2)/(4.*cw**4) - (3*ca**3*ch**2*ee**4*eta*MH**2*sa*sw*v**2)/(4.*cw**2*MZ**2) + (ca**3*ch**2*ee**4*eta**3*MH**2*sa*sw*v**2)/(4.*cw**4*MZ**2) - (3*ca**3*ch**2*ee**4*eta*MH**2*sa*sw*v**2)/(4.*cw**2*MZp**2) + (ca**3*ch**2*ee**4*eta**3*MH**2*sa*sw*v**2)/(4.*cw**4*MZp**2) + (3*ca**3*ch**2*ee**4*eta*MH**4*sa*sw*v**2)/(8.*cw**2*MZ**2*MZp**2) - (ca**3*ch**2*ee**4*eta**3*MH**4*sa*sw*v**2)/(8.*cw**4*MZ**2*MZp**2) + (3*ca**3*ch**2*ee**4*eta*MZ**2*sa*sw*v**2)/(8.*cw**2*MZp**2) - (ca**3*ch**2*ee**4*eta**3*MZ**2*sa*sw*v**2)/(8.*cw**4*MZp**2) + (3*ca**3*ch**2*ee**4*eta*MZp**2*sa*sw*v**2)/(8.*cw**2*MZ**2) - (ca**3*ch**2*ee**4*eta**3*MZp**2*sa*sw*v**2)/(8.*cw**4*MZ**2) - (15*ca*ch**2*ee**4*eta*sa**3*sw*v**2)/(4.*cw**2) + (5*ca*ch**2*ee**4*eta**3*sa**3*sw*v**2)/(4.*cw**4) + (3*ca*ch**2*ee**4*eta*MH**2*sa**3*sw*v**2)/(4.*cw**2*MZ**2) - (ca*ch**2*ee**4*eta**3*MH**2*sa**3*sw*v**2)/(4.*cw**4*MZ**2) + (3*ca*ch**2*ee**4*eta*MH**2*sa**3*sw*v**2)/(4.*cw**2*MZp**2) - (ca*ch**2*ee**4*eta**3*MH**2*sa**3*sw*v**2)/(4.*cw**4*MZp**2) - (3*ca*ch**2*ee**4*eta*MH**4*sa**3*sw*v**2)/(8.*cw**2*MZ**2*MZp**2) + (ca*ch**2*ee**4*eta**3*MH**4*sa**3*sw*v**2)/(8.*cw**4*MZ**2*MZp**2) - (3*ca*ch**2*ee**4*eta*MZ**2*sa**3*sw*v**2)/(8.*cw**2*MZp**2) + (ca*ch**2*ee**4*eta**3*MZ**2*sa**3*sw*v**2)/(8.*cw**4*MZp**2) - (3*ca*ch**2*ee**4*eta*MZp**2*sa**3*sw*v**2)/(8.*cw**2*MZ**2) + (ca*ch**2*ee**4*eta**3*MZp**2*sa**3*sw*v**2)/(8.*cw**4*MZ**2) + (5*ca**4*ch**2*ee**4*eta**2*sw**2*v**2)/(8.*cw**4) - (ca**4*ch**2*ee**4*eta**2*MH**2*sw**2*v**2)/(8.*cw**4*MZ**2) - (ca**4*ch**2*ee**4*eta**2*MH**2*sw**2*v**2)/(8.*cw**4*MZp**2) + (ca**4*ch**2*ee**4*eta**2*MH**4*sw**2*v**2)/(16.*cw**4*MZ**2*MZp**2) + (ca**4*ch**2*ee**4*eta**2*MZ**2*sw**2*v**2)/(16.*cw**4*MZp**2) + (ca**4*ch**2*ee**4*eta**2*MZp**2*sw**2*v**2)/(16.*cw**4*MZ**2) + (5*ca**2*ch**2*ee**4*sa**2*sw**2*v**2)/(2.*cw**2) - (5*ca**2*ch**2*ee**4*eta**2*sa**2*sw**2*v**2)/(2.*cw**4) - (ca**2*ch**2*ee**4*MH**2*sa**2*sw**2*v**2)/(2.*cw**2*MZ**2) + (ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*sw**2*v**2)/(2.*cw**4*MZ**2) - (ca**2*ch**2*ee**4*MH**2*sa**2*sw**2*v**2)/(2.*cw**2*MZp**2) + (ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*sw**2*v**2)/(2.*cw**4*MZp**2) + (ca**2*ch**2*ee**4*MH**4*sa**2*sw**2*v**2)/(4.*cw**2*MZ**2*MZp**2) - (ca**2*ch**2*ee**4*eta**2*MH**4*sa**2*sw**2*v**2)/(4.*cw**4*MZ**2*MZp**2) + (ca**2*ch**2*ee**4*MZ**2*sa**2*sw**2*v**2)/(4.*cw**2*MZp**2) - (ca**2*ch**2*ee**4*eta**2*MZ**2*sa**2*sw**2*v**2)/(4.*cw**4*MZp**2) + (ca**2*ch**2*ee**4*MZp**2*sa**2*sw**2*v**2)/(4.*cw**2*MZ**2) - (ca**2*ch**2*ee**4*eta**2*MZp**2*sa**2*sw**2*v**2)/(4.*cw**4*MZ**2) + (5*ch**2*ee**4*eta**2*sa**4*sw**2*v**2)/(8.*cw**4) - (ch**2*ee**4*eta**2*MH**2*sa**4*sw**2*v**2)/(8.*cw**4*MZ**2) - (ch**2*ee**4*eta**2*MH**2*sa**4*sw**2*v**2)/(8.*cw**4*MZp**2) + (ch**2*ee**4*eta**2*MH**4*sa**4*sw**2*v**2)/(16.*cw**4*MZ**2*MZp**2) + (ch**2*ee**4*eta**2*MZ**2*sa**4*sw**2*v**2)/(16.*cw**4*MZp**2) + (ch**2*ee**4*eta**2*MZp**2*sa**4*sw**2*v**2)/(16.*cw**4*MZ**2) + (5*ca**3*ch**2*ee**4*eta*sa*sw**3*v**2)/(4.*cw**4) - (ca**3*ch**2*ee**4*eta*MH**2*sa*sw**3*v**2)/(4.*cw**4*MZ**2) - (ca**3*ch**2*ee**4*eta*MH**2*sa*sw**3*v**2)/(4.*cw**4*MZp**2) + (ca**3*ch**2*ee**4*eta*MH**4*sa*sw**3*v**2)/(8.*cw**4*MZ**2*MZp**2) + (ca**3*ch**2*ee**4*eta*MZ**2*sa*sw**3*v**2)/(8.*cw**4*MZp**2) + (ca**3*ch**2*ee**4*eta*MZp**2*sa*sw**3*v**2)/(8.*cw**4*MZ**2) - (5*ca*ch**2*ee**4*eta*sa**3*sw**3*v**2)/(4.*cw**4) + (ca*ch**2*ee**4*eta*MH**2*sa**3*sw**3*v**2)/(4.*cw**4*MZ**2) + (ca*ch**2*ee**4*eta*MH**2*sa**3*sw**3*v**2)/(4.*cw**4*MZp**2) - (ca*ch**2*ee**4*eta*MH**4*sa**3*sw**3*v**2)/(8.*cw**4*MZ**2*MZp**2) - (ca*ch**2*ee**4*eta*MZ**2*sa**3*sw**3*v**2)/(8.*cw**4*MZp**2) - (ca*ch**2*ee**4*eta*MZp**2*sa**3*sw**3*v**2)/(8.*cw**4*MZ**2) + (5*ca**2*ch**2*ee**4*sa**2*sw**4*v**2)/(8.*cw**4) - (ca**2*ch**2*ee**4*MH**2*sa**2*sw**4*v**2)/(8.*cw**4*MZ**2) - (ca**2*ch**2*ee**4*MH**2*sa**2*sw**4*v**2)/(8.*cw**4*MZp**2) + (ca**2*ch**2*ee**4*MH**4*sa**2*sw**4*v**2)/(16.*cw**4*MZ**2*MZp**2) + (ca**2*ch**2*ee**4*MZ**2*sa**2*sw**4*v**2)/(16.*cw**4*MZp**2) + (ca**2*ch**2*ee**4*MZp**2*sa**2*sw**4*v**2)/(16.*cw**4*MZ**2) + (10*ca**2*ch*ee**2*eta**2*gX**2*sa**2*sh*v*xi)/chi**2 - (5*ca**2*ch*ee**2*eta**4*gX**2*sa**2*sh*v*xi)/(chi**2*cw**2) - (2*ca**2*ch*ee**2*eta**2*gX**2*MH**2*sa**2*sh*v*xi)/(chi**2*MZ**2) + (ca**2*ch*ee**2*eta**4*gX**2*MH**2*sa**2*sh*v*xi)/(chi**2*cw**2*MZ**2) - (2*ca**2*ch*ee**2*eta**2*gX**2*MH**2*sa**2*sh*v*xi)/(chi**2*MZp**2) + (ca**2*ch*ee**2*eta**4*gX**2*MH**2*sa**2*sh*v*xi)/(chi**2*cw**2*MZp**2) + (ca**2*ch*ee**2*eta**2*gX**2*MH**4*sa**2*sh*v*xi)/(chi**2*MZ**2*MZp**2) - (ca**2*ch*ee**2*eta**4*gX**2*MH**4*sa**2*sh*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) + (ca**2*ch*ee**2*eta**2*gX**2*MZ**2*sa**2*sh*v*xi)/(chi**2*MZp**2) - (ca**2*ch*ee**2*eta**4*gX**2*MZ**2*sa**2*sh*v*xi)/(2.*chi**2*cw**2*MZp**2) + (ca**2*ch*ee**2*eta**2*gX**2*MZp**2*sa**2*sh*v*xi)/(chi**2*MZ**2) - (ca**2*ch*ee**2*eta**4*gX**2*MZp**2*sa**2*sh*v*xi)/(2.*chi**2*cw**2*MZ**2) + (5*ca**2*ch*cw**2*ee**2*eta**2*gX**2*sa**2*sh*v*xi)/(chi**2*sw**2) - (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MH**2*sa**2*sh*v*xi)/(chi**2*MZ**2*sw**2) - (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MH**2*sa**2*sh*v*xi)/(chi**2*MZp**2*sw**2) + (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MH**4*sa**2*sh*v*xi)/(2.*chi**2*MZ**2*MZp**2*sw**2) + (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MZ**2*sa**2*sh*v*xi)/(2.*chi**2*MZp**2*sw**2) + (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MZp**2*sa**2*sh*v*xi)/(2.*chi**2*MZ**2*sw**2) + (5*ca**3*ch*ee**2*eta**3*gX**2*sa*sh*v*xi)/(chi**2*sw) - (ca**3*ch*ee**2*eta**3*gX**2*MH**2*sa*sh*v*xi)/(chi**2*MZ**2*sw) - (ca**3*ch*ee**2*eta**3*gX**2*MH**2*sa*sh*v*xi)/(chi**2*MZp**2*sw) + (ca**3*ch*ee**2*eta**3*gX**2*MH**4*sa*sh*v*xi)/(2.*chi**2*MZ**2*MZp**2*sw) + (ca**3*ch*ee**2*eta**3*gX**2*MZ**2*sa*sh*v*xi)/(2.*chi**2*MZp**2*sw) + (ca**3*ch*ee**2*eta**3*gX**2*MZp**2*sa*sh*v*xi)/(2.*chi**2*MZ**2*sw) - (5*ca*ch*ee**2*eta**3*gX**2*sa**3*sh*v*xi)/(chi**2*sw) + (ca*ch*ee**2*eta**3*gX**2*MH**2*sa**3*sh*v*xi)/(chi**2*MZ**2*sw) + (ca*ch*ee**2*eta**3*gX**2*MH**2*sa**3*sh*v*xi)/(chi**2*MZp**2*sw) - (ca*ch*ee**2*eta**3*gX**2*MH**4*sa**3*sh*v*xi)/(2.*chi**2*MZ**2*MZp**2*sw) - (ca*ch*ee**2*eta**3*gX**2*MZ**2*sa**3*sh*v*xi)/(2.*chi**2*MZp**2*sw) - (ca*ch*ee**2*eta**3*gX**2*MZp**2*sa**3*sh*v*xi)/(2.*chi**2*MZ**2*sw) + (5*ca**3*ch*ee**2*eta**3*gX**2*sa*sh*sw*v*xi)/(chi**2*cw**2) - (ca**3*ch*ee**2*eta**3*gX**2*MH**2*sa*sh*sw*v*xi)/(chi**2*cw**2*MZ**2) - (ca**3*ch*ee**2*eta**3*gX**2*MH**2*sa*sh*sw*v*xi)/(chi**2*cw**2*MZp**2) + (ca**3*ch*ee**2*eta**3*gX**2*MH**4*sa*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) + (ca**3*ch*ee**2*eta**3*gX**2*MZ**2*sa*sh*sw*v*xi)/(2.*chi**2*cw**2*MZp**2) + (ca**3*ch*ee**2*eta**3*gX**2*MZp**2*sa*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2) - (5*ca*ch*ee**2*eta**3*gX**2*sa**3*sh*sw*v*xi)/(chi**2*cw**2) + (ca*ch*ee**2*eta**3*gX**2*MH**2*sa**3*sh*sw*v*xi)/(chi**2*cw**2*MZ**2) + (ca*ch*ee**2*eta**3*gX**2*MH**2*sa**3*sh*sw*v*xi)/(chi**2*cw**2*MZp**2) - (ca*ch*ee**2*eta**3*gX**2*MH**4*sa**3*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) - (ca*ch*ee**2*eta**3*gX**2*MZ**2*sa**3*sh*sw*v*xi)/(2.*chi**2*cw**2*MZp**2) - (ca*ch*ee**2*eta**3*gX**2*MZp**2*sa**3*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2) + (5*ca**2*ch*ee**2*eta**2*gX**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2) - (ca**2*ch*ee**2*eta**2*gX**2*MH**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2*MZ**2) - (ca**2*ch*ee**2*eta**2*gX**2*MH**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2*MZp**2) + (ca**2*ch*ee**2*eta**2*gX**2*MH**4*sa**2*sh*sw**2*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) + (ca**2*ch*ee**2*eta**2*gX**2*MZ**2*sa**2*sh*sw**2*v*xi)/(2.*chi**2*cw**2*MZp**2) + (ca**2*ch*ee**2*eta**2*gX**2*MZp**2*sa**2*sh*sw**2*v*xi)/(2.*chi**2*cw**2*MZ**2) + (10*ca**2*eta**4*gX**4*sa**2*sh**2*xi**2)/chi**4 - (2*ca**2*eta**4*gX**4*MH**2*sa**2*sh**2*xi**2)/(chi**4*MZ**2) - (2*ca**2*eta**4*gX**4*MH**2*sa**2*sh**2*xi**2)/(chi**4*MZp**2) + (ca**2*eta**4*gX**4*MH**4*sa**2*sh**2*xi**2)/(chi**4*MZ**2*MZp**2) + (ca**2*eta**4*gX**4*MZ**2*sa**2*sh**2*xi**2)/(chi**4*MZp**2) + (ca**2*eta**4*gX**4*MZp**2*sa**2*sh**2*xi**2)/(chi**4*MZ**2))*cmath.sqrt(MH**4 - 2*MH**2*MZ**2 + MZ**4 - 2*MH**2*MZp**2 - 2*MZ**2*MZp**2 + MZp**4))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.hs,P.Zp):'(((5*ca**4*ee**4*eta**2*sh**2*v**2)/(4.*cw**2) - (ca**4*ee**4*eta**2*MHS**2*sh**2*v**2)/(4.*cw**2*MZ**2) - (ca**4*ee**4*eta**2*MHS**2*sh**2*v**2)/(4.*cw**2*MZp**2) + (ca**4*ee**4*eta**2*MHS**4*sh**2*v**2)/(8.*cw**2*MZ**2*MZp**2) + (ca**4*ee**4*eta**2*MZ**2*sh**2*v**2)/(8.*cw**2*MZp**2) + (ca**4*ee**4*eta**2*MZp**2*sh**2*v**2)/(8.*cw**2*MZ**2) + (15*ca**2*ee**4*sa**2*sh**2*v**2)/4. - (5*ca**2*ee**4*eta**2*sa**2*sh**2*v**2)/cw**2 + (5*ca**2*ee**4*eta**4*sa**2*sh**2*v**2)/(8.*cw**4) - (3*ca**2*ee**4*MHS**2*sa**2*sh**2*v**2)/(4.*MZ**2) + (ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*v**2)/(cw**2*MZ**2) - (ca**2*ee**4*eta**4*MHS**2*sa**2*sh**2*v**2)/(8.*cw**4*MZ**2) - (3*ca**2*ee**4*MHS**2*sa**2*sh**2*v**2)/(4.*MZp**2) + (ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*v**2)/(cw**2*MZp**2) - (ca**2*ee**4*eta**4*MHS**2*sa**2*sh**2*v**2)/(8.*cw**4*MZp**2) + (3*ca**2*ee**4*MHS**4*sa**2*sh**2*v**2)/(8.*MZ**2*MZp**2) - (ca**2*ee**4*eta**2*MHS**4*sa**2*sh**2*v**2)/(2.*cw**2*MZ**2*MZp**2) + (ca**2*ee**4*eta**4*MHS**4*sa**2*sh**2*v**2)/(16.*cw**4*MZ**2*MZp**2) + (3*ca**2*ee**4*MZ**2*sa**2*sh**2*v**2)/(8.*MZp**2) - (ca**2*ee**4*eta**2*MZ**2*sa**2*sh**2*v**2)/(2.*cw**2*MZp**2) + (ca**2*ee**4*eta**4*MZ**2*sa**2*sh**2*v**2)/(16.*cw**4*MZp**2) + (3*ca**2*ee**4*MZp**2*sa**2*sh**2*v**2)/(8.*MZ**2) - (ca**2*ee**4*eta**2*MZp**2*sa**2*sh**2*v**2)/(2.*cw**2*MZ**2) + (ca**2*ee**4*eta**4*MZp**2*sa**2*sh**2*v**2)/(16.*cw**4*MZ**2) + (5*ee**4*eta**2*sa**4*sh**2*v**2)/(4.*cw**2) - (ee**4*eta**2*MHS**2*sa**4*sh**2*v**2)/(4.*cw**2*MZ**2) - (ee**4*eta**2*MHS**2*sa**4*sh**2*v**2)/(4.*cw**2*MZp**2) + (ee**4*eta**2*MHS**4*sa**4*sh**2*v**2)/(8.*cw**2*MZ**2*MZp**2) + (ee**4*eta**2*MZ**2*sa**4*sh**2*v**2)/(8.*cw**2*MZp**2) + (ee**4*eta**2*MZp**2*sa**4*sh**2*v**2)/(8.*cw**2*MZ**2) + (5*ca**2*cw**4*ee**4*sa**2*sh**2*v**2)/(8.*sw**4) - (ca**2*cw**4*ee**4*MHS**2*sa**2*sh**2*v**2)/(8.*MZ**2*sw**4) - (ca**2*cw**4*ee**4*MHS**2*sa**2*sh**2*v**2)/(8.*MZp**2*sw**4) + (ca**2*cw**4*ee**4*MHS**4*sa**2*sh**2*v**2)/(16.*MZ**2*MZp**2*sw**4) + (ca**2*cw**4*ee**4*MZ**2*sa**2*sh**2*v**2)/(16.*MZp**2*sw**4) + (ca**2*cw**4*ee**4*MZp**2*sa**2*sh**2*v**2)/(16.*MZ**2*sw**4) + (5*ca**3*cw**2*ee**4*eta*sa*sh**2*v**2)/(4.*sw**3) - (ca**3*cw**2*ee**4*eta*MHS**2*sa*sh**2*v**2)/(4.*MZ**2*sw**3) - (ca**3*cw**2*ee**4*eta*MHS**2*sa*sh**2*v**2)/(4.*MZp**2*sw**3) + (ca**3*cw**2*ee**4*eta*MHS**4*sa*sh**2*v**2)/(8.*MZ**2*MZp**2*sw**3) + (ca**3*cw**2*ee**4*eta*MZ**2*sa*sh**2*v**2)/(8.*MZp**2*sw**3) + (ca**3*cw**2*ee**4*eta*MZp**2*sa*sh**2*v**2)/(8.*MZ**2*sw**3) - (5*ca*cw**2*ee**4*eta*sa**3*sh**2*v**2)/(4.*sw**3) + (ca*cw**2*ee**4*eta*MHS**2*sa**3*sh**2*v**2)/(4.*MZ**2*sw**3) + (ca*cw**2*ee**4*eta*MHS**2*sa**3*sh**2*v**2)/(4.*MZp**2*sw**3) - (ca*cw**2*ee**4*eta*MHS**4*sa**3*sh**2*v**2)/(8.*MZ**2*MZp**2*sw**3) - (ca*cw**2*ee**4*eta*MZ**2*sa**3*sh**2*v**2)/(8.*MZp**2*sw**3) - (ca*cw**2*ee**4*eta*MZp**2*sa**3*sh**2*v**2)/(8.*MZ**2*sw**3) + (5*ca**4*ee**4*eta**2*sh**2*v**2)/(8.*sw**2) - (ca**4*ee**4*eta**2*MHS**2*sh**2*v**2)/(8.*MZ**2*sw**2) - (ca**4*ee**4*eta**2*MHS**2*sh**2*v**2)/(8.*MZp**2*sw**2) + (ca**4*ee**4*eta**2*MHS**4*sh**2*v**2)/(16.*MZ**2*MZp**2*sw**2) + (ca**4*ee**4*eta**2*MZ**2*sh**2*v**2)/(16.*MZp**2*sw**2) + (ca**4*ee**4*eta**2*MZp**2*sh**2*v**2)/(16.*MZ**2*sw**2) + (5*ca**2*cw**2*ee**4*sa**2*sh**2*v**2)/(2.*sw**2) - (5*ca**2*ee**4*eta**2*sa**2*sh**2*v**2)/(2.*sw**2) - (ca**2*cw**2*ee**4*MHS**2*sa**2*sh**2*v**2)/(2.*MZ**2*sw**2) + (ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*v**2)/(2.*MZ**2*sw**2) - (ca**2*cw**2*ee**4*MHS**2*sa**2*sh**2*v**2)/(2.*MZp**2*sw**2) + (ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*v**2)/(2.*MZp**2*sw**2) + (ca**2*cw**2*ee**4*MHS**4*sa**2*sh**2*v**2)/(4.*MZ**2*MZp**2*sw**2) - (ca**2*ee**4*eta**2*MHS**4*sa**2*sh**2*v**2)/(4.*MZ**2*MZp**2*sw**2) + (ca**2*cw**2*ee**4*MZ**2*sa**2*sh**2*v**2)/(4.*MZp**2*sw**2) - (ca**2*ee**4*eta**2*MZ**2*sa**2*sh**2*v**2)/(4.*MZp**2*sw**2) + (ca**2*cw**2*ee**4*MZp**2*sa**2*sh**2*v**2)/(4.*MZ**2*sw**2) - (ca**2*ee**4*eta**2*MZp**2*sa**2*sh**2*v**2)/(4.*MZ**2*sw**2) + (5*ee**4*eta**2*sa**4*sh**2*v**2)/(8.*sw**2) - (ee**4*eta**2*MHS**2*sa**4*sh**2*v**2)/(8.*MZ**2*sw**2) - (ee**4*eta**2*MHS**2*sa**4*sh**2*v**2)/(8.*MZp**2*sw**2) + (ee**4*eta**2*MHS**4*sa**4*sh**2*v**2)/(16.*MZ**2*MZp**2*sw**2) + (ee**4*eta**2*MZ**2*sa**4*sh**2*v**2)/(16.*MZp**2*sw**2) + (ee**4*eta**2*MZp**2*sa**4*sh**2*v**2)/(16.*MZ**2*sw**2) + (15*ca**3*ee**4*eta*sa*sh**2*v**2)/(4.*sw) - (5*ca**3*ee**4*eta**3*sa*sh**2*v**2)/(4.*cw**2*sw) - (3*ca**3*ee**4*eta*MHS**2*sa*sh**2*v**2)/(4.*MZ**2*sw) + (ca**3*ee**4*eta**3*MHS**2*sa*sh**2*v**2)/(4.*cw**2*MZ**2*sw) - (3*ca**3*ee**4*eta*MHS**2*sa*sh**2*v**2)/(4.*MZp**2*sw) + (ca**3*ee**4*eta**3*MHS**2*sa*sh**2*v**2)/(4.*cw**2*MZp**2*sw) + (3*ca**3*ee**4*eta*MHS**4*sa*sh**2*v**2)/(8.*MZ**2*MZp**2*sw) - (ca**3*ee**4*eta**3*MHS**4*sa*sh**2*v**2)/(8.*cw**2*MZ**2*MZp**2*sw) + (3*ca**3*ee**4*eta*MZ**2*sa*sh**2*v**2)/(8.*MZp**2*sw) - (ca**3*ee**4*eta**3*MZ**2*sa*sh**2*v**2)/(8.*cw**2*MZp**2*sw) + (3*ca**3*ee**4*eta*MZp**2*sa*sh**2*v**2)/(8.*MZ**2*sw) - (ca**3*ee**4*eta**3*MZp**2*sa*sh**2*v**2)/(8.*cw**2*MZ**2*sw) - (15*ca*ee**4*eta*sa**3*sh**2*v**2)/(4.*sw) + (5*ca*ee**4*eta**3*sa**3*sh**2*v**2)/(4.*cw**2*sw) + (3*ca*ee**4*eta*MHS**2*sa**3*sh**2*v**2)/(4.*MZ**2*sw) - (ca*ee**4*eta**3*MHS**2*sa**3*sh**2*v**2)/(4.*cw**2*MZ**2*sw) + (3*ca*ee**4*eta*MHS**2*sa**3*sh**2*v**2)/(4.*MZp**2*sw) - (ca*ee**4*eta**3*MHS**2*sa**3*sh**2*v**2)/(4.*cw**2*MZp**2*sw) - (3*ca*ee**4*eta*MHS**4*sa**3*sh**2*v**2)/(8.*MZ**2*MZp**2*sw) + (ca*ee**4*eta**3*MHS**4*sa**3*sh**2*v**2)/(8.*cw**2*MZ**2*MZp**2*sw) - (3*ca*ee**4*eta*MZ**2*sa**3*sh**2*v**2)/(8.*MZp**2*sw) + (ca*ee**4*eta**3*MZ**2*sa**3*sh**2*v**2)/(8.*cw**2*MZp**2*sw) - (3*ca*ee**4*eta*MZp**2*sa**3*sh**2*v**2)/(8.*MZ**2*sw) + (ca*ee**4*eta**3*MZp**2*sa**3*sh**2*v**2)/(8.*cw**2*MZ**2*sw) + (15*ca**3*ee**4*eta*sa*sh**2*sw*v**2)/(4.*cw**2) - (5*ca**3*ee**4*eta**3*sa*sh**2*sw*v**2)/(4.*cw**4) - (3*ca**3*ee**4*eta*MHS**2*sa*sh**2*sw*v**2)/(4.*cw**2*MZ**2) + (ca**3*ee**4*eta**3*MHS**2*sa*sh**2*sw*v**2)/(4.*cw**4*MZ**2) - (3*ca**3*ee**4*eta*MHS**2*sa*sh**2*sw*v**2)/(4.*cw**2*MZp**2) + (ca**3*ee**4*eta**3*MHS**2*sa*sh**2*sw*v**2)/(4.*cw**4*MZp**2) + (3*ca**3*ee**4*eta*MHS**4*sa*sh**2*sw*v**2)/(8.*cw**2*MZ**2*MZp**2) - (ca**3*ee**4*eta**3*MHS**4*sa*sh**2*sw*v**2)/(8.*cw**4*MZ**2*MZp**2) + (3*ca**3*ee**4*eta*MZ**2*sa*sh**2*sw*v**2)/(8.*cw**2*MZp**2) - (ca**3*ee**4*eta**3*MZ**2*sa*sh**2*sw*v**2)/(8.*cw**4*MZp**2) + (3*ca**3*ee**4*eta*MZp**2*sa*sh**2*sw*v**2)/(8.*cw**2*MZ**2) - (ca**3*ee**4*eta**3*MZp**2*sa*sh**2*sw*v**2)/(8.*cw**4*MZ**2) - (15*ca*ee**4*eta*sa**3*sh**2*sw*v**2)/(4.*cw**2) + (5*ca*ee**4*eta**3*sa**3*sh**2*sw*v**2)/(4.*cw**4) + (3*ca*ee**4*eta*MHS**2*sa**3*sh**2*sw*v**2)/(4.*cw**2*MZ**2) - (ca*ee**4*eta**3*MHS**2*sa**3*sh**2*sw*v**2)/(4.*cw**4*MZ**2) + (3*ca*ee**4*eta*MHS**2*sa**3*sh**2*sw*v**2)/(4.*cw**2*MZp**2) - (ca*ee**4*eta**3*MHS**2*sa**3*sh**2*sw*v**2)/(4.*cw**4*MZp**2) - (3*ca*ee**4*eta*MHS**4*sa**3*sh**2*sw*v**2)/(8.*cw**2*MZ**2*MZp**2) + (ca*ee**4*eta**3*MHS**4*sa**3*sh**2*sw*v**2)/(8.*cw**4*MZ**2*MZp**2) - (3*ca*ee**4*eta*MZ**2*sa**3*sh**2*sw*v**2)/(8.*cw**2*MZp**2) + (ca*ee**4*eta**3*MZ**2*sa**3*sh**2*sw*v**2)/(8.*cw**4*MZp**2) - (3*ca*ee**4*eta*MZp**2*sa**3*sh**2*sw*v**2)/(8.*cw**2*MZ**2) + (ca*ee**4*eta**3*MZp**2*sa**3*sh**2*sw*v**2)/(8.*cw**4*MZ**2) + (5*ca**4*ee**4*eta**2*sh**2*sw**2*v**2)/(8.*cw**4) - (ca**4*ee**4*eta**2*MHS**2*sh**2*sw**2*v**2)/(8.*cw**4*MZ**2) - (ca**4*ee**4*eta**2*MHS**2*sh**2*sw**2*v**2)/(8.*cw**4*MZp**2) + (ca**4*ee**4*eta**2*MHS**4*sh**2*sw**2*v**2)/(16.*cw**4*MZ**2*MZp**2) + (ca**4*ee**4*eta**2*MZ**2*sh**2*sw**2*v**2)/(16.*cw**4*MZp**2) + (ca**4*ee**4*eta**2*MZp**2*sh**2*sw**2*v**2)/(16.*cw**4*MZ**2) + (5*ca**2*ee**4*sa**2*sh**2*sw**2*v**2)/(2.*cw**2) - (5*ca**2*ee**4*eta**2*sa**2*sh**2*sw**2*v**2)/(2.*cw**4) - (ca**2*ee**4*MHS**2*sa**2*sh**2*sw**2*v**2)/(2.*cw**2*MZ**2) + (ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*sw**2*v**2)/(2.*cw**4*MZ**2) - (ca**2*ee**4*MHS**2*sa**2*sh**2*sw**2*v**2)/(2.*cw**2*MZp**2) + (ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*sw**2*v**2)/(2.*cw**4*MZp**2) + (ca**2*ee**4*MHS**4*sa**2*sh**2*sw**2*v**2)/(4.*cw**2*MZ**2*MZp**2) - (ca**2*ee**4*eta**2*MHS**4*sa**2*sh**2*sw**2*v**2)/(4.*cw**4*MZ**2*MZp**2) + (ca**2*ee**4*MZ**2*sa**2*sh**2*sw**2*v**2)/(4.*cw**2*MZp**2) - (ca**2*ee**4*eta**2*MZ**2*sa**2*sh**2*sw**2*v**2)/(4.*cw**4*MZp**2) + (ca**2*ee**4*MZp**2*sa**2*sh**2*sw**2*v**2)/(4.*cw**2*MZ**2) - (ca**2*ee**4*eta**2*MZp**2*sa**2*sh**2*sw**2*v**2)/(4.*cw**4*MZ**2) + (5*ee**4*eta**2*sa**4*sh**2*sw**2*v**2)/(8.*cw**4) - (ee**4*eta**2*MHS**2*sa**4*sh**2*sw**2*v**2)/(8.*cw**4*MZ**2) - (ee**4*eta**2*MHS**2*sa**4*sh**2*sw**2*v**2)/(8.*cw**4*MZp**2) + (ee**4*eta**2*MHS**4*sa**4*sh**2*sw**2*v**2)/(16.*cw**4*MZ**2*MZp**2) + (ee**4*eta**2*MZ**2*sa**4*sh**2*sw**2*v**2)/(16.*cw**4*MZp**2) + (ee**4*eta**2*MZp**2*sa**4*sh**2*sw**2*v**2)/(16.*cw**4*MZ**2) + (5*ca**3*ee**4*eta*sa*sh**2*sw**3*v**2)/(4.*cw**4) - (ca**3*ee**4*eta*MHS**2*sa*sh**2*sw**3*v**2)/(4.*cw**4*MZ**2) - (ca**3*ee**4*eta*MHS**2*sa*sh**2*sw**3*v**2)/(4.*cw**4*MZp**2) + (ca**3*ee**4*eta*MHS**4*sa*sh**2*sw**3*v**2)/(8.*cw**4*MZ**2*MZp**2) + (ca**3*ee**4*eta*MZ**2*sa*sh**2*sw**3*v**2)/(8.*cw**4*MZp**2) + (ca**3*ee**4*eta*MZp**2*sa*sh**2*sw**3*v**2)/(8.*cw**4*MZ**2) - (5*ca*ee**4*eta*sa**3*sh**2*sw**3*v**2)/(4.*cw**4) + (ca*ee**4*eta*MHS**2*sa**3*sh**2*sw**3*v**2)/(4.*cw**4*MZ**2) + (ca*ee**4*eta*MHS**2*sa**3*sh**2*sw**3*v**2)/(4.*cw**4*MZp**2) - (ca*ee**4*eta*MHS**4*sa**3*sh**2*sw**3*v**2)/(8.*cw**4*MZ**2*MZp**2) - (ca*ee**4*eta*MZ**2*sa**3*sh**2*sw**3*v**2)/(8.*cw**4*MZp**2) - (ca*ee**4*eta*MZp**2*sa**3*sh**2*sw**3*v**2)/(8.*cw**4*MZ**2) + (5*ca**2*ee**4*sa**2*sh**2*sw**4*v**2)/(8.*cw**4) - (ca**2*ee**4*MHS**2*sa**2*sh**2*sw**4*v**2)/(8.*cw**4*MZ**2) - (ca**2*ee**4*MHS**2*sa**2*sh**2*sw**4*v**2)/(8.*cw**4*MZp**2) + (ca**2*ee**4*MHS**4*sa**2*sh**2*sw**4*v**2)/(16.*cw**4*MZ**2*MZp**2) + (ca**2*ee**4*MZ**2*sa**2*sh**2*sw**4*v**2)/(16.*cw**4*MZp**2) + (ca**2*ee**4*MZp**2*sa**2*sh**2*sw**4*v**2)/(16.*cw**4*MZ**2) - (10*ca**2*ch*ee**2*eta**2*gX**2*sa**2*sh*v*xi)/chi**2 + (5*ca**2*ch*ee**2*eta**4*gX**2*sa**2*sh*v*xi)/(chi**2*cw**2) + (2*ca**2*ch*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*v*xi)/(chi**2*MZ**2) - (ca**2*ch*ee**2*eta**4*gX**2*MHS**2*sa**2*sh*v*xi)/(chi**2*cw**2*MZ**2) + (2*ca**2*ch*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*v*xi)/(chi**2*MZp**2) - (ca**2*ch*ee**2*eta**4*gX**2*MHS**2*sa**2*sh*v*xi)/(chi**2*cw**2*MZp**2) - (ca**2*ch*ee**2*eta**2*gX**2*MHS**4*sa**2*sh*v*xi)/(chi**2*MZ**2*MZp**2) + (ca**2*ch*ee**2*eta**4*gX**2*MHS**4*sa**2*sh*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) - (ca**2*ch*ee**2*eta**2*gX**2*MZ**2*sa**2*sh*v*xi)/(chi**2*MZp**2) + (ca**2*ch*ee**2*eta**4*gX**2*MZ**2*sa**2*sh*v*xi)/(2.*chi**2*cw**2*MZp**2) - (ca**2*ch*ee**2*eta**2*gX**2*MZp**2*sa**2*sh*v*xi)/(chi**2*MZ**2) + (ca**2*ch*ee**2*eta**4*gX**2*MZp**2*sa**2*sh*v*xi)/(2.*chi**2*cw**2*MZ**2) - (5*ca**2*ch*cw**2*ee**2*eta**2*gX**2*sa**2*sh*v*xi)/(chi**2*sw**2) + (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*v*xi)/(chi**2*MZ**2*sw**2) + (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*v*xi)/(chi**2*MZp**2*sw**2) - (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MHS**4*sa**2*sh*v*xi)/(2.*chi**2*MZ**2*MZp**2*sw**2) - (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MZ**2*sa**2*sh*v*xi)/(2.*chi**2*MZp**2*sw**2) - (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MZp**2*sa**2*sh*v*xi)/(2.*chi**2*MZ**2*sw**2) - (5*ca**3*ch*ee**2*eta**3*gX**2*sa*sh*v*xi)/(chi**2*sw) + (ca**3*ch*ee**2*eta**3*gX**2*MHS**2*sa*sh*v*xi)/(chi**2*MZ**2*sw) + (ca**3*ch*ee**2*eta**3*gX**2*MHS**2*sa*sh*v*xi)/(chi**2*MZp**2*sw) - (ca**3*ch*ee**2*eta**3*gX**2*MHS**4*sa*sh*v*xi)/(2.*chi**2*MZ**2*MZp**2*sw) - (ca**3*ch*ee**2*eta**3*gX**2*MZ**2*sa*sh*v*xi)/(2.*chi**2*MZp**2*sw) - (ca**3*ch*ee**2*eta**3*gX**2*MZp**2*sa*sh*v*xi)/(2.*chi**2*MZ**2*sw) + (5*ca*ch*ee**2*eta**3*gX**2*sa**3*sh*v*xi)/(chi**2*sw) - (ca*ch*ee**2*eta**3*gX**2*MHS**2*sa**3*sh*v*xi)/(chi**2*MZ**2*sw) - (ca*ch*ee**2*eta**3*gX**2*MHS**2*sa**3*sh*v*xi)/(chi**2*MZp**2*sw) + (ca*ch*ee**2*eta**3*gX**2*MHS**4*sa**3*sh*v*xi)/(2.*chi**2*MZ**2*MZp**2*sw) + (ca*ch*ee**2*eta**3*gX**2*MZ**2*sa**3*sh*v*xi)/(2.*chi**2*MZp**2*sw) + (ca*ch*ee**2*eta**3*gX**2*MZp**2*sa**3*sh*v*xi)/(2.*chi**2*MZ**2*sw) - (5*ca**3*ch*ee**2*eta**3*gX**2*sa*sh*sw*v*xi)/(chi**2*cw**2) + (ca**3*ch*ee**2*eta**3*gX**2*MHS**2*sa*sh*sw*v*xi)/(chi**2*cw**2*MZ**2) + (ca**3*ch*ee**2*eta**3*gX**2*MHS**2*sa*sh*sw*v*xi)/(chi**2*cw**2*MZp**2) - (ca**3*ch*ee**2*eta**3*gX**2*MHS**4*sa*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) - (ca**3*ch*ee**2*eta**3*gX**2*MZ**2*sa*sh*sw*v*xi)/(2.*chi**2*cw**2*MZp**2) - (ca**3*ch*ee**2*eta**3*gX**2*MZp**2*sa*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2) + (5*ca*ch*ee**2*eta**3*gX**2*sa**3*sh*sw*v*xi)/(chi**2*cw**2) - (ca*ch*ee**2*eta**3*gX**2*MHS**2*sa**3*sh*sw*v*xi)/(chi**2*cw**2*MZ**2) - (ca*ch*ee**2*eta**3*gX**2*MHS**2*sa**3*sh*sw*v*xi)/(chi**2*cw**2*MZp**2) + (ca*ch*ee**2*eta**3*gX**2*MHS**4*sa**3*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) + (ca*ch*ee**2*eta**3*gX**2*MZ**2*sa**3*sh*sw*v*xi)/(2.*chi**2*cw**2*MZp**2) + (ca*ch*ee**2*eta**3*gX**2*MZp**2*sa**3*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2) - (5*ca**2*ch*ee**2*eta**2*gX**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2) + (ca**2*ch*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2*MZ**2) + (ca**2*ch*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2*MZp**2) - (ca**2*ch*ee**2*eta**2*gX**2*MHS**4*sa**2*sh*sw**2*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) - (ca**2*ch*ee**2*eta**2*gX**2*MZ**2*sa**2*sh*sw**2*v*xi)/(2.*chi**2*cw**2*MZp**2) - (ca**2*ch*ee**2*eta**2*gX**2*MZp**2*sa**2*sh*sw**2*v*xi)/(2.*chi**2*cw**2*MZ**2) + (10*ca**2*ch**2*eta**4*gX**4*sa**2*xi**2)/chi**4 - (2*ca**2*ch**2*eta**4*gX**4*MHS**2*sa**2*xi**2)/(chi**4*MZ**2) - (2*ca**2*ch**2*eta**4*gX**4*MHS**2*sa**2*xi**2)/(chi**4*MZp**2) + (ca**2*ch**2*eta**4*gX**4*MHS**4*sa**2*xi**2)/(chi**4*MZ**2*MZp**2) + (ca**2*ch**2*eta**4*gX**4*MZ**2*sa**2*xi**2)/(chi**4*MZp**2) + (ca**2*ch**2*eta**4*gX**4*MZp**2*sa**2*xi**2)/(chi**4*MZ**2))*cmath.sqrt(MHS**4 - 2*MHS**2*MZ**2 + MZ**4 - 2*MHS**2*MZp**2 - 2*MZ**2*MZp**2 + MZp**4))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.m__minus__,P.m__plus__):'(MZ**2*(-(ca**2*ee**2*MZ**2) + (5*ee**2*eta**2*MZ**2*sa**2)/(2.*cw**2) + (ca**2*cw**2*ee**2*MZ**2)/(2.*sw**2) + (ca*ee**2*eta*MZ**2*sa)/sw - (5*ca*ee**2*eta*MZ**2*sa*sw)/cw**2 + (5*ca**2*ee**2*MZ**2*sw**2)/(2.*cw**2)))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.s,P.s__tilde__):'(MZ**2*(ca**2*ee**2*MZ**2 + (5*ee**2*eta**2*MZ**2*sa**2)/(6.*cw**2) + (3*ca**2*cw**2*ee**2*MZ**2)/(2.*sw**2) - (ca*ee**2*eta*MZ**2*sa)/sw - (5*ca*ee**2*eta*MZ**2*sa*sw)/(3.*cw**2) + (5*ca**2*ee**2*MZ**2*sw**2)/(6.*cw**2)))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.t,P.t__tilde__):'((-11*ca**2*ee**2*MT**2 - ca**2*ee**2*MZ**2 + (7*ee**2*eta**2*MT**2*sa**2)/(6.*cw**2) + (17*ee**2*eta**2*MZ**2*sa**2)/(6.*cw**2) - (3*ca**2*cw**2*ee**2*MT**2)/(2.*sw**2) + (3*ca**2*cw**2*ee**2*MZ**2)/(2.*sw**2) + (11*ca*ee**2*eta*MT**2*sa)/sw + (ca*ee**2*eta*MZ**2*sa)/sw - (7*ca*ee**2*eta*MT**2*sa*sw)/(3.*cw**2) - (17*ca*ee**2*eta*MZ**2*sa*sw)/(3.*cw**2) + (7*ca**2*ee**2*MT**2*sw**2)/(6.*cw**2) + (17*ca**2*ee**2*MZ**2*sw**2)/(6.*cw**2))*cmath.sqrt(-4*MT**2*MZ**2 + MZ**4))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.tt__minus__,P.tt__plus__):'((-5*ca**2*ee**2*MTA**2 - ca**2*ee**2*MZ**2 + (7*ee**2*eta**2*MTA**2*sa**2)/(2.*cw**2) + (5*ee**2*eta**2*MZ**2*sa**2)/(2.*cw**2) - (ca**2*cw**2*ee**2*MTA**2)/(2.*sw**2) + (ca**2*cw**2*ee**2*MZ**2)/(2.*sw**2) + (5*ca*ee**2*eta*MTA**2*sa)/sw + (ca*ee**2*eta*MZ**2*sa)/sw - (7*ca*ee**2*eta*MTA**2*sa*sw)/cw**2 - (5*ca*ee**2*eta*MZ**2*sa*sw)/cw**2 + (7*ca**2*ee**2*MTA**2*sw**2)/(2.*cw**2) + (5*ca**2*ee**2*MZ**2*sw**2)/(2.*cw**2))*cmath.sqrt(-4*MTA**2*MZ**2 + MZ**4))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.u,P.u__tilde__):'(MZ**2*(-(ca**2*ee**2*MZ**2) + (17*ee**2*eta**2*MZ**2*sa**2)/(6.*cw**2) + (3*ca**2*cw**2*ee**2*MZ**2)/(2.*sw**2) + (ca*ee**2*eta*MZ**2*sa)/sw - (17*ca*ee**2*eta*MZ**2*sa*sw)/(3.*cw**2) + (17*ca**2*ee**2*MZ**2*sw**2)/(6.*cw**2)))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.ve,P.ve__tilde__):'(MZ**2*(ca**2*ee**2*MZ**2 + (ee**2*eta**2*MZ**2*sa**2)/(2.*cw**2) + (ca**2*cw**2*ee**2*MZ**2)/(2.*sw**2) - (ca*ee**2*eta*MZ**2*sa)/sw - (ca*ee**2*eta*MZ**2*sa*sw)/cw**2 + (ca**2*ee**2*MZ**2*sw**2)/(2.*cw**2)))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.vm,P.vm__tilde__):'(MZ**2*(ca**2*ee**2*MZ**2 + (ee**2*eta**2*MZ**2*sa**2)/(2.*cw**2) + (ca**2*cw**2*ee**2*MZ**2)/(2.*sw**2) - (ca*ee**2*eta*MZ**2*sa)/sw - (ca*ee**2*eta*MZ**2*sa*sw)/cw**2 + (ca**2*ee**2*MZ**2*sw**2)/(2.*cw**2)))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.vt,P.vt__tilde__):'(MZ**2*(ca**2*ee**2*MZ**2 + (ee**2*eta**2*MZ**2*sa**2)/(2.*cw**2) + (ca**2*cw**2*ee**2*MZ**2)/(2.*sw**2) - (ca*ee**2*eta*MZ**2*sa)/sw - (ca*ee**2*eta*MZ**2*sa*sw)/cw**2 + (ca**2*ee**2*MZ**2*sw**2)/(2.*cw**2)))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.W__minus__,P.W__plus__):'((-12*ca**2*cw**2*gw**2*MW**2 - 17*ca**2*cw**2*gw**2*MZ**2 + (4*ca**2*cw**2*gw**2*MZ**4)/MW**2 + (ca**2*cw**2*gw**2*MZ**6)/(4.*MW**4))*cmath.sqrt(-4*MW**2*MZ**2 + MZ**4))/(48.*cmath.pi*abs(MZ)**3)'})
+
+Decay_Zp = Decay(name = 'Decay_Zp',
+                 particle = P.Zp,
+                 partial_widths = {(P.b,P.b__tilde__):'(((-17*ca**2*ee**2*eta**2*MB**2)/(6.*cw**2) + (5*ca**2*ee**2*eta**2*MZp**2)/(6.*cw**2) - 7*ee**2*MB**2*sa**2 + ee**2*MZp**2*sa**2 - (3*cw**2*ee**2*MB**2*sa**2)/(2.*sw**2) + (3*cw**2*ee**2*MZp**2*sa**2)/(2.*sw**2) - (7*ca*ee**2*eta*MB**2*sa)/sw + (ca*ee**2*eta*MZp**2*sa)/sw - (17*ca*ee**2*eta*MB**2*sa*sw)/(3.*cw**2) + (5*ca*ee**2*eta*MZp**2*sa*sw)/(3.*cw**2) - (17*ee**2*MB**2*sa**2*sw**2)/(6.*cw**2) + (5*ee**2*MZp**2*sa**2*sw**2)/(6.*cw**2))*cmath.sqrt(-4*MB**2*MZp**2 + MZp**4))/(48.*cmath.pi*abs(MZp)**3)',
+                                   (P.c,P.c__tilde__):'(((7*ca**2*ee**2*eta**2*MC**2)/(6.*cw**2) + (17*ca**2*ee**2*eta**2*MZp**2)/(6.*cw**2) - 11*ee**2*MC**2*sa**2 - ee**2*MZp**2*sa**2 - (3*cw**2*ee**2*MC**2*sa**2)/(2.*sw**2) + (3*cw**2*ee**2*MZp**2*sa**2)/(2.*sw**2) - (11*ca*ee**2*eta*MC**2*sa)/sw - (ca*ee**2*eta*MZp**2*sa)/sw + (7*ca*ee**2*eta*MC**2*sa*sw)/(3.*cw**2) + (17*ca*ee**2*eta*MZp**2*sa*sw)/(3.*cw**2) + (7*ee**2*MC**2*sa**2*sw**2)/(6.*cw**2) + (17*ee**2*MZp**2*sa**2*sw**2)/(6.*cw**2))*cmath.sqrt(-4*MC**2*MZp**2 + MZp**4))/(48.*cmath.pi*abs(MZp)**3)',
+                                   (P.d,P.d__tilde__):'(MZp**2*((5*ca**2*ee**2*eta**2*MZp**2)/(6.*cw**2) + ee**2*MZp**2*sa**2 + (3*cw**2*ee**2*MZp**2*sa**2)/(2.*sw**2) + (ca*ee**2*eta*MZp**2*sa)/sw + (5*ca*ee**2*eta*MZp**2*sa*sw)/(3.*cw**2) + (5*ee**2*MZp**2*sa**2*sw**2)/(6.*cw**2)))/(48.*cmath.pi*abs(MZp)**3)',
+                                   (P.e__minus__,P.e__plus__):'(MZp**2*((5*ca**2*ee**2*eta**2*MZp**2)/(2.*cw**2) - ee**2*MZp**2*sa**2 + (cw**2*ee**2*MZp**2*sa**2)/(2.*sw**2) - (ca*ee**2*eta*MZp**2*sa)/sw + (5*ca*ee**2*eta*MZp**2*sa*sw)/cw**2 + (5*ee**2*MZp**2*sa**2*sw**2)/(2.*cw**2)))/(48.*cmath.pi*abs(MZp)**3)',
+                                   (P.h,P.Z):'(((5*ca**4*ch**2*ee**4*eta**2*v**2)/(4.*cw**2) - (ca**4*ch**2*ee**4*eta**2*MH**2*v**2)/(4.*cw**2*MZ**2) - (ca**4*ch**2*ee**4*eta**2*MH**2*v**2)/(4.*cw**2*MZp**2) + (ca**4*ch**2*ee**4*eta**2*MH**4*v**2)/(8.*cw**2*MZ**2*MZp**2) + (ca**4*ch**2*ee**4*eta**2*MZ**2*v**2)/(8.*cw**2*MZp**2) + (ca**4*ch**2*ee**4*eta**2*MZp**2*v**2)/(8.*cw**2*MZ**2) + (15*ca**2*ch**2*ee**4*sa**2*v**2)/4. - (5*ca**2*ch**2*ee**4*eta**2*sa**2*v**2)/cw**2 + (5*ca**2*ch**2*ee**4*eta**4*sa**2*v**2)/(8.*cw**4) - (3*ca**2*ch**2*ee**4*MH**2*sa**2*v**2)/(4.*MZ**2) + (ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*v**2)/(cw**2*MZ**2) - (ca**2*ch**2*ee**4*eta**4*MH**2*sa**2*v**2)/(8.*cw**4*MZ**2) - (3*ca**2*ch**2*ee**4*MH**2*sa**2*v**2)/(4.*MZp**2) + (ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*v**2)/(cw**2*MZp**2) - (ca**2*ch**2*ee**4*eta**4*MH**2*sa**2*v**2)/(8.*cw**4*MZp**2) + (3*ca**2*ch**2*ee**4*MH**4*sa**2*v**2)/(8.*MZ**2*MZp**2) - (ca**2*ch**2*ee**4*eta**2*MH**4*sa**2*v**2)/(2.*cw**2*MZ**2*MZp**2) + (ca**2*ch**2*ee**4*eta**4*MH**4*sa**2*v**2)/(16.*cw**4*MZ**2*MZp**2) + (3*ca**2*ch**2*ee**4*MZ**2*sa**2*v**2)/(8.*MZp**2) - (ca**2*ch**2*ee**4*eta**2*MZ**2*sa**2*v**2)/(2.*cw**2*MZp**2) + (ca**2*ch**2*ee**4*eta**4*MZ**2*sa**2*v**2)/(16.*cw**4*MZp**2) + (3*ca**2*ch**2*ee**4*MZp**2*sa**2*v**2)/(8.*MZ**2) - (ca**2*ch**2*ee**4*eta**2*MZp**2*sa**2*v**2)/(2.*cw**2*MZ**2) + (ca**2*ch**2*ee**4*eta**4*MZp**2*sa**2*v**2)/(16.*cw**4*MZ**2) + (5*ch**2*ee**4*eta**2*sa**4*v**2)/(4.*cw**2) - (ch**2*ee**4*eta**2*MH**2*sa**4*v**2)/(4.*cw**2*MZ**2) - (ch**2*ee**4*eta**2*MH**2*sa**4*v**2)/(4.*cw**2*MZp**2) + (ch**2*ee**4*eta**2*MH**4*sa**4*v**2)/(8.*cw**2*MZ**2*MZp**2) + (ch**2*ee**4*eta**2*MZ**2*sa**4*v**2)/(8.*cw**2*MZp**2) + (ch**2*ee**4*eta**2*MZp**2*sa**4*v**2)/(8.*cw**2*MZ**2) + (5*ca**2*ch**2*cw**4*ee**4*sa**2*v**2)/(8.*sw**4) - (ca**2*ch**2*cw**4*ee**4*MH**2*sa**2*v**2)/(8.*MZ**2*sw**4) - (ca**2*ch**2*cw**4*ee**4*MH**2*sa**2*v**2)/(8.*MZp**2*sw**4) + (ca**2*ch**2*cw**4*ee**4*MH**4*sa**2*v**2)/(16.*MZ**2*MZp**2*sw**4) + (ca**2*ch**2*cw**4*ee**4*MZ**2*sa**2*v**2)/(16.*MZp**2*sw**4) + (ca**2*ch**2*cw**4*ee**4*MZp**2*sa**2*v**2)/(16.*MZ**2*sw**4) + (5*ca**3*ch**2*cw**2*ee**4*eta*sa*v**2)/(4.*sw**3) - (ca**3*ch**2*cw**2*ee**4*eta*MH**2*sa*v**2)/(4.*MZ**2*sw**3) - (ca**3*ch**2*cw**2*ee**4*eta*MH**2*sa*v**2)/(4.*MZp**2*sw**3) + (ca**3*ch**2*cw**2*ee**4*eta*MH**4*sa*v**2)/(8.*MZ**2*MZp**2*sw**3) + (ca**3*ch**2*cw**2*ee**4*eta*MZ**2*sa*v**2)/(8.*MZp**2*sw**3) + (ca**3*ch**2*cw**2*ee**4*eta*MZp**2*sa*v**2)/(8.*MZ**2*sw**3) - (5*ca*ch**2*cw**2*ee**4*eta*sa**3*v**2)/(4.*sw**3) + (ca*ch**2*cw**2*ee**4*eta*MH**2*sa**3*v**2)/(4.*MZ**2*sw**3) + (ca*ch**2*cw**2*ee**4*eta*MH**2*sa**3*v**2)/(4.*MZp**2*sw**3) - (ca*ch**2*cw**2*ee**4*eta*MH**4*sa**3*v**2)/(8.*MZ**2*MZp**2*sw**3) - (ca*ch**2*cw**2*ee**4*eta*MZ**2*sa**3*v**2)/(8.*MZp**2*sw**3) - (ca*ch**2*cw**2*ee**4*eta*MZp**2*sa**3*v**2)/(8.*MZ**2*sw**3) + (5*ca**4*ch**2*ee**4*eta**2*v**2)/(8.*sw**2) - (ca**4*ch**2*ee**4*eta**2*MH**2*v**2)/(8.*MZ**2*sw**2) - (ca**4*ch**2*ee**4*eta**2*MH**2*v**2)/(8.*MZp**2*sw**2) + (ca**4*ch**2*ee**4*eta**2*MH**4*v**2)/(16.*MZ**2*MZp**2*sw**2) + (ca**4*ch**2*ee**4*eta**2*MZ**2*v**2)/(16.*MZp**2*sw**2) + (ca**4*ch**2*ee**4*eta**2*MZp**2*v**2)/(16.*MZ**2*sw**2) + (5*ca**2*ch**2*cw**2*ee**4*sa**2*v**2)/(2.*sw**2) - (5*ca**2*ch**2*ee**4*eta**2*sa**2*v**2)/(2.*sw**2) - (ca**2*ch**2*cw**2*ee**4*MH**2*sa**2*v**2)/(2.*MZ**2*sw**2) + (ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*v**2)/(2.*MZ**2*sw**2) - (ca**2*ch**2*cw**2*ee**4*MH**2*sa**2*v**2)/(2.*MZp**2*sw**2) + (ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*v**2)/(2.*MZp**2*sw**2) + (ca**2*ch**2*cw**2*ee**4*MH**4*sa**2*v**2)/(4.*MZ**2*MZp**2*sw**2) - (ca**2*ch**2*ee**4*eta**2*MH**4*sa**2*v**2)/(4.*MZ**2*MZp**2*sw**2) + (ca**2*ch**2*cw**2*ee**4*MZ**2*sa**2*v**2)/(4.*MZp**2*sw**2) - (ca**2*ch**2*ee**4*eta**2*MZ**2*sa**2*v**2)/(4.*MZp**2*sw**2) + (ca**2*ch**2*cw**2*ee**4*MZp**2*sa**2*v**2)/(4.*MZ**2*sw**2) - (ca**2*ch**2*ee**4*eta**2*MZp**2*sa**2*v**2)/(4.*MZ**2*sw**2) + (5*ch**2*ee**4*eta**2*sa**4*v**2)/(8.*sw**2) - (ch**2*ee**4*eta**2*MH**2*sa**4*v**2)/(8.*MZ**2*sw**2) - (ch**2*ee**4*eta**2*MH**2*sa**4*v**2)/(8.*MZp**2*sw**2) + (ch**2*ee**4*eta**2*MH**4*sa**4*v**2)/(16.*MZ**2*MZp**2*sw**2) + (ch**2*ee**4*eta**2*MZ**2*sa**4*v**2)/(16.*MZp**2*sw**2) + (ch**2*ee**4*eta**2*MZp**2*sa**4*v**2)/(16.*MZ**2*sw**2) + (15*ca**3*ch**2*ee**4*eta*sa*v**2)/(4.*sw) - (5*ca**3*ch**2*ee**4*eta**3*sa*v**2)/(4.*cw**2*sw) - (3*ca**3*ch**2*ee**4*eta*MH**2*sa*v**2)/(4.*MZ**2*sw) + (ca**3*ch**2*ee**4*eta**3*MH**2*sa*v**2)/(4.*cw**2*MZ**2*sw) - (3*ca**3*ch**2*ee**4*eta*MH**2*sa*v**2)/(4.*MZp**2*sw) + (ca**3*ch**2*ee**4*eta**3*MH**2*sa*v**2)/(4.*cw**2*MZp**2*sw) + (3*ca**3*ch**2*ee**4*eta*MH**4*sa*v**2)/(8.*MZ**2*MZp**2*sw) - (ca**3*ch**2*ee**4*eta**3*MH**4*sa*v**2)/(8.*cw**2*MZ**2*MZp**2*sw) + (3*ca**3*ch**2*ee**4*eta*MZ**2*sa*v**2)/(8.*MZp**2*sw) - (ca**3*ch**2*ee**4*eta**3*MZ**2*sa*v**2)/(8.*cw**2*MZp**2*sw) + (3*ca**3*ch**2*ee**4*eta*MZp**2*sa*v**2)/(8.*MZ**2*sw) - (ca**3*ch**2*ee**4*eta**3*MZp**2*sa*v**2)/(8.*cw**2*MZ**2*sw) - (15*ca*ch**2*ee**4*eta*sa**3*v**2)/(4.*sw) + (5*ca*ch**2*ee**4*eta**3*sa**3*v**2)/(4.*cw**2*sw) + (3*ca*ch**2*ee**4*eta*MH**2*sa**3*v**2)/(4.*MZ**2*sw) - (ca*ch**2*ee**4*eta**3*MH**2*sa**3*v**2)/(4.*cw**2*MZ**2*sw) + (3*ca*ch**2*ee**4*eta*MH**2*sa**3*v**2)/(4.*MZp**2*sw) - (ca*ch**2*ee**4*eta**3*MH**2*sa**3*v**2)/(4.*cw**2*MZp**2*sw) - (3*ca*ch**2*ee**4*eta*MH**4*sa**3*v**2)/(8.*MZ**2*MZp**2*sw) + (ca*ch**2*ee**4*eta**3*MH**4*sa**3*v**2)/(8.*cw**2*MZ**2*MZp**2*sw) - (3*ca*ch**2*ee**4*eta*MZ**2*sa**3*v**2)/(8.*MZp**2*sw) + (ca*ch**2*ee**4*eta**3*MZ**2*sa**3*v**2)/(8.*cw**2*MZp**2*sw) - (3*ca*ch**2*ee**4*eta*MZp**2*sa**3*v**2)/(8.*MZ**2*sw) + (ca*ch**2*ee**4*eta**3*MZp**2*sa**3*v**2)/(8.*cw**2*MZ**2*sw) + (15*ca**3*ch**2*ee**4*eta*sa*sw*v**2)/(4.*cw**2) - (5*ca**3*ch**2*ee**4*eta**3*sa*sw*v**2)/(4.*cw**4) - (3*ca**3*ch**2*ee**4*eta*MH**2*sa*sw*v**2)/(4.*cw**2*MZ**2) + (ca**3*ch**2*ee**4*eta**3*MH**2*sa*sw*v**2)/(4.*cw**4*MZ**2) - (3*ca**3*ch**2*ee**4*eta*MH**2*sa*sw*v**2)/(4.*cw**2*MZp**2) + (ca**3*ch**2*ee**4*eta**3*MH**2*sa*sw*v**2)/(4.*cw**4*MZp**2) + (3*ca**3*ch**2*ee**4*eta*MH**4*sa*sw*v**2)/(8.*cw**2*MZ**2*MZp**2) - (ca**3*ch**2*ee**4*eta**3*MH**4*sa*sw*v**2)/(8.*cw**4*MZ**2*MZp**2) + (3*ca**3*ch**2*ee**4*eta*MZ**2*sa*sw*v**2)/(8.*cw**2*MZp**2) - (ca**3*ch**2*ee**4*eta**3*MZ**2*sa*sw*v**2)/(8.*cw**4*MZp**2) + (3*ca**3*ch**2*ee**4*eta*MZp**2*sa*sw*v**2)/(8.*cw**2*MZ**2) - (ca**3*ch**2*ee**4*eta**3*MZp**2*sa*sw*v**2)/(8.*cw**4*MZ**2) - (15*ca*ch**2*ee**4*eta*sa**3*sw*v**2)/(4.*cw**2) + (5*ca*ch**2*ee**4*eta**3*sa**3*sw*v**2)/(4.*cw**4) + (3*ca*ch**2*ee**4*eta*MH**2*sa**3*sw*v**2)/(4.*cw**2*MZ**2) - (ca*ch**2*ee**4*eta**3*MH**2*sa**3*sw*v**2)/(4.*cw**4*MZ**2) + (3*ca*ch**2*ee**4*eta*MH**2*sa**3*sw*v**2)/(4.*cw**2*MZp**2) - (ca*ch**2*ee**4*eta**3*MH**2*sa**3*sw*v**2)/(4.*cw**4*MZp**2) - (3*ca*ch**2*ee**4*eta*MH**4*sa**3*sw*v**2)/(8.*cw**2*MZ**2*MZp**2) + (ca*ch**2*ee**4*eta**3*MH**4*sa**3*sw*v**2)/(8.*cw**4*MZ**2*MZp**2) - (3*ca*ch**2*ee**4*eta*MZ**2*sa**3*sw*v**2)/(8.*cw**2*MZp**2) + (ca*ch**2*ee**4*eta**3*MZ**2*sa**3*sw*v**2)/(8.*cw**4*MZp**2) - (3*ca*ch**2*ee**4*eta*MZp**2*sa**3*sw*v**2)/(8.*cw**2*MZ**2) + (ca*ch**2*ee**4*eta**3*MZp**2*sa**3*sw*v**2)/(8.*cw**4*MZ**2) + (5*ca**4*ch**2*ee**4*eta**2*sw**2*v**2)/(8.*cw**4) - (ca**4*ch**2*ee**4*eta**2*MH**2*sw**2*v**2)/(8.*cw**4*MZ**2) - (ca**4*ch**2*ee**4*eta**2*MH**2*sw**2*v**2)/(8.*cw**4*MZp**2) + (ca**4*ch**2*ee**4*eta**2*MH**4*sw**2*v**2)/(16.*cw**4*MZ**2*MZp**2) + (ca**4*ch**2*ee**4*eta**2*MZ**2*sw**2*v**2)/(16.*cw**4*MZp**2) + (ca**4*ch**2*ee**4*eta**2*MZp**2*sw**2*v**2)/(16.*cw**4*MZ**2) + (5*ca**2*ch**2*ee**4*sa**2*sw**2*v**2)/(2.*cw**2) - (5*ca**2*ch**2*ee**4*eta**2*sa**2*sw**2*v**2)/(2.*cw**4) - (ca**2*ch**2*ee**4*MH**2*sa**2*sw**2*v**2)/(2.*cw**2*MZ**2) + (ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*sw**2*v**2)/(2.*cw**4*MZ**2) - (ca**2*ch**2*ee**4*MH**2*sa**2*sw**2*v**2)/(2.*cw**2*MZp**2) + (ca**2*ch**2*ee**4*eta**2*MH**2*sa**2*sw**2*v**2)/(2.*cw**4*MZp**2) + (ca**2*ch**2*ee**4*MH**4*sa**2*sw**2*v**2)/(4.*cw**2*MZ**2*MZp**2) - (ca**2*ch**2*ee**4*eta**2*MH**4*sa**2*sw**2*v**2)/(4.*cw**4*MZ**2*MZp**2) + (ca**2*ch**2*ee**4*MZ**2*sa**2*sw**2*v**2)/(4.*cw**2*MZp**2) - (ca**2*ch**2*ee**4*eta**2*MZ**2*sa**2*sw**2*v**2)/(4.*cw**4*MZp**2) + (ca**2*ch**2*ee**4*MZp**2*sa**2*sw**2*v**2)/(4.*cw**2*MZ**2) - (ca**2*ch**2*ee**4*eta**2*MZp**2*sa**2*sw**2*v**2)/(4.*cw**4*MZ**2) + (5*ch**2*ee**4*eta**2*sa**4*sw**2*v**2)/(8.*cw**4) - (ch**2*ee**4*eta**2*MH**2*sa**4*sw**2*v**2)/(8.*cw**4*MZ**2) - (ch**2*ee**4*eta**2*MH**2*sa**4*sw**2*v**2)/(8.*cw**4*MZp**2) + (ch**2*ee**4*eta**2*MH**4*sa**4*sw**2*v**2)/(16.*cw**4*MZ**2*MZp**2) + (ch**2*ee**4*eta**2*MZ**2*sa**4*sw**2*v**2)/(16.*cw**4*MZp**2) + (ch**2*ee**4*eta**2*MZp**2*sa**4*sw**2*v**2)/(16.*cw**4*MZ**2) + (5*ca**3*ch**2*ee**4*eta*sa*sw**3*v**2)/(4.*cw**4) - (ca**3*ch**2*ee**4*eta*MH**2*sa*sw**3*v**2)/(4.*cw**4*MZ**2) - (ca**3*ch**2*ee**4*eta*MH**2*sa*sw**3*v**2)/(4.*cw**4*MZp**2) + (ca**3*ch**2*ee**4*eta*MH**4*sa*sw**3*v**2)/(8.*cw**4*MZ**2*MZp**2) + (ca**3*ch**2*ee**4*eta*MZ**2*sa*sw**3*v**2)/(8.*cw**4*MZp**2) + (ca**3*ch**2*ee**4*eta*MZp**2*sa*sw**3*v**2)/(8.*cw**4*MZ**2) - (5*ca*ch**2*ee**4*eta*sa**3*sw**3*v**2)/(4.*cw**4) + (ca*ch**2*ee**4*eta*MH**2*sa**3*sw**3*v**2)/(4.*cw**4*MZ**2) + (ca*ch**2*ee**4*eta*MH**2*sa**3*sw**3*v**2)/(4.*cw**4*MZp**2) - (ca*ch**2*ee**4*eta*MH**4*sa**3*sw**3*v**2)/(8.*cw**4*MZ**2*MZp**2) - (ca*ch**2*ee**4*eta*MZ**2*sa**3*sw**3*v**2)/(8.*cw**4*MZp**2) - (ca*ch**2*ee**4*eta*MZp**2*sa**3*sw**3*v**2)/(8.*cw**4*MZ**2) + (5*ca**2*ch**2*ee**4*sa**2*sw**4*v**2)/(8.*cw**4) - (ca**2*ch**2*ee**4*MH**2*sa**2*sw**4*v**2)/(8.*cw**4*MZ**2) - (ca**2*ch**2*ee**4*MH**2*sa**2*sw**4*v**2)/(8.*cw**4*MZp**2) + (ca**2*ch**2*ee**4*MH**4*sa**2*sw**4*v**2)/(16.*cw**4*MZ**2*MZp**2) + (ca**2*ch**2*ee**4*MZ**2*sa**2*sw**4*v**2)/(16.*cw**4*MZp**2) + (ca**2*ch**2*ee**4*MZp**2*sa**2*sw**4*v**2)/(16.*cw**4*MZ**2) + (10*ca**2*ch*ee**2*eta**2*gX**2*sa**2*sh*v*xi)/chi**2 - (5*ca**2*ch*ee**2*eta**4*gX**2*sa**2*sh*v*xi)/(chi**2*cw**2) - (2*ca**2*ch*ee**2*eta**2*gX**2*MH**2*sa**2*sh*v*xi)/(chi**2*MZ**2) + (ca**2*ch*ee**2*eta**4*gX**2*MH**2*sa**2*sh*v*xi)/(chi**2*cw**2*MZ**2) - (2*ca**2*ch*ee**2*eta**2*gX**2*MH**2*sa**2*sh*v*xi)/(chi**2*MZp**2) + (ca**2*ch*ee**2*eta**4*gX**2*MH**2*sa**2*sh*v*xi)/(chi**2*cw**2*MZp**2) + (ca**2*ch*ee**2*eta**2*gX**2*MH**4*sa**2*sh*v*xi)/(chi**2*MZ**2*MZp**2) - (ca**2*ch*ee**2*eta**4*gX**2*MH**4*sa**2*sh*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) + (ca**2*ch*ee**2*eta**2*gX**2*MZ**2*sa**2*sh*v*xi)/(chi**2*MZp**2) - (ca**2*ch*ee**2*eta**4*gX**2*MZ**2*sa**2*sh*v*xi)/(2.*chi**2*cw**2*MZp**2) + (ca**2*ch*ee**2*eta**2*gX**2*MZp**2*sa**2*sh*v*xi)/(chi**2*MZ**2) - (ca**2*ch*ee**2*eta**4*gX**2*MZp**2*sa**2*sh*v*xi)/(2.*chi**2*cw**2*MZ**2) + (5*ca**2*ch*cw**2*ee**2*eta**2*gX**2*sa**2*sh*v*xi)/(chi**2*sw**2) - (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MH**2*sa**2*sh*v*xi)/(chi**2*MZ**2*sw**2) - (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MH**2*sa**2*sh*v*xi)/(chi**2*MZp**2*sw**2) + (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MH**4*sa**2*sh*v*xi)/(2.*chi**2*MZ**2*MZp**2*sw**2) + (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MZ**2*sa**2*sh*v*xi)/(2.*chi**2*MZp**2*sw**2) + (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MZp**2*sa**2*sh*v*xi)/(2.*chi**2*MZ**2*sw**2) + (5*ca**3*ch*ee**2*eta**3*gX**2*sa*sh*v*xi)/(chi**2*sw) - (ca**3*ch*ee**2*eta**3*gX**2*MH**2*sa*sh*v*xi)/(chi**2*MZ**2*sw) - (ca**3*ch*ee**2*eta**3*gX**2*MH**2*sa*sh*v*xi)/(chi**2*MZp**2*sw) + (ca**3*ch*ee**2*eta**3*gX**2*MH**4*sa*sh*v*xi)/(2.*chi**2*MZ**2*MZp**2*sw) + (ca**3*ch*ee**2*eta**3*gX**2*MZ**2*sa*sh*v*xi)/(2.*chi**2*MZp**2*sw) + (ca**3*ch*ee**2*eta**3*gX**2*MZp**2*sa*sh*v*xi)/(2.*chi**2*MZ**2*sw) - (5*ca*ch*ee**2*eta**3*gX**2*sa**3*sh*v*xi)/(chi**2*sw) + (ca*ch*ee**2*eta**3*gX**2*MH**2*sa**3*sh*v*xi)/(chi**2*MZ**2*sw) + (ca*ch*ee**2*eta**3*gX**2*MH**2*sa**3*sh*v*xi)/(chi**2*MZp**2*sw) - (ca*ch*ee**2*eta**3*gX**2*MH**4*sa**3*sh*v*xi)/(2.*chi**2*MZ**2*MZp**2*sw) - (ca*ch*ee**2*eta**3*gX**2*MZ**2*sa**3*sh*v*xi)/(2.*chi**2*MZp**2*sw) - (ca*ch*ee**2*eta**3*gX**2*MZp**2*sa**3*sh*v*xi)/(2.*chi**2*MZ**2*sw) + (5*ca**3*ch*ee**2*eta**3*gX**2*sa*sh*sw*v*xi)/(chi**2*cw**2) - (ca**3*ch*ee**2*eta**3*gX**2*MH**2*sa*sh*sw*v*xi)/(chi**2*cw**2*MZ**2) - (ca**3*ch*ee**2*eta**3*gX**2*MH**2*sa*sh*sw*v*xi)/(chi**2*cw**2*MZp**2) + (ca**3*ch*ee**2*eta**3*gX**2*MH**4*sa*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) + (ca**3*ch*ee**2*eta**3*gX**2*MZ**2*sa*sh*sw*v*xi)/(2.*chi**2*cw**2*MZp**2) + (ca**3*ch*ee**2*eta**3*gX**2*MZp**2*sa*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2) - (5*ca*ch*ee**2*eta**3*gX**2*sa**3*sh*sw*v*xi)/(chi**2*cw**2) + (ca*ch*ee**2*eta**3*gX**2*MH**2*sa**3*sh*sw*v*xi)/(chi**2*cw**2*MZ**2) + (ca*ch*ee**2*eta**3*gX**2*MH**2*sa**3*sh*sw*v*xi)/(chi**2*cw**2*MZp**2) - (ca*ch*ee**2*eta**3*gX**2*MH**4*sa**3*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) - (ca*ch*ee**2*eta**3*gX**2*MZ**2*sa**3*sh*sw*v*xi)/(2.*chi**2*cw**2*MZp**2) - (ca*ch*ee**2*eta**3*gX**2*MZp**2*sa**3*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2) + (5*ca**2*ch*ee**2*eta**2*gX**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2) - (ca**2*ch*ee**2*eta**2*gX**2*MH**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2*MZ**2) - (ca**2*ch*ee**2*eta**2*gX**2*MH**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2*MZp**2) + (ca**2*ch*ee**2*eta**2*gX**2*MH**4*sa**2*sh*sw**2*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) + (ca**2*ch*ee**2*eta**2*gX**2*MZ**2*sa**2*sh*sw**2*v*xi)/(2.*chi**2*cw**2*MZp**2) + (ca**2*ch*ee**2*eta**2*gX**2*MZp**2*sa**2*sh*sw**2*v*xi)/(2.*chi**2*cw**2*MZ**2) + (10*ca**2*eta**4*gX**4*sa**2*sh**2*xi**2)/chi**4 - (2*ca**2*eta**4*gX**4*MH**2*sa**2*sh**2*xi**2)/(chi**4*MZ**2) - (2*ca**2*eta**4*gX**4*MH**2*sa**2*sh**2*xi**2)/(chi**4*MZp**2) + (ca**2*eta**4*gX**4*MH**4*sa**2*sh**2*xi**2)/(chi**4*MZ**2*MZp**2) + (ca**2*eta**4*gX**4*MZ**2*sa**2*sh**2*xi**2)/(chi**4*MZp**2) + (ca**2*eta**4*gX**4*MZp**2*sa**2*sh**2*xi**2)/(chi**4*MZ**2))*cmath.sqrt(MH**4 - 2*MH**2*MZ**2 + MZ**4 - 2*MH**2*MZp**2 - 2*MZ**2*MZp**2 + MZp**4))/(48.*cmath.pi*abs(MZp)**3)',
+                                   (P.hs,P.Z):'(((5*ca**4*ee**4*eta**2*sh**2*v**2)/(4.*cw**2) - (ca**4*ee**4*eta**2*MHS**2*sh**2*v**2)/(4.*cw**2*MZ**2) - (ca**4*ee**4*eta**2*MHS**2*sh**2*v**2)/(4.*cw**2*MZp**2) + (ca**4*ee**4*eta**2*MHS**4*sh**2*v**2)/(8.*cw**2*MZ**2*MZp**2) + (ca**4*ee**4*eta**2*MZ**2*sh**2*v**2)/(8.*cw**2*MZp**2) + (ca**4*ee**4*eta**2*MZp**2*sh**2*v**2)/(8.*cw**2*MZ**2) + (15*ca**2*ee**4*sa**2*sh**2*v**2)/4. - (5*ca**2*ee**4*eta**2*sa**2*sh**2*v**2)/cw**2 + (5*ca**2*ee**4*eta**4*sa**2*sh**2*v**2)/(8.*cw**4) - (3*ca**2*ee**4*MHS**2*sa**2*sh**2*v**2)/(4.*MZ**2) + (ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*v**2)/(cw**2*MZ**2) - (ca**2*ee**4*eta**4*MHS**2*sa**2*sh**2*v**2)/(8.*cw**4*MZ**2) - (3*ca**2*ee**4*MHS**2*sa**2*sh**2*v**2)/(4.*MZp**2) + (ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*v**2)/(cw**2*MZp**2) - (ca**2*ee**4*eta**4*MHS**2*sa**2*sh**2*v**2)/(8.*cw**4*MZp**2) + (3*ca**2*ee**4*MHS**4*sa**2*sh**2*v**2)/(8.*MZ**2*MZp**2) - (ca**2*ee**4*eta**2*MHS**4*sa**2*sh**2*v**2)/(2.*cw**2*MZ**2*MZp**2) + (ca**2*ee**4*eta**4*MHS**4*sa**2*sh**2*v**2)/(16.*cw**4*MZ**2*MZp**2) + (3*ca**2*ee**4*MZ**2*sa**2*sh**2*v**2)/(8.*MZp**2) - (ca**2*ee**4*eta**2*MZ**2*sa**2*sh**2*v**2)/(2.*cw**2*MZp**2) + (ca**2*ee**4*eta**4*MZ**2*sa**2*sh**2*v**2)/(16.*cw**4*MZp**2) + (3*ca**2*ee**4*MZp**2*sa**2*sh**2*v**2)/(8.*MZ**2) - (ca**2*ee**4*eta**2*MZp**2*sa**2*sh**2*v**2)/(2.*cw**2*MZ**2) + (ca**2*ee**4*eta**4*MZp**2*sa**2*sh**2*v**2)/(16.*cw**4*MZ**2) + (5*ee**4*eta**2*sa**4*sh**2*v**2)/(4.*cw**2) - (ee**4*eta**2*MHS**2*sa**4*sh**2*v**2)/(4.*cw**2*MZ**2) - (ee**4*eta**2*MHS**2*sa**4*sh**2*v**2)/(4.*cw**2*MZp**2) + (ee**4*eta**2*MHS**4*sa**4*sh**2*v**2)/(8.*cw**2*MZ**2*MZp**2) + (ee**4*eta**2*MZ**2*sa**4*sh**2*v**2)/(8.*cw**2*MZp**2) + (ee**4*eta**2*MZp**2*sa**4*sh**2*v**2)/(8.*cw**2*MZ**2) + (5*ca**2*cw**4*ee**4*sa**2*sh**2*v**2)/(8.*sw**4) - (ca**2*cw**4*ee**4*MHS**2*sa**2*sh**2*v**2)/(8.*MZ**2*sw**4) - (ca**2*cw**4*ee**4*MHS**2*sa**2*sh**2*v**2)/(8.*MZp**2*sw**4) + (ca**2*cw**4*ee**4*MHS**4*sa**2*sh**2*v**2)/(16.*MZ**2*MZp**2*sw**4) + (ca**2*cw**4*ee**4*MZ**2*sa**2*sh**2*v**2)/(16.*MZp**2*sw**4) + (ca**2*cw**4*ee**4*MZp**2*sa**2*sh**2*v**2)/(16.*MZ**2*sw**4) + (5*ca**3*cw**2*ee**4*eta*sa*sh**2*v**2)/(4.*sw**3) - (ca**3*cw**2*ee**4*eta*MHS**2*sa*sh**2*v**2)/(4.*MZ**2*sw**3) - (ca**3*cw**2*ee**4*eta*MHS**2*sa*sh**2*v**2)/(4.*MZp**2*sw**3) + (ca**3*cw**2*ee**4*eta*MHS**4*sa*sh**2*v**2)/(8.*MZ**2*MZp**2*sw**3) + (ca**3*cw**2*ee**4*eta*MZ**2*sa*sh**2*v**2)/(8.*MZp**2*sw**3) + (ca**3*cw**2*ee**4*eta*MZp**2*sa*sh**2*v**2)/(8.*MZ**2*sw**3) - (5*ca*cw**2*ee**4*eta*sa**3*sh**2*v**2)/(4.*sw**3) + (ca*cw**2*ee**4*eta*MHS**2*sa**3*sh**2*v**2)/(4.*MZ**2*sw**3) + (ca*cw**2*ee**4*eta*MHS**2*sa**3*sh**2*v**2)/(4.*MZp**2*sw**3) - (ca*cw**2*ee**4*eta*MHS**4*sa**3*sh**2*v**2)/(8.*MZ**2*MZp**2*sw**3) - (ca*cw**2*ee**4*eta*MZ**2*sa**3*sh**2*v**2)/(8.*MZp**2*sw**3) - (ca*cw**2*ee**4*eta*MZp**2*sa**3*sh**2*v**2)/(8.*MZ**2*sw**3) + (5*ca**4*ee**4*eta**2*sh**2*v**2)/(8.*sw**2) - (ca**4*ee**4*eta**2*MHS**2*sh**2*v**2)/(8.*MZ**2*sw**2) - (ca**4*ee**4*eta**2*MHS**2*sh**2*v**2)/(8.*MZp**2*sw**2) + (ca**4*ee**4*eta**2*MHS**4*sh**2*v**2)/(16.*MZ**2*MZp**2*sw**2) + (ca**4*ee**4*eta**2*MZ**2*sh**2*v**2)/(16.*MZp**2*sw**2) + (ca**4*ee**4*eta**2*MZp**2*sh**2*v**2)/(16.*MZ**2*sw**2) + (5*ca**2*cw**2*ee**4*sa**2*sh**2*v**2)/(2.*sw**2) - (5*ca**2*ee**4*eta**2*sa**2*sh**2*v**2)/(2.*sw**2) - (ca**2*cw**2*ee**4*MHS**2*sa**2*sh**2*v**2)/(2.*MZ**2*sw**2) + (ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*v**2)/(2.*MZ**2*sw**2) - (ca**2*cw**2*ee**4*MHS**2*sa**2*sh**2*v**2)/(2.*MZp**2*sw**2) + (ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*v**2)/(2.*MZp**2*sw**2) + (ca**2*cw**2*ee**4*MHS**4*sa**2*sh**2*v**2)/(4.*MZ**2*MZp**2*sw**2) - (ca**2*ee**4*eta**2*MHS**4*sa**2*sh**2*v**2)/(4.*MZ**2*MZp**2*sw**2) + (ca**2*cw**2*ee**4*MZ**2*sa**2*sh**2*v**2)/(4.*MZp**2*sw**2) - (ca**2*ee**4*eta**2*MZ**2*sa**2*sh**2*v**2)/(4.*MZp**2*sw**2) + (ca**2*cw**2*ee**4*MZp**2*sa**2*sh**2*v**2)/(4.*MZ**2*sw**2) - (ca**2*ee**4*eta**2*MZp**2*sa**2*sh**2*v**2)/(4.*MZ**2*sw**2) + (5*ee**4*eta**2*sa**4*sh**2*v**2)/(8.*sw**2) - (ee**4*eta**2*MHS**2*sa**4*sh**2*v**2)/(8.*MZ**2*sw**2) - (ee**4*eta**2*MHS**2*sa**4*sh**2*v**2)/(8.*MZp**2*sw**2) + (ee**4*eta**2*MHS**4*sa**4*sh**2*v**2)/(16.*MZ**2*MZp**2*sw**2) + (ee**4*eta**2*MZ**2*sa**4*sh**2*v**2)/(16.*MZp**2*sw**2) + (ee**4*eta**2*MZp**2*sa**4*sh**2*v**2)/(16.*MZ**2*sw**2) + (15*ca**3*ee**4*eta*sa*sh**2*v**2)/(4.*sw) - (5*ca**3*ee**4*eta**3*sa*sh**2*v**2)/(4.*cw**2*sw) - (3*ca**3*ee**4*eta*MHS**2*sa*sh**2*v**2)/(4.*MZ**2*sw) + (ca**3*ee**4*eta**3*MHS**2*sa*sh**2*v**2)/(4.*cw**2*MZ**2*sw) - (3*ca**3*ee**4*eta*MHS**2*sa*sh**2*v**2)/(4.*MZp**2*sw) + (ca**3*ee**4*eta**3*MHS**2*sa*sh**2*v**2)/(4.*cw**2*MZp**2*sw) + (3*ca**3*ee**4*eta*MHS**4*sa*sh**2*v**2)/(8.*MZ**2*MZp**2*sw) - (ca**3*ee**4*eta**3*MHS**4*sa*sh**2*v**2)/(8.*cw**2*MZ**2*MZp**2*sw) + (3*ca**3*ee**4*eta*MZ**2*sa*sh**2*v**2)/(8.*MZp**2*sw) - (ca**3*ee**4*eta**3*MZ**2*sa*sh**2*v**2)/(8.*cw**2*MZp**2*sw) + (3*ca**3*ee**4*eta*MZp**2*sa*sh**2*v**2)/(8.*MZ**2*sw) - (ca**3*ee**4*eta**3*MZp**2*sa*sh**2*v**2)/(8.*cw**2*MZ**2*sw) - (15*ca*ee**4*eta*sa**3*sh**2*v**2)/(4.*sw) + (5*ca*ee**4*eta**3*sa**3*sh**2*v**2)/(4.*cw**2*sw) + (3*ca*ee**4*eta*MHS**2*sa**3*sh**2*v**2)/(4.*MZ**2*sw) - (ca*ee**4*eta**3*MHS**2*sa**3*sh**2*v**2)/(4.*cw**2*MZ**2*sw) + (3*ca*ee**4*eta*MHS**2*sa**3*sh**2*v**2)/(4.*MZp**2*sw) - (ca*ee**4*eta**3*MHS**2*sa**3*sh**2*v**2)/(4.*cw**2*MZp**2*sw) - (3*ca*ee**4*eta*MHS**4*sa**3*sh**2*v**2)/(8.*MZ**2*MZp**2*sw) + (ca*ee**4*eta**3*MHS**4*sa**3*sh**2*v**2)/(8.*cw**2*MZ**2*MZp**2*sw) - (3*ca*ee**4*eta*MZ**2*sa**3*sh**2*v**2)/(8.*MZp**2*sw) + (ca*ee**4*eta**3*MZ**2*sa**3*sh**2*v**2)/(8.*cw**2*MZp**2*sw) - (3*ca*ee**4*eta*MZp**2*sa**3*sh**2*v**2)/(8.*MZ**2*sw) + (ca*ee**4*eta**3*MZp**2*sa**3*sh**2*v**2)/(8.*cw**2*MZ**2*sw) + (15*ca**3*ee**4*eta*sa*sh**2*sw*v**2)/(4.*cw**2) - (5*ca**3*ee**4*eta**3*sa*sh**2*sw*v**2)/(4.*cw**4) - (3*ca**3*ee**4*eta*MHS**2*sa*sh**2*sw*v**2)/(4.*cw**2*MZ**2) + (ca**3*ee**4*eta**3*MHS**2*sa*sh**2*sw*v**2)/(4.*cw**4*MZ**2) - (3*ca**3*ee**4*eta*MHS**2*sa*sh**2*sw*v**2)/(4.*cw**2*MZp**2) + (ca**3*ee**4*eta**3*MHS**2*sa*sh**2*sw*v**2)/(4.*cw**4*MZp**2) + (3*ca**3*ee**4*eta*MHS**4*sa*sh**2*sw*v**2)/(8.*cw**2*MZ**2*MZp**2) - (ca**3*ee**4*eta**3*MHS**4*sa*sh**2*sw*v**2)/(8.*cw**4*MZ**2*MZp**2) + (3*ca**3*ee**4*eta*MZ**2*sa*sh**2*sw*v**2)/(8.*cw**2*MZp**2) - (ca**3*ee**4*eta**3*MZ**2*sa*sh**2*sw*v**2)/(8.*cw**4*MZp**2) + (3*ca**3*ee**4*eta*MZp**2*sa*sh**2*sw*v**2)/(8.*cw**2*MZ**2) - (ca**3*ee**4*eta**3*MZp**2*sa*sh**2*sw*v**2)/(8.*cw**4*MZ**2) - (15*ca*ee**4*eta*sa**3*sh**2*sw*v**2)/(4.*cw**2) + (5*ca*ee**4*eta**3*sa**3*sh**2*sw*v**2)/(4.*cw**4) + (3*ca*ee**4*eta*MHS**2*sa**3*sh**2*sw*v**2)/(4.*cw**2*MZ**2) - (ca*ee**4*eta**3*MHS**2*sa**3*sh**2*sw*v**2)/(4.*cw**4*MZ**2) + (3*ca*ee**4*eta*MHS**2*sa**3*sh**2*sw*v**2)/(4.*cw**2*MZp**2) - (ca*ee**4*eta**3*MHS**2*sa**3*sh**2*sw*v**2)/(4.*cw**4*MZp**2) - (3*ca*ee**4*eta*MHS**4*sa**3*sh**2*sw*v**2)/(8.*cw**2*MZ**2*MZp**2) + (ca*ee**4*eta**3*MHS**4*sa**3*sh**2*sw*v**2)/(8.*cw**4*MZ**2*MZp**2) - (3*ca*ee**4*eta*MZ**2*sa**3*sh**2*sw*v**2)/(8.*cw**2*MZp**2) + (ca*ee**4*eta**3*MZ**2*sa**3*sh**2*sw*v**2)/(8.*cw**4*MZp**2) - (3*ca*ee**4*eta*MZp**2*sa**3*sh**2*sw*v**2)/(8.*cw**2*MZ**2) + (ca*ee**4*eta**3*MZp**2*sa**3*sh**2*sw*v**2)/(8.*cw**4*MZ**2) + (5*ca**4*ee**4*eta**2*sh**2*sw**2*v**2)/(8.*cw**4) - (ca**4*ee**4*eta**2*MHS**2*sh**2*sw**2*v**2)/(8.*cw**4*MZ**2) - (ca**4*ee**4*eta**2*MHS**2*sh**2*sw**2*v**2)/(8.*cw**4*MZp**2) + (ca**4*ee**4*eta**2*MHS**4*sh**2*sw**2*v**2)/(16.*cw**4*MZ**2*MZp**2) + (ca**4*ee**4*eta**2*MZ**2*sh**2*sw**2*v**2)/(16.*cw**4*MZp**2) + (ca**4*ee**4*eta**2*MZp**2*sh**2*sw**2*v**2)/(16.*cw**4*MZ**2) + (5*ca**2*ee**4*sa**2*sh**2*sw**2*v**2)/(2.*cw**2) - (5*ca**2*ee**4*eta**2*sa**2*sh**2*sw**2*v**2)/(2.*cw**4) - (ca**2*ee**4*MHS**2*sa**2*sh**2*sw**2*v**2)/(2.*cw**2*MZ**2) + (ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*sw**2*v**2)/(2.*cw**4*MZ**2) - (ca**2*ee**4*MHS**2*sa**2*sh**2*sw**2*v**2)/(2.*cw**2*MZp**2) + (ca**2*ee**4*eta**2*MHS**2*sa**2*sh**2*sw**2*v**2)/(2.*cw**4*MZp**2) + (ca**2*ee**4*MHS**4*sa**2*sh**2*sw**2*v**2)/(4.*cw**2*MZ**2*MZp**2) - (ca**2*ee**4*eta**2*MHS**4*sa**2*sh**2*sw**2*v**2)/(4.*cw**4*MZ**2*MZp**2) + (ca**2*ee**4*MZ**2*sa**2*sh**2*sw**2*v**2)/(4.*cw**2*MZp**2) - (ca**2*ee**4*eta**2*MZ**2*sa**2*sh**2*sw**2*v**2)/(4.*cw**4*MZp**2) + (ca**2*ee**4*MZp**2*sa**2*sh**2*sw**2*v**2)/(4.*cw**2*MZ**2) - (ca**2*ee**4*eta**2*MZp**2*sa**2*sh**2*sw**2*v**2)/(4.*cw**4*MZ**2) + (5*ee**4*eta**2*sa**4*sh**2*sw**2*v**2)/(8.*cw**4) - (ee**4*eta**2*MHS**2*sa**4*sh**2*sw**2*v**2)/(8.*cw**4*MZ**2) - (ee**4*eta**2*MHS**2*sa**4*sh**2*sw**2*v**2)/(8.*cw**4*MZp**2) + (ee**4*eta**2*MHS**4*sa**4*sh**2*sw**2*v**2)/(16.*cw**4*MZ**2*MZp**2) + (ee**4*eta**2*MZ**2*sa**4*sh**2*sw**2*v**2)/(16.*cw**4*MZp**2) + (ee**4*eta**2*MZp**2*sa**4*sh**2*sw**2*v**2)/(16.*cw**4*MZ**2) + (5*ca**3*ee**4*eta*sa*sh**2*sw**3*v**2)/(4.*cw**4) - (ca**3*ee**4*eta*MHS**2*sa*sh**2*sw**3*v**2)/(4.*cw**4*MZ**2) - (ca**3*ee**4*eta*MHS**2*sa*sh**2*sw**3*v**2)/(4.*cw**4*MZp**2) + (ca**3*ee**4*eta*MHS**4*sa*sh**2*sw**3*v**2)/(8.*cw**4*MZ**2*MZp**2) + (ca**3*ee**4*eta*MZ**2*sa*sh**2*sw**3*v**2)/(8.*cw**4*MZp**2) + (ca**3*ee**4*eta*MZp**2*sa*sh**2*sw**3*v**2)/(8.*cw**4*MZ**2) - (5*ca*ee**4*eta*sa**3*sh**2*sw**3*v**2)/(4.*cw**4) + (ca*ee**4*eta*MHS**2*sa**3*sh**2*sw**3*v**2)/(4.*cw**4*MZ**2) + (ca*ee**4*eta*MHS**2*sa**3*sh**2*sw**3*v**2)/(4.*cw**4*MZp**2) - (ca*ee**4*eta*MHS**4*sa**3*sh**2*sw**3*v**2)/(8.*cw**4*MZ**2*MZp**2) - (ca*ee**4*eta*MZ**2*sa**3*sh**2*sw**3*v**2)/(8.*cw**4*MZp**2) - (ca*ee**4*eta*MZp**2*sa**3*sh**2*sw**3*v**2)/(8.*cw**4*MZ**2) + (5*ca**2*ee**4*sa**2*sh**2*sw**4*v**2)/(8.*cw**4) - (ca**2*ee**4*MHS**2*sa**2*sh**2*sw**4*v**2)/(8.*cw**4*MZ**2) - (ca**2*ee**4*MHS**2*sa**2*sh**2*sw**4*v**2)/(8.*cw**4*MZp**2) + (ca**2*ee**4*MHS**4*sa**2*sh**2*sw**4*v**2)/(16.*cw**4*MZ**2*MZp**2) + (ca**2*ee**4*MZ**2*sa**2*sh**2*sw**4*v**2)/(16.*cw**4*MZp**2) + (ca**2*ee**4*MZp**2*sa**2*sh**2*sw**4*v**2)/(16.*cw**4*MZ**2) - (10*ca**2*ch*ee**2*eta**2*gX**2*sa**2*sh*v*xi)/chi**2 + (5*ca**2*ch*ee**2*eta**4*gX**2*sa**2*sh*v*xi)/(chi**2*cw**2) + (2*ca**2*ch*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*v*xi)/(chi**2*MZ**2) - (ca**2*ch*ee**2*eta**4*gX**2*MHS**2*sa**2*sh*v*xi)/(chi**2*cw**2*MZ**2) + (2*ca**2*ch*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*v*xi)/(chi**2*MZp**2) - (ca**2*ch*ee**2*eta**4*gX**2*MHS**2*sa**2*sh*v*xi)/(chi**2*cw**2*MZp**2) - (ca**2*ch*ee**2*eta**2*gX**2*MHS**4*sa**2*sh*v*xi)/(chi**2*MZ**2*MZp**2) + (ca**2*ch*ee**2*eta**4*gX**2*MHS**4*sa**2*sh*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) - (ca**2*ch*ee**2*eta**2*gX**2*MZ**2*sa**2*sh*v*xi)/(chi**2*MZp**2) + (ca**2*ch*ee**2*eta**4*gX**2*MZ**2*sa**2*sh*v*xi)/(2.*chi**2*cw**2*MZp**2) - (ca**2*ch*ee**2*eta**2*gX**2*MZp**2*sa**2*sh*v*xi)/(chi**2*MZ**2) + (ca**2*ch*ee**2*eta**4*gX**2*MZp**2*sa**2*sh*v*xi)/(2.*chi**2*cw**2*MZ**2) - (5*ca**2*ch*cw**2*ee**2*eta**2*gX**2*sa**2*sh*v*xi)/(chi**2*sw**2) + (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*v*xi)/(chi**2*MZ**2*sw**2) + (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*v*xi)/(chi**2*MZp**2*sw**2) - (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MHS**4*sa**2*sh*v*xi)/(2.*chi**2*MZ**2*MZp**2*sw**2) - (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MZ**2*sa**2*sh*v*xi)/(2.*chi**2*MZp**2*sw**2) - (ca**2*ch*cw**2*ee**2*eta**2*gX**2*MZp**2*sa**2*sh*v*xi)/(2.*chi**2*MZ**2*sw**2) - (5*ca**3*ch*ee**2*eta**3*gX**2*sa*sh*v*xi)/(chi**2*sw) + (ca**3*ch*ee**2*eta**3*gX**2*MHS**2*sa*sh*v*xi)/(chi**2*MZ**2*sw) + (ca**3*ch*ee**2*eta**3*gX**2*MHS**2*sa*sh*v*xi)/(chi**2*MZp**2*sw) - (ca**3*ch*ee**2*eta**3*gX**2*MHS**4*sa*sh*v*xi)/(2.*chi**2*MZ**2*MZp**2*sw) - (ca**3*ch*ee**2*eta**3*gX**2*MZ**2*sa*sh*v*xi)/(2.*chi**2*MZp**2*sw) - (ca**3*ch*ee**2*eta**3*gX**2*MZp**2*sa*sh*v*xi)/(2.*chi**2*MZ**2*sw) + (5*ca*ch*ee**2*eta**3*gX**2*sa**3*sh*v*xi)/(chi**2*sw) - (ca*ch*ee**2*eta**3*gX**2*MHS**2*sa**3*sh*v*xi)/(chi**2*MZ**2*sw) - (ca*ch*ee**2*eta**3*gX**2*MHS**2*sa**3*sh*v*xi)/(chi**2*MZp**2*sw) + (ca*ch*ee**2*eta**3*gX**2*MHS**4*sa**3*sh*v*xi)/(2.*chi**2*MZ**2*MZp**2*sw) + (ca*ch*ee**2*eta**3*gX**2*MZ**2*sa**3*sh*v*xi)/(2.*chi**2*MZp**2*sw) + (ca*ch*ee**2*eta**3*gX**2*MZp**2*sa**3*sh*v*xi)/(2.*chi**2*MZ**2*sw) - (5*ca**3*ch*ee**2*eta**3*gX**2*sa*sh*sw*v*xi)/(chi**2*cw**2) + (ca**3*ch*ee**2*eta**3*gX**2*MHS**2*sa*sh*sw*v*xi)/(chi**2*cw**2*MZ**2) + (ca**3*ch*ee**2*eta**3*gX**2*MHS**2*sa*sh*sw*v*xi)/(chi**2*cw**2*MZp**2) - (ca**3*ch*ee**2*eta**3*gX**2*MHS**4*sa*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) - (ca**3*ch*ee**2*eta**3*gX**2*MZ**2*sa*sh*sw*v*xi)/(2.*chi**2*cw**2*MZp**2) - (ca**3*ch*ee**2*eta**3*gX**2*MZp**2*sa*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2) + (5*ca*ch*ee**2*eta**3*gX**2*sa**3*sh*sw*v*xi)/(chi**2*cw**2) - (ca*ch*ee**2*eta**3*gX**2*MHS**2*sa**3*sh*sw*v*xi)/(chi**2*cw**2*MZ**2) - (ca*ch*ee**2*eta**3*gX**2*MHS**2*sa**3*sh*sw*v*xi)/(chi**2*cw**2*MZp**2) + (ca*ch*ee**2*eta**3*gX**2*MHS**4*sa**3*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) + (ca*ch*ee**2*eta**3*gX**2*MZ**2*sa**3*sh*sw*v*xi)/(2.*chi**2*cw**2*MZp**2) + (ca*ch*ee**2*eta**3*gX**2*MZp**2*sa**3*sh*sw*v*xi)/(2.*chi**2*cw**2*MZ**2) - (5*ca**2*ch*ee**2*eta**2*gX**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2) + (ca**2*ch*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2*MZ**2) + (ca**2*ch*ee**2*eta**2*gX**2*MHS**2*sa**2*sh*sw**2*v*xi)/(chi**2*cw**2*MZp**2) - (ca**2*ch*ee**2*eta**2*gX**2*MHS**4*sa**2*sh*sw**2*v*xi)/(2.*chi**2*cw**2*MZ**2*MZp**2) - (ca**2*ch*ee**2*eta**2*gX**2*MZ**2*sa**2*sh*sw**2*v*xi)/(2.*chi**2*cw**2*MZp**2) - (ca**2*ch*ee**2*eta**2*gX**2*MZp**2*sa**2*sh*sw**2*v*xi)/(2.*chi**2*cw**2*MZ**2) + (10*ca**2*ch**2*eta**4*gX**4*sa**2*xi**2)/chi**4 - (2*ca**2*ch**2*eta**4*gX**4*MHS**2*sa**2*xi**2)/(chi**4*MZ**2) - (2*ca**2*ch**2*eta**4*gX**4*MHS**2*sa**2*xi**2)/(chi**4*MZp**2) + (ca**2*ch**2*eta**4*gX**4*MHS**4*sa**2*xi**2)/(chi**4*MZ**2*MZp**2) + (ca**2*ch**2*eta**4*gX**4*MZ**2*sa**2*xi**2)/(chi**4*MZp**2) + (ca**2*ch**2*eta**4*gX**4*MZp**2*sa**2*xi**2)/(chi**4*MZ**2))*cmath.sqrt(MHS**4 - 2*MHS**2*MZ**2 + MZ**4 - 2*MHS**2*MZp**2 - 2*MZ**2*MZp**2 + MZp**4))/(48.*cmath.pi*abs(MZp)**3)',
+                                   (P.m__minus__,P.m__plus__):'(MZp**2*((5*ca**2*ee**2*eta**2*MZp**2)/(2.*cw**2) - ee**2*MZp**2*sa**2 + (cw**2*ee**2*MZp**2*sa**2)/(2.*sw**2) - (ca*ee**2*eta*MZp**2*sa)/sw + (5*ca*ee**2*eta*MZp**2*sa*sw)/cw**2 + (5*ee**2*MZp**2*sa**2*sw**2)/(2.*cw**2)))/(48.*cmath.pi*abs(MZp)**3)',
+                                   (P.s,P.s__tilde__):'(MZp**2*((5*ca**2*ee**2*eta**2*MZp**2)/(6.*cw**2) + ee**2*MZp**2*sa**2 + (3*cw**2*ee**2*MZp**2*sa**2)/(2.*sw**2) + (ca*ee**2*eta*MZp**2*sa)/sw + (5*ca*ee**2*eta*MZp**2*sa*sw)/(3.*cw**2) + (5*ee**2*MZp**2*sa**2*sw**2)/(6.*cw**2)))/(48.*cmath.pi*abs(MZp)**3)',
+                                   (P.t,P.t__tilde__):'(((7*ca**2*ee**2*eta**2*MT**2)/(6.*cw**2) + (17*ca**2*ee**2*eta**2*MZp**2)/(6.*cw**2) - 11*ee**2*MT**2*sa**2 - ee**2*MZp**2*sa**2 - (3*cw**2*ee**2*MT**2*sa**2)/(2.*sw**2) + (3*cw**2*ee**2*MZp**2*sa**2)/(2.*sw**2) - (11*ca*ee**2*eta*MT**2*sa)/sw - (ca*ee**2*eta*MZp**2*sa)/sw + (7*ca*ee**2*eta*MT**2*sa*sw)/(3.*cw**2) + (17*ca*ee**2*eta*MZp**2*sa*sw)/(3.*cw**2) + (7*ee**2*MT**2*sa**2*sw**2)/(6.*cw**2) + (17*ee**2*MZp**2*sa**2*sw**2)/(6.*cw**2))*cmath.sqrt(-4*MT**2*MZp**2 + MZp**4))/(48.*cmath.pi*abs(MZp)**3)',
+                                   (P.tt__minus__,P.tt__plus__):'(((7*ca**2*ee**2*eta**2*MTA**2)/(2.*cw**2) + (5*ca**2*ee**2*eta**2*MZp**2)/(2.*cw**2) - 5*ee**2*MTA**2*sa**2 - ee**2*MZp**2*sa**2 - (cw**2*ee**2*MTA**2*sa**2)/(2.*sw**2) + (cw**2*ee**2*MZp**2*sa**2)/(2.*sw**2) - (5*ca*ee**2*eta*MTA**2*sa)/sw - (ca*ee**2*eta*MZp**2*sa)/sw + (7*ca*ee**2*eta*MTA**2*sa*sw)/cw**2 + (5*ca*ee**2*eta*MZp**2*sa*sw)/cw**2 + (7*ee**2*MTA**2*sa**2*sw**2)/(2.*cw**2) + (5*ee**2*MZp**2*sa**2*sw**2)/(2.*cw**2))*cmath.sqrt(-4*MTA**2*MZp**2 + MZp**4))/(48.*cmath.pi*abs(MZp)**3)',
+                                   (P.u,P.u__tilde__):'(MZp**2*((17*ca**2*ee**2*eta**2*MZp**2)/(6.*cw**2) - ee**2*MZp**2*sa**2 + (3*cw**2*ee**2*MZp**2*sa**2)/(2.*sw**2) - (ca*ee**2*eta*MZp**2*sa)/sw + (17*ca*ee**2*eta*MZp**2*sa*sw)/(3.*cw**2) + (17*ee**2*MZp**2*sa**2*sw**2)/(6.*cw**2)))/(48.*cmath.pi*abs(MZp)**3)',
+                                   (P.ve,P.ve__tilde__):'(MZp**2*((ca**2*ee**2*eta**2*MZp**2)/(2.*cw**2) + ee**2*MZp**2*sa**2 + (cw**2*ee**2*MZp**2*sa**2)/(2.*sw**2) + (ca*ee**2*eta*MZp**2*sa)/sw + (ca*ee**2*eta*MZp**2*sa*sw)/cw**2 + (ee**2*MZp**2*sa**2*sw**2)/(2.*cw**2)))/(48.*cmath.pi*abs(MZp)**3)',
+                                   (P.vm,P.vm__tilde__):'(MZp**2*((ca**2*ee**2*eta**2*MZp**2)/(2.*cw**2) + ee**2*MZp**2*sa**2 + (cw**2*ee**2*MZp**2*sa**2)/(2.*sw**2) + (ca*ee**2*eta*MZp**2*sa)/sw + (ca*ee**2*eta*MZp**2*sa*sw)/cw**2 + (ee**2*MZp**2*sa**2*sw**2)/(2.*cw**2)))/(48.*cmath.pi*abs(MZp)**3)',
+                                   (P.vt,P.vt__tilde__):'(MZp**2*((ca**2*ee**2*eta**2*MZp**2)/(2.*cw**2) + ee**2*MZp**2*sa**2 + (cw**2*ee**2*MZp**2*sa**2)/(2.*sw**2) + (ca*ee**2*eta*MZp**2*sa)/sw + (ca*ee**2*eta*MZp**2*sa*sw)/cw**2 + (ee**2*MZp**2*sa**2*sw**2)/(2.*cw**2)))/(48.*cmath.pi*abs(MZp)**3)',
+                                   (P.W__minus__,P.W__plus__):'((-12*cw**2*gw**2*MW**2*sa**2 - 17*cw**2*gw**2*MZp**2*sa**2 + (4*cw**2*gw**2*MZp**4*sa**2)/MW**2 + (cw**2*gw**2*MZp**6*sa**2)/(4.*MW**4))*cmath.sqrt(-4*MW**2*MZp**2 + MZp**4))/(48.*cmath.pi*abs(MZp)**3)'})
+
diff --git a/HAHM_variableMW_v3_UFO_QT1/function_library.py b/HAHM_variableMW_v3_UFO_QT1/function_library.py
new file mode 100644
index 00000000..c4cfad7f
--- /dev/null
+++ b/HAHM_variableMW_v3_UFO_QT1/function_library.py
@@ -0,0 +1,71 @@
+# This file is part of the UFO.
+#
+# This file contains definitions for functions that
+# are extensions of the cmath library, and correspond
+# either to functions that are in cmath, but inconvenient
+# to access from there (e.g. z.conjugate()),
+# or functions that are simply not defined.
+#
+#
+
+__date__ = "22 July 2010"
+__author__ = "claude.duhr@durham.ac.uk"
+
+import cmath
+from object_library import all_functions, Function
+
+#
+# shortcuts for functions from cmath
+#
+
+complexconjugate = Function(name = 'complexconjugate',
+                            arguments = ('z',),
+                            expression = 'z.conjugate()')
+
+
+re = Function(name = 're',
+              arguments = ('z',),
+              expression = 'z.real')
+
+im = Function(name = 'im',
+              arguments = ('z',),
+              expression = 'z.imag')
+
+# New functions (trigonometric)
+
+sec = Function(name = 'sec',
+             arguments = ('z',),
+             expression = '1./cmath.cos(z)')
+
+asec = Function(name = 'asec',
+             arguments = ('z',),
+             expression = 'cmath.acos(1./z)')
+
+csc = Function(name = 'csc',
+             arguments = ('z',),
+             expression = '1./cmath.sin(z)')
+
+acsc = Function(name = 'acsc',
+             arguments = ('z',),
+             expression = 'cmath.asin(1./z)')
+
+cot = Function(name = 'cot',
+               arguments = ('z',),
+               expression = '1./cmath.tan(z)')
+
+# Heaviside theta function
+
+theta_function = Function(name = 'theta_function',
+             arguments = ('x','y','z'),
+             expression = 'y if x else z')
+
+# Auxiliary functions for NLO
+
+cond = Function(name = 'cond',
+                arguments = ('condition','ExprTrue','ExprFalse'),
+                expression = '(ExprTrue if condition==0.0 else ExprFalse)')
+
+reglog = Function(name = 'reglog',
+                arguments = ('z'),
+                expression = '(0.0 if z==0.0 else cmath.log(z))')
+
diff --git a/HAHM_variableMW_v3_UFO_QT1/lorentz.py b/HAHM_variableMW_v3_UFO_QT1/lorentz.py
new file mode 100644
index 00000000..3862502e
--- /dev/null
+++ b/HAHM_variableMW_v3_UFO_QT1/lorentz.py
@@ -0,0 +1,98 @@
+# This file was automatically created by FeynRules 2.0.23
+# Mathematica version: 9.0 for Mac OS X x86 (64-bit) (November 20, 2012)
+# Date: Sat 20 Sep 2014 16:11:37
+
+
+from object_library import all_lorentz, Lorentz
+
+from function_library import complexconjugate, re, im, csc, sec, acsc, asec, cot
+
+
+UUV1 = Lorentz(name = 'UUV1',
+               spins = [ -1, -1, 3 ],
+               structure = 'P(3,2) + P(3,3)')
+
+SSS1 = Lorentz(name = 'SSS1',
+               spins = [ 1, 1, 1 ],
+               structure = '1')
+
+FFS1 = Lorentz(name = 'FFS1',
+               spins = [ 2, 2, 1 ],
+               structure = 'Identity(2,1)')
+
+FFV1 = Lorentz(name = 'FFV1',
+               spins = [ 2, 2, 3 ],
+               structure = 'Gamma(3,2,1)')
+
+FFV2 = Lorentz(name = 'FFV2',
+               spins = [ 2, 2, 3 ],
+               structure = 'Gamma(3,2,-1)*ProjM(-1,1)')
+
+FFV3 = Lorentz(name = 'FFV3',
+               spins = [ 2, 2, 3 ],
+               structure = 'Gamma(3,2,-1)*ProjM(-1,1) - 2*Gamma(3,2,-1)*ProjP(-1,1)')
+
+FFV4 = Lorentz(name = 'FFV4',
+               spins = [ 2, 2, 3 ],
+               structure = 'Gamma(3,2,-1)*ProjM(-1,1) + 2*Gamma(3,2,-1)*ProjP(-1,1)')
+
+FFV5 = Lorentz(name = 'FFV5',
+               spins = [ 2, 2, 3 ],
+               structure = 'Gamma(3,2,-1)*ProjM(-1,1) + 4*Gamma(3,2,-1)*ProjP(-1,1)')
+
+VVS1 = Lorentz(name = 'VVS1',
+               spins = [ 3, 3, 1 ],
+               structure = 'Metric(1,2)')
+
+VVS2 = Lorentz(name = 'VVS2',
+               spins = [ 3, 3, 1 ],
+               structure = 'P(1,2)*P(2,1) - P(-1,1)*P(-1,2)*Metric(1,2)')
+
+VVV1 = Lorentz(name = 'VVV1',
+               spins = [ 3, 3, 3 ],
+               structure = 'P(3,1)*Metric(1,2) - P(3,2)*Metric(1,2) - P(2,1)*Metric(1,3) + P(2,3)*Metric(1,3) + P(1,2)*Metric(2,3) - P(1,3)*Metric(2,3)')
+
+SSSS1 = Lorentz(name = 'SSSS1',
+                spins = [ 1, 1, 1, 1 ],
+                structure = '1')
+
+VVSS1 = Lorentz(name = 'VVSS1',
+                spins = [ 3, 3, 1, 1 ],
+                structure = 'Metric(1,2)')
+
+VVVS1 = Lorentz(name = 'VVVS1',
+                spins = [ 3, 3, 3, 1 ],
+                structure = 'P(3,1)*Metric(1,2) - P(3,2)*Metric(1,2) - P(2,1)*Metric(1,3) + P(2,3)*Metric(1,3) + P(1,2)*Metric(2,3) - P(1,3)*Metric(2,3)')
+
+VVVV1 = Lorentz(name = 'VVVV1',
+                spins = [ 3, 3, 3, 3 ],
+                structure = 'Metric(1,4)*Metric(2,3) - Metric(1,3)*Metric(2,4)')
+
+VVVV2 = Lorentz(name = 'VVVV2',
+                spins = [ 3, 3, 3, 3 ],
+                structure = 'Metric(1,4)*Metric(2,3) + Metric(1,3)*Metric(2,4) - 2*Metric(1,2)*Metric(3,4)')
+
+VVVV3 = Lorentz(name = 'VVVV3',
+                spins = [ 3, 3, 3, 3 ],
+                structure = 'Metric(1,4)*Metric(2,3) - Metric(1,2)*Metric(3,4)')
+
+VVVV4 = Lorentz(name = 'VVVV4',
+                spins = [ 3, 3, 3, 3 ],
+                structure = 'Metric(1,3)*Metric(2,4) - Metric(1,2)*Metric(3,4)')
+
+VVVV5 = Lorentz(name = 'VVVV5',
+                spins = [ 3, 3, 3, 3 ],
+                structure = 'Metric(1,4)*Metric(2,3) - (Metric(1,3)*Metric(2,4))/2. - (Metric(1,2)*Metric(3,4))/2.')
+
+VVVVS1 = Lorentz(name = 'VVVVS1',
+                 spins = [ 3, 3, 3, 3, 1 ],
+                 structure = 'Metric(1,4)*Metric(2,3) - Metric(1,3)*Metric(2,4)')
+
+VVVVS2 = Lorentz(name = 'VVVVS2',
+                 spins = [ 3, 3, 3, 3, 1 ],
+                 structure = 'Metric(1,4)*Metric(2,3) - Metric(1,2)*Metric(3,4)')
+
+VVVVS3 = Lorentz(name = 'VVVVS3',
+                 spins = [ 3, 3, 3, 3, 1 ],
+                 structure = 'Metric(1,3)*Metric(2,4) - Metric(1,2)*Metric(3,4)')
+
diff --git a/HAHM_variableMW_v3_UFO_QT1/object_library.py b/HAHM_variableMW_v3_UFO_QT1/object_library.py
new file mode 100644
index 00000000..12278b66
--- /dev/null
+++ b/HAHM_variableMW_v3_UFO_QT1/object_library.py
@@ -0,0 +1,377 @@
+##
+##
+## Feynrules Header
+##
+##
+##
+##
+##
+
+import cmath
+import re
+
+class UFOError(Exception):
+        """Exception raised if when inconsistencies are detected in the UFO model."""
+        pass
+
+class UFOBaseClass(object):
+    """The class from which all FeynRules classes are derived."""
+
+    require_args = []
+
+    def __init__(self, *args, **options):
+        assert(len(self.require_args) == len (args))
+    
+        for i, name in enumerate(self.require_args):
+            setattr(self, name, args[i])
+    
+        for (option, value) in options.items():
+            setattr(self, option, value)
+
+    def get(self, name):
+        return getattr(self, name)
+    
+    def set(self, name, value):
+        setattr(self, name, value)
+        
+    def get_all(self):
+        """Return a dictionary containing all the information of the object"""
+        return self.__dict__
+
+    def __str__(self):
+        return self.name
+
+    def nice_string(self):
+        """ return string with the full information """
+        return '\n'.join(['%s \t: %s' %(name, value) for name, value in self.__dict__.items()])
+
+    def __repr__(self):
+        replacements = [
+            ('+','__plus__'),
+            ('-','__minus__'),
+            ('@','__at__'),
+            ('!','__exclam__'),
+            ('?','__quest__'),
+            ('*','__star__'),
+            ('~','__tilde__')
+            ]
+        text = self.name
+        for orig,sub in replacements:
+            text = text.replace(orig,sub)
+        return text
+
+
+
+all_particles = []
+
+class Particle(UFOBaseClass):
+    """A standard Particle"""
+
+    require_args=['pdg_code', 'name', 'antiname', 'spin', 'color', 'mass', 'width', 'texname', 'antitexname', 'charge']
+
+    require_args_all = ['pdg_code', 'name', 'antiname', 'spin', 'color', 'mass', 'width', 'texname', 'antitexname','counterterm','charge', 'line', 'propagating', 'goldstoneboson', 'propagator']
+
+    def __init__(self, pdg_code, name, antiname, spin, color, mass, width, texname,
+                 antitexname, charge , line=None, propagating=True, counterterm=None, goldstoneboson=False, 
+                 propagator=None, **options):
+
+        args= (pdg_code, name, antiname, spin, color, mass, width, texname,
+                antitexname, float(charge))
+
+        UFOBaseClass.__init__(self, *args,  **options)
+
+        global all_particles
+        all_particles.append(self)
+
+        self.propagating = propagating
+        self.goldstoneboson= goldstoneboson
+
+        self.selfconjugate = (name == antiname)
+        if not line:                                                                                                                                                                                   
+            self.line = self.find_line_type()
+        else:
+            self.line = line
+
+        if propagator:
+            if isinstance(propagator, dict):
+                self.propagator = propagator
+            else:
+                self.propagator = {0: propagator, 1: propagator}
+             
+    def find_line_type(self):
+        """ find how we draw a line if not defined
+        valid output: dashed/straight/wavy/curly/double/swavy/scurly
+        """
+        
+        spin = self.spin
+        color = self.color
+        
+        #use default
+        if spin == 1:
+            return 'dashed'
+        elif spin == 2:
+            if not self.selfconjugate:
+                return 'straight'
+            elif color == 1:
+                return 'swavy'
+            else:
+                return 'scurly'
+        elif spin == 3:
+            if color == 1:
+                return 'wavy'
+            
+            else:
+                return 'curly'
+        elif spin == 5:
+            return 'double'
+        elif spin == -1:
+            return 'dotted'
+        else:
+            return 'dashed' # not supported yet
+        
+    def anti(self):
+        if self.selfconjugate:
+            raise Exception('%s has no anti particle.' % self.name) 
+        outdic = {}
+        for k,v in self.__dict__.items():
+            if k not in self.require_args_all:                
+                outdic[k] = -v
+        if self.color in [1,8]:
+            newcolor = self.color
+        else:
+            newcolor = -self.color
+                
+        return Particle(-self.pdg_code, self.antiname, self.name, self.spin, newcolor, self.mass, self.width,
+                        self.antitexname, self.texname, -self.charge, self.line, self.propagating, self.goldstoneboson, **outdic)
+
+
+
+all_parameters = []
+
+class Parameter(UFOBaseClass):
+
+    require_args=['name', 'nature', 'type', 'value', 'texname']
+
+    def __init__(self, name, nature, type, value, texname, lhablock=None, lhacode=None):
+
+        args = (name,nature,type,value,texname)
+
+        UFOBaseClass.__init__(self, *args)
+
+        args=(name,nature,type,value,texname)
+
+        global all_parameters
+        all_parameters.append(self)
+
+        if (lhablock is None or lhacode is None)  and nature == 'external':
+            raise Exception('Need LHA information for external parameter "%s".' % name)
+        self.lhablock = lhablock
+        self.lhacode = lhacode
+
+all_CTparameters = []
+
+class CTParameter(UFOBaseClass):
+
+    require_args=['name', 'nature,', 'type', 'value', 'texname']
+
+    def __init__(self, name, type, value, texname):
+
+        args = (name,'internal',type,value,texname)
+
+        UFOBaseClass.__init__(self, *args)
+
+        args=(name,'internal',type,value,texname)
+
+        self.nature='interal'
+
+        global all_CTparameters
+        all_CTparameters.append(self)
+
+    def finite(self):
+        try:
+            return self.value[0]
+        except KeyError:
+            return 'ZERO'
+    
+    def pole(self, x):
+        try:
+            return self.value[-x]
+        except KeyError:
+            return 'ZERO'
+
+all_vertices = []
+
+class Vertex(UFOBaseClass):
+
+    require_args=['name', 'particles', 'color', 'lorentz', 'couplings']
+
+    def __init__(self, name, particles, color, lorentz, couplings, **opt):
+ 
+        args = (name, particles, color, lorentz, couplings)
+
+        UFOBaseClass.__init__(self, *args, **opt)
+
+        args=(particles,color,lorentz,couplings)
+
+        global all_vertices
+        all_vertices.append(self)
+
+all_CTvertices = []
+
+class CTVertex(UFOBaseClass):
+
+    require_args=['name', 'particles', 'color', 'lorentz', 'couplings', 'type', 'loop_particles']
+
+    def __init__(self, name, particles, color, lorentz, couplings, type, loop_particles, **opt):
+ 
+        args = (name, particles, color, lorentz, couplings, type, loop_particles)
+
+        UFOBaseClass.__init__(self, *args, **opt)
+
+        args=(particles,color,lorentz,couplings, type, loop_particles)
+        
+        global all_CTvertices
+        all_CTvertices.append(self)
+
+all_couplings = []
+
+class Coupling(UFOBaseClass):
+
+    require_args=['name', 'value', 'order']
+
+    require_args_all=['name', 'value', 'order', 'loop_particles', 'counterterm']
+
+    def __init__(self, name, value, order, **opt):
+
+        args =(name, value, order)	
+        UFOBaseClass.__init__(self, *args, **opt)
+        global all_couplings
+        all_couplings.append(self)
+
+    def value(self):
+        return self.pole(0)
+
+    def pole(self, x):
+        """ the self.value attribute can be a dictionary directly specifying the Laurent serie using normal
+        parameter or just a string which can possibly contain CTparameter defining the Laurent serie."""
+        
+        if isinstance(self.value,dict):
+            if -x in self.value.keys():
+                return self.value[-x]
+            else:
+                return 'ZERO'
+
+        CTparam=None
+        for param in all_CTparameters:
+           pattern=re.compile(r"(?P<first>\A|\*|\+|\-|\()(?P<name>"+param.name+r")(?P<second>\Z|\*|\+|\-|\))")
+           numberOfMatches=len(pattern.findall(self.value))
+           if numberOfMatches==1:
+               if not CTparam:
+                   CTparam=param
+               else:
+                   raise UFOError("UFO does not support yet more than one occurence of CTParameters in the couplings values.")
+           elif numberOfMatches>1:
+               raise UFOError("UFO does not support yet more than one occurence of CTParameters in the couplings values.")
+
+        if not CTparam:
+            if x==0:
+                return self.value
+            else:
+                return 'ZERO'
+        else:
+            if CTparam.pole(x)=='ZERO':
+                return 'ZERO'
+            else:
+                def substitution(matchedObj):
+                    return matchedObj.group('first')+"("+CTparam.pole(x)+")"+matchedObj.group('second')
+                pattern=re.compile(r"(?P<first>\A|\*|\+|\-|\()(?P<name>"+CTparam.name+r")(?P<second>\Z|\*|\+|\-|\))")
+                return pattern.sub(substitution,self.value)
+
+all_lorentz = []
+
+class Lorentz(UFOBaseClass):
+
+    require_args=['name','spins','structure']
+    
+    def __init__(self, name, spins, structure='external', **opt):
+        args = (name, spins, structure)
+        UFOBaseClass.__init__(self, *args, **opt)
+
+        global all_lorentz
+        all_lorentz.append(self)
+
+
+all_functions = []
+
+class Function(object):
+
+    def __init__(self, name, arguments, expression):
+
+        global all_functions
+        all_functions.append(self)
+
+        self.name = name
+        self.arguments = arguments
+        self.expr = expression
+    
+    def __call__(self, *opt):
+
+        for i, arg in enumerate(self.arguments):
+            exec('%s = %s' % (arg, opt[i] ))
+
+        return eval(self.expr)
+
+all_orders = []
+
+class CouplingOrder(object):
+
+    def __init__(self, name, expansion_order, hierarchy, perturbative_expansion = 0):
+        
+        global all_orders
+        all_orders.append(self)
+
+        self.name = name
+        self.expansion_order = expansion_order
+        self.hierarchy = hierarchy
+        self.perturbative_expansion = perturbative_expansion
+
+all_decays = []
+
+class Decay(UFOBaseClass):
+    require_args = ['particle','partial_widths']
+
+    def __init__(self, particle, partial_widths, **opt):
+        args = (particle, partial_widths)
+        UFOBaseClass.__init__(self, *args, **opt)
+
+        global all_decays
+        all_decays.append(self)
+    
+        # Add the information directly to the particle
+        particle.partial_widths = partial_widths
+
+all_form_factors = []
+
+class FormFactor(UFOBaseClass):
+    require_args = ['name','type','value']
+
+    def __init__(self, name, type, value, **opt):
+        args = (name, type, value)
+        UFOBaseClass.__init__(self, *args, **opt)
+
+        global all_form_factors
+        all_form_factors.append(self)
+
+        
+all_propagators = []
+
+class Propagator(UFOBaseClass):
+    
+    require_args = ['name','numerator','denominator']
+
+    def __init__(self, name, numerator, denominator=None, **opt):
+        args = (name, numerator, denominator)
+        UFOBaseClass.__init__(self, *args, **opt)
+
+        global all_propagators
+        all_propagators.append(self)
diff --git a/HAHM_variableMW_v3_UFO_QT1/parameters.py b/HAHM_variableMW_v3_UFO_QT1/parameters.py
new file mode 100644
index 00000000..1cc5435d
--- /dev/null
+++ b/HAHM_variableMW_v3_UFO_QT1/parameters.py
@@ -0,0 +1,523 @@
+# This file was automatically created by FeynRules 2.0.23
+# Mathematica version: 9.0 for Mac OS X x86 (64-bit) (November 20, 2012)
+# Date: Sat 20 Sep 2014 16:11:37
+
+
+
+from object_library import all_parameters, Parameter
+
+
+from function_library import complexconjugate, re, im, csc, sec, acsc, asec, cot
+
+# This is a default parameter object representing 0.
+ZERO = Parameter(name = 'ZERO',
+                 nature = 'internal',
+                 type = 'real',
+                 value = '0.0',
+                 texname = '0')
+
+# User-defined parameters.
+cabi = Parameter(name = 'cabi',
+                 nature = 'external',
+                 type = 'real',
+                 value = 0.488,
+                 texname = '\\theta _c',
+                 lhablock = 'CKMBLOCK',
+                 lhacode = [ 1 ])
+
+mZinput = Parameter(name = 'mZinput',
+                    nature = 'external',
+                    type = 'real',
+                    value = 91.188,
+                    texname = '\\text{mZinput}',
+                    lhablock = 'GAUGEMASS',
+                    lhacode = [ 1 ])
+
+mZDinput = Parameter(name = 'mZDinput',
+                     nature = 'external',
+                     type = 'real',
+                     value = 20,
+                     texname = '\\text{mZDinput}',
+                     lhablock = 'HIDDEN',
+                     lhacode = [ 1 ])
+
+MHSinput = Parameter(name = 'MHSinput',
+                     nature = 'external',
+                     type = 'real',
+                     value = 200,
+                     texname = '\\text{MHSinput}',
+                     lhablock = 'HIDDEN',
+                     lhacode = [ 2 ])
+
+epsilon = Parameter(name = 'epsilon',
+                    nature = 'external',
+                    type = 'real',
+                    value = 0.01,
+                    texname = '\\epsilon',
+                    lhablock = 'HIDDEN',
+                    lhacode = [ 3 ])
+
+kap = Parameter(name = 'kap',
+                nature = 'external',
+                type = 'real',
+                value = 1.e-9,
+                texname = '\\text{kap}',
+                lhablock = 'HIDDEN',
+                lhacode = [ 4 ])
+
+aXM1 = Parameter(name = 'aXM1',
+                 nature = 'external',
+                 type = 'real',
+                 value = 127.9,
+                 texname = '\\text{aXM1}',
+                 lhablock = 'HIDDEN',
+                 lhacode = [ 5 ])
+
+MHinput = Parameter(name = 'MHinput',
+                    nature = 'external',
+                    type = 'real',
+                    value = 125,
+                    texname = '\\text{MHinput}',
+                    lhablock = 'HIGGS',
+                    lhacode = [ 1 ])
+
+swsq = Parameter(name = 'swsq',
+                 nature = 'external',
+                 type = 'real',
+                 value = 0.225,
+                 texname = '\\text{swsq}',
+                 lhablock = 'SMINPUTS',
+                 lhacode = [ 1 ])
+
+aEWM1 = Parameter(name = 'aEWM1',
+                  nature = 'external',
+                  type = 'real',
+                  value = 127.9,
+                  texname = '\\text{aEWM1}',
+                  lhablock = 'SMINPUTS',
+                  lhacode = [ 2 ])
+
+Gf = Parameter(name = 'Gf',
+               nature = 'external',
+               type = 'real',
+               value = 0.000011663900000000002,
+               texname = '\\text{Gf}',
+               lhablock = 'SMINPUTS',
+               lhacode = [ 3 ])
+
+aS = Parameter(name = 'aS',
+               nature = 'external',
+               type = 'real',
+               value = 0.118,
+               texname = '\\text{aS}',
+               lhablock = 'SMINPUTS',
+               lhacode = [ 4 ])
+
+ymc = Parameter(name = 'ymc',
+                nature = 'external',
+                type = 'real',
+                value = 1.42,
+                texname = '\\text{ymc}',
+                lhablock = 'YUKAWA',
+                lhacode = [ 4 ])
+
+ymb = Parameter(name = 'ymb',
+                nature = 'external',
+                type = 'real',
+                value = 4.7,
+                texname = '\\text{ymb}',
+                lhablock = 'YUKAWA',
+                lhacode = [ 5 ])
+
+ymt = Parameter(name = 'ymt',
+                nature = 'external',
+                type = 'real',
+                value = 174.3,
+                texname = '\\text{ymt}',
+                lhablock = 'YUKAWA',
+                lhacode = [ 6 ])
+
+ymel = Parameter(name = 'ymel',
+                 nature = 'external',
+                 type = 'real',
+                 value = 0.000511,
+                 texname = '\\text{ymel}',
+                 lhablock = 'YUKAWA',
+                 lhacode = [ 11 ])
+
+ymmu = Parameter(name = 'ymmu',
+                 nature = 'external',
+                 type = 'real',
+                 value = 0.1057,
+                 texname = '\\text{ymmu}',
+                 lhablock = 'YUKAWA',
+                 lhacode = [ 13 ])
+
+ymtau = Parameter(name = 'ymtau',
+                  nature = 'external',
+                  type = 'real',
+                  value = 1.777,
+                  texname = '\\text{ymtau}',
+                  lhablock = 'YUKAWA',
+                  lhacode = [ 15 ])
+
+ME = Parameter(name = 'ME',
+                nature = 'external',
+                type = 'real',
+                value = 0.000511,
+                texname = '\\text{ME}',
+                lhablock = 'MASS',
+                lhacode = [ 11 ])
+                
+MM = Parameter(name = 'MM',
+                nature = 'external',
+                type = 'real',
+                value = 0.1057,
+                texname = '\\text{MM}',
+                lhablock = 'MASS',
+                lhacode = [ 13 ])
+                
+MTA = Parameter(name = 'MTA',
+                nature = 'external',
+                type = 'real',
+                value = 1.777,
+                texname = '\\text{MTA}',
+                lhablock = 'MASS',
+                lhacode = [ 15 ])
+
+MC = Parameter(name = 'MC',
+               nature = 'external',
+               type = 'real',
+               value = 1.42,
+               texname = '\\text{MC}',
+               lhablock = 'MASS',
+               lhacode = [ 4 ])
+
+MT = Parameter(name = 'MT',
+               nature = 'external',
+               type = 'real',
+               value = 174.3,
+               texname = '\\text{MT}',
+               lhablock = 'MASS',
+               lhacode = [ 6 ])
+
+MB = Parameter(name = 'MB',
+               nature = 'external',
+               type = 'real',
+               value = 4.7,
+               texname = '\\text{MB}',
+               lhablock = 'MASS',
+               lhacode = [ 5 ])
+
+WT = Parameter(name = 'WT',
+               nature = 'external',
+               type = 'real',
+               value = 1.50833649,
+               texname = '\\text{WT}',
+               lhablock = 'DECAY',
+               lhacode = [ 6 ])
+
+WZ = Parameter(name = 'WZ',
+               nature = 'external',
+               type = 'real',
+               value = 2.44140351,
+               texname = '\\text{WZ}',
+               lhablock = 'DECAY',
+               lhacode = [ 23 ])
+
+WZp = Parameter(name = 'WZp',
+                nature = 'external',
+                type = 'real',
+                value = 0.0008252,
+                texname = '\\text{WZp}',
+                lhablock = 'DECAY',
+                lhacode = [ 32 ])
+
+WW = Parameter(name = 'WW',
+               nature = 'external',
+               type = 'real',
+               value = 2.04759951,
+               texname = '\\text{WW}',
+               lhablock = 'DECAY',
+               lhacode = [ 24 ])
+
+WH = Parameter(name = 'WH',
+               nature = 'external',
+               type = 'real',
+               value = 0.00282299,
+               texname = '\\text{WH}',
+               lhablock = 'DECAY',
+               lhacode = [ 25 ])
+
+WHS = Parameter(name = 'WHS',
+                nature = 'external',
+                type = 'real',
+                value = 5.23795,
+                texname = '\\text{WHS}',
+                lhablock = 'DECAY',
+                lhacode = [ 35 ])
+
+cw = Parameter(name = 'cw',
+               nature = 'internal',
+               type = 'real',
+               value = 'cmath.sqrt(1 - swsq)',
+               texname = 'c_w')
+
+sw = Parameter(name = 'sw',
+               nature = 'internal',
+               type = 'real',
+               value = 'cmath.sqrt(swsq)',
+               texname = 's_w')
+
+aEW = Parameter(name = 'aEW',
+                nature = 'internal',
+                type = 'real',
+                value = '1/aEWM1',
+                texname = '\\text{aEW}')
+
+G = Parameter(name = 'G',
+              nature = 'internal',
+              type = 'real',
+              value = '2*cmath.sqrt(aS)*cmath.sqrt(cmath.pi)',
+              texname = 'G')
+
+aX = Parameter(name = 'aX',
+               nature = 'internal',
+               type = 'real',
+               value = '1/aXM1',
+               texname = '\\text{aX}')
+
+MZ = Parameter(name = 'MZ',
+               nature = 'internal',
+               type = 'real',
+               value = 'mZinput',
+               texname = '\\text{MZ}')
+
+MZp = Parameter(name = 'MZp',
+                nature = 'internal',
+                type = 'real',
+                value = 'mZDinput',
+                texname = '\\text{MZp}')
+
+MH = Parameter(name = 'MH',
+               nature = 'internal',
+               type = 'real',
+               value = 'MHinput',
+               texname = '\\text{MH}')
+
+MHS = Parameter(name = 'MHS',
+                nature = 'internal',
+                type = 'real',
+                value = 'MHSinput',
+                texname = '\\text{MHS}')
+
+v = Parameter(name = 'v',
+              nature = 'internal',
+              type = 'real',
+              value = '1/(2**0.25*cmath.sqrt(Gf))',
+              texname = 'v')
+
+CKM1x1 = Parameter(name = 'CKM1x1',
+                   nature = 'internal',
+                   type = 'complex',
+                   value = 'cmath.cos(cabi)',
+                   texname = '\\text{CKM1x1}')
+
+CKM1x2 = Parameter(name = 'CKM1x2',
+                   nature = 'internal',
+                   type = 'complex',
+                   value = 'cmath.sin(cabi)',
+                   texname = '\\text{CKM1x2}')
+
+CKM2x1 = Parameter(name = 'CKM2x1',
+                   nature = 'internal',
+                   type = 'complex',
+                   value = '-cmath.sin(cabi)',
+                   texname = '\\text{CKM2x1}')
+
+CKM2x2 = Parameter(name = 'CKM2x2',
+                   nature = 'internal',
+                   type = 'complex',
+                   value = 'cmath.cos(cabi)',
+                   texname = '\\text{CKM2x2}')
+
+eta = Parameter(name = 'eta',
+                nature = 'internal',
+                type = 'real',
+                value = 'epsilon/(cw*cmath.sqrt(1 - epsilon**2/cw**2))',
+                texname = '\\eta')
+
+ee = Parameter(name = 'ee',
+               nature = 'internal',
+               type = 'real',
+               value = '2*cmath.sqrt(aEW)*cmath.sqrt(cmath.pi)',
+               texname = 'e')
+
+GH = Parameter(name = 'GH',
+               nature = 'internal',
+               type = 'real',
+               value = '-(G**2*(1 + (13*MH**6)/(16800.*MT**6) + MH**4/(168.*MT**4) + (7*MH**2)/(120.*MT**2)))/(12.*cmath.pi**2*v)',
+               texname = 'G_H')
+
+Gphi = Parameter(name = 'Gphi',
+                 nature = 'internal',
+                 type = 'real',
+                 value = '-(G**2*(1 + MH**6/(560.*MT**6) + MH**4/(90.*MT**4) + MH**2/(12.*MT**2)))/(8.*cmath.pi**2*v)',
+                 texname = 'G_h')
+
+gX = Parameter(name = 'gX',
+               nature = 'internal',
+               type = 'real',
+               value = '2*cmath.sqrt(aX)*cmath.sqrt(cmath.pi)',
+               texname = 'g_X')
+
+yb = Parameter(name = 'yb',
+               nature = 'internal',
+               type = 'real',
+               value = '(ymb*cmath.sqrt(2))/v',
+               texname = '\\text{yb}')
+
+yc = Parameter(name = 'yc',
+               nature = 'internal',
+               type = 'real',
+               value = '(ymc*cmath.sqrt(2))/v',
+               texname = '\\text{yc}')
+
+ye = Parameter(name = 'ye',
+               nature = 'internal',
+               type = 'real',
+               value = '(ymel*cmath.sqrt(2))/v',
+               texname = '\\text{ye}')
+
+ym = Parameter(name = 'ym',
+               nature = 'internal',
+               type = 'real',
+               value = '(ymmu*cmath.sqrt(2))/v',
+               texname = '\\text{ym}')
+
+yt = Parameter(name = 'yt',
+               nature = 'internal',
+               type = 'real',
+               value = '(ymt*cmath.sqrt(2))/v',
+               texname = '\\text{yt}')
+
+ytau = Parameter(name = 'ytau',
+                 nature = 'internal',
+                 type = 'real',
+                 value = '(ymtau*cmath.sqrt(2))/v',
+                 texname = '\\text{ytau}')
+
+chi = Parameter(name = 'chi',
+                nature = 'internal',
+                type = 'real',
+                value = 'eta/cmath.sqrt(1 + eta**2)',
+                texname = '\\chi')
+
+DZ = Parameter(name = 'DZ',
+               nature = 'internal',
+               type = 'real',
+               value = '(mZDinput**4 + mZinput**4 + (2*mZinput**2*cmath.atan(10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000*(mZDinput - mZinput))*cmath.sqrt(mZDinput**4 + mZinput**4 - 2*mZDinput**2*mZinput**2*(1 + 2*eta**2*sw**2)))/cmath.pi + mZDinput**2*(-2*eta**2*mZinput**2*sw**2 + (2*cmath.atan(10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000*(mZDinput - mZinput))*cmath.sqrt(mZDinput**4 + mZinput**4 - 2*mZDinput**2*mZinput**2*(1 + 2*eta**2*sw**2)))/cmath.pi))/(2.*mZDinput**2*mZinput**2)',
+               texname = '\\text{DZ}')
+
+MZ0 = Parameter(name = 'MZ0',
+                nature = 'internal',
+                type = 'real',
+                value = 'cmath.sqrt((mZDinput**2 + mZinput**2 - (2*cmath.atan(10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000*(mZDinput - mZinput))*cmath.sqrt(mZDinput**4 + mZinput**4 - 2*mZDinput**2*mZinput**2*(1 + 2*eta**2*sw**2)))/cmath.pi)/(2 + 2*eta**2*sw**2))',
+                texname = '\\text{MZ0}')
+
+g1 = Parameter(name = 'g1',
+               nature = 'internal',
+               type = 'real',
+               value = 'ee/cw',
+               texname = 'g_1')
+
+gw = Parameter(name = 'gw',
+               nature = 'internal',
+               type = 'real',
+               value = 'ee/sw',
+               texname = 'g_w')
+
+MW = Parameter(name = 'MW',
+               nature = 'internal',
+               type = 'real',
+               value = 'cw*MZ0',
+               texname = 'M_W')
+
+MX = Parameter(name = 'MX',
+               nature = 'internal',
+               type = 'real',
+               value = 'MZ0*cmath.sqrt(DZ)',
+               texname = '\\text{MX}')
+
+ta = Parameter(name = 'ta',
+               nature = 'internal',
+               type = 'real',
+               value = '-(-1 + DZ + eta**2*sw**2 - (2*cmath.atan(10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000*(-1 + DZ))*cmath.sqrt(4*eta**2*sw**2 + (-1 + DZ + eta**2*sw**2)**2))/cmath.pi)/(2.*eta*sw)',
+               texname = 't_{\\alpha }')
+
+ca = Parameter(name = 'ca',
+               nature = 'internal',
+               type = 'real',
+               value = '1/cmath.sqrt(1 + ta**2)',
+               texname = 'c_{\\alpha }')
+
+sa = Parameter(name = 'sa',
+               nature = 'internal',
+               type = 'real',
+               value = 'ta/cmath.sqrt(1 + ta**2)',
+               texname = 's_{\\alpha }')
+
+AH = Parameter(name = 'AH',
+               nature = 'internal',
+               type = 'real',
+               value = '(47*ee**2*(1 - (2*MH**4)/(987.*MT**4) - (14*MH**2)/(705.*MT**2) + (213*MH**12)/(2.634632e7*MW**12) + (5*MH**10)/(119756.*MW**10) + (41*MH**8)/(180950.*MW**8) + (87*MH**6)/(65800.*MW**6) + (57*MH**4)/(6580.*MW**4) + (33*MH**2)/(470.*MW**2)))/(72.*cmath.pi**2*v)',
+               texname = 'A_H')
+
+xi = Parameter(name = 'xi',
+               nature = 'internal',
+               type = 'real',
+               value = '(MX*cmath.sqrt(1 - chi**2))/gX',
+               texname = '\\xi')
+
+th = Parameter(name = 'th',
+               nature = 'internal',
+               type = 'real',
+               value = '(-MHinput**2 + MHSinput**2 + (2*cmath.atan(10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000*(MHinput - MHSinput))*cmath.sqrt((MHinput**2 - MHSinput**2)**2 - 4*kap**2*v**2*xi**2))/cmath.pi)/(2.*kap*v*xi)',
+               texname = 't_h')
+
+lam = Parameter(name = 'lam',
+                nature = 'internal',
+                type = 'real',
+                value = '(MHinput**2 + MHSinput**2 + (2*cmath.atan(10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000*(MHinput - MHSinput))*cmath.sqrt((MHinput**2 - MHSinput**2)**2 - 4*kap**2*v**2*xi**2))/cmath.pi)/(4.*v**2)',
+                texname = '\\text{lam}')
+
+rho = Parameter(name = 'rho',
+                nature = 'internal',
+                type = 'real',
+                value = '(MHinput**2 + MHSinput**2 - (2*cmath.atan(10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000*(MHinput - MHSinput))*cmath.sqrt((MHinput**2 - MHSinput**2)**2 - 4*kap**2*v**2*xi**2))/cmath.pi)/(4.*xi**2)',
+                texname = '\\rho')
+
+ch = Parameter(name = 'ch',
+               nature = 'internal',
+               type = 'real',
+               value = '1/cmath.sqrt(1 + th**2)',
+               texname = 'c_h')
+
+muH2 = Parameter(name = 'muH2',
+                 nature = 'internal',
+                 type = 'real',
+                 value = '(kap*v**2)/2. + rho*xi**2',
+                 texname = '\\text{muH2}')
+
+muSM2 = Parameter(name = 'muSM2',
+                  nature = 'internal',
+                  type = 'real',
+                  value = 'lam*v**2 + (kap*xi**2)/2.',
+                  texname = '\\text{muSM2}')
+
+sh = Parameter(name = 'sh',
+               nature = 'internal',
+               type = 'real',
+               value = 'th/cmath.sqrt(1 + th**2)',
+               texname = 's_h')
+
diff --git a/HAHM_variableMW_v3_UFO_QT1/particles.py b/HAHM_variableMW_v3_UFO_QT1/particles.py
new file mode 100644
index 00000000..60dbcd08
--- /dev/null
+++ b/HAHM_variableMW_v3_UFO_QT1/particles.py
@@ -0,0 +1,299 @@
+# This file was automatically created by FeynRules 2.0.23
+# Mathematica version: 9.0 for Mac OS X x86 (64-bit) (November 20, 2012)
+# Date: Sat 20 Sep 2014 16:11:37
+
+
+from __future__ import division
+from object_library import all_particles, Particle
+import parameters as Param
+
+import propagators as Prop
+
+ve = Particle(pdg_code = 12,
+              name = 've',
+              antiname = 've~',
+              spin = 2,
+              color = 1,
+              mass = Param.ZERO,
+              width = Param.ZERO,
+              texname = 've',
+              antitexname = 've~',
+              charge = 0,
+              GhostNumber = 0,
+              LeptonNumber = 1)
+
+ve__tilde__ = ve.anti()
+
+vm = Particle(pdg_code = 14,
+              name = 'vm',
+              antiname = 'vm~',
+              spin = 2,
+              color = 1,
+              mass = Param.ZERO,
+              width = Param.ZERO,
+              texname = 'vm',
+              antitexname = 'vm~',
+              charge = 0,
+              GhostNumber = 0,
+              LeptonNumber = 1)
+
+vm__tilde__ = vm.anti()
+
+vt = Particle(pdg_code = 16,
+              name = 'vt',
+              antiname = 'vt~',
+              spin = 2,
+              color = 1,
+              mass = Param.ZERO,
+              width = Param.ZERO,
+              texname = 'vt',
+              antitexname = 'vt~',
+              charge = 0,
+              GhostNumber = 0,
+              LeptonNumber = 1)
+
+vt__tilde__ = vt.anti()
+
+e__minus__ = Particle(pdg_code = 11,
+                      name = 'e-',
+                      antiname = 'e+',
+                      spin = 2,
+                      color = 1,
+                      mass = Param.ME,
+                      width = Param.ZERO,
+                      texname = 'e-',
+                      antitexname = 'e+',
+                      charge = -1,
+                      GhostNumber = 0,
+                      LeptonNumber = 1)
+
+e__plus__ = e__minus__.anti()
+
+m__minus__ = Particle(pdg_code = 13,
+                      name = 'm-',
+                      antiname = 'm+',
+                      spin = 2,
+                      color = 1,
+                      mass = Param.MM,
+                      width = Param.ZERO,
+                      texname = 'm-',
+                      antitexname = 'm+',
+                      charge = -1,
+                      GhostNumber = 0,
+                      LeptonNumber = 1)
+
+m__plus__ = m__minus__.anti()
+
+tt__minus__ = Particle(pdg_code = 15,
+                       name = 'tt-',
+                       antiname = 'tt+',
+                       spin = 2,
+                       color = 1,
+                       mass = Param.MTA,
+                       width = Param.ZERO,
+                       texname = 'tt-',
+                       antitexname = 'tt+',
+                       charge = -1,
+                       GhostNumber = 0,
+                       LeptonNumber = 1)
+
+tt__plus__ = tt__minus__.anti()
+
+u = Particle(pdg_code = 2,
+             name = 'u',
+             antiname = 'u~',
+             spin = 2,
+             color = 3,
+             mass = Param.ZERO,
+             width = Param.ZERO,
+             texname = 'u',
+             antitexname = 'u~',
+             charge = 2/3,
+             GhostNumber = 0,
+             LeptonNumber = 0)
+
+u__tilde__ = u.anti()
+
+c = Particle(pdg_code = 4,
+             name = 'c',
+             antiname = 'c~',
+             spin = 2,
+             color = 3,
+             mass = Param.MC,
+             width = Param.ZERO,
+             texname = 'c',
+             antitexname = 'c~',
+             charge = 2/3,
+             GhostNumber = 0,
+             LeptonNumber = 0)
+
+c__tilde__ = c.anti()
+
+t = Particle(pdg_code = 6,
+             name = 't',
+             antiname = 't~',
+             spin = 2,
+             color = 3,
+             mass = Param.MT,
+             width = Param.WT,
+             texname = 't',
+             antitexname = 't~',
+             charge = 2/3,
+             GhostNumber = 0,
+             LeptonNumber = 0)
+
+t__tilde__ = t.anti()
+
+d = Particle(pdg_code = 1,
+             name = 'd',
+             antiname = 'd~',
+             spin = 2,
+             color = 3,
+             mass = Param.ZERO,
+             width = Param.ZERO,
+             texname = 'd',
+             antitexname = 'd~',
+             charge = -1/3,
+             GhostNumber = 0,
+             LeptonNumber = 0)
+
+d__tilde__ = d.anti()
+
+s = Particle(pdg_code = 3,
+             name = 's',
+             antiname = 's~',
+             spin = 2,
+             color = 3,
+             mass = Param.ZERO,
+             width = Param.ZERO,
+             texname = 's',
+             antitexname = 's~',
+             charge = -1/3,
+             GhostNumber = 0,
+             LeptonNumber = 0)
+
+s__tilde__ = s.anti()
+
+b = Particle(pdg_code = 5,
+             name = 'b',
+             antiname = 'b~',
+             spin = 2,
+             color = 3,
+             mass = Param.MB,
+             width = Param.ZERO,
+             texname = 'b',
+             antitexname = 'b~',
+             charge = -1/3,
+             GhostNumber = 0,
+             LeptonNumber = 0)
+
+b__tilde__ = b.anti()
+
+ghG = Particle(pdg_code = 9000001,
+               name = 'ghG',
+               antiname = 'ghG~',
+               spin = -1,
+               color = 8,
+               mass = Param.ZERO,
+               width = Param.ZERO,
+               texname = 'ghG',
+               antitexname = 'ghG~',
+               charge = 0,
+               GhostNumber = 1,
+               LeptonNumber = 0)
+
+ghG__tilde__ = ghG.anti()
+
+A = Particle(pdg_code = 22,
+             name = 'A',
+             antiname = 'A',
+             spin = 3,
+             color = 1,
+             mass = Param.ZERO,
+             width = Param.ZERO,
+             texname = 'A',
+             antitexname = 'A',
+             charge = 0,
+             GhostNumber = 0,
+             LeptonNumber = 0)
+
+Z = Particle(pdg_code = 23,
+             name = 'Z',
+             antiname = 'Z',
+             spin = 3,
+             color = 1,
+             mass = Param.MZ,
+             width = Param.WZ,
+             texname = 'Z',
+             antitexname = 'Z',
+             charge = 0,
+             GhostNumber = 0,
+             LeptonNumber = 0)
+
+Zp = Particle(pdg_code = 32,
+              name = 'Zp',
+              antiname = 'Zp',
+              spin = 3,
+              color = 1,
+              mass = Param.MZp,
+              width = Param.WZp,
+              texname = 'Zp',
+              antitexname = 'Zp',
+              charge = 0,
+              GhostNumber = 0,
+              LeptonNumber = 0)
+
+W__plus__ = Particle(pdg_code = 24,
+                     name = 'W+',
+                     antiname = 'W-',
+                     spin = 3,
+                     color = 1,
+                     mass = Param.MW,
+                     width = Param.WW,
+                     texname = 'W+',
+                     antitexname = 'W-',
+                     charge = 1,
+                     GhostNumber = 0,
+                     LeptonNumber = 0)
+
+W__minus__ = W__plus__.anti()
+
+G = Particle(pdg_code = 21,
+             name = 'G',
+             antiname = 'G',
+             spin = 3,
+             color = 8,
+             mass = Param.ZERO,
+             width = Param.ZERO,
+             texname = 'G',
+             antitexname = 'G',
+             charge = 0,
+             GhostNumber = 0,
+             LeptonNumber = 0)
+
+h = Particle(pdg_code = 25,
+             name = 'h',
+             antiname = 'h',
+             spin = 1,
+             color = 1,
+             mass = Param.MH,
+             width = Param.WH,
+             texname = 'h',
+             antitexname = 'h',
+             charge = 0,
+             GhostNumber = 0,
+             LeptonNumber = 0)
+
+hs = Particle(pdg_code = 35,
+              name = 'hs',
+              antiname = 'hs',
+              spin = 1,
+              color = 1,
+              mass = Param.MHS,
+              width = Param.WHS,
+              texname = 'hs',
+              antitexname = 'hs',
+              charge = 0,
+              GhostNumber = 0,
+              LeptonNumber = 0)
+
diff --git a/HAHM_variableMW_v3_UFO_QT1/propagators.py b/HAHM_variableMW_v3_UFO_QT1/propagators.py
new file mode 100644
index 00000000..e6574743
--- /dev/null
+++ b/HAHM_variableMW_v3_UFO_QT1/propagators.py
@@ -0,0 +1,35 @@
+# This file was automatically created by FeynRules 2.0 (static file)
+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
+# Date: Mon 1 Oct 2012 14:58:26
+
+from object_library import all_propagators, Propagator
+
+
+# define only once the denominator since this is always the same
+denominator = "P('mu', id) * P('mu', id) - Mass(id) * Mass(id) + complex(0,1) * Mass(id) * Width(id)"
+
+# propagator for the scalar
+S = Propagator(name = "S",
+               numerator = "complex(0,1)",
+               denominator = denominator
+               )
+
+# propagator for the incoming fermion # the one for the outcomming is computed on the flight
+F = Propagator(name = "F",
+                numerator = "complex(0,1) * (Gamma('mu', s1, s2) * P('mu', id) + Mass(id) * Identity(s1, s2))",
+                denominator = denominator
+               )
+
+# massive vector in the unitary gauge, can't be use for massless particles
+V1 = Propagator(name = "V1",
+                numerator = "complex(0,1) * (-1 * Metric(l1, l2) + Metric(l1,'mu')* P('mu', id) * P(l2, id) / Mass(id)**2 ",
+                denominator = denominator
+               )
+
+# massless vector and massive vector in unitary gauge
+V2 = Propagator(name = "V2",
+                numerator = "complex(0,-1) * Metric(l1, l2)",
+                denominator =  "P('mu', id) * P('mu', id)"
+               )
+
+
diff --git a/HAHM_variableMW_v3_UFO_QT1/vertices.py b/HAHM_variableMW_v3_UFO_QT1/vertices.py
new file mode 100644
index 00000000..ed7031fe
--- /dev/null
+++ b/HAHM_variableMW_v3_UFO_QT1/vertices.py
@@ -0,0 +1,713 @@
+# This file was automatically created by FeynRules 2.0.23
+# Mathematica version: 9.0 for Mac OS X x86 (64-bit) (November 20, 2012)
+# Date: Sat 20 Sep 2014 16:11:37
+
+
+from object_library import all_vertices, Vertex
+import particles as P
+import couplings as C
+import lorentz as L
+
+
+V_1 = Vertex(name = 'V_1',
+             particles = [ P.h, P.h, P.hs, P.hs ],
+             color = [ '1' ],
+             lorentz = [ L.SSSS1 ],
+             couplings = {(0,0):C.GC_23})
+
+V_2 = Vertex(name = 'V_2',
+             particles = [ P.h, P.h, P.h, P.hs ],
+             color = [ '1' ],
+             lorentz = [ L.SSSS1 ],
+             couplings = {(0,0):C.GC_22})
+
+V_3 = Vertex(name = 'V_3',
+             particles = [ P.h, P.hs, P.hs, P.hs ],
+             color = [ '1' ],
+             lorentz = [ L.SSSS1 ],
+             couplings = {(0,0):C.GC_21})
+
+V_4 = Vertex(name = 'V_4',
+             particles = [ P.h, P.h, P.h, P.h ],
+             color = [ '1' ],
+             lorentz = [ L.SSSS1 ],
+             couplings = {(0,0):C.GC_25})
+
+V_5 = Vertex(name = 'V_5',
+             particles = [ P.hs, P.hs, P.hs, P.hs ],
+             color = [ '1' ],
+             lorentz = [ L.SSSS1 ],
+             couplings = {(0,0):C.GC_24})
+
+V_6 = Vertex(name = 'V_6',
+             particles = [ P.h, P.hs, P.hs ],
+             color = [ '1' ],
+             lorentz = [ L.SSS1 ],
+             couplings = {(0,0):C.GC_67})
+
+V_7 = Vertex(name = 'V_7',
+             particles = [ P.h, P.h, P.hs ],
+             color = [ '1' ],
+             lorentz = [ L.SSS1 ],
+             couplings = {(0,0):C.GC_66})
+
+V_8 = Vertex(name = 'V_8',
+             particles = [ P.hs, P.hs, P.hs ],
+             color = [ '1' ],
+             lorentz = [ L.SSS1 ],
+             couplings = {(0,0):C.GC_65})
+
+V_9 = Vertex(name = 'V_9',
+             particles = [ P.h, P.h, P.h ],
+             color = [ '1' ],
+             lorentz = [ L.SSS1 ],
+             couplings = {(0,0):C.GC_68})
+
+V_10 = Vertex(name = 'V_10',
+              particles = [ P.A, P.A, P.h ],
+              color = [ '1' ],
+              lorentz = [ L.VVS2 ],
+              couplings = {(0,0):C.GC_1})
+
+V_11 = Vertex(name = 'V_11',
+              particles = [ P.A, P.A, P.hs ],
+              color = [ '1' ],
+              lorentz = [ L.VVS2 ],
+              couplings = {(0,0):C.GC_17})
+
+V_12 = Vertex(name = 'V_12',
+              particles = [ P.G, P.G, P.h ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.VVS2 ],
+              couplings = {(0,0):C.GC_8})
+
+V_13 = Vertex(name = 'V_13',
+              particles = [ P.G, P.G, P.hs ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.VVS2 ],
+              couplings = {(0,0):C.GC_18})
+
+V_14 = Vertex(name = 'V_14',
+              particles = [ P.ghG, P.ghG__tilde__, P.G ],
+              color = [ 'f(1,2,3)' ],
+              lorentz = [ L.UUV1 ],
+              couplings = {(0,0):C.GC_5})
+
+V_15 = Vertex(name = 'V_15',
+              particles = [ P.G, P.G, P.G ],
+              color = [ 'f(1,2,3)' ],
+              lorentz = [ L.VVV1 ],
+              couplings = {(0,0):C.GC_5})
+
+V_16 = Vertex(name = 'V_16',
+              particles = [ P.G, P.G, P.G, P.G ],
+              color = [ 'f(-1,1,2)*f(3,4,-1)', 'f(-1,1,3)*f(2,4,-1)', 'f(-1,1,4)*f(2,3,-1)' ],
+              lorentz = [ L.VVVV1, L.VVVV3, L.VVVV4 ],
+              couplings = {(1,1):C.GC_7,(0,0):C.GC_7,(2,2):C.GC_7})
+
+V_17 = Vertex(name = 'V_17',
+              particles = [ P.G, P.G, P.G, P.h ],
+              color = [ 'f(1,2,3)' ],
+              lorentz = [ L.VVVS1 ],
+              couplings = {(0,0):C.GC_9})
+
+V_18 = Vertex(name = 'V_18',
+              particles = [ P.G, P.G, P.G, P.hs ],
+              color = [ 'f(1,2,3)' ],
+              lorentz = [ L.VVVS1 ],
+              couplings = {(0,0):C.GC_19})
+
+V_19 = Vertex(name = 'V_19',
+              particles = [ P.G, P.G, P.G, P.G, P.h ],
+              color = [ 'f(-1,1,2)*f(3,4,-1)', 'f(-1,1,3)*f(2,4,-1)', 'f(-1,1,4)*f(2,3,-1)' ],
+              lorentz = [ L.VVVVS1, L.VVVVS2, L.VVVVS3 ],
+              couplings = {(1,1):C.GC_10,(0,0):C.GC_10,(2,2):C.GC_10})
+
+V_20 = Vertex(name = 'V_20',
+              particles = [ P.G, P.G, P.G, P.G, P.hs ],
+              color = [ 'f(-1,1,2)*f(3,4,-1)', 'f(-1,1,3)*f(2,4,-1)', 'f(-1,1,4)*f(2,3,-1)' ],
+              lorentz = [ L.VVVVS1, L.VVVVS2, L.VVVVS3 ],
+              couplings = {(1,1):C.GC_20,(0,0):C.GC_20,(2,2):C.GC_20})
+
+V_21 = Vertex(name = 'V_21',
+              particles = [ P.d__tilde__, P.d, P.G ],
+              color = [ 'T(3,2,1)' ],
+              lorentz = [ L.FFV1 ],
+              couplings = {(0,0):C.GC_6})
+
+V_22 = Vertex(name = 'V_22',
+              particles = [ P.s__tilde__, P.s, P.G ],
+              color = [ 'T(3,2,1)' ],
+              lorentz = [ L.FFV1 ],
+              couplings = {(0,0):C.GC_6})
+
+V_23 = Vertex(name = 'V_23',
+              particles = [ P.b__tilde__, P.b, P.G ],
+              color = [ 'T(3,2,1)' ],
+              lorentz = [ L.FFV1 ],
+              couplings = {(0,0):C.GC_6})
+
+V_24 = Vertex(name = 'V_24',
+              particles = [ P.u__tilde__, P.u, P.G ],
+              color = [ 'T(3,2,1)' ],
+              lorentz = [ L.FFV1 ],
+              couplings = {(0,0):C.GC_6})
+
+V_25 = Vertex(name = 'V_25',
+              particles = [ P.c__tilde__, P.c, P.G ],
+              color = [ 'T(3,2,1)' ],
+              lorentz = [ L.FFV1 ],
+              couplings = {(0,0):C.GC_6})
+
+V_26 = Vertex(name = 'V_26',
+              particles = [ P.t__tilde__, P.t, P.G ],
+              color = [ 'T(3,2,1)' ],
+              lorentz = [ L.FFV1 ],
+              couplings = {(0,0):C.GC_6})
+
+V_27 = Vertex(name = 'V_27',
+              particles = [ P.A, P.W__minus__, P.W__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.VVV1 ],
+              couplings = {(0,0):C.GC_38})
+
+V_28 = Vertex(name = 'V_28',
+              particles = [ P.W__minus__, P.W__plus__, P.h, P.h ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_26})
+
+V_29 = Vertex(name = 'V_29',
+              particles = [ P.W__minus__, P.W__plus__, P.h, P.hs ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_27})
+
+V_30 = Vertex(name = 'V_30',
+              particles = [ P.W__minus__, P.W__plus__, P.hs, P.hs ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_28})
+
+V_31 = Vertex(name = 'V_31',
+              particles = [ P.W__minus__, P.W__plus__, P.h ],
+              color = [ '1' ],
+              lorentz = [ L.VVS1 ],
+              couplings = {(0,0):C.GC_57})
+
+V_32 = Vertex(name = 'V_32',
+              particles = [ P.W__minus__, P.W__plus__, P.hs ],
+              color = [ '1' ],
+              lorentz = [ L.VVS1 ],
+              couplings = {(0,0):C.GC_58})
+
+V_33 = Vertex(name = 'V_33',
+              particles = [ P.A, P.A, P.W__minus__, P.W__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.VVVV2 ],
+              couplings = {(0,0):C.GC_41})
+
+V_34 = Vertex(name = 'V_34',
+              particles = [ P.W__minus__, P.W__plus__, P.Z ],
+              color = [ '1' ],
+              lorentz = [ L.VVV1 ],
+              couplings = {(0,0):C.GC_11})
+
+V_35 = Vertex(name = 'V_35',
+              particles = [ P.W__minus__, P.W__plus__, P.Zp ],
+              color = [ '1' ],
+              lorentz = [ L.VVV1 ],
+              couplings = {(0,0):C.GC_14})
+
+V_36 = Vertex(name = 'V_36',
+              particles = [ P.W__minus__, P.W__minus__, P.W__plus__, P.W__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.VVVV2 ],
+              couplings = {(0,0):C.GC_12})
+
+V_37 = Vertex(name = 'V_37',
+              particles = [ P.b__tilde__, P.b, P.h ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFS1 ],
+              couplings = {(0,0):C.GC_69})
+
+V_38 = Vertex(name = 'V_38',
+              particles = [ P.b__tilde__, P.b, P.hs ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFS1 ],
+              couplings = {(0,0):C.GC_70})
+
+V_39 = Vertex(name = 'V_39',
+              particles = [ P.e__plus__, P.e__minus__, P.h ],
+              color = [ '1' ],
+              lorentz = [ L.FFS1 ],
+              couplings = {(0,0):C.GC_73})
+
+V_40 = Vertex(name = 'V_40',
+              particles = [ P.m__plus__, P.m__minus__, P.h ],
+              color = [ '1' ],
+              lorentz = [ L.FFS1 ],
+              couplings = {(0,0):C.GC_75})
+
+V_41 = Vertex(name = 'V_41',
+              particles = [ P.tt__plus__, P.tt__minus__, P.h ],
+              color = [ '1' ],
+              lorentz = [ L.FFS1 ],
+              couplings = {(0,0):C.GC_79})
+
+V_42 = Vertex(name = 'V_42',
+              particles = [ P.e__plus__, P.e__minus__, P.hs ],
+              color = [ '1' ],
+              lorentz = [ L.FFS1 ],
+              couplings = {(0,0):C.GC_74})
+
+V_43 = Vertex(name = 'V_43',
+              particles = [ P.m__plus__, P.m__minus__, P.hs ],
+              color = [ '1' ],
+              lorentz = [ L.FFS1 ],
+              couplings = {(0,0):C.GC_76})
+
+V_44 = Vertex(name = 'V_44',
+              particles = [ P.tt__plus__, P.tt__minus__, P.hs ],
+              color = [ '1' ],
+              lorentz = [ L.FFS1 ],
+              couplings = {(0,0):C.GC_80})
+
+V_45 = Vertex(name = 'V_45',
+              particles = [ P.c__tilde__, P.c, P.h ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFS1 ],
+              couplings = {(0,0):C.GC_71})
+
+V_46 = Vertex(name = 'V_46',
+              particles = [ P.t__tilde__, P.t, P.h ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFS1 ],
+              couplings = {(0,0):C.GC_77})
+
+V_47 = Vertex(name = 'V_47',
+              particles = [ P.c__tilde__, P.c, P.hs ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFS1 ],
+              couplings = {(0,0):C.GC_72})
+
+V_48 = Vertex(name = 'V_48',
+              particles = [ P.t__tilde__, P.t, P.hs ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFS1 ],
+              couplings = {(0,0):C.GC_78})
+
+V_49 = Vertex(name = 'V_49',
+              particles = [ P.A, P.W__minus__, P.W__plus__, P.Z ],
+              color = [ '1' ],
+              lorentz = [ L.VVVV5 ],
+              couplings = {(0,0):C.GC_39})
+
+V_50 = Vertex(name = 'V_50',
+              particles = [ P.Z, P.Z, P.h, P.h ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_48})
+
+V_51 = Vertex(name = 'V_51',
+              particles = [ P.Z, P.Z, P.h, P.hs ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_51})
+
+V_52 = Vertex(name = 'V_52',
+              particles = [ P.Z, P.Z, P.hs, P.hs ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_54})
+
+V_53 = Vertex(name = 'V_53',
+              particles = [ P.Z, P.Z, P.h ],
+              color = [ '1' ],
+              lorentz = [ L.VVS1 ],
+              couplings = {(0,0):C.GC_64})
+
+V_54 = Vertex(name = 'V_54',
+              particles = [ P.Z, P.Z, P.hs ],
+              color = [ '1' ],
+              lorentz = [ L.VVS1 ],
+              couplings = {(0,0):C.GC_61})
+
+V_55 = Vertex(name = 'V_55',
+              particles = [ P.W__minus__, P.W__plus__, P.Z, P.Z ],
+              color = [ '1' ],
+              lorentz = [ L.VVVV2 ],
+              couplings = {(0,0):C.GC_13})
+
+V_56 = Vertex(name = 'V_56',
+              particles = [ P.A, P.W__minus__, P.W__plus__, P.Zp ],
+              color = [ '1' ],
+              lorentz = [ L.VVVV5 ],
+              couplings = {(0,0):C.GC_40})
+
+V_57 = Vertex(name = 'V_57',
+              particles = [ P.Z, P.Zp, P.h, P.h ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_49})
+
+V_58 = Vertex(name = 'V_58',
+              particles = [ P.Z, P.Zp, P.h, P.hs ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_52})
+
+V_59 = Vertex(name = 'V_59',
+              particles = [ P.Z, P.Zp, P.hs, P.hs ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_55})
+
+V_60 = Vertex(name = 'V_60',
+              particles = [ P.Z, P.Zp, P.h ],
+              color = [ '1' ],
+              lorentz = [ L.VVS1 ],
+              couplings = {(0,0):C.GC_63})
+
+V_61 = Vertex(name = 'V_61',
+              particles = [ P.Z, P.Zp, P.hs ],
+              color = [ '1' ],
+              lorentz = [ L.VVS1 ],
+              couplings = {(0,0):C.GC_60})
+
+V_62 = Vertex(name = 'V_62',
+              particles = [ P.W__minus__, P.W__plus__, P.Z, P.Zp ],
+              color = [ '1' ],
+              lorentz = [ L.VVVV2 ],
+              couplings = {(0,0):C.GC_15})
+
+V_63 = Vertex(name = 'V_63',
+              particles = [ P.Zp, P.Zp, P.h, P.h ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_50})
+
+V_64 = Vertex(name = 'V_64',
+              particles = [ P.Zp, P.Zp, P.h, P.hs ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_53})
+
+V_65 = Vertex(name = 'V_65',
+              particles = [ P.Zp, P.Zp, P.hs, P.hs ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_56})
+
+V_66 = Vertex(name = 'V_66',
+              particles = [ P.Zp, P.Zp, P.h ],
+              color = [ '1' ],
+              lorentz = [ L.VVS1 ],
+              couplings = {(0,0):C.GC_62})
+
+V_67 = Vertex(name = 'V_67',
+              particles = [ P.Zp, P.Zp, P.hs ],
+              color = [ '1' ],
+              lorentz = [ L.VVS1 ],
+              couplings = {(0,0):C.GC_59})
+
+V_68 = Vertex(name = 'V_68',
+              particles = [ P.W__minus__, P.W__plus__, P.Zp, P.Zp ],
+              color = [ '1' ],
+              lorentz = [ L.VVVV2 ],
+              couplings = {(0,0):C.GC_16})
+
+V_69 = Vertex(name = 'V_69',
+              particles = [ P.d__tilde__, P.d, P.A ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFV1 ],
+              couplings = {(0,0):C.GC_2})
+
+V_70 = Vertex(name = 'V_70',
+              particles = [ P.s__tilde__, P.s, P.A ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFV1 ],
+              couplings = {(0,0):C.GC_2})
+
+V_71 = Vertex(name = 'V_71',
+              particles = [ P.b__tilde__, P.b, P.A ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFV1 ],
+              couplings = {(0,0):C.GC_2})
+
+V_72 = Vertex(name = 'V_72',
+              particles = [ P.e__plus__, P.e__minus__, P.A ],
+              color = [ '1' ],
+              lorentz = [ L.FFV1 ],
+              couplings = {(0,0):C.GC_4})
+
+V_73 = Vertex(name = 'V_73',
+              particles = [ P.m__plus__, P.m__minus__, P.A ],
+              color = [ '1' ],
+              lorentz = [ L.FFV1 ],
+              couplings = {(0,0):C.GC_4})
+
+V_74 = Vertex(name = 'V_74',
+              particles = [ P.tt__plus__, P.tt__minus__, P.A ],
+              color = [ '1' ],
+              lorentz = [ L.FFV1 ],
+              couplings = {(0,0):C.GC_4})
+
+V_75 = Vertex(name = 'V_75',
+              particles = [ P.d__tilde__, P.d, P.Z ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFV2, L.FFV3 ],
+              couplings = {(0,1):C.GC_42,(0,0):C.GC_34})
+
+V_76 = Vertex(name = 'V_76',
+              particles = [ P.s__tilde__, P.s, P.Z ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFV2, L.FFV3 ],
+              couplings = {(0,1):C.GC_42,(0,0):C.GC_34})
+
+V_77 = Vertex(name = 'V_77',
+              particles = [ P.b__tilde__, P.b, P.Z ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFV2, L.FFV3 ],
+              couplings = {(0,1):C.GC_42,(0,0):C.GC_34})
+
+V_78 = Vertex(name = 'V_78',
+              particles = [ P.e__plus__, P.e__minus__, P.Z ],
+              color = [ '1' ],
+              lorentz = [ L.FFV2, L.FFV4 ],
+              couplings = {(0,1):C.GC_43,(0,0):C.GC_34})
+
+V_79 = Vertex(name = 'V_79',
+              particles = [ P.m__plus__, P.m__minus__, P.Z ],
+              color = [ '1' ],
+              lorentz = [ L.FFV2, L.FFV4 ],
+              couplings = {(0,1):C.GC_43,(0,0):C.GC_34})
+
+V_80 = Vertex(name = 'V_80',
+              particles = [ P.tt__plus__, P.tt__minus__, P.Z ],
+              color = [ '1' ],
+              lorentz = [ L.FFV2, L.FFV4 ],
+              couplings = {(0,1):C.GC_43,(0,0):C.GC_34})
+
+V_81 = Vertex(name = 'V_81',
+              particles = [ P.d__tilde__, P.d, P.Zp ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFV2, L.FFV3 ],
+              couplings = {(0,1):C.GC_45,(0,0):C.GC_37})
+
+V_82 = Vertex(name = 'V_82',
+              particles = [ P.s__tilde__, P.s, P.Zp ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFV2, L.FFV3 ],
+              couplings = {(0,1):C.GC_45,(0,0):C.GC_37})
+
+V_83 = Vertex(name = 'V_83',
+              particles = [ P.b__tilde__, P.b, P.Zp ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFV2, L.FFV3 ],
+              couplings = {(0,1):C.GC_45,(0,0):C.GC_37})
+
+V_84 = Vertex(name = 'V_84',
+              particles = [ P.e__plus__, P.e__minus__, P.Zp ],
+              color = [ '1' ],
+              lorentz = [ L.FFV2, L.FFV4 ],
+              couplings = {(0,1):C.GC_46,(0,0):C.GC_37})
+
+V_85 = Vertex(name = 'V_85',
+              particles = [ P.m__plus__, P.m__minus__, P.Zp ],
+              color = [ '1' ],
+              lorentz = [ L.FFV2, L.FFV4 ],
+              couplings = {(0,1):C.GC_46,(0,0):C.GC_37})
+
+V_86 = Vertex(name = 'V_86',
+              particles = [ P.tt__plus__, P.tt__minus__, P.Zp ],
+              color = [ '1' ],
+              lorentz = [ L.FFV2, L.FFV4 ],
+              couplings = {(0,1):C.GC_46,(0,0):C.GC_37})
+
+V_87 = Vertex(name = 'V_87',
+              particles = [ P.u__tilde__, P.u, P.A ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFV1 ],
+              couplings = {(0,0):C.GC_3})
+
+V_88 = Vertex(name = 'V_88',
+              particles = [ P.c__tilde__, P.c, P.A ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFV1 ],
+              couplings = {(0,0):C.GC_3})
+
+V_89 = Vertex(name = 'V_89',
+              particles = [ P.t__tilde__, P.t, P.A ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFV1 ],
+              couplings = {(0,0):C.GC_3})
+
+V_90 = Vertex(name = 'V_90',
+              particles = [ P.u__tilde__, P.u, P.Z ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFV2, L.FFV5 ],
+              couplings = {(0,1):C.GC_42,(0,0):C.GC_35})
+
+V_91 = Vertex(name = 'V_91',
+              particles = [ P.c__tilde__, P.c, P.Z ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFV2, L.FFV5 ],
+              couplings = {(0,1):C.GC_42,(0,0):C.GC_35})
+
+V_92 = Vertex(name = 'V_92',
+              particles = [ P.t__tilde__, P.t, P.Z ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFV2, L.FFV5 ],
+              couplings = {(0,1):C.GC_42,(0,0):C.GC_35})
+
+V_93 = Vertex(name = 'V_93',
+              particles = [ P.ve__tilde__, P.ve, P.Z ],
+              color = [ '1' ],
+              lorentz = [ L.FFV2 ],
+              couplings = {(0,0):C.GC_44})
+
+V_94 = Vertex(name = 'V_94',
+              particles = [ P.vm__tilde__, P.vm, P.Z ],
+              color = [ '1' ],
+              lorentz = [ L.FFV2 ],
+              couplings = {(0,0):C.GC_44})
+
+V_95 = Vertex(name = 'V_95',
+              particles = [ P.vt__tilde__, P.vt, P.Z ],
+              color = [ '1' ],
+              lorentz = [ L.FFV2 ],
+              couplings = {(0,0):C.GC_44})
+
+V_96 = Vertex(name = 'V_96',
+              particles = [ P.u__tilde__, P.u, P.Zp ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFV2, L.FFV5 ],
+              couplings = {(0,1):C.GC_45,(0,0):C.GC_36})
+
+V_97 = Vertex(name = 'V_97',
+              particles = [ P.c__tilde__, P.c, P.Zp ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFV2, L.FFV5 ],
+              couplings = {(0,1):C.GC_45,(0,0):C.GC_36})
+
+V_98 = Vertex(name = 'V_98',
+              particles = [ P.t__tilde__, P.t, P.Zp ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFV2, L.FFV5 ],
+              couplings = {(0,1):C.GC_45,(0,0):C.GC_36})
+
+V_99 = Vertex(name = 'V_99',
+              particles = [ P.ve__tilde__, P.ve, P.Zp ],
+              color = [ '1' ],
+              lorentz = [ L.FFV2 ],
+              couplings = {(0,0):C.GC_47})
+
+V_100 = Vertex(name = 'V_100',
+               particles = [ P.vm__tilde__, P.vm, P.Zp ],
+               color = [ '1' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_47})
+
+V_101 = Vertex(name = 'V_101',
+               particles = [ P.vt__tilde__, P.vt, P.Zp ],
+               color = [ '1' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_47})
+
+V_102 = Vertex(name = 'V_102',
+               particles = [ P.d__tilde__, P.u, P.W__minus__ ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_30})
+
+V_103 = Vertex(name = 'V_103',
+               particles = [ P.s__tilde__, P.u, P.W__minus__ ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_31})
+
+V_104 = Vertex(name = 'V_104',
+               particles = [ P.d__tilde__, P.c, P.W__minus__ ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_32})
+
+V_105 = Vertex(name = 'V_105',
+               particles = [ P.s__tilde__, P.c, P.W__minus__ ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_33})
+
+V_106 = Vertex(name = 'V_106',
+               particles = [ P.b__tilde__, P.t, P.W__minus__ ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_29})
+
+V_107 = Vertex(name = 'V_107',
+               particles = [ P.e__plus__, P.ve, P.W__minus__ ],
+               color = [ '1' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_29})
+
+V_108 = Vertex(name = 'V_108',
+               particles = [ P.m__plus__, P.vm, P.W__minus__ ],
+               color = [ '1' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_29})
+
+V_109 = Vertex(name = 'V_109',
+               particles = [ P.tt__plus__, P.vt, P.W__minus__ ],
+               color = [ '1' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_29})
+
+V_110 = Vertex(name = 'V_110',
+               particles = [ P.ve__tilde__, P.e__minus__, P.W__plus__ ],
+               color = [ '1' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_29})
+
+V_111 = Vertex(name = 'V_111',
+               particles = [ P.vm__tilde__, P.m__minus__, P.W__plus__ ],
+               color = [ '1' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_29})
+
+V_112 = Vertex(name = 'V_112',
+               particles = [ P.vt__tilde__, P.tt__minus__, P.W__plus__ ],
+               color = [ '1' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_29})
+
+V_113 = Vertex(name = 'V_113',
+               particles = [ P.u__tilde__, P.d, P.W__plus__ ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_81})
+
+V_114 = Vertex(name = 'V_114',
+               particles = [ P.c__tilde__, P.d, P.W__plus__ ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_83})
+
+V_115 = Vertex(name = 'V_115',
+               particles = [ P.u__tilde__, P.s, P.W__plus__ ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_82})
+
+V_116 = Vertex(name = 'V_116',
+               particles = [ P.c__tilde__, P.s, P.W__plus__ ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_84})
+
+V_117 = Vertex(name = 'V_117',
+               particles = [ P.t__tilde__, P.b, P.W__plus__ ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_29})
+
diff --git a/HAHM_variableMW_v3_UFO_QT1/write_param_card.py b/HAHM_variableMW_v3_UFO_QT1/write_param_card.py
new file mode 100755
index 00000000..57a85b06
--- /dev/null
+++ b/HAHM_variableMW_v3_UFO_QT1/write_param_card.py
@@ -0,0 +1,182 @@
+
+__date__ = "3 june 2010"
+__author__ = 'olivier.mattelaer@uclouvain.be'
+
+class ParamCardWriter(object):
+    
+    header = \
+    """######################################################################\n""" + \
+    """## PARAM_CARD AUTOMATICALY GENERATED BY THE UFO  #####################\n""" + \
+    """######################################################################\n"""   
+    
+    def __init__(self, filename, list_of_parameters=None, generic=False):
+        """write a valid param_card.dat"""
+        
+        if not list_of_parameters:
+            from parameters import all_parameters
+            list_of_parameters = [param for param in all_parameters if \
+                                                       param.nature=='external']
+        
+        self.generic_output = generic
+        if generic:
+            self.define_not_dep_param(list_of_parameters)
+
+        
+        self.fsock = open(filename, 'w')
+        self.fsock.write(self.header)
+        
+        self.write_card(list_of_parameters)
+    
+    def define_not_dep_param(self, list_of_parameters):
+        """define self.dep_mass and self.dep_width in case that they are 
+        requested in the param_card.dat"""
+        from particles import all_particles
+        
+        self.dep_mass = [(part, part.mass) for part in all_particles \
+                            if part.pdg_code > 0 and \
+                                            part.mass not in list_of_parameters]
+        self.dep_width = [(part, part.width) for part in all_particles\
+                             if part.pdg_code > 0 and \
+                                part.width not in list_of_parameters]        
+    
+    @staticmethod
+    def order_param(obj1, obj2):
+        """ order parameter of a given block """
+        
+        maxlen = min([len(obj1.lhacode), len(obj2.lhacode)])
+    
+        for i in range(maxlen):
+            if obj1.lhacode[i] < obj2.lhacode[i]:
+                return -1
+            elif obj1.lhacode[i] == obj2.lhacode[i]:
+                return 0
+            else:
+                return 1
+        #identical up to the first finish
+        if len(obj1.lhacode) > len(obj2.lhacode):
+            return 1
+        elif  len(obj1.lhacode) == len(obj2.lhacode):
+            return 0
+        else:
+            return -1
+        
+    def write_card(self, all_ext_param):
+        """ """
+        
+        # list all lhablock
+        all_lhablock = set([param.lhablock for param in all_ext_param])
+        
+        # ordonate lhablock alphabeticaly
+        all_lhablock = list(all_lhablock)
+        all_lhablock.sort()
+        # put at the beginning SMINPUT + MASS + DECAY
+        for name in ['DECAY', 'MASS','SMINPUTS']:
+            if name in all_lhablock:
+                all_lhablock.remove(name)
+                all_lhablock.insert(0, name)
+        
+        for lhablock in all_lhablock:
+            self.write_block(lhablock)
+            need_writing = [ param for param in all_ext_param if \
+                                                     param.lhablock == lhablock]
+            from functools import cmp_to_key
+            need_writing.sort(key=cmp_to_key(self.order_param))
+            [self.write_param(param, lhablock) for param in need_writing]
+            
+            if self.generic_output:
+                if lhablock in ['MASS', 'DECAY']:
+                    self.write_dep_param_block(lhablock)
+
+        if self.generic_output:
+            self.write_qnumber()
+                               
+    def write_block(self, name):
+        """ write a comment for a block"""
+        
+        self.fsock.writelines(
+        """\n###################################""" + \
+        """\n## INFORMATION FOR %s""" % name.upper() +\
+        """\n###################################\n"""
+         )
+        if name!='DECAY':
+            self.fsock.write("""Block %s \n""" % name)
+
+    def write_param(self, param, lhablock):
+        
+        lhacode=' '.join(['%3s' % key for key in param.lhacode])
+        if lhablock != 'DECAY':
+            text = """  %s %e # %s \n""" % (lhacode, complex(param.value).real, param.name ) 
+        else:
+            text = '''DECAY %s %e \n''' % (lhacode, complex(param.value).real)
+        self.fsock.write(text) 
+                    
+
+
+    
+    def write_dep_param_block(self, lhablock):
+        import cmath
+        from parameters import all_parameters
+        for parameter in all_parameters:
+            try:
+                exec("%s = %s" % (parameter.name, parameter.value))
+            except Exception:
+                pass
+        text = "##  Not dependent paramater.\n"
+        text += "## Those values should be edited following analytical the \n"
+        text += "## analytical expression. Some generator could simply ignore \n"
+        text += "## those values and use the analytical expression\n"
+        
+        if lhablock == 'MASS':
+            data = self.dep_mass
+            prefix = " "
+        else:
+            data = self.dep_width
+            prefix = "DECAY "
+        for part, param in data:
+            if isinstance(param.value, str):
+                value = complex(eval(param.value)).real
+            else:
+                value = param.value
+            
+            text += """%s %s %f # %s : %s \n""" %(prefix, part.pdg_code, 
+                        value, part.name, param.value)
+        self.fsock.write(text)    
+    
+    sm_pdg = [1,2,3,4,5,6,11,12,13,13,14,15,16,21,22,23,24,25]
+    data="""Block QNUMBERS %(pdg)d  # %(name)s 
+        1 %(charge)d  # 3 times electric charge
+        2 %(spin)d  # number of spin states (2S+1)
+        3 %(color)d  # colour rep (1: singlet, 3: triplet, 8: octet)
+        4 %(antipart)d  # Particle/Antiparticle distinction (0=own anti)\n"""
+    
+    def write_qnumber(self):
+        """ write qnumber """
+        from particles import all_particles
+        
+        text="""#===========================================================\n"""
+        text += """# QUANTUM NUMBERS OF NEW STATE(S) (NON SM PDG CODE)\n"""
+        text += """#===========================================================\n\n"""
+        
+        for part in all_particles:
+            if part.pdg_code in self.sm_pdg or part.pdg_code < 0:
+                continue
+            text += self.data % {'pdg': part.pdg_code,
+                                 'name': part.name,
+                                 'charge': 3 * part.charge,
+                                 'spin': 2 * part.spin + 1,
+                                 'color': part.color,
+                                 'antipart': part.name != part.antiname and 1 or 0}
+        
+        self.fsock.write(text)
+        
+        
+            
+            
+            
+            
+        
+            
+if '__main__' == __name__:
+    ParamCardWriter('./param_card.dat', generic=True)
+    print('write ./param_card.dat')
+    
diff --git a/model_list.txt b/model_list.txt
index cca10252..96ebac67 100644
--- a/model_list.txt
+++ b/model_list.txt
@@ -466,6 +466,12 @@ Content: Hidden Abelian Higgs Model
 Link: http://insti.physics.sunysb.edu/~curtin/hahm_mg.html
 Download: http://insti.physics.sunysb.edu/~curtin/HAHM_MG5model/HAHM_MG5model_v3.tar.gz
 
+HAHM_variableMW_v3_UFO_QT1
+Requestor: Hannah van der Schyf
+Content: Hidden Abelian Higgs Model
+JIRA: https://its.cern.ch/jira/browse/ATR-27184
+Source: https://gitlab.cern.ch/atlas-generators-team/MadGraphModels/-/tree/main/HAHM_variableMW_v3_UFO
+
 HAHM_variablesw_v3_UFO
 Requestor: Will Buttinger
 Content: Hidden Abelian Higgs Model
-- 
GitLab