Merge lp:~maddevelopers/mg5amcnlo/new_install_command into lp:~madteam/mg5amcnlo/trunk

Proposed by Olivier Mattelaer
Status: Merged
Merged at revision: 175
Proposed branch: lp:~maddevelopers/mg5amcnlo/new_install_command
Merge into: lp:~madteam/mg5amcnlo/trunk
Diff against target: 4358 lines (+3795/-73) (has conflicts)
42 files modified
HELAS/hstlxx.F (+2/-1)
HELAS/httaxx.F (+3/-3)
HELAS/httsxx.F (+3/-3)
HELAS/hvvhxx.F (+3/-3)
HELAS/hvvshx.F (+3/-3)
HELAS/hvvvxx.F (+3/-3)
HELAS/iosxxx.F (+3/-0)
HELAS/jioxxx.F (+0/-1)
HELAS/jvshxx.F (+3/-3)
HELAS/jvsshx.F (+3/-3)
HELAS/jvtaxx.F (+3/-3)
HELAS/jvvsxx.F (+3/-3)
HELAS/jvvtlx.F (+3/-3)
HELAS/sstlxx.F (+3/-1)
HELAS/ttsaxx.F (+3/-3)
HELAS/ttssxx.F (+3/-3)
HELAS/usslxx.F (+4/-1)
HELAS/utsaxx.F (+3/-3)
HELAS/utssxx.F (+3/-3)
HELAS/uvvaxx.F (+3/-3)
HELAS/uvvvlx.F (+3/-3)
HELAS/vvshxx.F (+3/-3)
HELAS/vvsshx.F (+3/-3)
HELAS/vvtaxx.F (+3/-3)
HELAS/vvvsxx.F (+3/-3)
HELAS/vvvtlx.F (+3/-3)
Template/bin/plot (+2/-0)
UpdateNotes.txt (+12/-0)
aloha/aloha_writers.py (+6/-1)
madgraph/VERSION (+5/-0)
madgraph/interface/cmd_interface.py (+175/-5)
models/TopEffTh/TopEffTh.log (+79/-0)
models/TopEffTh/__init__.py (+22/-0)
models/TopEffTh/coupling_orders.py (+20/-0)
models/TopEffTh/couplings.py (+535/-0)
models/TopEffTh/function_library.py (+54/-0)
models/TopEffTh/lorentz.py (+367/-0)
models/TopEffTh/object_library.py (+245/-0)
models/TopEffTh/parameters.py (+705/-0)
models/TopEffTh/particles.py (+449/-0)
models/TopEffTh/vertices.py (+863/-0)
models/TopEffTh/write_param_card.py (+181/-0)
Text conflict in UpdateNotes.txt
Text conflict in madgraph/VERSION
To merge this branch: bzr merge lp:~maddevelopers/mg5amcnlo/new_install_command
Reviewer Review Type Date Requested Status
Johan Alwall (community) Approve
Review via email: mp+78015@code.launchpad.net

Description of the change

Add the install command

To post a comment you must log in.
Revision history for this message
Johan Alwall (johan-alwall) wrote :

Hello Olivier,

This is really awesome! Very useful and helpful! I have found one thing right away: The packageinfo file is gotten from the UCL cluster (as far as I can tell below) but the package is being downloaded from the UIUC cluster. If there is a mismatch between the clusters, I expect that this doesn't work. Isn't it better to do everything from the UIUC cluster? Or is the file on the UCL cluster updated whenever the UIUC cluster is updated?

Cheers,
Johan

Revision history for this message
Johan Alwall (johan-alwall) wrote :

Hello again,

- I would recommend to remove the debug printout of the contents of the package_info file :-)
It would be useful however to have an INFO statement saying from where the presently downloaded file is downloaded.

- For Delphes, it's crucial that you get the version WITHOUT Frog, since this is not standard on any computer, and not used in the standard running: http://www.fynu.ucl.ac.be/users/s.ovyn/Delphes/files/Delphes_V_NoFROG_1.9.tar.gz

- Problems when running:
mg5>install MadAnalysis
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
Command "install MadAnalysis" interrupted with error:
IndexError : list index out of range
MG5_debug:
Traceback (most recent call last):
  File "/Users/alwall/MadGraph/new_install_command/madgraph/interface/extended_cmd.py", line 151, in onecmd
    return cmd.Cmd.onecmd(self, line)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/cmd.py", line 219, in onecmd
    return func(arg)
  File "/Users/alwall/MadGraph/new_install_command/madgraph/interface/cmd_interface.py", line 2512, in do_install
    and not n.endswith('gz')][0]
IndexError: list index out of range

That's what I find so far :-)
Johan

review: Needs Fixing
Revision history for this message
Olivier Mattelaer (olivier-mattelaer) wrote :

Hi Johan, thanks for those very useful comment:

>If there is a mismatch between the clusters, I expect that this doesn't work.
Indeed that was the problem with MadAnalysis, where the last version of MadAnalysis was not present on uiuc. Stupid mistake when doing the copy past. Thanks a lot for this.

>- I would recommend to remove the debug printout of the contents of the package_info file :-)
>It would be useful however to have an INFO statement saying from where the presently downloaded >file is downloaded.

Sure Done

>- For Delphes, it's crucial that you get the version WITHOUT Frog, since this is not standard >on >any computer, and not used in the standard running: http://www.fynu.ucl.ac.be/users/s.ovyn/Delphes>/files/Delphes_V_NoFROG_1.9.tar.gz

- Problems when running:
mg5>install MadAnalysis
See first point -> Done.
I also add more beautifull error message in case of no connection to the server/problem with the download.

Ok I'll modify this. But I'm confuse since the Downloads page of MG indicates the one with frog then... It also seems that it refer to version 1.8 and not to version 1.9.

173. By Olivier Mattelaer

include review modification

174. By Olivier Mattelaer

Adding TopEffTh (ask By Scott approved by Tim)

175. By Olivier Mattelaer

add propagating=False in TopEffTh model. Remove un-propagating particle in display/auto-completion

176. By Olivier Mattelaer

fix aloha bug 868645.

177. By Olivier Mattelaer

Update Update Note.

178. By Olivier Mattelaer

Forbid to install ExRootAnalysis if root not installed or ROOTSYS not configured

Revision history for this message
Johan Alwall (johan-alwall) wrote :

Hello Olivier,

Note that in the diff below, it seems that there are unresolved conflicts in the UpdateNotes file.

Issue: I downloaded MadAnalysis, and td was automatically downloaded. However, when I ran a production, no plots were generated, and the plots.log file says "td not found". It seems that you miss a ln or mv in the installation to copy the correct td_xxx file to td. If you can't do this automatically, there should at least be a clear warning message to the user.
Also, if MadAnalysis exists and plot fails, I think we should pipe the error message also to the run log, so the user can see what the problem is.

There's also an issue with Delphes now:
mg5>install Delphes
Downloading http://www.fynu.ucl.ac.be/users/s.ovyn/Delphes/files/Delphes_V_No_FROG_1.9.tar.gz
  % Total % Received % Xferd Average Speed Time Time Time Current
                                 Dload Upload Total Spent Left Speed
112 337 112 337 0 0 119 0 0:00:02 0:00:02 --:--:-- 492

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
Command "install Delphes" interrupted with error:
MadGraph5Error : The file was not loaded correctly. Stop
Please report this bug on https://bugs.launchpad.net/madgraph5
More information is found in 'MG5_debug'.
Please attach this file to your report.

The correct address is http://www.fynu.ucl.ac.be/users/s.ovyn/Delphes/files/Delphes_V_NoFROG_1.9.tar.gz

Besides this (and the issues with compiling Pythia/PGS on Mac, which should also be solved before the school), everything now seems to work very well. Thanks!

Johan

review: Needs Fixing
Revision history for this message
Johan Alwall (johan-alwall) wrote :

Hi again Olivier,

You might want a more informative error message if a download fails - this might happen also in the future, and

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
Command "install Delphes" interrupted with error:
MadGraph5Error : The file was not loaded correctly. Stop

is not very informative :-)

Revision history for this message
Johan Alwall (johan-alwall) wrote :

Very nice job checking for root and ROOTSYS before installing ExRootAnalysis by the way :-)

Revision history for this message
Olivier Mattelaer (olivier-mattelaer) wrote :

Hi johan,

I didn't know about the -m32 -m64.
One thing is not clear in your message, is it only for Mac or also for linux as well?
(It should be both right?)

Sorry for the wrong path for Delphes,
And I will create a nicer error message.
For td I'm going to check what the problem is.

Thanks,

Olivier

Revision history for this message
Johan Alwall (johan-alwall) wrote :

Hello Olivier,

You see it in the stdhep_Arch file. It's only for Mac.

For td, the problem is that in the tar, there are two td exe's, one for intel and one for g4, called td_intel and td_g4. The correct one needs to be copied to "td".

Thanks,
Johan

Revision history for this message
Olivier Mattelaer (olivier-mattelaer) wrote :

Ok Thanks,

I assume that I can 'safely' always assume that all computer are intel
now.

On Oct 6, 2011, at 10:22 AM, Johan Alwall wrote:

> Hello Olivier,
>
> You see it in the stdhep_Arch file. It's only for Mac.
>
> For td, the problem is that in the tar, there are two td exe's, one
> for intel and one for g4, called td_intel and td_g4. The correct one
> needs to be copied to "td".
>
> Thanks,
> Johan
>
> --
> https://code.launchpad.net/~maddevelopers/madgraph5/
> new_install_command/+merge/78015
> You proposed lp:~maddevelopers/madgraph5/new_install_command for
> merging.

179. By mattelaer-olivier

fix the td problem. change -m32 to -m64 in 64 bit computer
improve error message

180. By mattelaer-olivier

improve help for root

181. By mattelaer-olivier

merge with the trunk

182. By mattelaer-olivier

fix the problem between g77 and the HELAS routine (Thanks Tim)

183. By mattelaer-olivier

remove all include in HELAS routine (g77 compatibility)

Revision history for this message
Olivier Mattelaer (olivier-mattelaer) wrote :

Hi Johan,

by testing pythia-pgs on a mac, I've the following error:

WRONG LHAPDF set number = 0 given! STOP EXE!
 ==== PYTHIA WILL USE LHAPDF ====

I remember that you suggest to modify one line of pythia-pgs whne we was at fermilab and that resolve my problem. Do you remember what this is?

If you remember then I would be able to mofidy this line automaticaly on any Mac computer.

Cheers,

Olivier

184. By mattelaer-olivier

Fix problem name when download from linux

185. By mattelaer-olivier

merge with the last version

Revision history for this message
Johan Alwall (johan-alwall) wrote :

Hi Olivier,

I have fixed arch_mcfio.

However, I get the following error now when I download MadAnalysis:

Downloading TD for Mac
  % Total % Received % Xferd Average Speed Time Time Time Current
                                 Dload Upload Total Spent Left Speed
100 1949k 100 1949k 0 0 30652 0 0:01:05 0:01:05 --:--:-- 50303
libg2c.0.dylib
readme_intel.txt
td.1
td_g4
td_mac_intel
topdrawer.doc
Command "install MadAnalysis" interrupted with error:
IOError : [Errno 2] No such file or directory: 'td/td_mac_intel'
Please report this bug on https://bugs.launchpad.net/madgraph5
More information is found in 'MG5_debug'.
Please attach this file to your report.

review: Needs Fixing
186. By Johan Alwall

Fix also arch_mcfio file for -m32/-m64

187. By Olivier Mattelaer

fix the path to be universal for the copy of td

Revision history for this message
Johan Alwall (johan-alwall) wrote :

Hello Olivier,

Thanks for fixing the copy of td. However, now td doesn't run, and the reason is that the td directory has to be in the DYLD_LIBRARY_PATH. So this needs to be set before td is run (on Mac).

Cheers,
Johan

review: Needs Fixing
Revision history for this message
Olivier Mattelaer (olivier-mattelaer) wrote :

> Thanks for fixing the copy of td. However, now td doesn't run, and
> the reason is that the td directory has to be in the
> DYLD_LIBRARY_PATH. So this needs to be set before td is run (on Mac).

This variable is not set on my computer...

[@olivier-mattelaers-macbook ~]$ echo $DYLD_LIBRARY_PATH
/Users/omatt/programme/root/lib:
[@olivier-mattelaers-macbook ~]$

Cheers,

Olivier

On 09-oct.-11, at 22:56, Johan Alwall wrote:

> Review: Needs Fixing
>
> Hello Olivier,
>
> Thanks for fixing the copy of td. However, now td doesn't run, and
> the reason is that the td directory has to be in the
> DYLD_LIBRARY_PATH. So this needs to be set before td is run (on Mac).
>
> Cheers,
> Johan
> --
> https://code.launchpad.net/~maddevelopers/madgraph5/
> new_install_command/+merge/78015
> You proposed lp:~maddevelopers/madgraph5/new_install_command for
> merging.

Revision history for this message
Johan Alwall (johan-alwall) wrote :

Hello Olivier,

The missing library, which is included with td, is libg2c.0.dylib. It is possible that you have this library in your default path (e.g., /usr/local/lib/). For those who don't have it, it is found in the td directory, and the td directory must be added to the DYLD_LIBRARY_PATH before running td. This needs to be done in the plot script (or your equivalent script, where td is being run in the new scripts).

Cheers,
Johan

review: Needs Fixing
188. By Olivier Mattelaer

add the td path to DYLIB. Usefull for some computer

Revision history for this message
Olivier Mattelaer (olivier-mattelaer) wrote :

I've added it in the plot script.
Could you try if this works?

Thanks,

Olivier

189. By Johan Alwall

Fixed the LD_LIBRARY_PATH for td in plot (needed for Mac OS X)

Revision history for this message
Johan Alwall (johan-alwall) wrote :

Ok with this final point fixed, I approve the merge.

Johan

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'HELAS/hstlxx.F'
2--- HELAS/hstlxx.F 2010-10-30 03:26:37 +0000
3+++ HELAS/hstlxx.F 2011-10-11 00:36:19 +0000
4@@ -15,7 +15,8 @@
5 c complex hst(3) : scalar current j(s':s1,s2)
6 c
7 implicit none
8- include "dimension.inc"
9+ INTEGER DIM
10+ PARAMETER(DIM=18)
11
12 double complex s1(DIM),t2(DIM),hst(DIM),dg
13 double precision q(0:3),smass,swidth,q2,gc
14
15=== modified file 'HELAS/httaxx.F'
16--- HELAS/httaxx.F 2010-10-30 03:26:37 +0000
17+++ HELAS/httaxx.F 2011-10-11 00:36:19 +0000
18@@ -19,9 +19,9 @@
19
20 implicit none
21 c-- dimension of the current set to arbitrary length
22-c INTEGER DIM
23-c PARAMETER(DIM=18)
24- include "dimension.inc"
25+ INTEGER DIM
26+ PARAMETER(DIM=18)
27+c include "dimension.inc"
28 double complex tc1(DIM),tc2(DIM),jsc(DIM)
29 double complex vertex,dj,gc(2)
30 double precision mass,width,q2,q(4)
31
32=== modified file 'HELAS/httsxx.F'
33--- HELAS/httsxx.F 2010-10-30 03:26:37 +0000
34+++ HELAS/httsxx.F 2011-10-11 00:36:19 +0000
35@@ -19,9 +19,9 @@
36
37 implicit none
38 c-- dimension of the current set to arbitrary length
39-c INTEGER DIM
40-c PARAMETER(DIM=18)
41- include "dimension.inc"
42+ INTEGER DIM
43+ PARAMETER(DIM=18)
44+c include 'dimension.inc'
45 double complex tc1(DIM),htts(DIM),sc(DIM),tc2(DIM)
46 double complex dg,g1(2)
47
48
49=== modified file 'HELAS/hvvhxx.F'
50--- HELAS/hvvhxx.F 2010-10-30 03:26:37 +0000
51+++ HELAS/hvvhxx.F 2011-10-11 00:36:19 +0000
52@@ -20,9 +20,9 @@
53 c
54 implicit none
55 c-- dimension of the current set to arbitrary length
56-c INTEGER DIM
57-c PARAMETER(DIM=18)
58- include "dimension.inc"
59+ INTEGER DIM
60+ PARAMETER(DIM=18)
61+c include "dimension.inc"
62 double complex v1(DIM),v2(DIM),jsvv(DIM),vertex1,vertex2,dj
63 double complex v12,p2v1,p1v2
64 double complex v13,v14,v23,v24,v34
65
66=== modified file 'HELAS/hvvshx.F'
67--- HELAS/hvvshx.F 2010-10-30 03:26:37 +0000
68+++ HELAS/hvvshx.F 2011-10-11 00:36:19 +0000
69@@ -19,9 +19,9 @@
70 c
71 implicit none
72 c-- dimension of the current set to arbitrary length
73-c INTEGER DIM
74-c PARAMETER(DIM=18)
75- include "dimension.inc"
76+ INTEGER DIM
77+ PARAMETER(DIM=18)
78+c include "dimension.inc"
79 double complex v1(DIM),v2(DIM),sc(DIM),hvvsh(DIM)
80 double complex hvvsh1,hvvsh2,dg,g1(2)
81 double complex v12,p2v1,p1v2,v13,v14,v23,v24,v34
82
83=== modified file 'HELAS/hvvvxx.F'
84--- HELAS/hvvvxx.F 2010-10-30 03:26:37 +0000
85+++ HELAS/hvvvxx.F 2011-10-11 00:36:19 +0000
86@@ -22,9 +22,9 @@
87 implicit none
88
89 c-- dimension of the current set to arbitrary length
90-c INTEGER DIM
91-c PARAMETER(DIM=18)
92- include "dimension.inc"
93+ INTEGER DIM
94+ PARAMETER(DIM=18)
95+c include "dimension.inc"
96 double complex ga(DIM),gb(DIM),gc(DIM),jhvvv(DIM)
97
98 double complex dvertx, vertex, vertex1, vertex2,dj
99
100=== modified file 'HELAS/iosxxx.F'
101--- HELAS/iosxxx.F 2010-10-30 03:26:37 +0000
102+++ HELAS/iosxxx.F 2011-10-11 00:36:19 +0000
103@@ -14,7 +14,10 @@
104 c
105 implicit none
106 double complex fi(6),fo(6),sc(3),gc(2),vertex
107+ INTEGER DIM
108+ PARAMETER(DIM=18)
109
110+c include 'dimension.inc'
111 #ifdef HELAS_CHECK
112 double precision p0,p1,p2,p3,q0,q1,q2,q3,r0,r1,r2,r3,pm
113 double precision epsi
114
115=== modified file 'HELAS/jioxxx.F'
116--- HELAS/jioxxx.F 2010-10-30 03:26:37 +0000
117+++ HELAS/jioxxx.F 2011-10-11 00:36:19 +0000
118@@ -24,7 +24,6 @@
119 parameter( rZero = 0.0d0, rOne = 1.0d0 )
120 double complex cImag, cZero
121 parameter( cImag = ( 0.0d0, 1.0d0 ), cZero = ( 0.0d0, 0.0d0 ) )
122-
123 #ifdef HELAS_CHECK
124 integer stdo
125 parameter( stdo = 6 )
126
127=== modified file 'HELAS/jvshxx.F'
128--- HELAS/jvshxx.F 2010-10-30 03:26:37 +0000
129+++ HELAS/jvshxx.F 2011-10-11 00:36:19 +0000
130@@ -19,9 +19,9 @@
131 c
132 implicit none
133 c-- dimension of the current set to arbitrary length
134-c INTEGER DIM
135-c PARAMETER(DIM=18)
136- include "dimension.inc"
137+ INTEGER DIM
138+ PARAMETER(DIM=18)
139+c include "dimension.inc"
140 double complex vc(DIM),sc(DIM),jvs(DIM),jvs1(DIM),jvs2(DIM)
141 double complex qvc,dg
142 double precision qp1,p12,p13,p14,p23,p24,p34
143
144=== modified file 'HELAS/jvsshx.F'
145--- HELAS/jvsshx.F 2010-10-30 03:26:37 +0000
146+++ HELAS/jvsshx.F 2011-10-11 00:36:19 +0000
147@@ -8,9 +8,9 @@
148 c
149 implicit none
150 c-- dimension of the current set to arbitrary length
151-c INTEGER DIM
152-c PARAMETER(DIM=18)
153- include "dimension.inc"
154+ INTEGER DIM
155+ PARAMETER(DIM=18)
156+c include "dimension.inc"
157 double complex vc(DIM),sc1(DIM),sc2(DIM),jvs(DIM)
158 double complex jvs1(DIM),jvs2(DIM),dg,qvc
159 double precision qp1,p12,p13,p14,p23,p24,p34
160
161=== modified file 'HELAS/jvtaxx.F'
162--- HELAS/jvtaxx.F 2010-10-30 03:26:37 +0000
163+++ HELAS/jvtaxx.F 2011-10-11 00:36:19 +0000
164@@ -20,9 +20,9 @@
165 implicit none
166
167 c dimension of the current set to arbitrary length
168-c integer DIM
169-c parameter (DIM=18)
170- include "dimension.inc"
171+ integer DIM
172+ parameter (DIM=18)
173+c include "dimension.inc"
174 double complex ga(DIM),jw(DIM),tc(DIM)
175 double complex gt1(4), gt2(4)
176 double precision q(0:3),g,q2,dv
177
178=== modified file 'HELAS/jvvsxx.F'
179--- HELAS/jvvsxx.F 2010-10-30 03:26:37 +0000
180+++ HELAS/jvvsxx.F 2011-10-11 00:36:19 +0000
181@@ -22,9 +22,9 @@
182
183 implicit none
184 c-- dimension of the current set to arbitrary length
185-c INTEGER DIM
186-c PARAMETER(DIM=18)
187- include "dimension.inc"
188+ INTEGER DIM
189+ PARAMETER(DIM=18)
190+c include "dimension.inc"
191 double complex ga(DIM),gb(DIM),jggs(DIM),sc(DIM)
192 double complex jggs1(DIM),jggs2(DIM)
193 double complex sva,svb,vab,j12(0:3)
194
195=== modified file 'HELAS/jvvtlx.F'
196--- HELAS/jvvtlx.F 2010-10-30 03:26:37 +0000
197+++ HELAS/jvvtlx.F 2011-10-11 00:36:19 +0000
198@@ -21,9 +21,9 @@
199
200 implicit none
201 c-- dimension of the current set to arbitrary length
202-c INTEGER DIM
203-c PARAMETER(DIM=18)
204- include "dimension.inc"
205+ INTEGER DIM
206+ PARAMETER(DIM=18)
207+c include "dimension.inc"
208 double complex ga(DIM),gb(DIM),jggs(DIM),sc(DIM),g2(2)
209 double complex jggs1(DIM),jggs2(DIM)
210 double complex sva,svb,vab,j12(0:3)
211
212=== modified file 'HELAS/sstlxx.F'
213--- HELAS/sstlxx.F 2010-10-30 03:26:37 +0000
214+++ HELAS/sstlxx.F 2011-10-11 00:36:19 +0000
215@@ -13,8 +13,10 @@
216 c complex vertex : amplitude gamma(s1,s2,s3)
217 c
218 implicit none
219+ INTEGER DIM
220+ PARAMETER(DIM=18)
221
222- include "dimension.inc"
223+c include "dimension.inc"
224 double complex s1(DIM),s2(DIM),t3(DIM),vertex
225 double precision gc
226
227
228=== modified file 'HELAS/ttsaxx.F'
229--- HELAS/ttsaxx.F 2010-10-30 03:26:37 +0000
230+++ HELAS/ttsaxx.F 2011-10-11 00:36:19 +0000
231@@ -17,9 +17,9 @@
232
233 implicit none
234 c-- dimension of the current set to arbitrary length
235-c INTEGER DIM
236-c PARAMETER(DIM=18)
237- include "dimension.inc"
238+ INTEGER DIM
239+ PARAMETER(DIM=18)
240+c include "dimension.inc"
241 double complex tc1(DIM),tc2(DIM),sc(DIM)
242 double complex vertex, gc(2)
243
244
245=== modified file 'HELAS/ttssxx.F'
246--- HELAS/ttssxx.F 2010-10-30 03:26:37 +0000
247+++ HELAS/ttssxx.F 2011-10-11 00:36:19 +0000
248@@ -18,9 +18,9 @@
249
250 implicit none
251 c-- dimension of the current set to arbitrary length
252-c INTEGER DIM
253-c PARAMETER(DIM=18)
254- include "dimension.inc"
255+ INTEGER DIM
256+ PARAMETER(DIM=18)
257+c include "dimension.inc"
258 double complex tc1(DIM),tc2(DIM),sc1(DIM),sc2(DIM)
259
260 double complex vertex, g1(2)
261
262=== modified file 'HELAS/usslxx.F'
263--- HELAS/usslxx.F 2010-10-30 03:26:37 +0000
264+++ HELAS/usslxx.F 2011-10-11 00:36:19 +0000
265@@ -17,7 +17,10 @@
266 c
267
268 implicit none
269- include "dimension.inc"
270+ INTEGER DIM
271+ PARAMETER(DIM=18)
272+
273+c include "dimension.inc"
274 double complex s1(DIM),s2(DIM),uss(DIM)
275 double precision xm,xw,gc
276
277
278=== modified file 'HELAS/utsaxx.F'
279--- HELAS/utsaxx.F 2010-10-30 03:26:37 +0000
280+++ HELAS/utsaxx.F 2011-10-11 00:36:19 +0000
281@@ -19,9 +19,9 @@
282
283 implicit none
284 c-- dimension of the current set to arbitrary length
285-c INTEGER DIM
286-c PARAMETER(DIM=18)
287- include "dimension.inc"
288+ INTEGER DIM
289+ PARAMETER(DIM=18)
290+c include "dimension.inc"
291 double complex tc1(DIM),jts(DIM),sc(DIM), gt(2)
292 double precision xm, xw
293
294
295=== modified file 'HELAS/utssxx.F'
296--- HELAS/utssxx.F 2010-10-30 03:26:37 +0000
297+++ HELAS/utssxx.F 2011-10-11 00:36:19 +0000
298@@ -20,9 +20,9 @@
299
300 implicit none
301 c-- dimension of the current set to arbitrary length
302-c INTEGER DIM
303-c PARAMETER(DIM=18)
304- include "dimension.inc"
305+ INTEGER DIM
306+ PARAMETER(DIM=18)
307+c include "dimension.inc"
308 double complex tc1(DIM),jts(DIM),sc1(DIM),sc2(DIM),g1(2)
309 double precision g2, xm, xw
310
311
312=== modified file 'HELAS/uvvaxx.F'
313--- HELAS/uvvaxx.F 2010-10-30 03:26:37 +0000
314+++ HELAS/uvvaxx.F 2011-10-11 00:36:19 +0000
315@@ -19,9 +19,9 @@
316 implicit none
317
318 c dimension of the current set to arbitrary length
319-c integer DIM
320-c parameter (DIM=18)
321- include "dimension.inc"
322+ integer DIM
323+ parameter (DIM=18)
324+c include "dimension.inc"
325 double complex w1(DIM),w2(DIM),jt(DIM)
326 double precision xm1,xm2,xw,g,s2g
327 double precision sqrTwo
328
329=== modified file 'HELAS/uvvvlx.F'
330--- HELAS/uvvvlx.F 2010-10-30 03:26:37 +0000
331+++ HELAS/uvvvlx.F 2011-10-11 00:36:19 +0000
332@@ -22,9 +22,9 @@
333 implicit none
334
335 c-- dimension of the current set to arbitrary length
336-c INTEGER DIM
337-c PARAMETER(DIM=18)
338- include "dimension.inc"
339+ INTEGER DIM
340+ PARAMETER(DIM=18)
341+c include "dimension.inc"
342 double complex ga(DIM),gb(DIM),gc(DIM),jhvvv(DIM),g2(2)
343
344 double complex dvertx, vertex, vertex1, vertex2
345
346=== modified file 'HELAS/vvshxx.F'
347--- HELAS/vvshxx.F 2010-10-30 03:26:37 +0000
348+++ HELAS/vvshxx.F 2011-10-11 00:36:19 +0000
349@@ -18,9 +18,9 @@
350 c
351 implicit none
352 c-- dimension of the current set to arbitrary length
353-c INTEGER DIM
354-c PARAMETER(DIM=18)
355- include "dimension.inc"
356+ INTEGER DIM
357+ PARAMETER(DIM=18)
358+c include "dimension.inc"
359 double complex v1(DIM),v2(DIM),sc(DIM),vertex,vertex1,vertex2
360 double complex v12,p2v1,p1v2,v13,v14,v23,v24,v34
361 double precision p12,p13,p14,p23,p24,p34
362
363=== modified file 'HELAS/vvsshx.F'
364--- HELAS/vvsshx.F 2010-10-30 03:26:37 +0000
365+++ HELAS/vvsshx.F 2011-10-11 00:36:19 +0000
366@@ -18,9 +18,9 @@
367 c
368 implicit none
369 c-- dimension of the current set to arbitrary length
370-c INTEGER DIM
371-c PARAMETER(DIM=18)
372- include "dimension.inc"
373+ INTEGER DIM
374+ PARAMETER(DIM=18)
375+c include "dimension.inc"
376 double complex v1(DIM),v2(DIM),sc1(DIM),sc2(DIM),vertex
377 double complex vertex1,vertex2,g1(2)
378 double complex v12,p2v1,p1v2,v13,v14,v23,v24,v34
379
380=== modified file 'HELAS/vvtaxx.F'
381--- HELAS/vvtaxx.F 2010-10-30 03:26:37 +0000
382+++ HELAS/vvtaxx.F 2011-10-11 00:36:19 +0000
383@@ -19,9 +19,9 @@
384 implicit none
385
386 c dimension of the current set to arbitrary length
387-c integer DIM
388-c parameter (DIM=18)
389- include "dimension.inc"
390+ integer DIM
391+ parameter (DIM=18)
392+c include "dimension.inc"
393 double complex ga(DIM),gb(DIM),tc(DIM)
394 double precision xm,xw,g
395 double precision sqrTwo
396
397=== modified file 'HELAS/vvvsxx.F'
398--- HELAS/vvvsxx.F 2010-10-30 03:26:37 +0000
399+++ HELAS/vvvsxx.F 2011-10-11 00:36:19 +0000
400@@ -21,9 +21,9 @@
401 implicit none
402
403 c-- dimension of the current set to arbitrary length
404-c INTEGER DIM
405-c PARAMETER(DIM=18)
406- include "dimension.inc"
407+ INTEGER DIM
408+ PARAMETER(DIM=18)
409+c include "dimension.inc"
410 double complex ga(DIM),gb(DIM),gc(DIM),sc(DIM)
411
412 double complex dvertx, vertex, vertex1, vertex2
413
414=== modified file 'HELAS/vvvtlx.F'
415--- HELAS/vvvtlx.F 2010-10-30 03:26:37 +0000
416+++ HELAS/vvvtlx.F 2011-10-11 00:36:19 +0000
417@@ -20,9 +20,9 @@
418 implicit none
419
420 c-- dimension of the current set to arbitrary length
421-c INTEGER DIM
422-c PARAMETER(DIM=18)
423- include "dimension.inc"
424+ INTEGER DIM
425+ PARAMETER(DIM=18)
426+c include "dimension.inc"
427 double complex ga(DIM),gb(DIM),gc(DIM),sc(DIM)
428 double complex dvertx, vertex, vertex1, vertex2
429 double complex vab, vbc, vca, v123, v124, v134, v234
430
431=== modified file 'Template/bin/plot'
432--- Template/bin/plot 2011-05-24 04:27:02 +0000
433+++ Template/bin/plot 2011-10-11 00:36:19 +0000
434@@ -20,6 +20,8 @@
435
436 if [[ -x $td/td ]]; then
437 echo 'topdrawer found'
438+ # This is needed for Mac OS X
439+ export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$td
440 else
441 echo 'topdrawer not found'
442 exit
443
444=== modified file 'UpdateNotes.txt'
445--- UpdateNotes.txt 2011-10-10 07:34:37 +0000
446+++ UpdateNotes.txt 2011-10-11 00:36:19 +0000
447@@ -1,9 +1,21 @@
448 Update notes for MadGraph 5 (in reverse time order)
449
450+<<<<<<< TREE
451 1.3.20 (09/10/11) JA: Fixed bug in myamp.f that created a hard stop
452 error for certain cases with many processes with
453 different propagators in the same subprocess dir.
454
455+=======
456+1.3.20 (07/10/11) OM: Add a new command: install.
457+ This allow to install quite easily different package
458+ devellop for Madgraph/MadEvent. The list of available
459+ package are pythia-pgs/MadAnalysis/ExRootAnalysis/Delphes
460+ OM: Adding TopEffth Model
461+ OM: Improve display particles and autocompletion in presence
462+ of nonpropagating particles
463+ OM: Fix Aloha bug linked to four fermion operator
464+
465+>>>>>>> MERGE-SOURCE
466 1.3.19 (06/10/11) JA: Fixed problem with SubProcesses makefile on Linux,
467 introduced in 1.3.18.
468
469
470=== modified file 'aloha/aloha_writers.py'
471--- aloha/aloha_writers.py 2011-09-30 13:55:43 +0000
472+++ aloha/aloha_writers.py 2011-10-11 00:36:19 +0000
473@@ -517,11 +517,12 @@
474 short_name, addon = name.split('C',1)
475 if addon.split('_')[0].isdigit():
476 addon = 'C' +self.namestring.split('C',1)[1]
477+ elif all([n.isdigit() for n in addon.split('_')[0].split('C')]):
478+ addon = 'C' +self.namestring.split('C',1)[1]
479 else:
480 addon = '_%s' % self.offshell
481 else:
482 addon = '_%s' % self.offshell
483-
484 # how to call the routine
485 if not offshell:
486 main = 'vertex'
487@@ -907,6 +908,8 @@
488 short_name, addon = name.split('C',1)
489 if addon.split('_')[0].isdigit():
490 addon = 'C' +self.namestring.split('C',1)[1]
491+ elif all([n.isdigit() for n in addon.split('_')[0].split('C')]):
492+ addon = 'C' +self.namestring.split('C',1)[1]
493 else:
494 addon = '_%s' % self.offshell
495 else:
496@@ -1239,6 +1242,8 @@
497 short_name, addon = name.split('C',1)
498 if addon.split('_')[0].isdigit():
499 addon = 'C' +self.namestring.split('C',1)[1]
500+ elif all([n.isdigit() for n in addon.split('_')[0].split('C')]):
501+ addon = 'C' +self.namestring.split('C',1)[1]
502 else:
503 addon = '_%s' % self.offshell
504 else:
505
506=== modified file 'madgraph/VERSION'
507--- madgraph/VERSION 2011-10-10 07:34:37 +0000
508+++ madgraph/VERSION 2011-10-11 00:36:19 +0000
509@@ -1,3 +1,8 @@
510+<<<<<<< TREE
511 version = 1.3.20
512 date = 2011-10-09
513+=======
514+version = 1.3.20
515+date = 2011-10-07
516+>>>>>>> MERGE-SOURCE
517
518
519=== modified file 'madgraph/interface/cmd_interface.py'
520--- madgraph/interface/cmd_interface.py 2011-08-27 02:01:27 +0000
521+++ madgraph/interface/cmd_interface.py 2011-10-11 00:36:19 +0000
522@@ -275,6 +275,13 @@
523 logger.info("")
524 logger.info(" import command PATH :")
525 logger.info(" Execute the list of command in the file at PATH")
526+
527+ def help_install(self):
528+ logger.info("syntax: install " + "|".join(self._install_opts))
529+ logger.info("-- Download the last version of the program and install it")
530+ logger.info(" localy in the current Madgraph version. In order to have")
531+ logger.info(" a sucessfull instalation, you will need to have up-to-date")
532+ logger.info(" F77 and/or C and Root compiler.")
533
534 def help_display(self):
535 logger.info("syntax: display " + "|".join(self._display_opts))
536@@ -634,6 +641,33 @@
537 raise self.InvalidCmd('PATH is mandatory in the current context\n' + \
538 'Did you forget to run the \"output\" command')
539
540+ def check_install(self, args):
541+ """check that the install command is valid"""
542+
543+ if len(args) != 1:
544+ self.help_install()
545+ raise self.InvalidCmd('install command require at least one argument')
546+
547+ if args[0] not in self._install_opts:
548+ if not args[0].startswith('td'):
549+ self.help_install()
550+ raise self.InvalidCmd('Not recognize program %s ' % args[0])
551+
552+ if args[0] in ["ExRootAnalysis", "Delphes"]:
553+ if not misc.which('root'):
554+ raise self.InvalidCmd(
555+'''In order to install ExRootAnalysis, you need to install Root on your computer first.
556+please follow information on http://root.cern.ch/drupal/content/downloading-root''')
557+ if 'ROOTSYS' not in os.environ:
558+ raise self.InvalidCmd(
559+'''The environment variable ROOTSYS is not configured.
560+You can set it by adding the following lines in your .bashrc [.bash_profile for mac]:
561+export ROOTSYS=%s
562+export PATH=$PATH:$ROOTSYS/bin
563+This will take effect only in a NEW terminal
564+''' % os.path.realpath(os.path.join(misc.which('root'), \
565+ os.path.pardir, os.path.pardir)))
566+
567
568 def check_launch(self, args, options):
569 """check the validity of the line"""
570@@ -922,6 +956,10 @@
571
572 CheckValidForCmd.check_import(self, args)
573
574+ def check_install(self, args):
575+ """ No possibility to install new software on the web """
576+ raise self.WebRestriction('Impossible to install program on the cluster')
577+
578 def check_load(self, args):
579 """ check the validity of the line
580 No Path authorize for the Web"""
581@@ -988,6 +1026,7 @@
582
583 def model_completion(self, text, process):
584 """ complete the line with model information """
585+
586 while ',' in process:
587 process = process[process.index(',')+1:]
588 args = split_arg(process)
589@@ -1421,6 +1460,14 @@
590 # return
591 return output
592
593+ def complete_install(self, text, line, begidx, endidx):
594+ "Complete the import command"
595+
596+ args = split_arg(line[0:begidx])
597+
598+ # Format
599+ if len(args) == 1:
600+ return self.list_completion(text, self._install_opts)
601 #===============================================================================
602 # MadGraphCmd
603 #===============================================================================
604@@ -1436,6 +1483,7 @@
605 _tutorial_opts = ['start', 'stop']
606 _check_opts = ['full', 'permutation', 'gauge', 'lorentz_invariance']
607 _import_formats = ['model_v4', 'model', 'proc_v4', 'command']
608+ _install_opts = ['pythia-pgs', 'Delphes', 'MadAnalysis', 'ExRootAnalysis']
609 _v4_export_formats = ['madevent', 'standalone', 'matrix']
610 _export_formats = _v4_export_formats + ['standalone_cpp', 'pythia8']
611 _set_options = ['group_subprocesses',
612@@ -1595,11 +1643,19 @@
613 self.draw(' '.join(args[1:]))
614
615 if args[0] == 'particles' and len(args) == 1:
616+ propagating_particle = []
617+ nb_unpropagating = 0
618+ for particle in self._curr_model['particles']:
619+ if particle.get('propagating'):
620+ propagating_particle.append(particle)
621+ else:
622+ nb_unpropagating += 1
623+
624 print "Current model contains %i particles:" % \
625- len(self._curr_model['particles'])
626- part_antipart = [part for part in self._curr_model['particles'] \
627+ len(propagating_particle)
628+ part_antipart = [part for part in propagating_particle \
629 if not part['self_antipart']]
630- part_self = [part for part in self._curr_model['particles'] \
631+ part_self = [part for part in propagating_particle \
632 if part['self_antipart']]
633 for part in part_antipart:
634 print part['name'] + '/' + part['antiname'],
635@@ -1607,6 +1663,9 @@
636 for part in part_self:
637 print part['name'],
638 print ''
639+ if nb_unpropagating:
640+ print 'In addition of %s un-physical particle mediating new interactions.' \
641+ % nb_unpropagating
642
643 elif args[0] == 'particles':
644 for arg in args[1:]:
645@@ -2316,6 +2375,7 @@
646
647 #convert and excecute the card
648 self.import_mg4_proc_card(proc_card)
649+
650
651 def import_ufo_model(self, model_name):
652 """ import the UFO model """
653@@ -2331,8 +2391,11 @@
654 completion, define multiparticles"""
655
656 # Set variables for autocomplete
657- self._particle_names = [p.get('name') for p in self._curr_model.get('particles')] + \
658- [p.get('antiname') for p in self._curr_model.get('particles')]
659+ self._particle_names = [p.get('name') for p in self._curr_model.get('particles')\
660+ if p.get('propagating')] + \
661+ [p.get('antiname') for p in self._curr_model.get('particles') \
662+ if p.get('propagating')]
663+
664 self._couplings = list(set(sum([i.get('orders').keys() for i in \
665 self._curr_model.get('interactions')], [])))
666 # Check if we can use case-independent particle names
667@@ -2432,6 +2495,113 @@
668 if removed_multiparticles:
669 logger.info("Removed obsolete multiparticles %s" % \
670 " / ".join(removed_multiparticles))
671+
672+ def do_install(self, line):
673+ """Install optional package from the MG suite."""
674+
675+ args = split_arg(line)
676+ #check the validity of the arguments
677+ self.check_install(args)
678+
679+ if sys.platform == "darwin":
680+ program = "curl"
681+ else:
682+ program = "wget"
683+
684+ # Load file with path of the different program:
685+ import urllib
686+ path = {}
687+ try:
688+ data = urllib.urlopen('http://madgraph.phys.ucl.ac.be/package_info.dat')
689+ except:
690+ raise MadGraph5Error, '''Impossible to connect the server.
691+ Please check your internet connection or retry later'''
692+ for line in data:
693+ split = line.split()
694+ path[split[0]] = split[1]
695+
696+ name = {'td_mac': 'td', 'td_linux':'td', 'Delphes':'Delphes',
697+ 'pythia-pgs':'pythia-pgs', 'ExRootAnalysis': 'ExRootAnalysis',
698+ 'MadAnalysis':'MadAnalysis'}
699+ name = name[args[0]]
700+
701+ try:
702+ os.system('rm -rf %s' % name)
703+ except:
704+ pass
705+
706+ # Load that path
707+ logger.info('Downloading %s' % path[args[0]])
708+ if sys.platform == "darwin":
709+ subprocess.call(['curl', path[args[0]], '-o%s.tgz' % name], cwd=MG5DIR)
710+ else:
711+ subprocess.call(['wget', path[args[0]], '--output-document=%s.tgz'% name], cwd=MG5DIR)
712+ # Untar the file
713+ returncode = subprocess.call(['tar', '-xzpvf', '%s.tgz' % name], cwd=MG5DIR)
714+ if returncode:
715+ raise MadGraph5Error, 'Fail to download correctly the File. Stop'
716+
717+ # Check that the directory has the correct name
718+ if not os.path.exists(os.path.join(MG5DIR, name)):
719+ created_name = [n for n in os.listdir(MG5DIR) if n.startswith(name)
720+ and not n.endswith('gz')]
721+ if not created_name:
722+ raise MadGraph5Error, 'The file was not loaded correctly. Stop'
723+ else:
724+ created_name = created_name[0]
725+ files.mv(os.path.join(MG5DIR, created_name), os.path.join(MG5DIR, name))
726+ logger.info('compile %s. This might takes a while.' % name)
727+
728+ # Modify Makefile for pythia-pgs on Mac 64 bit
729+ if args[0] == "pythia-pgs" and sys.maxsize > 2**32:
730+ for path in [os.path.join(MG5DIR, 'pythia-pgs', 'libraries', \
731+ 'PGS4', 'src', 'stdhep-dir', 'src', 'stdhep_Arch'),
732+ os.path.join(MG5DIR, 'pythia-pgs', 'libraries', \
733+ 'PGS4', 'src', 'stdhep-dir', 'mcfio', 'arch_mcfio')]:
734+ text = open(path).read()
735+ text = text.replace('-m32','-m64')
736+ open(path, 'w').writelines(text)
737+
738+ # Compile the file
739+ # Check for F77 compiler
740+ if 'FC' not in os.environ or not os.environ['FC']:
741+ if misc.which('g77'):
742+ os.environ['FC'] = 'g77'
743+ elif misc.which('gfortran'):
744+ os.environ['FC'] = 'gfortran'
745+ else:
746+ raise self.InvalidCmd('Require g77 or Gfortran compiler')
747+ subprocess.call(['make', 'clean'], cwd = os.path.join(MG5DIR, name))
748+ subprocess.call(['make'], cwd = os.path.join(MG5DIR, name))
749+
750+
751+ # Special treatment for TD program (require by MadAnalysis)
752+ if args[0] == 'MadAnalysis':
753+ try:
754+ os.system('rm -rf td')
755+ os.mkdir(os.path.join(MG5DIR, 'td'))
756+ except Exception, error:
757+ print error
758+ pass
759+
760+ if sys.platform == "darwin":
761+ logger.info('Downloading TD for Mac')
762+ target = 'http://theory.fnal.gov/people/parke/TD/td_mac_intel.tar.gz'
763+ subprocess.call(['curl', target, '-otd.tgz'],
764+ cwd=os.path.join(MG5DIR,'td'))
765+ subprocess.call(['tar', '-xzpvf', 'td.tgz'],
766+ cwd=os.path.join(MG5DIR,'td'))
767+ files.mv(MG5DIR + '/td/td_mac_intel',MG5DIR+'/td/td')
768+ else:
769+ logger.info('Downloading TD for Linux 32 bit')
770+ target = 'http://cp3wks05.fynu.ucl.ac.be/twiki/pub/Software/TopDrawer/td'
771+ subprocess.call(['wget', target], cwd=os.path.join(MG5DIR,'td'))
772+
773+ if sys.maxsize > 2**32:
774+ logger.warning('''td program (needed by MadAnalysis) is not compile for 64 bit computer
775+ Please follow instruction in http://cp3wks05.fynu.ucl.ac.be/twiki/bin/view/Software/TopDrawer.''')
776+
777+
778
779 def set_configuration(self, config_path=None):
780 """ assign all configuration variable from file
781
782=== added directory 'models/TopEffTh'
783=== added file 'models/TopEffTh/TopEffTh.log'
784--- models/TopEffTh/TopEffTh.log 1970-01-01 00:00:00 +0000
785+++ models/TopEffTh/TopEffTh.log 2011-10-11 00:36:19 +0000
786@@ -0,0 +1,79 @@
787+# This file was automatically created by FeynRules $Revision: 821 $
788+# Mathematica version: 7.0 for Microsoft Windows (32-bit) (February 18, 2009)
789+# Date: Mon 3 Oct 2011 11:59:51
790+
791+
792+#
793+# This is the logfile for the model TopEffTh
794+
795+# Authors: C. Degrande
796+# Model version: 1.1
797+# Checking the Lagrangians
798+ * All Lagrangians are ok.
799+#
800+# Particle definitions
801+#
802+
803+ * No particles removed. All particles correspond to GenInt setup.
804+
805+# Automatically assigned PDG numbers
806+ * Assigned PDG number 9000001 to particle ghA
807+ * Assigned PDG number 9000002 to particle ghZ
808+ * Assigned PDG number 9000003 to particle ghWp
809+ * Assigned PDG number 9000004 to particle ghWm
810+ * Assigned PDG number 9000005 to particle ghG
811+ * Assigned PDG number 9000006 to particle Tri0
812+ * Assigned PDG number 9000007 to particle Tri
813+ * Assigned PDG number 9000008 to particle Tri80
814+ * Assigned PDG number 9000009 to particle Tri8
815+ * Assigned PDG number 9000010 to particle V8t
816+ * Assigned PDG number 9000011 to particle V8Q
817+
818+
819+# Compulsory PDG codes:
820+ * Class SM leptons complete.
821+ * Class SM neutrinos complete.
822+ * Class SM quarks complete.
823+ * Class SM gauge bosons complete.
824+#
825+# Parameter definitions
826+#
827+
828+ * All parameters are ok.
829+
830+
831+# Vertices
832+ * Calling FeynmanRules for 1 Lagrangians.
833+ * Number of classes vertices: 106
834+ * Number of flavored vertices: 142
835+ * Saved vertices in InterfaceRun[ 1 ].
836+ * Checked QNumber conservation.
837+ - Quantum number GhostNumber conserved in all vertices.
838+ - Quantum number LeptonNumber conserved in all vertices.
839+ - Quantum number Q conserved in all vertices.
840+ * particles.py written.
841+ * parameters.py written.
842+#
843+# Vertex definitions
844+#
845+
846+ * 142 vertices written.
847+ * vertices.py written.
848+#
849+# Lorentz structure definitions
850+#
851+
852+ * 89 lorentz structures written.
853+ * lorentz.py written.
854+#
855+# Coupling definitions
856+#
857+
858+ * 131 couplings written.
859+ * couplings.py written.
860+#
861+# Coupling order definitions
862+#
863+
864+ * 0 couplings orders written.
865+ * coupling_orders.py written.
866
867=== added file 'models/TopEffTh/__init__.py'
868--- models/TopEffTh/__init__.py 1970-01-01 00:00:00 +0000
869+++ models/TopEffTh/__init__.py 2011-10-11 00:36:19 +0000
870@@ -0,0 +1,22 @@
871+
872+import particles
873+import couplings
874+import lorentz
875+import parameters
876+import vertices
877+import coupling_orders
878+import write_param_card
879+
880+
881+all_particles = particles.all_particles
882+all_vertices = vertices.all_vertices
883+all_couplings = couplings.all_couplings
884+all_lorentz = lorentz.all_lorentz
885+all_parameters = parameters.all_parameters
886+all_orders = coupling_orders.all_orders
887+all_functions = function_library.all_functions
888+
889+
890+__author__ = "C. Degrande"
891+__version__ = "1.1"
892+__email__ = "celine.degrande@uclouvain.be"
893
894=== added file 'models/TopEffTh/coupling_orders.py'
895--- models/TopEffTh/coupling_orders.py 1970-01-01 00:00:00 +0000
896+++ models/TopEffTh/coupling_orders.py 2011-10-11 00:36:19 +0000
897@@ -0,0 +1,20 @@
898+# This file was automatically created by FeynRules $Revision: 821 $
899+# Mathematica version: 7.0 for Microsoft Windows (32-bit) (February 18, 2009)
900+# Date: Mon 3 Oct 2011 13:27:07
901+
902+
903+from object_library import all_orders, CouplingOrder
904+
905+
906+NP = CouplingOrder(name = 'NP',
907+ expansion_order = 2,
908+ hierarchy = 1)
909+
910+QCD = CouplingOrder(name = 'QCD',
911+ expansion_order = 99,
912+ hierarchy = 2)
913+
914+QED = CouplingOrder(name = 'QED',
915+ expansion_order = 99,
916+ hierarchy = 4)
917+
918
919=== added file 'models/TopEffTh/couplings.py'
920--- models/TopEffTh/couplings.py 1970-01-01 00:00:00 +0000
921+++ models/TopEffTh/couplings.py 2011-10-11 00:36:19 +0000
922@@ -0,0 +1,535 @@
923+# This file was automatically created by FeynRules $Revision: 821 $
924+# Mathematica version: 7.0 for Microsoft Windows (32-bit) (February 18, 2009)
925+# Date: Mon 3 Oct 2011 13:27:06
926+
927+
928+from object_library import all_couplings, Coupling
929+
930+from function_library import complexconjugate, re, im, csc, sec, acsc, asec
931+
932+
933+
934+GC_1 = Coupling(name = 'GC_1',
935+ value = '-(ee*complex(0,1))/3.',
936+ order = {'QED':1})
937+
938+GC_2 = Coupling(name = 'GC_2',
939+ value = '(2*ee*complex(0,1))/3.',
940+ order = {'QED':1})
941+
942+GC_3 = Coupling(name = 'GC_3',
943+ value = '-(ee*complex(0,1))',
944+ order = {'QED':1})
945+
946+GC_4 = Coupling(name = 'GC_4',
947+ value = '-G',
948+ order = {'QCD':1})
949+
950+GC_5 = Coupling(name = 'GC_5',
951+ value = 'complex(0,1)*G',
952+ order = {'QCD':1})
953+
954+GC_6 = Coupling(name = 'GC_6',
955+ value = 'complex(0,1)*G**2',
956+ order = {'QCD':2})
957+
958+GC_7 = Coupling(name = 'GC_7',
959+ value = 'complex(0,1)*g8Q',
960+ order = {'NP':1})
961+
962+GC_8 = Coupling(name = 'GC_8',
963+ value = 'complex(0,1)*g8Qd',
964+ order = {'NP':1})
965+
966+GC_9 = Coupling(name = 'GC_9',
967+ value = 'complex(0,1)*g8Qq',
968+ order = {'NP':1})
969+
970+GC_10 = Coupling(name = 'GC_10',
971+ value = 'complex(0,1)*g8Qu',
972+ order = {'NP':1})
973+
974+GC_11 = Coupling(name = 'GC_11',
975+ value = 'complex(0,1)*g8t',
976+ order = {'NP':1})
977+
978+GC_12 = Coupling(name = 'GC_12',
979+ value = 'complex(0,1)*g8td',
980+ order = {'NP':1})
981+
982+GC_13 = Coupling(name = 'GC_13',
983+ value = 'complex(0,1)*g8tq',
984+ order = {'NP':1})
985+
986+GC_14 = Coupling(name = 'GC_14',
987+ value = 'complex(0,1)*g8tu',
988+ order = {'NP':1})
989+
990+GC_15 = Coupling(name = 'GC_15',
991+ value = '-(complex(0,1)*gT)',
992+ order = {'NP':1})
993+
994+GC_16 = Coupling(name = 'GC_16',
995+ value = 'complex(0,1)*gT',
996+ order = {'NP':1})
997+
998+GC_17 = Coupling(name = 'GC_17',
999+ value = 'complex(0,1)*gT*cmath.sqrt(2)',
1000+ order = {'NP':1})
1001+
1002+GC_18 = Coupling(name = 'GC_18',
1003+ value = '-(complex(0,1)*gT8)',
1004+ order = {'NP':1})
1005+
1006+GC_19 = Coupling(name = 'GC_19',
1007+ value = 'complex(0,1)*gT8',
1008+ order = {'NP':1})
1009+
1010+GC_20 = Coupling(name = 'GC_20',
1011+ value = 'complex(0,1)*gT8*cmath.sqrt(2)',
1012+ order = {'NP':1})
1013+
1014+GC_21 = Coupling(name = 'GC_21',
1015+ value = '-(complex(0,1)*gT8l)',
1016+ order = {'NP':1})
1017+
1018+GC_22 = Coupling(name = 'GC_22',
1019+ value = 'complex(0,1)*gT8l',
1020+ order = {'NP':1})
1021+
1022+GC_23 = Coupling(name = 'GC_23',
1023+ value = 'complex(0,1)*gT8l*cmath.sqrt(2)',
1024+ order = {'NP':1})
1025+
1026+GC_24 = Coupling(name = 'GC_24',
1027+ value = '-(complex(0,1)*gTl)',
1028+ order = {'NP':1})
1029+
1030+GC_25 = Coupling(name = 'GC_25',
1031+ value = 'complex(0,1)*gTl',
1032+ order = {'NP':1})
1033+
1034+GC_26 = Coupling(name = 'GC_26',
1035+ value = 'complex(0,1)*gTl*cmath.sqrt(2)',
1036+ order = {'NP':1})
1037+
1038+GC_27 = Coupling(name = 'GC_27',
1039+ value = 'cw*complex(0,1)*gw',
1040+ order = {'QED':1})
1041+
1042+GC_28 = Coupling(name = 'GC_28',
1043+ value = '-(complex(0,1)*gw**2)',
1044+ order = {'QED':2})
1045+
1046+GC_29 = Coupling(name = 'GC_29',
1047+ value = 'cw**2*complex(0,1)*gw**2',
1048+ order = {'QED':2})
1049+
1050+GC_30 = Coupling(name = 'GC_30',
1051+ value = '-6*complex(0,1)*lam',
1052+ order = {'QED':2})
1053+
1054+GC_31 = Coupling(name = 'GC_31',
1055+ value = '(-6*CG)/Lambda**2',
1056+ order = {'NP':2})
1057+
1058+GC_32 = Coupling(name = 'GC_32',
1059+ value = '(2*CphiG*complex(0,1))/Lambda**2',
1060+ order = {'NP':2,'QED':1})
1061+
1062+GC_33 = Coupling(name = 'GC_33',
1063+ value = '(-2*CtG*complex(0,1)*cmath.sqrt(2))/Lambda**2',
1064+ order = {'NP':2,'QED':1})
1065+
1066+GC_34 = Coupling(name = 'GC_34',
1067+ value = '(-2*CtW*complex(0,1))/Lambda**2',
1068+ order = {'NP':2,'QED':1})
1069+
1070+GC_35 = Coupling(name = 'GC_35',
1071+ value = '-((CtW*cw*complex(0,1)*cmath.sqrt(2))/Lambda**2)',
1072+ order = {'NP':2,'QED':1})
1073+
1074+GC_36 = Coupling(name = 'GC_36',
1075+ value = '(6*CG*complex(0,1)*G)/Lambda**2',
1076+ order = {'NP':2,'QCD':1})
1077+
1078+GC_37 = Coupling(name = 'GC_37',
1079+ value = '(2*CphiG*G)/Lambda**2',
1080+ order = {'NP':2,'QCD':1,'QED':1})
1081+
1082+GC_38 = Coupling(name = 'GC_38',
1083+ value = '(-2*CtG*G*cmath.sqrt(2))/Lambda**2',
1084+ order = {'NP':2,'QCD':1,'QED':1})
1085+
1086+GC_39 = Coupling(name = 'GC_39',
1087+ value = '(-3*CG*G**2)/Lambda**2',
1088+ order = {'NP':2,'QCD':2})
1089+
1090+GC_40 = Coupling(name = 'GC_40',
1091+ value = '(3*CG*G**2)/Lambda**2',
1092+ order = {'NP':2,'QCD':2})
1093+
1094+GC_41 = Coupling(name = 'GC_41',
1095+ value = '(-2*CphiG*complex(0,1)*G**2)/Lambda**2',
1096+ order = {'NP':2,'QCD':2,'QED':1})
1097+
1098+GC_42 = Coupling(name = 'GC_42',
1099+ value = '-((CG*complex(0,1)*G**3)/Lambda**2)',
1100+ order = {'NP':2,'QCD':3})
1101+
1102+GC_43 = Coupling(name = 'GC_43',
1103+ value = '(CG*complex(0,1)*G**3)/Lambda**2',
1104+ order = {'NP':2,'QCD':3})
1105+
1106+GC_44 = Coupling(name = 'GC_44',
1107+ value = '(CtW*complex(0,1)*gw*cmath.sqrt(2))/Lambda**2',
1108+ order = {'NP':2,'QED':2})
1109+
1110+GC_45 = Coupling(name = 'GC_45',
1111+ value = '(2*CtW*cw*complex(0,1)*gw)/Lambda**2',
1112+ order = {'NP':2,'QED':2})
1113+
1114+GC_46 = Coupling(name = 'GC_46',
1115+ value = '(ee**2*complex(0,1))/(2.*sw**2)',
1116+ order = {'QED':2})
1117+
1118+GC_47 = Coupling(name = 'GC_47',
1119+ value = '(ee*complex(0,1))/(sw*cmath.sqrt(2))',
1120+ order = {'QED':1})
1121+
1122+GC_48 = Coupling(name = 'GC_48',
1123+ value = '(CKM11*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1124+ order = {'QED':1})
1125+
1126+GC_49 = Coupling(name = 'GC_49',
1127+ value = '(CKM12*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1128+ order = {'QED':1})
1129+
1130+GC_50 = Coupling(name = 'GC_50',
1131+ value = '(CKM13*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1132+ order = {'QED':1})
1133+
1134+GC_51 = Coupling(name = 'GC_51',
1135+ value = '(CKM21*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1136+ order = {'QED':1})
1137+
1138+GC_52 = Coupling(name = 'GC_52',
1139+ value = '(CKM22*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1140+ order = {'QED':1})
1141+
1142+GC_53 = Coupling(name = 'GC_53',
1143+ value = '(CKM23*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1144+ order = {'QED':1})
1145+
1146+GC_54 = Coupling(name = 'GC_54',
1147+ value = '(CKM31*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1148+ order = {'QED':1})
1149+
1150+GC_55 = Coupling(name = 'GC_55',
1151+ value = '(CKM32*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1152+ order = {'QED':1})
1153+
1154+GC_56 = Coupling(name = 'GC_56',
1155+ value = '(CKM33*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1156+ order = {'QED':1})
1157+
1158+GC_57 = Coupling(name = 'GC_57',
1159+ value = '-(cw*ee*complex(0,1))/(2.*sw)',
1160+ order = {'QED':1})
1161+
1162+GC_58 = Coupling(name = 'GC_58',
1163+ value = '(cw*ee*complex(0,1))/(2.*sw)',
1164+ order = {'QED':1})
1165+
1166+GC_59 = Coupling(name = 'GC_59',
1167+ value = '(C3phiq*ee*complex(0,1)*cmath.sqrt(2))/(Lambda**2*sw)',
1168+ order = {'NP':2,'QED':2})
1169+
1170+GC_60 = Coupling(name = 'GC_60',
1171+ value = '-(ee*complex(0,1)*sw)/(6.*cw)',
1172+ order = {'QED':1})
1173+
1174+GC_61 = Coupling(name = 'GC_61',
1175+ value = '(ee*complex(0,1)*sw)/(2.*cw)',
1176+ order = {'QED':1})
1177+
1178+GC_62 = Coupling(name = 'GC_62',
1179+ value = 'complex(0,1)*gw*sw',
1180+ order = {'QED':1})
1181+
1182+GC_63 = Coupling(name = 'GC_63',
1183+ value = '-2*cw*complex(0,1)*gw**2*sw',
1184+ order = {'QED':2})
1185+
1186+GC_64 = Coupling(name = 'GC_64',
1187+ value = '-((CtW*complex(0,1)*sw*cmath.sqrt(2))/Lambda**2)',
1188+ order = {'NP':2,'QED':1})
1189+
1190+GC_65 = Coupling(name = 'GC_65',
1191+ value = '(-2*CtW*complex(0,1)*gw*sw)/Lambda**2',
1192+ order = {'NP':2,'QED':2})
1193+
1194+GC_66 = Coupling(name = 'GC_66',
1195+ value = 'complex(0,1)*gw**2*sw**2',
1196+ order = {'QED':2})
1197+
1198+GC_67 = Coupling(name = 'GC_67',
1199+ value = '(cw*ee*complex(0,1))/(2.*sw) + (ee*complex(0,1)*sw)/(2.*cw)',
1200+ order = {'QED':1})
1201+
1202+GC_68 = Coupling(name = 'GC_68',
1203+ 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)',
1204+ order = {'QED':2})
1205+
1206+GC_69 = Coupling(name = 'GC_69',
1207+ value = '-6*complex(0,1)*lam*v',
1208+ order = {'QED':1})
1209+
1210+GC_70 = Coupling(name = 'GC_70',
1211+ value = '(2*CphiG*complex(0,1)*v)/Lambda**2',
1212+ order = {'NP':2})
1213+
1214+GC_71 = Coupling(name = 'GC_71',
1215+ value = '(-2*CtG*complex(0,1)*v*cmath.sqrt(2))/Lambda**2',
1216+ order = {'NP':2})
1217+
1218+GC_72 = Coupling(name = 'GC_72',
1219+ value = '(-2*CtW*complex(0,1)*v)/Lambda**2',
1220+ order = {'NP':2})
1221+
1222+GC_73 = Coupling(name = 'GC_73',
1223+ value = '-((CtW*cw*complex(0,1)*v*cmath.sqrt(2))/Lambda**2)',
1224+ order = {'NP':2})
1225+
1226+GC_74 = Coupling(name = 'GC_74',
1227+ value = '(2*CphiG*G*v)/Lambda**2',
1228+ order = {'NP':2,'QCD':1})
1229+
1230+GC_75 = Coupling(name = 'GC_75',
1231+ value = '(-2*CtG*G*v*cmath.sqrt(2))/Lambda**2',
1232+ order = {'NP':2,'QCD':1})
1233+
1234+GC_76 = Coupling(name = 'GC_76',
1235+ value = '(-2*CphiG*complex(0,1)*G**2*v)/Lambda**2',
1236+ order = {'NP':2,'QCD':2})
1237+
1238+GC_77 = Coupling(name = 'GC_77',
1239+ value = '(CtW*complex(0,1)*gw*v*cmath.sqrt(2))/Lambda**2',
1240+ order = {'NP':2,'QED':1})
1241+
1242+GC_78 = Coupling(name = 'GC_78',
1243+ value = '(2*CtW*cw*complex(0,1)*gw*v)/Lambda**2',
1244+ order = {'NP':2,'QED':1})
1245+
1246+GC_79 = Coupling(name = 'GC_79',
1247+ value = '(ee**2*complex(0,1)*v)/(2.*sw**2)',
1248+ order = {'QED':1})
1249+
1250+GC_80 = Coupling(name = 'GC_80',
1251+ value = '(C3phiq*ee*complex(0,1)*v*cmath.sqrt(2))/(Lambda**2*sw)',
1252+ order = {'NP':2,'QED':1})
1253+
1254+GC_81 = Coupling(name = 'GC_81',
1255+ value = '-((CtW*complex(0,1)*sw*v*cmath.sqrt(2))/Lambda**2)',
1256+ order = {'NP':2})
1257+
1258+GC_82 = Coupling(name = 'GC_82',
1259+ value = '(-2*CtW*complex(0,1)*gw*sw*v)/Lambda**2',
1260+ order = {'NP':2,'QED':1})
1261+
1262+GC_83 = Coupling(name = 'GC_83',
1263+ value = '(C3phiq*ee*complex(0,1)*v**2)/(Lambda**2*sw*cmath.sqrt(2))',
1264+ order = {'NP':2})
1265+
1266+GC_84 = Coupling(name = 'GC_84',
1267+ value = 'ee**2*complex(0,1)*v + (cw**2*ee**2*complex(0,1)*v)/(2.*sw**2) + (ee**2*complex(0,1)*sw**2*v)/(2.*cw**2)',
1268+ order = {'QED':1})
1269+
1270+GC_85 = Coupling(name = 'GC_85',
1271+ value = '-((complex(0,1)*yb)/cmath.sqrt(2))',
1272+ order = {'QED':1})
1273+
1274+GC_86 = Coupling(name = 'GC_86',
1275+ value = '-((complex(0,1)*yc)/cmath.sqrt(2))',
1276+ order = {'QED':1})
1277+
1278+GC_87 = Coupling(name = 'GC_87',
1279+ value = '-((complex(0,1)*ydo)/cmath.sqrt(2))',
1280+ order = {'QED':1})
1281+
1282+GC_88 = Coupling(name = 'GC_88',
1283+ value = '-((complex(0,1)*ye)/cmath.sqrt(2))',
1284+ order = {'QED':1})
1285+
1286+GC_89 = Coupling(name = 'GC_89',
1287+ value = '-((complex(0,1)*ym)/cmath.sqrt(2))',
1288+ order = {'QED':1})
1289+
1290+GC_90 = Coupling(name = 'GC_90',
1291+ value = '-((complex(0,1)*ys)/cmath.sqrt(2))',
1292+ order = {'QED':1})
1293+
1294+GC_91 = Coupling(name = 'GC_91',
1295+ value = '-((complex(0,1)*yt)/cmath.sqrt(2))',
1296+ order = {'QED':1})
1297+
1298+GC_92 = Coupling(name = 'GC_92',
1299+ value = '-((complex(0,1)*ytau)/cmath.sqrt(2))',
1300+ order = {'QED':1})
1301+
1302+GC_93 = Coupling(name = 'GC_93',
1303+ value = '-((complex(0,1)*yup)/cmath.sqrt(2))',
1304+ order = {'QED':1})
1305+
1306+GC_94 = Coupling(name = 'GC_94',
1307+ value = '(ee*complex(0,1)*complexconjugate(C3phiq)*cmath.sqrt(2))/(Lambda**2*sw)',
1308+ order = {'NP':2,'QED':2})
1309+
1310+GC_95 = Coupling(name = 'GC_95',
1311+ value = '(ee*complex(0,1)*v*complexconjugate(C3phiq)*cmath.sqrt(2))/(Lambda**2*sw)',
1312+ order = {'NP':2,'QED':1})
1313+
1314+GC_96 = Coupling(name = 'GC_96',
1315+ value = '(ee*complex(0,1)*v**2*complexconjugate(C3phiq))/(Lambda**2*sw*cmath.sqrt(2))',
1316+ order = {'NP':2})
1317+
1318+GC_97 = Coupling(name = 'GC_97',
1319+ value = '(C3phiq*complex(0,1))/(2.*Lambda**2) - (complex(0,1)*complexconjugate(C3phiq))/(2.*Lambda**2)',
1320+ order = {'NP':2,'QED':1})
1321+
1322+GC_98 = Coupling(name = 'GC_98',
1323+ value = '-(C3phiq*complex(0,1))/(2.*Lambda**2) + (complex(0,1)*complexconjugate(C3phiq))/(2.*Lambda**2)',
1324+ order = {'NP':2,'QED':1})
1325+
1326+GC_99 = Coupling(name = 'GC_99',
1327+ value = '-(C3phiq*cw*ee*complex(0,1))/(2.*Lambda**2*sw) - (C3phiq*ee*complex(0,1)*sw)/(2.*cw*Lambda**2) - (cw*ee*complex(0,1)*complexconjugate(C3phiq))/(2.*Lambda**2*sw) - (ee*complex(0,1)*sw*complexconjugate(C3phiq))/(2.*cw*Lambda**2)',
1328+ order = {'NP':2,'QED':2})
1329+
1330+GC_100 = Coupling(name = 'GC_100',
1331+ value = '(C3phiq*cw*ee*complex(0,1))/(2.*Lambda**2*sw) + (C3phiq*ee*complex(0,1)*sw)/(2.*cw*Lambda**2) + (cw*ee*complex(0,1)*complexconjugate(C3phiq))/(2.*Lambda**2*sw) + (ee*complex(0,1)*sw*complexconjugate(C3phiq))/(2.*cw*Lambda**2)',
1332+ order = {'NP':2,'QED':2})
1333+
1334+GC_101 = Coupling(name = 'GC_101',
1335+ value = '(C3phiq*complex(0,1)*v)/(2.*Lambda**2) - (complex(0,1)*v*complexconjugate(C3phiq))/(2.*Lambda**2)',
1336+ order = {'NP':2})
1337+
1338+GC_102 = Coupling(name = 'GC_102',
1339+ value = '-(C3phiq*complex(0,1)*v)/(2.*Lambda**2) + (complex(0,1)*v*complexconjugate(C3phiq))/(2.*Lambda**2)',
1340+ order = {'NP':2})
1341+
1342+GC_103 = Coupling(name = 'GC_103',
1343+ value = '-(C3phiq*cw*ee*complex(0,1)*v)/(2.*Lambda**2*sw) - (C3phiq*ee*complex(0,1)*sw*v)/(2.*cw*Lambda**2) - (cw*ee*complex(0,1)*v*complexconjugate(C3phiq))/(2.*Lambda**2*sw) - (ee*complex(0,1)*sw*v*complexconjugate(C3phiq))/(2.*cw*Lambda**2)',
1344+ order = {'NP':2,'QED':1})
1345+
1346+GC_104 = Coupling(name = 'GC_104',
1347+ value = '(C3phiq*cw*ee*complex(0,1)*v)/(2.*Lambda**2*sw) + (C3phiq*ee*complex(0,1)*sw*v)/(2.*cw*Lambda**2) + (cw*ee*complex(0,1)*v*complexconjugate(C3phiq))/(2.*Lambda**2*sw) + (ee*complex(0,1)*sw*v*complexconjugate(C3phiq))/(2.*cw*Lambda**2)',
1348+ order = {'NP':2,'QED':1})
1349+
1350+GC_105 = Coupling(name = 'GC_105',
1351+ value = '-(C3phiq*cw*ee*complex(0,1)*v**2)/(4.*Lambda**2*sw) - (C3phiq*ee*complex(0,1)*sw*v**2)/(4.*cw*Lambda**2) - (cw*ee*complex(0,1)*v**2*complexconjugate(C3phiq))/(4.*Lambda**2*sw) - (ee*complex(0,1)*sw*v**2*complexconjugate(C3phiq))/(4.*cw*Lambda**2)',
1352+ order = {'NP':2})
1353+
1354+GC_106 = Coupling(name = 'GC_106',
1355+ value = '(C3phiq*cw*ee*complex(0,1)*v**2)/(4.*Lambda**2*sw) + (C3phiq*ee*complex(0,1)*sw*v**2)/(4.*cw*Lambda**2) + (cw*ee*complex(0,1)*v**2*complexconjugate(C3phiq))/(4.*Lambda**2*sw) + (ee*complex(0,1)*sw*v**2*complexconjugate(C3phiq))/(4.*cw*Lambda**2)',
1356+ order = {'NP':2})
1357+
1358+GC_107 = Coupling(name = 'GC_107',
1359+ value = '(ee*complex(0,1)*complexconjugate(CKM11))/(sw*cmath.sqrt(2))',
1360+ order = {'QED':1})
1361+
1362+GC_108 = Coupling(name = 'GC_108',
1363+ value = '(ee*complex(0,1)*complexconjugate(CKM12))/(sw*cmath.sqrt(2))',
1364+ order = {'QED':1})
1365+
1366+GC_109 = Coupling(name = 'GC_109',
1367+ value = '(ee*complex(0,1)*complexconjugate(CKM13))/(sw*cmath.sqrt(2))',
1368+ order = {'QED':1})
1369+
1370+GC_110 = Coupling(name = 'GC_110',
1371+ value = '(ee*complex(0,1)*complexconjugate(CKM21))/(sw*cmath.sqrt(2))',
1372+ order = {'QED':1})
1373+
1374+GC_111 = Coupling(name = 'GC_111',
1375+ value = '(ee*complex(0,1)*complexconjugate(CKM22))/(sw*cmath.sqrt(2))',
1376+ order = {'QED':1})
1377+
1378+GC_112 = Coupling(name = 'GC_112',
1379+ value = '(ee*complex(0,1)*complexconjugate(CKM23))/(sw*cmath.sqrt(2))',
1380+ order = {'QED':1})
1381+
1382+GC_113 = Coupling(name = 'GC_113',
1383+ value = '(ee*complex(0,1)*complexconjugate(CKM31))/(sw*cmath.sqrt(2))',
1384+ order = {'QED':1})
1385+
1386+GC_114 = Coupling(name = 'GC_114',
1387+ value = '(ee*complex(0,1)*complexconjugate(CKM32))/(sw*cmath.sqrt(2))',
1388+ order = {'QED':1})
1389+
1390+GC_115 = Coupling(name = 'GC_115',
1391+ value = '(ee*complex(0,1)*complexconjugate(CKM33))/(sw*cmath.sqrt(2))',
1392+ order = {'QED':1})
1393+
1394+GC_116 = Coupling(name = 'GC_116',
1395+ value = '(-2*complex(0,1)*complexconjugate(CtG)*cmath.sqrt(2))/Lambda**2',
1396+ order = {'NP':2,'QED':1})
1397+
1398+GC_117 = Coupling(name = 'GC_117',
1399+ value = '(-2*G*complexconjugate(CtG)*cmath.sqrt(2))/Lambda**2',
1400+ order = {'NP':2,'QCD':1,'QED':1})
1401+
1402+GC_118 = Coupling(name = 'GC_118',
1403+ value = '(-2*complex(0,1)*v*complexconjugate(CtG)*cmath.sqrt(2))/Lambda**2',
1404+ order = {'NP':2})
1405+
1406+GC_119 = Coupling(name = 'GC_119',
1407+ value = '(-2*G*v*complexconjugate(CtG)*cmath.sqrt(2))/Lambda**2',
1408+ order = {'NP':2,'QCD':1})
1409+
1410+GC_120 = Coupling(name = 'GC_120',
1411+ value = '(-2*complex(0,1)*complexconjugate(CtW))/Lambda**2',
1412+ order = {'NP':2,'QED':1})
1413+
1414+GC_121 = Coupling(name = 'GC_121',
1415+ value = '-((cw*complex(0,1)*complexconjugate(CtW)*cmath.sqrt(2))/Lambda**2)',
1416+ order = {'NP':2,'QED':1})
1417+
1418+GC_122 = Coupling(name = 'GC_122',
1419+ value = '(complex(0,1)*gw*complexconjugate(CtW)*cmath.sqrt(2))/Lambda**2',
1420+ order = {'NP':2,'QED':2})
1421+
1422+GC_123 = Coupling(name = 'GC_123',
1423+ value = '(-2*cw*complex(0,1)*gw*complexconjugate(CtW))/Lambda**2',
1424+ order = {'NP':2,'QED':2})
1425+
1426+GC_124 = Coupling(name = 'GC_124',
1427+ value = '-((complex(0,1)*sw*complexconjugate(CtW)*cmath.sqrt(2))/Lambda**2)',
1428+ order = {'NP':2,'QED':1})
1429+
1430+GC_125 = Coupling(name = 'GC_125',
1431+ value = '(2*complex(0,1)*gw*sw*complexconjugate(CtW))/Lambda**2',
1432+ order = {'NP':2,'QED':2})
1433+
1434+GC_126 = Coupling(name = 'GC_126',
1435+ value = '(-2*complex(0,1)*v*complexconjugate(CtW))/Lambda**2',
1436+ order = {'NP':2})
1437+
1438+GC_127 = Coupling(name = 'GC_127',
1439+ value = '-((cw*complex(0,1)*v*complexconjugate(CtW)*cmath.sqrt(2))/Lambda**2)',
1440+ order = {'NP':2})
1441+
1442+GC_128 = Coupling(name = 'GC_128',
1443+ value = '(complex(0,1)*gw*v*complexconjugate(CtW)*cmath.sqrt(2))/Lambda**2',
1444+ order = {'NP':2,'QED':1})
1445+
1446+GC_129 = Coupling(name = 'GC_129',
1447+ value = '(-2*cw*complex(0,1)*gw*v*complexconjugate(CtW))/Lambda**2',
1448+ order = {'NP':2,'QED':1})
1449+
1450+GC_130 = Coupling(name = 'GC_130',
1451+ value = '-((complex(0,1)*sw*v*complexconjugate(CtW)*cmath.sqrt(2))/Lambda**2)',
1452+ order = {'NP':2})
1453+
1454+GC_131 = Coupling(name = 'GC_131',
1455+ value = '(2*complex(0,1)*gw*sw*v*complexconjugate(CtW))/Lambda**2',
1456+ order = {'NP':2,'QED':1})
1457+
1458
1459=== added file 'models/TopEffTh/function_library.py'
1460--- models/TopEffTh/function_library.py 1970-01-01 00:00:00 +0000
1461+++ models/TopEffTh/function_library.py 2011-10-11 00:36:19 +0000
1462@@ -0,0 +1,54 @@
1463+# This file is part of the UFO.
1464+#
1465+# This file contains definitions for functions that
1466+# are extensions of the cmath library, and correspond
1467+# either to functions that are in cmath, but inconvenient
1468+# to access from there (e.g. z.conjugate()),
1469+# or functions that are simply not defined.
1470+#
1471+#
1472+
1473+__date__ = "22 July 2010"
1474+__author__ = "claude.duhr@durham.ac.uk"
1475+
1476+import cmath
1477+from object_library import all_functions, Function
1478+
1479+#
1480+# shortcuts for functions from cmath
1481+#
1482+
1483+complexconjugate = Function(name = 'complexconjugate',
1484+ arguments = ('z',),
1485+ expression = 'z.conjugate()')
1486+
1487+
1488+re = Function(name = 're',
1489+ arguments = ('z',),
1490+ expression = 'z.real')
1491+
1492+im = Function(name = 'im',
1493+ arguments = ('z',),
1494+ expression = 'z.imag')
1495+
1496+# New functions (trigonometric)
1497+
1498+sec = Function(name = 'sec',
1499+ arguments = ('z',),
1500+ expression = '1./cmath.cos(z)')
1501+
1502+asec = Function(name = 'asec',
1503+ arguments = ('z',),
1504+ expression = 'cmath.acos(1./z)')
1505+
1506+csc = Function(name = 'csc',
1507+ arguments = ('z',),
1508+ expression = '1./cmath.sin(z)')
1509+
1510+acsc = Function(name = 'acsc',
1511+ arguments = ('z',),
1512+ expression = 'cmath.asin(1./z)')
1513+
1514+
1515+
1516+
1517
1518=== added file 'models/TopEffTh/lorentz.py'
1519--- models/TopEffTh/lorentz.py 1970-01-01 00:00:00 +0000
1520+++ models/TopEffTh/lorentz.py 2011-10-11 00:36:19 +0000
1521@@ -0,0 +1,367 @@
1522+# This file was automatically created by FeynRules $Revision: 821 $
1523+# Mathematica version: 7.0 for Microsoft Windows (32-bit) (February 18, 2009)
1524+# Date: Mon 3 Oct 2011 13:27:06
1525+
1526+
1527+from object_library import all_lorentz, Lorentz
1528+
1529+from function_library import complexconjugate, re, im, csc, sec, acsc, asec
1530+
1531+
1532+
1533+UUV1 = Lorentz(name = 'UUV1',
1534+ spins = [ -1, -1, 3 ],
1535+ structure = 'P(3,2) + P(3,3)')
1536+
1537+SSS1 = Lorentz(name = 'SSS1',
1538+ spins = [ 1, 1, 1 ],
1539+ structure = '1')
1540+
1541+FFS1 = Lorentz(name = 'FFS1',
1542+ spins = [ 2, 2, 1 ],
1543+ structure = 'Identity(2,1)')
1544+
1545+FFS2 = Lorentz(name = 'FFS2',
1546+ spins = [ 2, 2, 1 ],
1547+ structure = 'P(-1,3)*Gamma(-1,2,-2)*ProjM(-2,1)')
1548+
1549+FFV1 = Lorentz(name = 'FFV1',
1550+ spins = [ 2, 2, 3 ],
1551+ structure = 'Gamma(3,2,1)')
1552+
1553+FFV2 = Lorentz(name = 'FFV2',
1554+ spins = [ 2, 2, 3 ],
1555+ structure = 'Gamma(3,2,-1)*ProjM(-1,1)')
1556+
1557+FFV3 = Lorentz(name = 'FFV3',
1558+ spins = [ 2, 2, 3 ],
1559+ structure = '-(P(-1,3)*Gamma(-1,-3,-2)*Gamma(3,2,-3)*ProjM(-2,1)) + P(3,3)*ProjM(2,1)')
1560+
1561+FFV4 = Lorentz(name = 'FFV4',
1562+ spins = [ 2, 2, 3 ],
1563+ structure = 'Gamma(3,2,-1)*ProjP(-1,1)')
1564+
1565+FFV5 = Lorentz(name = 'FFV5',
1566+ spins = [ 2, 2, 3 ],
1567+ structure = 'Gamma(3,2,-1)*ProjM(-1,1) - 2*Gamma(3,2,-1)*ProjP(-1,1)')
1568+
1569+FFV6 = Lorentz(name = 'FFV6',
1570+ spins = [ 2, 2, 3 ],
1571+ structure = 'Gamma(3,2,-1)*ProjM(-1,1) + 2*Gamma(3,2,-1)*ProjP(-1,1)')
1572+
1573+FFV7 = Lorentz(name = 'FFV7',
1574+ spins = [ 2, 2, 3 ],
1575+ structure = 'Gamma(3,2,-1)*ProjM(-1,1) + 4*Gamma(3,2,-1)*ProjP(-1,1)')
1576+
1577+FFV8 = Lorentz(name = 'FFV8',
1578+ spins = [ 2, 2, 3 ],
1579+ structure = '-(P(-1,3)*Gamma(-1,-3,-2)*Gamma(3,2,-3)*ProjP(-2,1)) + P(3,3)*ProjP(2,1)')
1580+
1581+VVS1 = Lorentz(name = 'VVS1',
1582+ spins = [ 3, 3, 1 ],
1583+ structure = 'Metric(1,2)')
1584+
1585+VVS2 = Lorentz(name = 'VVS2',
1586+ spins = [ 3, 3, 1 ],
1587+ structure = 'P(1,2)*P(2,1) - P(-1,1)*P(-1,2)*Metric(1,2)')
1588+
1589+VVV1 = Lorentz(name = 'VVV1',
1590+ spins = [ 3, 3, 3 ],
1591+ 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)')
1592+
1593+VVV2 = Lorentz(name = 'VVV2',
1594+ spins = [ 3, 3, 3 ],
1595+ structure = '-(P(1,2)*P(2,3)*P(3,1)) + P(1,3)*P(2,1)*P(3,2) + P(-1,2)*P(-1,3)*P(3,1)*Metric(1,2) - P(-1,1)*P(-1,3)*P(3,2)*Metric(1,2) - P(-1,2)*P(-1,3)*P(2,1)*Metric(1,3) + P(-1,1)*P(-1,2)*P(2,3)*Metric(1,3) + P(-1,1)*P(-1,3)*P(1,2)*Metric(2,3) - P(-1,1)*P(-1,2)*P(1,3)*Metric(2,3)')
1596+
1597+SSSS1 = Lorentz(name = 'SSSS1',
1598+ spins = [ 1, 1, 1, 1 ],
1599+ structure = '1')
1600+
1601+FFSS1 = Lorentz(name = 'FFSS1',
1602+ spins = [ 2, 2, 1, 1 ],
1603+ structure = 'P(-1,3)*Gamma(-1,2,-2)*ProjM(-2,1) + P(-1,4)*Gamma(-1,2,-2)*ProjM(-2,1)')
1604+
1605+FFVS1 = Lorentz(name = 'FFVS1',
1606+ spins = [ 2, 2, 3, 1 ],
1607+ structure = 'Gamma(3,2,-1)*ProjM(-1,1)')
1608+
1609+FFVS2 = Lorentz(name = 'FFVS2',
1610+ spins = [ 2, 2, 3, 1 ],
1611+ structure = '-(P(-1,3)*Gamma(-1,-3,-2)*Gamma(3,2,-3)*ProjM(-2,1)) + P(3,3)*ProjM(2,1)')
1612+
1613+FFVS3 = Lorentz(name = 'FFVS3',
1614+ spins = [ 2, 2, 3, 1 ],
1615+ structure = '-(P(-1,3)*Gamma(-1,-3,-2)*Gamma(3,2,-3)*ProjP(-2,1)) + P(3,3)*ProjP(2,1)')
1616+
1617+FFVV1 = Lorentz(name = 'FFVV1',
1618+ spins = [ 2, 2, 3, 3 ],
1619+ structure = 'Gamma(3,2,-2)*Gamma(4,-2,-1)*ProjM(-1,1) - Metric(3,4)*ProjM(2,1)')
1620+
1621+FFVV2 = Lorentz(name = 'FFVV2',
1622+ spins = [ 2, 2, 3, 3 ],
1623+ structure = 'Gamma(3,2,-2)*Gamma(4,-2,-1)*ProjP(-1,1) - Metric(3,4)*ProjP(2,1)')
1624+
1625+VVSS1 = Lorentz(name = 'VVSS1',
1626+ spins = [ 3, 3, 1, 1 ],
1627+ structure = 'Metric(1,2)')
1628+
1629+VVSS2 = Lorentz(name = 'VVSS2',
1630+ spins = [ 3, 3, 1, 1 ],
1631+ structure = 'P(1,2)*P(2,1) - P(-1,1)*P(-1,2)*Metric(1,2)')
1632+
1633+VVVS1 = Lorentz(name = 'VVVS1',
1634+ spins = [ 3, 3, 3, 1 ],
1635+ 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)')
1636+
1637+VVVV1 = Lorentz(name = 'VVVV1',
1638+ spins = [ 3, 3, 3, 3 ],
1639+ structure = 'Metric(1,4)*Metric(2,3) - Metric(1,3)*Metric(2,4)')
1640+
1641+VVVV2 = Lorentz(name = 'VVVV2',
1642+ spins = [ 3, 3, 3, 3 ],
1643+ structure = 'P(3,2)*P(4,1)*Metric(1,2) - P(3,1)*P(4,2)*Metric(1,2) + P(2,1)*P(4,2)*Metric(1,3) + P(2,4)*P(4,3)*Metric(1,3) - P(2,1)*P(3,2)*Metric(1,4) - P(2,3)*P(3,4)*Metric(1,4) - P(1,2)*P(4,1)*Metric(2,3) - P(1,4)*P(4,3)*Metric(2,3) + P(-1,1)*P(-1,2)*Metric(1,4)*Metric(2,3) + P(-1,3)*P(-1,4)*Metric(1,4)*Metric(2,3) + P(1,2)*P(3,1)*Metric(2,4) + P(1,3)*P(3,4)*Metric(2,4) - P(-1,1)*P(-1,2)*Metric(1,3)*Metric(2,4) - P(-1,3)*P(-1,4)*Metric(1,3)*Metric(2,4) + P(1,4)*P(2,3)*Metric(3,4) - P(1,3)*P(2,4)*Metric(3,4)')
1644+
1645+VVVV3 = Lorentz(name = 'VVVV3',
1646+ spins = [ 3, 3, 3, 3 ],
1647+ structure = 'Metric(1,4)*Metric(2,3) + Metric(1,3)*Metric(2,4) - 2*Metric(1,2)*Metric(3,4)')
1648+
1649+VVVV4 = Lorentz(name = 'VVVV4',
1650+ spins = [ 3, 3, 3, 3 ],
1651+ structure = 'Metric(1,4)*Metric(2,3) - Metric(1,2)*Metric(3,4)')
1652+
1653+VVVV5 = Lorentz(name = 'VVVV5',
1654+ spins = [ 3, 3, 3, 3 ],
1655+ structure = 'Metric(1,3)*Metric(2,4) - Metric(1,2)*Metric(3,4)')
1656+
1657+VVVV6 = Lorentz(name = 'VVVV6',
1658+ spins = [ 3, 3, 3, 3 ],
1659+ structure = 'Metric(1,4)*Metric(2,3) - (Metric(1,3)*Metric(2,4))/2. - (Metric(1,2)*Metric(3,4))/2.')
1660+
1661+VVVV7 = Lorentz(name = 'VVVV7',
1662+ spins = [ 3, 3, 3, 3 ],
1663+ structure = 'P(3,4)*P(4,1)*Metric(1,2) + P(3,2)*P(4,3)*Metric(1,2) - P(2,4)*P(4,1)*Metric(1,3) - P(2,3)*P(4,2)*Metric(1,3) + P(2,4)*P(3,1)*Metric(1,4) - P(2,1)*P(3,4)*Metric(1,4) + P(1,3)*P(4,2)*Metric(2,3) - P(1,2)*P(4,3)*Metric(2,3) - P(1,4)*P(3,1)*Metric(2,4) - P(1,3)*P(3,2)*Metric(2,4) + P(-1,2)*P(-1,3)*Metric(1,3)*Metric(2,4) + P(-1,1)*P(-1,4)*Metric(1,3)*Metric(2,4) + P(1,4)*P(2,1)*Metric(3,4) + P(1,2)*P(2,3)*Metric(3,4) - P(-1,2)*P(-1,3)*Metric(1,2)*Metric(3,4) - P(-1,1)*P(-1,4)*Metric(1,2)*Metric(3,4)')
1664+
1665+VVVV8 = Lorentz(name = 'VVVV8',
1666+ spins = [ 3, 3, 3, 3 ],
1667+ structure = 'P(3,4)*P(4,2)*Metric(1,2) + P(3,1)*P(4,3)*Metric(1,2) + P(2,3)*P(4,1)*Metric(1,3) - P(2,1)*P(4,3)*Metric(1,3) - P(2,3)*P(3,1)*Metric(1,4) - P(2,4)*P(3,2)*Metric(1,4) - P(1,3)*P(4,1)*Metric(2,3) - P(1,4)*P(4,2)*Metric(2,3) + P(-1,1)*P(-1,3)*Metric(1,4)*Metric(2,3) + P(-1,2)*P(-1,4)*Metric(1,4)*Metric(2,3) + P(1,4)*P(3,2)*Metric(2,4) - P(1,2)*P(3,4)*Metric(2,4) + P(1,3)*P(2,1)*Metric(3,4) + P(1,2)*P(2,4)*Metric(3,4) - P(-1,1)*P(-1,3)*Metric(1,2)*Metric(3,4) - P(-1,2)*P(-1,4)*Metric(1,2)*Metric(3,4)')
1668+
1669+FFVSS1 = Lorentz(name = 'FFVSS1',
1670+ spins = [ 2, 2, 3, 1, 1 ],
1671+ structure = 'Gamma(3,2,-1)*ProjM(-1,1)')
1672+
1673+FFVVS1 = Lorentz(name = 'FFVVS1',
1674+ spins = [ 2, 2, 3, 3, 1 ],
1675+ structure = 'Gamma(3,2,-2)*Gamma(4,-2,-1)*ProjM(-1,1) - Metric(3,4)*ProjM(2,1)')
1676+
1677+FFVVS2 = Lorentz(name = 'FFVVS2',
1678+ spins = [ 2, 2, 3, 3, 1 ],
1679+ structure = 'Gamma(3,2,-2)*Gamma(4,-2,-1)*ProjP(-1,1) - Metric(3,4)*ProjP(2,1)')
1680+
1681+VVVSS1 = Lorentz(name = 'VVVSS1',
1682+ spins = [ 3, 3, 3, 1, 1 ],
1683+ 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)')
1684+
1685+VVVVS1 = Lorentz(name = 'VVVVS1',
1686+ spins = [ 3, 3, 3, 3, 1 ],
1687+ structure = 'Metric(1,4)*Metric(2,3) - Metric(1,3)*Metric(2,4)')
1688+
1689+VVVVS2 = Lorentz(name = 'VVVVS2',
1690+ spins = [ 3, 3, 3, 3, 1 ],
1691+ structure = 'Metric(1,4)*Metric(2,3) - Metric(1,2)*Metric(3,4)')
1692+
1693+VVVVS3 = Lorentz(name = 'VVVVS3',
1694+ spins = [ 3, 3, 3, 3, 1 ],
1695+ structure = 'Metric(1,3)*Metric(2,4) - Metric(1,2)*Metric(3,4)')
1696+
1697+VVVVV1 = Lorentz(name = 'VVVVV1',
1698+ spins = [ 3, 3, 3, 3, 3 ],
1699+ structure = 'P(5,3)*Metric(1,4)*Metric(2,3) - P(4,3)*Metric(1,5)*Metric(2,3) - P(5,3)*Metric(1,3)*Metric(2,4) + P(4,3)*Metric(1,3)*Metric(2,5)')
1700+
1701+VVVVV2 = Lorentz(name = 'VVVVV2',
1702+ spins = [ 3, 3, 3, 3, 3 ],
1703+ structure = 'P(5,4)*Metric(1,4)*Metric(2,3) - P(5,4)*Metric(1,3)*Metric(2,4) + P(3,4)*Metric(1,5)*Metric(2,4) - P(3,4)*Metric(1,4)*Metric(2,5)')
1704+
1705+VVVVV3 = Lorentz(name = 'VVVVV3',
1706+ spins = [ 3, 3, 3, 3, 3 ],
1707+ structure = 'P(4,5)*Metric(1,5)*Metric(2,3) - P(3,5)*Metric(1,5)*Metric(2,4) - P(4,5)*Metric(1,3)*Metric(2,5) + P(3,5)*Metric(1,4)*Metric(2,5)')
1708+
1709+VVVVV4 = Lorentz(name = 'VVVVV4',
1710+ spins = [ 3, 3, 3, 3, 3 ],
1711+ structure = 'P(5,1)*Metric(1,3)*Metric(2,4) - P(4,1)*Metric(1,3)*Metric(2,5) - P(5,1)*Metric(1,2)*Metric(3,4) + P(4,1)*Metric(1,2)*Metric(3,5)')
1712+
1713+VVVVV5 = Lorentz(name = 'VVVVV5',
1714+ spins = [ 3, 3, 3, 3, 3 ],
1715+ structure = 'P(5,2)*Metric(1,4)*Metric(2,3) - P(4,2)*Metric(1,5)*Metric(2,3) - P(5,2)*Metric(1,2)*Metric(3,4) + P(4,2)*Metric(1,2)*Metric(3,5)')
1716+
1717+VVVVV6 = Lorentz(name = 'VVVVV6',
1718+ spins = [ 3, 3, 3, 3, 3 ],
1719+ structure = 'P(3,1)*Metric(1,5)*Metric(2,4) - P(3,1)*Metric(1,4)*Metric(2,5) - P(2,1)*Metric(1,5)*Metric(3,4) + P(2,1)*Metric(1,4)*Metric(3,5)')
1720+
1721+VVVVV7 = Lorentz(name = 'VVVVV7',
1722+ spins = [ 3, 3, 3, 3, 3 ],
1723+ structure = 'P(5,4)*Metric(1,4)*Metric(2,3) - P(5,4)*Metric(1,2)*Metric(3,4) + P(2,4)*Metric(1,5)*Metric(3,4) - P(2,4)*Metric(1,4)*Metric(3,5)')
1724+
1725+VVVVV8 = Lorentz(name = 'VVVVV8',
1726+ spins = [ 3, 3, 3, 3, 3 ],
1727+ structure = 'P(4,5)*Metric(1,5)*Metric(2,3) - P(2,5)*Metric(1,5)*Metric(3,4) - P(4,5)*Metric(1,2)*Metric(3,5) + P(2,5)*Metric(1,4)*Metric(3,5)')
1728+
1729+VVVVV9 = Lorentz(name = 'VVVVV9',
1730+ spins = [ 3, 3, 3, 3, 3 ],
1731+ structure = 'P(3,2)*Metric(1,5)*Metric(2,4) - P(3,2)*Metric(1,4)*Metric(2,5) + P(1,2)*Metric(2,5)*Metric(3,4) - P(1,2)*Metric(2,4)*Metric(3,5)')
1732+
1733+VVVVV10 = Lorentz(name = 'VVVVV10',
1734+ spins = [ 3, 3, 3, 3, 3 ],
1735+ structure = 'P(2,3)*Metric(1,5)*Metric(3,4) - P(1,3)*Metric(2,5)*Metric(3,4) - P(2,3)*Metric(1,4)*Metric(3,5) + P(1,3)*Metric(2,4)*Metric(3,5)')
1736+
1737+VVVVV11 = Lorentz(name = 'VVVVV11',
1738+ spins = [ 3, 3, 3, 3, 3 ],
1739+ structure = 'P(5,4)*Metric(1,3)*Metric(2,4) - P(5,4)*Metric(1,2)*Metric(3,4) + P(1,4)*Metric(2,5)*Metric(3,4) - P(1,4)*Metric(2,4)*Metric(3,5)')
1740+
1741+VVVVV12 = Lorentz(name = 'VVVVV12',
1742+ spins = [ 3, 3, 3, 3, 3 ],
1743+ structure = 'P(4,5)*Metric(1,3)*Metric(2,5) - P(1,5)*Metric(2,5)*Metric(3,4) - P(4,5)*Metric(1,2)*Metric(3,5) + P(1,5)*Metric(2,4)*Metric(3,5)')
1744+
1745+VVVVV13 = Lorentz(name = 'VVVVV13',
1746+ spins = [ 3, 3, 3, 3, 3 ],
1747+ structure = 'P(5,1)*Metric(1,4)*Metric(2,3) - P(3,1)*Metric(1,4)*Metric(2,5) - P(5,1)*Metric(1,2)*Metric(3,4) + P(3,1)*Metric(1,2)*Metric(4,5)')
1748+
1749+VVVVV14 = Lorentz(name = 'VVVVV14',
1750+ spins = [ 3, 3, 3, 3, 3 ],
1751+ structure = 'P(4,1)*Metric(1,5)*Metric(2,3) - P(3,1)*Metric(1,5)*Metric(2,4) - P(4,1)*Metric(1,2)*Metric(3,5) + P(3,1)*Metric(1,2)*Metric(4,5)')
1752+
1753+VVVVV15 = Lorentz(name = 'VVVVV15',
1754+ spins = [ 3, 3, 3, 3, 3 ],
1755+ structure = 'P(5,2)*Metric(1,3)*Metric(2,4) - P(3,2)*Metric(1,5)*Metric(2,4) - P(5,2)*Metric(1,2)*Metric(3,4) + P(3,2)*Metric(1,2)*Metric(4,5)')
1756+
1757+VVVVV16 = Lorentz(name = 'VVVVV16',
1758+ spins = [ 3, 3, 3, 3, 3 ],
1759+ structure = 'P(4,2)*Metric(1,3)*Metric(2,5) - P(3,2)*Metric(1,4)*Metric(2,5) - P(4,2)*Metric(1,2)*Metric(3,5) + P(3,2)*Metric(1,2)*Metric(4,5)')
1760+
1761+VVVVV17 = Lorentz(name = 'VVVVV17',
1762+ spins = [ 3, 3, 3, 3, 3 ],
1763+ structure = 'P(4,1)*Metric(1,5)*Metric(2,3) - P(4,1)*Metric(1,3)*Metric(2,5) - P(2,1)*Metric(1,5)*Metric(3,4) + P(2,1)*Metric(1,3)*Metric(4,5)')
1764+
1765+VVVVV18 = Lorentz(name = 'VVVVV18',
1766+ spins = [ 3, 3, 3, 3, 3 ],
1767+ structure = 'P(5,1)*Metric(1,4)*Metric(2,3) - P(5,1)*Metric(1,3)*Metric(2,4) - P(2,1)*Metric(1,4)*Metric(3,5) + P(2,1)*Metric(1,3)*Metric(4,5)')
1768+
1769+VVVVV19 = Lorentz(name = 'VVVVV19',
1770+ spins = [ 3, 3, 3, 3, 3 ],
1771+ structure = 'P(5,3)*Metric(1,3)*Metric(2,4) - P(5,3)*Metric(1,2)*Metric(3,4) + P(2,3)*Metric(1,5)*Metric(3,4) - P(2,3)*Metric(1,3)*Metric(4,5)')
1772+
1773+VVVVV20 = Lorentz(name = 'VVVVV20',
1774+ spins = [ 3, 3, 3, 3, 3 ],
1775+ structure = 'P(4,3)*Metric(1,3)*Metric(2,5) - P(4,3)*Metric(1,2)*Metric(3,5) + P(2,3)*Metric(1,4)*Metric(3,5) - P(2,3)*Metric(1,3)*Metric(4,5)')
1776+
1777+VVVVV21 = Lorentz(name = 'VVVVV21',
1778+ spins = [ 3, 3, 3, 3, 3 ],
1779+ structure = 'P(3,4)*Metric(1,4)*Metric(2,5) - P(2,4)*Metric(1,4)*Metric(3,5) - P(3,4)*Metric(1,2)*Metric(4,5) + P(2,4)*Metric(1,3)*Metric(4,5)')
1780+
1781+VVVVV22 = Lorentz(name = 'VVVVV22',
1782+ spins = [ 3, 3, 3, 3, 3 ],
1783+ structure = 'P(3,5)*Metric(1,5)*Metric(2,4) - P(2,5)*Metric(1,5)*Metric(3,4) - P(3,5)*Metric(1,2)*Metric(4,5) + P(2,5)*Metric(1,3)*Metric(4,5)')
1784+
1785+VVVVV23 = Lorentz(name = 'VVVVV23',
1786+ spins = [ 3, 3, 3, 3, 3 ],
1787+ structure = 'P(4,2)*Metric(1,5)*Metric(2,3) - P(4,2)*Metric(1,3)*Metric(2,5) + P(1,2)*Metric(2,5)*Metric(3,4) - P(1,2)*Metric(2,3)*Metric(4,5)')
1788+
1789+VVVVV24 = Lorentz(name = 'VVVVV24',
1790+ spins = [ 3, 3, 3, 3, 3 ],
1791+ structure = 'P(5,2)*Metric(1,4)*Metric(2,3) - P(5,2)*Metric(1,3)*Metric(2,4) + P(1,2)*Metric(2,4)*Metric(3,5) - P(1,2)*Metric(2,3)*Metric(4,5)')
1792+
1793+VVVVV25 = Lorentz(name = 'VVVVV25',
1794+ spins = [ 3, 3, 3, 3, 3 ],
1795+ structure = 'P(5,3)*Metric(1,4)*Metric(2,3) - P(5,3)*Metric(1,2)*Metric(3,4) + P(1,3)*Metric(2,5)*Metric(3,4) - P(1,3)*Metric(2,3)*Metric(4,5)')
1796+
1797+VVVVV26 = Lorentz(name = 'VVVVV26',
1798+ spins = [ 3, 3, 3, 3, 3 ],
1799+ structure = 'P(4,3)*Metric(1,5)*Metric(2,3) - P(4,3)*Metric(1,2)*Metric(3,5) + P(1,3)*Metric(2,4)*Metric(3,5) - P(1,3)*Metric(2,3)*Metric(4,5)')
1800+
1801+VVVVV27 = Lorentz(name = 'VVVVV27',
1802+ spins = [ 3, 3, 3, 3, 3 ],
1803+ structure = 'P(3,4)*Metric(1,5)*Metric(2,4) - P(1,4)*Metric(2,4)*Metric(3,5) - P(3,4)*Metric(1,2)*Metric(4,5) + P(1,4)*Metric(2,3)*Metric(4,5)')
1804+
1805+VVVVV28 = Lorentz(name = 'VVVVV28',
1806+ spins = [ 3, 3, 3, 3, 3 ],
1807+ structure = 'P(2,4)*Metric(1,5)*Metric(3,4) - P(1,4)*Metric(2,5)*Metric(3,4) - P(2,4)*Metric(1,3)*Metric(4,5) + P(1,4)*Metric(2,3)*Metric(4,5)')
1808+
1809+VVVVV29 = Lorentz(name = 'VVVVV29',
1810+ spins = [ 3, 3, 3, 3, 3 ],
1811+ structure = 'P(3,5)*Metric(1,4)*Metric(2,5) - P(1,5)*Metric(2,5)*Metric(3,4) - P(3,5)*Metric(1,2)*Metric(4,5) + P(1,5)*Metric(2,3)*Metric(4,5)')
1812+
1813+VVVVV30 = Lorentz(name = 'VVVVV30',
1814+ spins = [ 3, 3, 3, 3, 3 ],
1815+ structure = 'P(2,5)*Metric(1,4)*Metric(3,5) - P(1,5)*Metric(2,4)*Metric(3,5) - P(2,5)*Metric(1,3)*Metric(4,5) + P(1,5)*Metric(2,3)*Metric(4,5)')
1816+
1817+VVVVSS1 = Lorentz(name = 'VVVVSS1',
1818+ spins = [ 3, 3, 3, 3, 1, 1 ],
1819+ structure = 'Metric(1,4)*Metric(2,3) - Metric(1,3)*Metric(2,4)')
1820+
1821+VVVVSS2 = Lorentz(name = 'VVVVSS2',
1822+ spins = [ 3, 3, 3, 3, 1, 1 ],
1823+ structure = 'Metric(1,4)*Metric(2,3) - Metric(1,2)*Metric(3,4)')
1824+
1825+VVVVSS3 = Lorentz(name = 'VVVVSS3',
1826+ spins = [ 3, 3, 3, 3, 1, 1 ],
1827+ structure = 'Metric(1,3)*Metric(2,4) - Metric(1,2)*Metric(3,4)')
1828+
1829+VVVVVV1 = Lorentz(name = 'VVVVVV1',
1830+ spins = [ 3, 3, 3, 3, 3, 3 ],
1831+ structure = 'Metric(1,6)*Metric(2,4)*Metric(3,5) - Metric(1,4)*Metric(2,6)*Metric(3,5) - Metric(1,5)*Metric(2,4)*Metric(3,6) + Metric(1,4)*Metric(2,5)*Metric(3,6) - Metric(1,6)*Metric(2,3)*Metric(4,5) + Metric(1,3)*Metric(2,6)*Metric(4,5) + Metric(1,5)*Metric(2,3)*Metric(4,6) - Metric(1,3)*Metric(2,5)*Metric(4,6)')
1832+
1833+VVVVVV2 = Lorentz(name = 'VVVVVV2',
1834+ spins = [ 3, 3, 3, 3, 3, 3 ],
1835+ structure = 'Metric(1,6)*Metric(2,5)*Metric(3,4) - Metric(1,5)*Metric(2,6)*Metric(3,4) + Metric(1,4)*Metric(2,6)*Metric(3,5) - Metric(1,4)*Metric(2,5)*Metric(3,6) - Metric(1,6)*Metric(2,3)*Metric(4,5) + Metric(1,2)*Metric(3,6)*Metric(4,5) + Metric(1,5)*Metric(2,3)*Metric(4,6) - Metric(1,2)*Metric(3,5)*Metric(4,6)')
1836+
1837+VVVVVV3 = Lorentz(name = 'VVVVVV3',
1838+ spins = [ 3, 3, 3, 3, 3, 3 ],
1839+ structure = 'Metric(1,6)*Metric(2,5)*Metric(3,4) - Metric(1,5)*Metric(2,6)*Metric(3,4) - Metric(1,6)*Metric(2,4)*Metric(3,5) + Metric(1,5)*Metric(2,4)*Metric(3,6) + Metric(1,3)*Metric(2,6)*Metric(4,5) - Metric(1,2)*Metric(3,6)*Metric(4,5) - Metric(1,3)*Metric(2,5)*Metric(4,6) + Metric(1,2)*Metric(3,5)*Metric(4,6)')
1840+
1841+VVVVVV4 = Lorentz(name = 'VVVVVV4',
1842+ spins = [ 3, 3, 3, 3, 3, 3 ],
1843+ structure = 'Metric(1,6)*Metric(2,5)*Metric(3,4) - Metric(1,5)*Metric(2,6)*Metric(3,4) + Metric(1,5)*Metric(2,4)*Metric(3,6) - Metric(1,4)*Metric(2,5)*Metric(3,6) - Metric(1,6)*Metric(2,3)*Metric(4,5) + Metric(1,3)*Metric(2,6)*Metric(4,5) + Metric(1,4)*Metric(2,3)*Metric(5,6) - Metric(1,3)*Metric(2,4)*Metric(5,6)')
1844+
1845+VVVVVV5 = Lorentz(name = 'VVVVVV5',
1846+ spins = [ 3, 3, 3, 3, 3, 3 ],
1847+ structure = 'Metric(1,6)*Metric(2,4)*Metric(3,5) - Metric(1,4)*Metric(2,5)*Metric(3,6) - Metric(1,6)*Metric(2,3)*Metric(4,5) + Metric(1,2)*Metric(3,6)*Metric(4,5) + Metric(1,3)*Metric(2,5)*Metric(4,6) - Metric(1,2)*Metric(3,5)*Metric(4,6) + Metric(1,4)*Metric(2,3)*Metric(5,6) - Metric(1,3)*Metric(2,4)*Metric(5,6)')
1848+
1849+VVVVVV6 = Lorentz(name = 'VVVVVV6',
1850+ spins = [ 3, 3, 3, 3, 3, 3 ],
1851+ structure = 'Metric(1,6)*Metric(2,5)*Metric(3,4) - Metric(1,5)*Metric(2,6)*Metric(3,4) - Metric(1,6)*Metric(2,4)*Metric(3,5) + Metric(1,4)*Metric(2,6)*Metric(3,5) + Metric(1,5)*Metric(2,3)*Metric(4,6) - Metric(1,3)*Metric(2,5)*Metric(4,6) - Metric(1,4)*Metric(2,3)*Metric(5,6) + Metric(1,3)*Metric(2,4)*Metric(5,6)')
1852+
1853+VVVVVV7 = Lorentz(name = 'VVVVVV7',
1854+ spins = [ 3, 3, 3, 3, 3, 3 ],
1855+ structure = 'Metric(1,4)*Metric(2,6)*Metric(3,5) - Metric(1,5)*Metric(2,4)*Metric(3,6) - Metric(1,3)*Metric(2,6)*Metric(4,5) + Metric(1,2)*Metric(3,6)*Metric(4,5) + Metric(1,5)*Metric(2,3)*Metric(4,6) - Metric(1,2)*Metric(3,5)*Metric(4,6) - Metric(1,4)*Metric(2,3)*Metric(5,6) + Metric(1,3)*Metric(2,4)*Metric(5,6)')
1856+
1857+VVVVVV8 = Lorentz(name = 'VVVVVV8',
1858+ spins = [ 3, 3, 3, 3, 3, 3 ],
1859+ structure = 'Metric(1,5)*Metric(2,6)*Metric(3,4) + Metric(1,6)*Metric(2,4)*Metric(3,5) - Metric(1,4)*Metric(2,6)*Metric(3,5) - Metric(1,5)*Metric(2,4)*Metric(3,6) - Metric(1,6)*Metric(2,3)*Metric(4,5) + Metric(1,2)*Metric(3,6)*Metric(4,5) + Metric(1,4)*Metric(2,3)*Metric(5,6) - Metric(1,2)*Metric(3,4)*Metric(5,6)')
1860+
1861+VVVVVV9 = Lorentz(name = 'VVVVVV9',
1862+ spins = [ 3, 3, 3, 3, 3, 3 ],
1863+ structure = 'Metric(1,5)*Metric(2,6)*Metric(3,4) - Metric(1,4)*Metric(2,5)*Metric(3,6) - Metric(1,3)*Metric(2,6)*Metric(4,5) + Metric(1,2)*Metric(3,6)*Metric(4,5) - Metric(1,5)*Metric(2,3)*Metric(4,6) + Metric(1,3)*Metric(2,5)*Metric(4,6) + Metric(1,4)*Metric(2,3)*Metric(5,6) - Metric(1,2)*Metric(3,4)*Metric(5,6)')
1864+
1865+VVVVVV10 = Lorentz(name = 'VVVVVV10',
1866+ spins = [ 3, 3, 3, 3, 3, 3 ],
1867+ structure = 'Metric(1,6)*Metric(2,5)*Metric(3,4) - Metric(1,6)*Metric(2,4)*Metric(3,5) + Metric(1,5)*Metric(2,4)*Metric(3,6) - Metric(1,4)*Metric(2,5)*Metric(3,6) - Metric(1,5)*Metric(2,3)*Metric(4,6) + Metric(1,2)*Metric(3,5)*Metric(4,6) + Metric(1,4)*Metric(2,3)*Metric(5,6) - Metric(1,2)*Metric(3,4)*Metric(5,6)')
1868+
1869+VVVVVV11 = Lorentz(name = 'VVVVVV11',
1870+ spins = [ 3, 3, 3, 3, 3, 3 ],
1871+ structure = 'Metric(1,6)*Metric(2,5)*Metric(3,4) - Metric(1,4)*Metric(2,6)*Metric(3,5) - Metric(1,6)*Metric(2,3)*Metric(4,5) + Metric(1,3)*Metric(2,6)*Metric(4,5) - Metric(1,3)*Metric(2,5)*Metric(4,6) + Metric(1,2)*Metric(3,5)*Metric(4,6) + Metric(1,4)*Metric(2,3)*Metric(5,6) - Metric(1,2)*Metric(3,4)*Metric(5,6)')
1872+
1873+VVVVVV12 = Lorentz(name = 'VVVVVV12',
1874+ spins = [ 3, 3, 3, 3, 3, 3 ],
1875+ structure = 'Metric(1,6)*Metric(2,5)*Metric(3,4) - Metric(1,6)*Metric(2,4)*Metric(3,5) + Metric(1,4)*Metric(2,6)*Metric(3,5) - Metric(1,4)*Metric(2,5)*Metric(3,6) - Metric(1,3)*Metric(2,6)*Metric(4,5) + Metric(1,2)*Metric(3,6)*Metric(4,5) + Metric(1,3)*Metric(2,4)*Metric(5,6) - Metric(1,2)*Metric(3,4)*Metric(5,6)')
1876+
1877+VVVVVV13 = Lorentz(name = 'VVVVVV13',
1878+ spins = [ 3, 3, 3, 3, 3, 3 ],
1879+ structure = 'Metric(1,6)*Metric(2,5)*Metric(3,4) - Metric(1,5)*Metric(2,4)*Metric(3,6) - Metric(1,6)*Metric(2,3)*Metric(4,5) + Metric(1,2)*Metric(3,6)*Metric(4,5) + Metric(1,5)*Metric(2,3)*Metric(4,6) - Metric(1,3)*Metric(2,5)*Metric(4,6) + Metric(1,3)*Metric(2,4)*Metric(5,6) - Metric(1,2)*Metric(3,4)*Metric(5,6)')
1880+
1881+VVVVVV14 = Lorentz(name = 'VVVVVV14',
1882+ spins = [ 3, 3, 3, 3, 3, 3 ],
1883+ structure = 'Metric(1,5)*Metric(2,6)*Metric(3,4) - Metric(1,6)*Metric(2,4)*Metric(3,5) + Metric(1,6)*Metric(2,3)*Metric(4,5) - Metric(1,3)*Metric(2,6)*Metric(4,5) - Metric(1,5)*Metric(2,3)*Metric(4,6) + Metric(1,2)*Metric(3,5)*Metric(4,6) + Metric(1,3)*Metric(2,4)*Metric(5,6) - Metric(1,2)*Metric(3,4)*Metric(5,6)')
1884+
1885+VVVVVV15 = Lorentz(name = 'VVVVVV15',
1886+ spins = [ 3, 3, 3, 3, 3, 3 ],
1887+ structure = 'Metric(1,5)*Metric(2,6)*Metric(3,4) - Metric(1,4)*Metric(2,6)*Metric(3,5) - Metric(1,5)*Metric(2,4)*Metric(3,6) + Metric(1,4)*Metric(2,5)*Metric(3,6) - Metric(1,3)*Metric(2,5)*Metric(4,6) + Metric(1,2)*Metric(3,5)*Metric(4,6) + Metric(1,3)*Metric(2,4)*Metric(5,6) - Metric(1,2)*Metric(3,4)*Metric(5,6)')
1888+
1889
1890=== added file 'models/TopEffTh/note.pdf'
1891Binary files models/TopEffTh/note.pdf 1970-01-01 00:00:00 +0000 and models/TopEffTh/note.pdf 2011-10-11 00:36:19 +0000 differ
1892=== added file 'models/TopEffTh/object_library.py'
1893--- models/TopEffTh/object_library.py 1970-01-01 00:00:00 +0000
1894+++ models/TopEffTh/object_library.py 2011-10-11 00:36:19 +0000
1895@@ -0,0 +1,245 @@
1896+##
1897+##
1898+## Feynrules Header
1899+##
1900+##
1901+##
1902+##
1903+##
1904+
1905+import cmath
1906+
1907+
1908+class UFOBaseClass(object):
1909+ """The class from which all FeynRules classes are derived."""
1910+
1911+ require_args = []
1912+
1913+ def __init__(self, *args, **options):
1914+ assert(len(self.require_args) == len (args))
1915+
1916+ for i, name in enumerate(self.require_args):
1917+ setattr(self, name, args[i])
1918+
1919+ for (option, value) in options.items():
1920+ setattr(self, option, value)
1921+
1922+ def get(self, name):
1923+ return getattr(self, name)
1924+
1925+ def set(self, name, value):
1926+ setattr(self, name, value)
1927+
1928+ def get_all(self):
1929+ """Return a dictionary containing all the information of the object"""
1930+ return self.__dict__
1931+
1932+ def __str__(self):
1933+ return self.name
1934+
1935+ def nice_string(self):
1936+ """ return string with the full information """
1937+ return '\n'.join(['%s \t: %s' %(name, value) for name, value in self.__dict__.items()])
1938+
1939+ def __repr__(self):
1940+ replacements = [
1941+ ('+','__plus__'),
1942+ ('-','__minus__'),
1943+ ('@','__at__'),
1944+ ('!','__exclam__'),
1945+ ('?','__quest__'),
1946+ ('*','__star__'),
1947+ ('~','__tilde__')
1948+ ]
1949+ text = self.name
1950+ for orig,sub in replacements:
1951+ text = text.replace(orig,sub)
1952+ return text
1953+
1954+
1955+
1956+all_particles = []
1957+
1958+
1959+
1960+class Particle(UFOBaseClass):
1961+ """A standard Particle"""
1962+
1963+ require_args=['pdg_code', 'name', 'antiname', 'spin', 'color', 'mass', 'width', 'texname', 'antitexname', 'charge']
1964+
1965+ require_args_all = ['pdg_code', 'name', 'antiname', 'spin', 'color', 'mass', 'width', 'texname', 'antitexname', 'charge', 'line', 'propagating', 'goldstoneboson']
1966+
1967+ def __init__(self, pdg_code, name, antiname, spin, color, mass, width, texname,
1968+ antitexname, charge , line=None, propagating=True, goldstoneboson=False, **options):
1969+
1970+ args= (pdg_code, name, antiname, spin, color, mass, width, texname,
1971+ antitexname, float(charge))
1972+
1973+ UFOBaseClass.__init__(self, *args, **options)
1974+
1975+ global all_particles
1976+ all_particles.append(self)
1977+
1978+ self.propagating = propagating
1979+ self.goldstoneboson= goldstoneboson
1980+
1981+ self.selfconjugate = (name == antiname)
1982+ if 1: #not line:
1983+ self.line = self.find_line_type()
1984+ else:
1985+ self.line = line
1986+
1987+
1988+
1989+
1990+ def find_line_type(self):
1991+ """ find how we draw a line if not defined
1992+ valid output: dashed/straight/wavy/curly/double/swavy/scurly
1993+ """
1994+
1995+ spin = self.spin
1996+ color = self.color
1997+
1998+ #use default
1999+ if spin == 1:
2000+ return 'dashed'
2001+ elif spin == 2:
2002+ if not self.selfconjugate:
2003+ return 'straight'
2004+ elif color == 1:
2005+ return 'swavy'
2006+ else:
2007+ return 'scurly'
2008+ elif spin == 3:
2009+ if color == 1:
2010+ return 'wavy'
2011+
2012+ else:
2013+ return 'curly'
2014+ elif spin == 5:
2015+ return 'double'
2016+ elif spin == -1:
2017+ return 'dotted'
2018+ else:
2019+ return 'dashed' # not supported yet
2020+
2021+ def anti(self):
2022+ if self.selfconjugate:
2023+ raise Exception('%s has no anti particle.' % self.name)
2024+ outdic = {}
2025+ for k,v in self.__dict__.iteritems():
2026+ if k not in self.require_args_all:
2027+ outdic[k] = -v
2028+ if self.color in [1,8]:
2029+ newcolor = self.color
2030+ else:
2031+ newcolor = -self.color
2032+
2033+ return Particle(-self.pdg_code, self.antiname, self.name, self.spin, newcolor, self.mass, self.width,
2034+ self.antitexname, self.texname, -self.charge, self.line, self.propagating, self.goldstoneboson, **outdic)
2035+
2036+
2037+
2038+all_parameters = []
2039+
2040+class Parameter(UFOBaseClass):
2041+
2042+ require_args=['name', 'nature', 'type', 'value', 'texname']
2043+
2044+ def __init__(self, name, nature, type, value, texname, lhablock=None, lhacode=None):
2045+
2046+ args = (name,nature,type,value,texname)
2047+
2048+ UFOBaseClass.__init__(self, *args)
2049+
2050+ args=(name,nature,type,value,texname)
2051+
2052+ global all_parameters
2053+ all_parameters.append(self)
2054+
2055+ if (lhablock is None or lhacode is None) and nature == 'external':
2056+ raise Exception('Need LHA information for external parameter "%s".' % name)
2057+ self.lhablock = lhablock
2058+ self.lhacode = lhacode
2059+
2060+all_vertices = []
2061+
2062+class Vertex(UFOBaseClass):
2063+
2064+ require_args=['name', 'particles', 'color', 'lorentz', 'couplings']
2065+
2066+ def __init__(self, name, particles, color, lorentz, couplings, **opt):
2067+
2068+ args = (name, particles, color, lorentz, couplings)
2069+
2070+ UFOBaseClass.__init__(self, *args, **opt)
2071+
2072+ args=(particles,color,lorentz,couplings)
2073+
2074+ global all_vertices
2075+ all_vertices.append(self)
2076+
2077+all_couplings = []
2078+
2079+class Coupling(UFOBaseClass):
2080+
2081+ require_args=['name', 'value', 'order']
2082+
2083+ def __init__(self, name, value, order, **opt):
2084+
2085+ args =(name, value, order)
2086+ UFOBaseClass.__init__(self, *args, **opt)
2087+ global all_couplings
2088+ all_couplings.append(self)
2089+
2090+
2091+
2092+all_lorentz = []
2093+
2094+class Lorentz(UFOBaseClass):
2095+
2096+ require_args=['name','spins','structure']
2097+
2098+ def __init__(self, name, spins, structure='external', **opt):
2099+ args = (name, spins, structure)
2100+ UFOBaseClass.__init__(self, *args, **opt)
2101+
2102+ global all_lorentz
2103+ all_lorentz.append(self)
2104+
2105+
2106+all_functions = []
2107+
2108+class Function(object):
2109+
2110+ def __init__(self, name, arguments, expression):
2111+
2112+ global all_functions
2113+ all_functions.append(self)
2114+
2115+ self.name = name
2116+ self.arguments = arguments
2117+ self.expr = expression
2118+
2119+ def __call__(self, *opt):
2120+
2121+ for i, arg in enumerate(self.arguments):
2122+ exec('%s = %s' % (arg, opt[i] ))
2123+
2124+ return eval(self.expr)
2125+
2126+all_orders = []
2127+
2128+class CouplingOrder(object):
2129+
2130+ def __init__(self, name, expansion_order, hierarchy, perturbative_expansion = 0):
2131+
2132+ global all_orders
2133+ all_orders.append(self)
2134+
2135+ self.name = name
2136+ self.expansion_order = expansion_order
2137+ self.hierarchy = hierarchy
2138+
2139+
2140+
2141
2142=== added file 'models/TopEffTh/parameters.py'
2143--- models/TopEffTh/parameters.py 1970-01-01 00:00:00 +0000
2144+++ models/TopEffTh/parameters.py 2011-10-11 00:36:19 +0000
2145@@ -0,0 +1,705 @@
2146+# This file was automatically created by FeynRules $Revision: 821 $
2147+# Mathematica version: 7.0 for Microsoft Windows (32-bit) (February 18, 2009)
2148+# Date: Mon 3 Oct 2011 13:27:06
2149+
2150+
2151+
2152+from object_library import all_parameters, Parameter
2153+
2154+
2155+from function_library import complexconjugate, re, im, csc, sec, acsc, asec
2156+
2157+# This is a default parameter object representing 0.
2158+ZERO = Parameter(name = 'ZERO',
2159+ nature = 'internal',
2160+ type = 'real',
2161+ value = '0.0',
2162+ texname = '0')
2163+
2164+# User-defined parameters.
2165+K = Parameter(name = 'K',
2166+ nature = 'external',
2167+ type = 'real',
2168+ value = 100,
2169+ texname = 'K',
2170+ lhablock = 'APPROX',
2171+ lhacode = [ 1 ])
2172+
2173+K1 = Parameter(name = 'K1',
2174+ nature = 'external',
2175+ type = 'real',
2176+ value = 100,
2177+ texname = '\\text{K1}',
2178+ lhablock = 'APPROX',
2179+ lhacode = [ 2 ])
2180+
2181+K2 = Parameter(name = 'K2',
2182+ nature = 'external',
2183+ type = 'real',
2184+ value = 100,
2185+ texname = '\\text{K2}',
2186+ lhablock = 'APPROX',
2187+ lhacode = [ 3 ])
2188+
2189+K3 = Parameter(name = 'K3',
2190+ nature = 'external',
2191+ type = 'real',
2192+ value = 100,
2193+ texname = '\\text{K3}',
2194+ lhablock = 'APPROX',
2195+ lhacode = [ 4 ])
2196+
2197+cabi = Parameter(name = 'cabi',
2198+ nature = 'external',
2199+ type = 'real',
2200+ value = 0.227736,
2201+ texname = '\\theta _c',
2202+ lhablock = 'CKMBLOCK',
2203+ lhacode = [ 1 ])
2204+
2205+Lambda = Parameter(name = 'Lambda',
2206+ nature = 'external',
2207+ type = 'real',
2208+ value = 1000,
2209+ texname = '\\Lambda ',
2210+ lhablock = 'DIM6',
2211+ lhacode = [ 1 ])
2212+
2213+RC3phiq = Parameter(name = 'RC3phiq',
2214+ nature = 'external',
2215+ type = 'real',
2216+ value = 1,
2217+ texname = '\\text{RC}_{\\text{$\\phi $q}}^{\\text{(3)}}',
2218+ lhablock = 'DIM6',
2219+ lhacode = [ 2 ])
2220+
2221+IC3phiq = Parameter(name = 'IC3phiq',
2222+ nature = 'external',
2223+ type = 'real',
2224+ value = 1,
2225+ texname = '\\text{IC}_{\\text{$\\phi $q}}^{\\text{(3)}}',
2226+ lhablock = 'DIM6',
2227+ lhacode = [ 3 ])
2228+
2229+RCtW = Parameter(name = 'RCtW',
2230+ nature = 'external',
2231+ type = 'real',
2232+ value = 1,
2233+ texname = '\\text{RC}_{\\text{tW}}',
2234+ lhablock = 'DIM6',
2235+ lhacode = [ 4 ])
2236+
2237+ICtW = Parameter(name = 'ICtW',
2238+ nature = 'external',
2239+ type = 'real',
2240+ value = 1,
2241+ texname = '\\text{IC}_{\\text{tW}}',
2242+ lhablock = 'DIM6',
2243+ lhacode = [ 5 ])
2244+
2245+RCtG = Parameter(name = 'RCtG',
2246+ nature = 'external',
2247+ type = 'real',
2248+ value = 1,
2249+ texname = '\\text{RC}_{\\text{tG}}',
2250+ lhablock = 'DIM6',
2251+ lhacode = [ 6 ])
2252+
2253+ICtG = Parameter(name = 'ICtG',
2254+ nature = 'external',
2255+ type = 'real',
2256+ value = 1,
2257+ texname = '\\text{IC}_{\\text{tG}}',
2258+ lhablock = 'DIM6',
2259+ lhacode = [ 7 ])
2260+
2261+CG = Parameter(name = 'CG',
2262+ nature = 'external',
2263+ type = 'real',
2264+ value = 1,
2265+ texname = 'C_G',
2266+ lhablock = 'DIM6',
2267+ lhacode = [ 8 ])
2268+
2269+CphiG = Parameter(name = 'CphiG',
2270+ nature = 'external',
2271+ type = 'real',
2272+ value = 1,
2273+ texname = 'C_{\\text{$\\phi $G}}',
2274+ lhablock = 'DIM6',
2275+ lhacode = [ 9 ])
2276+
2277+C13qq = Parameter(name = 'C13qq',
2278+ nature = 'external',
2279+ type = 'real',
2280+ value = 1,
2281+ texname = 'C_{\\text{qq}}^{\\text{(1,3)}}',
2282+ lhablock = 'FourFermion',
2283+ lhacode = [ 1 ])
2284+
2285+C81qq = Parameter(name = 'C81qq',
2286+ nature = 'external',
2287+ type = 'real',
2288+ value = 1,
2289+ texname = 'C_{\\text{qq}}^{\\text{(8,1)}}',
2290+ lhablock = 'FourFermion',
2291+ lhacode = [ 2 ])
2292+
2293+C83qq = Parameter(name = 'C83qq',
2294+ nature = 'external',
2295+ type = 'real',
2296+ value = 1,
2297+ texname = 'C_{\\text{qq}}^{\\text{(8,3)}}',
2298+ lhablock = 'FourFermion',
2299+ lhacode = [ 3 ])
2300+
2301+C8ut = Parameter(name = 'C8ut',
2302+ nature = 'external',
2303+ type = 'real',
2304+ value = 1,
2305+ texname = 'C_{\\text{ut}}^{\\text{(8)}}',
2306+ lhablock = 'FourFermion',
2307+ lhacode = [ 4 ])
2308+
2309+C8dt = Parameter(name = 'C8dt',
2310+ nature = 'external',
2311+ type = 'real',
2312+ value = 1,
2313+ texname = 'C_{\\text{dt}}^{\\text{(8)}}',
2314+ lhablock = 'FourFermion',
2315+ lhacode = [ 5 ])
2316+
2317+C1qu = Parameter(name = 'C1qu',
2318+ nature = 'external',
2319+ type = 'real',
2320+ value = 1,
2321+ texname = 'C_{\\text{qu}}^{\\text{(1)}}',
2322+ lhablock = 'FourFermion',
2323+ lhacode = [ 6 ])
2324+
2325+C1qd = Parameter(name = 'C1qd',
2326+ nature = 'external',
2327+ type = 'real',
2328+ value = 1,
2329+ texname = 'C_{\\text{qd}}^{\\text{(1)}}',
2330+ lhablock = 'FourFermion',
2331+ lhacode = [ 7 ])
2332+
2333+C1qt = Parameter(name = 'C1qt',
2334+ nature = 'external',
2335+ type = 'real',
2336+ value = 1,
2337+ texname = 'C_{\\text{qt}}^{\\text{(1)}}',
2338+ lhablock = 'FourFermion',
2339+ lhacode = [ 8 ])
2340+
2341+aEWM1 = Parameter(name = 'aEWM1',
2342+ nature = 'external',
2343+ type = 'real',
2344+ value = 127.9,
2345+ texname = '\\text{aEWM1}',
2346+ lhablock = 'SMINPUTS',
2347+ lhacode = [ 1 ])
2348+
2349+Gf = Parameter(name = 'Gf',
2350+ nature = 'external',
2351+ type = 'real',
2352+ value = 0.0000116637,
2353+ texname = 'G_f',
2354+ lhablock = 'SMINPUTS',
2355+ lhacode = [ 2 ])
2356+
2357+aS = Parameter(name = 'aS',
2358+ nature = 'external',
2359+ type = 'real',
2360+ value = 0.1184,
2361+ texname = '\\text{aS}',
2362+ lhablock = 'SMINPUTS',
2363+ lhacode = [ 3 ])
2364+
2365+ymdo = Parameter(name = 'ymdo',
2366+ nature = 'external',
2367+ type = 'real',
2368+ value = 0.00504,
2369+ texname = '\\text{ymdo}',
2370+ lhablock = 'YUKAWA',
2371+ lhacode = [ 1 ])
2372+
2373+ymup = Parameter(name = 'ymup',
2374+ nature = 'external',
2375+ type = 'real',
2376+ value = 0.0025499999999999997,
2377+ texname = '\\text{ymup}',
2378+ lhablock = 'YUKAWA',
2379+ lhacode = [ 2 ])
2380+
2381+yms = Parameter(name = 'yms',
2382+ nature = 'external',
2383+ type = 'real',
2384+ value = 0.101,
2385+ texname = '\\text{yms}',
2386+ lhablock = 'YUKAWA',
2387+ lhacode = [ 3 ])
2388+
2389+ymc = Parameter(name = 'ymc',
2390+ nature = 'external',
2391+ type = 'real',
2392+ value = 1.27,
2393+ texname = '\\text{ymc}',
2394+ lhablock = 'YUKAWA',
2395+ lhacode = [ 4 ])
2396+
2397+ymb = Parameter(name = 'ymb',
2398+ nature = 'external',
2399+ type = 'real',
2400+ value = 4.7,
2401+ texname = '\\text{ymb}',
2402+ lhablock = 'YUKAWA',
2403+ lhacode = [ 5 ])
2404+
2405+ymt = Parameter(name = 'ymt',
2406+ nature = 'external',
2407+ type = 'real',
2408+ value = 172.,
2409+ texname = '\\text{ymt}',
2410+ lhablock = 'YUKAWA',
2411+ lhacode = [ 6 ])
2412+
2413+yme = Parameter(name = 'yme',
2414+ nature = 'external',
2415+ type = 'real',
2416+ value = 0.0005110000000000001,
2417+ texname = '\\text{yme}',
2418+ lhablock = 'YUKAWA',
2419+ lhacode = [ 11 ])
2420+
2421+ymm = Parameter(name = 'ymm',
2422+ nature = 'external',
2423+ type = 'real',
2424+ value = 0.10566,
2425+ texname = '\\text{ymm}',
2426+ lhablock = 'YUKAWA',
2427+ lhacode = [ 13 ])
2428+
2429+ymtau = Parameter(name = 'ymtau',
2430+ nature = 'external',
2431+ type = 'real',
2432+ value = 1.777,
2433+ texname = '\\text{ymtau}',
2434+ lhablock = 'YUKAWA',
2435+ lhacode = [ 15 ])
2436+
2437+Me = Parameter(name = 'Me',
2438+ nature = 'external',
2439+ type = 'real',
2440+ value = 0.0005110000000000001,
2441+ texname = '\\text{Me}',
2442+ lhablock = 'MASS',
2443+ lhacode = [ 11 ])
2444+
2445+MM = Parameter(name = 'MM',
2446+ nature = 'external',
2447+ type = 'real',
2448+ value = 0.10566,
2449+ texname = '\\text{MM}',
2450+ lhablock = 'MASS',
2451+ lhacode = [ 13 ])
2452+
2453+MTA = Parameter(name = 'MTA',
2454+ nature = 'external',
2455+ type = 'real',
2456+ value = 1.777,
2457+ texname = '\\text{MTA}',
2458+ lhablock = 'MASS',
2459+ lhacode = [ 15 ])
2460+
2461+MU = Parameter(name = 'MU',
2462+ nature = 'external',
2463+ type = 'real',
2464+ value = 0.0025499999999999997,
2465+ texname = 'M',
2466+ lhablock = 'MASS',
2467+ lhacode = [ 2 ])
2468+
2469+MC = Parameter(name = 'MC',
2470+ nature = 'external',
2471+ type = 'real',
2472+ value = 1.42,
2473+ texname = '\\text{MC}',
2474+ lhablock = 'MASS',
2475+ lhacode = [ 4 ])
2476+
2477+MT = Parameter(name = 'MT',
2478+ nature = 'external',
2479+ type = 'real',
2480+ value = 172,
2481+ texname = '\\text{MT}',
2482+ lhablock = 'MASS',
2483+ lhacode = [ 6 ])
2484+
2485+MD = Parameter(name = 'MD',
2486+ nature = 'external',
2487+ type = 'real',
2488+ value = 0.00504,
2489+ texname = '\\text{MD}',
2490+ lhablock = 'MASS',
2491+ lhacode = [ 1 ])
2492+
2493+MS = Parameter(name = 'MS',
2494+ nature = 'external',
2495+ type = 'real',
2496+ value = 0.101,
2497+ texname = '\\text{MS}',
2498+ lhablock = 'MASS',
2499+ lhacode = [ 3 ])
2500+
2501+MB = Parameter(name = 'MB',
2502+ nature = 'external',
2503+ type = 'real',
2504+ value = 4.7,
2505+ texname = '\\text{MB}',
2506+ lhablock = 'MASS',
2507+ lhacode = [ 5 ])
2508+
2509+MZ = Parameter(name = 'MZ',
2510+ nature = 'external',
2511+ type = 'real',
2512+ value = 91.1876,
2513+ texname = '\\text{MZ}',
2514+ lhablock = 'MASS',
2515+ lhacode = [ 23 ])
2516+
2517+MH = Parameter(name = 'MH',
2518+ nature = 'external',
2519+ type = 'real',
2520+ value = 120,
2521+ texname = '\\text{MH}',
2522+ lhablock = 'MASS',
2523+ lhacode = [ 25 ])
2524+
2525+WT = Parameter(name = 'WT',
2526+ nature = 'external',
2527+ type = 'real',
2528+ value = 1.50833649,
2529+ texname = '\\text{WT}',
2530+ lhablock = 'DECAY',
2531+ lhacode = [ 6 ])
2532+
2533+WZ = Parameter(name = 'WZ',
2534+ nature = 'external',
2535+ type = 'real',
2536+ value = 2.4952,
2537+ texname = '\\text{WZ}',
2538+ lhablock = 'DECAY',
2539+ lhacode = [ 23 ])
2540+
2541+WW = Parameter(name = 'WW',
2542+ nature = 'external',
2543+ type = 'real',
2544+ value = 2.085,
2545+ texname = '\\text{WW}',
2546+ lhablock = 'DECAY',
2547+ lhacode = [ 24 ])
2548+
2549+WH = Parameter(name = 'WH',
2550+ nature = 'external',
2551+ type = 'real',
2552+ value = 0.00575308848,
2553+ texname = '\\text{WH}',
2554+ lhablock = 'DECAY',
2555+ lhacode = [ 25 ])
2556+
2557+aEW = Parameter(name = 'aEW',
2558+ nature = 'internal',
2559+ type = 'real',
2560+ value = '1/aEWM1',
2561+ texname = '\\text{aEW}')
2562+
2563+G = Parameter(name = 'G',
2564+ nature = 'internal',
2565+ type = 'real',
2566+ value = '2*cmath.sqrt(aS)*cmath.sqrt(cmath.pi)',
2567+ texname = 'G')
2568+
2569+CKM11 = Parameter(name = 'CKM11',
2570+ nature = 'internal',
2571+ type = 'complex',
2572+ value = 'cmath.cos(cabi)',
2573+ texname = '\\text{CKM11}')
2574+
2575+CKM12 = Parameter(name = 'CKM12',
2576+ nature = 'internal',
2577+ type = 'complex',
2578+ value = 'cmath.sin(cabi)',
2579+ texname = '\\text{CKM12}')
2580+
2581+CKM13 = Parameter(name = 'CKM13',
2582+ nature = 'internal',
2583+ type = 'complex',
2584+ value = '0',
2585+ texname = '\\text{CKM13}')
2586+
2587+CKM21 = Parameter(name = 'CKM21',
2588+ nature = 'internal',
2589+ type = 'complex',
2590+ value = '-cmath.sin(cabi)',
2591+ texname = '\\text{CKM21}')
2592+
2593+CKM22 = Parameter(name = 'CKM22',
2594+ nature = 'internal',
2595+ type = 'complex',
2596+ value = 'cmath.cos(cabi)',
2597+ texname = '\\text{CKM22}')
2598+
2599+CKM23 = Parameter(name = 'CKM23',
2600+ nature = 'internal',
2601+ type = 'complex',
2602+ value = '0',
2603+ texname = '\\text{CKM23}')
2604+
2605+CKM31 = Parameter(name = 'CKM31',
2606+ nature = 'internal',
2607+ type = 'complex',
2608+ value = '0',
2609+ texname = '\\text{CKM31}')
2610+
2611+CKM32 = Parameter(name = 'CKM32',
2612+ nature = 'internal',
2613+ type = 'complex',
2614+ value = '0',
2615+ texname = '\\text{CKM32}')
2616+
2617+CKM33 = Parameter(name = 'CKM33',
2618+ nature = 'internal',
2619+ type = 'complex',
2620+ value = '1',
2621+ texname = '\\text{CKM33}')
2622+
2623+C3phiq = Parameter(name = 'C3phiq',
2624+ nature = 'internal',
2625+ type = 'complex',
2626+ value = 'complex(0,1)*IC3phiq + RC3phiq',
2627+ texname = 'C_{\\text{$\\phi $q}}^{\\text{(3)}}')
2628+
2629+CtW = Parameter(name = 'CtW',
2630+ nature = 'internal',
2631+ type = 'complex',
2632+ value = 'complex(0,1)*ICtW + RCtW',
2633+ texname = 'C_{\\text{tW}}')
2634+
2635+CtG = Parameter(name = 'CtG',
2636+ nature = 'internal',
2637+ type = 'complex',
2638+ value = 'complex(0,1)*ICtG + RCtG',
2639+ texname = 'C_{\\text{tG}}')
2640+
2641+MTri = Parameter(name = 'MTri',
2642+ nature = 'internal',
2643+ type = 'real',
2644+ value = 'K*Lambda',
2645+ texname = 'M_{\\text{Tri}}')
2646+
2647+MTri8 = Parameter(name = 'MTri8',
2648+ nature = 'internal',
2649+ type = 'real',
2650+ value = 'K1*Lambda',
2651+ texname = 'M_{\\text{Tri8}}')
2652+
2653+M8t = Parameter(name = 'M8t',
2654+ nature = 'internal',
2655+ type = 'real',
2656+ value = 'K2*Lambda',
2657+ texname = 'M_{8 t}')
2658+
2659+M8Q = Parameter(name = 'M8Q',
2660+ nature = 'internal',
2661+ type = 'real',
2662+ value = 'K3*Lambda',
2663+ texname = 'M_{8 Q}')
2664+
2665+gT = Parameter(name = 'gT',
2666+ nature = 'internal',
2667+ type = 'real',
2668+ value = '-(K*cmath.sqrt(C13qq))',
2669+ texname = 'g_T')
2670+
2671+gTl = Parameter(name = 'gTl',
2672+ nature = 'internal',
2673+ type = 'real',
2674+ value = 'K*cmath.sqrt(C13qq)',
2675+ texname = 'g_{\\text{Tl}}')
2676+
2677+gT8 = Parameter(name = 'gT8',
2678+ nature = 'internal',
2679+ type = 'real',
2680+ value = '-(K1*cmath.sqrt(C83qq))',
2681+ texname = 'g_{\\text{T8}}')
2682+
2683+gT8l = Parameter(name = 'gT8l',
2684+ nature = 'internal',
2685+ type = 'real',
2686+ value = 'K1*cmath.sqrt(C83qq)',
2687+ texname = 'g_{\\text{T8l}}')
2688+
2689+g8t = Parameter(name = 'g8t',
2690+ nature = 'internal',
2691+ type = 'real',
2692+ value = '-K2',
2693+ texname = 'g_{8 t}')
2694+
2695+g8tu = Parameter(name = 'g8tu',
2696+ nature = 'internal',
2697+ type = 'real',
2698+ value = 'C8ut*K2',
2699+ texname = 'g_{8 \\text{tu}}')
2700+
2701+g8td = Parameter(name = 'g8td',
2702+ nature = 'internal',
2703+ type = 'real',
2704+ value = 'C8dt*K2',
2705+ texname = 'g_{8 \\text{td}}')
2706+
2707+g8tq = Parameter(name = 'g8tq',
2708+ nature = 'internal',
2709+ type = 'real',
2710+ value = 'C1qt*K2',
2711+ texname = 'g_{8 \\text{tq}}')
2712+
2713+g8Q = Parameter(name = 'g8Q',
2714+ nature = 'internal',
2715+ type = 'real',
2716+ value = '-K3',
2717+ texname = 'g_{8 Q}')
2718+
2719+g8Qu = Parameter(name = 'g8Qu',
2720+ nature = 'internal',
2721+ type = 'real',
2722+ value = 'C1qu*K3',
2723+ texname = 'g_{8 \\text{Qu}}')
2724+
2725+g8Qd = Parameter(name = 'g8Qd',
2726+ nature = 'internal',
2727+ type = 'real',
2728+ value = 'C1qd*K3',
2729+ texname = 'g_{8 \\text{Qd}}')
2730+
2731+g8Qq = Parameter(name = 'g8Qq',
2732+ nature = 'internal',
2733+ type = 'real',
2734+ value = 'C81qq*K3',
2735+ texname = 'g_{8 \\text{Qq}}')
2736+
2737+MW = Parameter(name = 'MW',
2738+ nature = 'internal',
2739+ type = 'real',
2740+ value = 'cmath.sqrt(MZ**2/2. + cmath.sqrt(MZ**4/4. - (aEW*cmath.pi*MZ**2)/(Gf*cmath.sqrt(2))))',
2741+ texname = 'M_W')
2742+
2743+ee = Parameter(name = 'ee',
2744+ nature = 'internal',
2745+ type = 'real',
2746+ value = '2*cmath.sqrt(aEW)*cmath.sqrt(cmath.pi)',
2747+ texname = 'e')
2748+
2749+sw2 = Parameter(name = 'sw2',
2750+ nature = 'internal',
2751+ type = 'real',
2752+ value = '1 - MW**2/MZ**2',
2753+ texname = '\\text{sw2}')
2754+
2755+cw = Parameter(name = 'cw',
2756+ nature = 'internal',
2757+ type = 'real',
2758+ value = 'cmath.sqrt(1 - sw2)',
2759+ texname = 'c_w')
2760+
2761+sw = Parameter(name = 'sw',
2762+ nature = 'internal',
2763+ type = 'real',
2764+ value = 'cmath.sqrt(sw2)',
2765+ texname = 's_w')
2766+
2767+g1 = Parameter(name = 'g1',
2768+ nature = 'internal',
2769+ type = 'real',
2770+ value = 'ee/cw',
2771+ texname = 'g_1')
2772+
2773+gw = Parameter(name = 'gw',
2774+ nature = 'internal',
2775+ type = 'real',
2776+ value = 'ee/sw',
2777+ texname = 'g_w')
2778+
2779+v = Parameter(name = 'v',
2780+ nature = 'internal',
2781+ type = 'real',
2782+ value = '(2*MW*sw)/ee',
2783+ texname = 'v')
2784+
2785+lam = Parameter(name = 'lam',
2786+ nature = 'internal',
2787+ type = 'real',
2788+ value = 'MH**2/(2.*v**2)',
2789+ texname = '\\text{lam}')
2790+
2791+yb = Parameter(name = 'yb',
2792+ nature = 'internal',
2793+ type = 'real',
2794+ value = '(ymb*cmath.sqrt(2))/v',
2795+ texname = '\\text{yb}')
2796+
2797+yc = Parameter(name = 'yc',
2798+ nature = 'internal',
2799+ type = 'real',
2800+ value = '(ymc*cmath.sqrt(2))/v',
2801+ texname = '\\text{yc}')
2802+
2803+ydo = Parameter(name = 'ydo',
2804+ nature = 'internal',
2805+ type = 'real',
2806+ value = '(ymdo*cmath.sqrt(2))/v',
2807+ texname = '\\text{ydo}')
2808+
2809+ye = Parameter(name = 'ye',
2810+ nature = 'internal',
2811+ type = 'real',
2812+ value = '(yme*cmath.sqrt(2))/v',
2813+ texname = '\\text{ye}')
2814+
2815+ym = Parameter(name = 'ym',
2816+ nature = 'internal',
2817+ type = 'real',
2818+ value = '(ymm*cmath.sqrt(2))/v',
2819+ texname = '\\text{ym}')
2820+
2821+ys = Parameter(name = 'ys',
2822+ nature = 'internal',
2823+ type = 'real',
2824+ value = '(yms*cmath.sqrt(2))/v',
2825+ texname = '\\text{ys}')
2826+
2827+yt = Parameter(name = 'yt',
2828+ nature = 'internal',
2829+ type = 'real',
2830+ value = '(ymt*cmath.sqrt(2))/v',
2831+ texname = '\\text{yt}')
2832+
2833+ytau = Parameter(name = 'ytau',
2834+ nature = 'internal',
2835+ type = 'real',
2836+ value = '(ymtau*cmath.sqrt(2))/v',
2837+ texname = '\\text{ytau}')
2838+
2839+yup = Parameter(name = 'yup',
2840+ nature = 'internal',
2841+ type = 'real',
2842+ value = '(ymup*cmath.sqrt(2))/v',
2843+ texname = '\\text{yup}')
2844+
2845+muH = Parameter(name = 'muH',
2846+ nature = 'internal',
2847+ type = 'real',
2848+ value = 'cmath.sqrt(lam*v**2)',
2849+ texname = '\\mu ')
2850+
2851
2852=== added file 'models/TopEffTh/particles.py'
2853--- models/TopEffTh/particles.py 1970-01-01 00:00:00 +0000
2854+++ models/TopEffTh/particles.py 2011-10-11 00:36:19 +0000
2855@@ -0,0 +1,449 @@
2856+# This file was automatically created by FeynRules $Revision: 821 $
2857+# Mathematica version: 7.0 for Microsoft Windows (32-bit) (February 18, 2009)
2858+# Date: Mon 3 Oct 2011 13:27:06
2859+
2860+
2861+from __future__ import division
2862+from object_library import all_particles, Particle
2863+import parameters as Param
2864+
2865+ve = Particle(pdg_code = 12,
2866+ name = 've',
2867+ antiname = 've~',
2868+ spin = 2,
2869+ color = 1,
2870+ mass = Param.ZERO,
2871+ width = Param.ZERO,
2872+ texname = 've',
2873+ antitexname = 've',
2874+ charge = 0,
2875+ LeptonNumber = 1,
2876+ GhostNumber = 0)
2877+
2878+ve__tilde__ = ve.anti()
2879+
2880+vm = Particle(pdg_code = 14,
2881+ name = 'vm',
2882+ antiname = 'vm~',
2883+ spin = 2,
2884+ color = 1,
2885+ mass = Param.ZERO,
2886+ width = Param.ZERO,
2887+ texname = 'vm',
2888+ antitexname = 'vm',
2889+ charge = 0,
2890+ LeptonNumber = 1,
2891+ GhostNumber = 0)
2892+
2893+vm__tilde__ = vm.anti()
2894+
2895+vt = Particle(pdg_code = 16,
2896+ name = 'vt',
2897+ antiname = 'vt~',
2898+ spin = 2,
2899+ color = 1,
2900+ mass = Param.ZERO,
2901+ width = Param.ZERO,
2902+ texname = 'vt',
2903+ antitexname = 'vt',
2904+ charge = 0,
2905+ LeptonNumber = 1,
2906+ GhostNumber = 0)
2907+
2908+vt__tilde__ = vt.anti()
2909+
2910+e__minus__ = Particle(pdg_code = 11,
2911+ name = 'e-',
2912+ antiname = 'e+',
2913+ spin = 2,
2914+ color = 1,
2915+ mass = Param.Me,
2916+ width = Param.ZERO,
2917+ texname = 'e-',
2918+ antitexname = 'e-',
2919+ charge = -1,
2920+ LeptonNumber = 1,
2921+ GhostNumber = 0)
2922+
2923+e__plus__ = e__minus__.anti()
2924+
2925+m__minus__ = Particle(pdg_code = 13,
2926+ name = 'm-',
2927+ antiname = 'm+',
2928+ spin = 2,
2929+ color = 1,
2930+ mass = Param.MM,
2931+ width = Param.ZERO,
2932+ texname = 'm-',
2933+ antitexname = 'm-',
2934+ charge = -1,
2935+ LeptonNumber = 1,
2936+ GhostNumber = 0)
2937+
2938+m__plus__ = m__minus__.anti()
2939+
2940+tt__minus__ = Particle(pdg_code = 15,
2941+ name = 'tt-',
2942+ antiname = 'tt+',
2943+ spin = 2,
2944+ color = 1,
2945+ mass = Param.MTA,
2946+ width = Param.ZERO,
2947+ texname = 'tt-',
2948+ antitexname = 'tt-',
2949+ charge = -1,
2950+ LeptonNumber = 1,
2951+ GhostNumber = 0)
2952+
2953+tt__plus__ = tt__minus__.anti()
2954+
2955+u = Particle(pdg_code = 2,
2956+ name = 'u',
2957+ antiname = 'u~',
2958+ spin = 2,
2959+ color = 3,
2960+ mass = Param.MU,
2961+ width = Param.ZERO,
2962+ texname = 'u',
2963+ antitexname = 'u',
2964+ charge = 2/3,
2965+ LeptonNumber = 0,
2966+ GhostNumber = 0)
2967+
2968+u__tilde__ = u.anti()
2969+
2970+c = Particle(pdg_code = 4,
2971+ name = 'c',
2972+ antiname = 'c~',
2973+ spin = 2,
2974+ color = 3,
2975+ mass = Param.MC,
2976+ width = Param.ZERO,
2977+ texname = 'c',
2978+ antitexname = 'c',
2979+ charge = 2/3,
2980+ LeptonNumber = 0,
2981+ GhostNumber = 0)
2982+
2983+c__tilde__ = c.anti()
2984+
2985+t = Particle(pdg_code = 6,
2986+ name = 't',
2987+ antiname = 't~',
2988+ spin = 2,
2989+ color = 3,
2990+ mass = Param.MT,
2991+ width = Param.WT,
2992+ texname = 't',
2993+ antitexname = 't',
2994+ charge = 2/3,
2995+ LeptonNumber = 0,
2996+ GhostNumber = 0)
2997+
2998+t__tilde__ = t.anti()
2999+
3000+d = Particle(pdg_code = 1,
3001+ name = 'd',
3002+ antiname = 'd~',
3003+ spin = 2,
3004+ color = 3,
3005+ mass = Param.MD,
3006+ width = Param.ZERO,
3007+ texname = 'd',
3008+ antitexname = 'd',
3009+ charge = -1/3,
3010+ LeptonNumber = 0,
3011+ GhostNumber = 0)
3012+
3013+d__tilde__ = d.anti()
3014+
3015+s = Particle(pdg_code = 3,
3016+ name = 's',
3017+ antiname = 's~',
3018+ spin = 2,
3019+ color = 3,
3020+ mass = Param.MS,
3021+ width = Param.ZERO,
3022+ texname = 's',
3023+ antitexname = 's',
3024+ charge = -1/3,
3025+ LeptonNumber = 0,
3026+ GhostNumber = 0)
3027+
3028+s__tilde__ = s.anti()
3029+
3030+b = Particle(pdg_code = 5,
3031+ name = 'b',
3032+ antiname = 'b~',
3033+ spin = 2,
3034+ color = 3,
3035+ mass = Param.MB,
3036+ width = Param.ZERO,
3037+ texname = 'b',
3038+ antitexname = 'b',
3039+ charge = -1/3,
3040+ LeptonNumber = 0,
3041+ GhostNumber = 0)
3042+
3043+b__tilde__ = b.anti()
3044+
3045+ghA = Particle(pdg_code = 9000001,
3046+ name = 'ghA',
3047+ antiname = 'ghA~',
3048+ spin = -1,
3049+ color = 1,
3050+ mass = Param.ZERO,
3051+ width = Param.ZERO,
3052+ texname = 'ghA',
3053+ antitexname = 'ghA',
3054+ charge = 0,
3055+ LeptonNumber = 0,
3056+ GhostNumber = 1)
3057+
3058+ghA__tilde__ = ghA.anti()
3059+
3060+ghZ = Particle(pdg_code = 9000002,
3061+ name = 'ghZ',
3062+ antiname = 'ghZ~',
3063+ spin = -1,
3064+ color = 1,
3065+ mass = Param.MZ,
3066+ width = Param.ZERO,
3067+ texname = 'ghZ',
3068+ antitexname = 'ghZ',
3069+ charge = 0,
3070+ LeptonNumber = 0,
3071+ GhostNumber = 1)
3072+
3073+ghZ__tilde__ = ghZ.anti()
3074+
3075+ghWp = Particle(pdg_code = 9000003,
3076+ name = 'ghWp',
3077+ antiname = 'ghWp~',
3078+ spin = -1,
3079+ color = 1,
3080+ mass = Param.MW,
3081+ width = Param.ZERO,
3082+ texname = 'ghWp',
3083+ antitexname = 'ghWp',
3084+ charge = 1,
3085+ LeptonNumber = 0,
3086+ GhostNumber = 1)
3087+
3088+ghWp__tilde__ = ghWp.anti()
3089+
3090+ghWm = Particle(pdg_code = 9000004,
3091+ name = 'ghWm',
3092+ antiname = 'ghWm~',
3093+ spin = -1,
3094+ color = 1,
3095+ mass = Param.MW,
3096+ width = Param.ZERO,
3097+ texname = 'ghWm',
3098+ antitexname = 'ghWm',
3099+ charge = -1,
3100+ LeptonNumber = 0,
3101+ GhostNumber = 1)
3102+
3103+ghWm__tilde__ = ghWm.anti()
3104+
3105+ghG = Particle(pdg_code = 9000005,
3106+ name = 'ghG',
3107+ antiname = 'ghG~',
3108+ spin = -1,
3109+ color = 8,
3110+ mass = Param.ZERO,
3111+ width = Param.ZERO,
3112+ texname = 'ghG',
3113+ antitexname = 'ghG',
3114+ charge = 0,
3115+ LeptonNumber = 0,
3116+ GhostNumber = 1)
3117+
3118+ghG__tilde__ = ghG.anti()
3119+
3120+A = Particle(pdg_code = 22,
3121+ name = 'A',
3122+ antiname = 'A',
3123+ spin = 3,
3124+ color = 1,
3125+ mass = Param.ZERO,
3126+ width = Param.ZERO,
3127+ texname = 'A',
3128+ antitexname = 'A',
3129+ charge = 0,
3130+ LeptonNumber = 0,
3131+ GhostNumber = 0)
3132+
3133+Z = Particle(pdg_code = 23,
3134+ name = 'Z',
3135+ antiname = 'Z',
3136+ spin = 3,
3137+ color = 1,
3138+ mass = Param.MZ,
3139+ width = Param.WZ,
3140+ texname = 'Z',
3141+ antitexname = 'Z',
3142+ charge = 0,
3143+ LeptonNumber = 0,
3144+ GhostNumber = 0)
3145+
3146+W__plus__ = Particle(pdg_code = 24,
3147+ name = 'W+',
3148+ antiname = 'W-',
3149+ spin = 3,
3150+ color = 1,
3151+ mass = Param.MW,
3152+ width = Param.WW,
3153+ texname = 'W+',
3154+ antitexname = 'W+',
3155+ charge = 1,
3156+ LeptonNumber = 0,
3157+ GhostNumber = 0)
3158+
3159+W__minus__ = W__plus__.anti()
3160+
3161+G = Particle(pdg_code = 21,
3162+ name = 'G',
3163+ antiname = 'G',
3164+ spin = 3,
3165+ color = 8,
3166+ mass = Param.ZERO,
3167+ width = Param.ZERO,
3168+ texname = 'G',
3169+ antitexname = 'G',
3170+ charge = 0,
3171+ LeptonNumber = 0,
3172+ GhostNumber = 0)
3173+
3174+H = Particle(pdg_code = 25,
3175+ name = 'H',
3176+ antiname = 'H',
3177+ spin = 1,
3178+ color = 1,
3179+ mass = Param.MH,
3180+ width = Param.WH,
3181+ texname = '\\phi',
3182+ antitexname = '\\phi',
3183+ charge = 0,
3184+ LeptonNumber = 0,
3185+ GhostNumber = 0)
3186+
3187+phi0 = Particle(pdg_code = 250,
3188+ name = 'phi0',
3189+ antiname = 'phi0',
3190+ spin = 1,
3191+ color = 1,
3192+ mass = Param.MZ,
3193+ width = Param.ZERO,
3194+ texname = 'phi0',
3195+ antitexname = 'phi0',
3196+ GoldstoneBoson = True,
3197+ charge = 0,
3198+ LeptonNumber = 0,
3199+ GhostNumber = 0)
3200+
3201+phi__plus__ = Particle(pdg_code = 251,
3202+ name = 'phi+',
3203+ antiname = 'phi-',
3204+ spin = 1,
3205+ color = 1,
3206+ mass = Param.MW,
3207+ width = Param.ZERO,
3208+ texname = '\\phi^+',
3209+ antitexname = '\\phi^+',
3210+ GoldstoneBoson = True,
3211+ charge = 1,
3212+ LeptonNumber = 0,
3213+ GhostNumber = 0)
3214+
3215+phi__minus__ = phi__plus__.anti()
3216+
3217+Tri0 = Particle(pdg_code = 9000006,
3218+ name = 'Tri0',
3219+ antiname = 'Tri0',
3220+ spin = 3,
3221+ color = 1,
3222+ mass = Param.MTri,
3223+ width = Param.ZERO,
3224+ texname = 'Tri0',
3225+ antitexname = 'Tri0',
3226+ charge = 0,
3227+ LeptonNumber = 0,
3228+ GhostNumber = 0,
3229+ propagating=False)
3230+
3231+Tri = Particle(pdg_code = 9000007,
3232+ name = 'Tri',
3233+ antiname = 'Tri~',
3234+ spin = 3,
3235+ color = 1,
3236+ mass = Param.MTri,
3237+ width = Param.ZERO,
3238+ texname = 'Tri',
3239+ antitexname = 'Tri',
3240+ charge = 1,
3241+ LeptonNumber = 0,
3242+ GhostNumber = 0,
3243+ propagating=False)
3244+
3245+Tri__tilde__ = Tri.anti()
3246+
3247+Tri80 = Particle(pdg_code = 9000008,
3248+ name = 'Tri80',
3249+ antiname = 'Tri80',
3250+ spin = 3,
3251+ color = 8,
3252+ mass = Param.MTri8,
3253+ width = Param.ZERO,
3254+ texname = 'Tri80',
3255+ antitexname = 'Tri80',
3256+ charge = 0,
3257+ LeptonNumber = 0,
3258+ GhostNumber = 0,
3259+ propagating=False)
3260+
3261+Tri8 = Particle(pdg_code = 9000009,
3262+ name = 'Tri8',
3263+ antiname = 'Tri8~',
3264+ spin = 3,
3265+ color = 8,
3266+ mass = Param.MTri8,
3267+ width = Param.ZERO,
3268+ texname = 'Tri8',
3269+ antitexname = 'Tri8',
3270+ charge = 1,
3271+ LeptonNumber = 0,
3272+ GhostNumber = 0,
3273+ propagating=False)
3274+
3275+Tri8__tilde__ = Tri8.anti()
3276+
3277+V8t = Particle(pdg_code = 9000010,
3278+ name = 'V8t',
3279+ antiname = 'V8t',
3280+ spin = 3,
3281+ color = 8,
3282+ mass = Param.M8t,
3283+ width = Param.ZERO,
3284+ texname = 'V8t',
3285+ antitexname = 'V8t',
3286+ charge = 0,
3287+ LeptonNumber = 0,
3288+ GhostNumber = 0,
3289+ propagating=False)
3290+
3291+V8Q = Particle(pdg_code = 9000011,
3292+ name = 'V8Q',
3293+ antiname = 'V8Q',
3294+ spin = 3,
3295+ color = 8,
3296+ mass = Param.M8Q,
3297+ width = Param.ZERO,
3298+ texname = 'V8Q',
3299+ antitexname = 'V8Q',
3300+ charge = 0,
3301+ LeptonNumber = 0,
3302+ GhostNumber = 0,
3303+ propagating=False)
3304+
3305
3306=== added file 'models/TopEffTh/vertices.py'
3307--- models/TopEffTh/vertices.py 1970-01-01 00:00:00 +0000
3308+++ models/TopEffTh/vertices.py 2011-10-11 00:36:19 +0000
3309@@ -0,0 +1,863 @@
3310+# This file was automatically created by FeynRules $Revision: 821 $
3311+# Mathematica version: 7.0 for Microsoft Windows (32-bit) (February 18, 2009)
3312+# Date: Mon 3 Oct 2011 13:27:06
3313+
3314+
3315+from object_library import all_vertices, Vertex
3316+import particles as P
3317+import couplings as C
3318+import lorentz as L
3319+
3320+
3321+V_1 = Vertex(name = 'V_1',
3322+ particles = [ P.H, P.H, P.H, P.H ],
3323+ color = [ '1' ],
3324+ lorentz = [ L.SSSS1 ],
3325+ couplings = {(0,0):C.GC_30})
3326+
3327+V_2 = Vertex(name = 'V_2',
3328+ particles = [ P.H, P.H, P.H ],
3329+ color = [ '1' ],
3330+ lorentz = [ L.SSS1 ],
3331+ couplings = {(0,0):C.GC_69})
3332+
3333+V_3 = Vertex(name = 'V_3',
3334+ particles = [ P.G, P.G, P.H, P.H ],
3335+ color = [ 'Identity(1,2)' ],
3336+ lorentz = [ L.VVSS2 ],
3337+ couplings = {(0,0):C.GC_32})
3338+
3339+V_4 = Vertex(name = 'V_4',
3340+ particles = [ P.G, P.G, P.H ],
3341+ color = [ 'Identity(1,2)' ],
3342+ lorentz = [ L.VVS2 ],
3343+ couplings = {(0,0):C.GC_70})
3344+
3345+V_5 = Vertex(name = 'V_5',
3346+ particles = [ P.ghG, P.ghG__tilde__, P.G ],
3347+ color = [ 'f(3,1,2)' ],
3348+ lorentz = [ L.UUV1 ],
3349+ couplings = {(0,0):C.GC_4})
3350+
3351+V_6 = Vertex(name = 'V_6',
3352+ particles = [ P.G, P.G, P.G ],
3353+ color = [ 'f(1,2,3)' ],
3354+ lorentz = [ L.VVV1, L.VVV2 ],
3355+ couplings = {(0,1):C.GC_31,(0,0):C.GC_4})
3356+
3357+V_7 = Vertex(name = 'V_7',
3358+ particles = [ P.G, P.G, P.G, P.G ],
3359+ 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)' ],
3360+ lorentz = [ L.VVVV1, L.VVVV2, L.VVVV4, L.VVVV5, L.VVVV7, L.VVVV8 ],
3361+ couplings = {(0,1):C.GC_36,(1,5):C.GC_36,(2,4):C.GC_36,(1,2):C.GC_6,(0,0):C.GC_6,(2,3):C.GC_6})
3362+
3363+V_8 = Vertex(name = 'V_8',
3364+ particles = [ P.G, P.G, P.G, P.H, P.H ],
3365+ color = [ 'f(1,2,3)' ],
3366+ lorentz = [ L.VVVSS1 ],
3367+ couplings = {(0,0):C.GC_37})
3368+
3369+V_9 = Vertex(name = 'V_9',
3370+ particles = [ P.G, P.G, P.G, P.H ],
3371+ color = [ 'f(1,2,3)' ],
3372+ lorentz = [ L.VVVS1 ],
3373+ couplings = {(0,0):C.GC_74})
3374+
3375+V_10 = Vertex(name = 'V_10',
3376+ particles = [ P.G, P.G, P.G, P.G, P.H, P.H ],
3377+ 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)' ],
3378+ lorentz = [ L.VVVVSS1, L.VVVVSS2, L.VVVVSS3 ],
3379+ couplings = {(1,1):C.GC_41,(0,0):C.GC_41,(2,2):C.GC_41})
3380+
3381+V_11 = Vertex(name = 'V_11',
3382+ particles = [ P.G, P.G, P.G, P.G, P.H ],
3383+ 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)' ],
3384+ lorentz = [ L.VVVVS1, L.VVVVS2, L.VVVVS3 ],
3385+ couplings = {(1,1):C.GC_76,(0,0):C.GC_76,(2,2):C.GC_76})
3386+
3387+V_12 = Vertex(name = 'V_12',
3388+ particles = [ P.G, P.G, P.G, P.G, P.G ],
3389+ color = [ 'f(-1,1,-2)*f(2,3,-1)*f(4,5,-2)', 'f(-1,1,-2)*f(2,3,-2)*f(4,5,-1)', 'f(-1,1,-2)*f(2,4,-1)*f(3,5,-2)', 'f(-1,1,-2)*f(2,4,-2)*f(3,5,-1)', 'f(-1,1,-2)*f(2,5,-1)*f(3,4,-2)', 'f(-1,1,-2)*f(2,5,-2)*f(3,4,-1)', 'f(-1,1,2)*f(3,-2,-1)*f(4,5,-2)', 'f(-1,1,2)*f(3,4,-2)*f(5,-2,-1)', 'f(-1,1,2)*f(3,5,-2)*f(4,-2,-1)', 'f(-1,1,3)*f(2,-2,-1)*f(4,5,-2)', 'f(-1,1,3)*f(2,4,-2)*f(5,-2,-1)', 'f(-1,1,3)*f(2,5,-2)*f(4,-2,-1)', 'f(-1,1,4)*f(2,-2,-1)*f(3,5,-2)', 'f(-1,1,4)*f(2,3,-2)*f(5,-2,-1)', 'f(-1,1,4)*f(2,5,-2)*f(3,-2,-1)', 'f(-1,1,5)*f(2,-2,-1)*f(3,4,-2)', 'f(-1,1,5)*f(2,3,-2)*f(4,-2,-1)', 'f(-1,1,5)*f(2,4,-2)*f(3,-2,-1)', 'f(-1,2,-2)*f(1,3,-2)*f(4,5,-1)', 'f(-1,2,-2)*f(1,4,-2)*f(3,5,-1)', 'f(-1,2,-2)*f(1,5,-2)*f(3,4,-1)', 'f(-1,2,3)*f(1,4,-2)*f(5,-2,-1)', 'f(-1,2,3)*f(1,5,-2)*f(4,-2,-1)', 'f(-1,2,4)*f(1,3,-2)*f(5,-2,-1)', 'f(-1,2,4)*f(1,5,-2)*f(3,-2,-1)', 'f(-1,2,5)*f(1,3,-2)*f(4,-2,-1)', 'f(-1,2,5)*f(1,4,-2)*f(3,-2,-1)', 'f(-1,3,-2)*f(1,2,-2)*f(4,5,-1)', 'f(-1,3,4)*f(1,2,-2)*f(5,-2,-1)', 'f(-1,3,5)*f(1,2,-2)*f(4,-2,-1)' ],
3390+ lorentz = [ L.VVVVV1, L.VVVVV10, L.VVVVV11, L.VVVVV12, L.VVVVV13, L.VVVVV14, L.VVVVV15, L.VVVVV16, L.VVVVV17, L.VVVVV18, L.VVVVV19, L.VVVVV2, L.VVVVV20, L.VVVVV21, L.VVVVV22, L.VVVVV23, L.VVVVV24, L.VVVVV25, L.VVVVV26, L.VVVVV27, L.VVVVV28, L.VVVVV29, L.VVVVV3, L.VVVVV30, L.VVVVV4, L.VVVVV5, L.VVVVV6, L.VVVVV7, L.VVVVV8, L.VVVVV9 ],
3391+ couplings = {(2,4):C.GC_39,(4,9):C.GC_40,(5,9):C.GC_39,(3,4):C.GC_40,(15,16):C.GC_39,(9,25):C.GC_39,(20,16):C.GC_40,(18,25):C.GC_40,(17,17):C.GC_39,(6,0):C.GC_39,(24,17):C.GC_40,(27,0):C.GC_40,(25,27):C.GC_39,(29,11):C.GC_39,(8,11):C.GC_40,(11,27):C.GC_40,(2,8):C.GC_40,(4,5):C.GC_39,(5,5):C.GC_40,(3,8):C.GC_39,(12,15):C.GC_39,(19,15):C.GC_40,(14,18):C.GC_39,(26,18):C.GC_40,(23,28):C.GC_39,(28,22):C.GC_39,(7,22):C.GC_40,(10,28):C.GC_40,(0,24):C.GC_39,(1,24):C.GC_40,(12,6):C.GC_39,(19,6):C.GC_40,(26,10):C.GC_39,(14,10):C.GC_40,(16,2):C.GC_39,(22,2):C.GC_40,(0,26):C.GC_40,(1,26):C.GC_39,(9,29):C.GC_39,(18,29):C.GC_40,(11,19):C.GC_39,(25,19):C.GC_40,(21,14):C.GC_39,(13,14):C.GC_40,(15,7):C.GC_39,(20,7):C.GC_40,(24,12):C.GC_39,(17,12):C.GC_40,(13,3):C.GC_39,(21,3):C.GC_40,(22,13):C.GC_39,(16,13):C.GC_40,(10,21):C.GC_39,(23,21):C.GC_40,(6,1):C.GC_39,(27,1):C.GC_40,(8,20):C.GC_39,(29,20):C.GC_40,(7,23):C.GC_39,(28,23):C.GC_40})
3392+
3393+V_13 = Vertex(name = 'V_13',
3394+ particles = [ P.G, P.G, P.G, P.G, P.G, P.G ],
3395+ color = [ 'f(-2,-3,-1)*f(-1,1,2)*f(3,4,-2)*f(5,6,-3)', 'f(-2,-3,-1)*f(-1,1,2)*f(3,4,-3)*f(5,6,-2)', 'f(-2,-3,-1)*f(-1,1,2)*f(3,5,-2)*f(4,6,-3)', 'f(-2,-3,-1)*f(-1,1,2)*f(3,5,-3)*f(4,6,-2)', 'f(-2,-3,-1)*f(-1,1,2)*f(3,6,-2)*f(4,5,-3)', 'f(-2,-3,-1)*f(-1,1,2)*f(3,6,-3)*f(4,5,-2)', 'f(-2,-3,-1)*f(-1,1,3)*f(2,4,-2)*f(5,6,-3)', 'f(-2,-3,-1)*f(-1,1,3)*f(2,4,-3)*f(5,6,-2)', 'f(-2,-3,-1)*f(-1,1,3)*f(2,5,-2)*f(4,6,-3)', 'f(-2,-3,-1)*f(-1,1,3)*f(2,5,-3)*f(4,6,-2)', 'f(-2,-3,-1)*f(-1,1,3)*f(2,6,-2)*f(4,5,-3)', 'f(-2,-3,-1)*f(-1,1,3)*f(2,6,-3)*f(4,5,-2)', 'f(-2,-3,-1)*f(-1,1,4)*f(2,3,-2)*f(5,6,-3)', 'f(-2,-3,-1)*f(-1,1,4)*f(2,3,-3)*f(5,6,-2)', 'f(-2,-3,-1)*f(-1,1,4)*f(2,5,-2)*f(3,6,-3)', 'f(-2,-3,-1)*f(-1,1,4)*f(2,5,-3)*f(3,6,-2)', 'f(-2,-3,-1)*f(-1,1,4)*f(2,6,-2)*f(3,5,-3)', 'f(-2,-3,-1)*f(-1,1,4)*f(2,6,-3)*f(3,5,-2)', 'f(-2,-3,-1)*f(-1,1,5)*f(2,3,-2)*f(4,6,-3)', 'f(-2,-3,-1)*f(-1,1,5)*f(2,3,-3)*f(4,6,-2)', 'f(-2,-3,-1)*f(-1,1,5)*f(2,4,-2)*f(3,6,-3)', 'f(-2,-3,-1)*f(-1,1,5)*f(2,4,-3)*f(3,6,-2)', 'f(-2,-3,-1)*f(-1,1,5)*f(2,6,-2)*f(3,4,-3)', 'f(-2,-3,-1)*f(-1,1,5)*f(2,6,-3)*f(3,4,-2)', 'f(-2,-3,-1)*f(-1,1,6)*f(2,3,-2)*f(4,5,-3)', 'f(-2,-3,-1)*f(-1,1,6)*f(2,3,-3)*f(4,5,-2)', 'f(-2,-3,-1)*f(-1,1,6)*f(2,4,-2)*f(3,5,-3)', 'f(-2,-3,-1)*f(-1,1,6)*f(2,4,-3)*f(3,5,-2)', 'f(-2,-3,-1)*f(-1,1,6)*f(2,5,-2)*f(3,4,-3)', 'f(-2,-3,-1)*f(-1,1,6)*f(2,5,-3)*f(3,4,-2)', 'f(-2,-3,-1)*f(-1,2,3)*f(1,4,-2)*f(5,6,-3)', 'f(-2,-3,-1)*f(-1,2,3)*f(1,4,-3)*f(5,6,-2)', 'f(-2,-3,-1)*f(-1,2,3)*f(1,5,-2)*f(4,6,-3)', 'f(-2,-3,-1)*f(-1,2,3)*f(1,5,-3)*f(4,6,-2)', 'f(-2,-3,-1)*f(-1,2,3)*f(1,6,-2)*f(4,5,-3)', 'f(-2,-3,-1)*f(-1,2,3)*f(1,6,-3)*f(4,5,-2)', 'f(-2,-3,-1)*f(-1,2,4)*f(1,3,-2)*f(5,6,-3)', 'f(-2,-3,-1)*f(-1,2,4)*f(1,3,-3)*f(5,6,-2)', 'f(-2,-3,-1)*f(-1,2,4)*f(1,5,-2)*f(3,6,-3)', 'f(-2,-3,-1)*f(-1,2,4)*f(1,5,-3)*f(3,6,-2)', 'f(-2,-3,-1)*f(-1,2,4)*f(1,6,-2)*f(3,5,-3)', 'f(-2,-3,-1)*f(-1,2,4)*f(1,6,-3)*f(3,5,-2)', 'f(-2,-3,-1)*f(-1,2,5)*f(1,3,-2)*f(4,6,-3)', 'f(-2,-3,-1)*f(-1,2,5)*f(1,3,-3)*f(4,6,-2)', 'f(-2,-3,-1)*f(-1,2,5)*f(1,4,-2)*f(3,6,-3)', 'f(-2,-3,-1)*f(-1,2,5)*f(1,4,-3)*f(3,6,-2)', 'f(-2,-3,-1)*f(-1,2,5)*f(1,6,-2)*f(3,4,-3)', 'f(-2,-3,-1)*f(-1,2,5)*f(1,6,-3)*f(3,4,-2)', 'f(-2,-3,-1)*f(-1,2,6)*f(1,3,-2)*f(4,5,-3)', 'f(-2,-3,-1)*f(-1,2,6)*f(1,3,-3)*f(4,5,-2)', 'f(-2,-3,-1)*f(-1,2,6)*f(1,4,-2)*f(3,5,-3)', 'f(-2,-3,-1)*f(-1,2,6)*f(1,4,-3)*f(3,5,-2)', 'f(-2,-3,-1)*f(-1,2,6)*f(1,5,-2)*f(3,4,-3)', 'f(-2,-3,-1)*f(-1,2,6)*f(1,5,-3)*f(3,4,-2)', 'f(-2,-3,-1)*f(-1,3,4)*f(1,2,-2)*f(5,6,-3)', 'f(-2,-3,-1)*f(-1,3,4)*f(1,2,-3)*f(5,6,-2)', 'f(-2,-3,-1)*f(-1,3,4)*f(1,5,-2)*f(2,6,-3)', 'f(-2,-3,-1)*f(-1,3,4)*f(1,5,-3)*f(2,6,-2)', 'f(-2,-3,-1)*f(-1,3,4)*f(1,6,-2)*f(2,5,-3)', 'f(-2,-3,-1)*f(-1,3,4)*f(1,6,-3)*f(2,5,-2)', 'f(-2,-3,-1)*f(-1,3,5)*f(1,2,-2)*f(4,6,-3)', 'f(-2,-3,-1)*f(-1,3,5)*f(1,2,-3)*f(4,6,-2)', 'f(-2,-3,-1)*f(-1,3,5)*f(1,4,-2)*f(2,6,-3)', 'f(-2,-3,-1)*f(-1,3,5)*f(1,4,-3)*f(2,6,-2)', 'f(-2,-3,-1)*f(-1,3,5)*f(1,6,-2)*f(2,4,-3)', 'f(-2,-3,-1)*f(-1,3,5)*f(1,6,-3)*f(2,4,-2)', 'f(-2,-3,-1)*f(-1,3,6)*f(1,2,-2)*f(4,5,-3)', 'f(-2,-3,-1)*f(-1,3,6)*f(1,2,-3)*f(4,5,-2)', 'f(-2,-3,-1)*f(-1,3,6)*f(1,4,-2)*f(2,5,-3)', 'f(-2,-3,-1)*f(-1,3,6)*f(1,4,-3)*f(2,5,-2)', 'f(-2,-3,-1)*f(-1,3,6)*f(1,5,-2)*f(2,4,-3)', 'f(-2,-3,-1)*f(-1,3,6)*f(1,5,-3)*f(2,4,-2)', 'f(-2,-3,-1)*f(-1,4,5)*f(1,2,-2)*f(3,6,-3)', 'f(-2,-3,-1)*f(-1,4,5)*f(1,2,-3)*f(3,6,-2)', 'f(-2,-3,-1)*f(-1,4,5)*f(1,3,-2)*f(2,6,-3)', 'f(-2,-3,-1)*f(-1,4,5)*f(1,3,-3)*f(2,6,-2)', 'f(-2,-3,-1)*f(-1,4,5)*f(1,6,-2)*f(2,3,-3)', 'f(-2,-3,-1)*f(-1,4,5)*f(1,6,-3)*f(2,3,-2)', 'f(-2,-3,-1)*f(-1,4,6)*f(1,2,-2)*f(3,5,-3)', 'f(-2,-3,-1)*f(-1,4,6)*f(1,2,-3)*f(3,5,-2)', 'f(-2,-3,-1)*f(-1,4,6)*f(1,3,-2)*f(2,5,-3)', 'f(-2,-3,-1)*f(-1,4,6)*f(1,3,-3)*f(2,5,-2)', 'f(-2,-3,-1)*f(-1,4,6)*f(1,5,-2)*f(2,3,-3)', 'f(-2,-3,-1)*f(-1,4,6)*f(1,5,-3)*f(2,3,-2)', 'f(-2,-3,-1)*f(-1,5,6)*f(1,2,-2)*f(3,4,-3)', 'f(-2,-3,-1)*f(-1,5,6)*f(1,2,-3)*f(3,4,-2)', 'f(-2,-3,-1)*f(-1,5,6)*f(1,3,-2)*f(2,4,-3)', 'f(-2,-3,-1)*f(-1,5,6)*f(1,3,-3)*f(2,4,-2)', 'f(-2,-3,-1)*f(-1,5,6)*f(1,4,-2)*f(2,3,-3)', 'f(-2,-3,-1)*f(-1,5,6)*f(1,4,-3)*f(2,3,-2)' ],
3396+ lorentz = [ L.VVVVVV1, L.VVVVVV10, L.VVVVVV11, L.VVVVVV12, L.VVVVVV13, L.VVVVVV14, L.VVVVVV15, L.VVVVVV2, L.VVVVVV3, L.VVVVVV4, L.VVVVVV5, L.VVVVVV6, L.VVVVVV7, L.VVVVVV8, L.VVVVVV9 ],
3397+ couplings = {(5,11):C.GC_42,(4,11):C.GC_43,(3,9):C.GC_43,(2,9):C.GC_42,(11,1):C.GC_43,(10,1):C.GC_42,(7,7):C.GC_43,(6,7):C.GC_42,(17,4):C.GC_43,(16,4):C.GC_42,(13,8):C.GC_43,(12,8):C.GC_42,(21,2):C.GC_42,(20,2):C.GC_43,(19,3):C.GC_42,(18,3):C.GC_43,(33,3):C.GC_43,(32,3):C.GC_42,(31,8):C.GC_42,(30,8):C.GC_43,(39,2):C.GC_43,(38,2):C.GC_42,(37,7):C.GC_42,(36,7):C.GC_43,(51,4):C.GC_42,(50,4):C.GC_43,(49,1):C.GC_42,(48,1):C.GC_43,(63,4):C.GC_43,(62,4):C.GC_42,(61,9):C.GC_42,(60,9):C.GC_43,(71,2):C.GC_42,(70,2):C.GC_43,(67,11):C.GC_43,(66,11):C.GC_42,(75,1):C.GC_43,(74,1):C.GC_42,(73,11):C.GC_42,(72,11):C.GC_43,(83,3):C.GC_42,(82,3):C.GC_43,(79,9):C.GC_43,(78,9):C.GC_42,(89,8):C.GC_43,(88,8):C.GC_42,(87,7):C.GC_43,(86,7):C.GC_42,(9,13):C.GC_43,(8,13):C.GC_42,(15,5):C.GC_43,(14,5):C.GC_42,(27,14):C.GC_42,(26,14):C.GC_43,(25,6):C.GC_42,(24,6):C.GC_43,(35,6):C.GC_43,(34,6):C.GC_42,(41,14):C.GC_43,(40,14):C.GC_42,(45,5):C.GC_42,(44,5):C.GC_43,(43,13):C.GC_42,(42,13):C.GC_43,(65,14):C.GC_42,(64,14):C.GC_43,(69,5):C.GC_43,(68,5):C.GC_42,(77,6):C.GC_42,(76,6):C.GC_43,(81,13):C.GC_43,(80,13):C.GC_42,(1,0):C.GC_43,(0,0):C.GC_42,(23,10):C.GC_43,(22,10):C.GC_42,(53,10):C.GC_42,(52,10):C.GC_43,(57,10):C.GC_43,(56,10):C.GC_42,(55,0):C.GC_42,(54,0):C.GC_43,(85,0):C.GC_43,(84,0):C.GC_42,(29,12):C.GC_42,(28,12):C.GC_43,(47,12):C.GC_43,(46,12):C.GC_42,(59,12):C.GC_42,(58,12):C.GC_43})
3398+
3399+V_14 = Vertex(name = 'V_14',
3400+ particles = [ P.A, P.W__minus__, P.W__plus__ ],
3401+ color = [ '1' ],
3402+ lorentz = [ L.VVV1 ],
3403+ couplings = {(0,0):C.GC_62})
3404+
3405+V_15 = Vertex(name = 'V_15',
3406+ particles = [ P.W__minus__, P.W__plus__, P.H, P.H ],
3407+ color = [ '1' ],
3408+ lorentz = [ L.VVSS1 ],
3409+ couplings = {(0,0):C.GC_46})
3410+
3411+V_16 = Vertex(name = 'V_16',
3412+ particles = [ P.W__minus__, P.W__plus__, P.H ],
3413+ color = [ '1' ],
3414+ lorentz = [ L.VVS1 ],
3415+ couplings = {(0,0):C.GC_79})
3416+
3417+V_17 = Vertex(name = 'V_17',
3418+ particles = [ P.A, P.A, P.W__minus__, P.W__plus__ ],
3419+ color = [ '1' ],
3420+ lorentz = [ L.VVVV3 ],
3421+ couplings = {(0,0):C.GC_66})
3422+
3423+V_18 = Vertex(name = 'V_18',
3424+ particles = [ P.W__minus__, P.W__plus__, P.Z ],
3425+ color = [ '1' ],
3426+ lorentz = [ L.VVV1 ],
3427+ couplings = {(0,0):C.GC_27})
3428+
3429+V_19 = Vertex(name = 'V_19',
3430+ particles = [ P.W__minus__, P.W__minus__, P.W__plus__, P.W__plus__ ],
3431+ color = [ '1' ],
3432+ lorentz = [ L.VVVV3 ],
3433+ couplings = {(0,0):C.GC_28})
3434+
3435+V_20 = Vertex(name = 'V_20',
3436+ particles = [ P.A, P.W__minus__, P.W__plus__, P.Z ],
3437+ color = [ '1' ],
3438+ lorentz = [ L.VVVV6 ],
3439+ couplings = {(0,0):C.GC_63})
3440+
3441+V_21 = Vertex(name = 'V_21',
3442+ particles = [ P.Z, P.Z, P.H, P.H ],
3443+ color = [ '1' ],
3444+ lorentz = [ L.VVSS1 ],
3445+ couplings = {(0,0):C.GC_68})
3446+
3447+V_22 = Vertex(name = 'V_22',
3448+ particles = [ P.Z, P.Z, P.H ],
3449+ color = [ '1' ],
3450+ lorentz = [ L.VVS1 ],
3451+ couplings = {(0,0):C.GC_84})
3452+
3453+V_23 = Vertex(name = 'V_23',
3454+ particles = [ P.W__minus__, P.W__plus__, P.Z, P.Z ],
3455+ color = [ '1' ],
3456+ lorentz = [ L.VVVV3 ],
3457+ couplings = {(0,0):C.GC_29})
3458+
3459+V_24 = Vertex(name = 'V_24',
3460+ particles = [ P.t__tilde__, P.b, P.W__plus__, P.H, P.H ],
3461+ color = [ 'Identity(1,2)' ],
3462+ lorentz = [ L.FFVSS1 ],
3463+ couplings = {(0,0):C.GC_94})
3464+
3465+V_25 = Vertex(name = 'V_25',
3466+ particles = [ P.t__tilde__, P.b, P.W__plus__, P.H ],
3467+ color = [ 'Identity(1,2)' ],
3468+ lorentz = [ L.FFVS1, L.FFVS3 ],
3469+ couplings = {(0,0):C.GC_95,(0,1):C.GC_34})
3470+
3471+V_26 = Vertex(name = 'V_26',
3472+ particles = [ P.t__tilde__, P.b, P.W__plus__ ],
3473+ color = [ 'Identity(1,2)' ],
3474+ lorentz = [ L.FFV2, L.FFV8 ],
3475+ couplings = {(0,0):[ C.GC_96, C.GC_115 ],(0,1):C.GC_72})
3476+
3477+V_27 = Vertex(name = 'V_27',
3478+ particles = [ P.b__tilde__, P.b, P.H, P.H ],
3479+ color = [ 'Identity(1,2)' ],
3480+ lorentz = [ L.FFSS1 ],
3481+ couplings = {(0,0):C.GC_98})
3482+
3483+V_28 = Vertex(name = 'V_28',
3484+ particles = [ P.b__tilde__, P.b, P.H ],
3485+ color = [ 'Identity(1,2)' ],
3486+ lorentz = [ L.FFS1, L.FFS2 ],
3487+ couplings = {(0,0):C.GC_85,(0,1):C.GC_102})
3488+
3489+V_29 = Vertex(name = 'V_29',
3490+ particles = [ P.b__tilde__, P.b, P.Z, P.H, P.H ],
3491+ color = [ 'Identity(1,2)' ],
3492+ lorentz = [ L.FFVSS1 ],
3493+ couplings = {(0,0):C.GC_99})
3494+
3495+V_30 = Vertex(name = 'V_30',
3496+ particles = [ P.b__tilde__, P.b, P.Z, P.H ],
3497+ color = [ 'Identity(1,2)' ],
3498+ lorentz = [ L.FFVS1 ],
3499+ couplings = {(0,0):C.GC_103})
3500+
3501+V_31 = Vertex(name = 'V_31',
3502+ particles = [ P.b__tilde__, P.b, P.Z ],
3503+ color = [ 'Identity(1,2)' ],
3504+ lorentz = [ L.FFV2, L.FFV5 ],
3505+ couplings = {(0,0):[ C.GC_57, C.GC_105 ],(0,1):C.GC_60})
3506+
3507+V_32 = Vertex(name = 'V_32',
3508+ particles = [ P.t__tilde__, P.t, P.H, P.H ],
3509+ color = [ 'Identity(1,2)' ],
3510+ lorentz = [ L.FFSS1 ],
3511+ couplings = {(0,0):C.GC_97})
3512+
3513+V_33 = Vertex(name = 'V_33',
3514+ particles = [ P.t__tilde__, P.t, P.H ],
3515+ color = [ 'Identity(1,2)' ],
3516+ lorentz = [ L.FFS1, L.FFS2 ],
3517+ couplings = {(0,0):C.GC_91,(0,1):C.GC_101})
3518+
3519+V_34 = Vertex(name = 'V_34',
3520+ particles = [ P.t__tilde__, P.t, P.Z, P.H, P.H ],
3521+ color = [ 'Identity(1,2)' ],
3522+ lorentz = [ L.FFVSS1 ],
3523+ couplings = {(0,0):C.GC_100})
3524+
3525+V_35 = Vertex(name = 'V_35',
3526+ particles = [ P.t__tilde__, P.t, P.Z, P.H ],
3527+ color = [ 'Identity(1,2)' ],
3528+ lorentz = [ L.FFVS1, L.FFVS2, L.FFVS3 ],
3529+ couplings = {(0,0):C.GC_104,(0,1):C.GC_121,(0,2):C.GC_35})
3530+
3531+V_36 = Vertex(name = 'V_36',
3532+ particles = [ P.t__tilde__, P.t, P.Z ],
3533+ color = [ 'Identity(1,2)' ],
3534+ lorentz = [ L.FFV2, L.FFV3, L.FFV7, L.FFV8 ],
3535+ couplings = {(0,0):[ C.GC_58, C.GC_106 ],(0,2):C.GC_60,(0,1):C.GC_127,(0,3):C.GC_73})
3536+
3537+V_37 = Vertex(name = 'V_37',
3538+ particles = [ P.b__tilde__, P.t, P.W__minus__, P.H, P.H ],
3539+ color = [ 'Identity(1,2)' ],
3540+ lorentz = [ L.FFVSS1 ],
3541+ couplings = {(0,0):C.GC_59})
3542+
3543+V_38 = Vertex(name = 'V_38',
3544+ particles = [ P.b__tilde__, P.t, P.W__minus__, P.H ],
3545+ color = [ 'Identity(1,2)' ],
3546+ lorentz = [ L.FFVS1, L.FFVS2 ],
3547+ couplings = {(0,0):C.GC_80,(0,1):C.GC_120})
3548+
3549+V_39 = Vertex(name = 'V_39',
3550+ particles = [ P.b__tilde__, P.t, P.W__minus__ ],
3551+ color = [ 'Identity(1,2)' ],
3552+ lorentz = [ L.FFV2, L.FFV3 ],
3553+ couplings = {(0,0):[ C.GC_56, C.GC_83 ],(0,1):C.GC_126})
3554+
3555+V_40 = Vertex(name = 'V_40',
3556+ particles = [ P.s__tilde__, P.c, P.Tri__tilde__ ],
3557+ color = [ 'Identity(1,2)' ],
3558+ lorentz = [ L.FFV2 ],
3559+ couplings = {(0,0):C.GC_26})
3560+
3561+V_41 = Vertex(name = 'V_41',
3562+ particles = [ P.d__tilde__, P.u, P.Tri__tilde__ ],
3563+ color = [ 'Identity(1,2)' ],
3564+ lorentz = [ L.FFV2 ],
3565+ couplings = {(0,0):C.GC_26})
3566+
3567+V_42 = Vertex(name = 'V_42',
3568+ particles = [ P.c__tilde__, P.c, P.Tri0 ],
3569+ color = [ 'Identity(1,2)' ],
3570+ lorentz = [ L.FFV2 ],
3571+ couplings = {(0,0):C.GC_25})
3572+
3573+V_43 = Vertex(name = 'V_43',
3574+ particles = [ P.d__tilde__, P.d, P.Tri0 ],
3575+ color = [ 'Identity(1,2)' ],
3576+ lorentz = [ L.FFV2 ],
3577+ couplings = {(0,0):C.GC_24})
3578+
3579+V_44 = Vertex(name = 'V_44',
3580+ particles = [ P.s__tilde__, P.s, P.Tri0 ],
3581+ color = [ 'Identity(1,2)' ],
3582+ lorentz = [ L.FFV2 ],
3583+ couplings = {(0,0):C.GC_24})
3584+
3585+V_45 = Vertex(name = 'V_45',
3586+ particles = [ P.u__tilde__, P.u, P.Tri0 ],
3587+ color = [ 'Identity(1,2)' ],
3588+ lorentz = [ L.FFV2 ],
3589+ couplings = {(0,0):C.GC_25})
3590+
3591+V_46 = Vertex(name = 'V_46',
3592+ particles = [ P.u__tilde__, P.d, P.Tri ],
3593+ color = [ 'Identity(1,2)' ],
3594+ lorentz = [ L.FFV2 ],
3595+ couplings = {(0,0):C.GC_26})
3596+
3597+V_47 = Vertex(name = 'V_47',
3598+ particles = [ P.c__tilde__, P.s, P.Tri ],
3599+ color = [ 'Identity(1,2)' ],
3600+ lorentz = [ L.FFV2 ],
3601+ couplings = {(0,0):C.GC_26})
3602+
3603+V_48 = Vertex(name = 'V_48',
3604+ particles = [ P.b__tilde__, P.t, P.Tri__tilde__ ],
3605+ color = [ 'Identity(1,2)' ],
3606+ lorentz = [ L.FFV2 ],
3607+ couplings = {(0,0):C.GC_17})
3608+
3609+V_49 = Vertex(name = 'V_49',
3610+ particles = [ P.b__tilde__, P.b, P.Tri0 ],
3611+ color = [ 'Identity(1,2)' ],
3612+ lorentz = [ L.FFV2 ],
3613+ couplings = {(0,0):C.GC_15})
3614+
3615+V_50 = Vertex(name = 'V_50',
3616+ particles = [ P.t__tilde__, P.t, P.Tri0 ],
3617+ color = [ 'Identity(1,2)' ],
3618+ lorentz = [ L.FFV2 ],
3619+ couplings = {(0,0):C.GC_16})
3620+
3621+V_51 = Vertex(name = 'V_51',
3622+ particles = [ P.t__tilde__, P.b, P.Tri ],
3623+ color = [ 'Identity(1,2)' ],
3624+ lorentz = [ L.FFV2 ],
3625+ couplings = {(0,0):C.GC_17})
3626+
3627+V_52 = Vertex(name = 'V_52',
3628+ particles = [ P.c__tilde__, P.c, P.V8t ],
3629+ color = [ 'T(3,2,1)' ],
3630+ lorentz = [ L.FFV2, L.FFV4 ],
3631+ couplings = {(0,0):C.GC_13,(0,1):C.GC_14})
3632+
3633+V_53 = Vertex(name = 'V_53',
3634+ particles = [ P.d__tilde__, P.d, P.V8t ],
3635+ color = [ 'T(3,2,1)' ],
3636+ lorentz = [ L.FFV2, L.FFV4 ],
3637+ couplings = {(0,0):C.GC_13,(0,1):C.GC_12})
3638+
3639+V_54 = Vertex(name = 'V_54',
3640+ particles = [ P.s__tilde__, P.s, P.V8t ],
3641+ color = [ 'T(3,2,1)' ],
3642+ lorentz = [ L.FFV2, L.FFV4 ],
3643+ couplings = {(0,0):C.GC_13,(0,1):C.GC_12})
3644+
3645+V_55 = Vertex(name = 'V_55',
3646+ particles = [ P.u__tilde__, P.u, P.V8t ],
3647+ color = [ 'T(3,2,1)' ],
3648+ lorentz = [ L.FFV2, L.FFV4 ],
3649+ couplings = {(0,0):C.GC_13,(0,1):C.GC_14})
3650+
3651+V_56 = Vertex(name = 'V_56',
3652+ particles = [ P.t__tilde__, P.t, P.V8t ],
3653+ color = [ 'T(3,2,1)' ],
3654+ lorentz = [ L.FFV4 ],
3655+ couplings = {(0,0):C.GC_11})
3656+
3657+V_57 = Vertex(name = 'V_57',
3658+ particles = [ P.b__tilde__, P.b, P.V8Q ],
3659+ color = [ 'T(3,2,1)' ],
3660+ lorentz = [ L.FFV2 ],
3661+ couplings = {(0,0):C.GC_7})
3662+
3663+V_58 = Vertex(name = 'V_58',
3664+ particles = [ P.c__tilde__, P.c, P.V8Q ],
3665+ color = [ 'T(3,2,1)' ],
3666+ lorentz = [ L.FFV2, L.FFV4 ],
3667+ couplings = {(0,0):C.GC_9,(0,1):C.GC_10})
3668+
3669+V_59 = Vertex(name = 'V_59',
3670+ particles = [ P.d__tilde__, P.d, P.V8Q ],
3671+ color = [ 'T(3,2,1)' ],
3672+ lorentz = [ L.FFV2, L.FFV4 ],
3673+ couplings = {(0,0):C.GC_9,(0,1):C.GC_8})
3674+
3675+V_60 = Vertex(name = 'V_60',
3676+ particles = [ P.s__tilde__, P.s, P.V8Q ],
3677+ color = [ 'T(3,2,1)' ],
3678+ lorentz = [ L.FFV2, L.FFV4 ],
3679+ couplings = {(0,0):C.GC_9,(0,1):C.GC_8})
3680+
3681+V_61 = Vertex(name = 'V_61',
3682+ particles = [ P.t__tilde__, P.t, P.V8Q ],
3683+ color = [ 'T(3,2,1)' ],
3684+ lorentz = [ L.FFV2 ],
3685+ couplings = {(0,0):C.GC_7})
3686+
3687+V_62 = Vertex(name = 'V_62',
3688+ particles = [ P.u__tilde__, P.u, P.V8Q ],
3689+ color = [ 'T(3,2,1)' ],
3690+ lorentz = [ L.FFV2, L.FFV4 ],
3691+ couplings = {(0,0):C.GC_9,(0,1):C.GC_10})
3692+
3693+V_63 = Vertex(name = 'V_63',
3694+ particles = [ P.s__tilde__, P.c, P.Tri8__tilde__ ],
3695+ color = [ 'T(3,2,1)' ],
3696+ lorentz = [ L.FFV2 ],
3697+ couplings = {(0,0):C.GC_23})
3698+
3699+V_64 = Vertex(name = 'V_64',
3700+ particles = [ P.d__tilde__, P.u, P.Tri8__tilde__ ],
3701+ color = [ 'T(3,2,1)' ],
3702+ lorentz = [ L.FFV2 ],
3703+ couplings = {(0,0):C.GC_23})
3704+
3705+V_65 = Vertex(name = 'V_65',
3706+ particles = [ P.c__tilde__, P.c, P.Tri80 ],
3707+ color = [ 'T(3,2,1)' ],
3708+ lorentz = [ L.FFV2 ],
3709+ couplings = {(0,0):C.GC_22})
3710+
3711+V_66 = Vertex(name = 'V_66',
3712+ particles = [ P.d__tilde__, P.d, P.Tri80 ],
3713+ color = [ 'T(3,2,1)' ],
3714+ lorentz = [ L.FFV2 ],
3715+ couplings = {(0,0):C.GC_21})
3716+
3717+V_67 = Vertex(name = 'V_67',
3718+ particles = [ P.s__tilde__, P.s, P.Tri80 ],
3719+ color = [ 'T(3,2,1)' ],
3720+ lorentz = [ L.FFV2 ],
3721+ couplings = {(0,0):C.GC_21})
3722+
3723+V_68 = Vertex(name = 'V_68',
3724+ particles = [ P.u__tilde__, P.u, P.Tri80 ],
3725+ color = [ 'T(3,2,1)' ],
3726+ lorentz = [ L.FFV2 ],
3727+ couplings = {(0,0):C.GC_22})
3728+
3729+V_69 = Vertex(name = 'V_69',
3730+ particles = [ P.u__tilde__, P.d, P.Tri8 ],
3731+ color = [ 'T(3,2,1)' ],
3732+ lorentz = [ L.FFV2 ],
3733+ couplings = {(0,0):C.GC_23})
3734+
3735+V_70 = Vertex(name = 'V_70',
3736+ particles = [ P.c__tilde__, P.s, P.Tri8 ],
3737+ color = [ 'T(3,2,1)' ],
3738+ lorentz = [ L.FFV2 ],
3739+ couplings = {(0,0):C.GC_23})
3740+
3741+V_71 = Vertex(name = 'V_71',
3742+ particles = [ P.b__tilde__, P.t, P.Tri8__tilde__ ],
3743+ color = [ 'T(3,2,1)' ],
3744+ lorentz = [ L.FFV2 ],
3745+ couplings = {(0,0):C.GC_20})
3746+
3747+V_72 = Vertex(name = 'V_72',
3748+ particles = [ P.b__tilde__, P.b, P.Tri80 ],
3749+ color = [ 'T(3,2,1)' ],
3750+ lorentz = [ L.FFV2 ],
3751+ couplings = {(0,0):C.GC_18})
3752+
3753+V_73 = Vertex(name = 'V_73',
3754+ particles = [ P.t__tilde__, P.t, P.Tri80 ],
3755+ color = [ 'T(3,2,1)' ],
3756+ lorentz = [ L.FFV2 ],
3757+ couplings = {(0,0):C.GC_19})
3758+
3759+V_74 = Vertex(name = 'V_74',
3760+ particles = [ P.t__tilde__, P.b, P.Tri8 ],
3761+ color = [ 'T(3,2,1)' ],
3762+ lorentz = [ L.FFV2 ],
3763+ couplings = {(0,0):C.GC_20})
3764+
3765+V_75 = Vertex(name = 'V_75',
3766+ particles = [ P.t__tilde__, P.t, P.A, P.H ],
3767+ color = [ 'Identity(1,2)' ],
3768+ lorentz = [ L.FFVS2, L.FFVS3 ],
3769+ couplings = {(0,0):C.GC_124,(0,1):C.GC_64})
3770+
3771+V_76 = Vertex(name = 'V_76',
3772+ particles = [ P.t__tilde__, P.t, P.A ],
3773+ color = [ 'Identity(1,2)' ],
3774+ lorentz = [ L.FFV1, L.FFV3, L.FFV8 ],
3775+ couplings = {(0,0):C.GC_2,(0,1):C.GC_130,(0,2):C.GC_81})
3776+
3777+V_77 = Vertex(name = 'V_77',
3778+ particles = [ P.t__tilde__, P.b, P.A, P.W__plus__, P.H ],
3779+ color = [ 'Identity(1,2)' ],
3780+ lorentz = [ L.FFVVS2 ],
3781+ couplings = {(0,0):C.GC_65})
3782+
3783+V_78 = Vertex(name = 'V_78',
3784+ particles = [ P.t__tilde__, P.b, P.A, P.W__plus__ ],
3785+ color = [ 'Identity(1,2)' ],
3786+ lorentz = [ L.FFVV2 ],
3787+ couplings = {(0,0):C.GC_82})
3788+
3789+V_79 = Vertex(name = 'V_79',
3790+ particles = [ P.t__tilde__, P.t, P.W__minus__, P.W__plus__, P.H ],
3791+ color = [ 'Identity(1,2)' ],
3792+ lorentz = [ L.FFVVS1, L.FFVVS2 ],
3793+ couplings = {(0,0):C.GC_122,(0,1):C.GC_44})
3794+
3795+V_80 = Vertex(name = 'V_80',
3796+ particles = [ P.t__tilde__, P.t, P.W__minus__, P.W__plus__ ],
3797+ color = [ 'Identity(1,2)' ],
3798+ lorentz = [ L.FFVV1, L.FFVV2 ],
3799+ couplings = {(0,0):C.GC_128,(0,1):C.GC_77})
3800+
3801+V_81 = Vertex(name = 'V_81',
3802+ particles = [ P.t__tilde__, P.b, P.W__plus__, P.Z, P.H ],
3803+ color = [ 'Identity(1,2)' ],
3804+ lorentz = [ L.FFVVS2 ],
3805+ couplings = {(0,0):C.GC_45})
3806+
3807+V_82 = Vertex(name = 'V_82',
3808+ particles = [ P.t__tilde__, P.b, P.W__plus__, P.Z ],
3809+ color = [ 'Identity(1,2)' ],
3810+ lorentz = [ L.FFVV2 ],
3811+ couplings = {(0,0):C.GC_78})
3812+
3813+V_83 = Vertex(name = 'V_83',
3814+ particles = [ P.t__tilde__, P.t, P.G, P.H ],
3815+ color = [ 'T(3,2,1)' ],
3816+ lorentz = [ L.FFVS2, L.FFVS3 ],
3817+ couplings = {(0,0):C.GC_116,(0,1):C.GC_33})
3818+
3819+V_84 = Vertex(name = 'V_84',
3820+ particles = [ P.t__tilde__, P.t, P.G ],
3821+ color = [ 'T(3,2,1)' ],
3822+ lorentz = [ L.FFV1, L.FFV3, L.FFV8 ],
3823+ couplings = {(0,0):C.GC_5,(0,1):C.GC_118,(0,2):C.GC_71})
3824+
3825+V_85 = Vertex(name = 'V_85',
3826+ particles = [ P.t__tilde__, P.t, P.G, P.G, P.H ],
3827+ color = [ 'f(3,4,-1)*T(-1,2,1)' ],
3828+ lorentz = [ L.FFVVS1, L.FFVVS2 ],
3829+ couplings = {(0,0):C.GC_117,(0,1):C.GC_38})
3830+
3831+V_86 = Vertex(name = 'V_86',
3832+ particles = [ P.t__tilde__, P.t, P.G, P.G ],
3833+ color = [ 'f(3,4,-1)*T(-1,2,1)' ],
3834+ lorentz = [ L.FFVV1, L.FFVV2 ],
3835+ couplings = {(0,0):C.GC_119,(0,1):C.GC_75})
3836+
3837+V_87 = Vertex(name = 'V_87',
3838+ particles = [ P.b__tilde__, P.t, P.A, P.W__minus__, P.H ],
3839+ color = [ 'Identity(1,2)' ],
3840+ lorentz = [ L.FFVVS1 ],
3841+ couplings = {(0,0):C.GC_125})
3842+
3843+V_88 = Vertex(name = 'V_88',
3844+ particles = [ P.b__tilde__, P.t, P.A, P.W__minus__ ],
3845+ color = [ 'Identity(1,2)' ],
3846+ lorentz = [ L.FFVV1 ],
3847+ couplings = {(0,0):C.GC_131})
3848+
3849+V_89 = Vertex(name = 'V_89',
3850+ particles = [ P.b__tilde__, P.t, P.W__minus__, P.Z, P.H ],
3851+ color = [ 'Identity(1,2)' ],
3852+ lorentz = [ L.FFVVS1 ],
3853+ couplings = {(0,0):C.GC_123})
3854+
3855+V_90 = Vertex(name = 'V_90',
3856+ particles = [ P.b__tilde__, P.t, P.W__minus__, P.Z ],
3857+ color = [ 'Identity(1,2)' ],
3858+ lorentz = [ L.FFVV1 ],
3859+ couplings = {(0,0):C.GC_129})
3860+
3861+V_91 = Vertex(name = 'V_91',
3862+ particles = [ P.d__tilde__, P.d, P.A ],
3863+ color = [ 'Identity(1,2)' ],
3864+ lorentz = [ L.FFV1 ],
3865+ couplings = {(0,0):C.GC_1})
3866+
3867+V_92 = Vertex(name = 'V_92',
3868+ particles = [ P.s__tilde__, P.s, P.A ],
3869+ color = [ 'Identity(1,2)' ],
3870+ lorentz = [ L.FFV1 ],
3871+ couplings = {(0,0):C.GC_1})
3872+
3873+V_93 = Vertex(name = 'V_93',
3874+ particles = [ P.b__tilde__, P.b, P.A ],
3875+ color = [ 'Identity(1,2)' ],
3876+ lorentz = [ L.FFV1 ],
3877+ couplings = {(0,0):C.GC_1})
3878+
3879+V_94 = Vertex(name = 'V_94',
3880+ particles = [ P.e__plus__, P.e__minus__, P.A ],
3881+ color = [ '1' ],
3882+ lorentz = [ L.FFV1 ],
3883+ couplings = {(0,0):C.GC_3})
3884+
3885+V_95 = Vertex(name = 'V_95',
3886+ particles = [ P.m__plus__, P.m__minus__, P.A ],
3887+ color = [ '1' ],
3888+ lorentz = [ L.FFV1 ],
3889+ couplings = {(0,0):C.GC_3})
3890+
3891+V_96 = Vertex(name = 'V_96',
3892+ particles = [ P.tt__plus__, P.tt__minus__, P.A ],
3893+ color = [ '1' ],
3894+ lorentz = [ L.FFV1 ],
3895+ couplings = {(0,0):C.GC_3})
3896+
3897+V_97 = Vertex(name = 'V_97',
3898+ particles = [ P.u__tilde__, P.u, P.A ],
3899+ color = [ 'Identity(1,2)' ],
3900+ lorentz = [ L.FFV1 ],
3901+ couplings = {(0,0):C.GC_2})
3902+
3903+V_98 = Vertex(name = 'V_98',
3904+ particles = [ P.c__tilde__, P.c, P.A ],
3905+ color = [ 'Identity(1,2)' ],
3906+ lorentz = [ L.FFV1 ],
3907+ couplings = {(0,0):C.GC_2})
3908+
3909+V_99 = Vertex(name = 'V_99',
3910+ particles = [ P.d__tilde__, P.d, P.G ],
3911+ color = [ 'T(3,2,1)' ],
3912+ lorentz = [ L.FFV1 ],
3913+ couplings = {(0,0):C.GC_5})
3914+
3915+V_100 = Vertex(name = 'V_100',
3916+ particles = [ P.s__tilde__, P.s, P.G ],
3917+ color = [ 'T(3,2,1)' ],
3918+ lorentz = [ L.FFV1 ],
3919+ couplings = {(0,0):C.GC_5})
3920+
3921+V_101 = Vertex(name = 'V_101',
3922+ particles = [ P.b__tilde__, P.b, P.G ],
3923+ color = [ 'T(3,2,1)' ],
3924+ lorentz = [ L.FFV1 ],
3925+ couplings = {(0,0):C.GC_5})
3926+
3927+V_102 = Vertex(name = 'V_102',
3928+ particles = [ P.d__tilde__, P.d, P.H ],
3929+ color = [ 'Identity(1,2)' ],
3930+ lorentz = [ L.FFS1 ],
3931+ couplings = {(0,0):C.GC_87})
3932+
3933+V_103 = Vertex(name = 'V_103',
3934+ particles = [ P.s__tilde__, P.s, P.H ],
3935+ color = [ 'Identity(1,2)' ],
3936+ lorentz = [ L.FFS1 ],
3937+ couplings = {(0,0):C.GC_90})
3938+
3939+V_104 = Vertex(name = 'V_104',
3940+ particles = [ P.d__tilde__, P.d, P.Z ],
3941+ color = [ 'Identity(1,2)' ],
3942+ lorentz = [ L.FFV2, L.FFV5 ],
3943+ couplings = {(0,0):C.GC_57,(0,1):C.GC_60})
3944+
3945+V_105 = Vertex(name = 'V_105',
3946+ particles = [ P.s__tilde__, P.s, P.Z ],
3947+ color = [ 'Identity(1,2)' ],
3948+ lorentz = [ L.FFV2, L.FFV5 ],
3949+ couplings = {(0,0):C.GC_57,(0,1):C.GC_60})
3950+
3951+V_106 = Vertex(name = 'V_106',
3952+ particles = [ P.d__tilde__, P.u, P.W__minus__ ],
3953+ color = [ 'Identity(1,2)' ],
3954+ lorentz = [ L.FFV2 ],
3955+ couplings = {(0,0):C.GC_48})
3956+
3957+V_107 = Vertex(name = 'V_107',
3958+ particles = [ P.d__tilde__, P.c, P.W__minus__ ],
3959+ color = [ 'Identity(1,2)' ],
3960+ lorentz = [ L.FFV2 ],
3961+ couplings = {(0,0):C.GC_51})
3962+
3963+V_108 = Vertex(name = 'V_108',
3964+ particles = [ P.d__tilde__, P.t, P.W__minus__ ],
3965+ color = [ 'Identity(1,2)' ],
3966+ lorentz = [ L.FFV2 ],
3967+ couplings = {(0,0):C.GC_54})
3968+
3969+V_109 = Vertex(name = 'V_109',
3970+ particles = [ P.s__tilde__, P.u, P.W__minus__ ],
3971+ color = [ 'Identity(1,2)' ],
3972+ lorentz = [ L.FFV2 ],
3973+ couplings = {(0,0):C.GC_49})
3974+
3975+V_110 = Vertex(name = 'V_110',
3976+ particles = [ P.s__tilde__, P.c, P.W__minus__ ],
3977+ color = [ 'Identity(1,2)' ],
3978+ lorentz = [ L.FFV2 ],
3979+ couplings = {(0,0):C.GC_52})
3980+
3981+V_111 = Vertex(name = 'V_111',
3982+ particles = [ P.s__tilde__, P.t, P.W__minus__ ],
3983+ color = [ 'Identity(1,2)' ],
3984+ lorentz = [ L.FFV2 ],
3985+ couplings = {(0,0):C.GC_55})
3986+
3987+V_112 = Vertex(name = 'V_112',
3988+ particles = [ P.b__tilde__, P.u, P.W__minus__ ],
3989+ color = [ 'Identity(1,2)' ],
3990+ lorentz = [ L.FFV2 ],
3991+ couplings = {(0,0):C.GC_50})
3992+
3993+V_113 = Vertex(name = 'V_113',
3994+ particles = [ P.b__tilde__, P.c, P.W__minus__ ],
3995+ color = [ 'Identity(1,2)' ],
3996+ lorentz = [ L.FFV2 ],
3997+ couplings = {(0,0):C.GC_53})
3998+
3999+V_114 = Vertex(name = 'V_114',
4000+ particles = [ P.u__tilde__, P.d, P.W__plus__ ],
4001+ color = [ 'Identity(1,2)' ],
4002+ lorentz = [ L.FFV2 ],
4003+ couplings = {(0,0):C.GC_107})
4004+
4005+V_115 = Vertex(name = 'V_115',
4006+ particles = [ P.c__tilde__, P.d, P.W__plus__ ],
4007+ color = [ 'Identity(1,2)' ],
4008+ lorentz = [ L.FFV2 ],
4009+ couplings = {(0,0):C.GC_110})
4010+
4011+V_116 = Vertex(name = 'V_116',
4012+ particles = [ P.t__tilde__, P.d, P.W__plus__ ],
4013+ color = [ 'Identity(1,2)' ],
4014+ lorentz = [ L.FFV2 ],
4015+ couplings = {(0,0):C.GC_113})
4016+
4017+V_117 = Vertex(name = 'V_117',
4018+ particles = [ P.u__tilde__, P.s, P.W__plus__ ],
4019+ color = [ 'Identity(1,2)' ],
4020+ lorentz = [ L.FFV2 ],
4021+ couplings = {(0,0):C.GC_108})
4022+
4023+V_118 = Vertex(name = 'V_118',
4024+ particles = [ P.c__tilde__, P.s, P.W__plus__ ],
4025+ color = [ 'Identity(1,2)' ],
4026+ lorentz = [ L.FFV2 ],
4027+ couplings = {(0,0):C.GC_111})
4028+
4029+V_119 = Vertex(name = 'V_119',
4030+ particles = [ P.t__tilde__, P.s, P.W__plus__ ],
4031+ color = [ 'Identity(1,2)' ],
4032+ lorentz = [ L.FFV2 ],
4033+ couplings = {(0,0):C.GC_114})
4034+
4035+V_120 = Vertex(name = 'V_120',
4036+ particles = [ P.u__tilde__, P.b, P.W__plus__ ],
4037+ color = [ 'Identity(1,2)' ],
4038+ lorentz = [ L.FFV2 ],
4039+ couplings = {(0,0):C.GC_109})
4040+
4041+V_121 = Vertex(name = 'V_121',
4042+ particles = [ P.c__tilde__, P.b, P.W__plus__ ],
4043+ color = [ 'Identity(1,2)' ],
4044+ lorentz = [ L.FFV2 ],
4045+ couplings = {(0,0):C.GC_112})
4046+
4047+V_122 = Vertex(name = 'V_122',
4048+ particles = [ P.u__tilde__, P.u, P.G ],
4049+ color = [ 'T(3,2,1)' ],
4050+ lorentz = [ L.FFV1 ],
4051+ couplings = {(0,0):C.GC_5})
4052+
4053+V_123 = Vertex(name = 'V_123',
4054+ particles = [ P.c__tilde__, P.c, P.G ],
4055+ color = [ 'T(3,2,1)' ],
4056+ lorentz = [ L.FFV1 ],
4057+ couplings = {(0,0):C.GC_5})
4058+
4059+V_124 = Vertex(name = 'V_124',
4060+ particles = [ P.e__plus__, P.e__minus__, P.H ],
4061+ color = [ '1' ],
4062+ lorentz = [ L.FFS1 ],
4063+ couplings = {(0,0):C.GC_88})
4064+
4065+V_125 = Vertex(name = 'V_125',
4066+ particles = [ P.m__plus__, P.m__minus__, P.H ],
4067+ color = [ '1' ],
4068+ lorentz = [ L.FFS1 ],
4069+ couplings = {(0,0):C.GC_89})
4070+
4071+V_126 = Vertex(name = 'V_126',
4072+ particles = [ P.tt__plus__, P.tt__minus__, P.H ],
4073+ color = [ '1' ],
4074+ lorentz = [ L.FFS1 ],
4075+ couplings = {(0,0):C.GC_92})
4076+
4077+V_127 = Vertex(name = 'V_127',
4078+ particles = [ P.u__tilde__, P.u, P.H ],
4079+ color = [ 'Identity(1,2)' ],
4080+ lorentz = [ L.FFS1 ],
4081+ couplings = {(0,0):C.GC_93})
4082+
4083+V_128 = Vertex(name = 'V_128',
4084+ particles = [ P.c__tilde__, P.c, P.H ],
4085+ color = [ 'Identity(1,2)' ],
4086+ lorentz = [ L.FFS1 ],
4087+ couplings = {(0,0):C.GC_86})
4088+
4089+V_129 = Vertex(name = 'V_129',
4090+ particles = [ P.e__plus__, P.e__minus__, P.Z ],
4091+ color = [ '1' ],
4092+ lorentz = [ L.FFV2, L.FFV6 ],
4093+ couplings = {(0,0):C.GC_57,(0,1):C.GC_61})
4094+
4095+V_130 = Vertex(name = 'V_130',
4096+ particles = [ P.m__plus__, P.m__minus__, P.Z ],
4097+ color = [ '1' ],
4098+ lorentz = [ L.FFV2, L.FFV6 ],
4099+ couplings = {(0,0):C.GC_57,(0,1):C.GC_61})
4100+
4101+V_131 = Vertex(name = 'V_131',
4102+ particles = [ P.tt__plus__, P.tt__minus__, P.Z ],
4103+ color = [ '1' ],
4104+ lorentz = [ L.FFV2, L.FFV6 ],
4105+ couplings = {(0,0):C.GC_57,(0,1):C.GC_61})
4106+
4107+V_132 = Vertex(name = 'V_132',
4108+ particles = [ P.e__plus__, P.ve, P.W__minus__ ],
4109+ color = [ '1' ],
4110+ lorentz = [ L.FFV2 ],
4111+ couplings = {(0,0):C.GC_47})
4112+
4113+V_133 = Vertex(name = 'V_133',
4114+ particles = [ P.m__plus__, P.vm, P.W__minus__ ],
4115+ color = [ '1' ],
4116+ lorentz = [ L.FFV2 ],
4117+ couplings = {(0,0):C.GC_47})
4118+
4119+V_134 = Vertex(name = 'V_134',
4120+ particles = [ P.tt__plus__, P.vt, P.W__minus__ ],
4121+ color = [ '1' ],
4122+ lorentz = [ L.FFV2 ],
4123+ couplings = {(0,0):C.GC_47})
4124+
4125+V_135 = Vertex(name = 'V_135',
4126+ particles = [ P.ve__tilde__, P.e__minus__, P.W__plus__ ],
4127+ color = [ '1' ],
4128+ lorentz = [ L.FFV2 ],
4129+ couplings = {(0,0):C.GC_47})
4130+
4131+V_136 = Vertex(name = 'V_136',
4132+ particles = [ P.vm__tilde__, P.m__minus__, P.W__plus__ ],
4133+ color = [ '1' ],
4134+ lorentz = [ L.FFV2 ],
4135+ couplings = {(0,0):C.GC_47})
4136+
4137+V_137 = Vertex(name = 'V_137',
4138+ particles = [ P.vt__tilde__, P.tt__minus__, P.W__plus__ ],
4139+ color = [ '1' ],
4140+ lorentz = [ L.FFV2 ],
4141+ couplings = {(0,0):C.GC_47})
4142+
4143+V_138 = Vertex(name = 'V_138',
4144+ particles = [ P.u__tilde__, P.u, P.Z ],
4145+ color = [ 'Identity(1,2)' ],
4146+ lorentz = [ L.FFV2, L.FFV7 ],
4147+ couplings = {(0,0):C.GC_58,(0,1):C.GC_60})
4148+
4149+V_139 = Vertex(name = 'V_139',
4150+ particles = [ P.c__tilde__, P.c, P.Z ],
4151+ color = [ 'Identity(1,2)' ],
4152+ lorentz = [ L.FFV2, L.FFV7 ],
4153+ couplings = {(0,0):C.GC_58,(0,1):C.GC_60})
4154+
4155+V_140 = Vertex(name = 'V_140',
4156+ particles = [ P.ve__tilde__, P.ve, P.Z ],
4157+ color = [ '1' ],
4158+ lorentz = [ L.FFV2 ],
4159+ couplings = {(0,0):C.GC_67})
4160+
4161+V_141 = Vertex(name = 'V_141',
4162+ particles = [ P.vm__tilde__, P.vm, P.Z ],
4163+ color = [ '1' ],
4164+ lorentz = [ L.FFV2 ],
4165+ couplings = {(0,0):C.GC_67})
4166+
4167+V_142 = Vertex(name = 'V_142',
4168+ particles = [ P.vt__tilde__, P.vt, P.Z ],
4169+ color = [ '1' ],
4170+ lorentz = [ L.FFV2 ],
4171+ couplings = {(0,0):C.GC_67})
4172+
4173
4174=== added file 'models/TopEffTh/write_param_card.py'
4175--- models/TopEffTh/write_param_card.py 1970-01-01 00:00:00 +0000
4176+++ models/TopEffTh/write_param_card.py 2011-10-11 00:36:19 +0000
4177@@ -0,0 +1,181 @@
4178+
4179+__date__ = "3 june 2010"
4180+__author__ = 'olivier.mattelaer@uclouvain.be'
4181+
4182+from function_library import *
4183+
4184+class ParamCardWriter(object):
4185+
4186+ header = \
4187+ """######################################################################\n""" + \
4188+ """## PARAM_CARD AUTOMATICALY GENERATED BY THE UFO #####################\n""" + \
4189+ """######################################################################\n"""
4190+
4191+ def __init__(self, filename, list_of_parameters=None, generic=False):
4192+ """write a valid param_card.dat"""
4193+
4194+ if not list_of_parameters:
4195+ from parameters import all_parameters
4196+ list_of_parameters = [param for param in all_parameters if \
4197+ param.nature=='external']
4198+
4199+ self.generic_output = generic
4200+ if generic:
4201+ self.define_not_dep_param(list_of_parameters)
4202+
4203+
4204+ self.fsock = open(filename, 'w')
4205+ self.fsock.write(self.header)
4206+
4207+ self.write_card(list_of_parameters)
4208+
4209+ def define_not_dep_param(self, list_of_parameters):
4210+ """define self.dep_mass and self.dep_width in case that they are
4211+ requested in the param_card.dat"""
4212+ from particles import all_particles
4213+
4214+ self.dep_mass = [(part, part.mass) for part in all_particles \
4215+ if part.pdg_code > 0 and \
4216+ part.mass not in list_of_parameters]
4217+ self.dep_width = [(part, part.width) for part in all_particles\
4218+ if part.pdg_code > 0 and \
4219+ part.width not in list_of_parameters]
4220+
4221+ @staticmethod
4222+ def order_param(obj1, obj2):
4223+ """ order parameter of a given block """
4224+
4225+ maxlen = min([len(obj1.lhacode), len(obj2.lhacode)])
4226+
4227+ for i in range(maxlen):
4228+ if obj1.lhacode[i] < obj2.lhacode[i]:
4229+ return -1
4230+ elif obj1.lhacode[i] == obj2.lhacode[i]:
4231+ return 0
4232+ else:
4233+ return 1
4234+ #identical up to the first finish
4235+ if len(obj1.lhacode) > len(obj2.lhacode):
4236+ return 1
4237+ elif len(obj1.lhacode) == len(obj2.lhacode):
4238+ return 0
4239+ else:
4240+ return -1
4241+
4242+ def write_card(self, all_ext_param):
4243+ """ """
4244+
4245+ # list all lhablock
4246+ all_lhablock = set([param.lhablock for param in all_ext_param])
4247+
4248+ # ordonate lhablock alphabeticaly
4249+ all_lhablock = list(all_lhablock)
4250+ all_lhablock.sort()
4251+ # put at the beginning SMINPUT + MASS + DECAY
4252+ for name in ['DECAY', 'MASS','SMINPUTS']:
4253+ if name in all_lhablock:
4254+ all_lhablock.remove(name)
4255+ all_lhablock.insert(0, name)
4256+
4257+ for lhablock in all_lhablock:
4258+ self.write_block(lhablock)
4259+ need_writing = [ param for param in all_ext_param if \
4260+ param.lhablock == lhablock]
4261+ need_writing.sort(self.order_param)
4262+ [self.write_param(param, lhablock) for param in need_writing]
4263+
4264+ if self.generic_output:
4265+ if lhablock in ['MASS', 'DECAY']:
4266+ self.write_dep_param_block(lhablock)
4267+
4268+ if self.generic_output:
4269+ self.write_qnumber()
4270+
4271+ def write_block(self, name):
4272+ """ write a comment for a block"""
4273+
4274+ self.fsock.writelines(
4275+ """\n###################################""" + \
4276+ """\n## INFORMATION FOR %s""" % name.upper() +\
4277+ """\n###################################\n"""
4278+ )
4279+ if name!='DECAY':
4280+ self.fsock.write("""Block %s \n""" % name)
4281+
4282+ def write_param(self, param, lhablock):
4283+
4284+ lhacode=' '.join(['%3s' % key for key in param.lhacode])
4285+ if lhablock != 'DECAY':
4286+ text = """ %s %e # %s \n""" % (lhacode, complex(param.value).real, param.name )
4287+ else:
4288+ text = '''DECAY %s %e \n''' % (lhacode, complex(param.value).real)
4289+ self.fsock.write(text)
4290+
4291+
4292+
4293+
4294+ def write_dep_param_block(self, lhablock):
4295+ import cmath
4296+ from parameters import all_parameters
4297+ for parameter in all_parameters:
4298+ exec("%s = %s" % (parameter.name, parameter.value))
4299+ text = "## Not dependent paramater.\n"
4300+ text += "## Those values should be edited following analytical the \n"
4301+ text += "## analytical expression. Some generator could simply ignore \n"
4302+ text += "## those values and use the analytical expression\n"
4303+
4304+ if lhablock == 'MASS':
4305+ data = self.dep_mass
4306+ prefix = " "
4307+ else:
4308+ data = self.dep_width
4309+ prefix = "DECAY "
4310+ for part, param in data:
4311+ if isinstance(param.value, str):
4312+ value = complex(eval(param.value)).real
4313+ else:
4314+ value = param.value
4315+
4316+ text += """%s %s %f # %s : %s \n""" %(prefix, part.pdg_code,
4317+ value, part.name, param.value)
4318+ self.fsock.write(text)
4319+
4320+ sm_pdg = [1,2,3,4,5,6,11,12,13,13,14,15,16,21,22,23,24,25]
4321+ data="""Block QNUMBERS %(pdg)d # %(name)s
4322+ 1 %(charge)d # 3 times electric charge
4323+ 2 %(spin)d # number of spin states (2S+1)
4324+ 3 %(color)d # colour rep (1: singlet, 3: triplet, 8: octet)
4325+ 4 %(antipart)d # Particle/Antiparticle distinction (0=own anti)\n"""
4326+
4327+ def write_qnumber(self):
4328+ """ write qnumber """
4329+ from particles import all_particles
4330+ import particles
4331+ print particles.__file__
4332+ text="""#===========================================================\n"""
4333+ text += """# QUANTUM NUMBERS OF NEW STATE(S) (NON SM PDG CODE)\n"""
4334+ text += """#===========================================================\n\n"""
4335+
4336+ for part in all_particles:
4337+ if part.pdg_code in self.sm_pdg or part.pdg_code < 0:
4338+ continue
4339+ text += self.data % {'pdg': part.pdg_code,
4340+ 'name': part.name,
4341+ 'charge': 3 * part.charge,
4342+ 'spin': 2 * part.spin + 1,
4343+ 'color': part.color,
4344+ 'antipart': part.name != part.antiname and 1 or 0}
4345+
4346+ self.fsock.write(text)
4347+
4348+
4349+
4350+
4351+
4352+
4353+
4354+
4355+if '__main__' == __name__:
4356+ ParamCardWriter('./param_card.dat', generic=True)
4357+ print 'write ./param_card.dat'
4358+

Subscribers

People subscribed via source and target branches