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

Proposed by Olivier Mattelaer
Status: Merged
Merged at revision: 246
Proposed branch: lp:~maddevelopers/mg5amcnlo/retry_fail_cluster
Merge into: lp:~madteam/mg5amcnlo/trunk
Diff against target: 26123 lines (+9089/-7267)
51 files modified
Template/SubProcesses/cuts.f (+3/-1)
Template/bin/internal/clean_template (+6/-0)
Template/bin/internal/run_pythia (+1/-1)
UpdateNotes.txt (+16/-0)
aloha/__init__.py (+2/-0)
aloha/aloha_lib.py (+9/-1)
aloha/create_aloha.py (+1/-1)
input/.mg5_configuration_default.txt (+79/-88)
madgraph/VERSION (+1/-1)
madgraph/__init__.py (+8/-1)
madgraph/core/diagram_generation.py (+1/-1)
madgraph/interface/madevent_interface.py (+30/-9)
madgraph/interface/madgraph_interface.py (+20/-6)
madgraph/iolibs/export_v4.py (+42/-13)
madgraph/iolibs/import_v4.py (+19/-5)
madgraph/iolibs/template_files/addmothers.f (+5/-2)
madgraph/iolibs/template_files/madevent_driver.f (+3/-1)
madgraph/various/cluster.py (+151/-27)
madgraph/various/misc.py (+1/-1)
models/EWdim6/EWdim6.log (+16/-9)
models/EWdim6/__init__.py (+18/-13)
models/EWdim6/build_restrict.py (+25/-10)
models/EWdim6/coupling_orders.py (+11/-3)
models/EWdim6/couplings.py (+299/-247)
models/EWdim6/function_library.py (+9/-0)
models/EWdim6/lorentz.py (+63/-67)
models/EWdim6/object_library.py (+118/-12)
models/EWdim6/parameters.py (+156/-54)
models/EWdim6/particles.py (+238/-198)
models/EWdim6/propagators.py (+35/-0)
models/EWdim6/restrict_default.dat (+90/-0)
models/EWdim6/vertices.py (+333/-303)
models/EWdim6/write_param_card.py (+3/-2)
models/__init__.py (+10/-1)
models/check_param_card.py (+16/-9)
models/import_ufo.py (+2/-2)
models/nmssm/__init__.py (+18/-2)
models/nmssm/coupling_orders.py (+3/-3)
models/nmssm/couplings.py (+1657/-1565)
models/nmssm/function_library.py (+9/-1)
models/nmssm/lorentz.py (+21/-6)
models/nmssm/object_library.py (+130/-12)
models/nmssm/parameters.py (+1125/-1125)
models/nmssm/particles.py (+7/-5)
models/nmssm/vertices.py (+4223/-3413)
models/nmssm/write_param_card.py (+4/-3)
models/write_param_card.py (+8/-0)
tests/acceptance_tests/test_cmd.py (+14/-14)
tests/input_files/test_mssm_generation (+1/-0)
tests/unit_tests/iolibs/test_export_v4.py (+23/-23)
tests/unit_tests/various/test_check_param_card.py (+6/-6)
To merge this branch: bzr merge lp:~maddevelopers/mg5amcnlo/retry_fail_cluster
Reviewer Review Type Date Requested Status
Rikkert Frederix Approve
Review via email: mp+190799@code.launchpad.net

Description of the change

A module to resubmit jobs which fails to produce output.

Rikkert could you test that everything is fine for lsf (cern) cluster?

Cheers,

Olivier

To post a comment you must log in.
252. By Olivier Mattelaer

fix condor cluster re-submission

253. By Olivier Mattelaer

restore the check of the param_card for constrained model

254. By Olivier Mattelaer

fix the bug #1208520. problem with color in writting event for group_subprocess=False

255. By Olivier Mattelaer

allow the install command to point either on UCL or on UIUC.

256. By Olivier Mattelaer

add a security for vbf cut when only one jet is present in the final state

257. By Olivier Mattelaer

First part of the auto-review

258. By Olivier Mattelaer

fix the points remaining in my auto-review (but the Dim6 stuff which waits for Celine model)

259. By Olivier Mattelaer

Udpate the EWdim6 according to the snowmass paper

260. By Olivier Mattelaer

add propagators.py to EWdim6

Revision history for this message
Rikkert Frederix (frederix) wrote :

Hi Olivier,

There seem to quite a lot more fixes/improvements of the code than what you wrote above. What do you want me to check exactly? What is the difference between this branch and the lp:~maddevelopers/madgraph5/1.5.13 branch?

Cheers,
Rik

review: Needs Information
261. By Olivier Mattelaer

Fix a bug when the hierarchy of QCD is not at one. (Thanks C. Degrande)

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

Hi Rik,

In fact this branch is already included in 1.5.13 and contains part of it.
If you could just run one times with this branch (or 1.5.13) on lsf to see that everything goes smoothly.
For the rest of the change, this can/should be done in the 1.5.13 review and didn't need anything special.

Cheers and thanks,

Olivier

On Oct 22, 2013, at 9:54 AM, Rikkert Frederix <email address hidden> wrote:

> Review: Needs Information
>
> Hi Olivier,
>
> There seem to quite a lot more fixes/improvements of the code than what you wrote above. What do you want me to check exactly? What is the difference between this branch and the lp:~maddevelopers/madgraph5/1.5.13 branch?
>
> Cheers,
> Rik
>
> --
> https://code.launchpad.net/~maddevelopers/madgraph5/retry_fail_cluster/+merge/190799
> You proposed lp:~maddevelopers/madgraph5/retry_fail_cluster for merging.

Revision history for this message
Rikkert Frederix (frederix) wrote :

I just tested the
generate p p > e+ ve j j
process on lxplus (lsf) and it is working fine.

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

Perfect Excellent!

Thanks a lot !!

Olivier

On Oct 22, 2013, at 1:06 PM, Rikkert Frederix <email address hidden> wrote:

> Review: Approve
>
> I just tested the
> generate p p > e+ ve j j
> process on lxplus (lsf) and it is working fine.
>
> --
> https://code.launchpad.net/~maddevelopers/madgraph5/retry_fail_cluster/+merge/190799
> You proposed lp:~maddevelopers/madgraph5/retry_fail_cluster for merging.

262. By Olivier Mattelaer

fix bug #1243189 (problem with path finding for v4 model)

263. By Olivier Mattelaer

remove the printout for maxweight

264. By Olivier Mattelaer

slightly change the resubmission procedure to avoid the inline waiting time.
This is now just a printout and the waiting time is done without any stopping the
control of the program.
The waiting time is also an input parameter.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'Template/SubProcesses/cuts.f'
2--- Template/SubProcesses/cuts.f 2013-02-27 10:09:58 +0000
3+++ Template/SubProcesses/cuts.f 2013-10-25 11:38:22 +0000
4@@ -734,6 +734,8 @@
5 endif
6 enddo
7
8+ if (hardj2.eq.0) goto 21 ! bypass vbf cut since not enough jets
9+
10 C-- NOW APPLY THE CUT I
11
12 if (abs(rap(p(0,hardj1))) .lt. xetamin
13@@ -757,7 +759,7 @@
14
15 C...Set couplings if event passed cuts
16
17- if(.not.fixed_ren_scale) then
18+ 21 if(.not.fixed_ren_scale) then
19 call set_ren_scale(P,scale)
20 if(scale.gt.0) G = SQRT(4d0*PI*ALPHAS(scale))
21 endif
22
23=== modified file 'Template/bin/internal/clean_template'
24--- Template/bin/internal/clean_template 2011-07-12 16:33:50 +0000
25+++ Template/bin/internal/clean_template 2013-10-25 11:38:22 +0000
26@@ -100,3 +100,9 @@
27 if [[ -e ../grid_card.dat ]]; then
28 mv ../grid_card.dat ./Cards/grid_card.dat
29 fi
30+cd ..
31+# Ensure that default card exists
32+if [[ ! -e ./Cards/run_card_default.dat ]]; then
33+ cp ./Cards/run_card.dat ./Cards/run_card_default.dat
34+fi
35+
36
37=== modified file 'Template/bin/internal/run_pythia'
38--- Template/bin/internal/run_pythia 2012-04-19 20:09:38 +0000
39+++ Template/bin/internal/run_pythia 2013-10-25 11:38:22 +0000
40@@ -18,6 +18,6 @@
41 echo " " >> ../Cards/pythia_card.dat
42 echo " LHAPATH=$pydir/PDFsets" >> ../Cards/pythia_card.dat
43 export PDG_MASS_TBL=$pydir/mass_width_2004.mc
44-
45+rm -rf Events/hepmv_event.hepmc &> /dev/null
46 $pydir/pythia && touch pythia.done
47
48
49=== modified file 'UpdateNotes.txt'
50--- UpdateNotes.txt 2013-08-20 23:20:18 +0000
51+++ UpdateNotes.txt 2013-10-25 11:38:22 +0000
52@@ -1,5 +1,21 @@
53 Update notes for MadGraph 5 (in reverse time order)
54
55+1.5.13 (xx/09/13) OM: Implement a function which check if jobs submitted to cluster are correctly runned.
56+ In case of failure, you can re-submitted the failing jobs automatically. The maximal
57+ number of re-submission for a job can be parametrize (default 1).
58+ Supported cluster for this function: condor, lsf, pbs
59+ OM: Fix a problem when more than 10k diagrams are present for a given subprocesses.
60+ (tt~+4jets).
61+ BF: Change nmssm model (The couplings orders were not correctly assigned for some triple
62+ Higgs interactions)
63+ OM: use evince by default to open eps file instead of gv.
64+ OM: Fix a problem with the set command for the card edition for the mssm model.
65+ OM: Update EWdim6 paper according to the snowmass paper. (3 more operator)
66+ The default model is restricted in order to exclude those operators. In order
67+ to have those you have to use import model EWdim6-full
68+ OM: Fix bug #1243189, impossible to load v4 model if a local directory has the name of
69+ the models (which is present in the models directory)
70+
71 1.5.12 (21/08/13) OM: Improve phase-space integration for processes with strong MMJJ cut. Cases where
72 the cross-section were slightly (~4%) under-evaluated due to such strong cut.
73 OM: Add a command print_results in the madevent interface. This command print the
74
75=== modified file 'aloha/__init__.py'
76--- aloha/__init__.py 2012-06-14 15:30:53 +0000
77+++ aloha/__init__.py 2013-10-25 11:38:22 +0000
78@@ -3,3 +3,5 @@
79 loop_mode = False # Tag for encoding momenta with complex number.
80 mp_precision = False # Tag for passing parameter in quadruple precision
81
82+
83+class ALOHAERROR(Exception): pass
84\ No newline at end of file
85
86=== modified file 'aloha/aloha_lib.py'
87--- aloha/aloha_lib.py 2013-02-28 21:01:05 +0000
88+++ aloha/aloha_lib.py 2013-10-25 11:38:22 +0000
89@@ -126,7 +126,15 @@
90 argument = []
91 for expression in args:
92 if isinstance(expression, (MultLorentz, AddVariable, LorentzObject)):
93- expr = expression.expand().get_rep([0])
94+ try:
95+ expr = expression.expand().get_rep([0])
96+ except KeyError, error:
97+ if error.args != ((0,),):
98+ raise
99+ else:
100+ raise aloha.ALOHAERROR, '''Error in input format.
101+ Argument of function (or denominator) should be scalar.
102+ We found %s''' % expression
103 new = expr.simplify()
104 new = expr.factorize()
105 argument.append(new)
106
107=== modified file 'aloha/create_aloha.py'
108--- aloha/create_aloha.py 2013-08-06 19:08:29 +0000
109+++ aloha/create_aloha.py 2013-10-25 11:38:22 +0000
110@@ -46,7 +46,7 @@
111 _spin2_mult = 1000
112
113
114-class ALOHAERROR(Exception): pass
115+ALOHAERROR = aloha.ALOHAERROR
116
117 class AbstractRoutine(object):
118 """ store the result of the computation of Helicity Routine
119
120=== modified file 'input/.mg5_configuration_default.txt'
121--- input/.mg5_configuration_default.txt 2013-03-30 19:28:32 +0000
122+++ input/.mg5_configuration_default.txt 2013-10-25 11:38:22 +0000
123@@ -26,44 +26,38 @@
124 #
125 ################################################################################
126
127-# Prefered Fortran Compiler
128-# If None: try to find g77 or gfortran on the system
129-
130-#fortran_compiler = None
131-
132-# Prefered Text Editor
133-# Default: use the shell default Editor
134-# or try to find one available on the system
135-# Be careful: Only shell based editor are allowed
136-
137-#text_editor = None
138-
139-# Prefered WebBrower
140-# If None: try to find one available on the system
141-
142-#web_browser = None
143-
144-# Prefered PS viewer
145-# If None: try to find one available on the system
146-
147-#eps_viewer = None
148-
149-# Time allowed to answer question (if no answer takes default value)
150-# 0: No time limit
151-
152-#timeout = 60
153-
154-# Pythia8 Path.
155-# Define the path to the pythia8 directory.
156-# relative path start from mg5 directory
157-
158-#pythia8_path = ./pythia8
159-
160-# Control when MG5 checks if he is up-to-date.
161-# Enter the number of day between two check (0 means never)
162-# A question is always asked before any update
163-
164-#auto_update = 7
165+#! Prefered Fortran Compiler
166+#! If None: try to find g77 or gfortran on the system
167+#!
168+# fortran_compiler = None
169+
170+#! Prefered Text Editor
171+#! Default: use the shell default Editor
172+#! or try to find one available on the system
173+#! Be careful: Only shell based editor are allowed
174+# text_editor = None
175+
176+#! Prefered WebBrower
177+#! If None: try to find one available on the system
178+# web_browser = None
179+
180+#! Prefered PS viewer
181+#! If None: try to find one available on the system
182+# eps_viewer = None
183+
184+#! Time allowed to answer question (if no answer takes default value)
185+#! 0: No time limit
186+# timeout = 60
187+
188+#! Pythia8 Path.
189+#! Define the path to the pythia8 directory.
190+#! relative path start from mg5 directory
191+# pythia8_path = ./pythia8
192+
193+#! Control when MG5 checks if he is up-to-date.
194+#! Enter the number of day between two check (0 means never)
195+#! A question is always asked before any update
196+# auto_update = 7
197
198 ################################################################################
199 # INFO FOR MADEVENT
200@@ -72,57 +66,54 @@
201 # containing the SubProcesses directory. Otherwise this is the madgraph5 main
202 # directory (containing the directories madgraph and Template)
203
204-# Allow/Forbid the automatic opening of the web browser (on the status page)
205-#when launching MadEvent [True/False]
206-
207-#automatic_html_opening = True
208-
209-# Default Running mode
210-# 0: single machine/ 1: cluster / 2: multicore
211-
212-#run_mode = 2
213-
214-# Cluster Type [pbs|sge|condor|lsf|ge|slurm] Use for cluster run only
215-# And cluster queue
216-
217+#! Allow/Forbid the automatic opening of the web browser (on the status page)
218+#!when launching MadEvent [True/False]
219+# automatic_html_opening = True
220+
221+#! Default Running mode
222+#! 0: single machine/ 1: cluster / 2: multicore
223+# run_mode = 2
224+
225+#! Cluster Type [pbs|sge|condor|lsf|ge|slurm] Use for cluster run only
226+#! And cluster queue
227 #cluster_type = condor
228-#cluster_queue = madgraph
229-
230-# Path to a node directory to avoid direct writting on the central disk
231-#Note that condor cluster avoid direct writting by default (therefore this
232-#options didn't modify condor cluster)
233-
234-#cluster_temp_path = None
235-
236-# Nb_core to use (None = all) This is use only for multicore run
237-
238-#nb_core = None
239-
240-# Pythia-PGS Package
241-# relative path start from main directory
242-
243-#pythia-pgs_path = ./pythia-pgs
244-
245-# Delphes Package
246-# relative path start from main directory
247-
248-#delphes_path = ./Delphes
249-
250-# MadAnalysis Package [For Drawing output]
251-# relative path start from main directory
252-
253-#madanalysis_path = ./MadAnalysis
254-
255-# ExRootAnalysis Package
256-# relative path start from main directory
257-
258-#exrootanalysis_path = ./ExRootAnalysis
259-
260-# TOPDRAWER PATH
261-# Path to the directory containing td executables
262-# relative path start from main directory
263-
264-#td_path = ./td
265+# cluster_queue = madgraph
266+
267+#! Path to a node directory to avoid direct writting on the central disk
268+#!Note that condor cluster avoid direct writting by default (therefore this
269+#!options didn't modify condor cluster)
270+# cluster_temp_path = None
271+
272+#! How to deal with failed submission (can occurs on cluster mode)
273+#! 0: crash, -1: print error, hangs the program up to manual instructions, N(>0) retry up to N times.
274+# cluster_nb_retry = 1
275+#! How much time to wait for the output file before resubmission/crash (filesystem can be very slow)
276+# cluster_retry_wait = 300
277+
278+#! Nb_core to use (None = all) This is use only for multicore run
279+#! This correspond also to the number core used for code compilation for cluster mode
280+# nb_core = None
281+
282+#! Pythia-PGS Package
283+#! relative path start from main directory
284+# pythia-pgs_path = ./pythia-pgs
285+
286+#! Delphes Package
287+#! relative path start from main directory
288+# delphes_path = ./Delphes
289+
290+#! MadAnalysis Package [For Drawing output]
291+#! relative path start from main directory
292+# madanalysis_path = ./MadAnalysis
293+
294+#! ExRootAnalysis Package
295+#! relative path start from main directory
296+# exrootanalysis_path = ./ExRootAnalysis
297+
298+#! TOPDRAWER PATH
299+#! Path to the directory containing td executables
300+#! relative path start from main directory
301+# td_path = ./td
302
303
304
305
306=== modified file 'madgraph/VERSION'
307--- madgraph/VERSION 2013-08-20 23:20:18 +0000
308+++ madgraph/VERSION 2013-10-25 11:38:22 +0000
309@@ -1,3 +1,3 @@
310-version = 1.5.12
311+version = 1.5.13
312 date = 2013-08-21
313
314
315=== modified file 'madgraph/__init__.py'
316--- madgraph/__init__.py 2013-08-16 07:25:03 +0000
317+++ madgraph/__init__.py 2013-10-25 11:38:22 +0000
318@@ -20,14 +20,21 @@
319 """a class for the invalid syntax call"""
320
321 import os
322+import logging
323+import time
324
325 #Look for basic file position MG5DIR and MG4DIR
326 MG5DIR = os.path.realpath(os.path.join(os.path.dirname(__file__),
327 os.path.pardir))
328+if ' ' in MG5DIR:
329+ logging.critical('''\033[1;31mpath to MG5: "%s" contains space.
330+ This is likely to create code unstability.
331+ Please consider changing the path location of the code\033[0m''' % MG5DIR)
332+ time.sleep(1)
333 MG4DIR = MG5DIR
334 ReadWrite = True
335 try:
336 open(os.path.join(MG5DIR,'.test'),'w').write('test')
337 os.remove(os.path.join(MG5DIR,'.test'))
338 except IOError:
339- ReadWrite = False
340\ No newline at end of file
341+ ReadWrite = False
342
343=== modified file 'madgraph/core/diagram_generation.py'
344--- madgraph/core/diagram_generation.py 2013-03-19 08:18:53 +0000
345+++ madgraph/core/diagram_generation.py 2013-10-25 11:38:22 +0000
346@@ -1701,7 +1701,7 @@
347 # Set summed coupling order according to max_order_now
348 # subtracting the removed gluons
349 coupling_orders_now = {coupling: max_order_now - \
350- nglue}
351+ nglue * model['order_hierarchy']['QCD']}
352
353 # Setup process
354 process = base_objects.Process({\
355
356=== modified file 'madgraph/interface/madevent_interface.py'
357--- madgraph/interface/madevent_interface.py 2013-08-21 00:15:12 +0000
358+++ madgraph/interface/madevent_interface.py 2013-10-25 11:38:22 +0000
359@@ -1685,7 +1685,9 @@
360 'run_mode':2,
361 'cluster_queue':'madgraph',
362 'nb_core': None,
363- 'cluster_temp_path':None}
364+ 'cluster_temp_path':None,
365+ 'cluster_nb_retry':1,
366+ 'cluster_retry_wait':300}
367
368 helporder = ['Main commands', 'Documented commands', 'Require MG5 directory',
369 'Advanced commands']
370@@ -2196,6 +2198,14 @@
371 opt = self.options
372 self.cluster = cluster.from_name[opt['cluster_type']](\
373 opt['cluster_queue'], opt['cluster_temp_path'])
374+ self.cluster.nb_retry = self.options['cluster_nb_retry']
375+ self.cluster_retry_wait = self.options['cluster_retry_wait']
376+ elif args[0] in ['cluster_nb_retry', 'cluster_retry_wait']:
377+ self.options[args[0]] = int(args[1])
378+ if args[0] == 'cluster_nb_retry':
379+ self.cluster.nb_retry = int(args[1])
380+ else:
381+ self.cluster_retry_wait = int(args[1])
382 elif args[0] == 'nb_core':
383 if args[1] == 'None':
384 import multiprocessing
385@@ -2464,7 +2474,7 @@
386 if particle and particle not in decay_info:
387 # No decays given, only total width
388 decay_info[particle] = [[[], width]]
389- else: # Not decay
390+ else: # Not decay
391 line_number += 1
392 # Clean out possible remaining comments at the end of the card
393 while not param_card[-1] or param_card[-1].startswith('#'):
394@@ -2578,7 +2588,9 @@
395 mg5_param = pjoin(self.me_dir, 'Source', 'MODEL', 'MG5_param.dat')
396 check_param_card.convert_to_mg5card(param_card, mg5_param)
397 check_param_card.check_valid_param_card(mg5_param)
398- opt['param_card'] = pjoin(self.me_dir, 'Source', 'MODEL', 'MG5_param.dat')
399+ opt['param_card'] = pjoin(self.me_dir, 'Source', 'MODEL', 'MG5_param.dat')
400+ else:
401+ check_param_card.check_valid_param_card(opt['param_card'])
402
403 logger.debug('write compile file for card: %s' % opt['param_card'])
404 param_card = check_param_card.ParamCard(opt['param_card'])
405@@ -3654,8 +3666,7 @@
406 cwd=pjoin(self.me_dir,'Events'))
407 else:
408 delphes_log = open(pjoin(self.me_dir, 'Events', self.run_name, "%s_delphes.log" % tag),'w')
409- misc.call([prog, delphes_dir,
410- self.run_name, tag, str(cross)],
411+ misc.call([prog, delphes_dir, self.run_name, tag, str(cross)],
412 stdout= delphes_log, stderr=subprocess.STDOUT,
413 cwd=pjoin(self.me_dir,'Events'))
414
415@@ -3738,6 +3749,8 @@
416 input_files = ['madevent','input_app.txt','symfact.dat','iproc.dat',
417 pjoin(self.me_dir, 'SubProcesses','randinit')]
418 output_files = []
419+ required_output = []
420+
421
422 #Find the correct PDF input file
423 if self.pdffile:
424@@ -3771,14 +3784,17 @@
425 data = ' '.join(data).split()
426 for nb in data:
427 output_files.append('G%s' % nb)
428+ required_output.append('G%s/results.dat' % nb)
429 else:
430 for G in output_files:
431 if os.path.isdir(pjoin(cwd,G)):
432 input_files.append(G)
433+ required_output.append('%s/results.dat' % G)
434
435 #submitting
436 self.cluster.submit2(exe, stdout=stdout, cwd=cwd,
437- input_files=input_files, output_files=output_files)
438+ input_files=input_files, output_files=output_files,
439+ required_output=required_output)
440
441 else:
442 self.cluster.submit(exe, stdout=stdout, cwd=cwd)
443@@ -4989,14 +5005,15 @@
444 self.run_card = banner_mod.RunCard(pjoin(self.me_dir,'Cards','run_card.dat'))
445 run_card_def = banner_mod.RunCard(pjoin(self.me_dir,'Cards','run_card_default.dat'))
446 try:
447- self.param_card = check_param_card.ParamCard(pjoin(self.me_dir,'Cards','param_card.dat'))
448- except check_param_card.InvalidParamCard:
449+ self.param_card = check_param_card.ParamCard(pjoin(self.me_dir,'Cards','param_card.dat'))
450+ except (check_param_card.InvalidParamCard, ValueError) as e:
451 logger.error('Current param_card is not valid. We are going to use the default one.')
452+ logger.error('problem detected: %s' % e)
453 files.cp(pjoin(self.me_dir,'Cards','param_card_default.dat'),
454 pjoin(self.me_dir,'Cards','param_card.dat'))
455 self.param_card = check_param_card.ParamCard(pjoin(self.me_dir,'Cards','param_card.dat'))
456+
457 default_param = check_param_card.ParamCard(pjoin(self.me_dir,'Cards','param_card_default.dat'))
458-
459 self.pname2block = {}
460 self.conflict = []
461 self.restricted_value = {}
462@@ -5157,6 +5174,10 @@
463 logging.info('replace %s by the default card' % args[0])
464 files.cp(pjoin(self.me_dir,'Cards','%s_default.dat' % args[0]),
465 pjoin(self.me_dir,'Cards','%s.dat'% args[0]))
466+ if args[0] == 'param_card':
467+ self.param_card = check_param_card.ParamCard(pjoin(self.me_dir,'Cards','param_card.dat'))
468+ elif args[0] == 'run_card':
469+ self.run_card = banner_mod.RunCard(pjoin(self.me_dir,'Cards','run_card.dat'))
470 return
471 else:
472 card = args[0]
473
474=== modified file 'madgraph/interface/madgraph_interface.py'
475--- madgraph/interface/madgraph_interface.py 2013-08-16 07:25:03 +0000
476+++ madgraph/interface/madgraph_interface.py 2013-10-25 11:38:22 +0000
477@@ -21,6 +21,7 @@
478 import optparse
479 import os
480 import pydoc
481+import random
482 import re
483 import signal
484 import subprocess
485@@ -1003,7 +1004,7 @@
486 forbiden_chars = ['>','<',';','&']
487 for char in forbiden_chars:
488 if char in path:
489- raise self.invalidCmd('%s is not allowed in the output path' % char)
490+ raise self.InvalidCmd('%s is not allowed in the output path' % char)
491 # Check for special directory treatment
492 if path == 'auto' and self._export_format in \
493 ['madevent', 'standalone', 'standalone_cpp']:
494@@ -1794,6 +1795,8 @@
495 'cluster_type': 'condor',
496 'cluster_temp_path': None,
497 'cluster_queue': None,
498+ 'cluster_nb_retry':1,
499+ 'cluster_retry_wait':300
500 }
501
502 options_madgraph= {'group_subprocesses': 'Auto',
503@@ -3062,11 +3065,21 @@
504 # Load file with path of the different program:
505 import urllib
506 path = {}
507- try:
508- data = urllib.urlopen('http://madgraph.phys.ucl.ac.be/package_info.dat')
509- except:
510- raise MadGraph5Error, '''Impossible to connect the server.
511+ data_path = ['http://madgraph.phys.ucl.ac.be/package_info.dat',
512+ 'http://madgraph.hep.uiuc.edu/package_info.dat']
513+ r = random.randint(0,1)
514+ r = [r, (1-r)]
515+ for index in r:
516+ cluster_path = data_path[index]
517+ try:
518+ data = urllib.urlopen(cluster_path)
519+ except Exception:
520+ continue
521+ break
522+ else:
523+ raise MadGraph5Error, '''Impossible to connect any of us servers.
524 Please check your internet connection or retry later'''
525+
526 for line in data:
527 split = line.split()
528 path[split[0]] = split[1]
529@@ -3908,7 +3921,8 @@
530 self.options['fortran_compiler'] = args[1]
531 else:
532 self.options['fortran_compiler'] = None
533- elif args[0] in ['timeout', 'auto_update']:
534+ elif args[0] in ['timeout', 'auto_update', 'cluster_nb_retry',
535+ 'cluster_retry_wait']:
536 self.options[args[0]] = int(args[1])
537 elif args[0] in self.options:
538 if args[1] in ['None','True','False']:
539
540=== modified file 'madgraph/iolibs/export_v4.py'
541--- madgraph/iolibs/export_v4.py 2013-08-16 07:25:03 +0000
542+++ madgraph/iolibs/export_v4.py 2013-10-25 11:38:22 +0000
543@@ -117,7 +117,7 @@
544 logger.info('remove old information in %s' % \
545 os.path.basename(self.dir_path))
546 if os.environ.has_key('MADGRAPH_BASE'):
547- subprocess.call([pjoin('bin', 'internal', 'clean_template'),
548+ misc.call([pjoin('bin', 'internal', 'clean_template'),
549 '--web'], cwd=self.dir_path)
550 else:
551 try:
552@@ -1118,6 +1118,9 @@
553 # Add the driver.f
554 filename = pjoin(self.dir_path,'SubProcesses','driver.f')
555 self.write_driver(writers.FortranWriter(filename))
556+ #
557+ filename = pjoin(self.dir_path,'SubProcesses','addmothers.f')
558+ self.write_addmothers(writers.FortranWriter(filename))
559 # Copy the different python file in the Template
560 self.copy_python_file()
561
562@@ -1352,8 +1355,7 @@
563 ident_perms)
564
565 filename = 'symfact_orig.dat'
566- self.write_symfact_file(writers.FortranWriter(filename),
567- symmetry)
568+ self.write_symfact_file(open(filename, 'w'), symmetry)
569
570 # Generate diagrams
571 filename = "matrix.ps"
572@@ -1461,18 +1463,18 @@
573 for Pdir in P_dir_list:
574 os.chdir(Pdir)
575 try:
576- subprocess.call([pjoin(old_pos, self.dir_path, 'bin', 'internal', 'gen_jpeg-pl')],
577+ misc.call([pjoin(old_pos, self.dir_path, 'bin', 'internal', 'gen_jpeg-pl')],
578 stdout = devnull)
579 except:
580 os.system('chmod +x %s ' % pjoin(old_pos, self.dir_path, 'bin', 'internal', '*'))
581- subprocess.call([pjoin(old_pos, self.dir_path, 'bin', 'internal', 'gen_jpeg-pl')],
582+ misc.call([pjoin(old_pos, self.dir_path, 'bin', 'internal', 'gen_jpeg-pl')],
583 stdout = devnull)
584 os.chdir(os.path.pardir)
585
586 logger.info("Generate web pages")
587 # Create the WebPage using perl script
588
589- subprocess.call([pjoin(old_pos, self.dir_path, 'bin', 'internal', 'gen_cardhtml-pl')], \
590+ misc.call([pjoin(old_pos, self.dir_path, 'bin', 'internal', 'gen_cardhtml-pl')], \
591 stdout = devnull)
592
593 os.chdir(os.path.pardir)
594@@ -1493,17 +1495,17 @@
595 output_file.write(text)
596 output_file.close()
597
598- subprocess.call([pjoin(old_pos, self.dir_path, 'bin', 'internal', 'gen_cardhtml-pl')],
599+ misc.call([pjoin(old_pos, self.dir_path, 'bin', 'internal', 'gen_cardhtml-pl')],
600 stdout = devnull)
601
602 # Run "make" to generate madevent.tar.gz file
603 if os.path.exists(pjoin('SubProcesses', 'subproc.mg')):
604 if os.path.exists('madevent.tar.gz'):
605 os.remove('madevent.tar.gz')
606- subprocess.call([os.path.join(old_pos, self.dir_path, 'bin', 'internal', 'make_madevent_tar')],
607+ misc.call([os.path.join(old_pos, self.dir_path, 'bin', 'internal', 'make_madevent_tar')],
608 stdout = devnull)
609
610- subprocess.call([pjoin(old_pos, self.dir_path, 'bin', 'internal', 'gen_cardhtml-pl')],
611+ misc.call([pjoin(old_pos, self.dir_path, 'bin', 'internal', 'gen_cardhtml-pl')],
612 stdout = devnull)
613
614 #return to the initial dir
615@@ -2048,6 +2050,20 @@
616 return True
617
618 #===========================================================================
619+ # write_addmothers
620+ #===========================================================================
621+ def write_addmothers(self, writer):
622+ """Write the SubProcess/addmothers.f"""
623+
624+ path = pjoin(_file_path,'iolibs','template_files','addmothers.f')
625+
626+ text = open(path).read() % {'iconfig': 'diag_number'}
627+ writer.write(text)
628+
629+ return True
630+
631+
632+ #===========================================================================
633 # write_combine_events
634 #===========================================================================
635 def write_combine_events(self, writer):
636@@ -2364,9 +2380,9 @@
637 # Write out lines for symswap.inc file (used to permute the
638 # external leg momenta
639 lines = [ form %(i+1, s) for i,s in enumerate(symmetry) if s != 0]
640-
641 # Write the file
642- writer.writelines(lines)
643+ writer.write('\n'.join(lines))
644+ writer.write('\n')
645
646 return True
647
648@@ -2591,8 +2607,7 @@
649 ident_perms)
650
651 filename = 'symfact_orig.dat'
652- self.write_symfact_file(writers.FortranWriter(filename),
653- symmetry)
654+ self.write_symfact_file(open(filename, 'w'), symmetry)
655
656 filename = 'symperms.inc'
657 self.write_symperms_file(writers.FortranWriter(filename),
658@@ -2717,6 +2732,20 @@
659 writer.writelines(lines)
660
661 #===========================================================================
662+ # write_addmothers
663+ #===========================================================================
664+ def write_addmothers(self, writer):
665+ """Write the SubProcess/addmothers.f"""
666+
667+ path = pjoin(_file_path,'iolibs','template_files','addmothers.f')
668+
669+ text = open(path).read() % {'iconfig': 'iconfig'}
670+ writer.write(text)
671+
672+ return True
673+
674+
675+ #===========================================================================
676 # write_coloramps_file
677 #===========================================================================
678 def write_coloramps_file(self, writer, diagrams_for_config, maxflows,
679
680=== modified file 'madgraph/iolibs/import_v4.py'
681--- madgraph/iolibs/import_v4.py 2012-04-09 16:32:56 +0000
682+++ madgraph/iolibs/import_v4.py 2013-10-25 11:38:22 +0000
683@@ -36,19 +36,23 @@
684 #===============================================================================
685 # import_v4model
686 #===============================================================================
687-def import_model(model_path, mgme_dir = MG4DIR):
688+def import_model(model_path, mgme_dir = MG4DIR, absolute=True):
689 """create a model from a MG4 model directory."""
690
691 # Check for a valid directory
692- model_path = find_model_path(model_path, mgme_dir)
693+ model_path_old = model_path
694+ model_path = find_model_path(model_path, mgme_dir, absolute)
695
696 files_list = [os.path.join(model_path, 'particles.dat'),\
697 os.path.join(model_path, 'interactions.dat')]
698
699 for filepath in files_list:
700 if not os.path.isfile(filepath):
701- raise InvalidCmd, "%s directory is not a valid v4 model" % \
702+ if not absolute:
703+ raise InvalidCmd, "%s directory is not a valid v4 model" % \
704 (model_path)
705+ else:
706+ return import_model(model_path_old, mgme_dir, False)
707
708 # use pickle files if defined
709 if files.is_uptodate(os.path.join(model_path, 'model.pkl'), files_list):
710@@ -75,11 +79,11 @@
711 return model, model_path
712
713
714-def find_model_path(model_path, mgme_dir):
715+def find_model_path(model_path, mgme_dir, absolute=True):
716 """Find the path to the model, starting with path model_path."""
717
718 # treat simple case (model_path is a valid path/ mgme_dir doesn't exist)
719- if os.path.isdir(model_path):
720+ if os.path.isdir(model_path) and absolute:
721 return model_path
722 elif mgme_dir and os.path.isdir(os.path.join(mgme_dir, 'models',
723 model_path + "_v4")):
724@@ -295,6 +299,16 @@
725 color.f(0, 3, -1)])
726 #cs3.coeff = fractions.Fraction(-1)
727 myinter.set('color', [cs1, cs2, cs3])
728+# The following line are expected to be correct but not physical validations
729+# have been performed. So we keep it commented for the moment.
730+# elif colors == [3, 3, 3]:
731+# my_color_string = color.ColorString(\
732+# [color.Epsilon(ind[0], ind[1], ind[2])])
733+# myinter.set('color', [my_color_string])
734+# elif colors == [-3, -3, -3]:
735+# my_color_string = color.ColorString(\
736+# [color.EpsilonBar(ind[0], ind[1], ind[2])])
737+# myinter.set('color', [my_color_string])
738 else:
739 logger.warning(\
740 "Color combination %s not yet implemented." % \
741
742=== renamed file 'Template/SubProcesses/addmothers.f' => 'madgraph/iolibs/template_files/addmothers.f'
743--- Template/SubProcesses/addmothers.f 2013-06-21 15:27:32 +0000
744+++ madgraph/iolibs/template_files/addmothers.f 2013-10-25 11:38:22 +0000
745@@ -26,6 +26,9 @@
746 double precision xtarget
747 data iseed/0/
748
749+ integer diag_number
750+ common/to_diag_number/diag_number
751+
752 c Variables for combination of color indices (including multipart. vert)
753 integer maxcolmp
754 parameter(maxcolmp=20)
755@@ -103,14 +106,14 @@
756 nc = int(jamp2(0))
757 maxcolor=0
758 if(nc.gt.0)then
759- if(icolamp(1,iconfig,iproc)) then
760+ if(icolamp(1,%(iconfig)s,iproc)) then
761 targetamp(1)=jamp2(1)
762 c print *,'Color flow 1 allowed for config ',iconfig
763 else
764 targetamp(1)=0d0
765 endif
766 do ic =2,nc
767- if(icolamp(ic,iconfig,iproc))then
768+ if(icolamp(ic,%(iconfig)s,iproc))then
769 targetamp(ic) = jamp2(ic)+targetamp(ic-1)
770 c print *,'Color flow ',ic,' allowed for config ',iconfig,targetamp(ic)
771 else
772
773=== modified file 'madgraph/iolibs/template_files/madevent_driver.f'
774--- madgraph/iolibs/template_files/madevent_driver.f 2012-07-12 08:31:23 +0000
775+++ madgraph/iolibs/template_files/madevent_driver.f 2013-10-25 11:38:22 +0000
776@@ -194,7 +194,8 @@
777 c
778 c Arguments
779 c
780- integer ncall,itmax,itmin,iconfig
781+ integer ncall,itmax,itmin,iconfig, diag_number
782+ common/to_diag_number/diag_number
783 c
784 c Local
785 c
786@@ -257,6 +258,7 @@
787 ncode=int(dlog10(3d0)*(max_particles-3))+1
788 iconfig = int(dconfig*(1+10**(-ncode)))
789 write(*,12) 'Running Configuration Number: ',iconfig
790+ diag_number = iconfig
791 c
792 c Here I want to set up with B.W. we map and which we don't
793 c
794
795=== modified file 'madgraph/various/cluster.py'
796--- madgraph/various/cluster.py 2013-04-27 14:46:18 +0000
797+++ madgraph/various/cluster.py 2013-10-25 11:38:22 +0000
798@@ -17,6 +17,7 @@
799 import os
800 import time
801 import re
802+import inspect
803
804 logger = logging.getLogger('madgraph.cluster')
805
806@@ -37,6 +38,8 @@
807
808
809 multiple_try = misc.multiple_try
810+pjoin = os.path.join
811+
812
813 def check_interupt(error=KeyboardInterrupt):
814
815@@ -50,6 +53,22 @@
816 return deco_f_interupt
817 return deco_interupt
818
819+def store_input(arg=''):
820+
821+ def deco_store(f):
822+ def deco_f_store(self, prog, argument=[], cwd=None, stdout=None, stderr=None, log=None,
823+ input_files=[], output_files=[], required_output=[], nb_submit=0):
824+ frame = inspect.currentframe()
825+ args, i, j, values = inspect.getargvalues(frame)
826+ args = dict([(i, values[i]) for i in args if i != 'self'])
827+ id = f(self, **args)
828+ if self.nb_retry > 0:
829+ self.retry_args[id] = args
830+ return id
831+ return deco_f_store
832+ return deco_store
833+
834+
835 class Cluster(object):
836 """Basic Class for all cluster type submission"""
837 name = 'mother class'
838@@ -61,18 +80,24 @@
839 self.finish = 0
840 self.cluster_queue = cluster_queue
841 self.temp_dir = temp_dir
842+ # attribute to relaunch jobs if they failed to produce expected data
843+ self.nb_retry = 1
844+ self.retry_args = {}
845
846- def submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, log=None):
847+ def submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None,
848+ log=None, required_output=[], nb_submit=0):
849 """How to make one submission. Return status id on the cluster."""
850 raise NotImplemented, 'No implementation of how to submit a job to cluster \'%s\'' % self.name
851
852+ @store_input()
853 def submit2(self, prog, argument=[], cwd=None, stdout=None, stderr=None,
854- log=None, input_files=[], output_files=[]):
855+ log=None, input_files=[], output_files=[], required_output=[],nb_submit=0):
856 """How to make one submission. Return status id on the cluster.
857 NO SHARE DISK"""
858
859 if not hasattr(self, 'temp_dir') or not self.temp_dir:
860- return self.submit(prog, argument, cwd, stdout, stderr, log)
861+ return self.submit(prog, argument, cwd, stdout, stderr, log,
862+ required_output=required_output, nb_submit=nb_submit)
863 print self.temp_dir
864 if cwd is None:
865 cwd = os.getcwd()
866@@ -111,7 +136,8 @@
867 open(new_prog, 'w').write(text % dico)
868 misc.Popen(['chmod','+x',new_prog],cwd=cwd)
869
870- return self.submit(new_prog, argument, cwd, stdout, stderr, log)
871+ return self.submit(new_prog, argument, cwd, stdout, stderr, log,
872+ required_output=required_output, nb_submit=nb_submit)
873
874
875 def control(self, me_dir=None):
876@@ -146,14 +172,79 @@
877 if fail:
878 raise ClusterManagmentError('Some Jobs are in a Hold/... state. Please try to investigate or contact the IT team')
879 if idle + run == 0:
880- time.sleep(20) #security to ensure that the file are really written on the disk
881+ #time.sleep(20) #security to ensure that the file are really written on the disk
882 logger.info('All jobs finished')
883 break
884 fct(idle, run, finish)
885 time.sleep(30)
886 self.submitted = 0
887 self.submitted_ids = []
888-
889+
890+ def check_termination(self, job_id):
891+ """Check the termination of the jobs with job_id and relaunch it if needed."""
892+
893+ if job_id not in self.retry_args:
894+ return True
895+
896+ args = self.retry_args[job_id]
897+ if 'time_check' in args:
898+ time_check = args['time_check']
899+ else:
900+ time_check = 0
901+
902+ for path in args['required_output']:
903+ if args['cwd']:
904+ path = pjoin(args['cwd'], path)
905+ if not os.path.exists(path):
906+ break
907+ else:
908+ # all requested output are present
909+ if time_check > 0:
910+ logger.info('Job %s Finally found the missing output.' % (job_id))
911+ del self.retry_args[job_id]
912+ self.submitted_ids.remove(job_id)
913+ return True
914+
915+ if time_check == 0:
916+ logger.warning('''Job %s failed to produce expected output. Waiting for filesystem update.\nMissing file:\n%s''' % (job_id,path))
917+ args['time_check'] = time.time()
918+ return 'wait'
919+ elif self.cluster_retry_wait < time.time() - time_check:
920+ return 'wait'
921+
922+
923+ #jobs failed to be completed even after waiting time!!
924+ if self.nb_retry < 0:
925+ logger.critical('''Fail to run correctly job %s.
926+ with option: %s
927+ file missing: %s''' % (job_id, args, path))
928+ raw_input('press enter to continue.')
929+ elif self.nb_retry == 0:
930+ logger.critical('''Fail to run correctly job %s.
931+ with option: %s
932+ file missing: %s
933+ Stopping all runs.''' % (job_id, args, path))
934+ self.remove()
935+ elif args['nb_submit'] >= self.nb_retry:
936+ logger.critical('''Fail to run correctly job %s.
937+ with option: %s
938+ file missing: %s
939+ Fails %s times
940+ Stopping all runs.''' % (job_id, args, path, args['nb_submit']))
941+ self.remove()
942+ else:
943+ args['nb_submit'] += 1
944+ logger.warning('resubmit job (for the %s times)' % args['nb_submit'])
945+ del self.retry_args[job_id]
946+ self.submitted_ids.remove(job_id)
947+ if 'time_check' in args:
948+ del args['time_check']
949+ self.submit2(**args)
950+ return 'resubmit'
951+ return 'done'
952+
953+
954+
955 @check_interupt()
956 def launch_and_wait(self, prog, argument=[], cwd=None, stdout=None,
957 stderr=None, log=None):
958@@ -203,7 +294,8 @@
959 job_id = 'CONDOR_ID'
960
961 @multiple_try()
962- def submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, log=None):
963+ def submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, log=None,
964+ required_output=[], nb_submit=0):
965 """Submit a job prog to a Condor cluster"""
966
967 text = """Executable = %(prog)s
968@@ -261,9 +353,11 @@
969 self.submitted_ids.append(id)
970 return id
971
972+ @store_input()
973 @multiple_try()
974 def submit2(self, prog, argument=[], cwd=None, stdout=None, stderr=None,
975- log=None, input_files=[], output_files=[]):
976+ log=None, input_files=[], output_files=[], required_output=[],
977+ nb_submit=0):
978 """Submit the job on the cluster NO SHARE DISK
979 input/output file should be give relative to cwd
980 """
981@@ -363,12 +457,14 @@
982 return 0, 0, 0, 0
983
984 packet = 15000
985+ idle, run, fail = 0, 0, 0
986+ ongoing = []
987 for i in range(1+(len(self.submitted_ids)-1)//packet):
988 start = i * packet
989 stop = (i+1) * packet
990- cmd = "condor_q " + ' '.join(self.submitted_ids[start:stop]) + " -format \'%-2s \\n\' \'ifThenElse(JobStatus==0,\"U\",ifThenElse(JobStatus==1,\"I\",ifThenElse(JobStatus==2,\"R\",ifThenElse(JobStatus==3,\"X\",ifThenElse(JobStatus==4,\"C\",ifThenElse(JobStatus==5,\"H\",ifThenElse(JobStatus==6,\"E\",string(JobStatus))))))))\'"
991-
992-
993+ cmd = "condor_q " + ' '.join(self.submitted_ids[start:stop]) + \
994+ " -format \'%-2s\ ' \'ClusterId\' " + \
995+ " -format \'%-2s \\n\' \'ifThenElse(JobStatus==0,\"U\",ifThenElse(JobStatus==1,\"I\",ifThenElse(JobStatus==2,\"R\",ifThenElse(JobStatus==3,\"X\",ifThenElse(JobStatus==4,\"C\",ifThenElse(JobStatus==5,\"H\",ifThenElse(JobStatus==6,\"E\",string(JobStatus))))))))\'"
996
997 status = misc.Popen([cmd], shell=True, stdout=subprocess.PIPE,
998 stderr=subprocess.PIPE)
999@@ -376,10 +472,9 @@
1000 if status.returncode or error:
1001 raise ClusterManagmentError, 'condor_q returns error: %s' % error
1002
1003-
1004- idle, run, fail = 0, 0, 0
1005 for line in status.stdout:
1006- status = line.strip()
1007+ id, status = line.strip().split()
1008+ ongoing.append(int(id))
1009 if status in ['I','U']:
1010 idle += 1
1011 elif status == 'R':
1012@@ -387,6 +482,14 @@
1013 elif status != 'C':
1014 fail += 1
1015
1016+ for id in list(self.submitted_ids):
1017+ if id not in ongoing:
1018+ status = self.check_termination(id)
1019+ if status == 'wait':
1020+ run += 1
1021+ elif status == 'resubmit':
1022+ idle += 1
1023+
1024 return idle, run, self.submitted - (idle+run+fail), fail
1025
1026 @multiple_try()
1027@@ -409,7 +512,8 @@
1028 complete_tag = ['C']
1029
1030 @multiple_try()
1031- def submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, log=None):
1032+ def submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, log=None,
1033+ required_output=[], nb_submit=0):
1034 """Submit a job prog to a PBS cluster"""
1035
1036 me_dir = os.path.realpath(os.path.join(cwd,prog)).rsplit('/SubProcesses',1)[0]
1037@@ -479,7 +583,7 @@
1038 return 'R'
1039 return 'F'
1040
1041-
1042+
1043 @multiple_try()
1044 def control(self, me_dir):
1045 """ control the status of a single job with it's cluster id """
1046@@ -491,19 +595,30 @@
1047 me_dir = hashlib.md5(me_dir).hexdigest()[-14:]
1048 if not me_dir[0].isalpha():
1049 me_dir = 'a' + me_dir[1:]
1050-
1051+
1052+ ongoing = []
1053 idle, run, fail = 0, 0, 0
1054 for line in status.stdout:
1055 if me_dir in line:
1056+ ongoing.append(line.split()[0].split('.')[0])
1057 status = line.split()[4]
1058 if status in self.idle_tag:
1059 idle += 1
1060 elif status in self.running_tag:
1061 run += 1
1062 elif status in self.complete_tag:
1063- continue
1064+ if not self.check_termination(line.split()[0].split('.')[0]):
1065+ idle += 1
1066 else:
1067 fail += 1
1068+
1069+ for id in list(self.submitted_ids):
1070+ if id not in ongoing:
1071+ status = self.check_termination(id)
1072+ if status == 'wait':
1073+ run += 1
1074+ elif status == 'resubmit':
1075+ idle += 1
1076
1077 return idle, run, self.submitted - (idle+run+fail), fail
1078
1079@@ -535,7 +650,8 @@
1080 return location
1081
1082 @multiple_try()
1083- def submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, log=None):
1084+ def submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, log=None,
1085+ required_output=[], nb_submit=0):
1086 """Submit a job prog to an SGE cluster"""
1087
1088 me_dir = os.path.realpath(os.path.join(cwd,prog)).rsplit('/SubProcesses',1)[0]
1089@@ -673,7 +789,8 @@
1090 job_id = 'LSB_JOBID'
1091
1092 @multiple_try()
1093- def submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, log=None):
1094+ def submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, log=None,
1095+ required_output=[], nb_submit=0):
1096 """Submit the job prog to an LSF cluster"""
1097
1098 me_dir = os.path.realpath(os.path.join(cwd,prog)).rsplit('/SubProcesses',1)[0]
1099@@ -771,7 +888,11 @@
1100 elif status == 'PEND':
1101 idle += 1
1102 elif status == 'DONE':
1103- self.submitted_ids.remove(id)
1104+ status = self.check_termination(id)
1105+ if status == 'wait':
1106+ run += 1
1107+ elif status == 'resubmit':
1108+ idle += 1
1109 else:
1110 fail += 1
1111
1112@@ -795,7 +916,8 @@
1113 running_tag = ['r']
1114
1115 @multiple_try()
1116- def submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, log=None):
1117+ def submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, log=None,
1118+ required_output=[], nb_submit=0):
1119 """Submit a job prog to a GE cluster"""
1120
1121 text = ""
1122@@ -893,8 +1015,10 @@
1123 run += 1
1124 if statusflag == 'sh':
1125 fail += 1
1126-
1127- self.submitted_ids = ongoing
1128+ for id in list(self.submitted_ids):
1129+ if id not in ongoing:
1130+ self.check_termination(id)
1131+ #self.submitted_ids = ongoing
1132
1133 return idle, run, self.submitted - idle - run - fail, fail
1134
1135@@ -917,7 +1041,8 @@
1136 complete_tag = ['C']
1137
1138 @multiple_try()
1139- def submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, log=None):
1140+ def submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, log=None,
1141+ required_output=[], nb_submit=0):
1142 """Submit a job prog to a SLURM cluster"""
1143
1144 me_dir = os.path.realpath(os.path.join(cwd,prog)).rsplit('/SubProcesses',1)[0]
1145@@ -939,7 +1064,7 @@
1146
1147 command = ['sbatch','-o', stdout,
1148 '-J', me_dir,
1149- '-e', stderr, prog]
1150+ '-e', stderr, prog] + argument
1151
1152 a = misc.Popen(command, stdout=subprocess.PIPE,
1153 stderr=subprocess.STDOUT,
1154@@ -1009,7 +1134,6 @@
1155 if not self.submitted_ids:
1156 return
1157 cmd = "scancel %s" % ' '.join(self.submitted_ids)
1158- print 'cmd = ',cmd
1159 status = misc.Popen([cmd], shell=True, stdout=open(os.devnull,'w'))
1160
1161
1162
1163=== modified file 'madgraph/various/misc.py'
1164--- madgraph/various/misc.py 2013-07-29 19:12:10 +0000
1165+++ madgraph/various/misc.py 2013-10-25 11:38:22 +0000
1166@@ -479,7 +479,7 @@
1167
1168 # first for eps_viewer
1169 if not cls.eps_viewer:
1170- cls.eps_viewer = cls.find_valid(['gv', 'ggv', 'evince'], 'eps viewer')
1171+ cls.eps_viewer = cls.find_valid(['evince','gv', 'ggv'], 'eps viewer')
1172
1173 # Second for web browser
1174 if not cls.web_browser:
1175
1176=== modified file 'models/EWdim6/EWdim6.log'
1177--- models/EWdim6/EWdim6.log 2013-01-23 01:06:16 +0000
1178+++ models/EWdim6/EWdim6.log 2013-10-25 11:38:22 +0000
1179@@ -1,13 +1,13 @@
1180-# This file was automatically created by FeynRules 1.7.127
1181+# This file was automatically created by FeynRules 2.1.0
1182 # Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
1183-# Date: Tue 22 Jan 2013 16:06:42
1184+# Date: Tue 15 Oct 2013 22:01:29
1185
1186
1187 #
1188 # This is the logfile for the model EWdim6
1189
1190 # Authors: C. Degrande
1191-# Model version: 1.0
1192+# Model version: 1.1
1193 # Checking the Quantum numbers
1194 * Electric charge defined.
1195 # Checking the Lagrangians
1196@@ -24,6 +24,7 @@
1197 * Assigned PDG number 9000003 to particle ghWp
1198 * Assigned PDG number 9000004 to particle ghWm
1199 * Assigned PDG number 9000005 to particle ghG
1200+ * Assigned PDG number 9000006 to particle h1
1201
1202
1203 # Compulsory PDG codes:
1204@@ -40,36 +41,42 @@
1205 * Parameter CBL2 has no value. Default value 1 assigned.
1206 * Parameter CPWWWL2 has no value. Default value 1 assigned.
1207 * Parameter CPWL2 has no value. Default value 1 assigned.
1208+ * Parameter CphidL2 has no value. Default value 1 assigned.
1209+ * Parameter CphiWL2 has no value. Default value 1 assigned.
1210+ * Parameter CphiBL2 has no value. Default value 1 assigned.
1211+ * Parameter lam has no value. Default value 1 assigned.
1212+ * Parameter muH has no value. Default value 1 assigned.
1213
1214
1215 # Vertices
1216 * Calling FeynmanRules for 1 Lagrangians.
1217- * Number of classes vertices: 58
1218- * Number of flavored vertices: 96
1219+ * Number of classes vertices: 61
1220+ * Number of flavored vertices: 101
1221 * Saved vertices in InterfaceRun[ 1 ].
1222 * Checked QNumber conservation.
1223 - Quantum number GhostNumber conserved in all vertices.
1224 - Quantum number LeptonNumber conserved in all vertices.
1225 - Quantum number Q conserved in all vertices.
1226+ - Quantum number Y conserved in all vertices.
1227 * particles.py written.
1228 * parameters.py written.
1229 #
1230 # Vertex definitions
1231 #
1232
1233- * 96 vertices written.
1234+ * 101 vertices written.
1235 * vertices.py written.
1236 #
1237 # Lorentz structure definitions
1238 #
1239
1240- * 81 lorentz structures written.
1241+ * 80 lorentz structures written.
1242 * lorentz.py written.
1243 #
1244 # Coupling definitions
1245 #
1246
1247- * 140 couplings written.
1248+ * 153 couplings written.
1249 * couplings.py written.
1250 #
1251 # Coupling order definitions
1252@@ -81,7 +88,7 @@
1253 # Decay definitions
1254 #
1255
1256- * 6 decays written.
1257+ * 8 decays written.
1258 * decay.py not written
1259 #
1260 # CTCoupling definitions
1261
1262=== modified file 'models/EWdim6/__init__.py'
1263--- models/EWdim6/__init__.py 2013-01-19 17:33:23 +0000
1264+++ models/EWdim6/__init__.py 2013-10-25 11:38:22 +0000
1265@@ -6,6 +6,7 @@
1266 import vertices
1267 import coupling_orders
1268 import write_param_card
1269+import propagators
1270
1271
1272 all_particles = particles.all_particles
1273@@ -15,17 +16,14 @@
1274 all_parameters = parameters.all_parameters
1275 all_orders = coupling_orders.all_orders
1276 all_functions = function_library.all_functions
1277-
1278-try:
1279- import build_restrict
1280-except ImportError:
1281- pass
1282-try:
1283- import decays
1284-except ImportError:
1285- pass
1286-else:
1287- all_decays = decays.all_decays
1288+all_propagators = propagators.all_propagators
1289+
1290+try:
1291+ import build_restrict
1292+except ImportError:
1293+ pass
1294+
1295+
1296 try:
1297 import form_factors
1298 except ImportError:
1299@@ -33,10 +31,17 @@
1300 else:
1301 all_form_factors = form_factors.all_form_factors
1302
1303+try:
1304+ import CT_vertices
1305+except ImportError:
1306+ pass
1307+else:
1308+ all_CTvertices = CT_vertices.all_CTvertices
1309+
1310
1311 gauge = [0]
1312
1313
1314 __author__ = "C. Degrande"
1315-__date__ = "05.03. 2012"
1316-__version__= "1.0"
1317+__date__ = "08.04. 2013"
1318+__version__= "1.1"
1319
1320=== modified file 'models/EWdim6/build_restrict.py'
1321--- models/EWdim6/build_restrict.py 2013-01-19 17:33:23 +0000
1322+++ models/EWdim6/build_restrict.py 2013-10-25 11:38:22 +0000
1323@@ -38,11 +38,11 @@
1324 ('WOLFENSTEIN',[4], 0.0)]
1325 )
1326
1327-#first_category.add_options(name='c mass = 0', # name
1328-# default=True, # default
1329-# rules=[('MASS',[4], 0.0),
1330-# ('YUKAWA',[4], 0.0)]
1331-# )
1332+first_category.add_options(name='c mass = 0', # name
1333+ default=True, # default
1334+ rules=[('MASS',[4], 0.0),
1335+ ('YUKAWA',[4], 0.0)]
1336+ )
1337
1338 first_category.add_options(name='b mass = 0',
1339 default=False,
1340@@ -56,11 +56,11 @@
1341 ('YUKAWA',[15], 0.0)]
1342 )
1343
1344-#first_category.add_options(name='muon mass = 0',
1345-# default=True,
1346-# rules=[('MASS',[13], 0.0),
1347-# ('YUKAWA',[13], 0.0)]
1348-# )
1349+first_category.add_options(name='muon mass = 0',
1350+ default=True,
1351+ rules=[('MASS',[13], 0.0),
1352+ ('YUKAWA',[13], 0.0)]
1353+ )
1354
1355 #first_category.add_options(name='electron mass = 0',
1356 # default=True,
1357@@ -101,5 +101,20 @@
1358 rules=[('DIM6',[5], 0.0)],
1359 inverted_display=True
1360 )
1361+dim6_category.add_options(name='Cphid',
1362+ default=True,
1363+ rules=[('DIM6',[6], 0.0)],
1364+ inverted_display=True
1365+ )
1366+dim6_category.add_options(name='CphiW',
1367+ default=True,
1368+ rules=[('DIM6',[7], 0.0)],
1369+ inverted_display=True
1370+ )
1371+dim6_category.add_options(name='CphiB',
1372+ default=True,
1373+ rules=[('DIM6',[8], 0.0)],
1374+ inverted_display=True
1375+ )
1376
1377
1378
1379=== modified file 'models/EWdim6/coupling_orders.py'
1380--- models/EWdim6/coupling_orders.py 2013-01-23 01:06:16 +0000
1381+++ models/EWdim6/coupling_orders.py 2013-10-25 11:38:22 +0000
1382@@ -1,6 +1,6 @@
1383-# This file was automatically created by FeynRules 1.7.127
1384+# This file was automatically created by FeynRules 2.1.0
1385 # Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
1386-# Date: Tue 22 Jan 2013 16:20:55
1387+# Date: Tue 15 Oct 2013 22:07:41
1388
1389
1390 from object_library import all_orders, CouplingOrder
1391@@ -12,9 +12,17 @@
1392
1393 QCD = CouplingOrder(name = 'QCD',
1394 expansion_order = 99,
1395- hierarchy = 1)
1396+ hierarchy = 2)
1397
1398 QED = CouplingOrder(name = 'QED',
1399 expansion_order = 99,
1400+ hierarchy = 4)
1401+
1402+HIG = CouplingOrder(name = 'HIG',
1403+ expansion_order = 1,
1404+ hierarchy = 2)
1405+
1406+HIW = CouplingOrder(name = 'HIW',
1407+ expansion_order = 1,
1408 hierarchy = 2)
1409
1410
1411=== modified file 'models/EWdim6/couplings.py'
1412--- models/EWdim6/couplings.py 2013-01-23 01:06:16 +0000
1413+++ models/EWdim6/couplings.py 2013-10-25 11:38:22 +0000
1414@@ -1,6 +1,6 @@
1415-# This file was automatically created by FeynRules 1.7.127
1416+# This file was automatically created by FeynRules 2.1.0
1417 # Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
1418-# Date: Tue 22 Jan 2013 16:20:55
1419+# Date: Tue 15 Oct 2013 22:07:41
1420
1421
1422 from object_library import all_couplings, Coupling
1423@@ -10,562 +10,614 @@
1424
1425
1426 GC_1 = Coupling(name = 'GC_1',
1427- value = '-(ee*complex(0,1))/3.',
1428- order = {'QED':1})
1429+ value = '-(AH*complex(0,1))',
1430+ order = {'HIW':1})
1431
1432 GC_2 = Coupling(name = 'GC_2',
1433- value = '(2*ee*complex(0,1))/3.',
1434- order = {'QED':1})
1435+ value = '-(CphidL2*complex(0,1))/250000.',
1436+ order = {'NP':2,'QED':2})
1437
1438 GC_3 = Coupling(name = 'GC_3',
1439- value = '-(ee*complex(0,1))',
1440+ value = '-(ee*complex(0,1))/3.',
1441 order = {'QED':1})
1442
1443 GC_4 = Coupling(name = 'GC_4',
1444- value = '-G',
1445- order = {'QCD':1})
1446+ value = '(2*ee*complex(0,1))/3.',
1447+ order = {'QED':1})
1448
1449 GC_5 = Coupling(name = 'GC_5',
1450- value = 'complex(0,1)*G',
1451- order = {'QCD':1})
1452+ value = '-(ee*complex(0,1))',
1453+ order = {'QED':1})
1454
1455 GC_6 = Coupling(name = 'GC_6',
1456- value = 'complex(0,1)*G**2',
1457- order = {'QCD':2})
1458+ value = 'ee*complex(0,1)',
1459+ order = {'QED':1})
1460
1461 GC_7 = Coupling(name = 'GC_7',
1462- value = 'cw*complex(0,1)*gw',
1463- order = {'QED':1})
1464+ value = '-(CPWL2*ee*complex(0,1))/2.e6',
1465+ order = {'NP':2})
1466
1467 GC_8 = Coupling(name = 'GC_8',
1468- value = '(CPWL2*cw*complex(0,1)*gw)/4.e6',
1469- order = {'NP':2})
1470+ value = 'ee**2*complex(0,1)',
1471+ order = {'QED':2})
1472
1473 GC_9 = Coupling(name = 'GC_9',
1474- value = '-(CPWL2*cw**2*complex(0,1)*g1*gw)/8.e6',
1475+ value = '-(CphiBL2*ee**2*complex(0,1))/1.e6 - (CphiWL2*ee**2*complex(0,1))/500000.',
1476 order = {'NP':2,'QED':1})
1477
1478 GC_10 = Coupling(name = 'GC_10',
1479- value = '-(complex(0,1)*gw**2)',
1480- order = {'QED':2})
1481+ value = '-G',
1482+ order = {'QCD':1})
1483
1484 GC_11 = Coupling(name = 'GC_11',
1485- value = '(CPWL2*complex(0,1)*gw**2)/4.e6',
1486- order = {'NP':2,'QED':1})
1487+ value = 'complex(0,1)*G',
1488+ order = {'QCD':1})
1489
1490 GC_12 = Coupling(name = 'GC_12',
1491- value = 'cw**2*complex(0,1)*gw**2',
1492- order = {'QED':2})
1493+ value = 'complex(0,1)*G**2',
1494+ order = {'QCD':2})
1495
1496 GC_13 = Coupling(name = 'GC_13',
1497- value = '(CWL2*complex(0,1)*gw**2)/4.e6',
1498- order = {'NP':2,'QED':1})
1499+ value = '-(complex(0,1)*GH)',
1500+ order = {'HIG':1})
1501
1502 GC_14 = Coupling(name = 'GC_14',
1503- value = '-(CBL2*cw*complex(0,1)*g1*gw**2)/4.e6',
1504- order = {'NP':2,'QED':2})
1505+ value = '-(G*GH)',
1506+ order = {'HIG':1,'QCD':1})
1507
1508 GC_15 = Coupling(name = 'GC_15',
1509- value = '(CPWL2*cw*complex(0,1)*g1*gw**2)/4.e6',
1510- order = {'NP':2,'QED':2})
1511+ value = 'complex(0,1)*G**2*GH',
1512+ order = {'HIG':1,'QCD':2})
1513
1514 GC_16 = Coupling(name = 'GC_16',
1515- value = '-(cw*CWL2*complex(0,1)*g1*gw**2)/4.e6',
1516- order = {'NP':2,'QED':2})
1517+ value = '-6*complex(0,1)*lam',
1518+ order = {'QED':2})
1519
1520 GC_17 = Coupling(name = 'GC_17',
1521- value = '-(CPWL2*cw*complex(0,1)*gw**3)/4.e6',
1522- order = {'NP':2,'QED':2})
1523+ value = '-(CphiWL2*ee**4*complex(0,1))/(500000.*sw**4) + (CWL2*ee**4*complex(0,1))/(2.e6*sw**4)',
1524+ order = {'NP':2,'QED':3})
1525
1526 GC_18 = Coupling(name = 'GC_18',
1527- value = '(CPWWWL2*cw*complex(0,1)*gw**3)/4.e6',
1528- order = {'NP':2})
1529+ value = '(CphiWL2*cw*ee**3*complex(0,1))/(500000.*sw**3) - (cw*CWL2*ee**3*complex(0,1))/(4.e6*sw**3)',
1530+ order = {'NP':2,'QED':2})
1531
1532 GC_19 = Coupling(name = 'GC_19',
1533- value = '-(cw*CWL2*complex(0,1)*gw**3)/4.e6',
1534- order = {'NP':2,'QED':2})
1535+ value = '-(CPWL2*ee**2*complex(0,1))/2.e6 - (CPWL2*cw**2*ee**2*complex(0,1))/(2.e6*sw**2)',
1536+ order = {'NP':2,'QED':1})
1537
1538 GC_20 = Coupling(name = 'GC_20',
1539- value = '(3*cw*CWWWL2*complex(0,1)*gw**3)/2.e6',
1540- order = {'NP':2})
1541+ value = '(CphiWL2*cw**2*ee**4*complex(0,1))/(500000.*sw**4) - (cw**2*CWL2*ee**4*complex(0,1))/(2.e6*sw**4) - (CWL2*ee**4*complex(0,1))/(2.e6*sw**2)',
1542+ order = {'NP':2,'QED':3})
1543
1544 GC_21 = Coupling(name = 'GC_21',
1545- value = '-(CPWWWL2*complex(0,1)*gw**4)/2.e6',
1546- order = {'NP':2,'QED':1})
1547+ value = '-(CphiWL2*cw*ee**4*complex(0,1))/(250000.*sw**3) + (cw*CWL2*ee**4*complex(0,1))/(2.e6*sw**3) + (CWL2*ee**4*complex(0,1))/(2.e6*cw*sw)',
1548+ order = {'NP':2,'QED':3})
1549
1550 GC_22 = Coupling(name = 'GC_22',
1551- value = '(CPWWWL2*cw**2*complex(0,1)*gw**4)/2.e6',
1552- order = {'NP':2,'QED':1})
1553+ value = '(3*cw**2*CWWWL2*ee**6*complex(0,1))/(500000.*sw**6)',
1554+ order = {'NP':2,'QED':3})
1555
1556 GC_23 = Coupling(name = 'GC_23',
1557- value = '(CWL2*complex(0,1)*gw**4)/2.e6',
1558- order = {'NP':2,'QED':3})
1559+ value = '-(CPWWWL2*cw*ee**5*complex(0,1))/(500000.*sw**5)',
1560+ order = {'NP':2,'QED':2})
1561
1562 GC_24 = Coupling(name = 'GC_24',
1563- value = '(-3*CWWWL2*complex(0,1)*gw**4)/2.e6',
1564- order = {'NP':2,'QED':1})
1565+ value = '-(CPWWWL2*cw**3*ee**5*complex(0,1))/(500000.*sw**5)',
1566+ order = {'NP':2,'QED':2})
1567
1568 GC_25 = Coupling(name = 'GC_25',
1569- value = '(3*cw**2*CWWWL2*complex(0,1)*gw**4)/2.e6',
1570- order = {'NP':2,'QED':1})
1571+ value = '(-3*cw*CWWWL2*ee**5*complex(0,1))/(2.e6*sw**5)',
1572+ order = {'NP':2,'QED':2})
1573
1574 GC_26 = Coupling(name = 'GC_26',
1575- value = '-(CPWWWL2*cw*complex(0,1)*gw**5)/500000.',
1576+ value = '(-3*cw**3*CWWWL2*ee**5*complex(0,1))/(2.e6*sw**5)',
1577 order = {'NP':2,'QED':2})
1578
1579 GC_27 = Coupling(name = 'GC_27',
1580- value = '-(CPWWWL2*cw**3*complex(0,1)*gw**5)/500000.',
1581- order = {'NP':2,'QED':2})
1582+ value = '(3*cw*CWWWL2*ee**6*complex(0,1))/(500000.*sw**5)',
1583+ order = {'NP':2,'QED':3})
1584
1585 GC_28 = Coupling(name = 'GC_28',
1586- value = '(-3*cw*CWWWL2*complex(0,1)*gw**5)/2.e6',
1587- order = {'NP':2,'QED':2})
1588+ value = '(CPWWWL2*ee**4*complex(0,1))/(1.e6*sw**4)',
1589+ order = {'NP':2,'QED':1})
1590
1591 GC_29 = Coupling(name = 'GC_29',
1592- value = '(-3*cw**3*CWWWL2*complex(0,1)*gw**5)/2.e6',
1593- order = {'NP':2,'QED':2})
1594+ value = '-(CPWWWL2*cw**2*ee**4*complex(0,1))/(1.e6*sw**4)',
1595+ order = {'NP':2,'QED':1})
1596
1597 GC_30 = Coupling(name = 'GC_30',
1598- value = '(3*cw**2*CWWWL2*complex(0,1)*gw**6)/500000.',
1599- order = {'NP':2,'QED':3})
1600+ value = '(-3*CWWWL2*ee**4*complex(0,1))/(2.e6*sw**4)',
1601+ order = {'NP':2,'QED':1})
1602
1603 GC_31 = Coupling(name = 'GC_31',
1604- value = '-6*complex(0,1)*lam',
1605- order = {'QED':2})
1606+ value = '(3*cw**2*CWWWL2*ee**4*complex(0,1))/(2.e6*sw**4)',
1607+ order = {'NP':2,'QED':1})
1608
1609 GC_32 = Coupling(name = 'GC_32',
1610- value = '(ee**2*complex(0,1))/(2.*sw**2)',
1611- order = {'QED':2})
1612+ value = '(CPWWWL2*ee**5*complex(0,1))/(500000.*sw**4)',
1613+ order = {'NP':2,'QED':2})
1614
1615 GC_33 = Coupling(name = 'GC_33',
1616- value = '(ee*complex(0,1))/(sw*cmath.sqrt(2))',
1617- order = {'QED':1})
1618+ value = '-(CPWWWL2*cw**2*ee**5*complex(0,1))/(500000.*sw**4)',
1619+ order = {'NP':2,'QED':2})
1620
1621 GC_34 = Coupling(name = 'GC_34',
1622- value = '(CKM1x1*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1623- order = {'QED':1})
1624+ value = '(-3*CWWWL2*ee**5*complex(0,1))/(2.e6*sw**4)',
1625+ order = {'NP':2,'QED':2})
1626
1627 GC_35 = Coupling(name = 'GC_35',
1628- value = '(CKM1x2*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1629- order = {'QED':1})
1630+ value = '(-3*cw**2*CWWWL2*ee**5*complex(0,1))/(2.e6*sw**4)',
1631+ order = {'NP':2,'QED':2})
1632
1633 GC_36 = Coupling(name = 'GC_36',
1634- value = '(CKM1x3*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1635- order = {'QED':1})
1636+ value = '(3*CWWWL2*ee**6*complex(0,1))/(500000.*sw**4)',
1637+ order = {'NP':2,'QED':3})
1638
1639 GC_37 = Coupling(name = 'GC_37',
1640- value = '(CKM2x1*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1641- order = {'QED':1})
1642+ value = '(CPWL2*cw*ee**3*complex(0,1))/(2.e6*sw**3)',
1643+ order = {'NP':2,'QED':2})
1644
1645 GC_38 = Coupling(name = 'GC_38',
1646- value = '(CKM2x2*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1647- order = {'QED':1})
1648+ value = '-(CPWWWL2*cw*ee**3*complex(0,1))/(2.e6*sw**3)',
1649+ order = {'NP':2})
1650
1651 GC_39 = Coupling(name = 'GC_39',
1652- value = '(CKM2x3*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1653- order = {'QED':1})
1654+ value = '(3*cw*CWWWL2*ee**3*complex(0,1))/(2.e6*sw**3)',
1655+ order = {'NP':2})
1656
1657 GC_40 = Coupling(name = 'GC_40',
1658- value = '(CKM3x1*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1659- order = {'QED':1})
1660+ value = '(CPWWWL2*cw*ee**4*complex(0,1))/(1.e6*sw**3)',
1661+ order = {'NP':2,'QED':1})
1662
1663 GC_41 = Coupling(name = 'GC_41',
1664- value = '(CKM3x2*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1665- order = {'QED':1})
1666+ value = '(-3*cw*CWWWL2*ee**4*complex(0,1))/(2.e6*sw**3)',
1667+ order = {'NP':2,'QED':1})
1668
1669 GC_42 = Coupling(name = 'GC_42',
1670- value = '(CKM3x3*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1671- order = {'QED':1})
1672+ value = '-(CPWWWL2*cw*ee**5*complex(0,1))/(500000.*sw**3)',
1673+ order = {'NP':2,'QED':2})
1674
1675 GC_43 = Coupling(name = 'GC_43',
1676- value = '-(cw*ee*complex(0,1))/(2.*sw)',
1677- order = {'QED':1})
1678+ value = '(-3*cw*CWWWL2*ee**5*complex(0,1))/(2.e6*sw**3)',
1679+ order = {'NP':2,'QED':2})
1680
1681 GC_44 = Coupling(name = 'GC_44',
1682- value = '(cw*ee*complex(0,1))/(2.*sw)',
1683- order = {'QED':1})
1684+ value = '(ee**2*complex(0,1))/(2.*sw**2)',
1685+ order = {'QED':2})
1686
1687 GC_45 = Coupling(name = 'GC_45',
1688- value = '-(ee*complex(0,1)*sw)/(6.*cw)',
1689- order = {'QED':1})
1690+ value = '-((ee**2*complex(0,1))/sw**2)',
1691+ order = {'QED':2})
1692
1693 GC_46 = Coupling(name = 'GC_46',
1694- value = '(ee*complex(0,1)*sw)/(2.*cw)',
1695- order = {'QED':1})
1696+ value = '-(CphiWL2*ee**2*complex(0,1))/(500000.*sw**2)',
1697+ order = {'NP':2,'QED':1})
1698
1699 GC_47 = Coupling(name = 'GC_47',
1700- value = 'complex(0,1)*gw*sw',
1701- order = {'QED':1})
1702+ value = '-(CPWL2*ee**2*complex(0,1))/(2.e6*sw**2)',
1703+ order = {'NP':2,'QED':1})
1704
1705 GC_48 = Coupling(name = 'GC_48',
1706- value = '(CPWL2*complex(0,1)*gw*sw)/4.e6',
1707- order = {'NP':2})
1708+ value = '(cw**2*ee**2*complex(0,1))/sw**2',
1709+ order = {'QED':2})
1710
1711 GC_49 = Coupling(name = 'GC_49',
1712- value = '-2*cw*complex(0,1)*gw**2*sw',
1713- order = {'QED':2})
1714+ value = '(CWL2*ee**2*complex(0,1))/(4.e6*sw**2)',
1715+ order = {'NP':2,'QED':1})
1716
1717 GC_50 = Coupling(name = 'GC_50',
1718- value = '-(CPWL2*cw*complex(0,1)*gw**2*sw)/8.e6',
1719- order = {'NP':2,'QED':1})
1720+ value = '-(CBL2*ee**3*complex(0,1))/(4.e6*sw**2)',
1721+ order = {'NP':2,'QED':2})
1722
1723 GC_51 = Coupling(name = 'GC_51',
1724- value = '(CBL2*complex(0,1)*g1*gw**2*sw)/4.e6',
1725+ value = '(CphiWL2*ee**3*complex(0,1))/(500000.*sw**2)',
1726 order = {'NP':2,'QED':2})
1727
1728 GC_52 = Coupling(name = 'GC_52',
1729- value = '-(CPWL2*complex(0,1)*g1*gw**2*sw)/4.e6',
1730+ value = '(CPWL2*ee**3*complex(0,1))/(2.e6*sw**2)',
1731 order = {'NP':2,'QED':2})
1732
1733 GC_53 = Coupling(name = 'GC_53',
1734- value = '-(CWL2*complex(0,1)*g1*gw**2*sw)/4.e6',
1735- order = {'NP':2,'QED':2})
1736+ value = '-(CPWWWL2*ee**3*complex(0,1))/(2.e6*sw**2)',
1737+ order = {'NP':2})
1738
1739 GC_54 = Coupling(name = 'GC_54',
1740- value = '-(CPWL2*complex(0,1)*gw**3*sw)/4.e6',
1741+ value = '-(CWL2*ee**3*complex(0,1))/(4.e6*sw**2)',
1742 order = {'NP':2,'QED':2})
1743
1744 GC_55 = Coupling(name = 'GC_55',
1745- value = '(CPWWWL2*complex(0,1)*gw**3*sw)/4.e6',
1746+ value = '(3*CWWWL2*ee**3*complex(0,1))/(2.e6*sw**2)',
1747 order = {'NP':2})
1748
1749 GC_56 = Coupling(name = 'GC_56',
1750- value = '-(CWL2*complex(0,1)*gw**3*sw)/4.e6',
1751- order = {'NP':2,'QED':2})
1752+ value = '(CphiWL2*ee**4*complex(0,1))/(500000.*sw**2)',
1753+ order = {'NP':2,'QED':3})
1754
1755 GC_57 = Coupling(name = 'GC_57',
1756- value = '(3*CWWWL2*complex(0,1)*gw**3*sw)/2.e6',
1757- order = {'NP':2})
1758+ value = '-(CPWWWL2*ee**4*complex(0,1))/(1.e6*sw**2)',
1759+ order = {'NP':2,'QED':1})
1760
1761 GC_58 = Coupling(name = 'GC_58',
1762- value = '(CPWWWL2*cw*complex(0,1)*gw**4*sw)/2.e6',
1763+ value = '(3*CWWWL2*ee**4*complex(0,1))/(2.e6*sw**2)',
1764 order = {'NP':2,'QED':1})
1765
1766 GC_59 = Coupling(name = 'GC_59',
1767- value = '(-3*cw*CWWWL2*complex(0,1)*gw**4*sw)/2.e6',
1768- order = {'NP':2,'QED':1})
1769+ value = '-(CPWWWL2*ee**5*complex(0,1))/(500000.*sw**2)',
1770+ order = {'NP':2,'QED':2})
1771
1772 GC_60 = Coupling(name = 'GC_60',
1773- value = '(CPWWWL2*complex(0,1)*gw**5*sw)/500000.',
1774+ value = '(-3*CWWWL2*ee**5*complex(0,1))/(1.e6*sw**2)',
1775 order = {'NP':2,'QED':2})
1776
1777 GC_61 = Coupling(name = 'GC_61',
1778- value = '-(CPWWWL2*cw**2*complex(0,1)*gw**5*sw)/500000.',
1779- order = {'NP':2,'QED':2})
1780+ value = '(ee*complex(0,1))/(sw*cmath.sqrt(2))',
1781+ order = {'QED':1})
1782
1783 GC_62 = Coupling(name = 'GC_62',
1784- value = '(-3*CWWWL2*complex(0,1)*gw**5*sw)/2.e6',
1785- order = {'NP':2,'QED':2})
1786+ value = '(CKM1x1*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1787+ order = {'QED':1})
1788
1789 GC_63 = Coupling(name = 'GC_63',
1790- value = '(-3*cw**2*CWWWL2*complex(0,1)*gw**5*sw)/2.e6',
1791- order = {'NP':2,'QED':2})
1792+ value = '(CKM1x2*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1793+ order = {'QED':1})
1794
1795 GC_64 = Coupling(name = 'GC_64',
1796- value = '(3*cw*CWWWL2*complex(0,1)*gw**6*sw)/500000.',
1797- order = {'NP':2,'QED':3})
1798+ value = '(CKM1x3*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1799+ order = {'QED':1})
1800
1801 GC_65 = Coupling(name = 'GC_65',
1802- value = '-(CPWL2*complex(0,1)*g1*gw*sw**2)/8.e6',
1803- order = {'NP':2,'QED':1})
1804+ value = '(CKM2x1*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1805+ order = {'QED':1})
1806
1807 GC_66 = Coupling(name = 'GC_66',
1808- value = 'complex(0,1)*gw**2*sw**2',
1809- order = {'QED':2})
1810+ value = '(CKM2x2*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1811+ order = {'QED':1})
1812
1813 GC_67 = Coupling(name = 'GC_67',
1814- value = '(CPWWWL2*complex(0,1)*gw**4*sw**2)/2.e6',
1815- order = {'NP':2,'QED':1})
1816+ value = '(CKM2x3*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1817+ order = {'QED':1})
1818
1819 GC_68 = Coupling(name = 'GC_68',
1820- value = '(3*CWWWL2*complex(0,1)*gw**4*sw**2)/2.e6',
1821- order = {'NP':2,'QED':1})
1822+ value = '(CKM3x1*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1823+ order = {'QED':1})
1824
1825 GC_69 = Coupling(name = 'GC_69',
1826- value = '-(CPWWWL2*cw*complex(0,1)*gw**5*sw**2)/500000.',
1827- order = {'NP':2,'QED':2})
1828+ value = '(CKM3x2*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1829+ order = {'QED':1})
1830
1831 GC_70 = Coupling(name = 'GC_70',
1832- value = '(-3*cw*CWWWL2*complex(0,1)*gw**5*sw**2)/2.e6',
1833- order = {'NP':2,'QED':2})
1834+ value = '(CKM3x3*ee*complex(0,1))/(sw*cmath.sqrt(2))',
1835+ order = {'QED':1})
1836
1837 GC_71 = Coupling(name = 'GC_71',
1838- value = '(3*CWWWL2*complex(0,1)*gw**6*sw**2)/500000.',
1839- order = {'NP':2,'QED':3})
1840+ value = '-(cw*ee*complex(0,1))/(2.*sw)',
1841+ order = {'QED':1})
1842
1843 GC_72 = Coupling(name = 'GC_72',
1844- value = '-(CPWWWL2*complex(0,1)*gw**5*sw**3)/500000.',
1845- order = {'NP':2,'QED':2})
1846+ value = '(cw*ee*complex(0,1))/(2.*sw)',
1847+ order = {'QED':1})
1848
1849 GC_73 = Coupling(name = 'GC_73',
1850- value = '(-3*CWWWL2*complex(0,1)*gw**5*sw**3)/1.e6',
1851- order = {'NP':2,'QED':2})
1852+ value = '(cw*ee*complex(0,1))/sw',
1853+ order = {'QED':1})
1854
1855 GC_74 = Coupling(name = 'GC_74',
1856- value = '(cw*ee*complex(0,1))/(2.*sw) + (ee*complex(0,1)*sw)/(2.*cw)',
1857- order = {'QED':1})
1858+ value = '-(CPWL2*cw*ee*complex(0,1))/(2.e6*sw)',
1859+ order = {'NP':2})
1860
1861 GC_75 = Coupling(name = 'GC_75',
1862- value = '-(CPWL2*cw**2*complex(0,1)*gw**2)/8.e6 - (CPWL2*cw*complex(0,1)*g1*gw*sw)/8.e6',
1863- order = {'NP':2,'QED':1})
1864+ value = '(-2*cw*ee**2*complex(0,1))/sw',
1865+ order = {'QED':2})
1866
1867 GC_76 = Coupling(name = 'GC_76',
1868- value = '-(CBL2*cw*complex(0,1)*g1**2*sw)/4.e6 + (cw*CWL2*complex(0,1)*gw**2*sw)/4.e6',
1869- order = {'NP':2,'QED':1})
1870+ value = '(CBL2*ee**3*complex(0,1))/(4.e6*cw*sw)',
1871+ order = {'NP':2,'QED':2})
1872
1873 GC_77 = Coupling(name = 'GC_77',
1874- value = '-(cw**2*CWL2*complex(0,1)*gw**4)/2.e6 - (cw*CWL2*complex(0,1)*g1*gw**3*sw)/2.e6',
1875- order = {'NP':2,'QED':3})
1876+ value = '(CPWL2*ee**3*complex(0,1))/(2.e6*cw*sw)',
1877+ order = {'NP':2,'QED':2})
1878
1879 GC_78 = Coupling(name = 'GC_78',
1880- 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)',
1881- order = {'QED':2})
1882+ value = '-(CWL2*ee**3*complex(0,1))/(4.e6*cw*sw)',
1883+ order = {'NP':2,'QED':2})
1884
1885 GC_79 = Coupling(name = 'GC_79',
1886- value = '(cw**2*CWL2*complex(0,1)*gw**2)/4.e6 + (CBL2*cw*complex(0,1)*g1*gw*sw)/4.e6 + (cw*CWL2*complex(0,1)*g1*gw*sw)/4.e6 + (CBL2*complex(0,1)*g1**2*sw**2)/4.e6',
1887- order = {'NP':2,'QED':1})
1888+ value = '-(ee*complex(0,1)*sw)/(6.*cw)',
1889+ order = {'QED':1})
1890
1891 GC_80 = Coupling(name = 'GC_80',
1892- value = '-(cw**2*CWL2*complex(0,1)*g1*gw)/4.e6 + (CBL2*complex(0,1)*g1*gw*sw**2)/4.e6',
1893- order = {'NP':2,'QED':1})
1894+ value = '(ee*complex(0,1)*sw)/(2.*cw)',
1895+ order = {'QED':1})
1896
1897 GC_81 = Coupling(name = 'GC_81',
1898- value = '-(CBL2*cw**2*complex(0,1)*g1*gw)/4.e6 + (CWL2*complex(0,1)*g1*gw*sw**2)/4.e6',
1899- order = {'NP':2,'QED':1})
1900+ value = '(cw*ee*complex(0,1))/(2.*sw) + (ee*complex(0,1)*sw)/(2.*cw)',
1901+ order = {'QED':1})
1902
1903 GC_82 = Coupling(name = 'GC_82',
1904- value = '(CPWL2*cw*complex(0,1)*g1*gw*sw)/8.e6 - (CPWL2*complex(0,1)*gw**2*sw**2)/8.e6',
1905+ value = '-(CphiWL2*cw*ee**2*complex(0,1))/(500000.*sw) + (CphiBL2*ee**2*complex(0,1)*sw)/(1.e6*cw)',
1906 order = {'NP':2,'QED':1})
1907
1908 GC_83 = Coupling(name = 'GC_83',
1909- value = '(CBL2*cw**2*complex(0,1)*g1**2)/4.e6 - (CBL2*cw*complex(0,1)*g1*gw*sw)/4.e6 - (cw*CWL2*complex(0,1)*g1*gw*sw)/4.e6 + (CWL2*complex(0,1)*gw**2*sw**2)/4.e6',
1910+ value = '-(CPWL2*cw*ee**2*complex(0,1))/(2.e6*sw) - (CPWL2*ee**2*complex(0,1)*sw)/(2.e6*cw)',
1911 order = {'NP':2,'QED':1})
1912
1913 GC_84 = Coupling(name = 'GC_84',
1914- value = '-(cw**2*CWL2*complex(0,1)*g1*gw**3)/2.e6 + (cw*CWL2*complex(0,1)*gw**4*sw)/1.e6 + (CWL2*complex(0,1)*g1*gw**3*sw**2)/2.e6',
1915- order = {'NP':2,'QED':3})
1916+ value = '-(CBL2*cw*ee**2*complex(0,1))/(4.e6*sw) + (cw*CWL2*ee**2*complex(0,1))/(4.e6*sw) - (CBL2*ee**2*complex(0,1)*sw)/(4.e6*cw) + (CWL2*ee**2*complex(0,1)*sw)/(4.e6*cw)',
1917+ order = {'NP':2,'QED':1})
1918
1919 GC_85 = Coupling(name = 'GC_85',
1920- value = '(cw*CWL2*complex(0,1)*g1*gw**3*sw)/2.e6 - (CWL2*complex(0,1)*gw**4*sw**2)/2.e6',
1921- order = {'NP':2,'QED':3})
1922+ 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)',
1923+ order = {'QED':2})
1924
1925 GC_86 = Coupling(name = 'GC_86',
1926- value = '-(CPWL2*cw**2*complex(0,1)*g1*gw*v)/8.e6',
1927- order = {'NP':2})
1928+ value = '(CBL2*ee**2*complex(0,1))/4.e6 + (CWL2*ee**2*complex(0,1))/4.e6 + (cw**2*CWL2*ee**2*complex(0,1))/(4.e6*sw**2) + (CBL2*ee**2*complex(0,1)*sw**2)/(4.e6*cw**2)',
1929+ order = {'NP':2,'QED':1})
1930
1931 GC_87 = Coupling(name = 'GC_87',
1932- value = '(CPWL2*complex(0,1)*gw**2*v)/4.e6',
1933- order = {'NP':2})
1934+ value = '-(CphiWL2*cw**2*ee**2*complex(0,1))/(500000.*sw**2) - (CphiBL2*ee**2*complex(0,1)*sw**2)/(1.e6*cw**2)',
1935+ order = {'NP':2,'QED':1})
1936
1937 GC_88 = Coupling(name = 'GC_88',
1938- value = '(CWL2*complex(0,1)*gw**2*v)/4.e6',
1939- order = {'NP':2})
1940+ value = '-(CphidL2*complex(0,1)*vev)/250000.',
1941+ order = {'NP':2,'QED':1})
1942
1943 GC_89 = Coupling(name = 'GC_89',
1944- value = '-(CBL2*cw*complex(0,1)*g1*gw**2*v)/4.e6',
1945- order = {'NP':2,'QED':1})
1946+ value = '-6*complex(0,1)*lam*vev',
1947+ order = {'QED':1})
1948
1949 GC_90 = Coupling(name = 'GC_90',
1950- value = '(CPWL2*cw*complex(0,1)*g1*gw**2*v)/4.e6',
1951+ value = '(CPWL2*cw*ee**3*complex(0,1)*vev)/(2.e6*sw**3)',
1952 order = {'NP':2,'QED':1})
1953
1954 GC_91 = Coupling(name = 'GC_91',
1955- value = '-(cw*CWL2*complex(0,1)*g1*gw**2*v)/4.e6',
1956- order = {'NP':2,'QED':1})
1957+ value = '(ee**2*complex(0,1)*vev)/(2.*sw**2)',
1958+ order = {'QED':1})
1959
1960 GC_92 = Coupling(name = 'GC_92',
1961- value = '-(CPWL2*cw*complex(0,1)*gw**3*v)/4.e6',
1962- order = {'NP':2,'QED':1})
1963+ value = '-(CphiWL2*ee**2*complex(0,1)*vev)/(500000.*sw**2)',
1964+ order = {'NP':2})
1965
1966 GC_93 = Coupling(name = 'GC_93',
1967- value = '-(cw*CWL2*complex(0,1)*gw**3*v)/4.e6',
1968- order = {'NP':2,'QED':1})
1969+ value = '-(CPWL2*ee**2*complex(0,1)*vev)/(2.e6*sw**2)',
1970+ order = {'NP':2})
1971
1972 GC_94 = Coupling(name = 'GC_94',
1973- value = '(CWL2*complex(0,1)*gw**4*v)/2.e6',
1974- order = {'NP':2,'QED':2})
1975+ value = '(CWL2*ee**2*complex(0,1)*vev)/(4.e6*sw**2)',
1976+ order = {'NP':2})
1977
1978 GC_95 = Coupling(name = 'GC_95',
1979- value = '-6*complex(0,1)*lam*v',
1980- order = {'QED':1})
1981+ value = '-(CBL2*ee**3*complex(0,1)*vev)/(4.e6*sw**2)',
1982+ order = {'NP':2,'QED':1})
1983
1984 GC_96 = Coupling(name = 'GC_96',
1985- value = '(ee**2*complex(0,1)*v)/(2.*sw**2)',
1986- order = {'QED':1})
1987+ value = '(CphiWL2*ee**3*complex(0,1)*vev)/(500000.*sw**2)',
1988+ order = {'NP':2,'QED':1})
1989
1990 GC_97 = Coupling(name = 'GC_97',
1991- value = '-(CPWL2*cw*complex(0,1)*gw**2*sw*v)/8.e6',
1992- order = {'NP':2})
1993+ value = '(CPWL2*ee**3*complex(0,1)*vev)/(2.e6*sw**2)',
1994+ order = {'NP':2,'QED':1})
1995
1996 GC_98 = Coupling(name = 'GC_98',
1997- value = '(CBL2*complex(0,1)*g1*gw**2*sw*v)/4.e6',
1998+ value = '-(CWL2*ee**3*complex(0,1)*vev)/(4.e6*sw**2)',
1999 order = {'NP':2,'QED':1})
2000
2001 GC_99 = Coupling(name = 'GC_99',
2002- value = '-(CPWL2*complex(0,1)*g1*gw**2*sw*v)/4.e6',
2003- order = {'NP':2,'QED':1})
2004+ value = '(CphiWL2*ee**4*complex(0,1)*vev)/(500000.*sw**2)',
2005+ order = {'NP':2,'QED':2})
2006
2007 GC_100 = Coupling(name = 'GC_100',
2008- value = '-(CWL2*complex(0,1)*g1*gw**2*sw*v)/4.e6',
2009+ value = '(CBL2*ee**3*complex(0,1)*vev)/(4.e6*cw*sw)',
2010 order = {'NP':2,'QED':1})
2011
2012 GC_101 = Coupling(name = 'GC_101',
2013- value = '-(CPWL2*complex(0,1)*gw**3*sw*v)/4.e6',
2014+ value = '(CPWL2*ee**3*complex(0,1)*vev)/(2.e6*cw*sw)',
2015 order = {'NP':2,'QED':1})
2016
2017 GC_102 = Coupling(name = 'GC_102',
2018- value = '-(CWL2*complex(0,1)*gw**3*sw*v)/4.e6',
2019+ value = '-(CWL2*ee**3*complex(0,1)*vev)/(4.e6*cw*sw)',
2020 order = {'NP':2,'QED':1})
2021
2022 GC_103 = Coupling(name = 'GC_103',
2023- value = '-(CPWL2*complex(0,1)*g1*gw*sw**2*v)/8.e6',
2024- order = {'NP':2})
2025+ value = '(AH*CphidL2*complex(0,1)*vev**2)/1.e6',
2026+ order = {'HIW':1,'NP':2})
2027
2028 GC_104 = Coupling(name = 'GC_104',
2029- value = '-(CBL2*cw*complex(0,1)*g1*gw**2*v**2)/8.e6',
2030- order = {'NP':2})
2031+ value = '(CphidL2*complex(0,1)*GH*vev**2)/1.e6',
2032+ order = {'HIG':1,'NP':2})
2033
2034 GC_105 = Coupling(name = 'GC_105',
2035- value = '(CPWL2*cw*complex(0,1)*g1*gw**2*v**2)/8.e6',
2036- order = {'NP':2})
2037+ value = '(CphidL2*G*GH*vev**2)/1.e6',
2038+ order = {'HIG':1,'NP':2,'QCD':1})
2039
2040 GC_106 = Coupling(name = 'GC_106',
2041- value = '-(cw*CWL2*complex(0,1)*g1*gw**2*v**2)/8.e6',
2042- order = {'NP':2})
2043+ value = '-(CphidL2*complex(0,1)*G**2*GH*vev**2)/1.e6',
2044+ order = {'HIG':1,'NP':2,'QCD':2})
2045
2046 GC_107 = Coupling(name = 'GC_107',
2047- value = '-(CPWL2*cw*complex(0,1)*gw**3*v**2)/8.e6',
2048- order = {'NP':2})
2049+ value = '(3*CphidL2*complex(0,1)*lam*vev**2)/125000.',
2050+ order = {'NP':2,'QED':2})
2051
2052 GC_108 = Coupling(name = 'GC_108',
2053- value = '-(cw*CWL2*complex(0,1)*gw**3*v**2)/8.e6',
2054- order = {'NP':2})
2055+ value = '(CWL2*ee**4*complex(0,1)*vev**2)/(4.e6*sw**4)',
2056+ order = {'NP':2,'QED':1})
2057
2058 GC_109 = Coupling(name = 'GC_109',
2059- value = '(CWL2*complex(0,1)*gw**4*v**2)/4.e6',
2060- order = {'NP':2,'QED':1})
2061+ value = '(CPWL2*cw*ee**3*complex(0,1)*vev**2)/(4.e6*sw**3)',
2062+ order = {'NP':2})
2063
2064 GC_110 = Coupling(name = 'GC_110',
2065- value = '(CBL2*complex(0,1)*g1*gw**2*sw*v**2)/8.e6',
2066+ value = '-(cw*CWL2*ee**3*complex(0,1)*vev**2)/(8.e6*sw**3)',
2067 order = {'NP':2})
2068
2069 GC_111 = Coupling(name = 'GC_111',
2070- value = '-(CPWL2*complex(0,1)*g1*gw**2*sw*v**2)/8.e6',
2071- order = {'NP':2})
2072+ value = '-(CphidL2*ee**2*complex(0,1)*vev**2)/(1.e6*sw**2)',
2073+ order = {'NP':2,'QED':2})
2074
2075 GC_112 = Coupling(name = 'GC_112',
2076- value = '-(CWL2*complex(0,1)*g1*gw**2*sw*v**2)/8.e6',
2077+ value = '(CPWL2*ee**3*complex(0,1)*vev**2)/(4.e6*sw**2)',
2078 order = {'NP':2})
2079
2080 GC_113 = Coupling(name = 'GC_113',
2081- value = '-(CPWL2*complex(0,1)*gw**3*sw*v**2)/8.e6',
2082+ value = '(CBL2*ee**3*complex(0,1)*vev**2)/(8.e6*cw*sw)',
2083 order = {'NP':2})
2084
2085 GC_114 = Coupling(name = 'GC_114',
2086- value = '-(CWL2*complex(0,1)*gw**3*sw*v**2)/8.e6',
2087+ value = '(CPWL2*ee**3*complex(0,1)*vev**2)/(4.e6*cw*sw)',
2088 order = {'NP':2})
2089
2090 GC_115 = Coupling(name = 'GC_115',
2091- value = '-(CPWL2*cw**2*complex(0,1)*gw**2*v)/8.e6 - (CPWL2*cw*complex(0,1)*g1*gw*sw*v)/8.e6',
2092+ value = '-(CWL2*ee**3*complex(0,1)*vev**2)/(8.e6*cw*sw)',
2093 order = {'NP':2})
2094
2095 GC_116 = Coupling(name = 'GC_116',
2096- value = '-(CBL2*cw*complex(0,1)*g1**2*sw*v)/4.e6 + (cw*CWL2*complex(0,1)*gw**2*sw*v)/4.e6',
2097- order = {'NP':2})
2098+ value = '(9*CphidL2*complex(0,1)*lam*vev**3)/500000.',
2099+ order = {'NP':2,'QED':1})
2100
2101 GC_117 = Coupling(name = 'GC_117',
2102- value = '-(cw**2*CWL2*complex(0,1)*gw**4*v)/2.e6 - (cw*CWL2*complex(0,1)*g1*gw**3*sw*v)/2.e6',
2103- order = {'NP':2,'QED':2})
2104+ value = '-(CphidL2*ee**2*complex(0,1)*vev**3)/(2.e6*sw**2)',
2105+ order = {'NP':2,'QED':1})
2106
2107 GC_118 = Coupling(name = 'GC_118',
2108- 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)',
2109- order = {'QED':1})
2110+ value = '-(CphiBL2*ee**2*complex(0,1)*vev)/1.e6 - (CphiWL2*ee**2*complex(0,1)*vev)/500000.',
2111+ order = {'NP':2})
2112
2113 GC_119 = Coupling(name = 'GC_119',
2114- value = '(cw**2*CWL2*complex(0,1)*gw**2*v)/4.e6 + (CBL2*cw*complex(0,1)*g1*gw*sw*v)/4.e6 + (cw*CWL2*complex(0,1)*g1*gw*sw*v)/4.e6 + (CBL2*complex(0,1)*g1**2*sw**2*v)/4.e6',
2115- order = {'NP':2})
2116+ value = '-(CphiWL2*ee**4*complex(0,1)*vev)/(500000.*sw**4) + (CWL2*ee**4*complex(0,1)*vev)/(2.e6*sw**4)',
2117+ order = {'NP':2,'QED':2})
2118
2119 GC_120 = Coupling(name = 'GC_120',
2120- value = '-(cw**2*CWL2*complex(0,1)*g1*gw*v)/4.e6 + (CBL2*complex(0,1)*g1*gw*sw**2*v)/4.e6',
2121- order = {'NP':2})
2122+ value = '(CphiWL2*cw*ee**3*complex(0,1)*vev)/(500000.*sw**3) - (cw*CWL2*ee**3*complex(0,1)*vev)/(4.e6*sw**3)',
2123+ order = {'NP':2,'QED':1})
2124
2125 GC_121 = Coupling(name = 'GC_121',
2126- value = '-(CBL2*cw**2*complex(0,1)*g1*gw*v)/4.e6 + (CWL2*complex(0,1)*g1*gw*sw**2*v)/4.e6',
2127+ value = '-(CPWL2*ee**2*complex(0,1)*vev)/2.e6 - (CPWL2*cw**2*ee**2*complex(0,1)*vev)/(2.e6*sw**2)',
2128 order = {'NP':2})
2129
2130 GC_122 = Coupling(name = 'GC_122',
2131- value = '(CPWL2*cw*complex(0,1)*g1*gw*sw*v)/8.e6 - (CPWL2*complex(0,1)*gw**2*sw**2*v)/8.e6',
2132- order = {'NP':2})
2133+ value = '(CphiWL2*cw**2*ee**4*complex(0,1)*vev)/(500000.*sw**4) - (cw**2*CWL2*ee**4*complex(0,1)*vev)/(2.e6*sw**4) - (CWL2*ee**4*complex(0,1)*vev)/(2.e6*sw**2)',
2134+ order = {'NP':2,'QED':2})
2135
2136 GC_123 = Coupling(name = 'GC_123',
2137- value = '(CBL2*cw**2*complex(0,1)*g1**2*v)/4.e6 - (CBL2*cw*complex(0,1)*g1*gw*sw*v)/4.e6 - (cw*CWL2*complex(0,1)*g1*gw*sw*v)/4.e6 + (CWL2*complex(0,1)*gw**2*sw**2*v)/4.e6',
2138- order = {'NP':2})
2139+ value = '-(CphiWL2*cw*ee**4*complex(0,1)*vev)/(250000.*sw**3) + (cw*CWL2*ee**4*complex(0,1)*vev)/(2.e6*sw**3) + (CWL2*ee**4*complex(0,1)*vev)/(2.e6*cw*sw)',
2140+ order = {'NP':2,'QED':2})
2141
2142 GC_124 = Coupling(name = 'GC_124',
2143- value = '-(cw**2*CWL2*complex(0,1)*g1*gw**3*v)/2.e6 + (cw*CWL2*complex(0,1)*gw**4*sw*v)/1.e6 + (CWL2*complex(0,1)*g1*gw**3*sw**2*v)/2.e6',
2144- order = {'NP':2,'QED':2})
2145+ value = '-(CphiWL2*cw*ee**2*complex(0,1)*vev)/(500000.*sw) + (CphiBL2*ee**2*complex(0,1)*sw*vev)/(1.e6*cw)',
2146+ order = {'NP':2})
2147
2148 GC_125 = Coupling(name = 'GC_125',
2149- value = '(cw*CWL2*complex(0,1)*g1*gw**3*sw*v)/2.e6 - (CWL2*complex(0,1)*gw**4*sw**2*v)/2.e6',
2150- order = {'NP':2,'QED':2})
2151+ value = '-(CPWL2*cw*ee**2*complex(0,1)*vev)/(2.e6*sw) - (CPWL2*ee**2*complex(0,1)*sw*vev)/(2.e6*cw)',
2152+ order = {'NP':2})
2153
2154 GC_126 = Coupling(name = 'GC_126',
2155- value = '-(cw**2*CWL2*complex(0,1)*gw**4*v**2)/4.e6 - (cw*CWL2*complex(0,1)*g1*gw**3*sw*v**2)/4.e6',
2156- order = {'NP':2,'QED':1})
2157+ value = '-(CBL2*cw*ee**2*complex(0,1)*vev)/(4.e6*sw) + (cw*CWL2*ee**2*complex(0,1)*vev)/(4.e6*sw) - (CBL2*ee**2*complex(0,1)*sw*vev)/(4.e6*cw) + (CWL2*ee**2*complex(0,1)*sw*vev)/(4.e6*cw)',
2158+ order = {'NP':2})
2159
2160 GC_127 = Coupling(name = 'GC_127',
2161- value = '-(cw**2*CWL2*complex(0,1)*g1*gw**3*v**2)/4.e6 + (cw*CWL2*complex(0,1)*gw**4*sw*v**2)/2.e6 + (CWL2*complex(0,1)*g1*gw**3*sw**2*v**2)/4.e6',
2162- order = {'NP':2,'QED':1})
2163+ value = 'ee**2*complex(0,1)*vev + (cw**2*ee**2*complex(0,1)*vev)/(2.*sw**2) + (ee**2*complex(0,1)*sw**2*vev)/(2.*cw**2)',
2164+ order = {'QED':1})
2165
2166 GC_128 = Coupling(name = 'GC_128',
2167- value = '(cw*CWL2*complex(0,1)*g1*gw**3*sw*v**2)/4.e6 - (CWL2*complex(0,1)*gw**4*sw**2*v**2)/4.e6',
2168- order = {'NP':2,'QED':1})
2169+ value = '(CBL2*ee**2*complex(0,1)*vev)/4.e6 + (CWL2*ee**2*complex(0,1)*vev)/4.e6 + (cw**2*CWL2*ee**2*complex(0,1)*vev)/(4.e6*sw**2) + (CBL2*ee**2*complex(0,1)*sw**2*vev)/(4.e6*cw**2)',
2170+ order = {'NP':2})
2171
2172 GC_129 = Coupling(name = 'GC_129',
2173+ value = '-(CphiWL2*cw**2*ee**2*complex(0,1)*vev)/(500000.*sw**2) - (CphiBL2*ee**2*complex(0,1)*sw**2*vev)/(1.e6*cw**2)',
2174+ order = {'NP':2})
2175+
2176+GC_130 = Coupling(name = 'GC_130',
2177+ value = '-(CBL2*ee**3*complex(0,1)*vev**2)/(8.e6*sw**2) - (CWL2*ee**3*complex(0,1)*vev**2)/(8.e6*sw**2)',
2178+ order = {'NP':2})
2179+
2180+GC_131 = Coupling(name = 'GC_131',
2181+ value = '-(cw**2*CWL2*ee**4*complex(0,1)*vev**2)/(4.e6*sw**4) - (CWL2*ee**4*complex(0,1)*vev**2)/(4.e6*sw**2)',
2182+ order = {'NP':2,'QED':1})
2183+
2184+GC_132 = Coupling(name = 'GC_132',
2185+ value = '(cw*CWL2*ee**4*complex(0,1)*vev**2)/(4.e6*sw**3) + (CWL2*ee**4*complex(0,1)*vev**2)/(4.e6*cw*sw)',
2186+ order = {'NP':2,'QED':1})
2187+
2188+GC_133 = Coupling(name = 'GC_133',
2189+ value = '-(CphidL2*ee**2*complex(0,1)*vev**2)/500000. - (CphidL2*cw**2*ee**2*complex(0,1)*vev**2)/(1.e6*sw**2) - (CphidL2*ee**2*complex(0,1)*sw**2*vev**2)/(1.e6*cw**2)',
2190+ order = {'NP':2,'QED':2})
2191+
2192+GC_134 = Coupling(name = 'GC_134',
2193+ value = '-(CphidL2*ee**2*complex(0,1)*vev**3)/1.e6 - (CphidL2*cw**2*ee**2*complex(0,1)*vev**3)/(2.e6*sw**2) - (CphidL2*ee**2*complex(0,1)*sw**2*vev**3)/(2.e6*cw**2)',
2194+ order = {'NP':2,'QED':1})
2195+
2196+GC_135 = Coupling(name = 'GC_135',
2197 value = '-((complex(0,1)*yb)/cmath.sqrt(2))',
2198 order = {'QED':1})
2199
2200-GC_130 = Coupling(name = 'GC_130',
2201+GC_136 = Coupling(name = 'GC_136',
2202+ value = '(CphidL2*complex(0,1)*vev**2*yb)/(1.e6*cmath.sqrt(2))',
2203+ order = {'NP':2,'QED':1})
2204+
2205+GC_137 = Coupling(name = 'GC_137',
2206+ value = '-((complex(0,1)*yc)/cmath.sqrt(2))',
2207+ order = {'QED':1})
2208+
2209+GC_138 = Coupling(name = 'GC_138',
2210+ value = '(CphidL2*complex(0,1)*vev**2*yc)/(1.e6*cmath.sqrt(2))',
2211+ order = {'NP':2,'QED':1})
2212+
2213+GC_139 = Coupling(name = 'GC_139',
2214+ value = '-((complex(0,1)*ym)/cmath.sqrt(2))',
2215+ order = {'QED':1})
2216+
2217+GC_140 = Coupling(name = 'GC_140',
2218+ value = '(CphidL2*complex(0,1)*vev**2*ym)/(1.e6*cmath.sqrt(2))',
2219+ order = {'NP':2,'QED':1})
2220+
2221+GC_141 = Coupling(name = 'GC_141',
2222 value = '-((complex(0,1)*yt)/cmath.sqrt(2))',
2223 order = {'QED':1})
2224
2225-GC_131 = Coupling(name = 'GC_131',
2226+GC_142 = Coupling(name = 'GC_142',
2227+ value = '(CphidL2*complex(0,1)*vev**2*yt)/(1.e6*cmath.sqrt(2))',
2228+ order = {'NP':2,'QED':1})
2229+
2230+GC_143 = Coupling(name = 'GC_143',
2231 value = '-((complex(0,1)*ytau)/cmath.sqrt(2))',
2232 order = {'QED':1})
2233
2234-GC_132 = Coupling(name = 'GC_132',
2235+GC_144 = Coupling(name = 'GC_144',
2236+ value = '(CphidL2*complex(0,1)*vev**2*ytau)/(1.e6*cmath.sqrt(2))',
2237+ order = {'NP':2,'QED':1})
2238+
2239+GC_145 = Coupling(name = 'GC_145',
2240 value = '(ee*complex(0,1)*complexconjugate(CKM1x1))/(sw*cmath.sqrt(2))',
2241 order = {'QED':1})
2242
2243-GC_133 = Coupling(name = 'GC_133',
2244+GC_146 = Coupling(name = 'GC_146',
2245 value = '(ee*complex(0,1)*complexconjugate(CKM1x2))/(sw*cmath.sqrt(2))',
2246 order = {'QED':1})
2247
2248-GC_134 = Coupling(name = 'GC_134',
2249+GC_147 = Coupling(name = 'GC_147',
2250 value = '(ee*complex(0,1)*complexconjugate(CKM1x3))/(sw*cmath.sqrt(2))',
2251 order = {'QED':1})
2252
2253-GC_135 = Coupling(name = 'GC_135',
2254+GC_148 = Coupling(name = 'GC_148',
2255 value = '(ee*complex(0,1)*complexconjugate(CKM2x1))/(sw*cmath.sqrt(2))',
2256 order = {'QED':1})
2257
2258-GC_136 = Coupling(name = 'GC_136',
2259+GC_149 = Coupling(name = 'GC_149',
2260 value = '(ee*complex(0,1)*complexconjugate(CKM2x2))/(sw*cmath.sqrt(2))',
2261 order = {'QED':1})
2262
2263-GC_137 = Coupling(name = 'GC_137',
2264+GC_150 = Coupling(name = 'GC_150',
2265 value = '(ee*complex(0,1)*complexconjugate(CKM2x3))/(sw*cmath.sqrt(2))',
2266 order = {'QED':1})
2267
2268-GC_138 = Coupling(name = 'GC_138',
2269+GC_151 = Coupling(name = 'GC_151',
2270 value = '(ee*complex(0,1)*complexconjugate(CKM3x1))/(sw*cmath.sqrt(2))',
2271 order = {'QED':1})
2272
2273-GC_139 = Coupling(name = 'GC_139',
2274+GC_152 = Coupling(name = 'GC_152',
2275 value = '(ee*complex(0,1)*complexconjugate(CKM3x2))/(sw*cmath.sqrt(2))',
2276 order = {'QED':1})
2277
2278-GC_140 = Coupling(name = 'GC_140',
2279+GC_153 = Coupling(name = 'GC_153',
2280 value = '(ee*complex(0,1)*complexconjugate(CKM3x3))/(sw*cmath.sqrt(2))',
2281 order = {'QED':1})
2282
2283
2284=== modified file 'models/EWdim6/function_library.py'
2285--- models/EWdim6/function_library.py 2013-01-23 01:06:16 +0000
2286+++ models/EWdim6/function_library.py 2013-10-25 11:38:22 +0000
2287@@ -59,4 +59,13 @@
2288 arguments = ('x','y','z'),
2289 expression = 'y if x else z')
2290
2291+# Auxiliary functions for NLO
2292+
2293+cond = Function(name = 'cond',
2294+ arguments = ('condition','ExprTrue','ExprFalse'),
2295+ expression = '(ExprTrue if condition==0.0 else ExprFalse)')
2296+
2297+reglog = Function(name = 'reglog',
2298+ arguments = ('z'),
2299+ expression = '(0.0 if z==0.0 else cmath.log(z))')
2300
2301
2302=== modified file 'models/EWdim6/lorentz.py'
2303--- models/EWdim6/lorentz.py 2013-01-23 01:06:16 +0000
2304+++ models/EWdim6/lorentz.py 2013-10-25 11:38:22 +0000
2305@@ -1,6 +1,6 @@
2306-# This file was automatically created by FeynRules 1.7.127
2307+# This file was automatically created by FeynRules 2.1.0
2308 # Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
2309-# Date: Tue 22 Jan 2013 16:20:54
2310+# Date: Tue 15 Oct 2013 22:07:41
2311
2312
2313 from object_library import all_lorentz, Lorentz
2314@@ -20,9 +20,13 @@
2315 spins = [ 1, 1, 1 ],
2316 structure = '1')
2317
2318+SSS2 = Lorentz(name = 'SSS2',
2319+ spins = [ 1, 1, 1 ],
2320+ structure = 'P(-1,1)*P(-1,2) + P(-1,1)*P(-1,3) + P(-1,2)*P(-1,3)')
2321+
2322 FFS1 = Lorentz(name = 'FFS1',
2323 spins = [ 2, 2, 1 ],
2324- structure = 'Identity(2,1)')
2325+ structure = 'ProjM(2,1) + ProjP(2,1)')
2326
2327 FFV1 = Lorentz(name = 'FFV1',
2328 spins = [ 2, 2, 3 ],
2329@@ -46,55 +50,43 @@
2330
2331 VSS1 = Lorentz(name = 'VSS1',
2332 spins = [ 3, 1, 1 ],
2333- structure = '2*Epsilon(1,-1,-2,-3)*P(-3,1)*P(-2,3)*P(-1,2) + 2*Epsilon(1,-1,-2,-3)*P(-3,1)*P(-2,2)*P(-1,3)')
2334+ structure = '-(Epsilon(1,-1,-2,-3)*P(-3,1)*P(-2,3)*P(-1,2)) - Epsilon(1,-1,-2,-3)*P(-3,1)*P(-2,2)*P(-1,3)')
2335
2336 VVS1 = Lorentz(name = 'VVS1',
2337 spins = [ 3, 3, 1 ],
2338- structure = '-(Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,1)) + 3*Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,3)')
2339+ structure = 'Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,3)')
2340
2341 VVS2 = Lorentz(name = 'VVS2',
2342 spins = [ 3, 3, 1 ],
2343- structure = '2*Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,1) + 2*Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,3)')
2344+ structure = 'Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,3) - Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,3)')
2345
2346 VVS3 = Lorentz(name = 'VVS3',
2347 spins = [ 3, 3, 1 ],
2348- structure = '-(Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,2)) + 3*Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,3)')
2349+ structure = 'Metric(1,2)')
2350
2351 VVS4 = Lorentz(name = 'VVS4',
2352 spins = [ 3, 3, 1 ],
2353- structure = '-(Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,1)) + Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,2) + 3*Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,3) - 3*Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,3)')
2354+ structure = 'P(1,2)*P(2,1) - P(-1,1)*P(-1,2)*Metric(1,2)')
2355
2356 VVS5 = Lorentz(name = 'VVS5',
2357 spins = [ 3, 3, 1 ],
2358- structure = '-2*Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,1) + 2*Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,2) + 2*Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,3) - 2*Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,3)')
2359+ structure = 'P(1,3)*P(2,1) - P(-1,1)*P(-1,3)*Metric(1,2)')
2360
2361 VVS6 = Lorentz(name = 'VVS6',
2362 spins = [ 3, 3, 1 ],
2363- structure = 'Metric(1,2)')
2364-
2365-VVS7 = Lorentz(name = 'VVS7',
2366- spins = [ 3, 3, 1 ],
2367- structure = 'P(1,3)*P(2,1) - P(-1,1)*P(-1,3)*Metric(1,2)')
2368-
2369-VVS8 = Lorentz(name = 'VVS8',
2370- spins = [ 3, 3, 1 ],
2371- structure = 'P(1,2)*P(2,3) - P(-1,2)*P(-1,3)*Metric(1,2)')
2372-
2373-VVS9 = Lorentz(name = 'VVS9',
2374- spins = [ 3, 3, 1 ],
2375 structure = 'P(1,3)*P(2,1) + P(1,2)*P(2,3) - P(-1,1)*P(-1,3)*Metric(1,2) - P(-1,2)*P(-1,3)*Metric(1,2)')
2376
2377 VVV1 = Lorentz(name = 'VVV1',
2378 spins = [ 3, 3, 3 ],
2379- structure = '2*Epsilon(1,2,3,-1)*P(-1,1) + 2*Epsilon(1,2,3,-1)*P(-1,2)')
2380+ structure = '-(Epsilon(1,2,3,-1)*P(-1,1))')
2381
2382 VVV2 = Lorentz(name = 'VVV2',
2383 spins = [ 3, 3, 3 ],
2384- structure = '2*Epsilon(1,2,3,-1)*P(-1,2) + 2*Epsilon(1,2,3,-1)*P(-1,3)')
2385+ structure = '-(Epsilon(1,2,3,-1)*P(-1,1)) - Epsilon(1,2,3,-1)*P(-1,2)')
2386
2387 VVV3 = Lorentz(name = 'VVV3',
2388 spins = [ 3, 3, 3 ],
2389- structure = '2*Epsilon(1,2,3,-1)*P(-1,1) + 2*Epsilon(1,2,3,-1)*P(-1,2) + 2*Epsilon(1,2,3,-1)*P(-1,3)')
2390+ structure = '-(Epsilon(1,2,3,-1)*P(-1,1)) - Epsilon(1,2,3,-1)*P(-1,2) - Epsilon(1,2,3,-1)*P(-1,3)')
2391
2392 VVV4 = Lorentz(name = 'VVV4',
2393 spins = [ 3, 3, 3 ],
2394@@ -114,67 +106,59 @@
2395
2396 VVV8 = Lorentz(name = 'VVV8',
2397 spins = [ 3, 3, 3 ],
2398- structure = 'P(3,2)*Metric(1,2) - P(2,3)*Metric(1,3) - P(1,2)*Metric(2,3) + P(1,3)*Metric(2,3)')
2399+ 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)')
2400
2401 VVV9 = Lorentz(name = 'VVV9',
2402 spins = [ 3, 3, 3 ],
2403- 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)')
2404-
2405-VVV10 = Lorentz(name = 'VVV10',
2406- spins = [ 3, 3, 3 ],
2407- structure = '4*Epsilon(1,2,3,-2)*P(-2,3)*P(-1,1)*P(-1,2) + 4*Epsilon(1,2,3,-2)*P(-2,2)*P(-1,1)*P(-1,3) + 4*Epsilon(1,2,3,-2)*P(-2,1)*P(-1,2)*P(-1,3) - 2*Epsilon(2,3,-1,-2)*P(-2,3)*P(-1,1)*P(1,2) + 2*Epsilon(2,3,-1,-2)*P(-2,1)*P(-1,3)*P(1,2) - 2*Epsilon(2,3,-1,-2)*P(-2,2)*P(-1,1)*P(1,3) + 2*Epsilon(2,3,-1,-2)*P(-2,1)*P(-1,2)*P(1,3) + 2*Epsilon(1,3,-1,-2)*P(-2,3)*P(-1,2)*P(2,1) - 2*Epsilon(1,3,-1,-2)*P(-2,2)*P(-1,3)*P(2,1) - 2*Epsilon(1,3,-1,-2)*P(-2,2)*P(-1,1)*P(2,3) + 2*Epsilon(1,3,-1,-2)*P(-2,1)*P(-1,2)*P(2,3) + 2*Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,2)*P(3,1) - 2*Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,3)*P(3,1) + 2*Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,1)*P(3,2) - 2*Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,3)*P(3,2) + Epsilon(3,-1,-2,-3)*P(-3,3)*P(-2,2)*P(-1,1)*Metric(1,2) - Epsilon(3,-1,-2,-3)*P(-3,3)*P(-2,1)*P(-1,2)*Metric(1,2) + Epsilon(3,-1,-2,-3)*P(-3,2)*P(-2,1)*P(-1,3)*Metric(1,2) - Epsilon(3,-1,-2,-3)*P(-3,1)*P(-2,2)*P(-1,3)*Metric(1,2) - Epsilon(2,-1,-2,-3)*P(-3,2)*P(-2,3)*P(-1,1)*Metric(1,3) - Epsilon(2,-1,-2,-3)*P(-3,3)*P(-2,1)*P(-1,2)*Metric(1,3) + Epsilon(2,-1,-2,-3)*P(-3,1)*P(-2,3)*P(-1,2)*Metric(1,3) + Epsilon(2,-1,-2,-3)*P(-3,2)*P(-2,1)*P(-1,3)*Metric(1,3) + Epsilon(1,-1,-2,-3)*P(-3,3)*P(-2,2)*P(-1,1)*Metric(2,3) - Epsilon(1,-1,-2,-3)*P(-3,2)*P(-2,3)*P(-1,1)*Metric(2,3) + Epsilon(1,-1,-2,-3)*P(-3,1)*P(-2,3)*P(-1,2)*Metric(2,3) - Epsilon(1,-1,-2,-3)*P(-3,1)*P(-2,2)*P(-1,3)*Metric(2,3)')
2408+ structure = '-2*Epsilon(1,2,3,-2)*P(-2,3)*P(-1,1)*P(-1,2) - 2*Epsilon(1,2,3,-2)*P(-2,2)*P(-1,1)*P(-1,3) - 2*Epsilon(1,2,3,-2)*P(-2,1)*P(-1,2)*P(-1,3) + Epsilon(2,3,-1,-2)*P(-2,3)*P(-1,1)*P(1,2) - Epsilon(2,3,-1,-2)*P(-2,1)*P(-1,3)*P(1,2) + Epsilon(2,3,-1,-2)*P(-2,2)*P(-1,1)*P(1,3) - Epsilon(2,3,-1,-2)*P(-2,1)*P(-1,2)*P(1,3) - Epsilon(1,3,-1,-2)*P(-2,3)*P(-1,2)*P(2,1) + Epsilon(1,3,-1,-2)*P(-2,2)*P(-1,3)*P(2,1) + Epsilon(1,3,-1,-2)*P(-2,2)*P(-1,1)*P(2,3) - Epsilon(1,3,-1,-2)*P(-2,1)*P(-1,2)*P(2,3) - Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,2)*P(3,1) + Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,3)*P(3,1) - Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,1)*P(3,2) + Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,3)*P(3,2) - (Epsilon(3,-1,-2,-3)*P(-3,3)*P(-2,2)*P(-1,1)*Metric(1,2))/2. + (Epsilon(3,-1,-2,-3)*P(-3,3)*P(-2,1)*P(-1,2)*Metric(1,2))/2. - (Epsilon(3,-1,-2,-3)*P(-3,2)*P(-2,1)*P(-1,3)*Metric(1,2))/2. + (Epsilon(3,-1,-2,-3)*P(-3,1)*P(-2,2)*P(-1,3)*Metric(1,2))/2. + (Epsilon(2,-1,-2,-3)*P(-3,2)*P(-2,3)*P(-1,1)*Metric(1,3))/2. + (Epsilon(2,-1,-2,-3)*P(-3,3)*P(-2,1)*P(-1,2)*Metric(1,3))/2. - (Epsilon(2,-1,-2,-3)*P(-3,1)*P(-2,3)*P(-1,2)*Metric(1,3))/2. - (Epsilon(2,-1,-2,-3)*P(-3,2)*P(-2,1)*P(-1,3)*Metric(1,3))/2. - (Epsilon(1,-1,-2,-3)*P(-3,3)*P(-2,2)*P(-1,1)*Metric(2,3))/2. + (Epsilon(1,-1,-2,-3)*P(-3,2)*P(-2,3)*P(-1,1)*Metric(2,3))/2. - (Epsilon(1,-1,-2,-3)*P(-3,1)*P(-2,3)*P(-1,2)*Metric(2,3))/2. + (Epsilon(1,-1,-2,-3)*P(-3,1)*P(-2,2)*P(-1,3)*Metric(2,3))/2.')
2409
2410 SSSS1 = Lorentz(name = 'SSSS1',
2411 spins = [ 1, 1, 1, 1 ],
2412 structure = '1')
2413
2414+SSSS2 = Lorentz(name = 'SSSS2',
2415+ spins = [ 1, 1, 1, 1 ],
2416+ structure = 'P(-1,1)*P(-1,2) + P(-1,1)*P(-1,3) + P(-1,2)*P(-1,3) + P(-1,1)*P(-1,4) + P(-1,2)*P(-1,4) + P(-1,3)*P(-1,4)')
2417+
2418 VVSS1 = Lorentz(name = 'VVSS1',
2419 spins = [ 3, 3, 1, 1 ],
2420- structure = '-(Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,1)) - Epsilon(1,2,-1,-2)*P(-2,4)*P(-1,1) + 3*Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,3) + 3*Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,4)')
2421+ structure = 'Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,3) + Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,4)')
2422
2423 VVSS2 = Lorentz(name = 'VVSS2',
2424 spins = [ 3, 3, 1, 1 ],
2425- structure = '-(Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,2)) - Epsilon(1,2,-1,-2)*P(-2,4)*P(-1,2) + 3*Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,3) + 3*Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,4)')
2426+ structure = 'Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,3) - Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,3) + Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,4) - Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,4)')
2427
2428 VVSS3 = Lorentz(name = 'VVSS3',
2429 spins = [ 3, 3, 1, 1 ],
2430- structure = '-(Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,1)) - Epsilon(1,2,-1,-2)*P(-2,4)*P(-1,1) + Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,2) + Epsilon(1,2,-1,-2)*P(-2,4)*P(-1,2) + 3*Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,3) - 3*Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,3) + 3*Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,4) - 3*Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,4)')
2431+ structure = 'Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,3) - Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,3) - Epsilon(1,2,-1,-2)*P(-2,4)*P(-1,3) + Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,4) - Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,4) - Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,4)')
2432
2433 VVSS4 = Lorentz(name = 'VVSS4',
2434 spins = [ 3, 3, 1, 1 ],
2435- structure = '-2*Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,1) - 2*Epsilon(1,2,-1,-2)*P(-2,4)*P(-1,1) + 2*Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,2) + 2*Epsilon(1,2,-1,-2)*P(-2,4)*P(-1,2) + 2*Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,3) - 2*Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,3) + 2*Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,4) - 2*Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,4)')
2436+ structure = 'Metric(1,2)')
2437
2438 VVSS5 = Lorentz(name = 'VVSS5',
2439 spins = [ 3, 3, 1, 1 ],
2440- structure = '2*Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,1) + 2*Epsilon(1,2,-1,-2)*P(-2,4)*P(-1,1) + 2*Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,3) + 2*Epsilon(1,2,-1,-2)*P(-2,4)*P(-1,3) + 2*Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,4) + 2*Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,4)')
2441+ structure = 'P(1,2)*P(2,1) - P(-1,1)*P(-1,2)*Metric(1,2)')
2442
2443 VVSS6 = Lorentz(name = 'VVSS6',
2444 spins = [ 3, 3, 1, 1 ],
2445- structure = 'Metric(1,2)')
2446+ structure = 'P(1,3)*P(2,1) + P(1,4)*P(2,1) - P(-1,1)*P(-1,3)*Metric(1,2) - P(-1,1)*P(-1,4)*Metric(1,2)')
2447
2448 VVSS7 = Lorentz(name = 'VVSS7',
2449 spins = [ 3, 3, 1, 1 ],
2450- structure = 'P(1,3)*P(2,1) + P(1,4)*P(2,1) - P(-1,1)*P(-1,3)*Metric(1,2) - P(-1,1)*P(-1,4)*Metric(1,2)')
2451-
2452-VVSS8 = Lorentz(name = 'VVSS8',
2453- spins = [ 3, 3, 1, 1 ],
2454- structure = 'P(1,2)*P(2,3) + P(1,2)*P(2,4) - P(-1,2)*P(-1,3)*Metric(1,2) - P(-1,2)*P(-1,4)*Metric(1,2)')
2455-
2456-VVSS9 = Lorentz(name = 'VVSS9',
2457- spins = [ 3, 3, 1, 1 ],
2458 structure = 'P(1,3)*P(2,1) + P(1,4)*P(2,1) + P(1,2)*P(2,3) + P(1,2)*P(2,4) - P(-1,1)*P(-1,3)*Metric(1,2) - P(-1,2)*P(-1,3)*Metric(1,2) - P(-1,1)*P(-1,4)*Metric(1,2) - P(-1,2)*P(-1,4)*Metric(1,2)')
2459
2460 VVVS1 = Lorentz(name = 'VVVS1',
2461 spins = [ 3, 3, 3, 1 ],
2462- structure = '2*Epsilon(1,2,3,-1)*P(-1,1) + 2*Epsilon(1,2,3,-1)*P(-1,2) + 2*Epsilon(1,2,3,-1)*P(-1,4)')
2463+ structure = '-(Epsilon(1,2,3,-1)*P(-1,1)) - Epsilon(1,2,3,-1)*P(-1,2) - Epsilon(1,2,3,-1)*P(-1,4)')
2464
2465 VVVS2 = Lorentz(name = 'VVVS2',
2466 spins = [ 3, 3, 3, 1 ],
2467- structure = '2*Epsilon(1,2,3,-1)*P(-1,2) + 2*Epsilon(1,2,3,-1)*P(-1,3) + 2*Epsilon(1,2,3,-1)*P(-1,4)')
2468+ structure = '-(Epsilon(1,2,3,-1)*P(-1,1)) - 2*Epsilon(1,2,3,-1)*P(-1,4)')
2469
2470 VVVS3 = Lorentz(name = 'VVVS3',
2471 spins = [ 3, 3, 3, 1 ],
2472- structure = '2*Epsilon(1,2,3,-1)*P(-1,1) + 2*Epsilon(1,2,3,-1)*P(-1,2) + 2*Epsilon(1,2,3,-1)*P(-1,3) + 6*Epsilon(1,2,3,-1)*P(-1,4)')
2473+ structure = '-(Epsilon(1,2,3,-1)*P(-1,1)) - Epsilon(1,2,3,-1)*P(-1,2) - Epsilon(1,2,3,-1)*P(-1,3) - 3*Epsilon(1,2,3,-1)*P(-1,4)')
2474
2475 VVVS4 = Lorentz(name = 'VVVS4',
2476 spins = [ 3, 3, 3, 1 ],
2477@@ -182,16 +166,16 @@
2478
2479 VVVS5 = Lorentz(name = 'VVVS5',
2480 spins = [ 3, 3, 3, 1 ],
2481+ structure = 'P(3,1)*Metric(1,2) - P(3,4)*Metric(1,2) - P(2,1)*Metric(1,3) + P(2,4)*Metric(1,3)')
2482+
2483+VVVS6 = Lorentz(name = 'VVVS6',
2484+ spins = [ 3, 3, 3, 1 ],
2485 structure = 'P(2,3)*Metric(1,3) - P(1,3)*Metric(2,3)')
2486
2487-VVVS6 = Lorentz(name = 'VVVS6',
2488+VVVS7 = Lorentz(name = 'VVVS7',
2489 spins = [ 3, 3, 3, 1 ],
2490 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)')
2491
2492-VVVS7 = Lorentz(name = 'VVVS7',
2493- spins = [ 3, 3, 3, 1 ],
2494- structure = 'P(3,2)*Metric(1,2) - P(3,4)*Metric(1,2) - P(2,3)*Metric(1,3) + P(2,4)*Metric(1,3) - P(1,2)*Metric(2,3) + P(1,3)*Metric(2,3)')
2495-
2496 VVVS8 = Lorentz(name = 'VVVS8',
2497 spins = [ 3, 3, 3, 1 ],
2498 structure = 'P(3,1)*Metric(1,2) - P(3,2)*Metric(1,2) - P(2,1)*Metric(1,3) + P(2,4)*Metric(1,3) + P(1,2)*Metric(2,3) - P(1,4)*Metric(2,3)')
2499@@ -202,11 +186,11 @@
2500
2501 VVVV2 = Lorentz(name = 'VVVV2',
2502 spins = [ 3, 3, 3, 3 ],
2503- structure = '2*Epsilon(1,2,3,4)*P(-1,1)*P(-1,3) - 2*Epsilon(1,2,3,4)*P(-1,2)*P(-1,3) - 2*Epsilon(1,2,3,4)*P(-1,1)*P(-1,4) + 2*Epsilon(1,2,3,4)*P(-1,2)*P(-1,4) + 2*Epsilon(2,3,4,-1)*P(-1,3)*P(1,2) - 2*Epsilon(2,3,4,-1)*P(-1,4)*P(1,2) + 2*Epsilon(2,3,4,-1)*P(-1,1)*P(1,3) + 2*Epsilon(2,3,4,-1)*P(-1,2)*P(1,3) - 2*Epsilon(2,3,4,-1)*P(-1,1)*P(1,4) - 2*Epsilon(2,3,4,-1)*P(-1,2)*P(1,4) + 2*Epsilon(1,3,4,-1)*P(-1,3)*P(2,1) - 2*Epsilon(1,3,4,-1)*P(-1,4)*P(2,1) + 2*Epsilon(1,3,4,-1)*P(-1,1)*P(2,3) + 2*Epsilon(1,3,4,-1)*P(-1,2)*P(2,3) - 2*Epsilon(1,3,4,-1)*P(-1,1)*P(2,4) - 2*Epsilon(1,3,4,-1)*P(-1,2)*P(2,4) + 2*Epsilon(1,2,4,-1)*P(-1,3)*P(3,1) + 2*Epsilon(1,2,4,-1)*P(-1,4)*P(3,1) - 2*Epsilon(1,2,4,-1)*P(-1,3)*P(3,2) - 2*Epsilon(1,2,4,-1)*P(-1,4)*P(3,2) + 2*Epsilon(1,2,4,-1)*P(-1,1)*P(3,4) - 2*Epsilon(1,2,4,-1)*P(-1,2)*P(3,4) + 2*Epsilon(1,2,3,-1)*P(-1,3)*P(4,1) + 2*Epsilon(1,2,3,-1)*P(-1,4)*P(4,1) - 2*Epsilon(1,2,3,-1)*P(-1,3)*P(4,2) - 2*Epsilon(1,2,3,-1)*P(-1,4)*P(4,2) + 2*Epsilon(1,2,3,-1)*P(-1,1)*P(4,3) - 2*Epsilon(1,2,3,-1)*P(-1,2)*P(4,3) - 2*Epsilon(3,4,-1,-2)*P(-2,3)*P(-1,1)*Metric(1,2) + 2*Epsilon(3,4,-1,-2)*P(-2,4)*P(-1,1)*Metric(1,2) - 2*Epsilon(3,4,-1,-2)*P(-2,3)*P(-1,2)*Metric(1,2) + 2*Epsilon(3,4,-1,-2)*P(-2,4)*P(-1,2)*Metric(1,2) - Epsilon(2,4,-1,-2)*P(-2,3)*P(-1,1)*Metric(1,3) - 2*Epsilon(2,4,-1,-2)*P(-2,4)*P(-1,1)*Metric(1,3) + Epsilon(2,4,-1,-2)*P(-2,1)*P(-1,3)*Metric(1,3) + 2*Epsilon(2,4,-1,-2)*P(-2,2)*P(-1,3)*Metric(1,3) - 2*Epsilon(2,3,-1,-2)*P(-2,3)*P(-1,1)*Metric(1,4) - Epsilon(2,3,-1,-2)*P(-2,4)*P(-1,1)*Metric(1,4) + Epsilon(2,3,-1,-2)*P(-2,1)*P(-1,4)*Metric(1,4) + 2*Epsilon(2,3,-1,-2)*P(-2,2)*P(-1,4)*Metric(1,4) - Epsilon(1,4,-1,-2)*P(-2,3)*P(-1,2)*Metric(2,3) - 2*Epsilon(1,4,-1,-2)*P(-2,4)*P(-1,2)*Metric(2,3) + 2*Epsilon(1,4,-1,-2)*P(-2,1)*P(-1,3)*Metric(2,3) + Epsilon(1,4,-1,-2)*P(-2,2)*P(-1,3)*Metric(2,3) - 2*Epsilon(1,3,-1,-2)*P(-2,3)*P(-1,2)*Metric(2,4) - Epsilon(1,3,-1,-2)*P(-2,4)*P(-1,2)*Metric(2,4) + 2*Epsilon(1,3,-1,-2)*P(-2,1)*P(-1,4)*Metric(2,4) + Epsilon(1,3,-1,-2)*P(-2,2)*P(-1,4)*Metric(2,4) - 2*Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,3)*Metric(3,4) + 2*Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,3)*Metric(3,4) - 2*Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,4)*Metric(3,4) + 2*Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,4)*Metric(3,4)')
2504+ structure = '-(Epsilon(1,2,3,4)*P(-1,1)*P(-1,3)) + Epsilon(1,2,3,4)*P(-1,2)*P(-1,3) + Epsilon(1,2,3,4)*P(-1,1)*P(-1,4) - Epsilon(1,2,3,4)*P(-1,2)*P(-1,4) - Epsilon(2,3,4,-1)*P(-1,3)*P(1,2) + Epsilon(2,3,4,-1)*P(-1,4)*P(1,2) - Epsilon(2,3,4,-1)*P(-1,1)*P(1,3) - Epsilon(2,3,4,-1)*P(-1,2)*P(1,3) + Epsilon(2,3,4,-1)*P(-1,1)*P(1,4) + Epsilon(2,3,4,-1)*P(-1,2)*P(1,4) - Epsilon(1,3,4,-1)*P(-1,3)*P(2,1) + Epsilon(1,3,4,-1)*P(-1,4)*P(2,1) - Epsilon(1,3,4,-1)*P(-1,1)*P(2,3) - Epsilon(1,3,4,-1)*P(-1,2)*P(2,3) + Epsilon(1,3,4,-1)*P(-1,1)*P(2,4) + Epsilon(1,3,4,-1)*P(-1,2)*P(2,4) - Epsilon(1,2,4,-1)*P(-1,3)*P(3,1) - Epsilon(1,2,4,-1)*P(-1,4)*P(3,1) + Epsilon(1,2,4,-1)*P(-1,3)*P(3,2) + Epsilon(1,2,4,-1)*P(-1,4)*P(3,2) - Epsilon(1,2,4,-1)*P(-1,1)*P(3,4) + Epsilon(1,2,4,-1)*P(-1,2)*P(3,4) - Epsilon(1,2,3,-1)*P(-1,3)*P(4,1) - Epsilon(1,2,3,-1)*P(-1,4)*P(4,1) + Epsilon(1,2,3,-1)*P(-1,3)*P(4,2) + Epsilon(1,2,3,-1)*P(-1,4)*P(4,2) - Epsilon(1,2,3,-1)*P(-1,1)*P(4,3) + Epsilon(1,2,3,-1)*P(-1,2)*P(4,3) + (Epsilon(3,4,-1,-2)*P(-2,3)*P(-1,1)*Metric(1,2))/2. - (Epsilon(3,4,-1,-2)*P(-2,4)*P(-1,1)*Metric(1,2))/2. + (Epsilon(3,4,-1,-2)*P(-2,3)*P(-1,2)*Metric(1,2))/2. - (Epsilon(3,4,-1,-2)*P(-2,4)*P(-1,2)*Metric(1,2))/2. - (Epsilon(3,4,-1,-2)*P(-2,1)*P(-1,3)*Metric(1,2))/2. - (Epsilon(3,4,-1,-2)*P(-2,2)*P(-1,3)*Metric(1,2))/2. + (Epsilon(3,4,-1,-2)*P(-2,1)*P(-1,4)*Metric(1,2))/2. + (Epsilon(3,4,-1,-2)*P(-2,2)*P(-1,4)*Metric(1,2))/2. + (Epsilon(2,4,-1,-2)*P(-2,3)*P(-1,1)*Metric(1,3))/2. + (Epsilon(2,4,-1,-2)*P(-2,4)*P(-1,1)*Metric(1,3))/2. + (Epsilon(2,4,-1,-2)*P(-2,3)*P(-1,2)*Metric(1,3))/2. - (Epsilon(2,4,-1,-2)*P(-2,1)*P(-1,3)*Metric(1,3))/2. - (Epsilon(2,4,-1,-2)*P(-2,2)*P(-1,3)*Metric(1,3))/2. - (Epsilon(2,4,-1,-2)*P(-2,1)*P(-1,4)*Metric(1,3))/2. + (Epsilon(2,3,-1,-2)*P(-2,3)*P(-1,1)*Metric(1,4))/2. + (Epsilon(2,3,-1,-2)*P(-2,4)*P(-1,1)*Metric(1,4))/2. + (Epsilon(2,3,-1,-2)*P(-2,4)*P(-1,2)*Metric(1,4))/2. - (Epsilon(2,3,-1,-2)*P(-2,1)*P(-1,3)*Metric(1,4))/2. - (Epsilon(2,3,-1,-2)*P(-2,1)*P(-1,4)*Metric(1,4))/2. - (Epsilon(2,3,-1,-2)*P(-2,2)*P(-1,4)*Metric(1,4))/2. + (Epsilon(1,4,-1,-2)*P(-2,3)*P(-1,1)*Metric(2,3))/2. + (Epsilon(1,4,-1,-2)*P(-2,3)*P(-1,2)*Metric(2,3))/2. + (Epsilon(1,4,-1,-2)*P(-2,4)*P(-1,2)*Metric(2,3))/2. - (Epsilon(1,4,-1,-2)*P(-2,1)*P(-1,3)*Metric(2,3))/2. - (Epsilon(1,4,-1,-2)*P(-2,2)*P(-1,3)*Metric(2,3))/2. - (Epsilon(1,4,-1,-2)*P(-2,2)*P(-1,4)*Metric(2,3))/2. + (Epsilon(1,3,-1,-2)*P(-2,4)*P(-1,1)*Metric(2,4))/2. + (Epsilon(1,3,-1,-2)*P(-2,3)*P(-1,2)*Metric(2,4))/2. + (Epsilon(1,3,-1,-2)*P(-2,4)*P(-1,2)*Metric(2,4))/2. - (Epsilon(1,3,-1,-2)*P(-2,2)*P(-1,3)*Metric(2,4))/2. - (Epsilon(1,3,-1,-2)*P(-2,1)*P(-1,4)*Metric(2,4))/2. - (Epsilon(1,3,-1,-2)*P(-2,2)*P(-1,4)*Metric(2,4))/2. - (Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,1)*Metric(3,4))/2. - (Epsilon(1,2,-1,-2)*P(-2,4)*P(-1,1)*Metric(3,4))/2. + (Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,2)*Metric(3,4))/2. + (Epsilon(1,2,-1,-2)*P(-2,4)*P(-1,2)*Metric(3,4))/2. + (Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,3)*Metric(3,4))/2. - (Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,3)*Metric(3,4))/2. + (Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,4)*Metric(3,4))/2. - (Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,4)*Metric(3,4))/2.')
2505
2506 VVVV3 = Lorentz(name = 'VVVV3',
2507 spins = [ 3, 3, 3, 3 ],
2508- structure = '2*Epsilon(1,2,3,4)*P(-1,1)*P(-1,2) - 2*Epsilon(1,2,3,4)*P(-1,1)*P(-1,3) - 2*Epsilon(1,2,3,4)*P(-1,2)*P(-1,4) + 2*Epsilon(1,2,3,4)*P(-1,3)*P(-1,4) + 2*Epsilon(2,3,4,-1)*P(-1,1)*P(1,2) + 2*Epsilon(2,3,4,-1)*P(-1,4)*P(1,2) - 2*Epsilon(2,3,4,-1)*P(-1,1)*P(1,3) - 2*Epsilon(2,3,4,-1)*P(-1,4)*P(1,3) + 2*Epsilon(2,3,4,-1)*P(-1,2)*P(1,4) - 2*Epsilon(2,3,4,-1)*P(-1,3)*P(1,4) - 2*Epsilon(1,3,4,-1)*P(-1,2)*P(2,1) - 2*Epsilon(1,3,4,-1)*P(-1,3)*P(2,1) - 2*Epsilon(1,3,4,-1)*P(-1,1)*P(2,3) + 2*Epsilon(1,3,4,-1)*P(-1,4)*P(2,3) + 2*Epsilon(1,3,4,-1)*P(-1,2)*P(2,4) + 2*Epsilon(1,3,4,-1)*P(-1,3)*P(2,4) - 2*Epsilon(1,2,4,-1)*P(-1,2)*P(3,1) - 2*Epsilon(1,2,4,-1)*P(-1,3)*P(3,1) - 2*Epsilon(1,2,4,-1)*P(-1,1)*P(3,2) + 2*Epsilon(1,2,4,-1)*P(-1,4)*P(3,2) + 2*Epsilon(1,2,4,-1)*P(-1,2)*P(3,4) + 2*Epsilon(1,2,4,-1)*P(-1,3)*P(3,4) + 2*Epsilon(1,2,3,-1)*P(-1,2)*P(4,1) - 2*Epsilon(1,2,3,-1)*P(-1,3)*P(4,1) + 2*Epsilon(1,2,3,-1)*P(-1,1)*P(4,2) + 2*Epsilon(1,2,3,-1)*P(-1,4)*P(4,2) - 2*Epsilon(1,2,3,-1)*P(-1,1)*P(4,3) - 2*Epsilon(1,2,3,-1)*P(-1,4)*P(4,3) + Epsilon(3,4,-1,-2)*P(-2,2)*P(-1,1)*Metric(1,2) + 2*Epsilon(3,4,-1,-2)*P(-2,3)*P(-1,1)*Metric(1,2) - Epsilon(3,4,-1,-2)*P(-2,1)*P(-1,2)*Metric(1,2) - 2*Epsilon(3,4,-1,-2)*P(-2,4)*P(-1,2)*Metric(1,2) + 2*Epsilon(2,4,-1,-2)*P(-2,2)*P(-1,1)*Metric(1,3) + Epsilon(2,4,-1,-2)*P(-2,3)*P(-1,1)*Metric(1,3) - Epsilon(2,4,-1,-2)*P(-2,1)*P(-1,3)*Metric(1,3) - 2*Epsilon(2,4,-1,-2)*P(-2,4)*P(-1,3)*Metric(1,3) - 2*Epsilon(2,3,-1,-2)*P(-2,2)*P(-1,1)*Metric(1,4) + 2*Epsilon(2,3,-1,-2)*P(-2,3)*P(-1,1)*Metric(1,4) - 2*Epsilon(2,3,-1,-2)*P(-2,2)*P(-1,4)*Metric(1,4) + 2*Epsilon(2,3,-1,-2)*P(-2,3)*P(-1,4)*Metric(1,4) - 2*Epsilon(1,4,-1,-2)*P(-2,1)*P(-1,2)*Metric(2,3) + 2*Epsilon(1,4,-1,-2)*P(-2,4)*P(-1,2)*Metric(2,3) - 2*Epsilon(1,4,-1,-2)*P(-2,1)*P(-1,3)*Metric(2,3) + 2*Epsilon(1,4,-1,-2)*P(-2,4)*P(-1,3)*Metric(2,3) + 2*Epsilon(1,3,-1,-2)*P(-2,1)*P(-1,2)*Metric(2,4) + Epsilon(1,3,-1,-2)*P(-2,4)*P(-1,2)*Metric(2,4) - Epsilon(1,3,-1,-2)*P(-2,2)*P(-1,4)*Metric(2,4) - 2*Epsilon(1,3,-1,-2)*P(-2,3)*P(-1,4)*Metric(2,4) + 2*Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,3)*Metric(3,4) + Epsilon(1,2,-1,-2)*P(-2,4)*P(-1,3)*Metric(3,4) - 2*Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,4)*Metric(3,4) - Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,4)*Metric(3,4)')
2509+ structure = 'Epsilon(1,2,3,4)*P(-1,1)*P(-1,2) - Epsilon(1,2,3,4)*P(-1,1)*P(-1,3) - Epsilon(1,2,3,4)*P(-1,2)*P(-1,4) + Epsilon(1,2,3,4)*P(-1,3)*P(-1,4) + Epsilon(2,3,4,-1)*P(-1,1)*P(1,2) + Epsilon(2,3,4,-1)*P(-1,4)*P(1,2) - Epsilon(2,3,4,-1)*P(-1,1)*P(1,3) - Epsilon(2,3,4,-1)*P(-1,4)*P(1,3) + Epsilon(2,3,4,-1)*P(-1,2)*P(1,4) - Epsilon(2,3,4,-1)*P(-1,3)*P(1,4) - Epsilon(1,3,4,-1)*P(-1,2)*P(2,1) - Epsilon(1,3,4,-1)*P(-1,3)*P(2,1) - Epsilon(1,3,4,-1)*P(-1,1)*P(2,3) + Epsilon(1,3,4,-1)*P(-1,4)*P(2,3) + Epsilon(1,3,4,-1)*P(-1,2)*P(2,4) + Epsilon(1,3,4,-1)*P(-1,3)*P(2,4) - Epsilon(1,2,4,-1)*P(-1,2)*P(3,1) - Epsilon(1,2,4,-1)*P(-1,3)*P(3,1) - Epsilon(1,2,4,-1)*P(-1,1)*P(3,2) + Epsilon(1,2,4,-1)*P(-1,4)*P(3,2) + Epsilon(1,2,4,-1)*P(-1,2)*P(3,4) + Epsilon(1,2,4,-1)*P(-1,3)*P(3,4) + Epsilon(1,2,3,-1)*P(-1,2)*P(4,1) - Epsilon(1,2,3,-1)*P(-1,3)*P(4,1) + Epsilon(1,2,3,-1)*P(-1,1)*P(4,2) + Epsilon(1,2,3,-1)*P(-1,4)*P(4,2) - Epsilon(1,2,3,-1)*P(-1,1)*P(4,3) - Epsilon(1,2,3,-1)*P(-1,4)*P(4,3) + (Epsilon(3,4,-1,-2)*P(-2,2)*P(-1,1)*Metric(1,2))/2. + (Epsilon(3,4,-1,-2)*P(-2,3)*P(-1,1)*Metric(1,2))/2. - (Epsilon(3,4,-1,-2)*P(-2,1)*P(-1,2)*Metric(1,2))/2. - (Epsilon(3,4,-1,-2)*P(-2,4)*P(-1,2)*Metric(1,2))/2. - (Epsilon(3,4,-1,-2)*P(-2,1)*P(-1,3)*Metric(1,2))/2. + (Epsilon(3,4,-1,-2)*P(-2,2)*P(-1,4)*Metric(1,2))/2. + (Epsilon(2,4,-1,-2)*P(-2,2)*P(-1,1)*Metric(1,3))/2. + (Epsilon(2,4,-1,-2)*P(-2,3)*P(-1,1)*Metric(1,3))/2. - (Epsilon(2,4,-1,-2)*P(-2,1)*P(-1,2)*Metric(1,3))/2. - (Epsilon(2,4,-1,-2)*P(-2,1)*P(-1,3)*Metric(1,3))/2. - (Epsilon(2,4,-1,-2)*P(-2,4)*P(-1,3)*Metric(1,3))/2. + (Epsilon(2,4,-1,-2)*P(-2,3)*P(-1,4)*Metric(1,3))/2. - (Epsilon(2,3,-1,-2)*P(-2,2)*P(-1,1)*Metric(1,4))/2. + (Epsilon(2,3,-1,-2)*P(-2,3)*P(-1,1)*Metric(1,4))/2. + (Epsilon(2,3,-1,-2)*P(-2,1)*P(-1,2)*Metric(1,4))/2. + (Epsilon(2,3,-1,-2)*P(-2,4)*P(-1,2)*Metric(1,4))/2. - (Epsilon(2,3,-1,-2)*P(-2,1)*P(-1,3)*Metric(1,4))/2. - (Epsilon(2,3,-1,-2)*P(-2,4)*P(-1,3)*Metric(1,4))/2. - (Epsilon(2,3,-1,-2)*P(-2,2)*P(-1,4)*Metric(1,4))/2. + (Epsilon(2,3,-1,-2)*P(-2,3)*P(-1,4)*Metric(1,4))/2. + (Epsilon(1,4,-1,-2)*P(-2,2)*P(-1,1)*Metric(2,3))/2. + (Epsilon(1,4,-1,-2)*P(-2,3)*P(-1,1)*Metric(2,3))/2. - (Epsilon(1,4,-1,-2)*P(-2,1)*P(-1,2)*Metric(2,3))/2. + (Epsilon(1,4,-1,-2)*P(-2,4)*P(-1,2)*Metric(2,3))/2. - (Epsilon(1,4,-1,-2)*P(-2,1)*P(-1,3)*Metric(2,3))/2. + (Epsilon(1,4,-1,-2)*P(-2,4)*P(-1,3)*Metric(2,3))/2. - (Epsilon(1,4,-1,-2)*P(-2,2)*P(-1,4)*Metric(2,3))/2. - (Epsilon(1,4,-1,-2)*P(-2,3)*P(-1,4)*Metric(2,3))/2. - (Epsilon(1,3,-1,-2)*P(-2,2)*P(-1,1)*Metric(2,4))/2. + (Epsilon(1,3,-1,-2)*P(-2,1)*P(-1,2)*Metric(2,4))/2. + (Epsilon(1,3,-1,-2)*P(-2,4)*P(-1,2)*Metric(2,4))/2. + (Epsilon(1,3,-1,-2)*P(-2,4)*P(-1,3)*Metric(2,4))/2. - (Epsilon(1,3,-1,-2)*P(-2,2)*P(-1,4)*Metric(2,4))/2. - (Epsilon(1,3,-1,-2)*P(-2,3)*P(-1,4)*Metric(2,4))/2. - (Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,1)*Metric(3,4))/2. + (Epsilon(1,2,-1,-2)*P(-2,4)*P(-1,2)*Metric(3,4))/2. + (Epsilon(1,2,-1,-2)*P(-2,1)*P(-1,3)*Metric(3,4))/2. + (Epsilon(1,2,-1,-2)*P(-2,4)*P(-1,3)*Metric(3,4))/2. - (Epsilon(1,2,-1,-2)*P(-2,2)*P(-1,4)*Metric(3,4))/2. - (Epsilon(1,2,-1,-2)*P(-2,3)*P(-1,4)*Metric(3,4))/2.')
2510
2511 VVVV4 = Lorentz(name = 'VVVV4',
2512 spins = [ 3, 3, 3, 3 ],
2513@@ -234,15 +218,15 @@
2514
2515 VVVSS1 = Lorentz(name = 'VVVSS1',
2516 spins = [ 3, 3, 3, 1, 1 ],
2517- structure = '2*Epsilon(1,2,3,-1)*P(-1,1) + 2*Epsilon(1,2,3,-1)*P(-1,2) + 2*Epsilon(1,2,3,-1)*P(-1,4) + 2*Epsilon(1,2,3,-1)*P(-1,5)')
2518+ structure = '-(Epsilon(1,2,3,-1)*P(-1,1)) - Epsilon(1,2,3,-1)*P(-1,2) - Epsilon(1,2,3,-1)*P(-1,4) - Epsilon(1,2,3,-1)*P(-1,5)')
2519
2520 VVVSS2 = Lorentz(name = 'VVVSS2',
2521 spins = [ 3, 3, 3, 1, 1 ],
2522- structure = '2*Epsilon(1,2,3,-1)*P(-1,2) + 2*Epsilon(1,2,3,-1)*P(-1,3) + 2*Epsilon(1,2,3,-1)*P(-1,4) + 2*Epsilon(1,2,3,-1)*P(-1,5)')
2523+ structure = '-(Epsilon(1,2,3,-1)*P(-1,1)) - 2*Epsilon(1,2,3,-1)*P(-1,4) - 2*Epsilon(1,2,3,-1)*P(-1,5)')
2524
2525 VVVSS3 = Lorentz(name = 'VVVSS3',
2526 spins = [ 3, 3, 3, 1, 1 ],
2527- structure = '2*Epsilon(1,2,3,-1)*P(-1,1) + 2*Epsilon(1,2,3,-1)*P(-1,2) + 2*Epsilon(1,2,3,-1)*P(-1,3) + 6*Epsilon(1,2,3,-1)*P(-1,4) + 6*Epsilon(1,2,3,-1)*P(-1,5)')
2528+ structure = '-(Epsilon(1,2,3,-1)*P(-1,1)) - Epsilon(1,2,3,-1)*P(-1,2) - Epsilon(1,2,3,-1)*P(-1,3) - 3*Epsilon(1,2,3,-1)*P(-1,4) - 3*Epsilon(1,2,3,-1)*P(-1,5)')
2529
2530 VVVSS4 = Lorentz(name = 'VVVSS4',
2531 spins = [ 3, 3, 3, 1, 1 ],
2532@@ -250,25 +234,37 @@
2533
2534 VVVSS5 = Lorentz(name = 'VVVSS5',
2535 spins = [ 3, 3, 3, 1, 1 ],
2536+ structure = 'P(3,1)*Metric(1,2) - P(3,4)*Metric(1,2) - P(3,5)*Metric(1,2) - P(2,1)*Metric(1,3) + P(2,4)*Metric(1,3) + P(2,5)*Metric(1,3)')
2537+
2538+VVVSS6 = Lorentz(name = 'VVVSS6',
2539+ spins = [ 3, 3, 3, 1, 1 ],
2540 structure = 'P(2,3)*Metric(1,3) - P(1,3)*Metric(2,3)')
2541
2542-VVVSS6 = Lorentz(name = 'VVVSS6',
2543+VVVSS7 = Lorentz(name = 'VVVSS7',
2544 spins = [ 3, 3, 3, 1, 1 ],
2545 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)')
2546
2547-VVVSS7 = Lorentz(name = 'VVVSS7',
2548- spins = [ 3, 3, 3, 1, 1 ],
2549- structure = 'P(3,2)*Metric(1,2) - P(3,4)*Metric(1,2) - P(3,5)*Metric(1,2) - P(2,3)*Metric(1,3) + P(2,4)*Metric(1,3) + P(2,5)*Metric(1,3) - P(1,2)*Metric(2,3) + P(1,3)*Metric(2,3)')
2550-
2551 VVVSS8 = Lorentz(name = 'VVVSS8',
2552 spins = [ 3, 3, 3, 1, 1 ],
2553 structure = 'P(3,1)*Metric(1,2) - P(3,2)*Metric(1,2) - P(2,1)*Metric(1,3) + P(2,4)*Metric(1,3) + P(2,5)*Metric(1,3) + P(1,2)*Metric(2,3) - P(1,4)*Metric(2,3) - P(1,5)*Metric(2,3)')
2554
2555 VVVVS1 = Lorentz(name = 'VVVVS1',
2556 spins = [ 3, 3, 3, 3, 1 ],
2557+ structure = 'Metric(1,4)*Metric(2,3) - Metric(1,3)*Metric(2,4)')
2558+
2559+VVVVS2 = Lorentz(name = 'VVVVS2',
2560+ spins = [ 3, 3, 3, 3, 1 ],
2561 structure = 'Metric(1,4)*Metric(2,3) + Metric(1,3)*Metric(2,4) - 2*Metric(1,2)*Metric(3,4)')
2562
2563-VVVVS2 = Lorentz(name = 'VVVVS2',
2564+VVVVS3 = Lorentz(name = 'VVVVS3',
2565+ spins = [ 3, 3, 3, 3, 1 ],
2566+ structure = 'Metric(1,4)*Metric(2,3) - Metric(1,2)*Metric(3,4)')
2567+
2568+VVVVS4 = Lorentz(name = 'VVVVS4',
2569+ spins = [ 3, 3, 3, 3, 1 ],
2570+ structure = 'Metric(1,3)*Metric(2,4) - Metric(1,2)*Metric(3,4)')
2571+
2572+VVVVS5 = Lorentz(name = 'VVVVS5',
2573 spins = [ 3, 3, 3, 3, 1 ],
2574 structure = 'Metric(1,4)*Metric(2,3) - (Metric(1,3)*Metric(2,4))/2. - (Metric(1,2)*Metric(3,4))/2.')
2575
2576@@ -282,12 +278,12 @@
2577
2578 VVVVV3 = Lorentz(name = 'VVVVV3',
2579 spins = [ 3, 3, 3, 3, 3 ],
2580+ structure = 'Epsilon(2,3,4,5)*P(1,2) - Epsilon(2,3,4,5)*P(1,5) + Epsilon(1,3,4,5)*P(2,1) - Epsilon(1,3,4,5)*P(2,5) + Epsilon(1,2,3,4)*P(5,1) - Epsilon(1,2,3,4)*P(5,2) + Epsilon(3,4,5,-1)*P(-1,1)*Metric(1,2) + Epsilon(3,4,5,-1)*P(-1,2)*Metric(1,2) + Epsilon(3,4,5,-1)*P(-1,5)*Metric(1,2) + (Epsilon(2,4,5,-1)*P(-1,2)*Metric(1,3))/2. - (Epsilon(2,4,5,-1)*P(-1,5)*Metric(1,3))/2. - (Epsilon(2,3,5,-1)*P(-1,2)*Metric(1,4))/2. + (Epsilon(2,3,5,-1)*P(-1,5)*Metric(1,4))/2. + Epsilon(2,3,4,-1)*P(-1,1)*Metric(1,5) + Epsilon(2,3,4,-1)*P(-1,2)*Metric(1,5) + Epsilon(2,3,4,-1)*P(-1,5)*Metric(1,5) + (Epsilon(1,4,5,-1)*P(-1,1)*Metric(2,3))/2. - (Epsilon(1,4,5,-1)*P(-1,5)*Metric(2,3))/2. - (Epsilon(1,3,5,-1)*P(-1,1)*Metric(2,4))/2. + (Epsilon(1,3,5,-1)*P(-1,5)*Metric(2,4))/2. + Epsilon(1,3,4,-1)*P(-1,1)*Metric(2,5) + Epsilon(1,3,4,-1)*P(-1,2)*Metric(2,5) + Epsilon(1,3,4,-1)*P(-1,5)*Metric(2,5) - (Epsilon(1,2,4,-1)*P(-1,1)*Metric(3,5))/2. + (Epsilon(1,2,4,-1)*P(-1,2)*Metric(3,5))/2. + (Epsilon(1,2,3,-1)*P(-1,1)*Metric(4,5))/2. - (Epsilon(1,2,3,-1)*P(-1,2)*Metric(4,5))/2.')
2581+
2582+VVVVV4 = Lorentz(name = 'VVVVV4',
2583+ spins = [ 3, 3, 3, 3, 3 ],
2584 structure = '-(Epsilon(2,3,4,5)*P(1,3)) + Epsilon(2,3,4,5)*P(1,4) - Epsilon(1,3,4,5)*P(2,3) + Epsilon(1,3,4,5)*P(2,4) + Epsilon(1,2,4,5)*P(3,1) - Epsilon(1,2,4,5)*P(3,2) + Epsilon(1,2,3,5)*P(4,1) - Epsilon(1,2,3,5)*P(4,2) + Epsilon(3,4,5,-1)*P(-1,3)*Metric(1,2) - Epsilon(3,4,5,-1)*P(-1,4)*Metric(1,2) + Epsilon(2,4,5,-1)*P(-1,1)*Metric(1,3) + (Epsilon(2,4,5,-1)*P(-1,2)*Metric(1,3))/2. + Epsilon(2,4,5,-1)*P(-1,3)*Metric(1,3) + (Epsilon(2,4,5,-1)*P(-1,4)*Metric(1,3))/2. + Epsilon(2,3,5,-1)*P(-1,1)*Metric(1,4) + (Epsilon(2,3,5,-1)*P(-1,2)*Metric(1,4))/2. + (Epsilon(2,3,5,-1)*P(-1,3)*Metric(1,4))/2. + Epsilon(2,3,5,-1)*P(-1,4)*Metric(1,4) - (Epsilon(2,3,4,-1)*P(-1,3)*Metric(1,5))/2. + (Epsilon(2,3,4,-1)*P(-1,4)*Metric(1,5))/2. + (Epsilon(1,4,5,-1)*P(-1,1)*Metric(2,3))/2. + Epsilon(1,4,5,-1)*P(-1,2)*Metric(2,3) + Epsilon(1,4,5,-1)*P(-1,3)*Metric(2,3) + (Epsilon(1,4,5,-1)*P(-1,4)*Metric(2,3))/2. + (Epsilon(1,3,5,-1)*P(-1,1)*Metric(2,4))/2. + Epsilon(1,3,5,-1)*P(-1,2)*Metric(2,4) + (Epsilon(1,3,5,-1)*P(-1,3)*Metric(2,4))/2. + Epsilon(1,3,5,-1)*P(-1,4)*Metric(2,4) - (Epsilon(1,3,4,-1)*P(-1,3)*Metric(2,5))/2. + (Epsilon(1,3,4,-1)*P(-1,4)*Metric(2,5))/2. - Epsilon(1,2,5,-1)*P(-1,1)*Metric(3,4) + Epsilon(1,2,5,-1)*P(-1,2)*Metric(3,4) + (Epsilon(1,2,4,-1)*P(-1,1)*Metric(3,5))/2. - (Epsilon(1,2,4,-1)*P(-1,2)*Metric(3,5))/2. + (Epsilon(1,2,3,-1)*P(-1,1)*Metric(4,5))/2. - (Epsilon(1,2,3,-1)*P(-1,2)*Metric(4,5))/2.')
2585
2586-VVVVV4 = Lorentz(name = 'VVVVV4',
2587- spins = [ 3, 3, 3, 3, 3 ],
2588- structure = 'Epsilon(2,3,4,5)*P(1,2) - Epsilon(2,3,4,5)*P(1,5) + Epsilon(1,3,4,5)*P(2,1) - Epsilon(1,3,4,5)*P(2,5) + Epsilon(1,2,3,4)*P(5,1) - Epsilon(1,2,3,4)*P(5,2) + Epsilon(3,4,5,-1)*P(-1,1)*Metric(1,2) + Epsilon(3,4,5,-1)*P(-1,2)*Metric(1,2) + Epsilon(3,4,5,-1)*P(-1,5)*Metric(1,2) + (Epsilon(2,4,5,-1)*P(-1,2)*Metric(1,3))/2. - (Epsilon(2,4,5,-1)*P(-1,5)*Metric(1,3))/2. - (Epsilon(2,3,5,-1)*P(-1,2)*Metric(1,4))/2. + (Epsilon(2,3,5,-1)*P(-1,5)*Metric(1,4))/2. + Epsilon(2,3,4,-1)*P(-1,1)*Metric(1,5) + Epsilon(2,3,4,-1)*P(-1,2)*Metric(1,5) + Epsilon(2,3,4,-1)*P(-1,5)*Metric(1,5) + (Epsilon(1,4,5,-1)*P(-1,1)*Metric(2,3))/2. - (Epsilon(1,4,5,-1)*P(-1,5)*Metric(2,3))/2. - (Epsilon(1,3,5,-1)*P(-1,1)*Metric(2,4))/2. + (Epsilon(1,3,5,-1)*P(-1,5)*Metric(2,4))/2. + Epsilon(1,3,4,-1)*P(-1,1)*Metric(2,5) + Epsilon(1,3,4,-1)*P(-1,2)*Metric(2,5) + Epsilon(1,3,4,-1)*P(-1,5)*Metric(2,5) - (Epsilon(1,2,4,-1)*P(-1,1)*Metric(3,5))/2. + (Epsilon(1,2,4,-1)*P(-1,2)*Metric(3,5))/2. + (Epsilon(1,2,3,-1)*P(-1,1)*Metric(4,5))/2. - (Epsilon(1,2,3,-1)*P(-1,2)*Metric(4,5))/2.')
2589-
2590 VVVVV5 = Lorentz(name = 'VVVVV5',
2591 spins = [ 3, 3, 3, 3, 3 ],
2592 structure = '-(Epsilon(1,3,4,5)*P(2,4)) + Epsilon(1,3,4,5)*P(2,5) - Epsilon(1,2,4,5)*P(3,4) + Epsilon(1,2,4,5)*P(3,5) + Epsilon(1,2,3,5)*P(4,2) - Epsilon(1,2,3,5)*P(4,3) + Epsilon(1,2,3,4)*P(5,2) - Epsilon(1,2,3,4)*P(5,3) + (Epsilon(3,4,5,-1)*P(-1,4)*Metric(1,2))/2. - (Epsilon(3,4,5,-1)*P(-1,5)*Metric(1,2))/2. + (Epsilon(2,4,5,-1)*P(-1,4)*Metric(1,3))/2. - (Epsilon(2,4,5,-1)*P(-1,5)*Metric(1,3))/2. - (Epsilon(2,3,5,-1)*P(-1,2)*Metric(1,4))/2. + (Epsilon(2,3,5,-1)*P(-1,3)*Metric(1,4))/2. - (Epsilon(2,3,4,-1)*P(-1,2)*Metric(1,5))/2. + (Epsilon(2,3,4,-1)*P(-1,3)*Metric(1,5))/2. - Epsilon(1,4,5,-1)*P(-1,4)*Metric(2,3) + Epsilon(1,4,5,-1)*P(-1,5)*Metric(2,3) - Epsilon(1,3,5,-1)*P(-1,2)*Metric(2,4) - (Epsilon(1,3,5,-1)*P(-1,3)*Metric(2,4))/2. - Epsilon(1,3,5,-1)*P(-1,4)*Metric(2,4) - (Epsilon(1,3,5,-1)*P(-1,5)*Metric(2,4))/2. - Epsilon(1,3,4,-1)*P(-1,2)*Metric(2,5) - (Epsilon(1,3,4,-1)*P(-1,3)*Metric(2,5))/2. - (Epsilon(1,3,4,-1)*P(-1,4)*Metric(2,5))/2. - Epsilon(1,3,4,-1)*P(-1,5)*Metric(2,5) - (Epsilon(1,2,5,-1)*P(-1,2)*Metric(3,4))/2. - Epsilon(1,2,5,-1)*P(-1,3)*Metric(3,4) - Epsilon(1,2,5,-1)*P(-1,4)*Metric(3,4) - (Epsilon(1,2,5,-1)*P(-1,5)*Metric(3,4))/2. - (Epsilon(1,2,4,-1)*P(-1,2)*Metric(3,5))/2. - Epsilon(1,2,4,-1)*P(-1,3)*Metric(3,5) - (Epsilon(1,2,4,-1)*P(-1,4)*Metric(3,5))/2. - Epsilon(1,2,4,-1)*P(-1,5)*Metric(3,5) + Epsilon(1,2,3,-1)*P(-1,2)*Metric(4,5) - Epsilon(1,2,3,-1)*P(-1,3)*Metric(4,5)')
2593
2594=== modified file 'models/EWdim6/object_library.py'
2595--- models/EWdim6/object_library.py 2013-01-19 17:33:23 +0000
2596+++ models/EWdim6/object_library.py 2013-10-25 11:38:22 +0000
2597@@ -8,7 +8,11 @@
2598 ##
2599
2600 import cmath
2601+import re
2602
2603+class UFOError(Exception):
2604+ """Exception raised if when inconsistencies are detected in the UFO model."""
2605+ pass
2606
2607 class UFOBaseClass(object):
2608 """The class from which all FeynRules classes are derived."""
2609@@ -60,20 +64,19 @@
2610
2611 all_particles = []
2612
2613-
2614-
2615 class Particle(UFOBaseClass):
2616 """A standard Particle"""
2617
2618 require_args=['pdg_code', 'name', 'antiname', 'spin', 'color', 'mass', 'width', 'texname', 'antitexname', 'charge']
2619
2620- require_args_all = ['pdg_code', 'name', 'antiname', 'spin', 'color', 'mass', 'width', 'texname', 'antitexname', 'charge', 'line', 'propagating', 'goldstoneboson']
2621+ require_args_all = ['pdg_code', 'name', 'antiname', 'spin', 'color', 'mass', 'width', 'texname', 'antitexname','counterterm','charge', 'line', 'propagating', 'goldstoneboson', 'propagator']
2622
2623 def __init__(self, pdg_code, name, antiname, spin, color, mass, width, texname,
2624- antitexname, charge , line=None, propagating=True, goldstoneboson=False, **options):
2625+ antitexname, charge , line=None, propagating=True, counterterm=None, goldstoneboson=False,
2626+ propagator=None, **options):
2627
2628 args= (pdg_code, name, antiname, spin, color, mass, width, texname,
2629- antitexname, float(charge))
2630+ antitexname, float(charge))
2631
2632 UFOBaseClass.__init__(self, *args, **options)
2633
2634@@ -84,14 +87,17 @@
2635 self.goldstoneboson= goldstoneboson
2636
2637 self.selfconjugate = (name == antiname)
2638- if 1: #not line:
2639+ if not line:
2640 self.line = self.find_line_type()
2641 else:
2642 self.line = line
2643
2644-
2645-
2646-
2647+ if propagator:
2648+ if isinstance(propagator, dict):
2649+ self.propagator = propagator
2650+ else:
2651+ self.propagator = {0: propagator, 1: propagator}
2652+
2653 def find_line_type(self):
2654 """ find how we draw a line if not defined
2655 valid output: dashed/straight/wavy/curly/double/swavy/scurly
2656@@ -122,7 +128,7 @@
2657 return 'dotted'
2658 else:
2659 return 'dashed' # not supported yet
2660-
2661+
2662 def anti(self):
2663 if self.selfconjugate:
2664 raise Exception('%s has no anti particle.' % self.name)
2665@@ -162,6 +168,37 @@
2666 self.lhablock = lhablock
2667 self.lhacode = lhacode
2668
2669+all_CTparameters = []
2670+
2671+class CTParameter(UFOBaseClass):
2672+
2673+ require_args=['name', 'nature,', 'type', 'value', 'texname']
2674+
2675+ def __init__(self, name, type, value, texname):
2676+
2677+ args = (name,'internal',type,value,texname)
2678+
2679+ UFOBaseClass.__init__(self, *args)
2680+
2681+ args=(name,'internal',type,value,texname)
2682+
2683+ self.nature='interal'
2684+
2685+ global all_CTparameters
2686+ all_CTparameters.append(self)
2687+
2688+ def finite(self):
2689+ try:
2690+ return self.value[0]
2691+ except KeyError:
2692+ return 'ZERO'
2693+
2694+ def pole(self, x):
2695+ try:
2696+ return self.value[-x]
2697+ except KeyError:
2698+ return 'ZERO'
2699+
2700 all_vertices = []
2701
2702 class Vertex(UFOBaseClass):
2703@@ -179,20 +216,76 @@
2704 global all_vertices
2705 all_vertices.append(self)
2706
2707+all_CTvertices = []
2708+
2709+class CTVertex(UFOBaseClass):
2710+
2711+ require_args=['name', 'particles', 'color', 'lorentz', 'couplings', 'type', 'loop_particles']
2712+
2713+ def __init__(self, name, particles, color, lorentz, couplings, type, loop_particles, **opt):
2714+
2715+ args = (name, particles, color, lorentz, couplings, type, loop_particles)
2716+
2717+ UFOBaseClass.__init__(self, *args, **opt)
2718+
2719+ args=(particles,color,lorentz,couplings, type, loop_particles)
2720+
2721+ global all_CTvertices
2722+ all_CTvertices.append(self)
2723+
2724 all_couplings = []
2725
2726 class Coupling(UFOBaseClass):
2727
2728 require_args=['name', 'value', 'order']
2729
2730+ require_args_all=['name', 'value', 'order', 'loop_particles', 'counterterm']
2731+
2732 def __init__(self, name, value, order, **opt):
2733
2734 args =(name, value, order)
2735 UFOBaseClass.__init__(self, *args, **opt)
2736 global all_couplings
2737 all_couplings.append(self)
2738-
2739-
2740+
2741+ def value(self):
2742+ return self.pole(0)
2743+
2744+ def pole(self, x):
2745+ """ the self.value attribute can be a dictionary directly specifying the Laurent serie using normal
2746+ parameter or just a string which can possibly contain CTparameter defining the Laurent serie."""
2747+
2748+ if isinstance(self.value,dict):
2749+ if -x in self.value.keys():
2750+ return self.value[-x]
2751+ else:
2752+ return 'ZERO'
2753+
2754+ CTparam=None
2755+ for param in all_CTparameters:
2756+ pattern=re.compile(r"(?P<first>\A|\*|\+|\-|\()(?P<name>"+param.name+r")(?P<second>\Z|\*|\+|\-|\))")
2757+ numberOfMatches=len(pattern.findall(self.value))
2758+ if numberOfMatches==1:
2759+ if not CTparam:
2760+ CTparam=param
2761+ else:
2762+ raise UFOError, "UFO does not support yet more than one occurence of CTParameters in the couplings values."
2763+ elif numberOfMatches>1:
2764+ raise UFOError, "UFO does not support yet more than one occurence of CTParameters in the couplings values."
2765+
2766+ if not CTparam:
2767+ if x==0:
2768+ return self.value
2769+ else:
2770+ return 'ZERO'
2771+ else:
2772+ if CTparam.pole(x)=='ZERO':
2773+ return 'ZERO'
2774+ else:
2775+ def substitution(matchedObj):
2776+ return matchedObj.group('first')+"("+CTparam.pole(x)+")"+matchedObj.group('second')
2777+ pattern=re.compile(r"(?P<first>\A|\*|\+|\-|\()(?P<name>"+CTparam.name+r")(?P<second>\Z|\*|\+|\-|\))")
2778+ return pattern.sub(substitution,self.value)
2779
2780 all_lorentz = []
2781
2782@@ -240,6 +333,7 @@
2783 self.name = name
2784 self.expansion_order = expansion_order
2785 self.hierarchy = hierarchy
2786+ self.perturbative_expansion = perturbative_expansion
2787
2788 all_decays = []
2789
2790@@ -269,3 +363,15 @@
2791 all_form_factors.append(self)
2792
2793
2794+all_propagators = []
2795+
2796+class Propagator(UFOBaseClass):
2797+
2798+ require_args = ['name','numerator','denominator']
2799+
2800+ def __init__(self, name, numerator, denominator=None, **opt):
2801+ args = (name, numerator, denominator)
2802+ UFOBaseClass.__init__(self, *args, **opt)
2803+
2804+ global all_propagators
2805+ all_propagators.append(self)
2806
2807=== modified file 'models/EWdim6/parameters.py'
2808--- models/EWdim6/parameters.py 2013-01-23 01:06:16 +0000
2809+++ models/EWdim6/parameters.py 2013-10-25 11:38:22 +0000
2810@@ -1,6 +1,6 @@
2811-# This file was automatically created by FeynRules 1.7.127
2812+# This file was automatically created by FeynRules 2.1.0
2813 # Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
2814-# Date: Tue 22 Jan 2013 16:20:54
2815+# Date: Tue 15 Oct 2013 22:07:41
2816
2817
2818
2819@@ -57,6 +57,30 @@
2820 lhablock = 'DIM6',
2821 lhacode = [ 5 ])
2822
2823+CphidL2 = Parameter(name = 'CphidL2',
2824+ nature = 'external',
2825+ type = 'real',
2826+ value = 1,
2827+ texname = '\\frac{C_{\\text{$\\phi $d}}}{\\Lambda ^2}',
2828+ lhablock = 'DIM6',
2829+ lhacode = [ 6 ])
2830+
2831+CphiWL2 = Parameter(name = 'CphiWL2',
2832+ nature = 'external',
2833+ type = 'real',
2834+ value = 1,
2835+ texname = '\\frac{C_{\\text{$\\phi $W}}}{\\Lambda ^2}',
2836+ lhablock = 'DIM6',
2837+ lhacode = [ 7 ])
2838+
2839+CphiBL2 = Parameter(name = 'CphiBL2',
2840+ nature = 'external',
2841+ type = 'real',
2842+ value = 1,
2843+ texname = '\\frac{C_{\\text{$\\phi $B}}}{\\Lambda ^2}',
2844+ lhablock = 'DIM6',
2845+ lhacode = [ 8 ])
2846+
2847 aEWM1 = Parameter(name = 'aEWM1',
2848 nature = 'external',
2849 type = 'real',
2850@@ -77,7 +101,7 @@
2851 nature = 'external',
2852 type = 'real',
2853 value = 0.1184,
2854- texname = '\\text{aS}',
2855+ texname = '\\alpha _s',
2856 lhablock = 'SMINPUTS',
2857 lhacode = [ 3 ])
2858
2859@@ -113,6 +137,14 @@
2860 lhablock = 'Wolfenstein',
2861 lhacode = [ 4 ])
2862
2863+ymc = Parameter(name = 'ymc',
2864+ nature = 'external',
2865+ type = 'real',
2866+ value = 1.27,
2867+ texname = '\\text{ymc}',
2868+ lhablock = 'YUKAWA',
2869+ lhacode = [ 4 ])
2870+
2871 ymb = Parameter(name = 'ymb',
2872 nature = 'external',
2873 type = 'real',
2874@@ -124,11 +156,19 @@
2875 ymt = Parameter(name = 'ymt',
2876 nature = 'external',
2877 type = 'real',
2878- value = 172.,
2879+ value = 172,
2880 texname = '\\text{ymt}',
2881 lhablock = 'YUKAWA',
2882 lhacode = [ 6 ])
2883
2884+ymm = Parameter(name = 'ymm',
2885+ nature = 'external',
2886+ type = 'real',
2887+ value = 0.10566,
2888+ texname = '\\text{ymm}',
2889+ lhablock = 'YUKAWA',
2890+ lhacode = [ 13 ])
2891+
2892 ymtau = Parameter(name = 'ymtau',
2893 nature = 'external',
2894 type = 'real',
2895@@ -137,6 +177,22 @@
2896 lhablock = 'YUKAWA',
2897 lhacode = [ 15 ])
2898
2899+MZ = Parameter(name = 'MZ',
2900+ nature = 'external',
2901+ type = 'real',
2902+ value = 91.1876,
2903+ texname = '\\text{MZ}',
2904+ lhablock = 'MASS',
2905+ lhacode = [ 23 ])
2906+
2907+MC = Parameter(name = 'MC',
2908+ nature = 'external',
2909+ type = 'real',
2910+ value = 1.27,
2911+ texname = '\\text{MC}',
2912+ lhablock = 'MASS',
2913+ lhacode = [ 4 ])
2914+
2915 MT = Parameter(name = 'MT',
2916 nature = 'external',
2917 type = 'real',
2918@@ -153,14 +209,6 @@
2919 lhablock = 'MASS',
2920 lhacode = [ 5 ])
2921
2922-MZ = Parameter(name = 'MZ',
2923- nature = 'external',
2924- type = 'real',
2925- value = 91.1876,
2926- texname = '\\text{MZ}',
2927- lhablock = 'MASS',
2928- lhacode = [ 23 ])
2929-
2930 MH = Parameter(name = 'MH',
2931 nature = 'external',
2932 type = 'real',
2933@@ -169,6 +217,14 @@
2934 lhablock = 'MASS',
2935 lhacode = [ 25 ])
2936
2937+MM = Parameter(name = 'MM',
2938+ nature = 'external',
2939+ type = 'real',
2940+ value = 0.10566,
2941+ texname = '\\text{MM}',
2942+ lhablock = 'MASS',
2943+ lhacode = [ 13 ])
2944+
2945 MTA = Parameter(name = 'MTA',
2946 nature = 'external',
2947 type = 'real',
2948@@ -177,13 +233,13 @@
2949 lhablock = 'MASS',
2950 lhacode = [ 15 ])
2951
2952-WT = Parameter(name = 'WT',
2953+MP = Parameter(name = 'MP',
2954 nature = 'external',
2955 type = 'real',
2956- value = 1.50833649,
2957- texname = '\\text{WT}',
2958- lhablock = 'DECAY',
2959- lhacode = [ 6 ])
2960+ value = 120,
2961+ texname = '\\text{MP}',
2962+ lhablock = 'MASS',
2963+ lhacode = [ 9000006 ])
2964
2965 WZ = Parameter(name = 'WZ',
2966 nature = 'external',
2967@@ -201,6 +257,14 @@
2968 lhablock = 'DECAY',
2969 lhacode = [ 24 ])
2970
2971+WT = Parameter(name = 'WT',
2972+ nature = 'external',
2973+ type = 'real',
2974+ value = 1.50833649,
2975+ texname = '\\text{WT}',
2976+ lhablock = 'DECAY',
2977+ lhacode = [ 6 ])
2978+
2979 WH = Parameter(name = 'WH',
2980 nature = 'external',
2981 type = 'real',
2982@@ -217,6 +281,14 @@
2983 lhablock = 'DECAY',
2984 lhacode = [ 15 ])
2985
2986+WH1 = Parameter(name = 'WH1',
2987+ nature = 'external',
2988+ type = 'real',
2989+ value = 0.00575308848,
2990+ texname = '\\text{WH1}',
2991+ lhablock = 'DECAY',
2992+ lhacode = [ 9000006 ])
2993+
2994 CKM1x1 = Parameter(name = 'CKM1x1',
2995 nature = 'internal',
2996 type = 'complex',
2997@@ -275,7 +347,7 @@
2998 nature = 'internal',
2999 type = 'real',
3000 value = '1/aEWM1',
3001- texname = '\\text{aEW}')
3002+ texname = '\\alpha _{\\text{EW}}')
3003
3004 G = Parameter(name = 'G',
3005 nature = 'internal',
3006@@ -283,6 +355,12 @@
3007 value = '2*cmath.sqrt(aS)*cmath.sqrt(cmath.pi)',
3008 texname = 'G')
3009
3010+vev = Parameter(name = 'vev',
3011+ nature = 'internal',
3012+ type = 'real',
3013+ value = 'cmath.sqrt(1/Gf)/2**0.25',
3014+ texname = '\\text{vev}')
3015+
3016 MW = Parameter(name = 'MW',
3017 nature = 'internal',
3018 type = 'real',
3019@@ -295,12 +373,72 @@
3020 value = '2*cmath.sqrt(aEW)*cmath.sqrt(cmath.pi)',
3021 texname = 'e')
3022
3023+GH = Parameter(name = 'GH',
3024+ nature = 'internal',
3025+ type = 'real',
3026+ value = '-(G**2*(1 + (13*MH**6)/(16800.*MT**6) + MH**4/(168.*MT**4) + (7*MH**2)/(120.*MT**2)))/(12.*cmath.pi**2*vev)',
3027+ texname = 'G_H')
3028+
3029+Gphi = Parameter(name = 'Gphi',
3030+ nature = 'internal',
3031+ type = 'real',
3032+ value = '-(G**2*(1 + MH**6/(560.*MT**6) + MH**4/(90.*MT**4) + MH**2/(12.*MT**2)))/(8.*cmath.pi**2*vev)',
3033+ texname = 'G_h')
3034+
3035+lam = Parameter(name = 'lam',
3036+ nature = 'internal',
3037+ type = 'real',
3038+ value = '(4*MH**2 - (CphidL2*MH**2*vev**2)/250000.)/(8.*vev**2*(1 - (3*CphidL2*vev**2)/1.e6 + (CphidL2**2*vev**4)/5.e11))',
3039+ texname = '\\text{lam}')
3040+
3041+yb = Parameter(name = 'yb',
3042+ nature = 'internal',
3043+ type = 'real',
3044+ value = '(ymb*cmath.sqrt(2))/vev',
3045+ texname = '\\text{yb}')
3046+
3047+yc = Parameter(name = 'yc',
3048+ nature = 'internal',
3049+ type = 'real',
3050+ value = '(ymc*cmath.sqrt(2))/vev',
3051+ texname = '\\text{yc}')
3052+
3053+ym = Parameter(name = 'ym',
3054+ nature = 'internal',
3055+ type = 'real',
3056+ value = '(ymm*cmath.sqrt(2))/vev',
3057+ texname = '\\text{ym}')
3058+
3059+yt = Parameter(name = 'yt',
3060+ nature = 'internal',
3061+ type = 'real',
3062+ value = '(ymt*cmath.sqrt(2))/vev',
3063+ texname = '\\text{yt}')
3064+
3065+ytau = Parameter(name = 'ytau',
3066+ nature = 'internal',
3067+ type = 'real',
3068+ value = '(ymtau*cmath.sqrt(2))/vev',
3069+ texname = '\\text{ytau}')
3070+
3071+muH = Parameter(name = 'muH',
3072+ nature = 'internal',
3073+ type = 'real',
3074+ value = 'cmath.sqrt((-4*lam*vev**2 + (CphidL2*lam*vev**4)/250000.)/(-1 + (CphidL2*vev**2)/1.e6))/2.',
3075+ texname = '\\mu')
3076+
3077 sw2 = Parameter(name = 'sw2',
3078 nature = 'internal',
3079 type = 'real',
3080 value = '1 - MW**2/MZ**2',
3081 texname = '\\text{sw2}')
3082
3083+AH = Parameter(name = 'AH',
3084+ nature = 'internal',
3085+ type = 'real',
3086+ value = '(47*ee**2*(1 - (2*MH**4)/(987.*MT**4) - (14*MH**2)/(705.*MT**2) + (213*MH**12)/(2.634632e7*MW**12) + (5*MH**10)/(119756.*MW**10) + (41*MH**8)/(180950.*MW**8) + (87*MH**6)/(65800.*MW**6) + (57*MH**4)/(6580.*MW**4) + (33*MH**2)/(470.*MW**2)))/(72.*cmath.pi**2*vev)',
3087+ texname = 'A_H')
3088+
3089 cw = Parameter(name = 'cw',
3090 nature = 'internal',
3091 type = 'real',
3092@@ -325,39 +463,3 @@
3093 value = 'ee/sw',
3094 texname = 'g_w')
3095
3096-v = Parameter(name = 'v',
3097- nature = 'internal',
3098- type = 'real',
3099- value = '(2*MW*sw)/ee',
3100- texname = 'v')
3101-
3102-lam = Parameter(name = 'lam',
3103- nature = 'internal',
3104- type = 'real',
3105- value = 'MH**2/(2.*v**2)',
3106- texname = '\\text{lam}')
3107-
3108-yb = Parameter(name = 'yb',
3109- nature = 'internal',
3110- type = 'real',
3111- value = '(ymb*cmath.sqrt(2))/v',
3112- texname = '\\text{yb}')
3113-
3114-yt = Parameter(name = 'yt',
3115- nature = 'internal',
3116- type = 'real',
3117- value = '(ymt*cmath.sqrt(2))/v',
3118- texname = '\\text{yt}')
3119-
3120-ytau = Parameter(name = 'ytau',
3121- nature = 'internal',
3122- type = 'real',
3123- value = '(ymtau*cmath.sqrt(2))/v',
3124- texname = '\\text{ytau}')
3125-
3126-muH = Parameter(name = 'muH',
3127- nature = 'internal',
3128- type = 'real',
3129- value = 'cmath.sqrt(lam*v**2)',
3130- texname = '\\mu')
3131-
3132
3133=== modified file 'models/EWdim6/particles.py'
3134--- models/EWdim6/particles.py 2013-01-23 01:06:16 +0000
3135+++ models/EWdim6/particles.py 2013-10-25 11:38:22 +0000
3136@@ -1,12 +1,152 @@
3137-# This file was automatically created by FeynRules 1.7.127
3138+# This file was automatically created by FeynRules 2.1.0
3139 # Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
3140-# Date: Tue 22 Jan 2013 16:20:54
3141+# Date: Tue 15 Oct 2013 22:07:41
3142
3143
3144 from __future__ import division
3145 from object_library import all_particles, Particle
3146 import parameters as Param
3147
3148+import propagators as Prop
3149+
3150+a = Particle(pdg_code = 22,
3151+ name = 'a',
3152+ antiname = 'a',
3153+ spin = 3,
3154+ color = 1,
3155+ mass = Param.ZERO,
3156+ width = Param.ZERO,
3157+ texname = 'a',
3158+ antitexname = 'a',
3159+ charge = 0,
3160+ GhostNumber = 0,
3161+ LeptonNumber = 0,
3162+ Y = 0)
3163+
3164+Z = Particle(pdg_code = 23,
3165+ name = 'Z',
3166+ antiname = 'Z',
3167+ spin = 3,
3168+ color = 1,
3169+ mass = Param.MZ,
3170+ width = Param.WZ,
3171+ texname = 'Z',
3172+ antitexname = 'Z',
3173+ charge = 0,
3174+ GhostNumber = 0,
3175+ LeptonNumber = 0,
3176+ Y = 0)
3177+
3178+W__plus__ = Particle(pdg_code = 24,
3179+ name = 'W+',
3180+ antiname = 'W-',
3181+ spin = 3,
3182+ color = 1,
3183+ mass = Param.MW,
3184+ width = Param.WW,
3185+ texname = 'W+',
3186+ antitexname = 'W-',
3187+ charge = 1,
3188+ GhostNumber = 0,
3189+ LeptonNumber = 0,
3190+ Y = 0)
3191+
3192+W__minus__ = W__plus__.anti()
3193+
3194+g = Particle(pdg_code = 21,
3195+ name = 'g',
3196+ antiname = 'g',
3197+ spin = 3,
3198+ color = 8,
3199+ mass = Param.ZERO,
3200+ width = Param.ZERO,
3201+ texname = 'g',
3202+ antitexname = 'g',
3203+ charge = 0,
3204+ GhostNumber = 0,
3205+ LeptonNumber = 0,
3206+ Y = 0)
3207+
3208+ghA = Particle(pdg_code = 9000001,
3209+ name = 'ghA',
3210+ antiname = 'ghA~',
3211+ spin = -1,
3212+ color = 1,
3213+ mass = Param.ZERO,
3214+ width = Param.ZERO,
3215+ texname = 'ghA',
3216+ antitexname = 'ghA~',
3217+ charge = 0,
3218+ GhostNumber = 1,
3219+ LeptonNumber = 0,
3220+ Y = 0)
3221+
3222+ghA__tilde__ = ghA.anti()
3223+
3224+ghZ = Particle(pdg_code = 9000002,
3225+ name = 'ghZ',
3226+ antiname = 'ghZ~',
3227+ spin = -1,
3228+ color = 1,
3229+ mass = Param.MZ,
3230+ width = Param.ZERO,
3231+ texname = 'ghZ',
3232+ antitexname = 'ghZ~',
3233+ charge = 0,
3234+ GhostNumber = 1,
3235+ LeptonNumber = 0,
3236+ Y = 0)
3237+
3238+ghZ__tilde__ = ghZ.anti()
3239+
3240+ghWp = Particle(pdg_code = 9000003,
3241+ name = 'ghWp',
3242+ antiname = 'ghWp~',
3243+ spin = -1,
3244+ color = 1,
3245+ mass = Param.MW,
3246+ width = Param.ZERO,
3247+ texname = 'ghWp',
3248+ antitexname = 'ghWp~',
3249+ charge = 1,
3250+ GhostNumber = 1,
3251+ LeptonNumber = 0,
3252+ Y = 0)
3253+
3254+ghWp__tilde__ = ghWp.anti()
3255+
3256+ghWm = Particle(pdg_code = 9000004,
3257+ name = 'ghWm',
3258+ antiname = 'ghWm~',
3259+ spin = -1,
3260+ color = 1,
3261+ mass = Param.MW,
3262+ width = Param.ZERO,
3263+ texname = 'ghWm',
3264+ antitexname = 'ghWm~',
3265+ charge = -1,
3266+ GhostNumber = 1,
3267+ LeptonNumber = 0,
3268+ Y = 0)
3269+
3270+ghWm__tilde__ = ghWm.anti()
3271+
3272+ghG = Particle(pdg_code = 9000005,
3273+ name = 'ghG',
3274+ antiname = 'ghG~',
3275+ spin = -1,
3276+ color = 8,
3277+ mass = Param.ZERO,
3278+ width = Param.ZERO,
3279+ texname = 'ghG',
3280+ antitexname = 'ghG~',
3281+ charge = 0,
3282+ GhostNumber = 1,
3283+ LeptonNumber = 0,
3284+ Y = 0)
3285+
3286+ghG__tilde__ = ghG.anti()
3287+
3288 ve = Particle(pdg_code = 12,
3289 name = 've',
3290 antiname = 've~',
3291@@ -18,7 +158,8 @@
3292 antitexname = 've~',
3293 charge = 0,
3294 GhostNumber = 0,
3295- LeptonNumber = 1)
3296+ LeptonNumber = 1,
3297+ Y = 0)
3298
3299 ve__tilde__ = ve.anti()
3300
3301@@ -33,7 +174,8 @@
3302 antitexname = 'vm~',
3303 charge = 0,
3304 GhostNumber = 0,
3305- LeptonNumber = 1)
3306+ LeptonNumber = 1,
3307+ Y = 0)
3308
3309 vm__tilde__ = vm.anti()
3310
3311@@ -48,7 +190,8 @@
3312 antitexname = 'vt~',
3313 charge = 0,
3314 GhostNumber = 0,
3315- LeptonNumber = 1)
3316+ LeptonNumber = 1,
3317+ Y = 0)
3318
3319 vt__tilde__ = vt.anti()
3320
3321@@ -63,7 +206,8 @@
3322 antitexname = 'u~',
3323 charge = 2/3,
3324 GhostNumber = 0,
3325- LeptonNumber = 0)
3326+ LeptonNumber = 0,
3327+ Y = 0)
3328
3329 u__tilde__ = u.anti()
3330
3331@@ -72,13 +216,14 @@
3332 antiname = 'c~',
3333 spin = 2,
3334 color = 3,
3335- mass = Param.ZERO,
3336+ mass = Param.MC,
3337 width = Param.ZERO,
3338 texname = 'c',
3339 antitexname = 'c~',
3340 charge = 2/3,
3341 GhostNumber = 0,
3342- LeptonNumber = 0)
3343+ LeptonNumber = 0,
3344+ Y = 0)
3345
3346 c__tilde__ = c.anti()
3347
3348@@ -93,7 +238,8 @@
3349 antitexname = 't~',
3350 charge = 2/3,
3351 GhostNumber = 0,
3352- LeptonNumber = 0)
3353+ LeptonNumber = 0,
3354+ Y = 0)
3355
3356 t__tilde__ = t.anti()
3357
3358@@ -108,7 +254,8 @@
3359 antitexname = 'd~',
3360 charge = -1/3,
3361 GhostNumber = 0,
3362- LeptonNumber = 0)
3363+ LeptonNumber = 0,
3364+ Y = 0)
3365
3366 d__tilde__ = d.anti()
3367
3368@@ -123,7 +270,8 @@
3369 antitexname = 's~',
3370 charge = -1/3,
3371 GhostNumber = 0,
3372- LeptonNumber = 0)
3373+ LeptonNumber = 0,
3374+ Y = 0)
3375
3376 s__tilde__ = s.anti()
3377
3378@@ -138,139 +286,11 @@
3379 antitexname = 'b~',
3380 charge = -1/3,
3381 GhostNumber = 0,
3382- LeptonNumber = 0)
3383+ LeptonNumber = 0,
3384+ Y = 0)
3385
3386 b__tilde__ = b.anti()
3387
3388-ghA = Particle(pdg_code = 9000001,
3389- name = 'ghA',
3390- antiname = 'ghA~',
3391- spin = -1,
3392- color = 1,
3393- mass = Param.ZERO,
3394- width = Param.ZERO,
3395- texname = 'ghA',
3396- antitexname = 'ghA~',
3397- charge = 0,
3398- GhostNumber = 1,
3399- LeptonNumber = 0)
3400-
3401-ghA__tilde__ = ghA.anti()
3402-
3403-ghZ = Particle(pdg_code = 9000002,
3404- name = 'ghZ',
3405- antiname = 'ghZ~',
3406- spin = -1,
3407- color = 1,
3408- mass = Param.MZ,
3409- width = Param.WZ,
3410- texname = 'ghZ',
3411- antitexname = 'ghZ~',
3412- charge = 0,
3413- GhostNumber = 1,
3414- LeptonNumber = 0)
3415-
3416-ghZ__tilde__ = ghZ.anti()
3417-
3418-ghWp = Particle(pdg_code = 9000003,
3419- name = 'ghWp',
3420- antiname = 'ghWp~',
3421- spin = -1,
3422- color = 1,
3423- mass = Param.MW,
3424- width = Param.WW,
3425- texname = 'ghWp',
3426- antitexname = 'ghWp~',
3427- charge = 1,
3428- GhostNumber = 1,
3429- LeptonNumber = 0)
3430-
3431-ghWp__tilde__ = ghWp.anti()
3432-
3433-ghWm = Particle(pdg_code = 9000004,
3434- name = 'ghWm',
3435- antiname = 'ghWm~',
3436- spin = -1,
3437- color = 1,
3438- mass = Param.MW,
3439- width = Param.WW,
3440- texname = 'ghWm',
3441- antitexname = 'ghWm~',
3442- charge = -1,
3443- GhostNumber = 1,
3444- LeptonNumber = 0)
3445-
3446-ghWm__tilde__ = ghWm.anti()
3447-
3448-ghG = Particle(pdg_code = 9000005,
3449- name = 'ghG',
3450- antiname = 'ghG~',
3451- spin = -1,
3452- color = 8,
3453- mass = Param.ZERO,
3454- width = Param.ZERO,
3455- texname = 'ghG',
3456- antitexname = 'ghG~',
3457- charge = 0,
3458- GhostNumber = 1,
3459- LeptonNumber = 0)
3460-
3461-ghG__tilde__ = ghG.anti()
3462-
3463-A = Particle(pdg_code = 22,
3464- name = 'A',
3465- antiname = 'A',
3466- spin = 3,
3467- color = 1,
3468- mass = Param.ZERO,
3469- width = Param.ZERO,
3470- texname = 'A',
3471- antitexname = 'A',
3472- charge = 0,
3473- GhostNumber = 0,
3474- LeptonNumber = 0)
3475-
3476-Z = Particle(pdg_code = 23,
3477- name = 'Z',
3478- antiname = 'Z',
3479- spin = 3,
3480- color = 1,
3481- mass = Param.MZ,
3482- width = Param.WZ,
3483- texname = 'Z',
3484- antitexname = 'Z',
3485- charge = 0,
3486- GhostNumber = 0,
3487- LeptonNumber = 0)
3488-
3489-W__plus__ = Particle(pdg_code = 24,
3490- name = 'W+',
3491- antiname = 'W-',
3492- spin = 3,
3493- color = 1,
3494- mass = Param.MW,
3495- width = Param.WW,
3496- texname = 'W+',
3497- antitexname = 'W-',
3498- charge = 1,
3499- GhostNumber = 0,
3500- LeptonNumber = 0)
3501-
3502-W__minus__ = W__plus__.anti()
3503-
3504-G = Particle(pdg_code = 21,
3505- name = 'G',
3506- antiname = 'G',
3507- spin = 3,
3508- color = 8,
3509- mass = Param.ZERO,
3510- width = Param.ZERO,
3511- texname = 'G',
3512- antitexname = 'G',
3513- charge = 0,
3514- GhostNumber = 0,
3515- LeptonNumber = 0)
3516-
3517 H = Particle(pdg_code = 25,
3518 name = 'H',
3519 antiname = 'H',
3520@@ -278,41 +298,44 @@
3521 color = 1,
3522 mass = Param.MH,
3523 width = Param.WH,
3524- texname = '\\phi',
3525- antitexname = '\\phi',
3526+ texname = 'H',
3527+ antitexname = 'H',
3528 charge = 0,
3529 GhostNumber = 0,
3530- LeptonNumber = 0)
3531-
3532-phi0 = Particle(pdg_code = 250,
3533- name = 'phi0',
3534- antiname = 'phi0',
3535- spin = 1,
3536- color = 1,
3537- mass = Param.MZ,
3538- width = Param.ZERO,
3539- texname = 'phi0',
3540- antitexname = 'phi0',
3541- GoldstoneBoson = True,
3542- charge = 0,
3543- GhostNumber = 0,
3544- LeptonNumber = 0)
3545-
3546-phi__plus__ = Particle(pdg_code = 251,
3547- name = 'phi+',
3548- antiname = 'phi-',
3549- spin = 1,
3550- color = 1,
3551- mass = Param.MW,
3552- width = Param.ZERO,
3553- texname = '\\phi^+',
3554- antitexname = '\\phi^-',
3555- GoldstoneBoson = True,
3556- charge = 1,
3557- GhostNumber = 0,
3558- LeptonNumber = 0)
3559-
3560-phi__minus__ = phi__plus__.anti()
3561+ LeptonNumber = 0,
3562+ Y = 0)
3563+
3564+G0 = Particle(pdg_code = 250,
3565+ name = 'G0',
3566+ antiname = 'G0',
3567+ spin = 1,
3568+ color = 1,
3569+ mass = Param.MZ,
3570+ width = Param.ZERO,
3571+ texname = 'G0',
3572+ antitexname = 'G0',
3573+ goldstone = True,
3574+ charge = 0,
3575+ GhostNumber = 0,
3576+ LeptonNumber = 0,
3577+ Y = 0)
3578+
3579+G__plus__ = Particle(pdg_code = 251,
3580+ name = 'G+',
3581+ antiname = 'G-',
3582+ spin = 1,
3583+ color = 1,
3584+ mass = Param.MW,
3585+ width = Param.ZERO,
3586+ texname = 'G+',
3587+ antitexname = 'G-',
3588+ goldstone = True,
3589+ charge = 1,
3590+ GhostNumber = 0,
3591+ LeptonNumber = 0,
3592+ Y = 0)
3593+
3594+G__minus__ = G__plus__.anti()
3595
3596 e__minus__ = Particle(pdg_code = 11,
3597 name = 'e-',
3598@@ -325,37 +348,54 @@
3599 antitexname = 'e+',
3600 charge = -1,
3601 GhostNumber = 0,
3602- LeptonNumber = 1)
3603+ LeptonNumber = 1,
3604+ Y = 0)
3605
3606 e__plus__ = e__minus__.anti()
3607
3608-m__minus__ = Particle(pdg_code = 13,
3609- name = 'm-',
3610- antiname = 'm+',
3611- spin = 2,
3612- color = 1,
3613- mass = Param.ZERO,
3614- width = Param.ZERO,
3615- texname = 'm-',
3616- antitexname = 'm+',
3617- charge = -1,
3618- GhostNumber = 0,
3619- LeptonNumber = 1)
3620-
3621-m__plus__ = m__minus__.anti()
3622-
3623-tt__minus__ = Particle(pdg_code = 15,
3624- name = 'tt-',
3625- antiname = 'tt+',
3626+mu__minus__ = Particle(pdg_code = 13,
3627+ name = 'mu-',
3628+ antiname = 'mu+',
3629+ spin = 2,
3630+ color = 1,
3631+ mass = Param.MM,
3632+ width = Param.ZERO,
3633+ texname = 'mu-',
3634+ antitexname = 'mu+',
3635+ charge = -1,
3636+ GhostNumber = 0,
3637+ LeptonNumber = 1,
3638+ Y = 0)
3639+
3640+mu__plus__ = mu__minus__.anti()
3641+
3642+ta__minus__ = Particle(pdg_code = 15,
3643+ name = 'ta-',
3644+ antiname = 'ta+',
3645 spin = 2,
3646 color = 1,
3647 mass = Param.MTA,
3648 width = Param.WTau,
3649- texname = 'tt-',
3650- antitexname = 'tt+',
3651+ texname = 'ta-',
3652+ antitexname = 'ta+',
3653 charge = -1,
3654 GhostNumber = 0,
3655- LeptonNumber = 1)
3656-
3657-tt__plus__ = tt__minus__.anti()
3658+ LeptonNumber = 1,
3659+ Y = 0)
3660+
3661+ta__plus__ = ta__minus__.anti()
3662+
3663+h1 = Particle(pdg_code = 9000006,
3664+ name = 'h1',
3665+ antiname = 'h1',
3666+ spin = 1,
3667+ color = 1,
3668+ mass = Param.MP,
3669+ width = Param.WH1,
3670+ texname = 'h1',
3671+ antitexname = 'h1',
3672+ charge = 0,
3673+ GhostNumber = 0,
3674+ LeptonNumber = 0,
3675+ Y = 0)
3676
3677
3678=== added file 'models/EWdim6/propagators.py'
3679--- models/EWdim6/propagators.py 1970-01-01 00:00:00 +0000
3680+++ models/EWdim6/propagators.py 2013-10-25 11:38:22 +0000
3681@@ -0,0 +1,35 @@
3682+# This file was automatically created by FeynRules 1.7.69
3683+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
3684+# Date: Mon 1 Oct 2012 14:58:26
3685+
3686+from object_library import all_propagators, Propagator
3687+
3688+
3689+# define only once the denominator since this is always the same
3690+denominator = "P('mu', id) * P('mu', id) - Mass(id) * Mass(id) + complex(0,1) * Mass(id) * Width(id)"
3691+
3692+# propagator for the scalar
3693+S = Propagator(name = "S",
3694+ numerator = "complex(0,1)",
3695+ denominator = denominator
3696+ )
3697+
3698+# propagator for the incoming fermion # the one for the outcomming is computed on the flight
3699+F = Propagator(name = "F",
3700+ numerator = "complex(0,1) * (Gamma('mu', s1, s2) * P('mu', id) + Mass(id) * Identity(s1, s2))",
3701+ denominator = denominator
3702+ )
3703+
3704+# massive vector in the unitary gauge, can't be use for massless particles
3705+V1 = Propagator(name = "V1",
3706+ numerator = "complex(0,1) * (-1 * Metric(l1, l2) + Metric(l1,'mu')* P('mu', id) * P(l2, id) / Mass(id)**2 ",
3707+ denominator = denominator
3708+ )
3709+
3710+# massless vector and massive vector in unitary gauge
3711+V2 = Propagator(name = "V2",
3712+ numerator = "complex(0,-1) * Metric(l1, l2)",
3713+ denominator = "P('mu', id) * P('mu', id)"
3714+ )
3715+
3716+
3717
3718=== added file 'models/EWdim6/restrict_default.dat'
3719--- models/EWdim6/restrict_default.dat 1970-01-01 00:00:00 +0000
3720+++ models/EWdim6/restrict_default.dat 2013-10-25 11:38:22 +0000
3721@@ -0,0 +1,90 @@
3722+######################################################################
3723+## PARAM_CARD AUTOMATICALY GENERATED BY MG5 ####
3724+######################################################################
3725+###################################
3726+## INFORMATION FOR DIM6
3727+###################################
3728+BLOCK DIM6 #
3729+ 1 9.999999e-01 # cwwwl2
3730+ 2 9.999999e-01 # cwl2
3731+ 3 9.999999e-01 # cbl2
3732+ 4 9.999999e-01 # cpwwwl2
3733+ 5 9.999999e-01 # cpwl2
3734+ 6 0.000000e+00 # cphidl2
3735+ 7 0.000000e+00 # cphiwl2
3736+ 8 0.000000e+00 # cphibl2
3737+###################################
3738+## INFORMATION FOR MASS
3739+###################################
3740+BLOCK MASS #
3741+ 4 0.000000e+00 # mc
3742+ 5 4.700000e+00 # mb
3743+ 6 1.720000e+02 # mt
3744+ 13 0.000000e+00 # mm
3745+ 15 1.777000e+00 # mta
3746+ 23 9.118760e+01 # mz
3747+ 25 1.200000e+02 # mh
3748+ 9000006 1.200120e+02 # mp
3749+ 1 1.000000e-105 # d : 0.0
3750+ 2 1.000000e-105 # u : 0.0
3751+ 3 1.000000e-105 # s : 0.0
3752+ 11 1.000000e-105 # e- : 0.0
3753+ 12 1.000000e-105 # ve : 0.0
3754+ 14 1.000000e-105 # vm : 0.0
3755+ 16 1.000000e-105 # vt : 0.0
3756+ 21 1.000000e-105 # g : 0.0
3757+ 22 1.000000e-105 # a : 0.0
3758+ 24 7.982436e+01 # w+ : cmath.sqrt(mz__exp__2/2. + cmath.sqrt(mz__exp__4/4. - (aew*cmath.pi*mz__exp__2)/(gf*sqrt__2)))
3759+###################################
3760+## INFORMATION FOR SMINPUTS
3761+###################################
3762+BLOCK SMINPUTS #
3763+ 1 1.279000e+02 # aewm1
3764+ 2 1.166370e-05 # gf
3765+ 3 1.184000e-01 # as
3766+###################################
3767+## INFORMATION FOR WOLFENSTEIN
3768+###################################
3769+BLOCK WOLFENSTEIN #
3770+ 1 0.000000e+00 # lamws
3771+ 2 0.000000e+00 # aws
3772+ 3 0.000000e+00 # rhows
3773+ 4 0.000000e+00 # etaws
3774+###################################
3775+## INFORMATION FOR YUKAWA
3776+###################################
3777+BLOCK YUKAWA #
3778+ 4 0.000000e+00 # ymc
3779+ 5 4.700000e+00 # ymb
3780+ 6 1.720000e+02 # ymt
3781+ 13 0.000000e+00 # ymm
3782+ 15 1.777000e+00 # ymtau
3783+###################################
3784+## INFORMATION FOR DECAY
3785+###################################
3786+DECAY 6 1.508336e+00 # wt
3787+DECAY 15 2.270000e-12 # wtau
3788+DECAY 23 2.495200e+00 # wz
3789+DECAY 24 2.085000e+00 # ww
3790+DECAY 25 5.753088e-03 # wh
3791+DECAY 9000006 5.753663e-03 # wh1
3792+DECAY 1 1.000000e-105 # d : 0.0
3793+DECAY 2 1.000000e-105 # u : 0.0
3794+DECAY 3 1.000000e-105 # s : 0.0
3795+DECAY 4 1.000000e-105 # c : 0.0
3796+DECAY 5 1.000000e-105 # b : 0.0
3797+DECAY 11 1.000000e-105 # e- : 0.0
3798+DECAY 12 1.000000e-105 # ve : 0.0
3799+DECAY 13 1.000000e-105 # mu- : 0.0
3800+DECAY 14 1.000000e-105 # vm : 0.0
3801+DECAY 16 1.000000e-105 # vt : 0.0
3802+DECAY 21 1.000000e-105 # g : 0.0
3803+DECAY 22 1.000000e-105 # a : 0.0
3804+###################################
3805+## INFORMATION FOR QNUMBERS 9000006
3806+###################################
3807+BLOCK QNUMBERS 9000006 # h1
3808+ 1 0 # 3 times electric charge
3809+ 2 0 # number of spin states (2s+1)
3810+ 3 0 # colour rep (1: singlet, 3: triplet, 8: octet)
3811+ 4 0 # particle/antiparticle distinction (0=own anti)
3812
3813=== modified file 'models/EWdim6/vertices.py'
3814--- models/EWdim6/vertices.py 2013-01-23 01:06:16 +0000
3815+++ models/EWdim6/vertices.py 2013-10-25 11:38:22 +0000
3816@@ -1,6 +1,6 @@
3817-# This file was automatically created by FeynRules 1.7.127
3818+# This file was automatically created by FeynRules 2.1.0
3819 # Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
3820-# Date: Tue 22 Jan 2013 16:20:54
3821+# Date: Tue 15 Oct 2013 22:07:41
3822
3823
3824 from object_library import all_vertices, Vertex
3825@@ -12,576 +12,606 @@
3826 V_1 = Vertex(name = 'V_1',
3827 particles = [ P.H, P.H, P.H, P.H ],
3828 color = [ '1' ],
3829- lorentz = [ L.SSSS1 ],
3830- couplings = {(0,0):C.GC_31})
3831+ lorentz = [ L.SSSS1, L.SSSS2 ],
3832+ couplings = {(0,0):[ C.GC_16, C.GC_107 ],(0,1):C.GC_2})
3833
3834 V_2 = Vertex(name = 'V_2',
3835 particles = [ P.H, P.H, P.H ],
3836 color = [ '1' ],
3837- lorentz = [ L.SSS1 ],
3838- couplings = {(0,0):C.GC_95})
3839+ lorentz = [ L.SSS1, L.SSS2 ],
3840+ couplings = {(0,0):[ C.GC_89, C.GC_116 ],(0,1):C.GC_88})
3841
3842 V_3 = Vertex(name = 'V_3',
3843- particles = [ P.A, P.A, P.H, P.H ],
3844+ particles = [ P.a, P.a, P.H ],
3845 color = [ '1' ],
3846- lorentz = [ L.VVSS3, L.VVSS9 ],
3847- couplings = {(0,1):C.GC_83,(0,0):C.GC_82})
3848+ lorentz = [ L.VVS4 ],
3849+ couplings = {(0,0):[ C.GC_1, C.GC_118, C.GC_103 ]})
3850
3851 V_4 = Vertex(name = 'V_4',
3852- particles = [ P.A, P.A, P.H ],
3853+ particles = [ P.a, P.H, P.H ],
3854 color = [ '1' ],
3855- lorentz = [ L.VVS4, L.VVS9 ],
3856- couplings = {(0,1):C.GC_123,(0,0):C.GC_122})
3857+ lorentz = [ L.VSS1 ],
3858+ couplings = {(0,0):C.GC_7})
3859
3860 V_5 = Vertex(name = 'V_5',
3861- particles = [ P.A, P.H, P.H ],
3862+ particles = [ P.a, P.a, P.H, P.H ],
3863 color = [ '1' ],
3864- lorentz = [ L.VSS1 ],
3865- couplings = {(0,0):C.GC_48})
3866+ lorentz = [ L.VVSS5 ],
3867+ couplings = {(0,0):C.GC_9})
3868
3869 V_6 = Vertex(name = 'V_6',
3870- particles = [ P.A, P.W__minus__, P.W__plus__ ],
3871- color = [ '1' ],
3872- lorentz = [ L.VVV10, L.VVV2, L.VVV3, L.VVV4, L.VVV7, L.VVV8, L.VVV9 ],
3873- couplings = {(0,2):C.GC_113,(0,1):C.GC_105,(0,6):C.GC_57,(0,0):C.GC_55,(0,4):[ C.GC_47, C.GC_114 ],(0,3):C.GC_104,(0,5):C.GC_106})
3874+ particles = [ P.g, P.g, P.H ],
3875+ color = [ 'Identity(1,2)' ],
3876+ lorentz = [ L.VVS4 ],
3877+ couplings = {(0,0):[ C.GC_13, C.GC_104 ]})
3878
3879 V_7 = Vertex(name = 'V_7',
3880- particles = [ P.A, P.Z, P.H, P.H ],
3881+ particles = [ P.a, P.W__minus__, P.W__plus__ ],
3882 color = [ '1' ],
3883- lorentz = [ L.VVSS1, L.VVSS2, L.VVSS3, L.VVSS7, L.VVSS8, L.VVSS9 ],
3884- couplings = {(0,3):C.GC_81,(0,5):C.GC_76,(0,4):C.GC_80,(0,2):C.GC_50,(0,0):C.GC_65,(0,1):C.GC_9})
3885+ lorentz = [ L.VVV1, L.VVV4, L.VVV7, L.VVV8, L.VVV9 ],
3886+ couplings = {(0,0):C.GC_112,(0,4):C.GC_53,(0,3):C.GC_55,(0,2):C.GC_6,(0,1):C.GC_130})
3887
3888 V_8 = Vertex(name = 'V_8',
3889- particles = [ P.A, P.Z, P.H ],
3890+ particles = [ P.W__minus__, P.W__plus__, P.H, P.H ],
3891 color = [ '1' ],
3892- lorentz = [ L.VVS1, L.VVS3, L.VVS4, L.VVS7, L.VVS8, L.VVS9 ],
3893- couplings = {(0,3):C.GC_121,(0,5):C.GC_116,(0,4):C.GC_120,(0,2):C.GC_97,(0,0):C.GC_103,(0,1):C.GC_86})
3894+ lorentz = [ L.VVSS3, L.VVSS4, L.VVSS5, L.VVSS7 ],
3895+ couplings = {(0,2):C.GC_46,(0,0):C.GC_47,(0,3):C.GC_49,(0,1):[ C.GC_44, C.GC_111 ]})
3896
3897 V_9 = Vertex(name = 'V_9',
3898- particles = [ P.Z, P.H, P.H ],
3899+ particles = [ P.W__minus__, P.W__plus__, P.H ],
3900 color = [ '1' ],
3901- lorentz = [ L.VSS1 ],
3902- couplings = {(0,0):C.GC_8})
3903+ lorentz = [ L.VVS2, L.VVS3, L.VVS4, L.VVS6 ],
3904+ couplings = {(0,2):C.GC_92,(0,0):C.GC_93,(0,3):C.GC_94,(0,1):[ C.GC_91, C.GC_117 ]})
3905
3906 V_10 = Vertex(name = 'V_10',
3907 particles = [ P.W__minus__, P.W__plus__, P.Z ],
3908 color = [ '1' ],
3909- lorentz = [ L.VVV1, L.VVV10, L.VVV3, L.VVV5, L.VVV6, L.VVV7, L.VVV9 ],
3910- couplings = {(0,2):C.GC_107,(0,0):C.GC_111,(0,6):C.GC_20,(0,1):C.GC_18,(0,5):[ C.GC_7, C.GC_108 ],(0,3):C.GC_112,(0,4):C.GC_110})
3911+ lorentz = [ L.VVV2, L.VVV3, L.VVV5, L.VVV6, L.VVV7, L.VVV8, L.VVV9 ],
3912+ couplings = {(0,1):C.GC_109,(0,0):C.GC_114,(0,6):C.GC_38,(0,5):C.GC_39,(0,4):[ C.GC_73, C.GC_110 ],(0,2):C.GC_115,(0,3):C.GC_113})
3913
3914 V_11 = Vertex(name = 'V_11',
3915- particles = [ P.ghG, P.ghG__tilde__, P.G ],
3916- color = [ 'f(1,2,3)' ],
3917- lorentz = [ L.UUV1 ],
3918- couplings = {(0,0):C.GC_4})
3919+ particles = [ P.Z, P.H, P.H ],
3920+ color = [ '1' ],
3921+ lorentz = [ L.VSS1 ],
3922+ couplings = {(0,0):C.GC_74})
3923
3924 V_12 = Vertex(name = 'V_12',
3925- particles = [ P.G, P.G, P.G ],
3926- color = [ 'f(1,2,3)' ],
3927- lorentz = [ L.VVV7 ],
3928- couplings = {(0,0):C.GC_4})
3929+ particles = [ P.a, P.Z, P.H, P.H ],
3930+ color = [ '1' ],
3931+ lorentz = [ L.VVSS1, L.VVSS5, L.VVSS6 ],
3932+ couplings = {(0,1):C.GC_82,(0,0):C.GC_83,(0,2):C.GC_84})
3933
3934 V_13 = Vertex(name = 'V_13',
3935- particles = [ P.G, P.G, P.G, P.G ],
3936- 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)' ],
3937- lorentz = [ L.VVVV1, L.VVVV5, L.VVVV6 ],
3938- couplings = {(1,1):C.GC_6,(0,0):C.GC_6,(2,2):C.GC_6})
3939+ particles = [ P.a, P.Z, P.H ],
3940+ color = [ '1' ],
3941+ lorentz = [ L.VVS1, L.VVS4, L.VVS5 ],
3942+ couplings = {(0,1):C.GC_124,(0,0):C.GC_125,(0,2):C.GC_126})
3943
3944 V_14 = Vertex(name = 'V_14',
3945- particles = [ P.A, P.A, P.W__minus__, P.W__plus__ ],
3946+ particles = [ P.Z, P.Z, P.H, P.H ],
3947 color = [ '1' ],
3948- lorentz = [ L.VVVV2, L.VVVV4, L.VVVV9 ],
3949- couplings = {(0,0):C.GC_67,(0,2):C.GC_68,(0,1):[ C.GC_66, C.GC_128 ]})
3950+ lorentz = [ L.VVSS2, L.VVSS4, L.VVSS5, L.VVSS7 ],
3951+ couplings = {(0,2):C.GC_87,(0,0):C.GC_19,(0,3):C.GC_86,(0,1):[ C.GC_85, C.GC_133 ]})
3952
3953 V_15 = Vertex(name = 'V_15',
3954- particles = [ P.A, P.W__minus__, P.W__plus__, P.Z ],
3955+ particles = [ P.Z, P.Z, P.H ],
3956 color = [ '1' ],
3957- lorentz = [ L.VVVV3, L.VVVV7, L.VVVV8 ],
3958- couplings = {(0,0):C.GC_58,(0,2):C.GC_59,(0,1):[ C.GC_49, C.GC_127 ]})
3959+ lorentz = [ L.VVS2, L.VVS3, L.VVS4, L.VVS6 ],
3960+ couplings = {(0,2):C.GC_129,(0,0):C.GC_121,(0,3):C.GC_128,(0,1):[ C.GC_127, C.GC_134 ]})
3961
3962 V_16 = Vertex(name = 'V_16',
3963- particles = [ P.A, P.W__minus__, P.W__plus__, P.H, P.H ],
3964- color = [ '1' ],
3965- lorentz = [ L.VVVSS2, L.VVVSS3, L.VVVSS4, L.VVVSS6, L.VVVSS7 ],
3966- couplings = {(0,1):C.GC_54,(0,0):C.GC_15,(0,2):C.GC_14,(0,3):C.GC_56,(0,4):C.GC_16})
3967+ particles = [ P.ghG, P.ghG__tilde__, P.g ],
3968+ color = [ 'f(1,2,3)' ],
3969+ lorentz = [ L.UUV1 ],
3970+ couplings = {(0,0):C.GC_10})
3971
3972 V_17 = Vertex(name = 'V_17',
3973- particles = [ P.A, P.W__minus__, P.W__plus__, P.H ],
3974- color = [ '1' ],
3975- lorentz = [ L.VVVS2, L.VVVS3, L.VVVS4, L.VVVS6, L.VVVS7 ],
3976- couplings = {(0,1):C.GC_101,(0,0):C.GC_90,(0,2):C.GC_89,(0,3):C.GC_102,(0,4):C.GC_91})
3977+ particles = [ P.g, P.g, P.g, P.H ],
3978+ color = [ 'f(1,2,3)' ],
3979+ lorentz = [ L.VVVS7 ],
3980+ couplings = {(0,0):[ C.GC_14, C.GC_105 ]})
3981
3982 V_18 = Vertex(name = 'V_18',
3983- particles = [ P.W__minus__, P.W__plus__, P.H, P.H ],
3984- color = [ '1' ],
3985- lorentz = [ L.VVSS5, L.VVSS6, L.VVSS9 ],
3986- couplings = {(0,2):C.GC_13,(0,0):C.GC_11,(0,1):C.GC_32})
3987+ particles = [ P.g, P.g, P.g, P.g, P.H ],
3988+ 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)' ],
3989+ lorentz = [ L.VVVVS1, L.VVVVS3, L.VVVVS4 ],
3990+ couplings = {(1,1):[ C.GC_15, C.GC_106 ],(0,0):[ C.GC_15, C.GC_106 ],(2,2):[ C.GC_15, C.GC_106 ]})
3991
3992 V_19 = Vertex(name = 'V_19',
3993- particles = [ P.W__minus__, P.W__plus__, P.H ],
3994- color = [ '1' ],
3995- lorentz = [ L.VVS2, L.VVS6, L.VVS9 ],
3996- couplings = {(0,2):C.GC_88,(0,0):C.GC_87,(0,1):C.GC_96})
3997+ particles = [ P.g, P.g, P.g ],
3998+ color = [ 'f(1,2,3)' ],
3999+ lorentz = [ L.VVV7 ],
4000+ couplings = {(0,0):C.GC_10})
4001
4002 V_20 = Vertex(name = 'V_20',
4003- particles = [ P.A, P.A, P.A, P.W__minus__, P.W__plus__ ],
4004- color = [ '1' ],
4005- lorentz = [ L.VVVVV1, L.VVVVV2 ],
4006- couplings = {(0,0):C.GC_72,(0,1):C.GC_73})
4007+ particles = [ P.g, P.g, P.g, P.g ],
4008+ 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)' ],
4009+ lorentz = [ L.VVVV1, L.VVVV5, L.VVVV6 ],
4010+ couplings = {(1,1):C.GC_12,(0,0):C.GC_12,(2,2):C.GC_12})
4011
4012 V_21 = Vertex(name = 'V_21',
4013- particles = [ P.A, P.A, P.W__minus__, P.W__plus__, P.Z ],
4014- color = [ '1' ],
4015- lorentz = [ L.VVVVV10, L.VVVVV4 ],
4016- couplings = {(0,1):C.GC_69,(0,0):C.GC_70})
4017+ particles = [ P.b__tilde__, P.b, P.H ],
4018+ color = [ 'Identity(1,2)' ],
4019+ lorentz = [ L.FFS1 ],
4020+ couplings = {(0,0):[ C.GC_135, C.GC_136 ]})
4021
4022 V_22 = Vertex(name = 'V_22',
4023- particles = [ P.W__minus__, P.W__minus__, P.W__plus__, P.W__plus__ ],
4024+ particles = [ P.mu__plus__, P.mu__minus__, P.H ],
4025 color = [ '1' ],
4026- lorentz = [ L.VVVV2, L.VVVV4, L.VVVV9 ],
4027- couplings = {(0,0):C.GC_21,(0,2):C.GC_24,(0,1):[ C.GC_10, C.GC_109 ]})
4028+ lorentz = [ L.FFS1 ],
4029+ couplings = {(0,0):[ C.GC_139, C.GC_140 ]})
4030
4031 V_23 = Vertex(name = 'V_23',
4032- particles = [ P.A, P.W__minus__, P.W__minus__, P.W__plus__, P.W__plus__ ],
4033+ particles = [ P.ta__plus__, P.ta__minus__, P.H ],
4034 color = [ '1' ],
4035- lorentz = [ L.VVVVV12, L.VVVVV5 ],
4036- couplings = {(0,1):C.GC_60,(0,0):C.GC_62})
4037+ lorentz = [ L.FFS1 ],
4038+ couplings = {(0,0):[ C.GC_143, C.GC_144 ]})
4039
4040 V_24 = Vertex(name = 'V_24',
4041- particles = [ P.W__minus__, P.W__plus__, P.Z, P.H, P.H ],
4042- color = [ '1' ],
4043- lorentz = [ L.VVVSS1, L.VVVSS3, L.VVVSS5, L.VVVSS6, L.VVVSS8 ],
4044- couplings = {(0,1):C.GC_17,(0,0):C.GC_52,(0,3):C.GC_19,(0,4):C.GC_53,(0,2):C.GC_51})
4045+ particles = [ P.c__tilde__, P.c, P.H ],
4046+ color = [ 'Identity(1,2)' ],
4047+ lorentz = [ L.FFS1 ],
4048+ couplings = {(0,0):[ C.GC_137, C.GC_138 ]})
4049
4050 V_25 = Vertex(name = 'V_25',
4051- particles = [ P.W__minus__, P.W__plus__, P.Z, P.H ],
4052- color = [ '1' ],
4053- lorentz = [ L.VVVS1, L.VVVS3, L.VVVS5, L.VVVS6, L.VVVS8 ],
4054- couplings = {(0,1):C.GC_92,(0,0):C.GC_99,(0,3):C.GC_93,(0,4):C.GC_100,(0,2):C.GC_98})
4055+ particles = [ P.t__tilde__, P.t, P.H ],
4056+ color = [ 'Identity(1,2)' ],
4057+ lorentz = [ L.FFS1 ],
4058+ couplings = {(0,0):[ C.GC_141, C.GC_142 ]})
4059
4060 V_26 = Vertex(name = 'V_26',
4061- particles = [ P.A, P.A, P.W__minus__, P.W__plus__, P.H, P.H ],
4062+ particles = [ P.a, P.a, P.W__minus__, P.W__plus__ ],
4063 color = [ '1' ],
4064- lorentz = [ L.VVVVSS1 ],
4065- couplings = {(0,0):C.GC_85})
4066+ lorentz = [ L.VVVV2, L.VVVV4, L.VVVV9 ],
4067+ couplings = {(0,0):C.GC_57,(0,2):C.GC_58,(0,1):C.GC_8})
4068
4069 V_27 = Vertex(name = 'V_27',
4070- particles = [ P.A, P.A, P.W__minus__, P.W__plus__, P.H ],
4071+ particles = [ P.a, P.W__minus__, P.W__plus__, P.Z ],
4072 color = [ '1' ],
4073- lorentz = [ L.VVVVS1 ],
4074- couplings = {(0,0):C.GC_125})
4075+ lorentz = [ L.VVVV3, L.VVVV7, L.VVVV8 ],
4076+ couplings = {(0,0):C.GC_40,(0,2):C.GC_41,(0,1):[ C.GC_75, C.GC_132 ]})
4077
4078 V_28 = Vertex(name = 'V_28',
4079- particles = [ P.W__minus__, P.W__minus__, P.W__plus__, P.W__plus__, P.H, P.H ],
4080+ particles = [ P.a, P.W__minus__, P.W__plus__, P.H, P.H ],
4081 color = [ '1' ],
4082- lorentz = [ L.VVVVSS1 ],
4083- couplings = {(0,0):C.GC_23})
4084+ lorentz = [ L.VVVSS2, L.VVVSS4, L.VVVSS5, L.VVVSS7 ],
4085+ couplings = {(0,0):C.GC_52,(0,1):C.GC_50,(0,3):C.GC_51,(0,2):C.GC_54})
4086
4087 V_29 = Vertex(name = 'V_29',
4088- particles = [ P.W__minus__, P.W__minus__, P.W__plus__, P.W__plus__, P.H ],
4089+ particles = [ P.a, P.W__minus__, P.W__plus__, P.H ],
4090 color = [ '1' ],
4091- lorentz = [ L.VVVVS1 ],
4092- couplings = {(0,0):C.GC_94})
4093+ lorentz = [ L.VVVS2, L.VVVS4, L.VVVS5, L.VVVS7 ],
4094+ couplings = {(0,0):C.GC_97,(0,1):C.GC_95,(0,3):C.GC_96,(0,2):C.GC_98})
4095
4096 V_30 = Vertex(name = 'V_30',
4097- particles = [ P.A, P.A, P.W__minus__, P.W__minus__, P.W__plus__, P.W__plus__ ],
4098+ particles = [ P.a, P.a, P.a, P.W__minus__, P.W__plus__ ],
4099 color = [ '1' ],
4100- lorentz = [ L.VVVVVV1 ],
4101- couplings = {(0,0):C.GC_71})
4102+ lorentz = [ L.VVVVV1, L.VVVVV2 ],
4103+ couplings = {(0,0):C.GC_59,(0,1):C.GC_60})
4104
4105 V_31 = Vertex(name = 'V_31',
4106- particles = [ P.W__minus__, P.W__plus__, P.Z, P.Z ],
4107+ particles = [ P.a, P.a, P.W__minus__, P.W__plus__, P.Z ],
4108 color = [ '1' ],
4109- lorentz = [ L.VVVV2, L.VVVV4, L.VVVV9 ],
4110- couplings = {(0,0):C.GC_22,(0,2):C.GC_25,(0,1):[ C.GC_12, C.GC_126 ]})
4111+ lorentz = [ L.VVVVV10, L.VVVVV3 ],
4112+ couplings = {(0,1):C.GC_42,(0,0):C.GC_43})
4113
4114 V_32 = Vertex(name = 'V_32',
4115- particles = [ P.A, P.W__minus__, P.W__plus__, P.Z, P.Z ],
4116+ particles = [ P.W__minus__, P.W__minus__, P.W__plus__, P.W__plus__ ],
4117 color = [ '1' ],
4118- lorentz = [ L.VVVVV6, L.VVVVV8 ],
4119- couplings = {(0,0):C.GC_61,(0,1):C.GC_63})
4120+ lorentz = [ L.VVVV2, L.VVVV4, L.VVVV9 ],
4121+ couplings = {(0,0):C.GC_28,(0,2):C.GC_30,(0,1):[ C.GC_45, C.GC_108 ]})
4122
4123 V_33 = Vertex(name = 'V_33',
4124- particles = [ P.W__minus__, P.W__minus__, P.W__plus__, P.W__plus__, P.Z ],
4125+ particles = [ P.a, P.W__minus__, P.W__minus__, P.W__plus__, P.W__plus__ ],
4126 color = [ '1' ],
4127- lorentz = [ L.VVVVV3, L.VVVVV9 ],
4128- couplings = {(0,0):C.GC_26,(0,1):C.GC_28})
4129+ lorentz = [ L.VVVVV12, L.VVVVV5 ],
4130+ couplings = {(0,1):C.GC_32,(0,0):C.GC_34})
4131
4132 V_34 = Vertex(name = 'V_34',
4133- particles = [ P.A, P.W__minus__, P.W__minus__, P.W__plus__, P.W__plus__, P.Z ],
4134+ particles = [ P.a, P.a, P.W__minus__, P.W__minus__, P.W__plus__, P.W__plus__ ],
4135 color = [ '1' ],
4136- lorentz = [ L.VVVVVV2 ],
4137- couplings = {(0,0):C.GC_64})
4138+ lorentz = [ L.VVVVVV1 ],
4139+ couplings = {(0,0):C.GC_36})
4140
4141 V_35 = Vertex(name = 'V_35',
4142- particles = [ P.Z, P.Z, P.H, P.H ],
4143+ particles = [ P.W__minus__, P.W__plus__, P.Z, P.H, P.H ],
4144 color = [ '1' ],
4145- lorentz = [ L.VVSS4, L.VVSS6, L.VVSS9 ],
4146- couplings = {(0,2):C.GC_79,(0,0):C.GC_75,(0,1):C.GC_78})
4147+ lorentz = [ L.VVVSS1, L.VVVSS3, L.VVVSS6, L.VVVSS7, L.VVVSS8 ],
4148+ couplings = {(0,1):C.GC_37,(0,0):C.GC_77,(0,3):C.GC_18,(0,4):C.GC_78,(0,2):C.GC_76})
4149
4150 V_36 = Vertex(name = 'V_36',
4151- particles = [ P.Z, P.Z, P.H ],
4152+ particles = [ P.W__minus__, P.W__plus__, P.Z, P.H ],
4153 color = [ '1' ],
4154- lorentz = [ L.VVS5, L.VVS6, L.VVS9 ],
4155- couplings = {(0,2):C.GC_119,(0,0):C.GC_115,(0,1):C.GC_118})
4156+ lorentz = [ L.VVVS1, L.VVVS3, L.VVVS6, L.VVVS7, L.VVVS8 ],
4157+ couplings = {(0,1):C.GC_90,(0,0):C.GC_101,(0,3):C.GC_120,(0,4):C.GC_102,(0,2):C.GC_100})
4158
4159 V_37 = Vertex(name = 'V_37',
4160- particles = [ P.A, P.W__minus__, P.W__plus__, P.Z, P.H, P.H ],
4161+ particles = [ P.W__minus__, P.W__minus__, P.W__plus__, P.W__plus__, P.H, P.H ],
4162 color = [ '1' ],
4163- lorentz = [ L.VVVVSS2 ],
4164- couplings = {(0,0):C.GC_84})
4165+ lorentz = [ L.VVVVSS1 ],
4166+ couplings = {(0,0):C.GC_17})
4167
4168 V_38 = Vertex(name = 'V_38',
4169- particles = [ P.A, P.W__minus__, P.W__plus__, P.Z, P.H ],
4170+ particles = [ P.W__minus__, P.W__minus__, P.W__plus__, P.W__plus__, P.H ],
4171 color = [ '1' ],
4172 lorentz = [ L.VVVVS2 ],
4173- couplings = {(0,0):C.GC_124})
4174+ couplings = {(0,0):C.GC_119})
4175
4176 V_39 = Vertex(name = 'V_39',
4177- particles = [ P.W__minus__, P.W__plus__, P.Z, P.Z, P.H, P.H ],
4178+ particles = [ P.a, P.a, P.W__minus__, P.W__plus__, P.H, P.H ],
4179 color = [ '1' ],
4180 lorentz = [ L.VVVVSS1 ],
4181- couplings = {(0,0):C.GC_77})
4182+ couplings = {(0,0):C.GC_56})
4183
4184 V_40 = Vertex(name = 'V_40',
4185- particles = [ P.W__minus__, P.W__plus__, P.Z, P.Z, P.H ],
4186+ particles = [ P.a, P.a, P.W__minus__, P.W__plus__, P.H ],
4187 color = [ '1' ],
4188- lorentz = [ L.VVVVS1 ],
4189- couplings = {(0,0):C.GC_117})
4190+ lorentz = [ L.VVVVS2 ],
4191+ couplings = {(0,0):C.GC_99})
4192
4193 V_41 = Vertex(name = 'V_41',
4194- particles = [ P.W__minus__, P.W__plus__, P.Z, P.Z, P.Z ],
4195+ particles = [ P.W__minus__, P.W__plus__, P.Z, P.Z ],
4196 color = [ '1' ],
4197- lorentz = [ L.VVVVV11, L.VVVVV7 ],
4198- couplings = {(0,1):C.GC_27,(0,0):C.GC_29})
4199+ lorentz = [ L.VVVV2, L.VVVV4, L.VVVV9 ],
4200+ couplings = {(0,0):C.GC_29,(0,2):C.GC_31,(0,1):[ C.GC_48, C.GC_131 ]})
4201
4202 V_42 = Vertex(name = 'V_42',
4203- particles = [ P.W__minus__, P.W__minus__, P.W__plus__, P.W__plus__, P.Z, P.Z ],
4204+ particles = [ P.a, P.W__minus__, P.W__plus__, P.Z, P.Z ],
4205 color = [ '1' ],
4206- lorentz = [ L.VVVVVV1 ],
4207- couplings = {(0,0):C.GC_30})
4208+ lorentz = [ L.VVVVV6, L.VVVVV8 ],
4209+ couplings = {(0,0):C.GC_33,(0,1):C.GC_35})
4210
4211 V_43 = Vertex(name = 'V_43',
4212- particles = [ P.d__tilde__, P.d, P.A ],
4213- color = [ 'Identity(1,2)' ],
4214- lorentz = [ L.FFV1 ],
4215- couplings = {(0,0):C.GC_1})
4216+ particles = [ P.W__minus__, P.W__minus__, P.W__plus__, P.W__plus__, P.Z ],
4217+ color = [ '1' ],
4218+ lorentz = [ L.VVVVV4, L.VVVVV9 ],
4219+ couplings = {(0,0):C.GC_23,(0,1):C.GC_25})
4220
4221 V_44 = Vertex(name = 'V_44',
4222- particles = [ P.s__tilde__, P.s, P.A ],
4223- color = [ 'Identity(1,2)' ],
4224- lorentz = [ L.FFV1 ],
4225- couplings = {(0,0):C.GC_1})
4226+ particles = [ P.a, P.W__minus__, P.W__minus__, P.W__plus__, P.W__plus__, P.Z ],
4227+ color = [ '1' ],
4228+ lorentz = [ L.VVVVVV2 ],
4229+ couplings = {(0,0):C.GC_27})
4230
4231 V_45 = Vertex(name = 'V_45',
4232- particles = [ P.b__tilde__, P.b, P.A ],
4233- color = [ 'Identity(1,2)' ],
4234- lorentz = [ L.FFV1 ],
4235- couplings = {(0,0):C.GC_1})
4236+ particles = [ P.W__minus__, P.W__plus__, P.Z, P.Z, P.Z ],
4237+ color = [ '1' ],
4238+ lorentz = [ L.VVVVV11, L.VVVVV7 ],
4239+ couplings = {(0,1):C.GC_24,(0,0):C.GC_26})
4240
4241 V_46 = Vertex(name = 'V_46',
4242- particles = [ P.d__tilde__, P.d, P.G ],
4243- color = [ 'T(3,2,1)' ],
4244- lorentz = [ L.FFV1 ],
4245- couplings = {(0,0):C.GC_5})
4246+ particles = [ P.W__minus__, P.W__minus__, P.W__plus__, P.W__plus__, P.Z, P.Z ],
4247+ color = [ '1' ],
4248+ lorentz = [ L.VVVVVV1 ],
4249+ couplings = {(0,0):C.GC_22})
4250
4251 V_47 = Vertex(name = 'V_47',
4252- particles = [ P.s__tilde__, P.s, P.G ],
4253- color = [ 'T(3,2,1)' ],
4254- lorentz = [ L.FFV1 ],
4255- couplings = {(0,0):C.GC_5})
4256+ particles = [ P.a, P.W__minus__, P.W__plus__, P.Z, P.H, P.H ],
4257+ color = [ '1' ],
4258+ lorentz = [ L.VVVVSS2 ],
4259+ couplings = {(0,0):C.GC_21})
4260
4261 V_48 = Vertex(name = 'V_48',
4262- particles = [ P.b__tilde__, P.b, P.G ],
4263- color = [ 'T(3,2,1)' ],
4264- lorentz = [ L.FFV1 ],
4265- couplings = {(0,0):C.GC_5})
4266+ particles = [ P.a, P.W__minus__, P.W__plus__, P.Z, P.H ],
4267+ color = [ '1' ],
4268+ lorentz = [ L.VVVVS5 ],
4269+ couplings = {(0,0):C.GC_123})
4270
4271 V_49 = Vertex(name = 'V_49',
4272- particles = [ P.b__tilde__, P.b, P.H ],
4273- color = [ 'Identity(1,2)' ],
4274- lorentz = [ L.FFS1 ],
4275- couplings = {(0,0):C.GC_129})
4276+ particles = [ P.W__minus__, P.W__plus__, P.Z, P.Z, P.H, P.H ],
4277+ color = [ '1' ],
4278+ lorentz = [ L.VVVVSS1 ],
4279+ couplings = {(0,0):C.GC_20})
4280
4281 V_50 = Vertex(name = 'V_50',
4282- particles = [ P.d__tilde__, P.d, P.Z ],
4283- color = [ 'Identity(1,2)' ],
4284- lorentz = [ L.FFV2, L.FFV3 ],
4285- couplings = {(0,0):C.GC_43,(0,1):C.GC_45})
4286+ particles = [ P.W__minus__, P.W__plus__, P.Z, P.Z, P.H ],
4287+ color = [ '1' ],
4288+ lorentz = [ L.VVVVS2 ],
4289+ couplings = {(0,0):C.GC_122})
4290
4291 V_51 = Vertex(name = 'V_51',
4292- particles = [ P.s__tilde__, P.s, P.Z ],
4293- color = [ 'Identity(1,2)' ],
4294- lorentz = [ L.FFV2, L.FFV3 ],
4295- couplings = {(0,0):C.GC_43,(0,1):C.GC_45})
4296+ particles = [ P.e__plus__, P.e__minus__, P.a ],
4297+ color = [ '1' ],
4298+ lorentz = [ L.FFV1 ],
4299+ couplings = {(0,0):C.GC_5})
4300
4301 V_52 = Vertex(name = 'V_52',
4302- particles = [ P.b__tilde__, P.b, P.Z ],
4303- color = [ 'Identity(1,2)' ],
4304- lorentz = [ L.FFV2, L.FFV3 ],
4305- couplings = {(0,1):C.GC_45,(0,0):C.GC_43})
4306+ particles = [ P.mu__plus__, P.mu__minus__, P.a ],
4307+ color = [ '1' ],
4308+ lorentz = [ L.FFV1 ],
4309+ couplings = {(0,0):C.GC_5})
4310
4311 V_53 = Vertex(name = 'V_53',
4312- particles = [ P.u__tilde__, P.d, P.W__plus__ ],
4313- color = [ 'Identity(1,2)' ],
4314- lorentz = [ L.FFV2 ],
4315- couplings = {(0,0):C.GC_132})
4316+ particles = [ P.ta__plus__, P.ta__minus__, P.a ],
4317+ color = [ '1' ],
4318+ lorentz = [ L.FFV1 ],
4319+ couplings = {(0,0):C.GC_5})
4320
4321 V_54 = Vertex(name = 'V_54',
4322- particles = [ P.c__tilde__, P.d, P.W__plus__ ],
4323- color = [ 'Identity(1,2)' ],
4324+ particles = [ P.ve__tilde__, P.e__minus__, P.W__plus__ ],
4325+ color = [ '1' ],
4326 lorentz = [ L.FFV2 ],
4327- couplings = {(0,0):C.GC_135})
4328+ couplings = {(0,0):C.GC_61})
4329
4330 V_55 = Vertex(name = 'V_55',
4331- particles = [ P.t__tilde__, P.d, P.W__plus__ ],
4332- color = [ 'Identity(1,2)' ],
4333+ particles = [ P.vm__tilde__, P.mu__minus__, P.W__plus__ ],
4334+ color = [ '1' ],
4335 lorentz = [ L.FFV2 ],
4336- couplings = {(0,0):C.GC_138})
4337+ couplings = {(0,0):C.GC_61})
4338
4339 V_56 = Vertex(name = 'V_56',
4340- particles = [ P.u__tilde__, P.s, P.W__plus__ ],
4341- color = [ 'Identity(1,2)' ],
4342+ particles = [ P.vt__tilde__, P.ta__minus__, P.W__plus__ ],
4343+ color = [ '1' ],
4344 lorentz = [ L.FFV2 ],
4345- couplings = {(0,0):C.GC_133})
4346+ couplings = {(0,0):C.GC_61})
4347
4348 V_57 = Vertex(name = 'V_57',
4349- particles = [ P.c__tilde__, P.s, P.W__plus__ ],
4350- color = [ 'Identity(1,2)' ],
4351- lorentz = [ L.FFV2 ],
4352- couplings = {(0,0):C.GC_136})
4353+ particles = [ P.e__plus__, P.e__minus__, P.Z ],
4354+ color = [ '1' ],
4355+ lorentz = [ L.FFV2, L.FFV4 ],
4356+ couplings = {(0,0):C.GC_71,(0,1):C.GC_80})
4357
4358 V_58 = Vertex(name = 'V_58',
4359- particles = [ P.t__tilde__, P.s, P.W__plus__ ],
4360- color = [ 'Identity(1,2)' ],
4361- lorentz = [ L.FFV2 ],
4362- couplings = {(0,0):C.GC_139})
4363+ particles = [ P.mu__plus__, P.mu__minus__, P.Z ],
4364+ color = [ '1' ],
4365+ lorentz = [ L.FFV2, L.FFV4 ],
4366+ couplings = {(0,1):C.GC_80,(0,0):C.GC_71})
4367
4368 V_59 = Vertex(name = 'V_59',
4369- particles = [ P.u__tilde__, P.b, P.W__plus__ ],
4370- color = [ 'Identity(1,2)' ],
4371- lorentz = [ L.FFV2 ],
4372- couplings = {(0,0):C.GC_134})
4373+ particles = [ P.ta__plus__, P.ta__minus__, P.Z ],
4374+ color = [ '1' ],
4375+ lorentz = [ L.FFV2, L.FFV4 ],
4376+ couplings = {(0,0):C.GC_71,(0,1):C.GC_80})
4377
4378 V_60 = Vertex(name = 'V_60',
4379- particles = [ P.c__tilde__, P.b, P.W__plus__ ],
4380- color = [ 'Identity(1,2)' ],
4381+ particles = [ P.e__plus__, P.ve, P.W__minus__ ],
4382+ color = [ '1' ],
4383 lorentz = [ L.FFV2 ],
4384- couplings = {(0,0):C.GC_137})
4385+ couplings = {(0,0):C.GC_61})
4386
4387 V_61 = Vertex(name = 'V_61',
4388- particles = [ P.t__tilde__, P.b, P.W__plus__ ],
4389- color = [ 'Identity(1,2)' ],
4390+ particles = [ P.mu__plus__, P.vm, P.W__minus__ ],
4391+ color = [ '1' ],
4392 lorentz = [ L.FFV2 ],
4393- couplings = {(0,0):C.GC_140})
4394+ couplings = {(0,0):C.GC_61})
4395
4396 V_62 = Vertex(name = 'V_62',
4397- particles = [ P.e__plus__, P.e__minus__, P.A ],
4398+ particles = [ P.ta__plus__, P.vt, P.W__minus__ ],
4399 color = [ '1' ],
4400- lorentz = [ L.FFV1 ],
4401- couplings = {(0,0):C.GC_3})
4402+ lorentz = [ L.FFV2 ],
4403+ couplings = {(0,0):C.GC_61})
4404
4405 V_63 = Vertex(name = 'V_63',
4406- particles = [ P.m__plus__, P.m__minus__, P.A ],
4407+ particles = [ P.ve__tilde__, P.ve, P.Z ],
4408 color = [ '1' ],
4409- lorentz = [ L.FFV1 ],
4410- couplings = {(0,0):C.GC_3})
4411+ lorentz = [ L.FFV2 ],
4412+ couplings = {(0,0):C.GC_81})
4413
4414 V_64 = Vertex(name = 'V_64',
4415- particles = [ P.tt__plus__, P.tt__minus__, P.A ],
4416+ particles = [ P.vm__tilde__, P.vm, P.Z ],
4417 color = [ '1' ],
4418- lorentz = [ L.FFV1 ],
4419- couplings = {(0,0):C.GC_3})
4420+ lorentz = [ L.FFV2 ],
4421+ couplings = {(0,0):C.GC_81})
4422
4423 V_65 = Vertex(name = 'V_65',
4424- particles = [ P.tt__plus__, P.tt__minus__, P.H ],
4425+ particles = [ P.vt__tilde__, P.vt, P.Z ],
4426 color = [ '1' ],
4427- lorentz = [ L.FFS1 ],
4428- couplings = {(0,0):C.GC_131})
4429+ lorentz = [ L.FFV2 ],
4430+ couplings = {(0,0):C.GC_81})
4431
4432 V_66 = Vertex(name = 'V_66',
4433- particles = [ P.e__plus__, P.e__minus__, P.Z ],
4434- color = [ '1' ],
4435- lorentz = [ L.FFV2, L.FFV4 ],
4436- couplings = {(0,0):C.GC_43,(0,1):C.GC_46})
4437+ particles = [ P.u__tilde__, P.u, P.a ],
4438+ color = [ 'Identity(1,2)' ],
4439+ lorentz = [ L.FFV1 ],
4440+ couplings = {(0,0):C.GC_4})
4441
4442 V_67 = Vertex(name = 'V_67',
4443- particles = [ P.m__plus__, P.m__minus__, P.Z ],
4444- color = [ '1' ],
4445- lorentz = [ L.FFV2, L.FFV4 ],
4446- couplings = {(0,0):C.GC_43,(0,1):C.GC_46})
4447+ particles = [ P.c__tilde__, P.c, P.a ],
4448+ color = [ 'Identity(1,2)' ],
4449+ lorentz = [ L.FFV1 ],
4450+ couplings = {(0,0):C.GC_4})
4451
4452 V_68 = Vertex(name = 'V_68',
4453- particles = [ P.tt__plus__, P.tt__minus__, P.Z ],
4454- color = [ '1' ],
4455- lorentz = [ L.FFV2, L.FFV4 ],
4456- couplings = {(0,0):C.GC_43,(0,1):C.GC_46})
4457+ particles = [ P.t__tilde__, P.t, P.a ],
4458+ color = [ 'Identity(1,2)' ],
4459+ lorentz = [ L.FFV1 ],
4460+ couplings = {(0,0):C.GC_4})
4461
4462 V_69 = Vertex(name = 'V_69',
4463- particles = [ P.ve__tilde__, P.e__minus__, P.W__plus__ ],
4464- color = [ '1' ],
4465- lorentz = [ L.FFV2 ],
4466- couplings = {(0,0):C.GC_33})
4467+ particles = [ P.u__tilde__, P.u, P.g ],
4468+ color = [ 'T(3,2,1)' ],
4469+ lorentz = [ L.FFV1 ],
4470+ couplings = {(0,0):C.GC_11})
4471
4472 V_70 = Vertex(name = 'V_70',
4473- particles = [ P.vm__tilde__, P.m__minus__, P.W__plus__ ],
4474- color = [ '1' ],
4475- lorentz = [ L.FFV2 ],
4476- couplings = {(0,0):C.GC_33})
4477+ particles = [ P.c__tilde__, P.c, P.g ],
4478+ color = [ 'T(3,2,1)' ],
4479+ lorentz = [ L.FFV1 ],
4480+ couplings = {(0,0):C.GC_11})
4481
4482 V_71 = Vertex(name = 'V_71',
4483- particles = [ P.vt__tilde__, P.tt__minus__, P.W__plus__ ],
4484- color = [ '1' ],
4485- lorentz = [ L.FFV2 ],
4486- couplings = {(0,0):C.GC_33})
4487+ particles = [ P.t__tilde__, P.t, P.g ],
4488+ color = [ 'T(3,2,1)' ],
4489+ lorentz = [ L.FFV1 ],
4490+ couplings = {(0,0):C.GC_11})
4491
4492 V_72 = Vertex(name = 'V_72',
4493 particles = [ P.d__tilde__, P.u, P.W__minus__ ],
4494 color = [ 'Identity(1,2)' ],
4495 lorentz = [ L.FFV2 ],
4496- couplings = {(0,0):C.GC_34})
4497+ couplings = {(0,0):C.GC_62})
4498
4499 V_73 = Vertex(name = 'V_73',
4500 particles = [ P.s__tilde__, P.u, P.W__minus__ ],
4501 color = [ 'Identity(1,2)' ],
4502 lorentz = [ L.FFV2 ],
4503- couplings = {(0,0):C.GC_35})
4504+ couplings = {(0,0):C.GC_63})
4505
4506 V_74 = Vertex(name = 'V_74',
4507 particles = [ P.b__tilde__, P.u, P.W__minus__ ],
4508 color = [ 'Identity(1,2)' ],
4509 lorentz = [ L.FFV2 ],
4510- couplings = {(0,0):C.GC_36})
4511+ couplings = {(0,0):C.GC_64})
4512
4513 V_75 = Vertex(name = 'V_75',
4514 particles = [ P.d__tilde__, P.c, P.W__minus__ ],
4515 color = [ 'Identity(1,2)' ],
4516 lorentz = [ L.FFV2 ],
4517- couplings = {(0,0):C.GC_37})
4518+ couplings = {(0,0):C.GC_65})
4519
4520 V_76 = Vertex(name = 'V_76',
4521 particles = [ P.s__tilde__, P.c, P.W__minus__ ],
4522 color = [ 'Identity(1,2)' ],
4523 lorentz = [ L.FFV2 ],
4524- couplings = {(0,0):C.GC_38})
4525+ couplings = {(0,0):C.GC_66})
4526
4527 V_77 = Vertex(name = 'V_77',
4528 particles = [ P.b__tilde__, P.c, P.W__minus__ ],
4529 color = [ 'Identity(1,2)' ],
4530 lorentz = [ L.FFV2 ],
4531- couplings = {(0,0):C.GC_39})
4532+ couplings = {(0,0):C.GC_67})
4533
4534 V_78 = Vertex(name = 'V_78',
4535 particles = [ P.d__tilde__, P.t, P.W__minus__ ],
4536 color = [ 'Identity(1,2)' ],
4537 lorentz = [ L.FFV2 ],
4538- couplings = {(0,0):C.GC_40})
4539+ couplings = {(0,0):C.GC_68})
4540
4541 V_79 = Vertex(name = 'V_79',
4542 particles = [ P.s__tilde__, P.t, P.W__minus__ ],
4543 color = [ 'Identity(1,2)' ],
4544 lorentz = [ L.FFV2 ],
4545- couplings = {(0,0):C.GC_41})
4546+ couplings = {(0,0):C.GC_69})
4547
4548 V_80 = Vertex(name = 'V_80',
4549 particles = [ P.b__tilde__, P.t, P.W__minus__ ],
4550 color = [ 'Identity(1,2)' ],
4551 lorentz = [ L.FFV2 ],
4552- couplings = {(0,0):C.GC_42})
4553+ couplings = {(0,0):C.GC_70})
4554
4555 V_81 = Vertex(name = 'V_81',
4556- particles = [ P.u__tilde__, P.u, P.A ],
4557+ particles = [ P.u__tilde__, P.u, P.Z ],
4558 color = [ 'Identity(1,2)' ],
4559- lorentz = [ L.FFV1 ],
4560- couplings = {(0,0):C.GC_2})
4561+ lorentz = [ L.FFV2, L.FFV5 ],
4562+ couplings = {(0,0):C.GC_72,(0,1):C.GC_79})
4563
4564 V_82 = Vertex(name = 'V_82',
4565- particles = [ P.c__tilde__, P.c, P.A ],
4566+ particles = [ P.c__tilde__, P.c, P.Z ],
4567 color = [ 'Identity(1,2)' ],
4568- lorentz = [ L.FFV1 ],
4569- couplings = {(0,0):C.GC_2})
4570+ lorentz = [ L.FFV2, L.FFV5 ],
4571+ couplings = {(0,0):C.GC_72,(0,1):C.GC_79})
4572
4573 V_83 = Vertex(name = 'V_83',
4574- particles = [ P.t__tilde__, P.t, P.A ],
4575+ particles = [ P.t__tilde__, P.t, P.Z ],
4576 color = [ 'Identity(1,2)' ],
4577- lorentz = [ L.FFV1 ],
4578- couplings = {(0,0):C.GC_2})
4579+ lorentz = [ L.FFV2, L.FFV5 ],
4580+ couplings = {(0,0):C.GC_72,(0,1):C.GC_79})
4581
4582 V_84 = Vertex(name = 'V_84',
4583- particles = [ P.u__tilde__, P.u, P.G ],
4584- color = [ 'T(3,2,1)' ],
4585+ particles = [ P.d__tilde__, P.d, P.a ],
4586+ color = [ 'Identity(1,2)' ],
4587 lorentz = [ L.FFV1 ],
4588- couplings = {(0,0):C.GC_5})
4589+ couplings = {(0,0):C.GC_3})
4590
4591 V_85 = Vertex(name = 'V_85',
4592- particles = [ P.c__tilde__, P.c, P.G ],
4593- color = [ 'T(3,2,1)' ],
4594+ particles = [ P.s__tilde__, P.s, P.a ],
4595+ color = [ 'Identity(1,2)' ],
4596 lorentz = [ L.FFV1 ],
4597- couplings = {(0,0):C.GC_5})
4598+ couplings = {(0,0):C.GC_3})
4599
4600 V_86 = Vertex(name = 'V_86',
4601- particles = [ P.t__tilde__, P.t, P.G ],
4602- color = [ 'T(3,2,1)' ],
4603+ particles = [ P.b__tilde__, P.b, P.a ],
4604+ color = [ 'Identity(1,2)' ],
4605 lorentz = [ L.FFV1 ],
4606- couplings = {(0,0):C.GC_5})
4607+ couplings = {(0,0):C.GC_3})
4608
4609 V_87 = Vertex(name = 'V_87',
4610- particles = [ P.t__tilde__, P.t, P.H ],
4611- color = [ 'Identity(1,2)' ],
4612- lorentz = [ L.FFS1 ],
4613- couplings = {(0,0):C.GC_130})
4614+ particles = [ P.d__tilde__, P.d, P.g ],
4615+ color = [ 'T(3,2,1)' ],
4616+ lorentz = [ L.FFV1 ],
4617+ couplings = {(0,0):C.GC_11})
4618
4619 V_88 = Vertex(name = 'V_88',
4620- particles = [ P.u__tilde__, P.u, P.Z ],
4621- color = [ 'Identity(1,2)' ],
4622- lorentz = [ L.FFV2, L.FFV5 ],
4623- couplings = {(0,0):C.GC_44,(0,1):C.GC_45})
4624+ particles = [ P.s__tilde__, P.s, P.g ],
4625+ color = [ 'T(3,2,1)' ],
4626+ lorentz = [ L.FFV1 ],
4627+ couplings = {(0,0):C.GC_11})
4628
4629 V_89 = Vertex(name = 'V_89',
4630- particles = [ P.c__tilde__, P.c, P.Z ],
4631- color = [ 'Identity(1,2)' ],
4632- lorentz = [ L.FFV2, L.FFV5 ],
4633- couplings = {(0,0):C.GC_44,(0,1):C.GC_45})
4634+ particles = [ P.b__tilde__, P.b, P.g ],
4635+ color = [ 'T(3,2,1)' ],
4636+ lorentz = [ L.FFV1 ],
4637+ couplings = {(0,0):C.GC_11})
4638
4639 V_90 = Vertex(name = 'V_90',
4640- particles = [ P.t__tilde__, P.t, P.Z ],
4641+ particles = [ P.u__tilde__, P.d, P.W__plus__ ],
4642 color = [ 'Identity(1,2)' ],
4643- lorentz = [ L.FFV2, L.FFV5 ],
4644- couplings = {(0,0):C.GC_44,(0,1):C.GC_45})
4645+ lorentz = [ L.FFV2 ],
4646+ couplings = {(0,0):C.GC_145})
4647
4648 V_91 = Vertex(name = 'V_91',
4649- particles = [ P.e__plus__, P.ve, P.W__minus__ ],
4650- color = [ '1' ],
4651+ particles = [ P.c__tilde__, P.d, P.W__plus__ ],
4652+ color = [ 'Identity(1,2)' ],
4653 lorentz = [ L.FFV2 ],
4654- couplings = {(0,0):C.GC_33})
4655+ couplings = {(0,0):C.GC_148})
4656
4657 V_92 = Vertex(name = 'V_92',
4658- particles = [ P.m__plus__, P.vm, P.W__minus__ ],
4659- color = [ '1' ],
4660+ particles = [ P.t__tilde__, P.d, P.W__plus__ ],
4661+ color = [ 'Identity(1,2)' ],
4662 lorentz = [ L.FFV2 ],
4663- couplings = {(0,0):C.GC_33})
4664+ couplings = {(0,0):C.GC_151})
4665
4666 V_93 = Vertex(name = 'V_93',
4667- particles = [ P.tt__plus__, P.vt, P.W__minus__ ],
4668- color = [ '1' ],
4669+ particles = [ P.u__tilde__, P.s, P.W__plus__ ],
4670+ color = [ 'Identity(1,2)' ],
4671 lorentz = [ L.FFV2 ],
4672- couplings = {(0,0):C.GC_33})
4673+ couplings = {(0,0):C.GC_146})
4674
4675 V_94 = Vertex(name = 'V_94',
4676- particles = [ P.ve__tilde__, P.ve, P.Z ],
4677- color = [ '1' ],
4678+ particles = [ P.c__tilde__, P.s, P.W__plus__ ],
4679+ color = [ 'Identity(1,2)' ],
4680 lorentz = [ L.FFV2 ],
4681- couplings = {(0,0):C.GC_74})
4682+ couplings = {(0,0):C.GC_149})
4683
4684 V_95 = Vertex(name = 'V_95',
4685- particles = [ P.vm__tilde__, P.vm, P.Z ],
4686- color = [ '1' ],
4687+ particles = [ P.t__tilde__, P.s, P.W__plus__ ],
4688+ color = [ 'Identity(1,2)' ],
4689 lorentz = [ L.FFV2 ],
4690- couplings = {(0,0):C.GC_74})
4691+ couplings = {(0,0):C.GC_152})
4692
4693 V_96 = Vertex(name = 'V_96',
4694- particles = [ P.vt__tilde__, P.vt, P.Z ],
4695- color = [ '1' ],
4696- lorentz = [ L.FFV2 ],
4697- couplings = {(0,0):C.GC_74})
4698+ particles = [ P.u__tilde__, P.b, P.W__plus__ ],
4699+ color = [ 'Identity(1,2)' ],
4700+ lorentz = [ L.FFV2 ],
4701+ couplings = {(0,0):C.GC_147})
4702+
4703+V_97 = Vertex(name = 'V_97',
4704+ particles = [ P.c__tilde__, P.b, P.W__plus__ ],
4705+ color = [ 'Identity(1,2)' ],
4706+ lorentz = [ L.FFV2 ],
4707+ couplings = {(0,0):C.GC_150})
4708+
4709+V_98 = Vertex(name = 'V_98',
4710+ particles = [ P.t__tilde__, P.b, P.W__plus__ ],
4711+ color = [ 'Identity(1,2)' ],
4712+ lorentz = [ L.FFV2 ],
4713+ couplings = {(0,0):C.GC_153})
4714+
4715+V_99 = Vertex(name = 'V_99',
4716+ particles = [ P.d__tilde__, P.d, P.Z ],
4717+ color = [ 'Identity(1,2)' ],
4718+ lorentz = [ L.FFV2, L.FFV3 ],
4719+ couplings = {(0,0):C.GC_71,(0,1):C.GC_79})
4720+
4721+V_100 = Vertex(name = 'V_100',
4722+ particles = [ P.s__tilde__, P.s, P.Z ],
4723+ color = [ 'Identity(1,2)' ],
4724+ lorentz = [ L.FFV2, L.FFV3 ],
4725+ couplings = {(0,0):C.GC_71,(0,1):C.GC_79})
4726+
4727+V_101 = Vertex(name = 'V_101',
4728+ particles = [ P.b__tilde__, P.b, P.Z ],
4729+ color = [ 'Identity(1,2)' ],
4730+ lorentz = [ L.FFV2, L.FFV3 ],
4731+ couplings = {(0,0):C.GC_71,(0,1):C.GC_79})
4732
4733
4734=== modified file 'models/EWdim6/write_param_card.py'
4735--- models/EWdim6/write_param_card.py 2013-01-19 17:33:23 +0000
4736+++ models/EWdim6/write_param_card.py 2013-10-25 11:38:22 +0000
4737@@ -1,9 +1,10 @@
4738-
4739-__date__ = "02 Aug 2012"
4740+from __future__ import division
4741+__date__ = "10 Dec 2012"
4742 __author__ = 'olivier.mattelaer@uclouvain.be'
4743
4744 from function_library import *
4745
4746+
4747 class ParamCardWriter(object):
4748
4749 header = \
4750
4751=== modified file 'models/__init__.py'
4752--- models/__init__.py 2012-09-06 18:27:13 +0000
4753+++ models/__init__.py 2013-10-25 11:38:22 +0000
4754@@ -17,7 +17,7 @@
4755 import os
4756 import sys
4757
4758-def load_model(name):
4759+def load_model(name, decay=False):
4760
4761 # avoid final '/' in the path
4762 if name.endswith('/'):
4763@@ -35,5 +35,14 @@
4764
4765 sys.path.insert(0, os.sep.join(path_split[:-1]))
4766 __import__(path_split[-1])
4767+ output = sys.modules[path_split[-1]]
4768+ if decay:
4769+ dec_name = '%s.decays' % path_split[-1]
4770+ __import__(dec_name)
4771+ output.all_decays = sys.modules[dec_name].all_decays
4772+
4773 sys.path.pop(0)
4774+
4775+
4776+
4777 return sys.modules[path_split[-1]]
4778
4779=== modified file 'models/check_param_card.py'
4780--- models/check_param_card.py 2013-08-16 03:30:25 +0000
4781+++ models/check_param_card.py 2013-10-25 11:38:22 +0000
4782@@ -182,13 +182,16 @@
4783 data = data.lower()
4784 data = data.split()
4785 self.name = data[1] # the first part of data is model
4786-
4787 if len(data) == 3:
4788 if data[2].startswith('q='):
4789 #the last part should be of the form Q=
4790 self.scale = float(data[2][2:])
4791 elif self.name == 'qnumbers':
4792 self.name += ' %s' % data[2]
4793+ elif len(data) == 4 and data[2] == 'q=':
4794+ #the last part should be of the form Q=
4795+ self.scale = float(data[3])
4796+
4797 return self
4798
4799 def keys(self):
4800@@ -202,15 +205,15 @@
4801 text = """###################################""" + \
4802 """\n## INFORMATION FOR %s""" % self.name.upper() +\
4803 """\n###################################\n"""
4804-
4805+
4806 #special case for decay chain
4807 if self.name == 'decay':
4808 for param in self:
4809- id = param.lhacode[0]
4810+ pid = param.lhacode[0]
4811 param.set_block('decay')
4812 text += str(param)+ '\n'
4813- if self.decay_table.has_key(id):
4814- text += str(self.decay_table[id])+'\n'
4815+ if self.decay_table.has_key(pid):
4816+ text += str(self.decay_table[pid])+'\n'
4817 return text
4818 elif self.name.startswith('decay'):
4819 text = '' # avoid block definition
4820@@ -295,7 +298,7 @@
4821 param.set_block(cur_block.name)
4822 param.load_str(line)
4823 cur_block.append(param)
4824-
4825+
4826 return self
4827
4828 def write(self, outpath):
4829@@ -303,7 +306,6 @@
4830
4831 # order the block in a smart way
4832 blocks = self.order_block()
4833-
4834 text = self.header
4835 text += ''.join([str(block) for block in blocks])
4836
4837@@ -354,6 +356,7 @@
4838 self.order.append(object)
4839
4840
4841+
4842 def has_block(self, name):
4843 return self.has_key(name)
4844
4845@@ -1149,8 +1152,12 @@
4846 restrictpath = os.path.join(restrictpath, os.pardir, os.pardir, 'Source',
4847 'MODEL', 'param_card_rule.dat')
4848 if not os.path.exists(restrictpath):
4849- return True
4850-
4851+ restrictpath = os.path.dirname(path)
4852+ restrictpath = os.path.join(restrictpath, os.pardir, 'Source',
4853+ 'MODEL', 'param_card_rule.dat')
4854+ if not os.path.exists(restrictpath):
4855+ return True
4856+
4857 cardrule = ParamCardRule()
4858 cardrule.load_rule(restrictpath)
4859 cardrule.check_param_card(path, modify=False)
4860
4861=== modified file 'models/import_ufo.py'
4862--- models/import_ufo.py 2013-08-16 07:25:03 +0000
4863+++ models/import_ufo.py 2013-10-25 11:38:22 +0000
4864@@ -164,7 +164,7 @@
4865 raise MadGraph5Error, 'This model is modified on disk. To reload it you need to quit/relaunch mg5'
4866
4867 # Load basic information
4868- ufo_model = ufomodels.load_model(model_path)
4869+ ufo_model = ufomodels.load_model(model_path, decay)
4870 ufo2mg5_converter = UFOMG5Converter(ufo_model)
4871 model = ufo2mg5_converter.load_model()
4872
4873@@ -183,7 +183,7 @@
4874 for ufo_part in ufo_model.all_particles:
4875 name = ufo_part.name
4876 if ufo2mg5_converter.use_lower_part_names:
4877- name = name.lower()
4878+ name = name.lower()
4879 p = model['particles'].find_name(name)
4880 if hasattr(ufo_part, 'partial_widths'):
4881 p.partial_widths = ufo_part.partial_widths
4882
4883=== modified file 'models/nmssm/__init__.py'
4884--- models/nmssm/__init__.py 2012-08-03 14:46:49 +0000
4885+++ models/nmssm/__init__.py 2013-10-25 11:38:22 +0000
4886@@ -6,6 +6,7 @@
4887 import vertices
4888 import coupling_orders
4889 import write_param_card
4890+import propagators
4891
4892
4893 all_particles = particles.all_particles
4894@@ -15,6 +16,7 @@
4895 all_parameters = parameters.all_parameters
4896 all_orders = coupling_orders.all_orders
4897 all_functions = function_library.all_functions
4898+all_propagators = propagators.all_propagators
4899
4900 try:
4901 import decays
4902@@ -23,8 +25,22 @@
4903 else:
4904 all_decays = decays.all_decays
4905
4906-
4907-gauge = [0]
4908+try:
4909+ import form_factors
4910+except ImportError:
4911+ pass
4912+else:
4913+ all_form_factors = form_factors.all_form_factors
4914+
4915+try:
4916+ import CT_vertices
4917+except ImportError:
4918+ pass
4919+else:
4920+ all_CTvertices = CT_vertices.all_CTvertices
4921+
4922+
4923+gauge = [0, 1]
4924
4925
4926 __author__ = "Benjamin Fuks"
4927
4928=== modified file 'models/nmssm/coupling_orders.py'
4929--- models/nmssm/coupling_orders.py 2012-08-03 14:46:49 +0000
4930+++ models/nmssm/coupling_orders.py 2013-10-25 11:38:22 +0000
4931@@ -1,6 +1,6 @@
4932-# This file was automatically created by FeynRules 1.7.53
4933-# Mathematica version: 8.0 for Linux x86 (64-bit) (February 23, 2011)
4934-# Date: Wed 1 Aug 2012 00:45:03
4935+# This file was automatically created by FeynRules 1.7.214
4936+# Mathematica version: 9.0 for Mac OS X x86 (64-bit) (January 24, 2013)
4937+# Date: Thu 22 Aug 2013 18:22:08
4938
4939
4940 from object_library import all_orders, CouplingOrder
4941
4942=== modified file 'models/nmssm/couplings.py'
4943--- models/nmssm/couplings.py 2012-08-03 14:46:49 +0000
4944+++ models/nmssm/couplings.py 2013-10-25 11:38:22 +0000
4945@@ -1,11 +1,11 @@
4946-# This file was automatically created by FeynRules 1.7.53
4947-# Mathematica version: 8.0 for Linux x86 (64-bit) (February 23, 2011)
4948-# Date: Wed 1 Aug 2012 00:44:44
4949+# This file was automatically created by FeynRules 1.7.214
4950+# Mathematica version: 9.0 for Mac OS X x86 (64-bit) (January 24, 2013)
4951+# Date: Thu 22 Aug 2013 18:21:54
4952
4953
4954 from object_library import all_couplings, Coupling
4955
4956-from function_library import complexconjugate, re, im, csc, sec, acsc, asec
4957+from function_library import complexconjugate, re, im, csc, sec, acsc, asec, cot
4958
4959
4960
4961@@ -38,7 +38,7 @@
4962 order = {'QCD':1})
4963
4964 GC_8 = Coupling(name = 'GC_8',
4965- value = 'G',
4966+ value = 'G/2.',
4967 order = {'QCD':1})
4968
4969 GC_9 = Coupling(name = 'GC_9',
4970@@ -46,387 +46,387 @@
4971 order = {'QCD':2})
4972
4973 GC_10 = Coupling(name = 'GC_10',
4974- value = '(2*ee**2*complex(0,1)*I12x11)/9.',
4975+ value = '(2*ee**2*complex(0,1)*I15a11)/9.',
4976 order = {'QED':2})
4977
4978 GC_11 = Coupling(name = 'GC_11',
4979- value = '(-2*ee*complex(0,1)*G*I12x11)/3.',
4980+ value = '(-2*ee*complex(0,1)*G*I15a11)/3.',
4981 order = {'QCD':1,'QED':1})
4982
4983 GC_12 = Coupling(name = 'GC_12',
4984- value = 'complex(0,1)*G**2*I12x11',
4985+ value = 'complex(0,1)*G**2*I15a11',
4986 order = {'QCD':2})
4987
4988 GC_13 = Coupling(name = 'GC_13',
4989- value = '(2*ee**2*complex(0,1)*I12x22)/9.',
4990+ value = '(2*ee**2*complex(0,1)*I15a22)/9.',
4991 order = {'QED':2})
4992
4993 GC_14 = Coupling(name = 'GC_14',
4994- value = '(-2*ee*complex(0,1)*G*I12x22)/3.',
4995+ value = '(-2*ee*complex(0,1)*G*I15a22)/3.',
4996 order = {'QCD':1,'QED':1})
4997
4998 GC_15 = Coupling(name = 'GC_15',
4999- value = 'complex(0,1)*G**2*I12x22',
5000+ value = 'complex(0,1)*G**2*I15a22',
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches