From d234ed7d734e7b91f249165d22a2af0a6b1f5ab9 Mon Sep 17 00:00:00 2001
From: Zhen Wang <zhen.wang@cern.ch>
Date: Sat, 10 Sep 2022 16:05:29 +0200
Subject: [PATCH 1/5] add CHresonance model into the Model list

---
 CHresonance_neutral_scalar_UFO.txt            |    4 +
 .../CHresonance_neutral_scalar_UFO.log        |   89 ++
 .../CT_couplings.py                           |   11 +
 CHresonance_neutral_scalar_UFO/__init__.py    |   48 +
 .../coupling_orders.py                        |   20 +
 CHresonance_neutral_scalar_UFO/couplings.py   |  287 +++++
 CHresonance_neutral_scalar_UFO/decays.py      |   60 +
 .../feynrules/._Cabibbo.rst                   |  Bin 0 -> 193 bytes
 .../feynrules/._DiagonalCKM.rst               |  Bin 0 -> 193 bytes
 .../feynrules/._Massless.rst                  |  Bin 0 -> 193 bytes
 .../feynrules/._Notebook.nb                   |  Bin 0 -> 82 bytes
 .../feynrules/._SM.fr                         |  Bin 0 -> 193 bytes
 .../feynrules/Cabibbo.rst                     |   16 +
 .../feynrules/DiagonalCKM.rst                 |   11 +
 .../feynrules/Massless.rst                    |   26 +
 .../feynrules/Notebook.nb                     | 1137 +++++++++++++++++
 .../feynrules/SM.fr                           |  729 +++++++++++
 .../feynrules/neutral_scalar.fr               |   40 +
 .../feynrules/neutral_scalar.tar.gz           |  Bin 0 -> 28830 bytes
 .../function_library.py                       |   71 +
 CHresonance_neutral_scalar_UFO/lorentz.py     |  106 ++
 .../object_library.py                         |  377 ++++++
 CHresonance_neutral_scalar_UFO/parameters.py  |  290 +++++
 .../parametersTemplate.py                     |  289 +++++
 CHresonance_neutral_scalar_UFO/particles.py   |  401 ++++++
 CHresonance_neutral_scalar_UFO/propagators.py |   35 +
 CHresonance_neutral_scalar_UFO/vertices.py    |  743 +++++++++++
 .../write_param_card.py                       |  207 +++
 28 files changed, 4997 insertions(+)
 create mode 100644 CHresonance_neutral_scalar_UFO.txt
 create mode 100644 CHresonance_neutral_scalar_UFO/CHresonance_neutral_scalar_UFO.log
 create mode 100644 CHresonance_neutral_scalar_UFO/CT_couplings.py
 create mode 100644 CHresonance_neutral_scalar_UFO/__init__.py
 create mode 100644 CHresonance_neutral_scalar_UFO/coupling_orders.py
 create mode 100644 CHresonance_neutral_scalar_UFO/couplings.py
 create mode 100644 CHresonance_neutral_scalar_UFO/decays.py
 create mode 100644 CHresonance_neutral_scalar_UFO/feynrules/._Cabibbo.rst
 create mode 100644 CHresonance_neutral_scalar_UFO/feynrules/._DiagonalCKM.rst
 create mode 100644 CHresonance_neutral_scalar_UFO/feynrules/._Massless.rst
 create mode 100644 CHresonance_neutral_scalar_UFO/feynrules/._Notebook.nb
 create mode 100644 CHresonance_neutral_scalar_UFO/feynrules/._SM.fr
 create mode 100644 CHresonance_neutral_scalar_UFO/feynrules/Cabibbo.rst
 create mode 100644 CHresonance_neutral_scalar_UFO/feynrules/DiagonalCKM.rst
 create mode 100644 CHresonance_neutral_scalar_UFO/feynrules/Massless.rst
 create mode 100644 CHresonance_neutral_scalar_UFO/feynrules/Notebook.nb
 create mode 100644 CHresonance_neutral_scalar_UFO/feynrules/SM.fr
 create mode 100644 CHresonance_neutral_scalar_UFO/feynrules/neutral_scalar.fr
 create mode 100644 CHresonance_neutral_scalar_UFO/feynrules/neutral_scalar.tar.gz
 create mode 100644 CHresonance_neutral_scalar_UFO/function_library.py
 create mode 100644 CHresonance_neutral_scalar_UFO/lorentz.py
 create mode 100644 CHresonance_neutral_scalar_UFO/object_library.py
 create mode 100644 CHresonance_neutral_scalar_UFO/parameters.py
 create mode 100644 CHresonance_neutral_scalar_UFO/parametersTemplate.py
 create mode 100644 CHresonance_neutral_scalar_UFO/particles.py
 create mode 100644 CHresonance_neutral_scalar_UFO/propagators.py
 create mode 100644 CHresonance_neutral_scalar_UFO/vertices.py
 create mode 100644 CHresonance_neutral_scalar_UFO/write_param_card.py

diff --git a/CHresonance_neutral_scalar_UFO.txt b/CHresonance_neutral_scalar_UFO.txt
new file mode 100644
index 0000000..5cce9ef
--- /dev/null
+++ b/CHresonance_neutral_scalar_UFO.txt
@@ -0,0 +1,4 @@
+Requestor: Zhen Wang
+Content: Singlet-catalyzed electroweak phase transitions from Ashutosh V. Kotwal
+Paper: https://journals.aps.org/prd/abstract/10.1103/PhysRevD.94.035022
+JIRA: https://its.cern.ch/jira/browse/ATLMCPROD-6413 (old ZZ sample request)
diff --git a/CHresonance_neutral_scalar_UFO/CHresonance_neutral_scalar_UFO.log b/CHresonance_neutral_scalar_UFO/CHresonance_neutral_scalar_UFO.log
new file mode 100644
index 0000000..b92dd56
--- /dev/null
+++ b/CHresonance_neutral_scalar_UFO/CHresonance_neutral_scalar_UFO.log
@@ -0,0 +1,89 @@
+# This file was automatically created by FeynRules 2.0.2
+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (February 23, 2011)
+# Date: Wed 8 Oct 2014 20:38:51
+
+
+# 
+# This is the logfile for the model CHresonance_neutral_scalar
+
+# Authors: N. Christensen, C. Duhr, B. Fuks
+# Model version: 1.4.5
+# Checking the Quantum numbers
+   * Electric charge defined.
+# Checking the Lagrangians
+   * All Lagrangians are ok.
+#
+# Particle definitions
+#
+
+   * No particles removed. All particles correspond to GenInt setup.
+
+# Automatically assigned PDG numbers
+   * Assigned PDG number 9000001 to particle ghA
+   * Assigned PDG number 9000002 to particle ghZ
+   * Assigned PDG number 9000003 to particle ghWp
+   * Assigned PDG number 9000004 to particle ghWm
+   * Assigned PDG number 9000005 to particle ghG
+   * Assigned PDG number 9000006 to particle s0
+
+
+# Compulsory PDG codes:
+   * Class SM leptons complete.
+   * Class SM neutrinos complete.
+   * Class SM quarks complete.
+   * Class SM gauge bosons complete.
+#
+# Parameter definitions
+#
+
+   * All parameters are ok.
+
+
+# Vertices
+   * Calling FeynmanRules for 2 Lagrangians.
+   * Number of classes vertices: 96
+   * Number of flavored vertices: 122
+   * Saved vertices in InterfaceRun[ 1 ].
+   * Checked QNumber conservation.
+      - Quantum number GhostNumber conserved in all vertices.
+      - Quantum number LeptonNumber conserved in all vertices.
+      - Quantum number Q conserved in all vertices.
+      - Quantum number Y conserved in all vertices.
+   * particles.py written.
+   * parameters.py written.
+#
+# Vertex definitions
+#
+
+   * 122 vertices written.
+   * vertices.py written.
+#
+# Lorentz structure definitions
+#
+
+   * 23 lorentz structures written.
+   * lorentz.py written.
+#
+# Coupling definitions
+#
+
+   * 69 couplings written.
+   * couplings.py written.
+#
+# Coupling order definitions
+#
+
+   * 0 couplings orders written.
+   * coupling_orders.py written.
+#
+# Decay definitions
+#
+
+   * 7 decays written.
+   * decay.py not written
+#
+# CTCoupling definitions
+#
+
+   * 0 CTcouplings written.
+   * CT_couplings.py written.
diff --git a/CHresonance_neutral_scalar_UFO/CT_couplings.py b/CHresonance_neutral_scalar_UFO/CT_couplings.py
new file mode 100644
index 0000000..c8efdce
--- /dev/null
+++ b/CHresonance_neutral_scalar_UFO/CT_couplings.py
@@ -0,0 +1,11 @@
+# This file was automatically created by FeynRules 2.0.2
+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (February 23, 2011)
+# Date: Wed 8 Oct 2014 20:39:09
+
+
+from object_library import all_couplings, Coupling
+
+from function_library import complexconjugate, re, im, csc, sec, acsc, asec, cot
+
+
+
diff --git a/CHresonance_neutral_scalar_UFO/__init__.py b/CHresonance_neutral_scalar_UFO/__init__.py
new file mode 100644
index 0000000..83ac15a
--- /dev/null
+++ b/CHresonance_neutral_scalar_UFO/__init__.py
@@ -0,0 +1,48 @@
+
+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, 1]
+
+
+__author__ = "N. Christensen, C. Duhr, B. Fuks"
+__date__ = "21. 11. 2012"
+__version__= "1.4.5"
diff --git a/CHresonance_neutral_scalar_UFO/coupling_orders.py b/CHresonance_neutral_scalar_UFO/coupling_orders.py
new file mode 100644
index 0000000..0178e7e
--- /dev/null
+++ b/CHresonance_neutral_scalar_UFO/coupling_orders.py
@@ -0,0 +1,20 @@
+# This file was automatically created by FeynRules 2.0.2
+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (February 23, 2011)
+# Date: Wed 8 Oct 2014 20:39:09
+
+
+from object_library import all_orders, CouplingOrder
+
+
+QCD = CouplingOrder(name = 'QCD',
+                    expansion_order = 99,
+                    hierarchy = 1)
+
+QED = CouplingOrder(name = 'QED',
+                    expansion_order = 99,
+                    hierarchy = 2)
+
+NP = CouplingOrder(name = 'NP',
+                   expansion_order = 99,
+                   hierarchy = 1)
+
diff --git a/CHresonance_neutral_scalar_UFO/couplings.py b/CHresonance_neutral_scalar_UFO/couplings.py
new file mode 100644
index 0000000..0f053c4
--- /dev/null
+++ b/CHresonance_neutral_scalar_UFO/couplings.py
@@ -0,0 +1,287 @@
+# This file was automatically created by FeynRules 2.0.2
+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (February 23, 2011)
+# Date: Wed 8 Oct 2014 20:39:09
+
+
+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 = '-(ee*complex(0,1))/3.',
+                order = {'QED':1})
+
+GC_2 = Coupling(name = 'GC_2',
+                value = '(2*ee*complex(0,1))/3.',
+                order = {'QED':1})
+
+GC_3 = Coupling(name = 'GC_3',
+                value = '-(ee*complex(0,1))',
+                order = {'QED':1})
+
+GC_4 = Coupling(name = 'GC_4',
+                value = 'ee*complex(0,1)',
+                order = {'QED':1})
+
+GC_5 = Coupling(name = 'GC_5',
+                value = 'ee**2*complex(0,1)',
+                order = {'QED':2})
+
+GC_6 = Coupling(name = 'GC_6',
+                value = '2*ee**2*complex(0,1)',
+                order = {'QED':2})
+
+GC_7 = Coupling(name = 'GC_7',
+                value = '-ee**2/(2.*cw)',
+                order = {'QED':2})
+
+GC_8 = Coupling(name = 'GC_8',
+                value = '(ee**2*complex(0,1))/(2.*cw)',
+                order = {'QED':2})
+
+GC_9 = Coupling(name = 'GC_9',
+                value = 'ee**2/(2.*cw)',
+                order = {'QED':2})
+
+GC_10 = Coupling(name = 'GC_10',
+                 value = '-G',
+                 order = {'QCD':1})
+
+GC_11 = Coupling(name = 'GC_11',
+                 value = 'complex(0,1)*G',
+                 order = {'QCD':1})
+
+GC_12 = Coupling(name = 'GC_12',
+                 value = 'complex(0,1)*G**2',
+                 order = {'QCD':2})
+
+GC_13 = Coupling(name = 'GC_13',
+                 value = 'I1b33',
+                 order = {'QED':1})
+
+GC_14 = Coupling(name = 'GC_14',
+                 value = '-I2b33',
+                 order = {'QED':1})
+
+GC_15 = Coupling(name = 'GC_15',
+                 value = 'I3b33',
+                 order = {'QED':1})
+
+GC_16 = Coupling(name = 'GC_16',
+                 value = '-I4b33',
+                 order = {'QED':1})
+
+GC_17 = Coupling(name = 'GC_17',
+                 value = '-2*complex(0,1)*lam',
+                 order = {'QED':2})
+
+GC_18 = Coupling(name = 'GC_18',
+                 value = '-4*complex(0,1)*lam',
+                 order = {'QED':2})
+
+GC_19 = Coupling(name = 'GC_19',
+                 value = '-6*complex(0,1)*lam',
+                 order = {'QED':2})
+
+GC_20 = Coupling(name = 'GC_20',
+                 value = 'complex(0,1)*gweak*keta*MW',
+                 order = {'NP':1})
+
+GC_21 = Coupling(name = 'GC_21',
+                 value = '(complex(0,1)*gweak*keta*MZ)/cw',
+                 order = {'NP':1})
+
+GC_22 = Coupling(name = 'GC_22',
+                 value = '(ee**2*complex(0,1))/(2.*sw**2)',
+                 order = {'QED':2})
+
+GC_23 = Coupling(name = 'GC_23',
+                 value = '-((ee**2*complex(0,1))/sw**2)',
+                 order = {'QED':2})
+
+GC_24 = Coupling(name = 'GC_24',
+                 value = '(cw**2*ee**2*complex(0,1))/sw**2',
+                 order = {'QED':2})
+
+GC_25 = Coupling(name = 'GC_25',
+                 value = '-ee/(2.*sw)',
+                 order = {'QED':1})
+
+GC_26 = Coupling(name = 'GC_26',
+                 value = '-(ee*complex(0,1))/(2.*sw)',
+                 order = {'QED':1})
+
+GC_27 = Coupling(name = 'GC_27',
+                 value = '(ee*complex(0,1))/(2.*sw)',
+                 order = {'QED':1})
+
+GC_28 = Coupling(name = 'GC_28',
+                 value = '(ee*complex(0,1))/(sw*cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_29 = Coupling(name = 'GC_29',
+                 value = '-(cw*ee*complex(0,1))/(2.*sw)',
+                 order = {'QED':1})
+
+GC_30 = Coupling(name = 'GC_30',
+                 value = '(cw*ee*complex(0,1))/(2.*sw)',
+                 order = {'QED':1})
+
+GC_31 = Coupling(name = 'GC_31',
+                 value = '-((cw*ee*complex(0,1))/sw)',
+                 order = {'QED':1})
+
+GC_32 = Coupling(name = 'GC_32',
+                 value = '(cw*ee*complex(0,1))/sw',
+                 order = {'QED':1})
+
+GC_33 = Coupling(name = 'GC_33',
+                 value = '-ee**2/(2.*sw)',
+                 order = {'QED':2})
+
+GC_34 = Coupling(name = 'GC_34',
+                 value = '-(ee**2*complex(0,1))/(2.*sw)',
+                 order = {'QED':2})
+
+GC_35 = Coupling(name = 'GC_35',
+                 value = 'ee**2/(2.*sw)',
+                 order = {'QED':2})
+
+GC_36 = Coupling(name = 'GC_36',
+                 value = '(-2*cw*ee**2*complex(0,1))/sw',
+                 order = {'QED':2})
+
+GC_37 = Coupling(name = 'GC_37',
+                 value = '-(ee*complex(0,1)*sw)/(6.*cw)',
+                 order = {'QED':1})
+
+GC_38 = Coupling(name = 'GC_38',
+                 value = '(ee*complex(0,1)*sw)/(2.*cw)',
+                 order = {'QED':1})
+
+GC_39 = Coupling(name = 'GC_39',
+                 value = '-(cw*ee)/(2.*sw) - (ee*sw)/(2.*cw)',
+                 order = {'QED':1})
+
+GC_40 = Coupling(name = 'GC_40',
+                 value = '-(cw*ee*complex(0,1))/(2.*sw) + (ee*complex(0,1)*sw)/(2.*cw)',
+                 order = {'QED':1})
+
+GC_41 = Coupling(name = 'GC_41',
+                 value = '(cw*ee*complex(0,1))/(2.*sw) + (ee*complex(0,1)*sw)/(2.*cw)',
+                 order = {'QED':1})
+
+GC_42 = Coupling(name = 'GC_42',
+                 value = '(cw*ee**2*complex(0,1))/sw - (ee**2*complex(0,1)*sw)/cw',
+                 order = {'QED':2})
+
+GC_43 = Coupling(name = 'GC_43',
+                 value = '-(ee**2*complex(0,1)) + (cw**2*ee**2*complex(0,1))/(2.*sw**2) + (ee**2*complex(0,1)*sw**2)/(2.*cw**2)',
+                 order = {'QED':2})
+
+GC_44 = Coupling(name = 'GC_44',
+                 value = 'ee**2*complex(0,1) + (cw**2*ee**2*complex(0,1))/(2.*sw**2) + (ee**2*complex(0,1)*sw**2)/(2.*cw**2)',
+                 order = {'QED':2})
+
+GC_45 = Coupling(name = 'GC_45',
+                 value = '-(ee**2*vev)/(2.*cw)',
+                 order = {'QED':1})
+
+GC_46 = Coupling(name = 'GC_46',
+                 value = '(ee**2*vev)/(2.*cw)',
+                 order = {'QED':1})
+
+GC_47 = Coupling(name = 'GC_47',
+                 value = '-2*complex(0,1)*lam*vev',
+                 order = {'QED':1})
+
+GC_48 = Coupling(name = 'GC_48',
+                 value = '-6*complex(0,1)*lam*vev',
+                 order = {'QED':1})
+
+GC_49 = Coupling(name = 'GC_49',
+                 value = '-(ee**2*vev)/(4.*sw**2)',
+                 order = {'QED':1})
+
+GC_50 = Coupling(name = 'GC_50',
+                 value = '-(ee**2*complex(0,1)*vev)/(4.*sw**2)',
+                 order = {'QED':1})
+
+GC_51 = Coupling(name = 'GC_51',
+                 value = '(ee**2*complex(0,1)*vev)/(2.*sw**2)',
+                 order = {'QED':1})
+
+GC_52 = Coupling(name = 'GC_52',
+                 value = '(ee**2*vev)/(4.*sw**2)',
+                 order = {'QED':1})
+
+GC_53 = Coupling(name = 'GC_53',
+                 value = '-(ee**2*vev)/(2.*sw)',
+                 order = {'QED':1})
+
+GC_54 = Coupling(name = 'GC_54',
+                 value = '(ee**2*vev)/(2.*sw)',
+                 order = {'QED':1})
+
+GC_55 = Coupling(name = 'GC_55',
+                 value = '-(ee**2*vev)/(4.*cw) - (cw*ee**2*vev)/(4.*sw**2)',
+                 order = {'QED':1})
+
+GC_56 = Coupling(name = 'GC_56',
+                 value = '(ee**2*vev)/(4.*cw) - (cw*ee**2*vev)/(4.*sw**2)',
+                 order = {'QED':1})
+
+GC_57 = Coupling(name = 'GC_57',
+                 value = '-(ee**2*vev)/(4.*cw) + (cw*ee**2*vev)/(4.*sw**2)',
+                 order = {'QED':1})
+
+GC_58 = Coupling(name = 'GC_58',
+                 value = '(ee**2*vev)/(4.*cw) + (cw*ee**2*vev)/(4.*sw**2)',
+                 order = {'QED':1})
+
+GC_59 = Coupling(name = 'GC_59',
+                 value = '-(ee**2*complex(0,1)*vev)/2. - (cw**2*ee**2*complex(0,1)*vev)/(4.*sw**2) - (ee**2*complex(0,1)*sw**2*vev)/(4.*cw**2)',
+                 order = {'QED':1})
+
+GC_60 = Coupling(name = 'GC_60',
+                 value = 'ee**2*complex(0,1)*vev + (cw**2*ee**2*complex(0,1)*vev)/(2.*sw**2) + (ee**2*complex(0,1)*sw**2*vev)/(2.*cw**2)',
+                 order = {'QED':1})
+
+GC_61 = Coupling(name = 'GC_61',
+                 value = '(-2*complex(0,1)*keta)/vweak',
+                 order = {'NP':1})
+
+GC_62 = Coupling(name = 'GC_62',
+                 value = '-(yb/cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_63 = Coupling(name = 'GC_63',
+                 value = '-((complex(0,1)*yb)/cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_64 = Coupling(name = 'GC_64',
+                 value = '-((complex(0,1)*yt)/cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_65 = Coupling(name = 'GC_65',
+                 value = 'yt/cmath.sqrt(2)',
+                 order = {'QED':1})
+
+GC_66 = Coupling(name = 'GC_66',
+                 value = '-ytau',
+                 order = {'QED':1})
+
+GC_67 = Coupling(name = 'GC_67',
+                 value = 'ytau',
+                 order = {'QED':1})
+
+GC_68 = Coupling(name = 'GC_68',
+                 value = '-(ytau/cmath.sqrt(2))',
+                 order = {'QED':1})
+
+GC_69 = Coupling(name = 'GC_69',
+                 value = '-((complex(0,1)*ytau)/cmath.sqrt(2))',
+                 order = {'QED':1})
+
diff --git a/CHresonance_neutral_scalar_UFO/decays.py b/CHresonance_neutral_scalar_UFO/decays.py
new file mode 100644
index 0000000..8ebc6c5
--- /dev/null
+++ b/CHresonance_neutral_scalar_UFO/decays.py
@@ -0,0 +1,60 @@
+# This file was automatically created by FeynRules 2.0.2
+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (February 23, 2011)
+# Date: Wed 8 Oct 2014 20:39:09
+
+
+from object_library import all_decays, Decay
+import particles as P
+
+
+Decay_H = Decay(name = 'Decay_H',
+                particle = P.H,
+                partial_widths = {(P.b,P.b__tilde__):'((-12*MB**2*yb**2 + 3*MH**2*yb**2)*cmath.sqrt(-4*MB**2*MH**2 + MH**4))/(16.*cmath.pi*abs(MH)**3)',
+                                  (P.ta__minus__,P.ta__plus__):'((MH**2*ytau**2 - 4*MTA**2*ytau**2)*cmath.sqrt(MH**4 - 4*MH**2*MTA**2))/(16.*cmath.pi*abs(MH)**3)',
+                                  (P.t,P.t__tilde__):'((3*MH**2*yt**2 - 12*MT**2*yt**2)*cmath.sqrt(MH**4 - 4*MH**2*MT**2))/(16.*cmath.pi*abs(MH)**3)',
+                                  (P.W__minus__,P.W__plus__):'(((3*ee**4*vev**2)/(4.*sw**4) + (ee**4*MH**4*vev**2)/(16.*MW**4*sw**4) - (ee**4*MH**2*vev**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*ee**4*vev**2)/2. + (3*ee**4*MH**4*vev**2)/(8.*MZ**4) - (3*ee**4*MH**2*vev**2)/(2.*MZ**2) + (3*cw**4*ee**4*vev**2)/(4.*sw**4) + (cw**4*ee**4*MH**4*vev**2)/(16.*MZ**4*sw**4) - (cw**4*ee**4*MH**2*vev**2)/(4.*MZ**2*sw**4) + (3*cw**2*ee**4*vev**2)/sw**2 + (cw**2*ee**4*MH**4*vev**2)/(4.*MZ**4*sw**2) - (cw**2*ee**4*MH**2*vev**2)/(MZ**2*sw**2) + (3*ee**4*sw**2*vev**2)/cw**2 + (ee**4*MH**4*sw**2*vev**2)/(4.*cw**2*MZ**4) - (ee**4*MH**2*sw**2*vev**2)/(cw**2*MZ**2) + (3*ee**4*sw**4*vev**2)/(4.*cw**4) + (ee**4*MH**4*sw**4*vev**2)/(16.*cw**4*MZ**4) - (ee**4*MH**2*sw**4*vev**2)/(4.*cw**4*MZ**2))*cmath.sqrt(MH**4 - 4*MH**2*MZ**2))/(32.*cmath.pi*abs(MH)**3)'})
+
+Decay_Z = Decay(name = 'Decay_Z',
+                particle = P.Z,
+                partial_widths = {(P.W__minus__,P.W__plus__):'(((-12*cw**2*ee**2*MW**2)/sw**2 - (17*cw**2*ee**2*MZ**2)/sw**2 + (4*cw**2*ee**2*MZ**4)/(MW**2*sw**2) + (cw**2*ee**2*MZ**6)/(4.*MW**4*sw**2))*cmath.sqrt(-4*MW**2*MZ**2 + MZ**4))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.ve,P.ve__tilde__):'(MZ**2*(ee**2*MZ**2 + (cw**2*ee**2*MZ**2)/(2.*sw**2) + (ee**2*MZ**2*sw**2)/(2.*cw**2)))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.vm,P.vm__tilde__):'(MZ**2*(ee**2*MZ**2 + (cw**2*ee**2*MZ**2)/(2.*sw**2) + (ee**2*MZ**2*sw**2)/(2.*cw**2)))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.vt,P.vt__tilde__):'(MZ**2*(ee**2*MZ**2 + (cw**2*ee**2*MZ**2)/(2.*sw**2) + (ee**2*MZ**2*sw**2)/(2.*cw**2)))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.e__minus__,P.e__plus__):'(MZ**2*(-(ee**2*MZ**2) + (cw**2*ee**2*MZ**2)/(2.*sw**2) + (5*ee**2*MZ**2*sw**2)/(2.*cw**2)))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.mu__minus__,P.mu__plus__):'(MZ**2*(-(ee**2*MZ**2) + (cw**2*ee**2*MZ**2)/(2.*sw**2) + (5*ee**2*MZ**2*sw**2)/(2.*cw**2)))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.ta__minus__,P.ta__plus__):'((-5*ee**2*MTA**2 - ee**2*MZ**2 - (cw**2*ee**2*MTA**2)/(2.*sw**2) + (cw**2*ee**2*MZ**2)/(2.*sw**2) + (7*ee**2*MTA**2*sw**2)/(2.*cw**2) + (5*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*(-(ee**2*MZ**2) + (3*cw**2*ee**2*MZ**2)/(2.*sw**2) + (17*ee**2*MZ**2*sw**2)/(6.*cw**2)))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.c,P.c__tilde__):'(MZ**2*(-(ee**2*MZ**2) + (3*cw**2*ee**2*MZ**2)/(2.*sw**2) + (17*ee**2*MZ**2*sw**2)/(6.*cw**2)))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.t,P.t__tilde__):'((-11*ee**2*MT**2 - ee**2*MZ**2 - (3*cw**2*ee**2*MT**2)/(2.*sw**2) + (3*cw**2*ee**2*MZ**2)/(2.*sw**2) + (7*ee**2*MT**2*sw**2)/(6.*cw**2) + (17*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.d,P.d__tilde__):'(MZ**2*(ee**2*MZ**2 + (3*cw**2*ee**2*MZ**2)/(2.*sw**2) + (5*ee**2*MZ**2*sw**2)/(6.*cw**2)))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.s,P.s__tilde__):'(MZ**2*(ee**2*MZ**2 + (3*cw**2*ee**2*MZ**2)/(2.*sw**2) + (5*ee**2*MZ**2*sw**2)/(6.*cw**2)))/(48.*cmath.pi*abs(MZ)**3)',
+                                  (P.b,P.b__tilde__):'((-7*ee**2*MB**2 + ee**2*MZ**2 - (3*cw**2*ee**2*MB**2)/(2.*sw**2) + (3*cw**2*ee**2*MZ**2)/(2.*sw**2) - (17*ee**2*MB**2*sw**2)/(6.*cw**2) + (5*ee**2*MZ**2*sw**2)/(6.*cw**2))*cmath.sqrt(-4*MB**2*MZ**2 + MZ**4))/(48.*cmath.pi*abs(MZ)**3)'})
+
+Decay_W__plus__ = Decay(name = 'Decay_W__plus__',
+                        particle = P.W__plus__,
+                        partial_widths = {(P.ve,P.e__plus__):'(ee**2*MW**4)/(48.*cmath.pi*sw**2*abs(MW)**3)',
+                                          (P.vm,P.mu__plus__):'(ee**2*MW**4)/(48.*cmath.pi*sw**2*abs(MW)**3)',
+                                          (P.vt,P.ta__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)',
+                                          (P.u,P.d__tilde__):'(ee**2*MW**4)/(16.*cmath.pi*sw**2*abs(MW)**3)',
+                                          (P.c,P.s__tilde__):'(ee**2*MW**4)/(16.*cmath.pi*sw**2*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)'})
+
+Decay_ta__minus__ = Decay(name = 'Decay_ta__minus__',
+                          particle = P.ta__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_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_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_s0 = Decay(name = 'Decay_s0',
+                 particle = P.s0,
+                 partial_widths = {(P.H,P.H):'(((4*keta**2*MH**4)/vweak**2 - (4*keta**2*MH**2*Ms0**2)/vweak**2 + (keta**2*Ms0**4)/vweak**2)*cmath.sqrt(-4*MH**2*Ms0**2 + Ms0**4))/(32.*cmath.pi*abs(Ms0)**3)',
+                                   (P.W__minus__,P.W__plus__):'((-(gweak**2*keta**2*Ms0**2) + (gweak**2*keta**2*Ms0**4)/(4.*MW**2) + 3*gweak**2*keta**2*MW**2)*cmath.sqrt(Ms0**4 - 4*Ms0**2*MW**2))/(16.*cmath.pi*abs(Ms0)**3)',
+                                   (P.Z,P.Z):'((-((gweak**2*keta**2*Ms0**2)/cw**2) + (gweak**2*keta**2*Ms0**4)/(4.*cw**2*MZ**2) + (3*gweak**2*keta**2*MZ**2)/cw**2)*cmath.sqrt(Ms0**4 - 4*Ms0**2*MZ**2))/(32.*cmath.pi*abs(Ms0)**3)'})
+
diff --git a/CHresonance_neutral_scalar_UFO/feynrules/._Cabibbo.rst b/CHresonance_neutral_scalar_UFO/feynrules/._Cabibbo.rst
new file mode 100644
index 0000000000000000000000000000000000000000..ba703fdbd8abc8944b1d3aea228f0c866553cc6e
GIT binary patch
literal 193
zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aX%1)_y>WQ2;dkJ62#d1;RaACNXHBy
z)<o0Bh!7V|&d=3LEGWoH)hjGbEK1BP$;?Y-DAYFq0&7zvGYdmY!$j-g#I(esOzRqi
IVu%O>04LTTg#Z8m

literal 0
HcmV?d00001

diff --git a/CHresonance_neutral_scalar_UFO/feynrules/._DiagonalCKM.rst b/CHresonance_neutral_scalar_UFO/feynrules/._DiagonalCKM.rst
new file mode 100644
index 0000000000000000000000000000000000000000..f9849dba7cb194697962e91d9cb7b7cdbedd341e
GIT binary patch
literal 193
zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aX%1)_y>WQ2;dkJ62#d1;U-WiNXHBy
z)<o0Bh!7V|&d=3LEGWoH)hjGbEK1BP$;?Y-DAYFq0&7zvGYdmY!$j-g#I(esOzRqi
IVu%O>04O{kh5!Hn

literal 0
HcmV?d00001

diff --git a/CHresonance_neutral_scalar_UFO/feynrules/._Massless.rst b/CHresonance_neutral_scalar_UFO/feynrules/._Massless.rst
new file mode 100644
index 0000000000000000000000000000000000000000..46d242504858a98415ed18aba5f20aac48c90070
GIT binary patch
literal 193
zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aX%1)_y>WQ2;dkJ62#d1;TBLSNXHBy
z)<o0Bh!7V|&d=3LEGWoH)hjGbEK1BP$;?Y-DAYFq0&7zvGYdmY!$j-g#I(esOzRqi
IVu%O>04Sm#hX4Qo

literal 0
HcmV?d00001

diff --git a/CHresonance_neutral_scalar_UFO/feynrules/._Notebook.nb b/CHresonance_neutral_scalar_UFO/feynrules/._Notebook.nb
new file mode 100644
index 0000000000000000000000000000000000000000..6326e0f07c4b56bf4040056198300f6cfae35413
GIT binary patch
literal 82
zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}u>uf-_(4F-5aJpU;_vI~&L9BdVFCb9
Cy#}5D

literal 0
HcmV?d00001

diff --git a/CHresonance_neutral_scalar_UFO/feynrules/._SM.fr b/CHresonance_neutral_scalar_UFO/feynrules/._SM.fr
new file mode 100644
index 0000000000000000000000000000000000000000..aeaa9da34a2f77df68bdd5ad967f30e04105bee6
GIT binary patch
literal 193
zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aX%1)_y>WQ2;dkJ62#d1;SNwKNXHBy
z)<o0Bh!7V|&d=3LEGWoH)hjGbEK1BP$;?Y-DAYFq0&7zvGYdmY!$j-g#I(esOzRqi
IVu%O>04Z)Ci2wiq

literal 0
HcmV?d00001

diff --git a/CHresonance_neutral_scalar_UFO/feynrules/Cabibbo.rst b/CHresonance_neutral_scalar_UFO/feynrules/Cabibbo.rst
new file mode 100644
index 0000000..5402064
--- /dev/null
+++ b/CHresonance_neutral_scalar_UFO/feynrules/Cabibbo.rst
@@ -0,0 +1,16 @@
+(******************************************************************)
+(*     Restriction file for SM.fr                                 *)
+(*                                                                *)
+(*     All Yukawa couplings for light fermions (e,m,u,d,s)        *)
+(*     are put to zero.                                           *)
+(*                                                                *)
+(*     Only Cabibbo mixing is taken into account in CKM           *)
+(******************************************************************)
+
+M$Restrictions = {yl[i_] :> 0 /; (i === 1) || (i === 2),
+            yu[1] -> 0,
+            yd[i_] :> 0 /; (i === 1) || (i === 2),
+            CKM[3,3] -> 1,
+            CKM[i_,3] :> 0 /; (i === 1) || (i ===2),
+            CKM[3,i_] :> 0 /; (i === 1) || (i ===2)
+}
\ No newline at end of file
diff --git a/CHresonance_neutral_scalar_UFO/feynrules/DiagonalCKM.rst b/CHresonance_neutral_scalar_UFO/feynrules/DiagonalCKM.rst
new file mode 100644
index 0000000..00e8816
--- /dev/null
+++ b/CHresonance_neutral_scalar_UFO/feynrules/DiagonalCKM.rst
@@ -0,0 +1,11 @@
+(******************************************************************)
+(*     Restriction file for SM.fr                                 *)
+(*                                                                *)                                            
+(*     The CKM matrix is diagonal                                 *)
+(******************************************************************)
+
+M$Restrictions = {
+            CKM[i_,i_] -> 1,
+            CKM[i_?NumericQ, j_?NumericQ] :> 0 /; (i =!= j),
+            cabi -> 0
+}
diff --git a/CHresonance_neutral_scalar_UFO/feynrules/Massless.rst b/CHresonance_neutral_scalar_UFO/feynrules/Massless.rst
new file mode 100644
index 0000000..e8eeb32
--- /dev/null
+++ b/CHresonance_neutral_scalar_UFO/feynrules/Massless.rst
@@ -0,0 +1,26 @@
+(******************************************************************)
+(*     Restriction file for SM.fr                                                     *)
+(*                                                                                                *)                                            
+(*     Only the t and b quarks, and the tau lepton are massive    *)
+(******************************************************************)
+
+M$Restrictions = {
+          Me -> 0,
+	  yme->0,
+	  ye->0,
+          MMU -> 0,
+	  ymm->0,
+	  ym->0,
+          MU -> 0,
+	  ymup->0,
+	  yup->0,
+          MD -> 0,
+	  ymdo->0,
+	  ydo->0,
+          MS -> 0,
+	  yms->0,
+	  ys->0,
+          MC -> 0,
+          ymc-> 0,
+          yc -> 0
+}
diff --git a/CHresonance_neutral_scalar_UFO/feynrules/Notebook.nb b/CHresonance_neutral_scalar_UFO/feynrules/Notebook.nb
new file mode 100644
index 0000000..9e9ddd6
--- /dev/null
+++ b/CHresonance_neutral_scalar_UFO/feynrules/Notebook.nb
@@ -0,0 +1,1137 @@
+(* Content-type: application/vnd.wolfram.mathematica *)
+
+(*** Wolfram Notebook File ***)
+(* http://www.wolfram.com/nb *)
+
+(* CreatedBy='Mathematica 8.0' *)
+
+(*CacheID: 234*)
+(* Internal cache information:
+NotebookFileLineBreakTest
+NotebookFileLineBreakTest
+NotebookDataPosition[       157,          7]
+NotebookDataLength[     48082,       1128]
+NotebookOptionsPosition[     43974,        996]
+NotebookOutlinePosition[     44329,       1012]
+CellTagsIndexPosition[     44286,       1009]
+WindowFrame->Normal*)
+
+(* Beginning of Notebook Content *)
+Notebook[{
+
+Cell[CellGroupData[{
+Cell["\<\
+Feynrules - Composite Higgs Resonances\
+\>", "Title",
+ CellChangeTimes->{{3.605618752716743*^9, 3.605618757950574*^9}, {
+  3.6058757722119417`*^9, 3.605875777268808*^9}},
+ FontSize->24,
+ FontColor->GrayLevel[1],
+ Background->GrayLevel[0]],
+
+Cell[BoxData[
+ RowBox[{"Quit", "[", "]"}]], "Input",
+ CellChangeTimes->{{3.605618861320875*^9, 3.605618880207635*^9}, {
+  3.605635005168662*^9, 3.6056350058380632`*^9}}],
+
+Cell[BoxData[
+ RowBox[{
+  RowBox[{"FR$Parallel", " ", "=", " ", "False"}], ";"}]], "Input",
+ CellChangeTimes->{{3.605619001829976*^9, 3.6056190561681433`*^9}, {
+  3.605619339401984*^9, 3.605619342273584*^9}, {3.60563473959864*^9, 
+  3.60563474030869*^9}}],
+
+Cell[BoxData[
+ RowBox[{
+  RowBox[{"$FeynRulesPath", " ", "=", " ", 
+   RowBox[{
+   "SetDirectory", "[", "\"\</Users/mattlow/Software/FeynRules2/\>\"", 
+    "]"}]}], ";"}]], "Input"],
+
+Cell[CellGroupData[{
+
+Cell[BoxData[
+ RowBox[{"<<", " ", "FeynRules`"}]], "Input",
+ CellChangeTimes->{{3.605619060724291*^9, 3.6056190658268213`*^9}}],
+
+Cell[CellGroupData[{
+
+Cell[BoxData["\<\" - FeynRules - \"\>"], "Print",
+ CellChangeTimes->{3.605875836985937*^9, 3.605875894272051*^9, 
+  3.605882343522704*^9}],
+
+Cell[BoxData[
+ InterpretationBox[
+  RowBox[{"\<\"Version: \"\>", "\[InvisibleSpace]", "\<\"2.0.2\"\>", 
+   "\[InvisibleSpace]", 
+   RowBox[{"\<\" (\"\>", " ", "\<\"21 October 2013\"\>"}], 
+   "\[InvisibleSpace]", "\<\").\"\>"}],
+  SequenceForm["Version: ", "2.0.2", " (" "21 October 2013", ")."],
+  Editable->False]], "Print",
+ CellChangeTimes->{3.605875836985937*^9, 3.605875894272051*^9, 
+  3.605882343527142*^9}],
+
+Cell[BoxData["\<\"Authors: A. Alloul, N. Christensen, C. Degrande, C. Duhr, \
+B. Fuks\"\>"], "Print",
+ CellChangeTimes->{3.605875836985937*^9, 3.605875894272051*^9, 
+  3.6058823435312967`*^9}],
+
+Cell[BoxData["\<\" \"\>"], "Print",
+ CellChangeTimes->{3.605875836985937*^9, 3.605875894272051*^9, 
+  3.605882343535253*^9}],
+
+Cell[BoxData["\<\"Please cite:\"\>"], "Print",
+ CellChangeTimes->{3.605875836985937*^9, 3.605875894272051*^9, 
+  3.605882343539241*^9}],
+
+Cell[BoxData["\<\"    - arXiv:1310.1921;\"\>"], "Print",
+ CellChangeTimes->{3.605875836985937*^9, 3.605875894272051*^9, 
+  3.6058823435431843`*^9}],
+
+Cell[BoxData["\<\"    - Comput.Phys.Commun.180:1614-1641,2009 \
+(arXiv:0806.4194).\"\>"], "Print",
+ CellChangeTimes->{3.605875836985937*^9, 3.605875894272051*^9, 
+  3.605882343547357*^9}],
+
+Cell[BoxData["\<\" \"\>"], "Print",
+ CellChangeTimes->{3.605875836985937*^9, 3.605875894272051*^9, 
+  3.6058823435516768`*^9}],
+
+Cell[BoxData["\<\"http://feynrules.phys.ucl.ac.be\"\>"], "Print",
+ CellChangeTimes->{3.605875836985937*^9, 3.605875894272051*^9, 
+  3.605882343556036*^9}],
+
+Cell[BoxData["\<\" \"\>"], "Print",
+ CellChangeTimes->{3.605875836985937*^9, 3.605875894272051*^9, 
+  3.6058823435600643`*^9}],
+
+Cell[BoxData["\<\"The FeynRules palette can be opened using the command \
+FRPalette[].\"\>"], "Print",
+ CellChangeTimes->{3.605875836985937*^9, 3.605875894272051*^9, 
+  3.60588234356409*^9}]
+}, Open  ]],
+
+Cell[BoxData[
+ RowBox[{
+  StyleBox[
+   RowBox[{"Get", "::", "noopen"}], "MessageName"], 
+  RowBox[{
+  ":", " "}], "\<\"Cannot open \[NoBreak]\\!\\(\\\"FAToFR.m\\\"\\)\[NoBreak]. \
+\\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", ButtonStyle->\\\"Link\\\", \
+ButtonFrame->None, ButtonData:>\\\"paclet:ref/message/General/noopen\\\", \
+ButtonNote -> \\\"Get::noopen\\\"]\\)\"\>"}]], "Message", "MSG",
+ CellChangeTimes->{{3.605619585572277*^9, 3.6056196077975883`*^9}, 
+   3.60561985205474*^9, 3.605622418597084*^9, 3.605622470939652*^9, 
+   3.6056225643872128`*^9, 3.605622678178093*^9, 3.605622772301466*^9, 
+   3.605622914978488*^9, 3.605632947062608*^9, 3.60563319057358*^9, 
+   3.605633274960883*^9, 3.605633321355266*^9, 3.605633438275936*^9, 
+   3.6056347456852093`*^9, {3.6056350124966793`*^9, 3.605635039259606*^9}, 
+   3.605637108779278*^9, {3.605637195679698*^9, 3.605637225028183*^9}, 
+   3.605637287992268*^9, 3.605637342560418*^9, 3.605637481033449*^9, 
+   3.605637539495367*^9, 3.605637610404883*^9, 3.6056376582399263`*^9, 
+   3.605637702718152*^9, 3.60565295699905*^9, 3.6056531223195457`*^9, 
+   3.6056532842527037`*^9, 3.6056539820680227`*^9, 3.605654206239273*^9, {
+   3.605654290239663*^9, 3.6056542944258842`*^9}, 3.605656362606439*^9, 
+   3.6056582925990067`*^9, 3.605658508408112*^9, {3.605658683656948*^9, 
+   3.605658709791214*^9}, 3.605658784466889*^9, 3.6056595237947407`*^9, 
+   3.6056598816239147`*^9, 3.605661357905642*^9, 3.605665013304759*^9, 
+   3.605665247749601*^9, 3.605665442368574*^9, {3.605875816573057*^9, 
+   3.605875839906644*^9}, 3.605875895188623*^9, 3.605882344549234*^9}]
+}, Open  ]],
+
+Cell[CellGroupData[{
+
+Cell["Load Model ", "Section",
+ CellChangeTimes->{{3.6056192692699947`*^9, 3.605619290461377*^9}, {
+   3.605635085707984*^9, 3.605635087980074*^9}, 3.605875784340205*^9}],
+
+Cell[CellGroupData[{
+
+Cell[BoxData[{
+ RowBox[{"SetDirectory", "[", 
+  "\"\</Users/mattlow/Software/FeynRules2/Models/Model_CHresonance\>\"", 
+  "]"}], "\[IndentingNewLine]", 
+ RowBox[{"LoadModel", "[", 
+  RowBox[{"\"\<SM.fr\>\"", ",", "\"\<neutral_scalar.fr\>\""}], 
+  "]"}], "\[IndentingNewLine]", 
+ RowBox[{"LoadRestriction", "[", 
+  RowBox[{"\"\<DiagonalCKM.rst\>\"", ",", "\"\<Massless.rst\>\""}], 
+  "]"}]}], "Input",
+ CellChangeTimes->{{3.605619424691307*^9, 3.6056194362970877`*^9}, {
+   3.6056195317958803`*^9, 3.605619568447425*^9}, {3.6056224948230658`*^9, 
+   3.605622541801384*^9}, {3.60562265570363*^9, 3.605622665292665*^9}, 
+   3.6056332001464043`*^9, {3.6058758508413973`*^9, 3.605875859894517*^9}}],
+
+Cell[BoxData["\<\"/Users/mattlow/Software/FeynRules2/Models/Model_CHresonance\
+\"\>"], "Output",
+ CellChangeTimes->{{3.6056196162034683`*^9, 3.605619643073296*^9}, 
+   3.605619861571529*^9, 3.6056224285835543`*^9, {3.605622526112595*^9, 
+   3.605622568823061*^9}, 3.6056226814832*^9, 3.605622775100486*^9, 
+   3.60562291710483*^9, 3.60563294983956*^9, 3.6056331940543613`*^9, 
+   3.605633276844449*^9, 3.605633402448938*^9, 3.605633439866679*^9, 
+   3.605634859906128*^9, {3.605635015189953*^9, 3.605635042654422*^9}, 
+   3.605637112245749*^9, {3.605637198372223*^9, 3.605637227469658*^9}, 
+   3.605656364074188*^9, 3.605658686433711*^9, {3.6058758605426702`*^9, 
+   3.6058758982809267`*^9}, 3.60588234818725*^9}],
+
+Cell[CellGroupData[{
+
+Cell[BoxData["\<\"Merging model-files...\"\>"], "Print",
+ CellChangeTimes->{
+  3.605619616741845*^9, 3.6056196504421997`*^9, 3.605619861575075*^9, 
+   3.6056224286336527`*^9, {3.605622526115447*^9, 3.605622568856142*^9}, 
+   3.6056226814865217`*^9, 3.605622775103384*^9, 3.605622917108451*^9, 
+   3.605632949842614*^9, 3.6056331940577917`*^9, 3.605633276847851*^9, 
+   3.605633402452071*^9, 3.605633439870932*^9, 3.605634859909452*^9, {
+   3.6056350151932497`*^9, 3.6056350426578293`*^9}, 3.605637112250169*^9, {
+   3.60563719837819*^9, 3.6056372274730253`*^9}, 3.605656364078393*^9, 
+   3.6056586864378366`*^9, {3.605875860546157*^9, 3.605875898284733*^9}, 
+   3.605882348191485*^9}],
+
+Cell[BoxData["\<\"This model implementation was created by\"\>"], "Print",
+ CellChangeTimes->{
+  3.605619616741845*^9, 3.6056196504421997`*^9, 3.605619861575075*^9, 
+   3.6056224286336527`*^9, {3.605622526115447*^9, 3.605622568856142*^9}, 
+   3.6056226814865217`*^9, 3.605622775103384*^9, 3.605622917108451*^9, 
+   3.605632949842614*^9, 3.6056331940577917`*^9, 3.605633276847851*^9, 
+   3.605633402452071*^9, 3.605633439870932*^9, 3.605634859909452*^9, {
+   3.6056350151932497`*^9, 3.6056350426578293`*^9}, 3.605637112250169*^9, {
+   3.60563719837819*^9, 3.6056372274730253`*^9}, 3.605656364078393*^9, 
+   3.6056586864378366`*^9, {3.605875860546157*^9, 3.605875898284733*^9}, 
+   3.605882348238291*^9}],
+
+Cell[BoxData["\<\"N. Christensen\"\>"], "Print",
+ CellChangeTimes->{
+  3.605619616741845*^9, 3.6056196504421997`*^9, 3.605619861575075*^9, 
+   3.6056224286336527`*^9, {3.605622526115447*^9, 3.605622568856142*^9}, 
+   3.6056226814865217`*^9, 3.605622775103384*^9, 3.605622917108451*^9, 
+   3.605632949842614*^9, 3.6056331940577917`*^9, 3.605633276847851*^9, 
+   3.605633402452071*^9, 3.605633439870932*^9, 3.605634859909452*^9, {
+   3.6056350151932497`*^9, 3.6056350426578293`*^9}, 3.605637112250169*^9, {
+   3.60563719837819*^9, 3.6056372274730253`*^9}, 3.605656364078393*^9, 
+   3.6056586864378366`*^9, {3.605875860546157*^9, 3.605875898284733*^9}, 
+   3.6058823482424088`*^9}],
+
+Cell[BoxData["\<\"C. Duhr\"\>"], "Print",
+ CellChangeTimes->{
+  3.605619616741845*^9, 3.6056196504421997`*^9, 3.605619861575075*^9, 
+   3.6056224286336527`*^9, {3.605622526115447*^9, 3.605622568856142*^9}, 
+   3.6056226814865217`*^9, 3.605622775103384*^9, 3.605622917108451*^9, 
+   3.605632949842614*^9, 3.6056331940577917`*^9, 3.605633276847851*^9, 
+   3.605633402452071*^9, 3.605633439870932*^9, 3.605634859909452*^9, {
+   3.6056350151932497`*^9, 3.6056350426578293`*^9}, 3.605637112250169*^9, {
+   3.60563719837819*^9, 3.6056372274730253`*^9}, 3.605656364078393*^9, 
+   3.6056586864378366`*^9, {3.605875860546157*^9, 3.605875898284733*^9}, 
+   3.6058823482463627`*^9}],
+
+Cell[BoxData["\<\"B. Fuks\"\>"], "Print",
+ CellChangeTimes->{
+  3.605619616741845*^9, 3.6056196504421997`*^9, 3.605619861575075*^9, 
+   3.6056224286336527`*^9, {3.605622526115447*^9, 3.605622568856142*^9}, 
+   3.6056226814865217`*^9, 3.605622775103384*^9, 3.605622917108451*^9, 
+   3.605632949842614*^9, 3.6056331940577917`*^9, 3.605633276847851*^9, 
+   3.605633402452071*^9, 3.605633439870932*^9, 3.605634859909452*^9, {
+   3.6056350151932497`*^9, 3.6056350426578293`*^9}, 3.605637112250169*^9, {
+   3.60563719837819*^9, 3.6056372274730253`*^9}, 3.605656364078393*^9, 
+   3.6056586864378366`*^9, {3.605875860546157*^9, 3.605875898284733*^9}, 
+   3.605882348250326*^9}],
+
+Cell[BoxData[
+ InterpretationBox[
+  RowBox[{"\<\"Model Version: \"\>", "\[InvisibleSpace]", "\<\"1.4.5\"\>"}],
+  SequenceForm["Model Version: ", "1.4.5"],
+  Editable->False]], "Print",
+ CellChangeTimes->{
+  3.605619616741845*^9, 3.6056196504421997`*^9, 3.605619861575075*^9, 
+   3.6056224286336527`*^9, {3.605622526115447*^9, 3.605622568856142*^9}, 
+   3.6056226814865217`*^9, 3.605622775103384*^9, 3.605622917108451*^9, 
+   3.605632949842614*^9, 3.6056331940577917`*^9, 3.605633276847851*^9, 
+   3.605633402452071*^9, 3.605633439870932*^9, 3.605634859909452*^9, {
+   3.6056350151932497`*^9, 3.6056350426578293`*^9}, 3.605637112250169*^9, {
+   3.60563719837819*^9, 3.6056372274730253`*^9}, 3.605656364078393*^9, 
+   3.6056586864378366`*^9, {3.605875860546157*^9, 3.605875898284733*^9}, 
+   3.6058823482544327`*^9}],
+
+Cell[BoxData["\<\"http://feynrules.phys.ucl.ac.be/view/Main/StandardModel\"\>\
+"], "Print",
+ CellChangeTimes->{
+  3.605619616741845*^9, 3.6056196504421997`*^9, 3.605619861575075*^9, 
+   3.6056224286336527`*^9, {3.605622526115447*^9, 3.605622568856142*^9}, 
+   3.6056226814865217`*^9, 3.605622775103384*^9, 3.605622917108451*^9, 
+   3.605632949842614*^9, 3.6056331940577917`*^9, 3.605633276847851*^9, 
+   3.605633402452071*^9, 3.605633439870932*^9, 3.605634859909452*^9, {
+   3.6056350151932497`*^9, 3.6056350426578293`*^9}, 3.605637112250169*^9, {
+   3.60563719837819*^9, 3.6056372274730253`*^9}, 3.605656364078393*^9, 
+   3.6056586864378366`*^9, {3.605875860546157*^9, 3.605875898284733*^9}, 
+   3.6058823482585087`*^9}],
+
+Cell[BoxData["\<\"For more information, type ModelInformation[].\"\>"], \
+"Print",
+ CellChangeTimes->{
+  3.605619616741845*^9, 3.6056196504421997`*^9, 3.605619861575075*^9, 
+   3.6056224286336527`*^9, {3.605622526115447*^9, 3.605622568856142*^9}, 
+   3.6056226814865217`*^9, 3.605622775103384*^9, 3.605622917108451*^9, 
+   3.605632949842614*^9, 3.6056331940577917`*^9, 3.605633276847851*^9, 
+   3.605633402452071*^9, 3.605633439870932*^9, 3.605634859909452*^9, {
+   3.6056350151932497`*^9, 3.6056350426578293`*^9}, 3.605637112250169*^9, {
+   3.60563719837819*^9, 3.6056372274730253`*^9}, 3.605656364078393*^9, 
+   3.6056586864378366`*^9, {3.605875860546157*^9, 3.605875898284733*^9}, 
+   3.6058823482624826`*^9}],
+
+Cell[BoxData["\<\"\"\>"], "Print",
+ CellChangeTimes->{
+  3.605619616741845*^9, 3.6056196504421997`*^9, 3.605619861575075*^9, 
+   3.6056224286336527`*^9, {3.605622526115447*^9, 3.605622568856142*^9}, 
+   3.6056226814865217`*^9, 3.605622775103384*^9, 3.605622917108451*^9, 
+   3.605632949842614*^9, 3.6056331940577917`*^9, 3.605633276847851*^9, 
+   3.605633402452071*^9, 3.605633439870932*^9, 3.605634859909452*^9, {
+   3.6056350151932497`*^9, 3.6056350426578293`*^9}, 3.605637112250169*^9, {
+   3.60563719837819*^9, 3.6056372274730253`*^9}, 3.605656364078393*^9, 
+   3.6056586864378366`*^9, {3.605875860546157*^9, 3.605875898284733*^9}, 
+   3.605882348266357*^9}],
+
+Cell[BoxData["\<\"   - Loading particle classes.\"\>"], "Print",
+ CellChangeTimes->{
+  3.605619616741845*^9, 3.6056196504421997`*^9, 3.605619861575075*^9, 
+   3.6056224286336527`*^9, {3.605622526115447*^9, 3.605622568856142*^9}, 
+   3.6056226814865217`*^9, 3.605622775103384*^9, 3.605622917108451*^9, 
+   3.605632949842614*^9, 3.6056331940577917`*^9, 3.605633276847851*^9, 
+   3.605633402452071*^9, 3.605633439870932*^9, 3.605634859909452*^9, {
+   3.6056350151932497`*^9, 3.6056350426578293`*^9}, 3.605637112250169*^9, {
+   3.60563719837819*^9, 3.6056372274730253`*^9}, 3.605656364078393*^9, 
+   3.6056586864378366`*^9, {3.605875860546157*^9, 3.605875898284733*^9}, 
+   3.605882348270246*^9}],
+
+Cell[BoxData["\<\"   - Loading gauge group classes.\"\>"], "Print",
+ CellChangeTimes->{
+  3.605619616741845*^9, 3.6056196504421997`*^9, 3.605619861575075*^9, 
+   3.6056224286336527`*^9, {3.605622526115447*^9, 3.605622568856142*^9}, 
+   3.6056226814865217`*^9, 3.605622775103384*^9, 3.605622917108451*^9, 
+   3.605632949842614*^9, 3.6056331940577917`*^9, 3.605633276847851*^9, 
+   3.605633402452071*^9, 3.605633439870932*^9, 3.605634859909452*^9, {
+   3.6056350151932497`*^9, 3.6056350426578293`*^9}, 3.605637112250169*^9, {
+   3.60563719837819*^9, 3.6056372274730253`*^9}, 3.605656364078393*^9, 
+   3.6056586864378366`*^9, {3.605875860546157*^9, 3.605875898284733*^9}, 
+   3.605882348475081*^9}],
+
+Cell[BoxData["\<\"   - Loading parameter classes.\"\>"], "Print",
+ CellChangeTimes->{
+  3.605619616741845*^9, 3.6056196504421997`*^9, 3.605619861575075*^9, 
+   3.6056224286336527`*^9, {3.605622526115447*^9, 3.605622568856142*^9}, 
+   3.6056226814865217`*^9, 3.605622775103384*^9, 3.605622917108451*^9, 
+   3.605632949842614*^9, 3.6056331940577917`*^9, 3.605633276847851*^9, 
+   3.605633402452071*^9, 3.605633439870932*^9, 3.605634859909452*^9, {
+   3.6056350151932497`*^9, 3.6056350426578293`*^9}, 3.605637112250169*^9, {
+   3.60563719837819*^9, 3.6056372274730253`*^9}, 3.605656364078393*^9, 
+   3.6056586864378366`*^9, {3.605875860546157*^9, 3.605875898284733*^9}, 
+   3.605882348508407*^9}],
+
+Cell[BoxData[
+ InterpretationBox[
+  RowBox[{"\<\"\\nModel \"\>", 
+   "\[InvisibleSpace]", "\<\"CHresonance_neutral_scalar\"\>", 
+   "\[InvisibleSpace]", "\<\" loaded.\"\>"}],
+  SequenceForm["\nModel ", "CHresonance_neutral_scalar", " loaded."],
+  Editable->False]], "Print",
+ CellChangeTimes->{
+  3.605619616741845*^9, 3.6056196504421997`*^9, 3.605619861575075*^9, 
+   3.6056224286336527`*^9, {3.605622526115447*^9, 3.605622568856142*^9}, 
+   3.6056226814865217`*^9, 3.605622775103384*^9, 3.605622917108451*^9, 
+   3.605632949842614*^9, 3.6056331940577917`*^9, 3.605633276847851*^9, 
+   3.605633402452071*^9, 3.605633439870932*^9, 3.605634859909452*^9, {
+   3.6056350151932497`*^9, 3.6056350426578293`*^9}, 3.605637112250169*^9, {
+   3.60563719837819*^9, 3.6056372274730253`*^9}, 3.605656364078393*^9, 
+   3.6056586864378366`*^9, {3.605875860546157*^9, 3.605875898284733*^9}, 
+   3.6058823486639442`*^9}],
+
+Cell[BoxData[
+ InterpretationBox[
+  RowBox[{"\<\"Loading restrictions from \"\>", 
+   "\[InvisibleSpace]", "\<\"DiagonalCKM.rst\"\>", 
+   "\[InvisibleSpace]", "\<\" : \"\>", "\[InvisibleSpace]", 
+   DynamicBox[ToBoxes[PRIVATE`FR$restrictionCounter, StandardForm],
+    ImageSizeCache->{14., {1., 8.}}], "\[InvisibleSpace]", "\<\" / \"\>", 
+   "\[InvisibleSpace]", "3"}],
+  SequenceForm["Loading restrictions from ", "DiagonalCKM.rst", " : ", 
+   Dynamic[PRIVATE`FR$restrictionCounter], " / ", 3],
+  Editable->False]], "Print",
+ CellChangeTimes->{
+  3.605619616741845*^9, 3.6056196504421997`*^9, 3.605619861575075*^9, 
+   3.6056224286336527`*^9, {3.605622526115447*^9, 3.605622568856142*^9}, 
+   3.6056226814865217`*^9, 3.605622775103384*^9, 3.605622917108451*^9, 
+   3.605632949842614*^9, 3.6056331940577917`*^9, 3.605633276847851*^9, 
+   3.605633402452071*^9, 3.605633439870932*^9, 3.605634859909452*^9, {
+   3.6056350151932497`*^9, 3.6056350426578293`*^9}, 3.605637112250169*^9, {
+   3.60563719837819*^9, 3.6056372274730253`*^9}, 3.605656364078393*^9, 
+   3.6056586864378366`*^9, {3.605875860546157*^9, 3.605875898284733*^9}, 
+   3.60588234873158*^9}],
+
+Cell[BoxData[
+ InterpretationBox[
+  RowBox[{"\<\"Loading restrictions from \"\>", 
+   "\[InvisibleSpace]", "\<\"Massless.rst\"\>", 
+   "\[InvisibleSpace]", "\<\" : \"\>", "\[InvisibleSpace]", 
+   DynamicBox[ToBoxes[PRIVATE`FR$restrictionCounter, StandardForm],
+    ImageSizeCache->{14., {1., 8.}}], "\[InvisibleSpace]", "\<\" / \"\>", 
+   "\[InvisibleSpace]", "18"}],
+  SequenceForm["Loading restrictions from ", "Massless.rst", " : ", 
+   Dynamic[PRIVATE`FR$restrictionCounter], " / ", 18],
+  Editable->False]], "Print",
+ CellChangeTimes->{
+  3.605619616741845*^9, 3.6056196504421997`*^9, 3.605619861575075*^9, 
+   3.6056224286336527`*^9, {3.605622526115447*^9, 3.605622568856142*^9}, 
+   3.6056226814865217`*^9, 3.605622775103384*^9, 3.605622917108451*^9, 
+   3.605632949842614*^9, 3.6056331940577917`*^9, 3.605633276847851*^9, 
+   3.605633402452071*^9, 3.605633439870932*^9, 3.605634859909452*^9, {
+   3.6056350151932497`*^9, 3.6056350426578293`*^9}, 3.605637112250169*^9, {
+   3.60563719837819*^9, 3.6056372274730253`*^9}, 3.605656364078393*^9, 
+   3.6056586864378366`*^9, {3.605875860546157*^9, 3.605875898284733*^9}, 
+   3.6058823488115664`*^9}],
+
+Cell[BoxData["\<\"Restrictions loaded.\"\>"], "Print",
+ CellChangeTimes->{
+  3.605619616741845*^9, 3.6056196504421997`*^9, 3.605619861575075*^9, 
+   3.6056224286336527`*^9, {3.605622526115447*^9, 3.605622568856142*^9}, 
+   3.6056226814865217`*^9, 3.605622775103384*^9, 3.605622917108451*^9, 
+   3.605632949842614*^9, 3.6056331940577917`*^9, 3.605633276847851*^9, 
+   3.605633402452071*^9, 3.605633439870932*^9, 3.605634859909452*^9, {
+   3.6056350151932497`*^9, 3.6056350426578293`*^9}, 3.605637112250169*^9, {
+   3.60563719837819*^9, 3.6056372274730253`*^9}, 3.605656364078393*^9, 
+   3.6056586864378366`*^9, {3.605875860546157*^9, 3.605875898284733*^9}, 
+   3.605882348815343*^9}]
+}, Open  ]]
+}, Open  ]]
+}, Open  ]],
+
+Cell[CellGroupData[{
+
+Cell["Check Model", "Section",
+ CellChangeTimes->{{3.605623086167871*^9, 3.6056231049293633`*^9}, 
+   3.605635092783983*^9, 3.605875903677682*^9}],
+
+Cell[CellGroupData[{
+
+Cell[BoxData[{
+ RowBox[{"CheckMassSpectrum", "[", "Lscalar", "]"}], "\[IndentingNewLine]", 
+ RowBox[{
+  RowBox[{"CheckHermiticity", "[", "Lscalar", "]"}], ";"}]}], "Input",
+ CellChangeTimes->{{3.605619622855464*^9, 3.6056196232911158`*^9}, {
+   3.605619982287343*^9, 3.605619987388823*^9}, {3.605620054327195*^9, 
+   3.605620085036086*^9}, {3.605622638451754*^9, 3.605622646849626*^9}, {
+   3.60562268863967*^9, 3.605622718368464*^9}, {3.6056227788700457`*^9, 
+   3.60562278929569*^9}, {3.605622851705021*^9, 3.6056228520710707`*^9}, {
+   3.605622922349184*^9, 3.605622928774396*^9}, {3.605622958918388*^9, 
+   3.605622964678646*^9}, {3.605622998944463*^9, 3.60562300546445*^9}, {
+   3.6056329595409737`*^9, 3.60563296304221*^9}, {3.605656367479803*^9, 
+   3.6056563806305923`*^9}, 3.605658690688363*^9, {3.605875911163392*^9, 
+   3.6058759147629223`*^9}}],
+
+Cell[CellGroupData[{
+
+Cell[BoxData[
+ InterpretationBox[
+  RowBox[{"\<\"Neglecting all terms with more than \"\>", 
+   "\[InvisibleSpace]", "\<\"2\"\>", 
+   "\[InvisibleSpace]", "\<\" particles.\"\>"}],
+  SequenceForm["Neglecting all terms with more than ", "2", " particles."],
+  Editable->False]], "Print",
+ CellChangeTimes->{
+  3.6056229291812897`*^9, 3.605622965269404*^9, {3.6056229995035*^9, 
+   3.605623006396628*^9}, {3.6056329541402884`*^9, 3.6056329635693913`*^9}, 
+   3.605633203461426*^9, 3.605633279819338*^9, 3.605633405717062*^9, 
+   3.605633445043635*^9, 3.60563486324809*^9, 3.605635045897534*^9, {
+   3.605637201873412*^9, 3.605637230937489*^9}, 3.605656382532639*^9, 
+   3.605658691840357*^9, 3.6058759152676086`*^9, 3.605882351286916*^9}],
+
+Cell[BoxData["\<\"All mass terms are diagonal.\"\>"], "Print",
+ CellChangeTimes->{
+  3.6056229291812897`*^9, 3.605622965269404*^9, {3.6056229995035*^9, 
+   3.605623006396628*^9}, {3.6056329541402884`*^9, 3.6056329635693913`*^9}, 
+   3.605633203461426*^9, 3.605633279819338*^9, 3.605633405717062*^9, 
+   3.605633445043635*^9, 3.60563486324809*^9, 3.605635045897534*^9, {
+   3.605637201873412*^9, 3.605637230937489*^9}, 3.605656382532639*^9, 
+   3.605658691840357*^9, 3.6058759152676086`*^9, 3.6058823512904463`*^9}],
+
+Cell[BoxData["\<\"Getting mass spectrum.\"\>"], "Print",
+ CellChangeTimes->{
+  3.6056229291812897`*^9, 3.605622965269404*^9, {3.6056229995035*^9, 
+   3.605623006396628*^9}, {3.6056329541402884`*^9, 3.6056329635693913`*^9}, 
+   3.605633203461426*^9, 3.605633279819338*^9, 3.605633405717062*^9, 
+   3.605633445043635*^9, 3.60563486324809*^9, 3.605635045897534*^9, {
+   3.605637201873412*^9, 3.605637230937489*^9}, 3.605656382532639*^9, 
+   3.605658691840357*^9, 3.6058759152676086`*^9, 3.605882351322145*^9}],
+
+Cell[BoxData["\<\"Checking for less then 0.1% agreement with model file \
+values.\"\>"], "Print",
+ CellChangeTimes->{
+  3.6056229291812897`*^9, 3.605622965269404*^9, {3.6056229995035*^9, 
+   3.605623006396628*^9}, {3.6056329541402884`*^9, 3.6056329635693913`*^9}, 
+   3.605633203461426*^9, 3.605633279819338*^9, 3.605633405717062*^9, 
+   3.605633445043635*^9, 3.60563486324809*^9, 3.605635045897534*^9, {
+   3.605637201873412*^9, 3.605637230937489*^9}, 3.605656382532639*^9, 
+   3.605658691840357*^9, 3.6058759152676086`*^9, 3.605882351325905*^9}]
+}, Open  ]],
+
+Cell[BoxData[
+ TagBox[GridBox[{
+    {"\<\"Particle\"\>", "\<\"Analytic value\"\>", "\<\"Numerical value\"\>", \
+"\<\"Model-file value\"\>"},
+    {"s0", 
+     SqrtBox[
+      SuperscriptBox["Ms0", "2"]], "1000.`", "1000.`"}
+   },
+   GridBoxAlignment->{
+    "Columns" -> {{Left}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, 
+     "RowsIndexed" -> {}},
+   GridBoxSpacings->{"Columns" -> {
+       Offset[0.27999999999999997`], {
+        Offset[2.0999999999999996`]}, 
+       Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
+       Offset[0.2], {
+        Offset[0.4]}, 
+       Offset[0.2]}, "RowsIndexed" -> {}}],
+  Function[BoxForm`e$, 
+   TableForm[BoxForm`e$]]]], "Output",
+ CellChangeTimes->{
+  3.605623006536682*^9, {3.605632954179488*^9, 3.605632963736952*^9}, 
+   3.605633203613308*^9, 3.605633279970613*^9, 3.605633405866434*^9, 
+   3.605633445195354*^9, 3.6056348633652163`*^9, 3.605635046055908*^9, {
+   3.605637202024962*^9, 3.6056372311093893`*^9}, 3.605656382681074*^9, 
+   3.605658691987759*^9, 3.60587591541451*^9, 3.605882351391329*^9}],
+
+Cell[CellGroupData[{
+
+Cell[BoxData["\<\"Checking for hermiticity by calculating the Feynman rules \
+contained in L-HC[L].\"\>"], "Print",
+ CellChangeTimes->{
+  3.6056229291812897`*^9, 3.605622965269404*^9, {3.6056229995035*^9, 
+   3.605623006396628*^9}, {3.6056329541402884`*^9, 3.6056329635693913`*^9}, 
+   3.605633203461426*^9, 3.605633279819338*^9, 3.605633405717062*^9, 
+   3.605633445043635*^9, 3.60563486324809*^9, 3.605635045897534*^9, {
+   3.605637201873412*^9, 3.605637230937489*^9}, 3.605656382532639*^9, 
+   3.605658691840357*^9, 3.6058759152676086`*^9, 3.605882351394699*^9}],
+
+Cell[BoxData["\<\"If the lagrangian is hermitian, then the number of vertices \
+should be zero.\"\>"], "Print",
+ CellChangeTimes->{
+  3.6056229291812897`*^9, 3.605622965269404*^9, {3.6056229995035*^9, 
+   3.605623006396628*^9}, {3.6056329541402884`*^9, 3.6056329635693913`*^9}, 
+   3.605633203461426*^9, 3.605633279819338*^9, 3.605633405717062*^9, 
+   3.605633445043635*^9, 3.60563486324809*^9, 3.605635045897534*^9, {
+   3.605637201873412*^9, 3.605637230937489*^9}, 3.605656382532639*^9, 
+   3.605658691840357*^9, 3.6058759152676086`*^9, 3.605882351397386*^9}],
+
+Cell[BoxData[
+ StyleBox["\<\"Starting Feynman rule calculation.\"\>",
+  StripOnInput->False,
+  LineColor->RGBColor[1, 0.5, 0],
+  FrontFaceColor->RGBColor[1, 0.5, 0],
+  BackFaceColor->RGBColor[1, 0.5, 0],
+  GraphicsColor->RGBColor[1, 0.5, 0],
+  FontWeight->Bold,
+  FontColor->RGBColor[1, 0.5, 0]]], "Print",
+ CellChangeTimes->{
+  3.6056229291812897`*^9, 3.605622965269404*^9, {3.6056229995035*^9, 
+   3.605623006396628*^9}, {3.6056329541402884`*^9, 3.6056329635693913`*^9}, 
+   3.605633203461426*^9, 3.605633279819338*^9, 3.605633405717062*^9, 
+   3.605633445043635*^9, 3.60563486324809*^9, 3.605635045897534*^9, {
+   3.605637201873412*^9, 3.605637230937489*^9}, 3.605656382532639*^9, 
+   3.605658691840357*^9, 3.6058759152676086`*^9, 3.60588235148717*^9}],
+
+Cell[BoxData["\<\"Expanding the Lagrangian...\"\>"], "Print",
+ CellChangeTimes->{
+  3.6056229291812897`*^9, 3.605622965269404*^9, {3.6056229995035*^9, 
+   3.605623006396628*^9}, {3.6056329541402884`*^9, 3.6056329635693913`*^9}, 
+   3.605633203461426*^9, 3.605633279819338*^9, 3.605633405717062*^9, 
+   3.605633445043635*^9, 3.60563486324809*^9, 3.605635045897534*^9, {
+   3.605637201873412*^9, 3.605637230937489*^9}, 3.605656382532639*^9, 
+   3.605658691840357*^9, 3.6058759152676086`*^9, 3.605882351523753*^9}],
+
+Cell[BoxData["\<\"No vertices found.\"\>"], "Print",
+ CellChangeTimes->{
+  3.6056229291812897`*^9, 3.605622965269404*^9, {3.6056229995035*^9, 
+   3.605623006396628*^9}, {3.6056329541402884`*^9, 3.6056329635693913`*^9}, 
+   3.605633203461426*^9, 3.605633279819338*^9, 3.605633405717062*^9, 
+   3.605633445043635*^9, 3.60563486324809*^9, 3.605635045897534*^9, {
+   3.605637201873412*^9, 3.605637230937489*^9}, 3.605656382532639*^9, 
+   3.605658691840357*^9, 3.6058759152676086`*^9, 3.605882351528597*^9}],
+
+Cell[BoxData[
+ InterpretationBox[
+  RowBox[{"0", "\[InvisibleSpace]", "\<\" vertices obtained.\"\>"}],
+  SequenceForm[0, " vertices obtained."],
+  Editable->False]], "Print",
+ CellChangeTimes->{
+  3.6056229291812897`*^9, 3.605622965269404*^9, {3.6056229995035*^9, 
+   3.605623006396628*^9}, {3.6056329541402884`*^9, 3.6056329635693913`*^9}, 
+   3.605633203461426*^9, 3.605633279819338*^9, 3.605633405717062*^9, 
+   3.605633445043635*^9, 3.60563486324809*^9, 3.605635045897534*^9, {
+   3.605637201873412*^9, 3.605637230937489*^9}, 3.605656382532639*^9, 
+   3.605658691840357*^9, 3.6058759152676086`*^9, 3.605882351533533*^9}],
+
+Cell[BoxData["\<\"The lagrangian is hermitian.\"\>"], "Print",
+ CellChangeTimes->{
+  3.6056229291812897`*^9, 3.605622965269404*^9, {3.6056229995035*^9, 
+   3.605623006396628*^9}, {3.6056329541402884`*^9, 3.6056329635693913`*^9}, 
+   3.605633203461426*^9, 3.605633279819338*^9, 3.605633405717062*^9, 
+   3.605633445043635*^9, 3.60563486324809*^9, 3.605635045897534*^9, {
+   3.605637201873412*^9, 3.605637230937489*^9}, 3.605656382532639*^9, 
+   3.605658691840357*^9, 3.6058759152676086`*^9, 3.605882351537565*^9}]
+}, Open  ]]
+}, Open  ]]
+}, Open  ]],
+
+Cell[CellGroupData[{
+
+Cell["\<\
+Feynman Rules (Fermion Partner)\
+\>", "Section",
+ CellChangeTimes->{{3.605623116445725*^9, 3.605623132577363*^9}, 
+   3.6056350952868013`*^9}],
+
+Cell[CellGroupData[{
+
+Cell[BoxData[{
+ RowBox[{"vertices", " ", "=", " ", 
+  RowBox[{"FeynmanRules", "[", "Lscalar", "]"}]}], "\[IndentingNewLine]", 
+ RowBox[{
+  RowBox[{"decays", " ", "=", " ", 
+   RowBox[{"ComputeWidths", "[", "vertices", "]"}]}], ";"}]}], "Input",
+ CellChangeTimes->{{3.605623135518034*^9, 3.6056231403631487`*^9}, {
+   3.6056329889705153`*^9, 3.6056329893374767`*^9}, {3.60563366954454*^9, 
+   3.6056336908373327`*^9}, {3.605633868933378*^9, 3.6056338702728558`*^9}, 
+   3.605633908964724*^9, {3.605633941603565*^9, 3.605633953097578*^9}, 
+   3.605634867413897*^9, {3.6056349686727057`*^9, 3.60563497715202*^9}, {
+   3.605637056408601*^9, 3.6056370590299*^9}, {3.605875923923554*^9, 
+   3.6058759561163816`*^9}}],
+
+Cell[CellGroupData[{
+
+Cell[BoxData[
+ StyleBox["\<\"Starting Feynman rule calculation.\"\>",
+  StripOnInput->False,
+  LineColor->RGBColor[1, 0.5, 0],
+  FrontFaceColor->RGBColor[1, 0.5, 0],
+  BackFaceColor->RGBColor[1, 0.5, 0],
+  GraphicsColor->RGBColor[1, 0.5, 0],
+  FontWeight->Bold,
+  FontColor->RGBColor[1, 0.5, 0]]], "Print",
+ CellChangeTimes->{
+  3.605623141036067*^9, 3.605632989814084*^9, 3.6056332084743757`*^9, 
+   3.605633283183111*^9, 3.605633408314115*^9, 3.6056334475492563`*^9, 
+   3.605633691403208*^9, 3.6056338708193607`*^9, 3.605633909533334*^9, 
+   3.6056339535259933`*^9, 3.605634867962195*^9, 3.605635050541889*^9, 
+   3.605637238858077*^9, {3.605875937769837*^9, 3.605875956666177*^9}, 
+   3.6058823543890657`*^9}],
+
+Cell[BoxData["\<\"Expanding the Lagrangian...\"\>"], "Print",
+ CellChangeTimes->{
+  3.605623141036067*^9, 3.605632989814084*^9, 3.6056332084743757`*^9, 
+   3.605633283183111*^9, 3.605633408314115*^9, 3.6056334475492563`*^9, 
+   3.605633691403208*^9, 3.6056338708193607`*^9, 3.605633909533334*^9, 
+   3.6056339535259933`*^9, 3.605634867962195*^9, 3.605635050541889*^9, 
+   3.605637238858077*^9, {3.605875937769837*^9, 3.605875956666177*^9}, 
+   3.6058823543926353`*^9}],
+
+Cell[BoxData["\<\"Collecting the different structures that enter the \
+vertex.\"\>"], "Print",
+ CellChangeTimes->{
+  3.605623141036067*^9, 3.605632989814084*^9, 3.6056332084743757`*^9, 
+   3.605633283183111*^9, 3.605633408314115*^9, 3.6056334475492563`*^9, 
+   3.605633691403208*^9, 3.6056338708193607`*^9, 3.605633909533334*^9, 
+   3.6056339535259933`*^9, 3.605634867962195*^9, 3.605635050541889*^9, 
+   3.605637238858077*^9, {3.605875937769837*^9, 3.605875956666177*^9}, 
+   3.605882354442403*^9}],
+
+Cell[BoxData[
+ InterpretationBox[
+  RowBox[{
+  "2", "\[InvisibleSpace]", "\<\" possible non-zero vertices have been found \
+-> starting the computation: \"\>", "\[InvisibleSpace]", 
+   DynamicBox[ToBoxes[FeynRules`FR$FeynmanRules, StandardForm],
+    ImageSizeCache->{7., {0., 8.}}], "\[InvisibleSpace]", "\<\" / \"\>", 
+   "\[InvisibleSpace]", "2", "\[InvisibleSpace]", "\<\".\"\>"}],
+  SequenceForm[
+  2, " possible non-zero vertices have been found -> starting the \
+computation: ", 
+   Dynamic[FeynRules`FR$FeynmanRules], " / ", 2, "."],
+  Editable->False]], "Print",
+ CellChangeTimes->{
+  3.605623141036067*^9, 3.605632989814084*^9, 3.6056332084743757`*^9, 
+   3.605633283183111*^9, 3.605633408314115*^9, 3.6056334475492563`*^9, 
+   3.605633691403208*^9, 3.6056338708193607`*^9, 3.605633909533334*^9, 
+   3.6056339535259933`*^9, 3.605634867962195*^9, 3.605635050541889*^9, 
+   3.605637238858077*^9, {3.605875937769837*^9, 3.605875956666177*^9}, 
+   3.605882354448645*^9}],
+
+Cell[BoxData[
+ InterpretationBox[
+  RowBox[{"2", "\[InvisibleSpace]", "\<\" vertices obtained.\"\>"}],
+  SequenceForm[2, " vertices obtained."],
+  Editable->False]], "Print",
+ CellChangeTimes->{
+  3.605623141036067*^9, 3.605632989814084*^9, 3.6056332084743757`*^9, 
+   3.605633283183111*^9, 3.605633408314115*^9, 3.6056334475492563`*^9, 
+   3.605633691403208*^9, 3.6056338708193607`*^9, 3.605633909533334*^9, 
+   3.6056339535259933`*^9, 3.605634867962195*^9, 3.605635050541889*^9, 
+   3.605637238858077*^9, {3.605875937769837*^9, 3.605875956666177*^9}, 
+   3.605882354452979*^9}]
+}, Open  ]],
+
+Cell[BoxData[
+ RowBox[{"{", 
+  RowBox[{
+   RowBox[{"{", 
+    RowBox[{
+     RowBox[{"{", 
+      RowBox[{
+       RowBox[{"{", 
+        RowBox[{"s0", ",", "1"}], "}"}], ",", 
+       RowBox[{"{", 
+        RowBox[{"W", ",", "2"}], "}"}], ",", 
+       RowBox[{"{", 
+        RowBox[{
+         SuperscriptBox["W", "\[Dagger]"], ",", "3"}], "}"}]}], "}"}], ",", 
+     FractionBox[
+      RowBox[{"\[ImaginaryI]", " ", "e", " ", "keta", " ", 
+       SubscriptBox["M", "W"], " ", 
+       SubscriptBox["\[Eta]", 
+        RowBox[{
+         SubscriptBox["\<\"\[Mu]\"\>", "2"], ",", 
+         SubscriptBox["\<\"\[Mu]\"\>", "3"]}]]}], 
+      SubscriptBox["s", "w"]]}], "}"}], ",", 
+   RowBox[{"{", 
+    RowBox[{
+     RowBox[{"{", 
+      RowBox[{
+       RowBox[{"{", 
+        RowBox[{"s0", ",", "1"}], "}"}], ",", 
+       RowBox[{"{", 
+        RowBox[{"Z", ",", "2"}], "}"}], ",", 
+       RowBox[{"{", 
+        RowBox[{"Z", ",", "3"}], "}"}]}], "}"}], ",", 
+     FractionBox[
+      RowBox[{"\[ImaginaryI]", " ", "e", " ", "keta", " ", "MZ", " ", 
+       SubscriptBox["\[Eta]", 
+        RowBox[{
+         SubscriptBox["\<\"\[Mu]\"\>", "2"], ",", 
+         SubscriptBox["\<\"\[Mu]\"\>", "3"]}]]}], 
+      RowBox[{
+       SubscriptBox["c", "w"], " ", 
+       SubscriptBox["s", "w"]}]]}], "}"}]}], "}"}]], "Output",
+ CellChangeTimes->{
+  3.605633909797886*^9, 3.6056339538109617`*^9, 3.605634868137611*^9, 
+   3.605635050886277*^9, 3.605637239169332*^9, {3.6058759379425573`*^9, 
+   3.605875956729602*^9}, 3.6058823544581203`*^9}],
+
+Cell[CellGroupData[{
+
+Cell[BoxData[
+ InterpretationBox[
+  RowBox[{"\<\"Flavor expansion of the vertices: \"\>", "\[InvisibleSpace]", 
+   DynamicBox[ToBoxes[FeynRules`FR$Count1, StandardForm],
+    ImageSizeCache->{14., {1., 8.}}], "\[InvisibleSpace]", "\<\" / \"\>", 
+   "\[InvisibleSpace]", "2"}],
+  SequenceForm["Flavor expansion of the vertices: ", 
+   Dynamic[FeynRules`FR$Count1], " / ", 2],
+  Editable->False]], "Print",
+ CellChangeTimes->{
+  3.605623141036067*^9, 3.605632989814084*^9, 3.6056332084743757`*^9, 
+   3.605633283183111*^9, 3.605633408314115*^9, 3.6056334475492563`*^9, 
+   3.605633691403208*^9, 3.6056338708193607`*^9, 3.605633909533334*^9, 
+   3.6056339535259933`*^9, 3.605634867962195*^9, 3.605635050541889*^9, 
+   3.605637238858077*^9, {3.605875937769837*^9, 3.605875956666177*^9}, 
+   3.60588235451572*^9}],
+
+Cell[BoxData[
+ StyleBox["\<\"Computing the squared matrix elements relevant for the 1->2 \
+decays: \"\>",
+  StripOnInput->False,
+  LineColor->RGBColor[1, 0.5, 0],
+  FrontFaceColor->RGBColor[1, 0.5, 0],
+  BackFaceColor->RGBColor[1, 0.5, 0],
+  GraphicsColor->RGBColor[1, 0.5, 0],
+  FontWeight->Bold,
+  FontColor->RGBColor[1, 0.5, 0]]], "Print",
+ CellChangeTimes->{
+  3.605623141036067*^9, 3.605632989814084*^9, 3.6056332084743757`*^9, 
+   3.605633283183111*^9, 3.605633408314115*^9, 3.6056334475492563`*^9, 
+   3.605633691403208*^9, 3.6056338708193607`*^9, 3.605633909533334*^9, 
+   3.6056339535259933`*^9, 3.605634867962195*^9, 3.605635050541889*^9, 
+   3.605637238858077*^9, {3.605875937769837*^9, 3.605875956666177*^9}, 
+   3.605882354559538*^9}],
+
+Cell[BoxData[
+ InterpretationBox[
+  RowBox[{
+   DynamicBox[ToBoxes[FeynRules`FR$DecayCounter, StandardForm],
+    ImageSizeCache->{14., {0., 8.}}], "\[InvisibleSpace]", "\<\" / \"\>", 
+   "\[InvisibleSpace]", "2"}],
+  SequenceForm[
+   Dynamic[FeynRules`FR$DecayCounter], " / ", 2],
+  Editable->False]], "Print",
+ CellChangeTimes->{
+  3.605623141036067*^9, 3.605632989814084*^9, 3.6056332084743757`*^9, 
+   3.605633283183111*^9, 3.605633408314115*^9, 3.6056334475492563`*^9, 
+   3.605633691403208*^9, 3.6056338708193607`*^9, 3.605633909533334*^9, 
+   3.6056339535259933`*^9, 3.605634867962195*^9, 3.605635050541889*^9, 
+   3.605637238858077*^9, {3.605875937769837*^9, 3.605875956666177*^9}, 
+   3.605882354596119*^9}]
+}, Open  ]]
+}, Open  ]],
+
+Cell[CellGroupData[{
+
+Cell[BoxData[
+ RowBox[{
+  RowBox[{"WriteUFO", "[", 
+   RowBox[{"LSM", ",", "Lscalar"}], "]"}], ";"}]], "Input",
+ CellChangeTimes->{{3.605623414495763*^9, 3.605623422610941*^9}, {
+  3.605635073368265*^9, 3.6056350736934977`*^9}, {3.605875960611538*^9, 
+  3.605875962361438*^9}}],
+
+Cell[CellGroupData[{
+
+Cell[BoxData["\<\" --- Universal FeynRules Output (UFO) v 1.1 ---\"\>"], \
+"Print",
+ CellChangeTimes->{3.605623426254333*^9, 3.605637251108576*^9, 
+  3.605875969708352*^9, 3.6058823609681177`*^9}],
+
+Cell[BoxData[
+ StyleBox["\<\"Starting Feynman rule calculation.\"\>",
+  StripOnInput->False,
+  LineColor->RGBColor[1, 0.5, 0],
+  FrontFaceColor->RGBColor[1, 0.5, 0],
+  BackFaceColor->RGBColor[1, 0.5, 0],
+  GraphicsColor->RGBColor[1, 0.5, 0],
+  FontWeight->Bold,
+  FontColor->RGBColor[1, 0.5, 0]]], "Print",
+ CellChangeTimes->{3.605623426254333*^9, 3.605637251108576*^9, 
+  3.605875969708352*^9, 3.60588236156849*^9}],
+
+Cell[BoxData["\<\"Expanding the Lagrangian...\"\>"], "Print",
+ CellChangeTimes->{3.605623426254333*^9, 3.605637251108576*^9, 
+  3.605875969708352*^9, 3.605882361577166*^9}],
+
+Cell[BoxData["\<\"Collecting the different structures that enter the \
+vertex.\"\>"], "Print",
+ CellChangeTimes->{3.605623426254333*^9, 3.605637251108576*^9, 
+  3.605875969708352*^9, 3.6058823669100437`*^9}],
+
+Cell[BoxData[
+ InterpretationBox[
+  RowBox[{
+  "98", "\[InvisibleSpace]", "\<\" possible non-zero vertices have been found \
+-> starting the computation: \"\>", "\[InvisibleSpace]", 
+   DynamicBox[ToBoxes[FeynRules`FR$FeynmanRules, StandardForm],
+    ImageSizeCache->{7., {0., 8.}}], "\[InvisibleSpace]", "\<\" / \"\>", 
+   "\[InvisibleSpace]", "98", "\[InvisibleSpace]", "\<\".\"\>"}],
+  SequenceForm[
+  98, " possible non-zero vertices have been found -> starting the \
+computation: ", 
+   Dynamic[FeynRules`FR$FeynmanRules], " / ", 98, "."],
+  Editable->False]], "Print",
+ CellChangeTimes->{3.605623426254333*^9, 3.605637251108576*^9, 
+  3.605875969708352*^9, 3.6058823670079393`*^9}],
+
+Cell[BoxData[
+ InterpretationBox[
+  RowBox[{"93", "\[InvisibleSpace]", "\<\" vertices obtained.\"\>"}],
+  SequenceForm[93, " vertices obtained."],
+  Editable->False]], "Print",
+ CellChangeTimes->{3.605623426254333*^9, 3.605637251108576*^9, 
+  3.605875969708352*^9, 3.605882372273816*^9}],
+
+Cell[BoxData[
+ StyleBox["\<\"Starting Feynman rule calculation.\"\>",
+  StripOnInput->False,
+  LineColor->RGBColor[1, 0.5, 0],
+  FrontFaceColor->RGBColor[1, 0.5, 0],
+  BackFaceColor->RGBColor[1, 0.5, 0],
+  GraphicsColor->RGBColor[1, 0.5, 0],
+  FontWeight->Bold,
+  FontColor->RGBColor[1, 0.5, 0]]], "Print",
+ CellChangeTimes->{3.605623426254333*^9, 3.605637251108576*^9, 
+  3.605875969708352*^9, 3.605882372275631*^9}],
+
+Cell[BoxData["\<\"Expanding the Lagrangian...\"\>"], "Print",
+ CellChangeTimes->{3.605623426254333*^9, 3.605637251108576*^9, 
+  3.605875969708352*^9, 3.6058823722780933`*^9}],
+
+Cell[BoxData["\<\"Collecting the different structures that enter the \
+vertex.\"\>"], "Print",
+ CellChangeTimes->{3.605623426254333*^9, 3.605637251108576*^9, 
+  3.605875969708352*^9, 3.605882372330551*^9}],
+
+Cell[BoxData[
+ InterpretationBox[
+  RowBox[{
+  "2", "\[InvisibleSpace]", "\<\" possible non-zero vertices have been found \
+-> starting the computation: \"\>", "\[InvisibleSpace]", 
+   DynamicBox[ToBoxes[FeynRules`FR$FeynmanRules, StandardForm],
+    ImageSizeCache->{7., {0., 8.}}], "\[InvisibleSpace]", "\<\" / \"\>", 
+   "\[InvisibleSpace]", "2", "\[InvisibleSpace]", "\<\".\"\>"}],
+  SequenceForm[
+  2, " possible non-zero vertices have been found -> starting the \
+computation: ", 
+   Dynamic[FeynRules`FR$FeynmanRules], " / ", 2, "."],
+  Editable->False]], "Print",
+ CellChangeTimes->{3.605623426254333*^9, 3.605637251108576*^9, 
+  3.605875969708352*^9, 3.605882372333057*^9}],
+
+Cell[BoxData[
+ InterpretationBox[
+  RowBox[{"2", "\[InvisibleSpace]", "\<\" vertices obtained.\"\>"}],
+  SequenceForm[2, " vertices obtained."],
+  Editable->False]], "Print",
+ CellChangeTimes->{3.605623426254333*^9, 3.605637251108576*^9, 
+  3.605875969708352*^9, 3.605882372394369*^9}],
+
+Cell[BoxData[
+ InterpretationBox[
+  RowBox[{"\<\"Flavor expansion of the vertices: \"\>", "\[InvisibleSpace]", 
+   DynamicBox[ToBoxes[FeynRules`FR$Count1, StandardForm],
+    ImageSizeCache->{14., {1., 8.}}], "\[InvisibleSpace]", "\<\" / \"\>", 
+   "\[InvisibleSpace]", "95"}],
+  SequenceForm["Flavor expansion of the vertices: ", 
+   Dynamic[FeynRules`FR$Count1], " / ", 95],
+  Editable->False]], "Print",
+ CellChangeTimes->{3.605623426254333*^9, 3.605637251108576*^9, 
+  3.605875969708352*^9, 3.6058823763363256`*^9}],
+
+Cell[BoxData["\<\"   - Saved vertices in InterfaceRun[ 1 ].\"\>"], "Print",
+ CellChangeTimes->{3.605623426254333*^9, 3.605637251108576*^9, 
+  3.605875969708352*^9, 3.605882379280229*^9}],
+
+Cell[BoxData[
+ StyleBox["\<\"Computing the squared matrix elements relevant for the 1->2 \
+decays: \"\>",
+  StripOnInput->False,
+  LineColor->RGBColor[1, 0.5, 0],
+  FrontFaceColor->RGBColor[1, 0.5, 0],
+  BackFaceColor->RGBColor[1, 0.5, 0],
+  GraphicsColor->RGBColor[1, 0.5, 0],
+  FontWeight->Bold,
+  FontColor->RGBColor[1, 0.5, 0]]], "Print",
+ CellChangeTimes->{3.605623426254333*^9, 3.605637251108576*^9, 
+  3.605875969708352*^9, 3.605882379342313*^9}],
+
+Cell[BoxData[
+ InterpretationBox[
+  RowBox[{
+   DynamicBox[ToBoxes[FeynRules`FR$DecayCounter, StandardForm],
+    ImageSizeCache->{14., {0., 8.}}], "\[InvisibleSpace]", "\<\" / \"\>", 
+   "\[InvisibleSpace]", "42"}],
+  SequenceForm[
+   Dynamic[FeynRules`FR$DecayCounter], " / ", 42],
+  Editable->False]], "Print",
+ CellChangeTimes->{3.605623426254333*^9, 3.605637251108576*^9, 
+  3.605875969708352*^9, 3.605882379352541*^9}],
+
+Cell[BoxData[
+ InterpretationBox[
+  RowBox[{"\<\"Squared matrix elent compute in \"\>", "\[InvisibleSpace]", 
+   "1.580134000000001`", "\[InvisibleSpace]", "\<\" seconds.\"\>"}],
+  SequenceForm[
+  "Squared matrix elent compute in ", 1.580134000000001, " seconds."],
+  Editable->False]], "Print",
+ CellChangeTimes->{3.605623426254333*^9, 3.605637251108576*^9, 
+  3.605875969708352*^9, 3.6058823814476423`*^9}]
+}, Open  ]],
+
+Cell[BoxData[
+ RowBox[{
+  StyleBox[
+   RowBox[{"Decay", "::", "Overwrite"}], "MessageName"], 
+  RowBox[{
+  ":", " "}], "\<\"Warning: Previous results will be overwritten.\"\>"}]], \
+"Message", "MSG",
+ CellChangeTimes->{3.605623441917754*^9, 3.605637266795199*^9, 
+  3.605875986706703*^9, 3.605882381659711*^9}],
+
+Cell[CellGroupData[{
+
+Cell[BoxData[
+ InterpretationBox[
+  RowBox[{"\<\"Decay widths computed in \"\>", "\[InvisibleSpace]", 
+   "0.025485999999997233`", "\[InvisibleSpace]", "\<\" seconds.\"\>"}],
+  SequenceForm[
+  "Decay widths computed in ", 0.025485999999997233`, " seconds."],
+  Editable->False]], "Print",
+ CellChangeTimes->{3.605623426254333*^9, 3.605637251108576*^9, 
+  3.605875969708352*^9, 3.60588238166367*^9}],
+
+Cell[BoxData["\<\"Preparing Python output.\"\>"], "Print",
+ CellChangeTimes->{3.605623426254333*^9, 3.605637251108576*^9, 
+  3.605875969708352*^9, 3.6058823816654043`*^9}],
+
+Cell[BoxData["\<\"    - Splitting vertices into building blocks.\"\>"], \
+"Print",
+ CellChangeTimes->{3.605623426254333*^9, 3.605637251108576*^9, 
+  3.605875969708352*^9, 3.6058823818620367`*^9}],
+
+Cell[BoxData[
+ InterpretationBox[
+  RowBox[{"\<\"    - Optimizing: \"\>", "\[InvisibleSpace]", 
+   DynamicBox[ToBoxes[PRIVATE`PY$SplitVertexCounter, StandardForm],
+    ImageSizeCache->{22., {0., 8.}}], "\[InvisibleSpace]", "\<\"/\"\>", 
+   "\[InvisibleSpace]", "121", "\[InvisibleSpace]", "\<\" .\"\>"}],
+  SequenceForm["    - Optimizing: ", 
+   Dynamic[PRIVATE`PY$SplitVertexCounter], "/", 121, " ."],
+  Editable->False]], "Print",
+ CellChangeTimes->{3.605623426254333*^9, 3.605637251108576*^9, 
+  3.605875969708352*^9, 3.605882382105023*^9}],
+
+Cell[BoxData["\<\"    - Writing files.\"\>"], "Print",
+ CellChangeTimes->{3.605623426254333*^9, 3.605637251108576*^9, 
+  3.605875969708352*^9, 3.605882382296308*^9}],
+
+Cell[BoxData["\<\"Done!\"\>"], "Print",
+ CellChangeTimes->{3.605623426254333*^9, 3.605637251108576*^9, 
+  3.605875969708352*^9, 3.605882382577735*^9}]
+}, Open  ]]
+}, Open  ]]
+}, Open  ]]
+}, Open  ]]
+},
+WindowSize->{740, 656},
+WindowMargins->{{Automatic, 8}, {Automatic, 0}},
+FrontEndVersion->"8.0 for Mac OS X x86 (32-bit, 64-bit Kernel) (February 23, \
+2011)",
+StyleDefinitions->"Default.nb"
+]
+(* End of Notebook Content *)
+
+(* Internal cache information *)
+(*CellTagsOutline
+CellTagsIndex->{}
+*)
+(*CellTagsIndex
+CellTagsIndex->{}
+*)
+(*NotebookFileOutline
+Notebook[{
+Cell[CellGroupData[{
+Cell[579, 22, 248, 7, 80, "Title"],
+Cell[830, 31, 169, 3, 27, "Input"],
+Cell[1002, 36, 255, 5, 27, "Input"],
+Cell[1260, 43, 181, 5, 27, "Input"],
+Cell[CellGroupData[{
+Cell[1466, 52, 127, 2, 27, "Input"],
+Cell[CellGroupData[{
+Cell[1618, 58, 138, 2, 20, "Print"],
+Cell[1759, 62, 415, 9, 20, "Print"],
+Cell[2177, 73, 192, 3, 20, "Print"],
+Cell[2372, 78, 124, 2, 20, "Print"],
+Cell[2499, 82, 135, 2, 20, "Print"],
+Cell[2637, 86, 147, 2, 20, "Print"],
+Cell[2787, 90, 187, 3, 20, "Print"],
+Cell[2977, 95, 126, 2, 20, "Print"],
+Cell[3106, 99, 154, 2, 20, "Print"],
+Cell[3263, 103, 126, 2, 20, "Print"],
+Cell[3392, 107, 190, 3, 20, "Print"]
+}, Open  ]],
+Cell[3597, 113, 1611, 25, 23, "Message"]
+}, Open  ]],
+Cell[CellGroupData[{
+Cell[5245, 143, 170, 2, 67, "Section"],
+Cell[CellGroupData[{
+Cell[5440, 149, 693, 13, 58, "Input"],
+Cell[6136, 164, 713, 10, 27, "Output"],
+Cell[CellGroupData[{
+Cell[6874, 178, 684, 10, 20, "Print"],
+Cell[7561, 190, 702, 10, 20, "Print"],
+Cell[8266, 202, 678, 10, 20, "Print"],
+Cell[8947, 214, 671, 10, 20, "Print"],
+Cell[9621, 226, 669, 10, 20, "Print"],
+Cell[10293, 238, 814, 14, 20, "Print"],
+Cell[11110, 254, 721, 11, 20, "Print"],
+Cell[11834, 267, 712, 11, 20, "Print"],
+Cell[12549, 280, 662, 10, 20, "Print"],
+Cell[13214, 292, 692, 10, 20, "Print"],
+Cell[13909, 304, 695, 10, 20, "Print"],
+Cell[14607, 316, 693, 10, 20, "Print"],
+Cell[15303, 328, 904, 16, 36, "Print"],
+Cell[16210, 346, 1152, 20, 20, "Print"],
+Cell[17365, 368, 1151, 20, 20, "Print"],
+Cell[18519, 390, 682, 10, 20, "Print"]
+}, Open  ]]
+}, Open  ]]
+}, Open  ]],
+Cell[CellGroupData[{
+Cell[19262, 407, 146, 2, 67, "Section"],
+Cell[CellGroupData[{
+Cell[19433, 413, 856, 13, 43, "Input"],
+Cell[CellGroupData[{
+Cell[20314, 430, 735, 13, 20, "Print"],
+Cell[21052, 445, 514, 7, 20, "Print"],
+Cell[21569, 454, 506, 7, 20, "Print"],
+Cell[22078, 463, 547, 8, 20, "Print"]
+}, Open  ]],
+Cell[22640, 474, 1069, 25, 67, "Output"],
+Cell[CellGroupData[{
+Cell[23734, 503, 565, 8, 20, "Print"],
+Cell[24302, 513, 561, 8, 20, "Print"],
+Cell[24866, 523, 755, 15, 20, "Print"],
+Cell[25624, 540, 511, 7, 20, "Print"],
+Cell[26138, 549, 502, 7, 20, "Print"],
+Cell[26643, 558, 624, 11, 20, "Print"],
+Cell[27270, 571, 512, 7, 20, "Print"]
+}, Open  ]]
+}, Open  ]]
+}, Open  ]],
+Cell[CellGroupData[{
+Cell[27843, 585, 152, 4, 67, "Section"],
+Cell[CellGroupData[{
+Cell[28020, 593, 710, 12, 43, "Input"],
+Cell[CellGroupData[{
+Cell[28755, 609, 713, 15, 20, "Print"],
+Cell[29471, 626, 468, 7, 20, "Print"],
+Cell[29942, 635, 499, 8, 20, "Print"],
+Cell[30444, 645, 975, 19, 20, "Print"],
+Cell[31422, 666, 579, 11, 20, "Print"]
+}, Open  ]],
+Cell[32016, 680, 1508, 44, 95, "Output"],
+Cell[CellGroupData[{
+Cell[33549, 728, 807, 15, 20, "Print"],
+Cell[34359, 745, 747, 16, 20, "Print"],
+Cell[35109, 763, 715, 15, 20, "Print"]
+}, Open  ]]
+}, Open  ]],
+Cell[CellGroupData[{
+Cell[35873, 784, 277, 6, 27, "Input"],
+Cell[CellGroupData[{
+Cell[36175, 794, 196, 3, 20, "Print"],
+Cell[36374, 799, 416, 10, 20, "Print"],
+Cell[36793, 811, 172, 2, 20, "Print"],
+Cell[36968, 815, 207, 3, 20, "Print"],
+Cell[37178, 820, 687, 14, 20, "Print"],
+Cell[37868, 836, 287, 6, 20, "Print"],
+Cell[38158, 844, 417, 10, 20, "Print"],
+Cell[38578, 856, 174, 2, 20, "Print"],
+Cell[38755, 860, 205, 3, 20, "Print"],
+Cell[38963, 865, 681, 14, 20, "Print"],
+Cell[39647, 881, 285, 6, 20, "Print"],
+Cell[39935, 889, 518, 10, 20, "Print"],
+Cell[40456, 901, 186, 2, 20, "Print"],
+Cell[40645, 905, 453, 11, 20, "Print"],
+Cell[41101, 918, 423, 10, 20, "Print"],
+Cell[41527, 930, 408, 8, 20, "Print"]
+}, Open  ]],
+Cell[41950, 941, 310, 8, 23, "Message"],
+Cell[CellGroupData[{
+Cell[42285, 953, 398, 8, 20, "Print"],
+Cell[42686, 963, 171, 2, 20, "Print"],
+Cell[42860, 967, 195, 3, 20, "Print"],
+Cell[43058, 972, 543, 10, 20, "Print"],
+Cell[43604, 984, 165, 2, 20, "Print"],
+Cell[43772, 988, 150, 2, 20, "Print"]
+}, Open  ]]
+}, Open  ]]
+}, Open  ]]
+}, Open  ]]
+}
+]
+*)
+
+(* End of internal cache information *)
diff --git a/CHresonance_neutral_scalar_UFO/feynrules/SM.fr b/CHresonance_neutral_scalar_UFO/feynrules/SM.fr
new file mode 100644
index 0000000..504b0d7
--- /dev/null
+++ b/CHresonance_neutral_scalar_UFO/feynrules/SM.fr
@@ -0,0 +1,729 @@
+(***************************************************************************************************************)
+(******                       This is the FeynRules mod-file for the Standard model                       ******)
+(******                                                                                                   ******)
+(******     Authors: N. Christensen, C. Duhr, B. Fuks                                                     ******)
+(******                                                                                                   ******)
+(****** Choose whether Feynman gauge is desired.                                                          ******)
+(****** If set to False, unitary gauge is assumed.                                                          ****)
+(****** Feynman gauge is especially useful for CalcHEP/CompHEP where the calculation is 10-100 times faster. ***)
+(****** Feynman gauge is not supported in MadGraph and Sherpa.                                              ****)
+(***************************************************************************************************************)
+
+(* ************************** *)
+(* *****  Information   ***** *)
+(* ************************** *)
+M$ModelName = "Standard Model";
+
+M$Information = {
+  Authors      -> {"N. Christensen", "C. Duhr", "B. Fuks"}, 
+  Version      -> "1.4.5",
+  Date         -> "21. 11. 2012",
+  Institutions -> {"Michigan State University", "Universite catholique de Louvain (CP3)", "IPHC Strasbourg / University of Strasbourg"},
+  Emails       -> {"neil@pa.msu.edu", "claude.duhr@uclouvain.be", "benjamin.fuks@cnrs.in2p3.fr"},
+  URLs         -> "http://feynrules.phys.ucl.ac.be/view/Main/StandardModel"
+};
+
+FeynmanGauge = True;
+
+(* ************************** *)
+(* *****  Change  log   ***** *)
+(* ************************** *)
+
+(* v1.4.5: Added widths for ghosts.                                          *)
+(* v1.4.4: Changed widths of goldstone bosons to be the same as for the W and Z bosons *)
+(* v1.4.3: Updated conventions for the symmetric structure constants of SU3. *)
+(* v1.4.2: Set FeynmanGauge=True as default again.                           *)
+(* v1.4: Added SU(2) representation.                                         *)
+(*       -> Modification in the field declarations (doublets are added)      *)
+(*       -> Modification in the Lagrangian (much simpler).                   *)
+(* v1.3: Added yukawa couplings for all fermions for gauge invariance.       *)
+(*       Added yukawa couplings for 1st generation fermions to Massless.rst. *)
+(*       Updated parameters to PDG 2010.                                     *)
+(* v1.2: Set FeynmanGauge=True as default.                                   *)
+(*       Set Gluonic ghosts to be included in both gauges.                   *)
+(* v1.1: Fixed yukawa couplings in Feynman gauge.                            *)
+(*       Changed yd[n] CKM[n,m] to yd[m] CKM[n,m].                           *)
+(*       Changed yu[n] Conjugate[CKM[m,n]] to yu[m] Conjugate[CKM[m,n]].     *)
+
+(* ************************** *)
+(* *****      vevs      ***** *)
+(* ************************** *)
+M$vevs = { {Phi[2],vev} };
+
+(* ************************** *)
+(* *****  Gauge groups  ***** *)
+(* ************************** *)
+M$GaugeGroups = {
+  U1Y  == { 
+    Abelian          -> True,  
+    CouplingConstant -> g1, 
+    GaugeBoson       -> B, 
+    Charge           -> Y
+  },
+  SU2L == { 
+    Abelian           -> False, 
+    CouplingConstant  -> gw, 
+    GaugeBoson        -> Wi, 
+    StructureConstant -> Eps, 
+    Representations   -> {Ta,SU2D}, 
+    Definitions       -> {Ta[a_,b_,c_]->PauliSigma[a,b,c]/2, FSU2L[i_,j_,k_]:> I Eps[i,j,k]}
+  },
+  SU3C == { 
+    Abelian           -> False, 
+    CouplingConstant  -> gs, 
+    GaugeBoson        -> G,
+    StructureConstant -> f, 
+    Representations   -> {T,Colour}, 
+    SymmetricTensor   -> dSUN
+  } 
+};
+
+
+(* ************************** *)
+(* *****    Indices     ***** *)
+(* ************************** *)
+
+IndexRange[Index[SU2W      ]] = Unfold[Range[3]]; 
+IndexRange[Index[SU2D      ]] = Unfold[Range[2]];
+IndexRange[Index[Gluon     ]] = NoUnfold[Range[8]];
+IndexRange[Index[Colour    ]] = NoUnfold[Range[3]]; 
+IndexRange[Index[Generation]] = Range[3];
+
+IndexStyle[SU2W,       j];
+IndexStyle[SU2D,       k];
+IndexStyle[Gluon,      a];
+IndexStyle[Colour,     m];
+IndexStyle[Generation, f];
+
+
+(* ************************** *)
+(* *** Interaction orders *** *)
+(* ***  (as used by mg5)  *** *)
+(* ************************** *)
+
+M$InteractionOrderHierarchy = {
+  {QCD, 1},
+  {QED, 2}
+};
+
+
+(* ************************** *)
+(* **** Particle classes **** *)
+(* ************************** *)
+M$ClassesDescription = {
+
+(* Gauge bosons: physical vector fields *)
+  V[1] == { 
+    ClassName       -> A, 
+    SelfConjugate   -> True,  
+    Mass            -> 0,  
+    Width           -> 0,  
+    ParticleName    -> "a", 
+    PDG             -> 22, 
+    PropagatorLabel -> "a", 
+    PropagatorType  -> W, 
+    PropagatorArrow -> None,
+    FullName        -> "Photon"
+  },
+  V[2] == { 
+    ClassName       -> Z, 
+    SelfConjugate   -> True,
+    Mass            -> {MZ, 91.1876},
+    Width           -> {WZ, 2.4952},
+    ParticleName    -> "Z", 
+    PDG             -> 23, 
+    PropagatorLabel -> "Z",
+    PropagatorType  -> Sine,
+    PropagatorArrow -> None,
+    FullName        -> "Z"
+  },
+  V[3] == {
+    ClassName        -> W,
+    SelfConjugate    -> False,
+    Mass             -> {MW, Internal},
+    Width            -> {WW, 2.085},
+    ParticleName     -> "W+",
+    AntiParticleName -> "W-",
+    QuantumNumbers   -> {Q -> 1},
+    PDG              -> 24, 
+    PropagatorLabel  -> "W",
+    PropagatorType   -> Sine,
+    PropagatorArrow  -> Forward,
+    FullName         -> "W"
+  },
+  V[4] == {
+    ClassName        -> G,
+    SelfConjugate    -> True,
+    Indices          -> {Index[Gluon]},
+    Mass             -> 0,
+    Width            -> 0,
+    ParticleName     -> "g", 
+    PDG              -> 21,
+    PropagatorLabel  -> "G",
+    PropagatorType   -> C,
+    PropagatorArrow  -> None,
+    FullName         -> "G"
+  },
+
+(* Ghosts: related to physical gauge bosons *)
+  U[1] == { 
+    ClassName       -> ghA, 
+    SelfConjugate   -> False,
+    Ghost           -> A,
+    QuantumNumbers  -> {GhostNumber -> 1},
+    Mass            -> 0,
+    Width	    -> 0,
+    PropagatorLabel -> "uA",
+    PropagatorType  -> GhostDash,
+    PropagatorArrow -> Forward
+  },
+  U[2] == {
+    ClassName       -> ghZ,
+    SelfConjugate   -> False,
+    Ghost           -> Z,
+    QuantumNumbers  -> {GhostNumber -> 1},
+    Mass            -> {MZ,91.1876},  
+    Width	    -> {WZ, 2.4952},
+    PropagatorLabel -> "uZ",
+    PropagatorType  -> GhostDash,
+    PropagatorArrow -> Forward
+  },
+  U[31] == { 
+    ClassName       -> ghWp,
+    SelfConjugate   -> False, 
+    Ghost           -> W,
+    QuantumNumbers  -> {GhostNumber -> 1, Q -> 1},
+    Mass            -> {MW,Internal}, 
+    Width           -> {WW, 2.085}, 
+    PropagatorLabel -> "uWp",
+    PropagatorType  -> GhostDash, 
+    PropagatorArrow -> Forward
+  },
+  U[32] == { 
+    ClassName       -> ghWm,
+    SelfConjugate   -> False, 
+    Ghost           -> Wbar,
+    QuantumNumbers  -> {GhostNumber -> 1, Q -> -1},
+    Mass            -> {MW,Internal}, 
+    Width           -> {WW, 2.085},
+    PropagatorLabel -> "uWm",
+    PropagatorType  -> GhostDash, 
+    PropagatorArrow -> Forward
+  },
+  U[4] == { 
+    ClassName       -> ghG, 
+    SelfConjugate   -> False,
+    Indices         -> {Index[Gluon]},
+    Ghost           -> G,
+    QuantumNumbers  ->{GhostNumber -> 1}, 
+    Mass            -> 0,
+    Width	    -> 0,
+    PropagatorLabel -> "uG",
+    PropagatorType  -> GhostDash,
+    PropagatorArrow -> Forward
+  },
+
+(* Gauge bosons: unphysical vector fields *)
+  V[11] == { 
+    ClassName     -> B, 
+    Unphysical    -> True, 
+    SelfConjugate -> True, 
+    Definitions   -> { B[mu_] -> -sw Z[mu]+cw A[mu]} 
+  },
+  V[12] == { 
+    ClassName     -> Wi,
+    Unphysical    -> True,
+    SelfConjugate -> True, 
+    Indices       -> {Index[SU2W]},
+    FlavorIndex   -> SU2W,
+    Definitions   -> { Wi[mu_,1] -> (Wbar[mu]+W[mu])/Sqrt[2], Wi[mu_,2] -> (Wbar[mu]-W[mu])/(I*Sqrt[2]), Wi[mu_,3] -> cw Z[mu] + sw A[mu]}
+  },
+
+(* Ghosts: related to unphysical gauge bosons *)
+  U[11] == {
+    ClassName     -> ghB, 
+    Unphysical    -> True,
+    SelfConjugate -> False,
+    Ghost         -> B, 
+    Definitions   -> { ghB -> -sw ghZ + cw ghA}
+  },
+  U[12] == {
+    ClassName     -> ghWi,
+    Unphysical    -> True,
+    SelfConjugate -> False,
+    Ghost         -> Wi,
+    Indices       -> {Index[SU2W]},
+    FlavorIndex   -> SU2W,
+    Definitions   -> { ghWi[1] -> (ghWp+ghWm)/Sqrt[2], ghWi[2] -> (ghWm-ghWp)/(I*Sqrt[2]), ghWi[3] -> cw ghZ+sw ghA}
+  } ,
+
+(* Fermions: physical fields *)
+  F[1] == {
+    ClassName        -> vl,
+    ClassMembers     -> {ve,vm,vt},
+    Indices          -> {Index[Generation]},
+    FlavorIndex      -> Generation,
+    SelfConjugate    -> False,
+    Mass             -> 0,
+    Width            -> 0,
+    QuantumNumbers   -> {LeptonNumber -> 1},
+    PropagatorLabel  -> {"v", "ve", "vm", "vt"} ,
+    PropagatorType   -> S,
+    PropagatorArrow  -> Forward,
+    PDG              -> {12,14,16},
+    ParticleName     -> {"ve","vm","vt"},
+    AntiParticleName -> {"ve~","vm~","vt~"},
+    FullName         -> {"Electron-neutrino", "Mu-neutrino", "Tau-neutrino"}
+  },
+  F[2] == {
+    ClassName        -> l,
+    ClassMembers     -> {e, mu, ta},
+    Indices          -> {Index[Generation]},
+    FlavorIndex      -> Generation,
+    SelfConjugate    -> False,
+    Mass             -> {Ml, {Me,5.11*^-4}, {MMU,0.10566}, {MTA,1.777}},
+    Width            -> 0,
+    QuantumNumbers   -> {Q -> -1, LeptonNumber -> 1},
+    PropagatorLabel  -> {"l", "e", "mu", "ta"},
+    PropagatorType   -> Straight,
+    PropagatorArrow  -> Forward,
+    PDG              -> {11, 13, 15},
+    ParticleName     -> {"e-", "mu-", "ta-"},
+    AntiParticleName -> {"e+", "mu+", "ta+"},
+    FullName         -> {"Electron", "Muon", "Tau"} 
+  },
+  F[3] == {
+    ClassName        -> uq,
+    ClassMembers     -> {u, c, t},
+    Indices          -> {Index[Generation], Index[Colour]},
+    FlavorIndex      -> Generation,
+    SelfConjugate    -> False,
+    Mass             -> {Mu, {MU, 2.55*^-3}, {MC,1.27}, {MT,172}},
+    Width            -> {0, 0, {WT,1.50833649}},
+    QuantumNumbers   -> {Q -> 2/3},
+    PropagatorLabel  -> {"uq", "u", "c", "t"},
+    PropagatorType   -> Straight,
+    PropagatorArrow  -> Forward,
+    PDG              -> {2, 4, 6}, 
+    ParticleName     -> {"u",  "c",  "t" },
+    AntiParticleName -> {"u~", "c~", "t~"},
+    FullName         -> {"u-quark", "c-quark", "t-quark"}
+  },
+  F[4] == {
+    ClassName        -> dq,
+    ClassMembers     -> {d, s, b},
+    Indices          -> {Index[Generation], Index[Colour]},
+    FlavorIndex      -> Generation,
+    SelfConjugate    -> False,
+    Mass             -> {Md, {MD,5.04*^-3}, {MS,0.101}, {MB,4.7}},
+    Width            -> 0,
+    QuantumNumbers   -> {Q -> -1/3},
+    PropagatorLabel  -> {"dq", "d", "s", "b"},
+    PropagatorType   -> Straight, 
+    PropagatorArrow  -> Forward,
+    PDG              -> {1,3,5},
+    ParticleName     -> {"d",  "s",  "b" },
+    AntiParticleName -> {"d~", "s~", "b~"},
+    FullName         -> {"d-quark", "s-quark", "b-quark"}
+  },
+
+(* Fermions: unphysical fields *)
+  F[11] == { 
+    ClassName      -> LL, 
+    Unphysical     -> True, 
+    Indices        -> {Index[SU2D], Index[Generation]},
+    FlavorIndex    -> SU2D,
+    SelfConjugate  -> False,
+    QuantumNumbers -> {Y -> -1/2},
+    Definitions    -> { LL[sp1_,1,ff_] :> Module[{sp2}, ProjM[sp1,sp2] vl[sp2,ff]], LL[sp1_,2,ff_] :> Module[{sp2}, ProjM[sp1,sp2] l[sp2,ff]] }
+  },
+  F[12] == { 
+    ClassName      -> lR, 
+    Unphysical     -> True, 
+    Indices        -> {Index[Generation]},
+    FlavorIndex    -> Generation,
+    SelfConjugate  -> False,
+    QuantumNumbers -> {Y -> -1},
+    Definitions    -> { lR[sp1_,ff_] :> Module[{sp2}, ProjP[sp1,sp2] l[sp2,ff]] }
+  },
+  F[13] == { 
+    ClassName      -> QL, 
+    Unphysical     -> True, 
+    Indices        -> {Index[SU2D], Index[Generation], Index[Colour]},
+    FlavorIndex    -> SU2D,
+    SelfConjugate  -> False,
+    QuantumNumbers -> {Y -> 1/6},
+    Definitions    -> { 
+      QL[sp1_,1,ff_,cc_] :> Module[{sp2}, ProjM[sp1,sp2] uq[sp2,ff,cc]], 
+      QL[sp1_,2,ff_,cc_] :> Module[{sp2,ff2}, CKM[ff,ff2] ProjM[sp1,sp2] dq[sp2,ff2,cc]] }
+  },
+  F[14] == { 
+    ClassName      -> uR, 
+    Unphysical     -> True, 
+    Indices        -> {Index[Generation], Index[Colour]},
+    FlavorIndex    -> Generation,
+    SelfConjugate  -> False,
+    QuantumNumbers -> {Y -> 2/3},
+    Definitions    -> { uR[sp1_,ff_,cc_] :> Module[{sp2}, ProjP[sp1,sp2] uq[sp2,ff,cc]] }
+  },
+  F[15] == { 
+    ClassName      -> dR, 
+    Unphysical     -> True, 
+    Indices        -> {Index[Generation], Index[Colour]},
+    FlavorIndex    -> Generation,
+    SelfConjugate  -> False,
+    QuantumNumbers -> {Y -> -1/3},
+    Definitions    -> { dR[sp1_,ff_,cc_] :> Module[{sp2}, ProjP[sp1,sp2] dq[sp2,ff,cc]] }
+  },
+
+(* Higgs: physical scalars  *)
+  S[1] == {
+    ClassName       -> H,
+    SelfConjugate   -> True,
+    Mass            -> {MH,125},
+    Width           -> {WH,0.00407},
+    PropagatorLabel -> "H",
+    PropagatorType  -> D,
+    PropagatorArrow -> None,
+    PDG             -> 25,
+    ParticleName    -> "H",
+    FullName        -> "H"
+  },
+
+(* Higgs: physical scalars  *)
+  S[2] == {
+    ClassName       -> G0,
+    SelfConjugate   -> True,
+    Goldstone       -> Z,
+    Mass            -> {MZ, 91.1876},
+    Width           -> {WZ, 2.4952},
+    PropagatorLabel -> "Go",
+    PropagatorType  -> D,
+    PropagatorArrow -> None,
+    PDG             -> 250,
+    ParticleName    -> "G0",
+    FullName        -> "G0"
+  },
+  S[3] == {
+    ClassName        -> GP,
+    SelfConjugate    -> False,
+    Goldstone        -> W,
+    Mass             -> {MW, Internal},
+    QuantumNumbers   -> {Q -> 1},
+    Width            -> {WW, 2.085},
+    PropagatorLabel  -> "GP",
+    PropagatorType   -> D,
+    PropagatorArrow  -> None,
+    PDG              -> 251,
+    ParticleName     -> "G+",
+    AntiParticleName -> "G-",
+    FullName         -> "GP"
+  },
+
+(* Higgs: unphysical scalars  *)
+  S[11] == { 
+    ClassName      -> Phi, 
+    Unphysical     -> True, 
+    Indices        -> {Index[SU2D]},
+    FlavorIndex    -> SU2D,
+    SelfConjugate  -> False,
+    QuantumNumbers -> {Y -> 1/2},
+    Definitions    -> { Phi[1] -> -I GP, Phi[2] -> (vev + H + I G0)/Sqrt[2]  }
+  }
+};
+
+
+(* ************************** *)
+(* *****     Gauge      ***** *)
+(* *****   Parameters   ***** *)
+(* *****   (FeynArts)   ***** *)
+(* ************************** *)
+
+GaugeXi[ V[1]  ] = GaugeXi[A];
+GaugeXi[ V[2]  ] = GaugeXi[Z];
+GaugeXi[ V[3]  ] = GaugeXi[W];
+GaugeXi[ V[4]  ] = GaugeXi[G];
+GaugeXi[ S[1]  ] = 1;
+GaugeXi[ S[2]  ] = GaugeXi[Z];
+GaugeXi[ S[3]  ] = GaugeXi[W];
+GaugeXi[ U[1]  ] = GaugeXi[A];
+GaugeXi[ U[2]  ] = GaugeXi[Z];
+GaugeXi[ U[31] ] = GaugeXi[W];
+GaugeXi[ U[32] ] = GaugeXi[W];
+GaugeXi[ U[4]  ] = GaugeXi[G];
+
+
+(* ************************** *)
+(* *****   Parameters   ***** *)
+(* ************************** *)
+M$Parameters = {
+
+  (* External parameters *)
+  aEWM1 == { 
+    ParameterType    -> External, 
+    BlockName        -> SMINPUTS, 
+    OrderBlock       -> 1, 
+    Value            -> 127.9,
+    InteractionOrder -> {QED,-2},
+    Description      -> "Inverse of the EW coupling constant at the Z pole"
+  },
+  Gf == {
+    ParameterType    -> External,
+    BlockName        -> SMINPUTS,
+    OrderBlock       -> 2,
+    Value            -> 1.16637*^-5, 
+    InteractionOrder -> {QED,2},
+    TeX              -> Subscript[G,f],
+    Description      -> "Fermi constant"
+  },
+  aS    == { 
+    ParameterType    -> External,
+    BlockName        -> SMINPUTS,
+    OrderBlock       -> 3,
+    Value            -> 0.1184, 
+    InteractionOrder -> {QCD,2},
+    TeX              -> Subscript[\[Alpha],s],
+    Description      -> "Strong coupling constant at the Z pole"
+  },
+  ymdo == {
+    ParameterType -> External,
+    BlockName     -> YUKAWA,
+    OrderBlock    -> 1,
+    Value         -> 5.04*^-3,
+    Description   -> "Down Yukawa mass"
+  },
+  ymup == {
+    ParameterType -> External,
+    BlockName     -> YUKAWA,
+    OrderBlock    -> 2,
+    Value         -> 2.55*^-3,
+    Description   -> "Up Yukawa mass"
+  },
+  yms == {
+    ParameterType -> External,
+    BlockName     -> YUKAWA,
+    OrderBlock    -> 3,
+    Value         -> 0.101,
+    Description   -> "Strange Yukawa mass"
+  },
+  ymc == {
+    ParameterType -> External,
+    BlockName     -> YUKAWA,
+    OrderBlock    -> 4,
+    Value         -> 1.27,
+    Description   -> "Charm Yukawa mass"
+  },
+  ymb == {
+    ParameterType -> External,
+    BlockName     -> YUKAWA,
+    OrderBlock    -> 5,
+    Value         -> 4.7,
+    Description   -> "Bottom Yukawa mass"
+  },
+  ymt == {
+    ParameterType -> External,
+    BlockName     -> YUKAWA,
+    OrderBlock    -> 6,
+    Value         -> 172,
+    Description   -> "Top Yukawa mass"
+  },
+  yme == {
+    ParameterType -> External,
+    BlockName     -> YUKAWA,
+    OrderBlock    -> 11,
+    Value         -> 5.11*^-4,
+    Description   -> "Electron Yukawa mass"
+  },
+  ymm == {
+    ParameterType -> External,
+    BlockName     -> YUKAWA,
+    OrderBlock    -> 13,
+    Value         -> 0.10566,
+    Description   -> "Muon Yukawa mass"
+  },
+  ymtau == {
+    ParameterType -> External,
+    BlockName     -> YUKAWA,
+    OrderBlock    -> 15,
+    Value         -> 1.777,
+    Description   -> "Tau Yukawa mass"
+  },
+  cabi == {
+    ParameterType -> External,
+    BlockName     -> CKMBLOCK,
+    OrderBlock    -> 1,
+    Value         -> 0.227736,
+    TeX           -> Subscript[\[Theta], c],
+    Description   -> "Cabibbo angle"
+  },
+
+  (* Internal Parameters *)
+  aEW == {
+    ParameterType    -> Internal,
+    Value            -> 1/aEWM1,
+    InteractionOrder -> {QED,2},
+    TeX              -> Subscript[\[Alpha], EW],
+    Description      -> "Electroweak coupling contant"
+  },
+  MW == { 
+    ParameterType -> Internal, 
+    Value         -> Sqrt[MZ^2/2+Sqrt[MZ^4/4-Pi/Sqrt[2]*aEW/Gf*MZ^2]], 
+    TeX           -> Subscript[M,W], 
+    Description   -> "W mass"
+  },
+  sw2 == { 
+    ParameterType -> Internal, 
+    Value         -> 1-(MW/MZ)^2, 
+    Description   -> "Squared Sin of the Weinberg angle"
+  },
+  ee == { 
+    ParameterType    -> Internal, 
+    Value            -> Sqrt[4 Pi aEW], 
+    InteractionOrder -> {QED,1}, 
+    TeX              -> e,  
+    Description      -> "Electric coupling constant"
+  },
+  cw == { 
+    ParameterType -> Internal, 
+    Value         -> Sqrt[1-sw2], 
+    TeX           -> Subscript[c,w], 
+    Description   -> "Cosine of the Weinberg angle"
+  },
+  sw == { 
+    ParameterType -> Internal, 
+    Value         -> Sqrt[sw2], 
+    TeX           -> Subscript[s,w], 
+    Description   -> "Sine of the Weinberg angle"
+  },
+  gw == { 
+    ParameterType    -> Internal, 
+    Definitions      -> {gw->ee/sw}, 
+    InteractionOrder -> {QED,1},  
+    TeX              -> Subscript[g,w], 
+    Description      -> "Weak coupling constant at the Z pole"
+  },
+  g1 == { 
+    ParameterType    -> Internal, 
+    Definitions      -> {g1->ee/cw}, 
+    InteractionOrder -> {QED,1},  
+    TeX              -> Subscript[g,1], 
+    Description      -> "U(1)Y coupling constant at the Z pole"
+  },
+  gs == { 
+    ParameterType    -> Internal, 
+    Value            -> Sqrt[4 Pi aS],
+    InteractionOrder -> {QCD,1},  
+    TeX              -> Subscript[g,s], 
+    ParameterName    -> G,
+    Description      -> "Strong coupling constant at the Z pole"
+  },
+  vev == {
+    ParameterType    -> Internal,
+    Value            -> 2*MW*sw/ee, 
+    InteractionOrder -> {QED,-1},
+    Description      -> "Higgs vacuum expectation value"
+  },
+  lam == {
+    ParameterType    -> Internal,
+    Value            -> MH^2/(2*vev^2),
+    InteractionOrder -> {QED, 2},
+    Description      -> "Higgs quartic coupling"
+  },
+  muH == {
+    ParameterType -> Internal,
+    Value         -> Sqrt[vev^2 lam],
+    TeX           -> \[Mu],
+    Description   -> "Coefficient of the quadratic piece of the Higgs potential"
+  },
+  yl == {
+    ParameterType    -> Internal,
+    Indices          -> {Index[Generation], Index[Generation]},
+    Definitions      -> {yl[i_?NumericQ, j_?NumericQ] :> 0  /; (i =!= j)},
+    Value            -> {yl[1,1] -> Sqrt[2] yme / vev, yl[2,2] -> Sqrt[2] ymm / vev, yl[3,3] -> Sqrt[2] ymtau / vev},
+    InteractionOrder -> {QED, 1},
+    ParameterName    -> {yl[1,1] -> ye, yl[2,2] -> ym, yl[3,3] -> ytau},
+    TeX              -> Superscript[y, l],
+    Description      -> "Lepton Yukawa couplings"
+  },
+  yu == {
+    ParameterType    -> Internal,
+    Indices          -> {Index[Generation], Index[Generation]},
+    Definitions      -> {yu[i_?NumericQ, j_?NumericQ] :> 0  /; (i =!= j)},
+    Value            -> {yu[1,1] -> Sqrt[2] ymup/vev, yu[2,2] -> Sqrt[2] ymc/vev, yu[3,3] -> Sqrt[2] ymt/vev},
+    InteractionOrder -> {QED, 1},
+    ParameterName    -> {yu[1,1] -> yup, yu[2,2] -> yc, yu[3,3] -> yt},
+    TeX              -> Superscript[y, u],
+    Description      -> "Up-type Yukawa couplings"
+  },
+  yd == {
+    ParameterType    -> Internal,
+    Indices          -> {Index[Generation], Index[Generation]},
+    Definitions      -> {yd[i_?NumericQ, j_?NumericQ] :> 0  /; (i =!= j)},
+    Value            -> {yd[1,1] -> Sqrt[2] ymdo/vev, yd[2,2] -> Sqrt[2] yms/vev, yd[3,3] -> Sqrt[2] ymb/vev},
+    InteractionOrder -> {QED, 1},
+    ParameterName    -> {yd[1,1] -> ydo, yd[2,2] -> ys, yd[3,3] -> yb},
+    TeX              -> Superscript[y, d],
+    Description      -> "Down-type Yukawa couplings"
+  },
+(* N. B. : only Cabibbo mixing! *)
+  CKM == { 
+    ParameterType -> Internal,
+    Indices       -> {Index[Generation], Index[Generation]},
+    Unitary       -> True,
+    Value         -> {CKM[1,1] -> Cos[cabi],  CKM[1,2] -> Sin[cabi], CKM[1,3] -> 0,
+                      CKM[2,1] -> -Sin[cabi], CKM[2,2] -> Cos[cabi], CKM[2,3] -> 0,
+                      CKM[3,1] -> 0,          CKM[3,2] -> 0,         CKM[3,3] -> 1},
+    TeX         -> Superscript[V,CKM],
+    Description -> "CKM-Matrix"}
+};
+
+(* ************************** *)
+(* *****   Lagrangian   ***** *)
+(* ************************** *)
+
+LGauge := Block[{mu,nu,ii,aa}, 
+  ExpandIndices[-1/4 FS[B,mu,nu] FS[B,mu,nu] - 1/4 FS[Wi,mu,nu,ii] FS[Wi,mu,nu,ii] - 1/4 FS[G,mu,nu,aa] FS[G,mu,nu,aa], FlavorExpand->SU2W]];
+
+LFermions := Block[{mu}, 
+  ExpandIndices[I*(
+    QLbar.Ga[mu].DC[QL, mu] + LLbar.Ga[mu].DC[LL, mu] + uRbar.Ga[mu].DC[uR, mu] + dRbar.Ga[mu].DC[dR, mu] + lRbar.Ga[mu].DC[lR, mu]), 
+  FlavorExpand->{SU2W,SU2D}]/.{CKM[a_,b_] Conjugate[CKM[a_,c_]]->IndexDelta[b,c], CKM[b_,a_] Conjugate[CKM[c_,a_]]->IndexDelta[b,c]}];
+
+LHiggs := Block[{ii,mu, feynmangaugerules},
+  feynmangaugerules = If[Not[FeynmanGauge], {G0|GP|GPbar ->0}, {}];
+ 
+  ExpandIndices[DC[Phibar[ii],mu] DC[Phi[ii],mu] + muH^2 Phibar[ii] Phi[ii] - lam Phibar[ii] Phi[ii] Phibar[jj] Phi[jj], FlavorExpand->{SU2D,SU2W}]/.feynmangaugerules
+ ];
+
+LYukawa := Block[{sp,ii,jj,cc,ff1,ff2,ff3,yuk,feynmangaugerules},
+  feynmangaugerules = If[Not[FeynmanGauge], {G0|GP|GPbar ->0}, {}];
+ 
+  yuk = ExpandIndices[
+   -yd[ff2, ff3] CKM[ff1, ff2] QLbar[sp, ii, ff1, cc].dR [sp, ff3, cc] Phi[ii] - 
+    yl[ff1, ff3] LLbar[sp, ii, ff1].lR [sp, ff3] Phi[ii] - 
+    yu[ff1, ff2] QLbar[sp, ii, ff1, cc].uR [sp, ff2, cc] Phibar[jj] Eps[ii, jj], FlavorExpand -> SU2D];
+  yuk = yuk /. { CKM[a_, b_] Conjugate[CKM[a_, c_]] -> IndexDelta[b, c], CKM[b_, a_] Conjugate[CKM[c_, a_]] -> IndexDelta[b, c]};
+  yuk+HC[yuk]/.feynmangaugerules
+ ];
+
+LGhost := Block[{LGh1,LGhw,LGhs,LGhphi,mu, generators,gh,ghbar,Vectorize,phi1,phi2,togoldstones,doublet,doublet0},
+  (* Pure gauge piece *) 	
+  LGh1 = -ghBbar.del[DC[ghB,mu],mu];
+  LGhw = -ghWibar.del[DC[ghWi,mu],mu];
+  LGhs = -ghGbar.del[DC[ghG,mu],mu];
+
+  (* Scalar pieces: see Peskin pages 739-742 *)
+  (* phi1 and phi2 are the real degrees of freedom of GP *)
+  (* Vectorize transforms a doublet in a vector in the phi-basis, i.e. the basis of real degrees of freedom *)
+  gh    = {ghB, ghWi[1], ghWi[2], ghWi[3]};
+  ghbar = {ghBbar, ghWibar[1], ghWibar[2], ghWibar[3]};
+  generators = {-I/2 g1 IdentityMatrix[2], -I/2 gw PauliSigma[1], -I/2 gw PauliSigma[2], -I/2 gw PauliSigma[3]};
+  doublet = Expand[{(-I phi1 - phi2)/Sqrt[2], Phi[2]} /. MR$Definitions /. vev -> 0]; 
+  doublet0 = {0, vev/Sqrt[2]};
+  Vectorize[{a_, b_}]:= Simplify[{Sqrt[2] Re[Expand[a]], Sqrt[2] Im[Expand[a]], Sqrt[2] Re[Expand[b]], Sqrt[2] Im[Expand[b]]}/.{Im[_]->0, Re[num_]->num}];
+  togoldstones := {phi1 -> (GP + GPbar)/Sqrt[2], phi2 -> (-GP + GPbar)/(I Sqrt[2])};
+  LGhphi=Plus@@Flatten[Table[-ghbar[[kkk]].gh[[lll]] Vectorize[generators[[kkk]].doublet0].Vectorize[generators[[lll]].(doublet+doublet0)],{kkk,4},{lll,4}]] /.togoldstones;
+
+ExpandIndices[ LGhs + If[FeynmanGauge, LGh1 + LGhw + LGhphi,0], FlavorExpand->SU2W]];
+
+LSM:= LGauge + LFermions + LHiggs + LYukawa + LGhost;
diff --git a/CHresonance_neutral_scalar_UFO/feynrules/neutral_scalar.fr b/CHresonance_neutral_scalar_UFO/feynrules/neutral_scalar.fr
new file mode 100644
index 0000000..4883f4e
--- /dev/null
+++ b/CHresonance_neutral_scalar_UFO/feynrules/neutral_scalar.fr
@@ -0,0 +1,40 @@
+(* ************************** *)
+(* *****  Information   ***** *)
+(* ************************** *)
+
+M$ModelName = "CHresonance_neutral_scalar";
+
+(* M$InteractionOrderHierarchy = { *)
+(*   {NP , 1},                     *)
+(*   {QCD, 1},                     *)
+(*   {QED, 2}                      *)
+(* };                              *)
+
+M$ClassesDescription = {
+  S[4] == {
+    ClassName     -> s0,
+    SelfConjugate -> True,
+    Mass          -> {Ms0, 1000.0},
+    Width         -> {Ws0, 1.0},
+    ParticleName  -> "s0"}
+}
+
+M$Parameters = {
+  keta == {
+    ParameterType    -> External,
+    Value            -> 1.0,
+    InteractionOrder -> {NP,1},
+    Description      -> "Scalar cubic coupling times (v/f)"},
+  gweak == {
+    ParameterType    -> Internal,
+    Value            -> gw,
+    InteractionOrder -> {QED,0},
+    Description      -> "gw at QED=0 order"},
+  vweak == {
+    ParameterType    -> Internal,
+    Value            -> vev,
+    InteractionOrder -> {QED,0},
+    Description      -> "vev at QED=0 order"}
+}
+
+Lscalar := 1/2 del[s0, mu] del[s0, mu] - 1/2 Ms0^2 s0^2 + keta gweak MW W[mu] Wbar[mu] s0 + keta gweak (1/2) (MZ/cw) Z[mu] Z[mu] s0 + keta (1/vweak) del[H, mu] del[H, mu] s0
diff --git a/CHresonance_neutral_scalar_UFO/feynrules/neutral_scalar.tar.gz b/CHresonance_neutral_scalar_UFO/feynrules/neutral_scalar.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..e2e183f1cb05eeb1484cd679d7e8c31d0b47b252
GIT binary patch
literal 28830
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

literal 0
HcmV?d00001

diff --git a/CHresonance_neutral_scalar_UFO/function_library.py b/CHresonance_neutral_scalar_UFO/function_library.py
new file mode 100644
index 0000000..c4cfad7
--- /dev/null
+++ b/CHresonance_neutral_scalar_UFO/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/CHresonance_neutral_scalar_UFO/lorentz.py b/CHresonance_neutral_scalar_UFO/lorentz.py
new file mode 100644
index 0000000..8f78260
--- /dev/null
+++ b/CHresonance_neutral_scalar_UFO/lorentz.py
@@ -0,0 +1,106 @@
+# This file was automatically created by FeynRules 2.0.2
+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (February 23, 2011)
+# Date: Wed 8 Oct 2014 20:39:09
+
+
+from object_library import all_lorentz, Lorentz
+
+from function_library import complexconjugate, re, im, csc, sec, acsc, asec, cot
+try:
+   import form_factors as ForFac 
+except ImportError:
+   pass
+
+
+UUS1 = Lorentz(name = 'UUS1',
+               spins = [ -1, -1, 1 ],
+               structure = '1')
+
+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')
+
+SSS2 = Lorentz(name = 'SSS2',
+               spins = [ 1, 1, 1 ],
+               structure = 'P(-1,1)*P(-1,2)')
+
+FFS1 = Lorentz(name = 'FFS1',
+               spins = [ 2, 2, 1 ],
+               structure = 'ProjM(2,1)')
+
+FFS2 = Lorentz(name = 'FFS2',
+               spins = [ 2, 2, 1 ],
+               structure = 'ProjM(2,1) - ProjP(2,1)')
+
+FFS3 = Lorentz(name = 'FFS3',
+               spins = [ 2, 2, 1 ],
+               structure = 'ProjP(2,1)')
+
+FFS4 = Lorentz(name = 'FFS4',
+               spins = [ 2, 2, 1 ],
+               structure = 'ProjM(2,1) + ProjP(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)')
+
+VSS1 = Lorentz(name = 'VSS1',
+               spins = [ 3, 1, 1 ],
+               structure = 'P(1,2) - P(1,3)')
+
+VVS1 = Lorentz(name = 'VVS1',
+               spins = [ 3, 3, 1 ],
+               structure = '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)')
+
+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.')
+
diff --git a/CHresonance_neutral_scalar_UFO/object_library.py b/CHresonance_neutral_scalar_UFO/object_library.py
new file mode 100644
index 0000000..ee0a429
--- /dev/null
+++ b/CHresonance_neutral_scalar_UFO/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__.iteritems():
+            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/CHresonance_neutral_scalar_UFO/parameters.py b/CHresonance_neutral_scalar_UFO/parameters.py
new file mode 100644
index 0000000..509a4dd
--- /dev/null
+++ b/CHresonance_neutral_scalar_UFO/parameters.py
@@ -0,0 +1,290 @@
+# This file was automatically created by FeynRules 2.0.2
+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (February 23, 2011)
+# Date: Wed 8 Oct 2014 20:39:09
+
+
+
+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.
+aEWM1 = Parameter(name = 'aEWM1',
+                  nature = 'external',
+                  type = 'real',
+                  value = 127.9,
+                  texname = '\\text{aEWM1}',
+                  lhablock = 'SMINPUTS',
+                  lhacode = [ 1 ])
+
+Gf = Parameter(name = 'Gf',
+               nature = 'external',
+               type = 'real',
+               value = 0.0000116637,
+               texname = 'G_f',
+               lhablock = 'SMINPUTS',
+               lhacode = [ 2 ])
+
+aS = Parameter(name = 'aS',
+               nature = 'external',
+               type = 'real',
+               value = 0.1184,
+               texname = '\\alpha _s',
+               lhablock = 'SMINPUTS',
+               lhacode = [ 3 ])
+
+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 = 172,
+                texname = '\\text{ymt}',
+                lhablock = 'YUKAWA',
+                lhacode = [ 6 ])
+
+ymtau = Parameter(name = 'ymtau',
+                  nature = 'external',
+                  type = 'real',
+                  value = 1.777,
+                  texname = '\\text{ymtau}',
+                  lhablock = 'YUKAWA',
+                  lhacode = [ 15 ])
+
+keta = Parameter(name = 'keta',
+                 nature = 'external',
+                 type = 'real',
+                 value = 0.1474,
+                 texname = '\\text{keta}',
+                 lhablock = 'FRBlock',
+                 lhacode = [ 1 ])
+
+MZ = Parameter(name = 'MZ',
+               nature = 'external',
+               type = 'real',
+               value = 91.1876,
+               texname = '\\text{MZ}',
+               lhablock = 'MASS',
+               lhacode = [ 23 ])
+
+MTA = Parameter(name = 'MTA',
+                nature = 'external',
+                type = 'real',
+                value = 1.777,
+                texname = '\\text{MTA}',
+                lhablock = 'MASS',
+                lhacode = [ 15 ])
+
+MT = Parameter(name = 'MT',
+               nature = 'external',
+               type = 'real',
+               value = 172,
+               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 ])
+
+MH = Parameter(name = 'MH',
+               nature = 'external',
+               type = 'real',
+               value = 125,
+               texname = '\\text{MH}',
+               lhablock = 'MASS',
+               lhacode = [ 25 ])
+
+Ms0 = Parameter(name = 'Ms0',
+                nature = 'external',
+                type = 'real',
+                value = 7000.0,
+                #value = 1000.0,
+                texname = '\\text{Ms0}',
+                lhablock = 'MASS',
+                lhacode = [ 9000006 ])
+
+WZ = Parameter(name = 'WZ',
+               nature = 'external',
+               type = 'real',
+               value = 2.4952,
+               texname = '\\text{WZ}',
+               lhablock = 'DECAY',
+               lhacode = [ 23 ])
+
+WW = Parameter(name = 'WW',
+               nature = 'external',
+               type = 'real',
+               value = 2.085,
+               texname = '\\text{WW}',
+               lhablock = 'DECAY',
+               lhacode = [ 24 ])
+
+WT = Parameter(name = 'WT',
+               nature = 'external',
+               type = 'real',
+               value = 1.50833649,
+               texname = '\\text{WT}',
+               lhablock = 'DECAY',
+               lhacode = [ 6 ])
+
+WH = Parameter(name = 'WH',
+               nature = 'external',
+               type = 'real',
+               value = 0.00407,
+               texname = '\\text{WH}',
+               lhablock = 'DECAY',
+               lhacode = [ 25 ])
+
+Ws0 = Parameter(name = 'Ws0',
+                nature = 'external',
+                type = 'real',
+                value = 1100.0,
+                texname = '\\text{Ws0}',
+                lhablock = 'DECAY',
+                lhacode = [ 9000006 ])
+
+aEW = Parameter(name = 'aEW',
+                nature = 'internal',
+                type = 'real',
+                value = '1/aEWM1',
+                texname = '\\alpha _{\\text{EW}}')
+
+G = Parameter(name = 'G',
+              nature = 'internal',
+              type = 'real',
+              value = '2*cmath.sqrt(aS)*cmath.sqrt(cmath.pi)',
+              texname = 'G')
+
+MW = Parameter(name = 'MW',
+               nature = 'internal',
+               type = 'real',
+               value = 'cmath.sqrt(MZ**2/2. + cmath.sqrt(MZ**4/4. - (aEW*cmath.pi*MZ**2)/(Gf*cmath.sqrt(2))))',
+               texname = 'M_W')
+
+ee = Parameter(name = 'ee',
+               nature = 'internal',
+               type = 'real',
+               value = '2*cmath.sqrt(aEW)*cmath.sqrt(cmath.pi)',
+               texname = 'e')
+
+sw2 = Parameter(name = 'sw2',
+                nature = 'internal',
+                type = 'real',
+                value = '1 - MW**2/MZ**2',
+                texname = '\\text{sw2}')
+
+cw = Parameter(name = 'cw',
+               nature = 'internal',
+               type = 'real',
+               value = 'cmath.sqrt(1 - sw2)',
+               texname = 'c_w')
+
+sw = Parameter(name = 'sw',
+               nature = 'internal',
+               type = 'real',
+               value = 'cmath.sqrt(sw2)',
+               texname = 's_w')
+
+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')
+
+vev = Parameter(name = 'vev',
+                nature = 'internal',
+                type = 'real',
+                value = '(2*MW*sw)/ee',
+                texname = '\\text{vev}')
+
+gweak = Parameter(name = 'gweak',
+                  nature = 'internal',
+                  type = 'real',
+                  value = 'gw',
+                  texname = '\\text{gweak}')
+
+lam = Parameter(name = 'lam',
+                nature = 'internal',
+                type = 'real',
+                value = 'MH**2/(2.*vev**2)',
+                texname = '\\text{lam}')
+
+vweak = Parameter(name = 'vweak',
+                  nature = 'internal',
+                  type = 'real',
+                  value = 'vev',
+                  texname = '\\text{vweak}')
+
+yb = Parameter(name = 'yb',
+               nature = 'internal',
+               type = 'real',
+               value = '(ymb*cmath.sqrt(2))/vev',
+               texname = '\\text{yb}')
+
+yt = Parameter(name = 'yt',
+               nature = 'internal',
+               type = 'real',
+               value = '(ymt*cmath.sqrt(2))/vev',
+               texname = '\\text{yt}')
+
+ytau = Parameter(name = 'ytau',
+                 nature = 'internal',
+                 type = 'real',
+                 value = '(ymtau*cmath.sqrt(2))/vev',
+                 texname = '\\text{ytau}')
+
+muH = Parameter(name = 'muH',
+                nature = 'internal',
+                type = 'real',
+                value = 'cmath.sqrt(lam*vev**2)',
+                texname = '\\mu')
+
+I1b33 = Parameter(name = 'I1b33',
+                  nature = 'internal',
+                  type = 'complex',
+                  value = 'yb',
+                  texname = '\\text{I1b33}')
+
+I2b33 = Parameter(name = 'I2b33',
+                  nature = 'internal',
+                  type = 'complex',
+                  value = 'yt',
+                  texname = '\\text{I2b33}')
+
+I3b33 = Parameter(name = 'I3b33',
+                  nature = 'internal',
+                  type = 'complex',
+                  value = 'yt',
+                  texname = '\\text{I3b33}')
+
+I4b33 = Parameter(name = 'I4b33',
+                  nature = 'internal',
+                  type = 'complex',
+                  value = 'yb',
+                  texname = '\\text{I4b33}')
+
diff --git a/CHresonance_neutral_scalar_UFO/parametersTemplate.py b/CHresonance_neutral_scalar_UFO/parametersTemplate.py
new file mode 100644
index 0000000..d9ffa12
--- /dev/null
+++ b/CHresonance_neutral_scalar_UFO/parametersTemplate.py
@@ -0,0 +1,289 @@
+# This file was automatically created by FeynRules 2.0.2
+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (February 23, 2011)
+# Date: Wed 8 Oct 2014 20:39:09
+
+
+
+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.
+aEWM1 = Parameter(name = 'aEWM1',
+                  nature = 'external',
+                  type = 'real',
+                  value = 127.9,
+                  texname = '\\text{aEWM1}',
+                  lhablock = 'SMINPUTS',
+                  lhacode = [ 1 ])
+
+Gf = Parameter(name = 'Gf',
+               nature = 'external',
+               type = 'real',
+               value = 0.0000116637,
+               texname = 'G_f',
+               lhablock = 'SMINPUTS',
+               lhacode = [ 2 ])
+
+aS = Parameter(name = 'aS',
+               nature = 'external',
+               type = 'real',
+               value = 0.1184,
+               texname = '\\alpha _s',
+               lhablock = 'SMINPUTS',
+               lhacode = [ 3 ])
+
+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 = 172,
+                texname = '\\text{ymt}',
+                lhablock = 'YUKAWA',
+                lhacode = [ 6 ])
+
+ymtau = Parameter(name = 'ymtau',
+                  nature = 'external',
+                  type = 'real',
+                  value = 1.777,
+                  texname = '\\text{ymtau}',
+                  lhablock = 'YUKAWA',
+                  lhacode = [ 15 ])
+
+keta = Parameter(name = 'keta',
+                 nature = 'external',
+                 type = 'real',
+                 value = 0.1234,
+                 texname = '\\text{keta}',
+                 lhablock = 'FRBlock',
+                 lhacode = [ 1 ])
+
+MZ = Parameter(name = 'MZ',
+               nature = 'external',
+               type = 'real',
+               value = 91.1876,
+               texname = '\\text{MZ}',
+               lhablock = 'MASS',
+               lhacode = [ 23 ])
+
+MTA = Parameter(name = 'MTA',
+                nature = 'external',
+                type = 'real',
+                value = 1.777,
+                texname = '\\text{MTA}',
+                lhablock = 'MASS',
+                lhacode = [ 15 ])
+
+MT = Parameter(name = 'MT',
+               nature = 'external',
+               type = 'real',
+               value = 172,
+               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 ])
+
+MH = Parameter(name = 'MH',
+               nature = 'external',
+               type = 'real',
+               value = 125,
+               texname = '\\text{MH}',
+               lhablock = 'MASS',
+               lhacode = [ 25 ])
+
+Ms0 = Parameter(name = 'Ms0',
+                nature = 'external',
+                type = 'real',
+                value = 1567.0,
+                texname = '\\text{Ms0}',
+                lhablock = 'MASS',
+                lhacode = [ 9000006 ])
+
+WZ = Parameter(name = 'WZ',
+               nature = 'external',
+               type = 'real',
+               value = 2.4952,
+               texname = '\\text{WZ}',
+               lhablock = 'DECAY',
+               lhacode = [ 23 ])
+
+WW = Parameter(name = 'WW',
+               nature = 'external',
+               type = 'real',
+               value = 2.085,
+               texname = '\\text{WW}',
+               lhablock = 'DECAY',
+               lhacode = [ 24 ])
+
+WT = Parameter(name = 'WT',
+               nature = 'external',
+               type = 'real',
+               value = 1.50833649,
+               texname = '\\text{WT}',
+               lhablock = 'DECAY',
+               lhacode = [ 6 ])
+
+WH = Parameter(name = 'WH',
+               nature = 'external',
+               type = 'real',
+               value = 0.00407,
+               texname = '\\text{WH}',
+               lhablock = 'DECAY',
+               lhacode = [ 25 ])
+
+Ws0 = Parameter(name = 'Ws0',
+                nature = 'external',
+                type = 'real',
+                value = 1100.0,
+                texname = '\\text{Ws0}',
+                lhablock = 'DECAY',
+                lhacode = [ 9000006 ])
+
+aEW = Parameter(name = 'aEW',
+                nature = 'internal',
+                type = 'real',
+                value = '1/aEWM1',
+                texname = '\\alpha _{\\text{EW}}')
+
+G = Parameter(name = 'G',
+              nature = 'internal',
+              type = 'real',
+              value = '2*cmath.sqrt(aS)*cmath.sqrt(cmath.pi)',
+              texname = 'G')
+
+MW = Parameter(name = 'MW',
+               nature = 'internal',
+               type = 'real',
+               value = 'cmath.sqrt(MZ**2/2. + cmath.sqrt(MZ**4/4. - (aEW*cmath.pi*MZ**2)/(Gf*cmath.sqrt(2))))',
+               texname = 'M_W')
+
+ee = Parameter(name = 'ee',
+               nature = 'internal',
+               type = 'real',
+               value = '2*cmath.sqrt(aEW)*cmath.sqrt(cmath.pi)',
+               texname = 'e')
+
+sw2 = Parameter(name = 'sw2',
+                nature = 'internal',
+                type = 'real',
+                value = '1 - MW**2/MZ**2',
+                texname = '\\text{sw2}')
+
+cw = Parameter(name = 'cw',
+               nature = 'internal',
+               type = 'real',
+               value = 'cmath.sqrt(1 - sw2)',
+               texname = 'c_w')
+
+sw = Parameter(name = 'sw',
+               nature = 'internal',
+               type = 'real',
+               value = 'cmath.sqrt(sw2)',
+               texname = 's_w')
+
+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')
+
+vev = Parameter(name = 'vev',
+                nature = 'internal',
+                type = 'real',
+                value = '(2*MW*sw)/ee',
+                texname = '\\text{vev}')
+
+gweak = Parameter(name = 'gweak',
+                  nature = 'internal',
+                  type = 'real',
+                  value = 'gw',
+                  texname = '\\text{gweak}')
+
+lam = Parameter(name = 'lam',
+                nature = 'internal',
+                type = 'real',
+                value = 'MH**2/(2.*vev**2)',
+                texname = '\\text{lam}')
+
+vweak = Parameter(name = 'vweak',
+                  nature = 'internal',
+                  type = 'real',
+                  value = 'vev',
+                  texname = '\\text{vweak}')
+
+yb = Parameter(name = 'yb',
+               nature = 'internal',
+               type = 'real',
+               value = '(ymb*cmath.sqrt(2))/vev',
+               texname = '\\text{yb}')
+
+yt = Parameter(name = 'yt',
+               nature = 'internal',
+               type = 'real',
+               value = '(ymt*cmath.sqrt(2))/vev',
+               texname = '\\text{yt}')
+
+ytau = Parameter(name = 'ytau',
+                 nature = 'internal',
+                 type = 'real',
+                 value = '(ymtau*cmath.sqrt(2))/vev',
+                 texname = '\\text{ytau}')
+
+muH = Parameter(name = 'muH',
+                nature = 'internal',
+                type = 'real',
+                value = 'cmath.sqrt(lam*vev**2)',
+                texname = '\\mu')
+
+I1b33 = Parameter(name = 'I1b33',
+                  nature = 'internal',
+                  type = 'complex',
+                  value = 'yb',
+                  texname = '\\text{I1b33}')
+
+I2b33 = Parameter(name = 'I2b33',
+                  nature = 'internal',
+                  type = 'complex',
+                  value = 'yt',
+                  texname = '\\text{I2b33}')
+
+I3b33 = Parameter(name = 'I3b33',
+                  nature = 'internal',
+                  type = 'complex',
+                  value = 'yt',
+                  texname = '\\text{I3b33}')
+
+I4b33 = Parameter(name = 'I4b33',
+                  nature = 'internal',
+                  type = 'complex',
+                  value = 'yb',
+                  texname = '\\text{I4b33}')
+
diff --git a/CHresonance_neutral_scalar_UFO/particles.py b/CHresonance_neutral_scalar_UFO/particles.py
new file mode 100644
index 0000000..5f25324
--- /dev/null
+++ b/CHresonance_neutral_scalar_UFO/particles.py
@@ -0,0 +1,401 @@
+# This file was automatically created by FeynRules 2.0.2
+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (February 23, 2011)
+# Date: Wed 8 Oct 2014 20:39:09
+
+
+from __future__ import division
+from object_library import all_particles, Particle
+import parameters as Param
+
+import propagators as Prop
+
+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,
+             Y = 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,
+             Y = 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,
+                     Y = 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,
+             Y = 0)
+
+ghA = Particle(pdg_code = 9000001,
+               name = 'ghA',
+               antiname = 'ghA~',
+               spin = -1,
+               color = 1,
+               mass = Param.ZERO,
+               width = Param.ZERO,
+               texname = 'ghA',
+               antitexname = 'ghA~',
+               charge = 0,
+               GhostNumber = 1,
+               LeptonNumber = 0,
+               Y = 0)
+
+ghA__tilde__ = ghA.anti()
+
+ghZ = Particle(pdg_code = 9000002,
+               name = 'ghZ',
+               antiname = 'ghZ~',
+               spin = -1,
+               color = 1,
+               mass = Param.MZ,
+               width = Param.WZ,
+               texname = 'ghZ',
+               antitexname = 'ghZ~',
+               charge = 0,
+               GhostNumber = 1,
+               LeptonNumber = 0,
+               Y = 0)
+
+ghZ__tilde__ = ghZ.anti()
+
+ghWp = Particle(pdg_code = 9000003,
+                name = 'ghWp',
+                antiname = 'ghWp~',
+                spin = -1,
+                color = 1,
+                mass = Param.MW,
+                width = Param.WW,
+                texname = 'ghWp',
+                antitexname = 'ghWp~',
+                charge = 1,
+                GhostNumber = 1,
+                LeptonNumber = 0,
+                Y = 0)
+
+ghWp__tilde__ = ghWp.anti()
+
+ghWm = Particle(pdg_code = 9000004,
+                name = 'ghWm',
+                antiname = 'ghWm~',
+                spin = -1,
+                color = 1,
+                mass = Param.MW,
+                width = Param.WW,
+                texname = 'ghWm',
+                antitexname = 'ghWm~',
+                charge = -1,
+                GhostNumber = 1,
+                LeptonNumber = 0,
+                Y = 0)
+
+ghWm__tilde__ = ghWm.anti()
+
+ghG = Particle(pdg_code = 9000005,
+               name = 'ghG',
+               antiname = 'ghG~',
+               spin = -1,
+               color = 8,
+               mass = Param.ZERO,
+               width = Param.ZERO,
+               texname = 'ghG',
+               antitexname = 'ghG~',
+               charge = 0,
+               GhostNumber = 1,
+               LeptonNumber = 0,
+               Y = 0)
+
+ghG__tilde__ = ghG.anti()
+
+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,
+              Y = 0)
+
+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,
+              Y = 0)
+
+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,
+              Y = 0)
+
+vt__tilde__ = vt.anti()
+
+e__minus__ = Particle(pdg_code = 11,
+                      name = 'e-',
+                      antiname = 'e+',
+                      spin = 2,
+                      color = 1,
+                      mass = Param.ZERO,
+                      width = Param.ZERO,
+                      texname = 'e-',
+                      antitexname = 'e+',
+                      charge = -1,
+                      GhostNumber = 0,
+                      LeptonNumber = 1,
+                      Y = 0)
+
+e__plus__ = e__minus__.anti()
+
+mu__minus__ = Particle(pdg_code = 13,
+                       name = 'mu-',
+                       antiname = 'mu+',
+                       spin = 2,
+                       color = 1,
+                       mass = Param.ZERO,
+                       width = Param.ZERO,
+                       texname = 'mu-',
+                       antitexname = 'mu+',
+                       charge = -1,
+                       GhostNumber = 0,
+                       LeptonNumber = 1,
+                       Y = 0)
+
+mu__plus__ = mu__minus__.anti()
+
+ta__minus__ = Particle(pdg_code = 15,
+                       name = 'ta-',
+                       antiname = 'ta+',
+                       spin = 2,
+                       color = 1,
+                       mass = Param.MTA,
+                       width = Param.ZERO,
+                       texname = 'ta-',
+                       antitexname = 'ta+',
+                       charge = -1,
+                       GhostNumber = 0,
+                       LeptonNumber = 1,
+                       Y = 0)
+
+ta__plus__ = ta__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,
+             Y = 0)
+
+u__tilde__ = u.anti()
+
+c = Particle(pdg_code = 4,
+             name = 'c',
+             antiname = 'c~',
+             spin = 2,
+             color = 3,
+             mass = Param.ZERO,
+             width = Param.ZERO,
+             texname = 'c',
+             antitexname = 'c~',
+             charge = 2/3,
+             GhostNumber = 0,
+             LeptonNumber = 0,
+             Y = 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,
+             Y = 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,
+             Y = 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,
+             Y = 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,
+             Y = 0)
+
+b__tilde__ = b.anti()
+
+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,
+             Y = 0)
+
+G0 = Particle(pdg_code = 250,
+              name = 'G0',
+              antiname = 'G0',
+              spin = 1,
+              color = 1,
+              mass = Param.MZ,
+              width = Param.WZ,
+              texname = 'G0',
+              antitexname = 'G0',
+              goldstone = True,
+              charge = 0,
+              GhostNumber = 0,
+              LeptonNumber = 0,
+              Y = 0)
+
+G__plus__ = Particle(pdg_code = 251,
+                     name = 'G+',
+                     antiname = 'G-',
+                     spin = 1,
+                     color = 1,
+                     mass = Param.MW,
+                     width = Param.WW,
+                     texname = 'G+',
+                     antitexname = 'G-',
+                     goldstone = True,
+                     charge = 1,
+                     GhostNumber = 0,
+                     LeptonNumber = 0,
+                     Y = 0)
+
+G__minus__ = G__plus__.anti()
+
+s0 = Particle(pdg_code = 9000006,
+              name = 's0',
+              antiname = 's0',
+              spin = 1,
+              color = 1,
+              mass = Param.Ms0,
+              width = Param.Ws0,
+              texname = 's0',
+              antitexname = 's0',
+              charge = 0,
+              GhostNumber = 0,
+              LeptonNumber = 0,
+              Y = 0)
+
diff --git a/CHresonance_neutral_scalar_UFO/propagators.py b/CHresonance_neutral_scalar_UFO/propagators.py
new file mode 100644
index 0000000..8d42159
--- /dev/null
+++ b/CHresonance_neutral_scalar_UFO/propagators.py
@@ -0,0 +1,35 @@
+# This file was automatically created by FeynRules 1.7.69
+# 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/CHresonance_neutral_scalar_UFO/vertices.py b/CHresonance_neutral_scalar_UFO/vertices.py
new file mode 100644
index 0000000..232cd4b
--- /dev/null
+++ b/CHresonance_neutral_scalar_UFO/vertices.py
@@ -0,0 +1,743 @@
+# This file was automatically created by FeynRules 2.0.2
+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (February 23, 2011)
+# Date: Wed 8 Oct 2014 20:39:09
+
+
+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.G0, P.G0, P.G0, P.G0 ],
+             color = [ '1' ],
+             lorentz = [ L.SSSS1 ],
+             couplings = {(0,0):C.GC_19})
+
+V_2 = Vertex(name = 'V_2',
+             particles = [ P.G0, P.G0, P.G__minus__, P.G__plus__ ],
+             color = [ '1' ],
+             lorentz = [ L.SSSS1 ],
+             couplings = {(0,0):C.GC_17})
+
+V_3 = Vertex(name = 'V_3',
+             particles = [ P.G__minus__, P.G__minus__, P.G__plus__, P.G__plus__ ],
+             color = [ '1' ],
+             lorentz = [ L.SSSS1 ],
+             couplings = {(0,0):C.GC_18})
+
+V_4 = Vertex(name = 'V_4',
+             particles = [ P.G0, P.G0, P.H, P.H ],
+             color = [ '1' ],
+             lorentz = [ L.SSSS1 ],
+             couplings = {(0,0):C.GC_17})
+
+V_5 = Vertex(name = 'V_5',
+             particles = [ P.G__minus__, P.G__plus__, P.H, P.H ],
+             color = [ '1' ],
+             lorentz = [ L.SSSS1 ],
+             couplings = {(0,0):C.GC_17})
+
+V_6 = Vertex(name = 'V_6',
+             particles = [ P.H, P.H, P.H, P.H ],
+             color = [ '1' ],
+             lorentz = [ L.SSSS1 ],
+             couplings = {(0,0):C.GC_19})
+
+V_7 = Vertex(name = 'V_7',
+             particles = [ P.G0, P.G0, P.H ],
+             color = [ '1' ],
+             lorentz = [ L.SSS1 ],
+             couplings = {(0,0):C.GC_47})
+
+V_8 = Vertex(name = 'V_8',
+             particles = [ P.G__minus__, P.G__plus__, P.H ],
+             color = [ '1' ],
+             lorentz = [ L.SSS1 ],
+             couplings = {(0,0):C.GC_47})
+
+V_9 = Vertex(name = 'V_9',
+             particles = [ P.H, P.H, P.H ],
+             color = [ '1' ],
+             lorentz = [ L.SSS1 ],
+             couplings = {(0,0):C.GC_48})
+
+V_10 = Vertex(name = 'V_10',
+              particles = [ P.a, P.a, P.G__minus__, P.G__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_6})
+
+V_11 = Vertex(name = 'V_11',
+              particles = [ P.a, P.G__minus__, P.G__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.VSS1 ],
+              couplings = {(0,0):C.GC_3})
+
+V_12 = Vertex(name = 'V_12',
+              particles = [ P.ghA, P.ghWm__tilde__, P.W__minus__ ],
+              color = [ '1' ],
+              lorentz = [ L.UUV1 ],
+              couplings = {(0,0):C.GC_3})
+
+V_13 = Vertex(name = 'V_13',
+              particles = [ P.ghA, P.ghWp__tilde__, P.W__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.UUV1 ],
+              couplings = {(0,0):C.GC_4})
+
+V_14 = Vertex(name = 'V_14',
+              particles = [ P.ghWm, P.ghA__tilde__, P.G__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.UUS1 ],
+              couplings = {(0,0):C.GC_54})
+
+V_15 = Vertex(name = 'V_15',
+              particles = [ P.ghWm, P.ghA__tilde__, P.W__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.UUV1 ],
+              couplings = {(0,0):C.GC_3})
+
+V_16 = Vertex(name = 'V_16',
+              particles = [ P.ghWm, P.ghWm__tilde__, P.G0 ],
+              color = [ '1' ],
+              lorentz = [ L.UUS1 ],
+              couplings = {(0,0):C.GC_49})
+
+V_17 = Vertex(name = 'V_17',
+              particles = [ P.ghWm, P.ghWm__tilde__, P.H ],
+              color = [ '1' ],
+              lorentz = [ L.UUS1 ],
+              couplings = {(0,0):C.GC_50})
+
+V_18 = Vertex(name = 'V_18',
+              particles = [ P.ghWm, P.ghWm__tilde__, P.a ],
+              color = [ '1' ],
+              lorentz = [ L.UUV1 ],
+              couplings = {(0,0):C.GC_4})
+
+V_19 = Vertex(name = 'V_19',
+              particles = [ P.ghWm, P.ghWm__tilde__, P.Z ],
+              color = [ '1' ],
+              lorentz = [ L.UUV1 ],
+              couplings = {(0,0):C.GC_32})
+
+V_20 = Vertex(name = 'V_20',
+              particles = [ P.ghWm, P.ghZ__tilde__, P.G__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.UUS1 ],
+              couplings = {(0,0):C.GC_57})
+
+V_21 = Vertex(name = 'V_21',
+              particles = [ P.ghWm, P.ghZ__tilde__, P.W__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.UUV1 ],
+              couplings = {(0,0):C.GC_31})
+
+V_22 = Vertex(name = 'V_22',
+              particles = [ P.ghWp, P.ghA__tilde__, P.G__minus__ ],
+              color = [ '1' ],
+              lorentz = [ L.UUS1 ],
+              couplings = {(0,0):C.GC_53})
+
+V_23 = Vertex(name = 'V_23',
+              particles = [ P.ghWp, P.ghA__tilde__, P.W__minus__ ],
+              color = [ '1' ],
+              lorentz = [ L.UUV1 ],
+              couplings = {(0,0):C.GC_4})
+
+V_24 = Vertex(name = 'V_24',
+              particles = [ P.ghWp, P.ghWp__tilde__, P.G0 ],
+              color = [ '1' ],
+              lorentz = [ L.UUS1 ],
+              couplings = {(0,0):C.GC_52})
+
+V_25 = Vertex(name = 'V_25',
+              particles = [ P.ghWp, P.ghWp__tilde__, P.H ],
+              color = [ '1' ],
+              lorentz = [ L.UUS1 ],
+              couplings = {(0,0):C.GC_50})
+
+V_26 = Vertex(name = 'V_26',
+              particles = [ P.ghWp, P.ghWp__tilde__, P.a ],
+              color = [ '1' ],
+              lorentz = [ L.UUV1 ],
+              couplings = {(0,0):C.GC_3})
+
+V_27 = Vertex(name = 'V_27',
+              particles = [ P.ghWp, P.ghWp__tilde__, P.Z ],
+              color = [ '1' ],
+              lorentz = [ L.UUV1 ],
+              couplings = {(0,0):C.GC_31})
+
+V_28 = Vertex(name = 'V_28',
+              particles = [ P.ghWp, P.ghZ__tilde__, P.G__minus__ ],
+              color = [ '1' ],
+              lorentz = [ L.UUS1 ],
+              couplings = {(0,0):C.GC_56})
+
+V_29 = Vertex(name = 'V_29',
+              particles = [ P.ghWp, P.ghZ__tilde__, P.W__minus__ ],
+              color = [ '1' ],
+              lorentz = [ L.UUV1 ],
+              couplings = {(0,0):C.GC_32})
+
+V_30 = Vertex(name = 'V_30',
+              particles = [ P.ghZ, P.ghWm__tilde__, P.G__minus__ ],
+              color = [ '1' ],
+              lorentz = [ L.UUS1 ],
+              couplings = {(0,0):C.GC_58})
+
+V_31 = Vertex(name = 'V_31',
+              particles = [ P.ghZ, P.ghWm__tilde__, P.W__minus__ ],
+              color = [ '1' ],
+              lorentz = [ L.UUV1 ],
+              couplings = {(0,0):C.GC_31})
+
+V_32 = Vertex(name = 'V_32',
+              particles = [ P.ghZ, P.ghWp__tilde__, P.G__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.UUS1 ],
+              couplings = {(0,0):C.GC_55})
+
+V_33 = Vertex(name = 'V_33',
+              particles = [ P.ghZ, P.ghWp__tilde__, P.W__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.UUV1 ],
+              couplings = {(0,0):C.GC_32})
+
+V_34 = Vertex(name = 'V_34',
+              particles = [ P.ghZ, P.ghZ__tilde__, P.H ],
+              color = [ '1' ],
+              lorentz = [ L.UUS1 ],
+              couplings = {(0,0):C.GC_59})
+
+V_35 = Vertex(name = 'V_35',
+              particles = [ P.ghG, P.ghG__tilde__, P.g ],
+              color = [ 'f(1,2,3)' ],
+              lorentz = [ L.UUV1 ],
+              couplings = {(0,0):C.GC_10})
+
+V_36 = Vertex(name = 'V_36',
+              particles = [ P.g, P.g, P.g ],
+              color = [ 'f(1,2,3)' ],
+              lorentz = [ L.VVV1 ],
+              couplings = {(0,0):C.GC_10})
+
+V_37 = Vertex(name = 'V_37',
+              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_12,(0,0):C.GC_12,(2,2):C.GC_12})
+
+V_38 = Vertex(name = 'V_38',
+              particles = [ P.t__tilde__, P.b, P.G__plus__ ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFS1, L.FFS3 ],
+              couplings = {(0,0):C.GC_13,(0,1):C.GC_14})
+
+V_39 = Vertex(name = 'V_39',
+              particles = [ P.b__tilde__, P.b, P.G0 ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFS2 ],
+              couplings = {(0,0):C.GC_62})
+
+V_40 = Vertex(name = 'V_40',
+              particles = [ P.b__tilde__, P.b, P.H ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFS4 ],
+              couplings = {(0,0):C.GC_63})
+
+V_41 = Vertex(name = 'V_41',
+              particles = [ P.vt__tilde__, P.ta__minus__, P.G__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.FFS1 ],
+              couplings = {(0,0):C.GC_67})
+
+V_42 = Vertex(name = 'V_42',
+              particles = [ P.ta__plus__, P.ta__minus__, P.G0 ],
+              color = [ '1' ],
+              lorentz = [ L.FFS2 ],
+              couplings = {(0,0):C.GC_68})
+
+V_43 = Vertex(name = 'V_43',
+              particles = [ P.ta__plus__, P.ta__minus__, P.H ],
+              color = [ '1' ],
+              lorentz = [ L.FFS4 ],
+              couplings = {(0,0):C.GC_69})
+
+V_44 = Vertex(name = 'V_44',
+              particles = [ P.t__tilde__, P.t, P.G0 ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFS2 ],
+              couplings = {(0,0):C.GC_65})
+
+V_45 = Vertex(name = 'V_45',
+              particles = [ P.t__tilde__, P.t, P.H ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFS4 ],
+              couplings = {(0,0):C.GC_64})
+
+V_46 = Vertex(name = 'V_46',
+              particles = [ P.b__tilde__, P.t, P.G__minus__ ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFS1, L.FFS3 ],
+              couplings = {(0,0):C.GC_15,(0,1):C.GC_16})
+
+V_47 = Vertex(name = 'V_47',
+              particles = [ P.a, P.W__minus__, P.G0, P.G__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_34})
+
+V_48 = Vertex(name = 'V_48',
+              particles = [ P.a, P.W__minus__, P.G__plus__, P.H ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_33})
+
+V_49 = Vertex(name = 'V_49',
+              particles = [ P.a, P.W__minus__, P.G__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.VVS1 ],
+              couplings = {(0,0):C.GC_53})
+
+V_50 = Vertex(name = 'V_50',
+              particles = [ P.W__minus__, P.G0, P.G__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.VSS1 ],
+              couplings = {(0,0):C.GC_27})
+
+V_51 = Vertex(name = 'V_51',
+              particles = [ P.W__minus__, P.G__plus__, P.H ],
+              color = [ '1' ],
+              lorentz = [ L.VSS1 ],
+              couplings = {(0,0):C.GC_25})
+
+V_52 = Vertex(name = 'V_52',
+              particles = [ P.a, P.W__minus__, P.W__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.VVV1 ],
+              couplings = {(0,0):C.GC_4})
+
+V_53 = Vertex(name = 'V_53',
+              particles = [ P.a, P.W__plus__, P.G0, P.G__minus__ ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_34})
+
+V_54 = Vertex(name = 'V_54',
+              particles = [ P.a, P.W__plus__, P.G__minus__, P.H ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_35})
+
+V_55 = Vertex(name = 'V_55',
+              particles = [ P.a, P.W__plus__, P.G__minus__ ],
+              color = [ '1' ],
+              lorentz = [ L.VVS1 ],
+              couplings = {(0,0):C.GC_54})
+
+V_56 = Vertex(name = 'V_56',
+              particles = [ P.W__plus__, P.G0, P.G__minus__ ],
+              color = [ '1' ],
+              lorentz = [ L.VSS1 ],
+              couplings = {(0,0):C.GC_26})
+
+V_57 = Vertex(name = 'V_57',
+              particles = [ P.W__plus__, P.G__minus__, P.H ],
+              color = [ '1' ],
+              lorentz = [ L.VSS1 ],
+              couplings = {(0,0):C.GC_25})
+
+V_58 = Vertex(name = 'V_58',
+              particles = [ P.W__minus__, P.W__plus__, P.G0, P.G0 ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_22})
+
+V_59 = Vertex(name = 'V_59',
+              particles = [ P.W__minus__, P.W__plus__, P.G__minus__, P.G__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_22})
+
+V_60 = Vertex(name = 'V_60',
+              particles = [ P.W__minus__, P.W__plus__, P.H, P.H ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_22})
+
+V_61 = Vertex(name = 'V_61',
+              particles = [ P.W__minus__, P.W__plus__, P.H ],
+              color = [ '1' ],
+              lorentz = [ L.VVS1 ],
+              couplings = {(0,0):C.GC_51})
+
+V_62 = Vertex(name = 'V_62',
+              particles = [ P.a, P.a, P.W__minus__, P.W__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.VVVV2 ],
+              couplings = {(0,0):C.GC_5})
+
+V_63 = Vertex(name = 'V_63',
+              particles = [ P.W__minus__, P.W__plus__, P.Z ],
+              color = [ '1' ],
+              lorentz = [ L.VVV1 ],
+              couplings = {(0,0):C.GC_32})
+
+V_64 = Vertex(name = 'V_64',
+              particles = [ P.W__minus__, P.W__minus__, P.W__plus__, P.W__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.VVVV2 ],
+              couplings = {(0,0):C.GC_23})
+
+V_65 = Vertex(name = 'V_65',
+              particles = [ P.ta__plus__, P.vt, P.G__minus__ ],
+              color = [ '1' ],
+              lorentz = [ L.FFS3 ],
+              couplings = {(0,0):C.GC_66})
+
+V_66 = Vertex(name = 'V_66',
+              particles = [ P.a, P.Z, P.G__minus__, P.G__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_42})
+
+V_67 = Vertex(name = 'V_67',
+              particles = [ P.Z, P.G0, P.H ],
+              color = [ '1' ],
+              lorentz = [ L.VSS1 ],
+              couplings = {(0,0):C.GC_39})
+
+V_68 = Vertex(name = 'V_68',
+              particles = [ P.Z, P.G__minus__, P.G__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.VSS1 ],
+              couplings = {(0,0):C.GC_40})
+
+V_69 = Vertex(name = 'V_69',
+              particles = [ P.W__minus__, P.Z, P.G0, P.G__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_8})
+
+V_70 = Vertex(name = 'V_70',
+              particles = [ P.W__minus__, P.Z, P.G__plus__, P.H ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_9})
+
+V_71 = Vertex(name = 'V_71',
+              particles = [ P.W__minus__, P.Z, P.G__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.VVS1 ],
+              couplings = {(0,0):C.GC_46})
+
+V_72 = Vertex(name = 'V_72',
+              particles = [ P.W__plus__, P.Z, P.G0, P.G__minus__ ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_8})
+
+V_73 = Vertex(name = 'V_73',
+              particles = [ P.W__plus__, P.Z, P.G__minus__, P.H ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_7})
+
+V_74 = Vertex(name = 'V_74',
+              particles = [ P.W__plus__, P.Z, P.G__minus__ ],
+              color = [ '1' ],
+              lorentz = [ L.VVS1 ],
+              couplings = {(0,0):C.GC_45})
+
+V_75 = Vertex(name = 'V_75',
+              particles = [ P.a, P.W__minus__, P.W__plus__, P.Z ],
+              color = [ '1' ],
+              lorentz = [ L.VVVV5 ],
+              couplings = {(0,0):C.GC_36})
+
+V_76 = Vertex(name = 'V_76',
+              particles = [ P.Z, P.Z, P.G0, P.G0 ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_44})
+
+V_77 = Vertex(name = 'V_77',
+              particles = [ P.Z, P.Z, P.G__minus__, P.G__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_43})
+
+V_78 = Vertex(name = 'V_78',
+              particles = [ P.Z, P.Z, P.H, P.H ],
+              color = [ '1' ],
+              lorentz = [ L.VVSS1 ],
+              couplings = {(0,0):C.GC_44})
+
+V_79 = Vertex(name = 'V_79',
+              particles = [ P.Z, P.Z, P.H ],
+              color = [ '1' ],
+              lorentz = [ L.VVS1 ],
+              couplings = {(0,0):C.GC_60})
+
+V_80 = Vertex(name = 'V_80',
+              particles = [ P.W__minus__, P.W__plus__, P.Z, P.Z ],
+              color = [ '1' ],
+              lorentz = [ L.VVVV2 ],
+              couplings = {(0,0):C.GC_24})
+
+V_81 = Vertex(name = 'V_81',
+              particles = [ P.e__plus__, P.ve, P.W__minus__ ],
+              color = [ '1' ],
+              lorentz = [ L.FFV2 ],
+              couplings = {(0,0):C.GC_28})
+
+V_82 = Vertex(name = 'V_82',
+              particles = [ P.mu__plus__, P.vm, P.W__minus__ ],
+              color = [ '1' ],
+              lorentz = [ L.FFV2 ],
+              couplings = {(0,0):C.GC_28})
+
+V_83 = Vertex(name = 'V_83',
+              particles = [ P.ta__plus__, P.vt, P.W__minus__ ],
+              color = [ '1' ],
+              lorentz = [ L.FFV2 ],
+              couplings = {(0,0):C.GC_28})
+
+V_84 = Vertex(name = 'V_84',
+              particles = [ P.ve__tilde__, P.ve, P.Z ],
+              color = [ '1' ],
+              lorentz = [ L.FFV2 ],
+              couplings = {(0,0):C.GC_41})
+
+V_85 = Vertex(name = 'V_85',
+              particles = [ P.vm__tilde__, P.vm, P.Z ],
+              color = [ '1' ],
+              lorentz = [ L.FFV2 ],
+              couplings = {(0,0):C.GC_41})
+
+V_86 = Vertex(name = 'V_86',
+              particles = [ P.vt__tilde__, P.vt, P.Z ],
+              color = [ '1' ],
+              lorentz = [ L.FFV2 ],
+              couplings = {(0,0):C.GC_41})
+
+V_87 = Vertex(name = 'V_87',
+              particles = [ P.ve__tilde__, P.e__minus__, P.W__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.FFV2 ],
+              couplings = {(0,0):C.GC_28})
+
+V_88 = Vertex(name = 'V_88',
+              particles = [ P.vm__tilde__, P.mu__minus__, P.W__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.FFV2 ],
+              couplings = {(0,0):C.GC_28})
+
+V_89 = Vertex(name = 'V_89',
+              particles = [ P.vt__tilde__, P.ta__minus__, P.W__plus__ ],
+              color = [ '1' ],
+              lorentz = [ L.FFV2 ],
+              couplings = {(0,0):C.GC_28})
+
+V_90 = Vertex(name = 'V_90',
+              particles = [ P.e__plus__, P.e__minus__, P.a ],
+              color = [ '1' ],
+              lorentz = [ L.FFV1 ],
+              couplings = {(0,0):C.GC_3})
+
+V_91 = Vertex(name = 'V_91',
+              particles = [ P.mu__plus__, P.mu__minus__, P.a ],
+              color = [ '1' ],
+              lorentz = [ L.FFV1 ],
+              couplings = {(0,0):C.GC_3})
+
+V_92 = Vertex(name = 'V_92',
+              particles = [ P.ta__plus__, P.ta__minus__, P.a ],
+              color = [ '1' ],
+              lorentz = [ L.FFV1 ],
+              couplings = {(0,0):C.GC_3})
+
+V_93 = Vertex(name = 'V_93',
+              particles = [ P.e__plus__, P.e__minus__, P.Z ],
+              color = [ '1' ],
+              lorentz = [ L.FFV2, L.FFV4 ],
+              couplings = {(0,0):C.GC_29,(0,1):C.GC_38})
+
+V_94 = Vertex(name = 'V_94',
+              particles = [ P.mu__plus__, P.mu__minus__, P.Z ],
+              color = [ '1' ],
+              lorentz = [ L.FFV2, L.FFV4 ],
+              couplings = {(0,0):C.GC_29,(0,1):C.GC_38})
+
+V_95 = Vertex(name = 'V_95',
+              particles = [ P.ta__plus__, P.ta__minus__, P.Z ],
+              color = [ '1' ],
+              lorentz = [ L.FFV2, L.FFV4 ],
+              couplings = {(0,0):C.GC_29,(0,1):C.GC_38})
+
+V_96 = Vertex(name = 'V_96',
+              particles = [ P.u__tilde__, P.u, P.a ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFV1 ],
+              couplings = {(0,0):C.GC_2})
+
+V_97 = Vertex(name = 'V_97',
+              particles = [ P.c__tilde__, P.c, P.a ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFV1 ],
+              couplings = {(0,0):C.GC_2})
+
+V_98 = Vertex(name = 'V_98',
+              particles = [ P.t__tilde__, P.t, P.a ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFV1 ],
+              couplings = {(0,0):C.GC_2})
+
+V_99 = Vertex(name = 'V_99',
+              particles = [ P.u__tilde__, P.u, P.Z ],
+              color = [ 'Identity(1,2)' ],
+              lorentz = [ L.FFV2, L.FFV5 ],
+              couplings = {(0,0):C.GC_30,(0,1):C.GC_37})
+
+V_100 = Vertex(name = 'V_100',
+               particles = [ P.c__tilde__, P.c, P.Z ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV2, L.FFV5 ],
+               couplings = {(0,0):C.GC_30,(0,1):C.GC_37})
+
+V_101 = Vertex(name = 'V_101',
+               particles = [ P.t__tilde__, P.t, P.Z ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV2, L.FFV5 ],
+               couplings = {(0,0):C.GC_30,(0,1):C.GC_37})
+
+V_102 = Vertex(name = 'V_102',
+               particles = [ P.u__tilde__, P.u, P.g ],
+               color = [ 'T(3,2,1)' ],
+               lorentz = [ L.FFV1 ],
+               couplings = {(0,0):C.GC_11})
+
+V_103 = Vertex(name = 'V_103',
+               particles = [ P.c__tilde__, P.c, P.g ],
+               color = [ 'T(3,2,1)' ],
+               lorentz = [ L.FFV1 ],
+               couplings = {(0,0):C.GC_11})
+
+V_104 = Vertex(name = 'V_104',
+               particles = [ P.t__tilde__, P.t, P.g ],
+               color = [ 'T(3,2,1)' ],
+               lorentz = [ L.FFV1 ],
+               couplings = {(0,0):C.GC_11})
+
+V_105 = Vertex(name = 'V_105',
+               particles = [ P.d__tilde__, P.u, P.W__minus__ ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_28})
+
+V_106 = Vertex(name = 'V_106',
+               particles = [ P.s__tilde__, P.c, P.W__minus__ ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_28})
+
+V_107 = Vertex(name = 'V_107',
+               particles = [ P.b__tilde__, P.t, P.W__minus__ ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_28})
+
+V_108 = Vertex(name = 'V_108',
+               particles = [ P.u__tilde__, P.d, P.W__plus__ ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_28})
+
+V_109 = Vertex(name = 'V_109',
+               particles = [ P.c__tilde__, P.s, P.W__plus__ ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_28})
+
+V_110 = Vertex(name = 'V_110',
+               particles = [ P.t__tilde__, P.b, P.W__plus__ ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV2 ],
+               couplings = {(0,0):C.GC_28})
+
+V_111 = Vertex(name = 'V_111',
+               particles = [ P.d__tilde__, P.d, P.a ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV1 ],
+               couplings = {(0,0):C.GC_1})
+
+V_112 = Vertex(name = 'V_112',
+               particles = [ P.s__tilde__, P.s, P.a ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV1 ],
+               couplings = {(0,0):C.GC_1})
+
+V_113 = Vertex(name = 'V_113',
+               particles = [ P.b__tilde__, P.b, P.a ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV1 ],
+               couplings = {(0,0):C.GC_1})
+
+V_114 = Vertex(name = 'V_114',
+               particles = [ P.d__tilde__, P.d, P.Z ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV2, L.FFV3 ],
+               couplings = {(0,0):C.GC_29,(0,1):C.GC_37})
+
+V_115 = Vertex(name = 'V_115',
+               particles = [ P.s__tilde__, P.s, P.Z ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV2, L.FFV3 ],
+               couplings = {(0,0):C.GC_29,(0,1):C.GC_37})
+
+V_116 = Vertex(name = 'V_116',
+               particles = [ P.b__tilde__, P.b, P.Z ],
+               color = [ 'Identity(1,2)' ],
+               lorentz = [ L.FFV2, L.FFV3 ],
+               couplings = {(0,0):C.GC_29,(0,1):C.GC_37})
+
+V_117 = Vertex(name = 'V_117',
+               particles = [ P.d__tilde__, P.d, P.g ],
+               color = [ 'T(3,2,1)' ],
+               lorentz = [ L.FFV1 ],
+               couplings = {(0,0):C.GC_11})
+
+V_118 = Vertex(name = 'V_118',
+               particles = [ P.s__tilde__, P.s, P.g ],
+               color = [ 'T(3,2,1)' ],
+               lorentz = [ L.FFV1 ],
+               couplings = {(0,0):C.GC_11})
+
+V_119 = Vertex(name = 'V_119',
+               particles = [ P.b__tilde__, P.b, P.g ],
+               color = [ 'T(3,2,1)' ],
+               lorentz = [ L.FFV1 ],
+               couplings = {(0,0):C.GC_11})
+
+V_120 = Vertex(name = 'V_120',
+               particles = [ P.H, P.H, P.s0 ],
+               color = [ '1' ],
+               lorentz = [ L.SSS2 ],
+               couplings = {(0,0):C.GC_61})
+
+V_121 = Vertex(name = 'V_121',
+               particles = [ P.W__minus__, P.W__plus__, P.s0 ],
+               color = [ '1' ],
+               lorentz = [ L.VVS1 ],
+               couplings = {(0,0):C.GC_20})
+
+V_122 = Vertex(name = 'V_122',
+               particles = [ P.Z, P.Z, P.s0 ],
+               color = [ '1' ],
+               lorentz = [ L.VVS1 ],
+               couplings = {(0,0):C.GC_21})
+
diff --git a/CHresonance_neutral_scalar_UFO/write_param_card.py b/CHresonance_neutral_scalar_UFO/write_param_card.py
new file mode 100644
index 0000000..c97938a
--- /dev/null
+++ b/CHresonance_neutral_scalar_UFO/write_param_card.py
@@ -0,0 +1,207 @@
+
+__date__ = "02 Aug 2012"
+__author__ = 'olivier.mattelaer@uclouvain.be'
+
+from function_library import *
+
+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)
+        self.fsock.close()
+    
+    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]
+            need_writing.sort(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
+        from particles import all_particles
+        for parameter in all_parameters:
+            exec("%s = %s" % (parameter.name, parameter.value))
+        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)
+        # If more than a particles has the same mass/width we need to write it here
+        # as well
+        if lhablock == 'MASS':
+            arg = 'mass'
+            done = [part for (part, param) in self.dep_mass]
+        else:
+            arg = 'width'
+            done = [part for (part, param) in self.dep_width]
+        for particle in all_particles:
+            if particle.pdg_code <0:
+                continue
+            is_define = True
+            if particle not in done:
+                if getattr(particle, arg).lhacode[0] != particle.pdg_code:
+                    is_define = False                
+            if  not is_define:
+                value = float(particle.get(arg).value )
+                name =  particle.get(arg).name 
+                text += """%s %s %f # %s : %s \n""" %(prefix, particle.pdg_code, 
+                        value, particle.name, name)
+
+
+
+
+        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
+        import particles
+        print particles.__file__
+        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': part.spin,
+                                 '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'
+    
-- 
GitLab


From c85fd69c5f23f96f189205b2225777cb2bc36f07 Mon Sep 17 00:00:00 2001
From: Zhen Wang <zhen.wang@cern.ch>
Date: Sat, 24 Sep 2022 06:20:09 +0200
Subject: [PATCH 2/5] 2022-9-24

---
 .asetup.save                                  |  91 ++++++++++++++++++
 .../feynrules/._Cabibbo.rst                   | Bin 193 -> 0 bytes
 .../feynrules/._DiagonalCKM.rst               | Bin 193 -> 0 bytes
 .../feynrules/._Massless.rst                  | Bin 193 -> 0 bytes
 .../feynrules/._Notebook.nb                   | Bin 82 -> 0 bytes
 .../feynrules/._SM.fr                         | Bin 193 -> 0 bytes
 py.py                                         |  70 ++++++++++++++
 7 files changed, 161 insertions(+)
 create mode 100644 .asetup.save
 delete mode 100644 CHresonance_neutral_scalar_UFO/feynrules/._Cabibbo.rst
 delete mode 100644 CHresonance_neutral_scalar_UFO/feynrules/._DiagonalCKM.rst
 delete mode 100644 CHresonance_neutral_scalar_UFO/feynrules/._Massless.rst
 delete mode 100644 CHresonance_neutral_scalar_UFO/feynrules/._Notebook.nb
 delete mode 100644 CHresonance_neutral_scalar_UFO/feynrules/._SM.fr
 create mode 100644 py.py

diff --git a/.asetup.save b/.asetup.save
new file mode 100644
index 0000000..e936995
--- /dev/null
+++ b/.asetup.save
@@ -0,0 +1,91 @@
+#Release cmake
+
+export LANG="C"
+export LC_ALL="C"
+export COOL_ORA_ENABLE_ADAPTIVE_OPT="Y"
+export ASETUP_PRINTLEVEL="0"
+export BINARY_TAG="x86_64-centos7-gcc11-opt"
+export CMTCONFIG="x86_64-centos7-gcc11-opt"
+export ASETUP_SYSBIN=`mktemp -d /tmp/zhenw/.asetup-sysbin-XXXXXX_$$`
+source $AtlasSetup/scripts/sys_exe-alias.sh ''
+if [ -n "${MAKEFLAGS:+x}" ]; then
+    asetup_flags=`echo ${MAKEFLAGS} | \grep ' -l'`
+    if [ -z "${asetup_flags}" ]; then
+        export MAKEFLAGS="${MAKEFLAGS} -l10"
+    fi
+else
+    export MAKEFLAGS="-j10 -l10"
+fi
+source /cvmfs/sft.cern.ch/lcg/releases/gcc/11.2.0-8a51a/x86_64-centos7/setup.sh
+export CC=`\env which gcc 2>/dev/null`
+[[ -z $CC ]] && unset CC
+export CXX=`\env which g++ 2>/dev/null`
+[[ -z $CXX ]] && unset CXX
+export FC=`\env which gfortran 2>/dev/null`
+[[ -z $FC ]] && unset FC
+export CMAKE_NO_VERBOSE="1"
+type lsetup >/dev/null 2>/dev/null
+if [ $? -ne 0 ]; then
+   source ${ATLAS_LOCAL_ROOT_BASE}/user/atlasLocalSetup.sh --quiet
+fi
+source $ATLAS_LOCAL_ROOT_BASE/packageSetups/localSetup.sh --quiet "cmake 3.21.3"
+if [ -z "${AtlasSetup:+x}" ]; then
+    export AtlasSetup="/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/AtlasSetup/V02-00-44/AtlasSetup"
+    export AtlasSetupVersion="AtlasSetup-02-00-44"
+fi
+export TNS_ADMIN="/eos/project/o/oracle/public/admin"
+export FRONTIER_SERVER="(serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy-atlas.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://atlasbpfrontier.cern.ch:3127)(proxyurl=http://atlasbpfrontier.fnal.gov:3127)"
+export ATLAS_POOLCOND_PATH="/cvmfs/atlas-condb.cern.ch/repo/conditions"
+export ATLAS_DB_AREA="/cvmfs/atlas.cern.ch/repo/sw/database"
+export DBRELEASE_OVERRIDE="current"
+export SITEROOT="/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt"
+export AtlasBaseDir="/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/2022-09-09T2101"
+export LCG_RELEASE_BASE="/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases"
+export AtlasBuildStamp="2022-09-09T2101"
+export AtlasReleaseType="nightly"
+export AtlasBuildBranch="master"
+export AtlasProject="Athena"
+export TDAQ_RELEASE_BASE="/cvmfs/atlas.cern.ch/repo/sw/tdaq"
+export ATLAS_RELEASE_BASE="/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/2022-09-09T2101"
+export ATLAS_RELEASEDATA="/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/atlas/offline/ReleaseData"
+export AtlasArea="/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/2022-09-09T2101/Athena/23.0.5"
+export G4PATH="/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/Geant4"
+export AtlasVersion="23.0.5"
+source /cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/2022-09-09T2101/Athena/23.0.5/InstallArea/x86_64-centos7-gcc11-opt/setup.sh
+asetup_status=$?
+if [ ${asetup_status} -ne 0 ]; then
+    \echo "AtlasSetup(ERROR): sourcing release setup script (/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/2022-09-09T2101/Athena/23.0.5/InstallArea/x86_64-centos7-gcc11-opt/setup.sh) failed"
+fi
+export TestArea="/afs/cern.ch/work/z/zhenw/private/vbf/new_model/forked/MadGraphModels"
+alias_sys_exe emacs
+echo $LD_LIBRARY_PATH | egrep "LCG_[^/:]*/curl/" >/dev/null
+if [ $? -eq 0 ]; then
+    alias_sys_exe_envU git
+fi
+\expr 1 \* 1 + 1 >/dev/null 2>&1
+if [ $? -ne 0 ]; then
+    echo -e '\nMaking workaround-alias for expr on this *OLD* machine'; alias_sys_exe expr
+fi
+export PATH="${ASETUP_SYSBIN}:${PATH}"
+
+# Check the completeness in the nightly release
+for onepath in $(echo $LD_LIBRARY_PATH | tr ":" "\n"); do
+   if [[ $onepath == ${AtlasBaseDir}* && ! -d $onepath ]]; then
+      echo \!\! FATAL \!\! $onepath does not exist
+      return 1
+   fi
+done
+
+#Release Summary as follows:
+#Release base=/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/2022-09-09T2101
+#Release project=Athena
+#Release releaseNum=23.0.5
+#Release asconfig=x86_64-centos7-gcc11-opt
+
+# Execute user-specified epilog
+
+source /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/swConfig/asetup/asetupEpilog.sh
+script_status=$?
+if [ ${script_status} -ne 0 ]; then
+    \echo "AtlasSetup(ERROR): User-specified epilog (source /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/swConfig/asetup/asetupEpilog.sh) reported failure (error ${script_status})"
+fi
diff --git a/CHresonance_neutral_scalar_UFO/feynrules/._Cabibbo.rst b/CHresonance_neutral_scalar_UFO/feynrules/._Cabibbo.rst
deleted file mode 100644
index ba703fdbd8abc8944b1d3aea228f0c866553cc6e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 193
zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aX%1)_y>WQ2;dkJ62#d1;RaACNXHBy
z)<o0Bh!7V|&d=3LEGWoH)hjGbEK1BP$;?Y-DAYFq0&7zvGYdmY!$j-g#I(esOzRqi
IVu%O>04LTTg#Z8m

diff --git a/CHresonance_neutral_scalar_UFO/feynrules/._DiagonalCKM.rst b/CHresonance_neutral_scalar_UFO/feynrules/._DiagonalCKM.rst
deleted file mode 100644
index f9849dba7cb194697962e91d9cb7b7cdbedd341e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 193
zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aX%1)_y>WQ2;dkJ62#d1;U-WiNXHBy
z)<o0Bh!7V|&d=3LEGWoH)hjGbEK1BP$;?Y-DAYFq0&7zvGYdmY!$j-g#I(esOzRqi
IVu%O>04O{kh5!Hn

diff --git a/CHresonance_neutral_scalar_UFO/feynrules/._Massless.rst b/CHresonance_neutral_scalar_UFO/feynrules/._Massless.rst
deleted file mode 100644
index 46d242504858a98415ed18aba5f20aac48c90070..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 193
zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aX%1)_y>WQ2;dkJ62#d1;TBLSNXHBy
z)<o0Bh!7V|&d=3LEGWoH)hjGbEK1BP$;?Y-DAYFq0&7zvGYdmY!$j-g#I(esOzRqi
IVu%O>04Sm#hX4Qo

diff --git a/CHresonance_neutral_scalar_UFO/feynrules/._Notebook.nb b/CHresonance_neutral_scalar_UFO/feynrules/._Notebook.nb
deleted file mode 100644
index 6326e0f07c4b56bf4040056198300f6cfae35413..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 82
zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}u>uf-_(4F-5aJpU;_vI~&L9BdVFCb9
Cy#}5D

diff --git a/CHresonance_neutral_scalar_UFO/feynrules/._SM.fr b/CHresonance_neutral_scalar_UFO/feynrules/._SM.fr
deleted file mode 100644
index aeaa9da34a2f77df68bdd5ad967f30e04105bee6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 193
zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aX%1)_y>WQ2;dkJ62#d1;SNwKNXHBy
z)<o0Bh!7V|&d=3LEGWoH)hjGbEK1BP$;?Y-DAYFq0&7zvGYdmY!$j-g#I(esOzRqi
IVu%O>04Z)Ci2wiq

diff --git a/py.py b/py.py
new file mode 100644
index 0000000..d0e5cca
--- /dev/null
+++ b/py.py
@@ -0,0 +1,70 @@
+
+# py.py
+# This file is automatically generated. Do not edit.
+_tabversion = '3.2'
+
+_lr_method = 'LALR'
+
+_lr_signature = b'`k\xca\x14\xb4\xeb\xb8\x84\xa6:g<\xe4\xf1\xccC'
+    
+_lr_action_items = {'-':([0,2,3,4,6,7,8,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,65,66,67,68,69,71,72,73,74,75,77,78,79,80,81,82,83,84,85,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,],[3,30,3,-12,3,-17,-18,-41,3,3,3,3,3,3,3,-40,-9,3,30,3,3,3,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,30,-3,-4,-5,-6,-19,30,3,30,-10,30,30,30,3,3,3,3,30,-13,3,3,3,3,30,30,30,30,30,30,30,3,-14,3,-23,-24,30,30,3,-15,-22,30,-16,]),'FUNCTION':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,]),'NUMBER':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,]),'VARIABLE':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,]),'COND':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,]),'COMPLEX':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,]),'RECMS':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,]),'CSC':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,]),'SEC':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,]),'ACSC':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,]),'ASEC':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,]),'RE':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,]),'IM':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,]),'ARG':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,]),'SQRT':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,]),'TAN':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,]),'ATAN':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,]),'CONJ':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,]),'REGLOG':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,]),'REGLOGP':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,]),'REGLOGM':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,]),'BUILTIN':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,]),'PI':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,]),'(':([0,3,5,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[6,6,37,6,39,40,41,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,65,6,6,6,65,65,6,6,6,65,6,6,6,6,6,6,6,]),'$end':([1,2,4,7,8,27,35,36,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,67,78,83,85,93,95,96,100,101,103,],[0,-1,-12,-17,-18,-41,-40,-9,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,-2,-3,-4,-5,-6,-19,-10,-13,-21,-20,-14,-23,-24,-15,-22,-16,]),'=':([2,4,7,8,27,35,36,38,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67,68,69,71,77,78,83,84,85,88,89,90,91,93,95,96,97,98,100,101,102,103,],[28,-12,-17,-18,-41,-40,-9,28,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,-2,-3,-4,-5,-6,-19,28,28,-10,28,28,28,28,-13,28,28,28,28,28,28,28,-14,-23,-24,28,28,-15,-22,28,-16,]),'+':([2,4,7,8,27,35,36,38,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67,68,69,71,77,78,83,84,85,88,89,90,91,93,95,96,97,98,100,101,102,103,],[29,-12,-17,-18,-41,-40,-9,29,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,29,-3,-4,-5,-6,-19,29,29,-10,29,29,29,29,-13,29,29,29,29,29,29,29,-14,-23,-24,29,29,-15,-22,29,-16,]),'*':([2,4,7,8,27,35,36,38,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67,68,69,71,77,78,83,84,85,88,89,90,91,93,95,96,97,98,100,101,102,103,],[31,-12,-17,-18,-41,-40,-9,31,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,31,31,31,-5,-6,-19,31,31,-10,31,31,31,31,-13,31,31,31,31,31,31,31,-14,-23,-24,31,31,-15,-22,31,-16,]),'/':([2,4,7,8,27,35,36,38,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67,68,69,71,77,78,83,84,85,88,89,90,91,93,95,96,97,98,100,101,102,103,],[32,-12,-17,-18,-41,-40,-9,32,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,32,32,32,-5,-6,-19,32,32,-10,32,32,32,32,-13,32,32,32,32,32,32,32,-14,-23,-24,32,32,-15,-22,32,-16,]),'POWER':([2,4,7,8,27,35,36,38,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67,68,69,71,77,78,83,84,85,88,89,90,91,93,95,96,97,98,100,101,102,103,],[33,-12,-17,-18,-41,-40,33,33,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,33,33,33,33,33,-19,33,33,-10,33,33,33,33,-13,33,33,33,33,33,33,33,-14,-23,-24,33,33,-15,-22,33,-16,]),'IF':([2,4,7,8,27,35,36,38,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67,68,69,71,77,78,83,84,85,88,89,90,91,93,95,96,97,98,100,101,102,103,],[34,-12,-17,-18,-41,-40,-9,34,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,-2,-3,-4,-5,-6,-19,34,34,-10,34,34,34,34,-13,-21,34,-20,34,34,34,34,-14,-23,-24,34,34,-15,-22,34,-16,]),'RE2':([2,4,7,8,27,35,36,38,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67,68,69,71,77,78,83,84,85,88,89,90,91,93,95,96,97,98,100,101,102,103,],[35,-12,-17,-18,-41,-40,-9,35,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,35,35,35,35,35,-19,35,35,-10,35,35,35,35,-13,35,35,35,35,35,35,35,-14,-23,-24,35,35,-15,-22,35,-16,]),')':([4,7,8,27,35,36,38,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,66,67,76,77,78,83,84,85,86,87,88,90,91,93,95,96,97,98,100,101,102,103,],[-12,-17,-18,-41,-40,-9,67,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,-2,-3,-4,-5,-6,-19,78,-10,87,67,-13,-21,-7,-20,-8,-11,93,95,96,-14,-23,-24,100,101,-15,-22,103,-16,]),'ELSE':([4,7,8,27,35,36,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,67,78,83,84,85,86,87,93,95,96,100,101,103,],[-12,-17,-18,-41,-40,-9,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,-2,-3,-4,-5,-6,-19,72,74,-10,-13,-21,-7,-20,-8,-11,-14,-23,-24,-15,-22,-16,]),'LOGICAL':([4,7,8,27,35,36,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,67,71,77,78,83,85,93,95,96,100,101,103,],[-12,-17,-18,-41,-40,-9,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,-2,-3,-4,-5,-6,-19,73,-10,73,73,-13,-21,-20,-14,-23,-24,-15,-22,-16,]),',':([4,7,8,27,35,36,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,66,67,68,69,70,78,83,84,85,86,87,88,89,93,95,96,97,100,101,103,],[-12,-17,-18,-41,-40,-9,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,-2,-3,-4,-5,-6,-19,79,-10,80,81,82,-13,-21,-7,-20,-8,-11,92,94,-14,-23,-24,99,-15,-22,-16,]),'LOGICALCOMB':([4,7,8,27,35,36,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,64,67,70,76,78,83,84,85,86,87,93,95,96,100,101,103,],[-12,-17,-18,-41,-40,-9,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,-2,-3,-4,-5,-6,-19,75,-10,75,75,-13,-21,-7,-20,75,-11,-14,-23,-24,-15,-22,-16,]),}
+
+_lr_action = { }
+for _k, _v in _lr_action_items.items():
+   for _x,_y in zip(_v[0],_v[1]):
+      if not _x in _lr_action:  _lr_action[_x] = { }
+      _lr_action[_x][_k] = _y
+del _lr_action_items
+
+_lr_goto_items = {'statement':([0,],[1,]),'expression':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[2,36,38,57,58,59,60,61,62,63,66,68,69,71,77,83,84,85,71,88,89,90,91,97,98,102,]),'group':([0,3,6,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[4,4,4,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,]),'boolexpression':([34,41,65,75,],[64,70,76,86,]),}
+
+_lr_goto = { }
+for _k, _v in _lr_goto_items.items():
+   for _x,_y in zip(_v[0],_v[1]):
+       if not _x in _lr_goto: _lr_goto[_x] = { }
+       _lr_goto[_x][_k] = _y
+del _lr_goto_items
+_lr_productions = [
+  ("S' -> statement","S'",1,None,None,None),
+  ('statement -> expression','statement',1,'p_statement_expr','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',220),
+  ('expression -> expression = expression','expression',3,'p_expression_binop','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',224),
+  ('expression -> expression + expression','expression',3,'p_expression_binop','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',225),
+  ('expression -> expression - expression','expression',3,'p_expression_binop','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',226),
+  ('expression -> expression * expression','expression',3,'p_expression_binop','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',227),
+  ('expression -> expression / expression','expression',3,'p_expression_binop','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',228),
+  ('boolexpression -> expression LOGICAL expression','boolexpression',3,'p_expression_logical','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',232),
+  ('boolexpression -> boolexpression LOGICALCOMB boolexpression','boolexpression',3,'p_expression_logicalcomb','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',239),
+  ('expression -> - expression','expression',2,'p_expression_uminus','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',246),
+  ('group -> ( expression )','group',3,'p_group_parentheses','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',250),
+  ('boolexpression -> ( boolexpression )','boolexpression',3,'p_group_parentheses_boolexpr','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',255),
+  ('expression -> group','expression',1,'p_expression_group','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',259),
+  ('expression -> FUNCTION ( expression )','expression',4,'p_expression_function1','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',263),
+  ('expression -> FUNCTION ( expression , expression )','expression',6,'p_expression_function2','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',271),
+  ('expression -> FUNCTION ( expression , expression , expression )','expression',8,'p_expression_function3','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',279),
+  ('expression -> FUNCTION ( expression , expression , expression , expression )','expression',10,'p_expression_function4','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',287),
+  ('expression -> NUMBER','expression',1,'p_expression_number','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',967),
+  ('expression -> VARIABLE','expression',1,'p_expression_variable','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',971),
+  ('expression -> expression POWER expression','expression',3,'p_expression_power','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',975),
+  ('expression -> expression IF boolexpression ELSE expression','expression',5,'p_expression_if','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',979),
+  ('expression -> expression IF expression ELSE expression','expression',5,'p_expression_ifimplicit','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',990),
+  ('expression -> COND ( expression , expression , expression )','expression',8,'p_expression_cond','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1001),
+  ('expression -> COMPLEX ( expression , expression )','expression',6,'p_expression_complex','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1007),
+  ('expression -> RECMS ( boolexpression , expression )','expression',6,'p_expression_recms','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1011),
+  ('expression -> CSC group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1015),
+  ('expression -> SEC group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1016),
+  ('expression -> ACSC group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1017),
+  ('expression -> ASEC group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1018),
+  ('expression -> RE group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1019),
+  ('expression -> IM group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1020),
+  ('expression -> ARG group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1021),
+  ('expression -> SQRT group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1022),
+  ('expression -> TAN group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1023),
+  ('expression -> ATAN group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1024),
+  ('expression -> CONJ group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1025),
+  ('expression -> REGLOG group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1026),
+  ('expression -> REGLOGP group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1027),
+  ('expression -> REGLOGM group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1028),
+  ('expression -> BUILTIN group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1029),
+  ('expression -> expression RE2','expression',2,'p_expression_real','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1047),
+  ('expression -> PI','expression',1,'p_expression_pi','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1051),
+]
-- 
GitLab


From b63dd938d2112f04d2b13dabd904f90ecf1f8847 Mon Sep 17 00:00:00 2001
From: Zhen Wang <zhen.wang@cern.ch>
Date: Sat, 24 Sep 2022 06:29:50 +0200
Subject: [PATCH 3/5] update

---
 .asetup.save                                  |  91 ----
 CHresonance_neutral_scalar_UFO/__init__.py    |   2 +
 .../object_library.py                         |   6 +-
 .../write_param_card.py                       | 389 ++++++++----------
 4 files changed, 187 insertions(+), 301 deletions(-)
 delete mode 100644 .asetup.save

diff --git a/.asetup.save b/.asetup.save
deleted file mode 100644
index e936995..0000000
--- a/.asetup.save
+++ /dev/null
@@ -1,91 +0,0 @@
-#Release cmake
-
-export LANG="C"
-export LC_ALL="C"
-export COOL_ORA_ENABLE_ADAPTIVE_OPT="Y"
-export ASETUP_PRINTLEVEL="0"
-export BINARY_TAG="x86_64-centos7-gcc11-opt"
-export CMTCONFIG="x86_64-centos7-gcc11-opt"
-export ASETUP_SYSBIN=`mktemp -d /tmp/zhenw/.asetup-sysbin-XXXXXX_$$`
-source $AtlasSetup/scripts/sys_exe-alias.sh ''
-if [ -n "${MAKEFLAGS:+x}" ]; then
-    asetup_flags=`echo ${MAKEFLAGS} | \grep ' -l'`
-    if [ -z "${asetup_flags}" ]; then
-        export MAKEFLAGS="${MAKEFLAGS} -l10"
-    fi
-else
-    export MAKEFLAGS="-j10 -l10"
-fi
-source /cvmfs/sft.cern.ch/lcg/releases/gcc/11.2.0-8a51a/x86_64-centos7/setup.sh
-export CC=`\env which gcc 2>/dev/null`
-[[ -z $CC ]] && unset CC
-export CXX=`\env which g++ 2>/dev/null`
-[[ -z $CXX ]] && unset CXX
-export FC=`\env which gfortran 2>/dev/null`
-[[ -z $FC ]] && unset FC
-export CMAKE_NO_VERBOSE="1"
-type lsetup >/dev/null 2>/dev/null
-if [ $? -ne 0 ]; then
-   source ${ATLAS_LOCAL_ROOT_BASE}/user/atlasLocalSetup.sh --quiet
-fi
-source $ATLAS_LOCAL_ROOT_BASE/packageSetups/localSetup.sh --quiet "cmake 3.21.3"
-if [ -z "${AtlasSetup:+x}" ]; then
-    export AtlasSetup="/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/AtlasSetup/V02-00-44/AtlasSetup"
-    export AtlasSetupVersion="AtlasSetup-02-00-44"
-fi
-export TNS_ADMIN="/eos/project/o/oracle/public/admin"
-export FRONTIER_SERVER="(serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy-atlas.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://atlasbpfrontier.cern.ch:3127)(proxyurl=http://atlasbpfrontier.fnal.gov:3127)"
-export ATLAS_POOLCOND_PATH="/cvmfs/atlas-condb.cern.ch/repo/conditions"
-export ATLAS_DB_AREA="/cvmfs/atlas.cern.ch/repo/sw/database"
-export DBRELEASE_OVERRIDE="current"
-export SITEROOT="/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt"
-export AtlasBaseDir="/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/2022-09-09T2101"
-export LCG_RELEASE_BASE="/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases"
-export AtlasBuildStamp="2022-09-09T2101"
-export AtlasReleaseType="nightly"
-export AtlasBuildBranch="master"
-export AtlasProject="Athena"
-export TDAQ_RELEASE_BASE="/cvmfs/atlas.cern.ch/repo/sw/tdaq"
-export ATLAS_RELEASE_BASE="/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/2022-09-09T2101"
-export ATLAS_RELEASEDATA="/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/atlas/offline/ReleaseData"
-export AtlasArea="/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/2022-09-09T2101/Athena/23.0.5"
-export G4PATH="/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/Geant4"
-export AtlasVersion="23.0.5"
-source /cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/2022-09-09T2101/Athena/23.0.5/InstallArea/x86_64-centos7-gcc11-opt/setup.sh
-asetup_status=$?
-if [ ${asetup_status} -ne 0 ]; then
-    \echo "AtlasSetup(ERROR): sourcing release setup script (/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/2022-09-09T2101/Athena/23.0.5/InstallArea/x86_64-centos7-gcc11-opt/setup.sh) failed"
-fi
-export TestArea="/afs/cern.ch/work/z/zhenw/private/vbf/new_model/forked/MadGraphModels"
-alias_sys_exe emacs
-echo $LD_LIBRARY_PATH | egrep "LCG_[^/:]*/curl/" >/dev/null
-if [ $? -eq 0 ]; then
-    alias_sys_exe_envU git
-fi
-\expr 1 \* 1 + 1 >/dev/null 2>&1
-if [ $? -ne 0 ]; then
-    echo -e '\nMaking workaround-alias for expr on this *OLD* machine'; alias_sys_exe expr
-fi
-export PATH="${ASETUP_SYSBIN}:${PATH}"
-
-# Check the completeness in the nightly release
-for onepath in $(echo $LD_LIBRARY_PATH | tr ":" "\n"); do
-   if [[ $onepath == ${AtlasBaseDir}* && ! -d $onepath ]]; then
-      echo \!\! FATAL \!\! $onepath does not exist
-      return 1
-   fi
-done
-
-#Release Summary as follows:
-#Release base=/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/2022-09-09T2101
-#Release project=Athena
-#Release releaseNum=23.0.5
-#Release asconfig=x86_64-centos7-gcc11-opt
-
-# Execute user-specified epilog
-
-source /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/swConfig/asetup/asetupEpilog.sh
-script_status=$?
-if [ ${script_status} -ne 0 ]; then
-    \echo "AtlasSetup(ERROR): User-specified epilog (source /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/swConfig/asetup/asetupEpilog.sh) reported failure (error ${script_status})"
-fi
diff --git a/CHresonance_neutral_scalar_UFO/__init__.py b/CHresonance_neutral_scalar_UFO/__init__.py
index 83ac15a..76c53d1 100644
--- a/CHresonance_neutral_scalar_UFO/__init__.py
+++ b/CHresonance_neutral_scalar_UFO/__init__.py
@@ -1,3 +1,5 @@
+import function_library 
+import object_library 
 
 import particles
 import couplings
diff --git a/CHresonance_neutral_scalar_UFO/object_library.py b/CHresonance_neutral_scalar_UFO/object_library.py
index ee0a429..12278b6 100644
--- a/CHresonance_neutral_scalar_UFO/object_library.py
+++ b/CHresonance_neutral_scalar_UFO/object_library.py
@@ -133,7 +133,7 @@ class Particle(UFOBaseClass):
         if self.selfconjugate:
             raise Exception('%s has no anti particle.' % self.name) 
         outdic = {}
-        for k,v in self.__dict__.iteritems():
+        for k,v in self.__dict__.items():
             if k not in self.require_args_all:                
                 outdic[k] = -v
         if self.color in [1,8]:
@@ -269,9 +269,9 @@ class Coupling(UFOBaseClass):
                if not CTparam:
                    CTparam=param
                else:
-                   raise UFOError, "UFO does not support yet more than one occurence of CTParameters in the couplings values."
+                   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."
+               raise UFOError("UFO does not support yet more than one occurence of CTParameters in the couplings values.")
 
         if not CTparam:
             if x==0:
diff --git a/CHresonance_neutral_scalar_UFO/write_param_card.py b/CHresonance_neutral_scalar_UFO/write_param_card.py
index c97938a..57a85b0 100644
--- a/CHresonance_neutral_scalar_UFO/write_param_card.py
+++ b/CHresonance_neutral_scalar_UFO/write_param_card.py
@@ -1,207 +1,182 @@
-
-__date__ = "02 Aug 2012"
-__author__ = 'olivier.mattelaer@uclouvain.be'
-
-from function_library import *
-
-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)
-        self.fsock.close()
-    
-    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]
-            need_writing.sort(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
-        from particles import all_particles
-        for parameter in all_parameters:
-            exec("%s = %s" % (parameter.name, parameter.value))
-        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)
-        # If more than a particles has the same mass/width we need to write it here
-        # as well
-        if lhablock == 'MASS':
-            arg = 'mass'
-            done = [part for (part, param) in self.dep_mass]
-        else:
-            arg = 'width'
-            done = [part for (part, param) in self.dep_width]
-        for particle in all_particles:
-            if particle.pdg_code <0:
-                continue
-            is_define = True
-            if particle not in done:
-                if getattr(particle, arg).lhacode[0] != particle.pdg_code:
-                    is_define = False                
-            if  not is_define:
-                value = float(particle.get(arg).value )
-                name =  particle.get(arg).name 
-                text += """%s %s %f # %s : %s \n""" %(prefix, particle.pdg_code, 
-                        value, particle.name, name)
-
-
-
-
-        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
-        import particles
-        print particles.__file__
-        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': part.spin,
-                                 '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'
-    
+
+__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')
+    
-- 
GitLab


From d27c65ab58a9d8f46ece3e6717431bc7fb40f060 Mon Sep 17 00:00:00 2001
From: Zhen Wang <zhen.wang@cern.ch>
Date: Sat, 24 Sep 2022 06:39:43 +0200
Subject: [PATCH 4/5] update

---
 py.py | 70 -----------------------------------------------------------
 1 file changed, 70 deletions(-)
 delete mode 100644 py.py

diff --git a/py.py b/py.py
deleted file mode 100644
index d0e5cca..0000000
--- a/py.py
+++ /dev/null
@@ -1,70 +0,0 @@
-
-# py.py
-# This file is automatically generated. Do not edit.
-_tabversion = '3.2'
-
-_lr_method = 'LALR'
-
-_lr_signature = b'`k\xca\x14\xb4\xeb\xb8\x84\xa6:g<\xe4\xf1\xccC'
-    
-_lr_action_items = {'-':([0,2,3,4,6,7,8,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,65,66,67,68,69,71,72,73,74,75,77,78,79,80,81,82,83,84,85,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,],[3,30,3,-12,3,-17,-18,-41,3,3,3,3,3,3,3,-40,-9,3,30,3,3,3,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,30,-3,-4,-5,-6,-19,30,3,30,-10,30,30,30,3,3,3,3,30,-13,3,3,3,3,30,30,30,30,30,30,30,3,-14,3,-23,-24,30,30,3,-15,-22,30,-16,]),'FUNCTION':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,]),'NUMBER':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,]),'VARIABLE':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,]),'COND':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,]),'COMPLEX':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,]),'RECMS':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,]),'CSC':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,]),'SEC':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,]),'ACSC':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,]),'ASEC':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,]),'RE':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,]),'IM':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,]),'ARG':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,]),'SQRT':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,]),'TAN':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,]),'ATAN':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,]),'CONJ':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,]),'REGLOG':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,]),'REGLOGP':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,]),'REGLOGM':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,]),'BUILTIN':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,]),'PI':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,]),'(':([0,3,5,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[6,6,37,6,39,40,41,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,65,6,6,6,65,65,6,6,6,65,6,6,6,6,6,6,6,]),'$end':([1,2,4,7,8,27,35,36,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,67,78,83,85,93,95,96,100,101,103,],[0,-1,-12,-17,-18,-41,-40,-9,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,-2,-3,-4,-5,-6,-19,-10,-13,-21,-20,-14,-23,-24,-15,-22,-16,]),'=':([2,4,7,8,27,35,36,38,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67,68,69,71,77,78,83,84,85,88,89,90,91,93,95,96,97,98,100,101,102,103,],[28,-12,-17,-18,-41,-40,-9,28,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,-2,-3,-4,-5,-6,-19,28,28,-10,28,28,28,28,-13,28,28,28,28,28,28,28,-14,-23,-24,28,28,-15,-22,28,-16,]),'+':([2,4,7,8,27,35,36,38,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67,68,69,71,77,78,83,84,85,88,89,90,91,93,95,96,97,98,100,101,102,103,],[29,-12,-17,-18,-41,-40,-9,29,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,29,-3,-4,-5,-6,-19,29,29,-10,29,29,29,29,-13,29,29,29,29,29,29,29,-14,-23,-24,29,29,-15,-22,29,-16,]),'*':([2,4,7,8,27,35,36,38,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67,68,69,71,77,78,83,84,85,88,89,90,91,93,95,96,97,98,100,101,102,103,],[31,-12,-17,-18,-41,-40,-9,31,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,31,31,31,-5,-6,-19,31,31,-10,31,31,31,31,-13,31,31,31,31,31,31,31,-14,-23,-24,31,31,-15,-22,31,-16,]),'/':([2,4,7,8,27,35,36,38,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67,68,69,71,77,78,83,84,85,88,89,90,91,93,95,96,97,98,100,101,102,103,],[32,-12,-17,-18,-41,-40,-9,32,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,32,32,32,-5,-6,-19,32,32,-10,32,32,32,32,-13,32,32,32,32,32,32,32,-14,-23,-24,32,32,-15,-22,32,-16,]),'POWER':([2,4,7,8,27,35,36,38,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67,68,69,71,77,78,83,84,85,88,89,90,91,93,95,96,97,98,100,101,102,103,],[33,-12,-17,-18,-41,-40,33,33,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,33,33,33,33,33,-19,33,33,-10,33,33,33,33,-13,33,33,33,33,33,33,33,-14,-23,-24,33,33,-15,-22,33,-16,]),'IF':([2,4,7,8,27,35,36,38,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67,68,69,71,77,78,83,84,85,88,89,90,91,93,95,96,97,98,100,101,102,103,],[34,-12,-17,-18,-41,-40,-9,34,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,-2,-3,-4,-5,-6,-19,34,34,-10,34,34,34,34,-13,-21,34,-20,34,34,34,34,-14,-23,-24,34,34,-15,-22,34,-16,]),'RE2':([2,4,7,8,27,35,36,38,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67,68,69,71,77,78,83,84,85,88,89,90,91,93,95,96,97,98,100,101,102,103,],[35,-12,-17,-18,-41,-40,-9,35,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,35,35,35,35,35,-19,35,35,-10,35,35,35,35,-13,35,35,35,35,35,35,35,-14,-23,-24,35,35,-15,-22,35,-16,]),')':([4,7,8,27,35,36,38,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,66,67,76,77,78,83,84,85,86,87,88,90,91,93,95,96,97,98,100,101,102,103,],[-12,-17,-18,-41,-40,-9,67,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,-2,-3,-4,-5,-6,-19,78,-10,87,67,-13,-21,-7,-20,-8,-11,93,95,96,-14,-23,-24,100,101,-15,-22,103,-16,]),'ELSE':([4,7,8,27,35,36,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,67,78,83,84,85,86,87,93,95,96,100,101,103,],[-12,-17,-18,-41,-40,-9,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,-2,-3,-4,-5,-6,-19,72,74,-10,-13,-21,-7,-20,-8,-11,-14,-23,-24,-15,-22,-16,]),'LOGICAL':([4,7,8,27,35,36,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,67,71,77,78,83,85,93,95,96,100,101,103,],[-12,-17,-18,-41,-40,-9,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,-2,-3,-4,-5,-6,-19,73,-10,73,73,-13,-21,-20,-14,-23,-24,-15,-22,-16,]),',':([4,7,8,27,35,36,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,66,67,68,69,70,78,83,84,85,86,87,88,89,93,95,96,97,100,101,103,],[-12,-17,-18,-41,-40,-9,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,-2,-3,-4,-5,-6,-19,79,-10,80,81,82,-13,-21,-7,-20,-8,-11,92,94,-14,-23,-24,99,-15,-22,-16,]),'LOGICALCOMB':([4,7,8,27,35,36,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,64,67,70,76,78,83,84,85,86,87,93,95,96,100,101,103,],[-12,-17,-18,-41,-40,-9,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,-2,-3,-4,-5,-6,-19,75,-10,75,75,-13,-21,-7,-20,75,-11,-14,-23,-24,-15,-22,-16,]),}
-
-_lr_action = { }
-for _k, _v in _lr_action_items.items():
-   for _x,_y in zip(_v[0],_v[1]):
-      if not _x in _lr_action:  _lr_action[_x] = { }
-      _lr_action[_x][_k] = _y
-del _lr_action_items
-
-_lr_goto_items = {'statement':([0,],[1,]),'expression':([0,3,6,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[2,36,38,57,58,59,60,61,62,63,66,68,69,71,77,83,84,85,71,88,89,90,91,97,98,102,]),'group':([0,3,6,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,37,39,40,41,65,72,73,74,75,79,80,81,82,92,94,99,],[4,4,4,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,]),'boolexpression':([34,41,65,75,],[64,70,76,86,]),}
-
-_lr_goto = { }
-for _k, _v in _lr_goto_items.items():
-   for _x,_y in zip(_v[0],_v[1]):
-       if not _x in _lr_goto: _lr_goto[_x] = { }
-       _lr_goto[_x][_k] = _y
-del _lr_goto_items
-_lr_productions = [
-  ("S' -> statement","S'",1,None,None,None),
-  ('statement -> expression','statement',1,'p_statement_expr','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',220),
-  ('expression -> expression = expression','expression',3,'p_expression_binop','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',224),
-  ('expression -> expression + expression','expression',3,'p_expression_binop','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',225),
-  ('expression -> expression - expression','expression',3,'p_expression_binop','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',226),
-  ('expression -> expression * expression','expression',3,'p_expression_binop','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',227),
-  ('expression -> expression / expression','expression',3,'p_expression_binop','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',228),
-  ('boolexpression -> expression LOGICAL expression','boolexpression',3,'p_expression_logical','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',232),
-  ('boolexpression -> boolexpression LOGICALCOMB boolexpression','boolexpression',3,'p_expression_logicalcomb','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',239),
-  ('expression -> - expression','expression',2,'p_expression_uminus','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',246),
-  ('group -> ( expression )','group',3,'p_group_parentheses','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',250),
-  ('boolexpression -> ( boolexpression )','boolexpression',3,'p_group_parentheses_boolexpr','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',255),
-  ('expression -> group','expression',1,'p_expression_group','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',259),
-  ('expression -> FUNCTION ( expression )','expression',4,'p_expression_function1','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',263),
-  ('expression -> FUNCTION ( expression , expression )','expression',6,'p_expression_function2','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',271),
-  ('expression -> FUNCTION ( expression , expression , expression )','expression',8,'p_expression_function3','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',279),
-  ('expression -> FUNCTION ( expression , expression , expression , expression )','expression',10,'p_expression_function4','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',287),
-  ('expression -> NUMBER','expression',1,'p_expression_number','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',967),
-  ('expression -> VARIABLE','expression',1,'p_expression_variable','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',971),
-  ('expression -> expression POWER expression','expression',3,'p_expression_power','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',975),
-  ('expression -> expression IF boolexpression ELSE expression','expression',5,'p_expression_if','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',979),
-  ('expression -> expression IF expression ELSE expression','expression',5,'p_expression_ifimplicit','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',990),
-  ('expression -> COND ( expression , expression , expression )','expression',8,'p_expression_cond','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1001),
-  ('expression -> COMPLEX ( expression , expression )','expression',6,'p_expression_complex','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1007),
-  ('expression -> RECMS ( boolexpression , expression )','expression',6,'p_expression_recms','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1011),
-  ('expression -> CSC group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1015),
-  ('expression -> SEC group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1016),
-  ('expression -> ACSC group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1017),
-  ('expression -> ASEC group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1018),
-  ('expression -> RE group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1019),
-  ('expression -> IM group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1020),
-  ('expression -> ARG group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1021),
-  ('expression -> SQRT group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1022),
-  ('expression -> TAN group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1023),
-  ('expression -> ATAN group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1024),
-  ('expression -> CONJ group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1025),
-  ('expression -> REGLOG group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1026),
-  ('expression -> REGLOGP group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1027),
-  ('expression -> REGLOGM group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1028),
-  ('expression -> BUILTIN group','expression',2,'p_expression_func','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1029),
-  ('expression -> expression RE2','expression',2,'p_expression_real','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1047),
-  ('expression -> PI','expression',1,'p_expression_pi','/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/sw/lcg/releases/MCGenerators/madgraph5amc/3.3.1.atlas3-f49f0/x86_64-centos7-gcc11-opt/madgraph/iolibs/ufo_expression_parsers.py',1051),
-]
-- 
GitLab


From 0eabfaf2085970165e05cb164a29e25abf966c38 Mon Sep 17 00:00:00 2001
From: Zhen Wang <zhen.wang@cern.ch>
Date: Sat, 24 Sep 2022 06:42:01 +0200
Subject: [PATCH 5/5] model list

---
 model_list.txt | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/model_list.txt b/model_list.txt
index f4f397c..da24eea 100644
--- a/model_list.txt
+++ b/model_list.txt
@@ -160,6 +160,12 @@ Contents: Axion-like particle, coupling to up-type quarks. ALP lifetime set by c
 Provided by Adrian Carmona [adrian@ugr.es], author of the ALPs from the Top paper
 Paper ALPs from the Top: https://arxiv.org/abs/2202.09371 
 
+CHresonance_neutral_scalar_UFO
+Requestor: Zhen Wang
+Content: Singlet-catalyzed electroweak phase transitions from Ashutosh V. Kotwal
+Paper: https://journals.aps.org/prd/abstract/10.1103/PhysRevD.94.035022
+JIRA: https://its.cern.ch/jira/browse/ATLMCPROD-6413 (old ZZ sample request)
+
 clfvLO
 Requestor: Carlo Gottardo
 Content: Charged lepton flavour violation, with effective 4-fermion operators
-- 
GitLab