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

Proposed by Johan Alwall
Status: Merged
Merged at revision: 159
Proposed branch: lp:~maddevelopers/mg5amcnlo/new_sm_model_with_Wolfenstein
Merge into: lp:~madteam/mg5amcnlo/trunk
Diff against target: 49812 lines (+23464/-22026)
84 files modified
madgraph/core/base_objects.py (+171/-11)
madgraph/core/diagram_generation.py (+83/-82)
madgraph/iolibs/drawing_eps.py (+2/-1)
madgraph/iolibs/import_v4.py (+1/-1)
models/2HDM/__init__.py (+5/-3)
models/2HDM/coupling_orders.py (+15/-0)
models/2HDM/object_library.py (+13/-0)
models/4Gen/__init__.py (+5/-3)
models/4Gen/coupling_orders.py (+15/-0)
models/4Gen/object_library.py (+13/-0)
models/RS/__init__.py (+5/-3)
models/RS/coupling_orders.py (+15/-0)
models/RS/object_library.py (+245/-228)
models/SMScalars/__init__.py (+5/-3)
models/SMScalars/coupling_orders.py (+15/-0)
models/SMScalars/object_library.py (+13/-0)
models/heft/HEFT_UFO.log (+75/-0)
models/heft/Higgs_Effective_Couplings_UFO.log (+0/-69)
models/heft/__init__.py (+2/-0)
models/heft/coupling_orders.py (+24/-0)
models/heft/couplings.py (+24/-12)
models/heft/lorentz.py (+2/-2)
models/heft/object_library.py (+2/-2)
models/heft/parameters.py (+93/-19)
models/heft/particles.py (+48/-48)
models/heft/restrict_ckm.dat (+53/-0)
models/heft/restrict_default.dat (+9/-13)
models/heft/restrict_no_b_mass.dat (+53/-0)
models/heft/restrict_no_masses.dat (+53/-0)
models/heft/restrict_no_tau_mass.dat (+53/-0)
models/heft/restrict_zeromass_ckm.dat (+53/-0)
models/heft/vertices.py (+53/-35)
models/import_ufo.py (+27/-0)
models/mssm/__init__.py (+5/-3)
models/mssm/coupling_orders.py (+15/-0)
models/mssm/object_library.py (+13/-0)
models/nmssm/__init__.py (+5/-3)
models/nmssm/coupling_orders.py (+15/-0)
models/nmssm/object_library.py (+13/-0)
models/sextet_diquarks/__init__.py (+7/-0)
models/sextet_diquarks/coupling_orders.py (+15/-0)
models/sextet_diquarks/object_library.py (+67/-16)
models/sm/SM_Full_CKM_UFO.log (+67/-0)
models/sm/__init__.py (+3/-1)
models/sm/coupling_orders.py (+15/-0)
models/sm/couplings.py (+67/-423)
models/sm/lorentz.py (+3/-27)
models/sm/object_library.py (+13/-0)
models/sm/parameters.py (+122/-124)
models/sm/particles.py (+51/-51)
models/sm/restrict_ckm.dat (+53/-0)
models/sm/restrict_default.dat (+27/-25)
models/sm/restrict_no_b_mass.dat (+28/-25)
models/sm/restrict_no_masses.dat (+28/-25)
models/sm/restrict_no_tau_mass.dat (+28/-25)
models/sm/restrict_zeromass_ckm.dat (+53/-0)
models/sm/vertices.py (+259/-811)
models/triplet_diquarks/__init__.py (+7/-0)
models/triplet_diquarks/coupling_orders.py (+15/-0)
models/triplet_diquarks/object_library.py (+67/-16)
models/uutt_sch_4fermion/__init__.py (+7/-0)
models/uutt_sch_4fermion/coupling_orders.py (+19/-0)
models/uutt_sch_4fermion/object_library.py (+71/-17)
models/uutt_tch_4fermion/__init__.py (+7/-0)
models/uutt_tch_4fermion/coupling_orders.py (+19/-0)
models/uutt_tch_4fermion/object_library.py (+71/-17)
models/uutt_tch_scalar/__init__.py (+7/-0)
models/uutt_tch_scalar/coupling_orders.py (+19/-0)
models/uutt_tch_scalar/object_library.py (+71/-17)
tests/acceptance_tests/test_model_equivalence.py (+6/-9)
tests/input_files/e+e-_e+e-.pkl (+10943/-10928)
tests/input_files/restrict_sm.dat (+34/-31)
tests/input_files/sm.pkl (+9252/-8408)
tests/unit_tests/core/test_base_objects.py (+2/-2)
tests/unit_tests/core/test_diagram_generation.py (+307/-27)
tests/unit_tests/core/test_helas_objects.py (+8/-8)
tests/unit_tests/iolibs/test_export_cpp.py (+104/-276)
tests/unit_tests/iolibs/test_export_v4.py (+2/-2)
tests/unit_tests/iolibs/test_group_subprocs.py (+31/-31)
tests/unit_tests/iolibs/test_import_v4.py (+13/-1)
tests/unit_tests/various/test_aloha.py (+10/-13)
tests/unit_tests/various/test_import_ufo.py (+84/-58)
tests/unit_tests/various/test_process_checks.py (+1/-1)
tests/unit_tests/various/test_write_param.py (+70/-70)
To merge this branch: bzr merge lp:~maddevelopers/mg5amcnlo/new_sm_model_with_Wolfenstein
Reviewer Review Type Date Requested Status
Olivier Mattelaer Approve
Review via email: mp+68835@code.launchpad.net

Description of the change

- New SM and HEFT with CKM matrix parameterized through Wolfenstein parameters
- Added coupling hierarchy and maximum coupling expansion according to the new UFO format for all models
- Added support for new "coupling order": WEIGHTED which corresponds to the sum of couplings weighted by their hierarchies
- Added automatic detection of leading coupling orders for processes for any model, based on the coupling hierarchy, so e.g. in HEFT, p p > h j j will give only QCD+HEFT diagrams with only one HEFT coupling in each diagram.

To post a comment you must log in.
166. By Johan Alwall

Read hierarchy and expansion_orders only if present in the UFO model (otherwise use default)

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

Hi, very few comments in fact.

few comments:

1) Maybe change the comment in
base_objects.Model.get_order_hierarchy
That this is used for v4 model only.

2) in base_objects.check_expansion_orders
I've made some basic rewritting of the function.

3) in find_optimal_process_orders(process_definition):

I'm worried about this comment:
193 + 2) Pick out the legs in the multiprocess according to the
194 + highest hierarchy represented (so don't mix particles from
195 + different hierarchy classes in the same multiparticles!)

What does it mean? can I do this:
define spinhalf = e+ e- u u~
generate spinhalf spinhalf > spinhalf spinhalf
?

4) again in find_optimal_process_orders

This function is very long (300 lines).
Some refactoring might be done to simplify the structure.

In particular they are two level:
1) The part which is only model dependent
line 1436 - 1469 might be factorize out.

5) at line 1485:
        # Now remove the two lowest orders to get maximum
        max_order_now = sorted(max_order_now)[2:]
could you explain why? this is not clear to me

review: Needs Information
167. By Olivier Mattelaer

minor rewritting of function

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

I want to add that also we need to rethink the drawing.
(the part with the coupling)
Since for heft, this is not beautifull at all
(much too long to have QCD/QED/HIG/HIW/WEIGHTED)

for
p p > t t~ h
this is very limit
but for
p p > t t~ g h
this is so bad (for the small diagram)

I'll think about smtg...

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

Thanks Olivier. I have addressed all your comments below:

> 1) Maybe change the comment in
> base_objects.Model.get_order_hierarchy
> That this is used for v4 model only.

Done.

> 3) in find_optimal_process_orders(process_definition):
>
> I'm worried about this comment:
> 193     + 2) Pick out the legs in the multiprocess according to the
> 194     + highest hierarchy represented (so don't mix particles from
> 195     + different hierarchy classes in the same multiparticles!)
>
> What does it mean? can I do this:
> define spinhalf = e+ e- u u~
> generate spinhalf spinhalf > spinhalf spinhalf
> ?

Exactly. We want to find the minimal coupling orders which give ANY
processes (e.g., in p p > j j, we don't want u d~ > c s~).

> 4) again in find_optimal_process_orders
>
> This function is very long (300 lines).
> Some refactoring might be done to simplify the structure.

Done.

> 5) at line 1485:
>        # Now remove the two lowest orders to get maximum
>        max_order_now = sorted(max_order_now)[2:]
> could you explain why? this is not clear to me

Nvertices = Nlegs-2

> Since for heft, this is not beautifull at all
> (much too long to have QCD/QED/HIG/HIW/WEIGHTED)

Ok I removed the WEIGHTED order in the drawing (but leave it in the
text-only diagrams).

Thanks for the review!
Johan

168. By Johan Alwall

Refactored find_optimal_process_orders

169. By Johan Alwall

Remove WEIGHTED order in diagram drawing

170. By Johan Alwall

Use sorted coupling orders in all Process nice_string output

171. By Johan Alwall

Fixed coupling hierarchy of HEFT model - HIG and HIW should be 2, not 1

172. By Johan Alwall

Fixed test for HEFT order hierarchy

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

Perfect !!!!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'madgraph/core/base_objects.py'
2--- madgraph/core/base_objects.py 2011-05-17 21:34:11 +0000
3+++ madgraph/core/base_objects.py 2011-07-22 20:26:18 +0000
4@@ -667,8 +667,10 @@
5 self['ref_dict_to0'] = {}
6 self['ref_dict_to1'] = {}
7 self['got_majoranas'] = None
8+ self['order_hierarchy'] = {}
9 self['conserved_charge'] = set()
10 self['coupling_orders'] = None
11+ self['expansion_order'] = None
12 self['version_tag'] = None # position of the directory (for security)
13
14 def filter(self, name, value):
15@@ -758,6 +760,15 @@
16 if self['interactions']:
17 self['coupling_orders'] = self.get_coupling_orders()
18
19+ if (name == 'order_hierarchy') and not self[name]:
20+ if self['interactions']:
21+ self['order_hierarchy'] = self.get_order_hierarchy()
22+
23+ if (name == 'expansion_order') and self[name] == None:
24+ if self['interactions']:
25+ self['expansion_order'] = \
26+ dict([(order, -1) for order in self.get('coupling_orders')])
27+
28 return Model.__bases__[0].get(self, name) # call the mother routine
29
30 def set(self, name, value):
31@@ -781,6 +792,8 @@
32 self['ref_dict_to0'] = {}
33 self['got_majoranas'] = None
34 self['coupling_orders'] = None
35+ self['order_hierarchy'] = {}
36+ self['expansion_order'] = None
37
38 Model.__bases__[0].set(self, name, value) # call the mother routine
39
40@@ -817,6 +830,64 @@
41 return set(sum([i.get('orders').keys() for i in \
42 self.get('interactions')], []))
43
44+ def get_order_hierarchy(self):
45+ """Set a default order hierarchy for the model if not set by the UFO."""
46+ # Set coupling hierachy
47+ hierarchy = dict([(order, 1) for order in self.get('coupling_orders')])
48+ # Special case for only QCD and QED couplings, unless already set
49+ if self.get('coupling_orders') == set(['QCD', 'QED']):
50+ hierarchy['QED'] = 2
51+ return hierarchy
52+
53+ def get_particles_hierarchy(self):
54+ """Returns the order hierarchies of the model and the
55+ particles which have interactions in at least this hierarchy
56+ (used in find_optimal_process_orders in MultiProcess diagram
57+ generation):
58+
59+ Check the coupling hierarchy of the model. Assign all
60+ particles to the different coupling hierarchies so that a
61+ particle is considered to be in the highest hierarchy (i.e.,
62+ with lowest value) where it has an interaction.
63+ """
64+
65+ # Find coupling orders in model
66+ coupling_orders = self.get('coupling_orders')
67+ # Loop through the different coupling hierarchy values, so we
68+ # start with the most dominant and proceed to the least dominant
69+ hierarchy = sorted(list(set([self.get('order_hierarchy')[k] for \
70+ k in coupling_orders])))
71+
72+ # orders is a rising list of the lists of orders with a given hierarchy
73+ orders = []
74+ for value in hierarchy:
75+ orders.append([ k for (k, v) in \
76+ self.get('order_hierarchy').items() if \
77+ v == value ])
78+
79+ # Extract the interaction that correspond to the different
80+ # coupling hierarchies, and the corresponding particles
81+ interactions = []
82+ particles = []
83+ for iorder, order in enumerate(orders):
84+ sum_orders = sum(orders[:iorder+1], [])
85+ sum_interactions = sum(interactions[:iorder], [])
86+ sum_particles = sum([list(p) for p in particles[:iorder]], [])
87+ # Append all interactions that have only orders with at least
88+ # this hierarchy
89+ interactions.append([i for i in self.get('interactions') if \
90+ not i in sum_interactions and \
91+ not any([k not in sum_orders for k in \
92+ i.get('orders').keys()])])
93+ # Append the corresponding particles, excluding the
94+ # particles that have already been added
95+ particles.append(set(sum([[p.get_pdg_code() for p in \
96+ inter.get('particles') if \
97+ p.get_pdg_code() not in sum_particles] \
98+ for inter in interactions[-1]], [])))
99+
100+ return particles, hierarchy
101+
102 def check_majoranas(self):
103 """Return True if there is fermion flow violation, False otherwise"""
104
105@@ -1323,22 +1394,27 @@
106 mystr = mystr + 'id:' + str(vert['id']) + '),'
107 mystr = mystr[:-1] + ')'
108 mystr += " (%s)" % ",".join(["%s=%d" % (key, self['orders'][key]) \
109- for key in self['orders'].keys()])
110+ for key in sorted(self['orders'].keys())])
111 return mystr
112 else:
113 return '()'
114
115 def calculate_orders(self, model):
116- """Calculate the actual coupling orders of this diagram"""
117+ """Calculate the actual coupling orders of this diagram. Note
118+ that the special order WEIGTHED corresponds to the sum of
119+ hierarchys for the couplings."""
120
121 coupling_orders = dict([(c, 0) for c in model.get('coupling_orders')])
122+ weight = 0
123 for vertex in self['vertices']:
124 if vertex.get('id') == 0: continue
125 couplings = model.get('interaction_dict')[vertex.get('id')].\
126 get('orders')
127 for coupling in couplings:
128 coupling_orders[coupling] += couplings[coupling]
129-
130+ weight += sum([model.get('order_hierarchy')[c]*n for \
131+ (c,n) in couplings.items()])
132+ coupling_orders['WEIGHTED'] = weight
133 self.set('orders', coupling_orders)
134
135 def renumber_legs(self, perm_map, leg_list):
136@@ -1574,7 +1650,7 @@
137
138 if self['orders']:
139 mystr = mystr + " ".join([key + '=' + repr(self['orders'][key]) \
140- for key in self['orders']]) + ' '
141+ for key in sorted(self['orders'])]) + ' '
142
143 # Remove last space
144 mystr = mystr[:-1]
145@@ -1583,7 +1659,7 @@
146 mystr += " @%d" % self.get('id')
147 if self.get('overall_orders'):
148 mystr += " " + " ".join([key + '=' + repr(self['orders'][key]) \
149- for key in self['orders']]) + ' '
150+ for key in sorted(self['orders'])]) + ' '
151
152 if not self.get('decay_chains'):
153 return mystr
154@@ -1636,7 +1712,7 @@
155
156 if self['orders']:
157 mystr = mystr + " ".join([key + '=' + repr(self['orders'][key]) \
158- for key in self['orders']]) + ' '
159+ for key in sorted(self['orders'])]) + ' '
160
161 # Remove last space
162 mystr = mystr[:-1]
163@@ -1645,7 +1721,7 @@
164 mystr += " @%d" % self.get('id')
165 if self.get('overall_orders'):
166 mystr += " " + " ".join([key + '=' + repr(self['orders'][key]) \
167- for key in self['orders']]) + ' '
168+ for key in sorted(self['orders'])]) + ' '
169
170 if not self.get('decay_chains'):
171 return mystr
172@@ -1864,10 +1940,24 @@
173 identical_indices[leg.get('id')] + 1
174 else:
175 identical_indices[leg.get('id')] = 1
176- return reduce(lambda x, y: x * y,
177- [ math.factorial(val) for val in \
178+ return reduce(lambda x, y: x * y, [ math.factorial(val) for val in \
179 identical_indices.values() ], 1)
180
181+ def check_expansion_orders(self):
182+ """Ensure that maximum expansion orders from the model are
183+ properly taken into account in the process"""
184+
185+ # Ensure that expansion orders are taken into account
186+ expansion_orders = self.get('model').get('expansion_order')
187+ orders = self.get('orders')
188+
189+ tmp = [(k,v) for (k,v) in expansion_orders.items() if 0 < v < 99]
190+ for (k,v) in tmp:
191+ if k in orders:
192+ orders[k] = min(orders[k], v)
193+ else:
194+ orders[k] = v
195+
196 def __eq__(self, other):
197 """Overloading the equality operator, so that only comparison
198 of process id and legs is being done, using compare_for_sort."""
199@@ -1940,6 +2030,76 @@
200
201 return super(ProcessDefinition, self).get_sorted_keys()
202
203+ def get_minimum_WEIGHTED(self):
204+ """Retrieve the minimum starting guess for WEIGHTED order, to
205+ use in find_optimal_process_orders in MultiProcess diagram
206+ generation (as well as particles and hierarchy). The algorithm:
207+
208+ 1) Pick out the legs in the multiprocess according to the
209+ highest hierarchy represented (so don't mix particles from
210+ different hierarchy classes in the same multiparticles!)
211+
212+ 2) Find the starting maximum WEIGHTED order as the sum of the
213+ highest n-2 weighted orders
214+
215+ 3) Pick out required s-channel particle hierarchies, and use
216+ the highest of the maximum WEIGHTED order from the legs and
217+ the minimum WEIGHTED order extracted from 2*s-channel
218+ hierarchys plus the n-2-2*(number of s-channels) lowest
219+ leg weighted orders.
220+ """
221+
222+ model = self.get('model')
223+
224+ # Extract hierarchy and particles corresponding to the
225+ # different hierarchy levels from the model
226+ particles, hierarchy = model.get_particles_hierarchy()
227+
228+ # Find legs corresponding to the different orders
229+ # making sure we look at lowest hierarchy first for each leg
230+ max_order_now = []
231+ new_legs = copy.copy(self.get('legs'))
232+ for parts, value in zip(particles, hierarchy):
233+ ileg = 0
234+ while ileg < len(new_legs):
235+ if any([id in parts for id in new_legs[ileg].get('ids')]):
236+ max_order_now.append(value)
237+ new_legs.pop(ileg)
238+ else:
239+ ileg += 1
240+
241+ # Now remove the two lowest orders to get maximum (since the
242+ # number of interactions is n-2)
243+ max_order_now = sorted(max_order_now)[2:]
244+
245+ # Find s-channel propagators corresponding to the different orders
246+ max_order_prop = []
247+ for idlist in self.get('required_s_channels'):
248+ max_order_prop.append([0,0])
249+ for id in idlist:
250+ for parts, value in zip(particles, hierarchy):
251+ if id in parts:
252+ max_order_prop[-1][0] += 2*value
253+ max_order_prop[-1][1] += 1
254+ break
255+
256+ if max_order_prop:
257+ if len(max_order_prop) >1:
258+ max_order_prop = min(*max_order_prop, key=lambda x:x[0])
259+ else:
260+ max_order_prop = max_order_prop[0]
261+
262+ # Use either the max_order from the external legs or
263+ # the maximum order from the s-channel propagators, plus
264+ # the appropriate lowest orders from max_order_now
265+ max_order_now = max(sum(max_order_now),
266+ max_order_prop[0] + \
267+ sum(max_order_now[:-2 * max_order_prop[1]]))
268+ else:
269+ max_order_now = sum(max_order_now)
270+
271+ return max_order_now, particles, hierarchy
272+
273 def nice_string(self, indent=0):
274 """Returns a nicely formated string about current process
275 content"""
276@@ -1983,7 +2143,7 @@
277
278 if self['orders']:
279 mystr = mystr + " ".join([key + '=' + repr(self['orders'][key]) \
280- for key in self['orders']]) + ' '
281+ for key in sorted(self['orders'])]) + ' '
282
283 # Remove last space
284 mystr = mystr[:-1]
285@@ -1992,7 +2152,7 @@
286 mystr += " @%d" % self.get('id')
287 if self.get('overall_orders'):
288 mystr += " " + " ".join([key + '=' + repr(self['orders'][key]) \
289- for key in self['orders']]) + ' '
290+ for key in sorted(self['orders'])]) + ' '
291
292 if not self.get('decay_chains'):
293 return mystr
294
295=== modified file 'madgraph/core/diagram_generation.py'
296--- madgraph/core/diagram_generation.py 2011-06-01 21:18:40 +0000
297+++ madgraph/core/diagram_generation.py 2011-07-22 20:26:18 +0000
298@@ -686,7 +686,9 @@
299 """Return False if the coupling orders for any coupling is <
300 0, otherwise return the new coupling orders with the vertex
301 orders subtracted. If coupling_orders is not given, return
302- None (which counts as success)"""
303+ None (which counts as success).
304+ WEIGHTED is a special order, which corresponds to the sum of
305+ order hierarchys for the couplings."""
306
307 if not coupling_orders:
308 return None
309@@ -702,13 +704,20 @@
310 # constraint
311 if coupling in present_couplings:
312 # Reduce the number of couplings that are left
313- present_couplings[coupling] = \
314- present_couplings[coupling] - \
315+ present_couplings[coupling] -= \
316 inter.get('orders')[coupling]
317 if present_couplings[coupling] < 0:
318 # We have too many couplings of this type
319 return False
320-
321+ # Now check for WEIGHTED, i.e. the sum of coupling hierarchy values
322+ if 'WEIGHTED' in present_couplings:
323+ weight = sum([model.get('order_hierarchy')[c]*n for \
324+ (c,n) in inter.get('orders').items()])
325+ present_couplings['WEIGHTED'] -= weight
326+ if present_couplings['WEIGHTED'] < 0:
327+ # Total coupling weight too large
328+ return False
329+
330 return present_couplings
331
332 def combine_legs(self, list_legs, ref_dict_to1, max_multi_to1):
333@@ -1199,8 +1208,10 @@
334
335 # Set automatic coupling orders
336 process_definition.set('orders', MultiProcess.\
337- find_maximal_non_qcd_order(process_definition))
338-
339+ find_optimal_process_orders(process_definition))
340+ # Check for maximum orders from the model
341+ process_definition.check_expansion_orders()
342+
343 processes = base_objects.ProcessList()
344 amplitudes = AmplitudeList()
345
346@@ -1363,25 +1374,40 @@
347 return amplitudes
348
349 @staticmethod
350- def find_maximal_non_qcd_order(process_definition):
351- """Find the maximal QCD order for this set of processes.
352+ def find_optimal_process_orders(process_definition):
353+ """Find the minimal WEIGHTED order for this set of processes.
354+
355 The algorithm:
356
357- 1) Check that there is only one non-QCD coupling in model.
358+ 1) Check the coupling hierarchy of the model. Assign all
359+ particles to the different coupling hierarchies so that a
360+ particle is considered to be in the highest hierarchy (i.e.,
361+ with lowest value) where it has an interaction.
362
363- 2) Find number of non-QCD-charged legs. This is the starting
364- non-QCD order. If non-QCD required s-channel particles are
365- specified, use the maximum of non-QCD legs and 2*number of
366- non-QCD s-channel particles as starting non-QCD order.
367-
368- 3) Run process generation with the maximal non-QCD order with
369- all gluons removed from the final state, until we find a
370- process which passes. Return that order.
371-
372- 4) If no processes pass with the given order, increase order
373- by one and repeat from 3) until we order #final - 1.
374-
375- 5) If no processes found, return non-QCD order = #final.
376+ 2) Pick out the legs in the multiprocess according to the
377+ highest hierarchy represented (so don't mix particles from
378+ different hierarchy classes in the same multiparticles!)
379+
380+ 3) Find the starting maximum WEIGHTED order as the sum of the
381+ highest n-2 weighted orders
382+
383+ 4) Pick out required s-channel particle hierarchies, and use
384+ the highest of the maximum WEIGHTED order from the legs and
385+ the minimum WEIGHTED order extracted from 2*s-channel
386+ hierarchys plus the n-2-2*(number of s-channels) lowest
387+ leg weighted orders.
388+
389+ 5) Run process generation with the WEIGHTED order determined
390+ in 3)-4) - # final state gluons, with all gluons removed from
391+ the final state
392+
393+ 6) If no process is found, increase WEIGHTED order by 1 and go
394+ back to 5), until we find a process which passes. Return that
395+ order.
396+
397+ 7) Continue 5)-6) until we reach (n-2)*(highest hierarchy)-1.
398+ If still no process has passed, return
399+ WEIGHTED = (n-2)*(highest hierarchy)
400 """
401
402 assert isinstance(process_definition, base_objects.ProcessDefinition), \
403@@ -1396,72 +1422,38 @@
404 process_definition.get('overall_orders'):
405 return process_definition.get('orders')
406
407- temp_process_definition = copy.copy(process_definition)
408-
409- model = process_definition['model']
410+ logger.info("Checking for minimal orders which gives processes.")
411+ logger.info("Please specify coupling orders to bypass this step.")
412+
413+ # Calculate minimum starting guess for WEIGHTED order
414+ max_order_now, particles, hierarchy = \
415+ process_definition.get_minimum_WEIGHTED()
416+ coupling = 'WEIGHTED'
417+
418+ model = process_definition.get('model')
419
420+ # Extract the initial and final leg ids
421 isids = [leg['ids'] for leg in \
422 filter(lambda leg: leg['state'] == False, process_definition['legs'])]
423 fsids = [leg['ids'] for leg in \
424 filter(lambda leg: leg['state'] == True, process_definition['legs'])]
425
426- # Find coupling orders in model
427- orders = list(set(sum([i.get('orders').keys() for i in \
428- model.get('interactions')], [])))
429- non_QCD_orders = [order for order in orders if order != 'QCD']
430- if len(non_QCD_orders) != 1 or len(orders)-len(non_QCD_orders) != 1:
431- # Too many or few orders
432- logger.info("Automatic coupling order check not possible " + \
433- "for this model.")
434- logger.info("Please specify coupling orders by hand.")
435- return {}
436-
437- coupling = non_QCD_orders[0]
438-
439- logger.info("Checking for minimal non-QCD order which gives processes.")
440- logger.info("Please specify coupling orders to bypass this step.")
441-
442- # Find number of non-QCD-charged legs
443- max_order_now = 0
444- for l in process_definition.get('legs'):
445- if any([model.get_particle(id).get('color') > 1 for id in \
446- l.get('ids')]):
447- continue
448- max_order_now += 1
449-
450- # Check for non-QCD-charged s-channel propagators
451- max_order_prop = []
452- for idlist in process_definition.get('required_s_channels'):
453- max_order_prop.append(0)
454- for id in idlist:
455- if model.get_particle(id).get('color') > 1:
456- continue
457- max_order_prop[-1] += 2
458-
459- if max_order_prop:
460- if len(max_order_prop) >1:
461- max_order_prop = min(*max_order_prop)
462- else:
463- max_order_prop = max_order_prop[0]
464-
465- max_order_now = max(max_order_now, max_order_prop)
466-
467- # Generate all combinations for the initial state
468-
469- while max_order_now < len(fsids):
470-
471- logger.info("Trying coupling order %s=%d" % (coupling,
472- max_order_now))
473+ # Run diagram generation with increasing max_order_now until
474+ # we manage to get diagrams
475+ while max_order_now < len(fsids)*max(hierarchy):
476+
477+ logger.info("Trying coupling order WEIGHTED=%d" % max_order_now)
478+
479 oldloglevel = logger.getEffectiveLevel()
480 logger.setLevel(logging.WARNING)
481
482 # failed_procs are processes that have already failed
483 # based on crossing symmetry
484 failed_procs = []
485-
486+
487+ # Generate all combinations for the initial state
488 for prod in apply(itertools.product, isids):
489- islegs = [\
490- base_objects.Leg({'id':id, 'state': False}) \
491+ islegs = [ base_objects.Leg({'id':id, 'state': False}) \
492 for id in prod]
493
494 # Generate all combinations for the final state, and make
495@@ -1477,8 +1469,12 @@
496
497 red_fsidlist.append(tuple(sorted(prod)));
498
499- # Remove gluons from final state
500- prod = [id for id in prod if id != 21]
501+ # Remove gluons from final state if QCD is among
502+ # the highest coupling hierarchy
503+ nglue = 0
504+ if 21 in particles[0]:
505+ nglue = len([id for id in prod if id == 21])
506+ prod = [id for id in prod if id != 21]
507
508 # Generate leg list for process
509 leg_list = [copy.copy(leg) for leg in islegs]
510@@ -1489,13 +1485,15 @@
511
512 legs = base_objects.LegList(leg_list)
513
514- # Set coupling order
515- coupling_orders_now = {coupling: max_order_now}
516+ # Set summed coupling order according to max_order_now
517+ # subtracting the removed gluons
518+ coupling_orders_now = {coupling: max_order_now - \
519+ nglue}
520
521 # Setup process
522 process = base_objects.Process({\
523 'legs':legs,
524- 'model':process_definition.get('model'),
525+ 'model':model,
526 'id': process_definition.get('id'),
527 'orders': coupling_orders_now,
528 'required_s_channels': \
529@@ -1509,6 +1507,9 @@
530 'overall_orders': \
531 process_definition.get('overall_orders')})
532
533+ # Check for couplings with given expansion orders
534+ process.check_expansion_orders()
535+
536 # Check for crossed processes
537 sorted_legs = sorted(legs.get_outgoing_id_list(model))
538 # Check if crossed process has already failed
539@@ -1533,8 +1534,8 @@
540 max_order_now += 1
541 logger.setLevel(oldloglevel)
542
543- # If no valid processes found with nfinal-1 couplings, return nfinal
544- return {coupling: len(fsids)}
545+ # If no valid processes found with nfinal-1 couplings, return maximal
546+ return {coupling: len(fsids)*max(hierarchy)}
547
548 @staticmethod
549 def cross_amplitude(amplitude, process, org_perm, new_perm):
550
551=== modified file 'madgraph/iolibs/drawing_eps.py'
552--- madgraph/iolibs/drawing_eps.py 2011-06-15 18:49:22 +0000
553+++ madgraph/iolibs/drawing_eps.py 2011-07-22 20:26:18 +0000
554@@ -239,7 +239,8 @@
555 #zero.
556
557 mystr = " (%s)" % ", ".join(["%s=%d" % (key, self.diagram.diagram['orders'][key]) \
558- for key in self.diagram.diagram['orders'].keys()])
559+ for key in sorted(self.diagram.diagram['orders'].keys()) \
560+ if key != 'WEIGHTED'])
561
562 x = 0.6
563 y = -0.17
564
565=== modified file 'madgraph/iolibs/import_v4.py'
566--- madgraph/iolibs/import_v4.py 2011-05-08 07:27:55 +0000
567+++ madgraph/iolibs/import_v4.py 2011-07-22 20:26:18 +0000
568@@ -70,7 +70,7 @@
569 model['particles']))
570
571 model.set('name', os.path.split(model_path)[-1])
572-
573+
574 # save in a pickle files to fasten future usage
575 save_load_object.save_to_file(os.path.join(model_path, 'model.pkl'), model)
576
577
578=== modified file 'models/2HDM/__init__.py'
579--- models/2HDM/__init__.py 2011-04-11 23:28:30 +0000
580+++ models/2HDM/__init__.py 2011-07-22 20:26:18 +0000
581@@ -4,6 +4,7 @@
582 import lorentz
583 import parameters
584 import vertices
585+import coupling_orders
586 import write_param_card
587
588
589@@ -12,9 +13,10 @@
590 all_couplings = couplings.all_couplings
591 all_lorentz = lorentz.all_lorentz
592 all_parameters = parameters.all_parameters
593+all_orders = coupling_orders.all_orders
594 all_functions = function_library.all_functions
595
596
597-__author__ = "C. Duhr, M. Herquet"
598-__version__ = "1.0"
599-__email__ = "claude.duhr@uclouvain.be, mherquet@nikhef.nl"
600+__author__ = "N. Christensen, C. Duhr"
601+__version__ = "1.3"
602+__email__ = "neil@pa.msu.edu, claude.duhr@uclouvain.be"
603
604=== added file 'models/2HDM/coupling_orders.py'
605--- models/2HDM/coupling_orders.py 1970-01-01 00:00:00 +0000
606+++ models/2HDM/coupling_orders.py 2011-07-22 20:26:18 +0000
607@@ -0,0 +1,15 @@
608+# This file was automatically created by FeynRules $Revision: 634 $
609+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
610+# Date: Tue 19 Jul 2011 18:23:49
611+
612+
613+from object_library import all_orders, CouplingOrder
614+
615+
616+QCD = CouplingOrder(name = 'QCD',
617+ expansion_order = -1,
618+ hierarchy = 1)
619+
620+QED = CouplingOrder(name = 'QED',
621+ expansion_order = -1,
622+ hierarchy = 2)
623
624=== modified file 'models/2HDM/object_library.py'
625--- models/2HDM/object_library.py 2011-04-11 23:28:30 +0000
626+++ models/2HDM/object_library.py 2011-07-22 20:26:18 +0000
627@@ -228,5 +228,18 @@
628
629 return eval(self.expr)
630
631+all_orders = []
632+
633+class CouplingOrder(object):
634+
635+ def __init__(self, name, expansion_order, hierarchy, perturbative_expansion = 0):
636+
637+ global all_orders
638+ all_orders.append(self)
639+
640+ self.name = name
641+ self.expansion_order = expansion_order
642+ self.hierarchy = hierarchy
643+
644
645
646
647=== modified file 'models/4Gen/__init__.py'
648--- models/4Gen/__init__.py 2011-04-10 15:43:51 +0000
649+++ models/4Gen/__init__.py 2011-07-22 20:26:18 +0000
650@@ -4,6 +4,7 @@
651 import lorentz
652 import parameters
653 import vertices
654+import coupling_orders
655 import write_param_card
656
657
658@@ -12,9 +13,10 @@
659 all_couplings = couplings.all_couplings
660 all_lorentz = lorentz.all_lorentz
661 all_parameters = parameters.all_parameters
662+all_orders = coupling_orders.all_orders
663 all_functions = function_library.all_functions
664
665
666-__author__ = "C. Duhr"
667-__version__ = "1.1"
668-__email__ = "claude.duhr@durham.ac.uk"
669+__author__ = "N. Christensen, C. Duhr"
670+__version__ = "1.3"
671+__email__ = "neil@pa.msu.edu, claude.duhr@uclouvain.be"
672
673=== added file 'models/4Gen/coupling_orders.py'
674--- models/4Gen/coupling_orders.py 1970-01-01 00:00:00 +0000
675+++ models/4Gen/coupling_orders.py 2011-07-22 20:26:18 +0000
676@@ -0,0 +1,15 @@
677+# This file was automatically created by FeynRules $Revision: 634 $
678+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
679+# Date: Tue 19 Jul 2011 18:23:49
680+
681+
682+from object_library import all_orders, CouplingOrder
683+
684+
685+QCD = CouplingOrder(name = 'QCD',
686+ expansion_order = -1,
687+ hierarchy = 1)
688+
689+QED = CouplingOrder(name = 'QED',
690+ expansion_order = -1,
691+ hierarchy = 2)
692
693=== modified file 'models/4Gen/object_library.py'
694--- models/4Gen/object_library.py 2011-04-10 15:43:51 +0000
695+++ models/4Gen/object_library.py 2011-07-22 20:26:18 +0000
696@@ -228,5 +228,18 @@
697
698 return eval(self.expr)
699
700+all_orders = []
701+
702+class CouplingOrder(object):
703+
704+ def __init__(self, name, expansion_order, hierarchy, perturbative_expansion = 0):
705+
706+ global all_orders
707+ all_orders.append(self)
708+
709+ self.name = name
710+ self.expansion_order = expansion_order
711+ self.hierarchy = hierarchy
712+
713
714
715
716=== modified file 'models/RS/__init__.py'
717--- models/RS/__init__.py 2011-04-10 15:43:51 +0000
718+++ models/RS/__init__.py 2011-07-22 20:26:18 +0000
719@@ -4,6 +4,7 @@
720 import lorentz
721 import parameters
722 import vertices
723+import coupling_orders
724 import write_param_card
725
726
727@@ -12,9 +13,10 @@
728 all_couplings = couplings.all_couplings
729 all_lorentz = lorentz.all_lorentz
730 all_parameters = parameters.all_parameters
731+all_orders = coupling_orders.all_orders
732 all_functions = function_library.all_functions
733
734
735-__author__ = "Priscila de Aquino"
736-__version__ = "2.0"
737-__email__ = "priscila@itf.kuleuven.be"
738+__author__ = "N. Christensen, C. Duhr"
739+__version__ = "1.3"
740+__email__ = "neil@pa.msu.edu, claude.duhr@uclouvain.be"
741
742=== added file 'models/RS/coupling_orders.py'
743--- models/RS/coupling_orders.py 1970-01-01 00:00:00 +0000
744+++ models/RS/coupling_orders.py 2011-07-22 20:26:18 +0000
745@@ -0,0 +1,15 @@
746+# This file was automatically created by FeynRules $Revision: 634 $
747+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
748+# Date: Tue 19 Jul 2011 18:23:49
749+
750+
751+from object_library import all_orders, CouplingOrder
752+
753+
754+QCD = CouplingOrder(name = 'QCD',
755+ expansion_order = -1,
756+ hierarchy = 1)
757+
758+QED = CouplingOrder(name = 'QED',
759+ expansion_order = -1,
760+ hierarchy = 2)
761
762=== modified file 'models/RS/object_library.py'
763--- models/RS/object_library.py 2011-04-10 15:43:51 +0000
764+++ models/RS/object_library.py 2011-07-22 20:26:18 +0000
765@@ -1,228 +1,245 @@
766-##
767-##
768-## Feynrules Header
769-##
770-##
771-##
772-##
773-##
774-
775-import cmath
776-
777-
778-class FRBaseClass(object):
779- """The class from which all FeynRules classes are derived."""
780-
781- require_args = []
782-
783- def __init__(self, *args, **options):
784- assert(len(self.require_args) == len (args))
785-
786- for i, name in enumerate(self.require_args):
787- setattr(self, name, args[i])
788-
789- for (option, value) in options.items():
790- setattr(self, option, value)
791-
792- def get(self, name):
793- return getattr(self, name)
794-
795- def set(self, name, value):
796- setattr(self, name, value)
797-
798- def get_all(self):
799- """Return a dictionary containing all the information of the object"""
800- return self.__dict__
801-
802- def __str__(self):
803- return self.name
804-
805- def nice_string(self):
806- """ return string with the full information """
807- return '\n'.join(['%s \t: %s' %(name, value) for name, value in self.__dict__.items()])
808-
809- def __repr__(self):
810- replacements = [
811- ('+','__plus__'),
812- ('-','__minus__'),
813- ('@','__at__'),
814- ('!','__exclam__'),
815- ('?','__quest__'),
816- ('*','__star__'),
817- ('~','__tilde__')
818- ]
819- text = self.name
820- for orig,sub in replacements:
821- text = text.replace(orig,sub)
822- return text
823-
824-
825-
826-all_particles = []
827-
828-
829-
830-class Particle(FRBaseClass):
831- """A standard Particle"""
832-
833- require_args=['pdg_code', 'name', 'antiname', 'spin', 'color', 'mass', 'width', 'texname', 'antitexname', 'charge']
834-
835- require_args_all = ['pdg_code', 'name', 'antiname', 'spin', 'color', 'mass', 'width', 'texname', 'antitexname', 'charge', 'line', 'propagating', 'goldstoneboson']
836-
837- def __init__(self, pdg_code, name, antiname, spin, color, mass, width, texname,
838- antitexname, charge , line=None, propagating=True, goldstoneboson=False, **options):
839-
840- args= (pdg_code, name, antiname, spin, color, mass, width, texname,
841- antitexname, float(charge))
842-
843- FRBaseClass.__init__(self, *args, **options)
844-
845- global all_particles
846- all_particles.append(self)
847-
848- self.propagating = propagating
849- self.goldstoneboson= goldstoneboson
850-
851- self.selfconjugate = (name == antiname)
852- if not line:
853- self.line = self.find_line_type()
854- else:
855- self.line = line
856-
857-
858- def find_line_type(self):
859- """ find how we draw a line if not defined
860- valid output: dashed/straight/wavy/curly/double/swavy/scurly
861- """
862-
863- spin = self.spin
864- color = self.color
865-
866- #use default
867- if spin == 1:
868- return 'dashed'
869- elif spin == 2:
870- if not self.selfconjugate:
871- return 'straight'
872- elif color == 1:
873- return 'swavy'
874- else:
875- return 'scurly'
876- elif spin == 3:
877- if color == 1:
878- return 'wavy'
879-
880- else:
881- return 'curly'
882- elif spin == 5:
883- return 'double'
884- else:
885- return 'dashed' # not supported yet
886-
887- def anti(self):
888- if self.selfconjugate:
889- raise Exception('%s has no anti particle.' % self.name)
890- outdic = {}
891- for k,v in self.__dict__.iteritems():
892- if k not in self.require_args_all:
893- outdic[k] = -v
894- if self.color in [1,8]:
895- newcolor = self.color
896- else:
897- newcolor = -self.color
898-
899- return Particle(-self.pdg_code, self.antiname, self.name, self.spin, newcolor, self.mass, self.width,
900- self.antitexname, self.texname, -self.charge, self.line, self.propagating, self.goldstoneboson, **outdic)
901-
902-
903-
904-all_parameters = []
905-
906-class Parameter(FRBaseClass):
907-
908- require_args=['name', 'nature', 'type', 'value', 'texname']
909-
910- def __init__(self, name, nature, type, value, texname, lhablock=None, lhacode=None):
911-
912- args = (name,nature,type,value,texname)
913-
914- FRBaseClass.__init__(self, *args)
915-
916- args=(name,nature,type,value,texname)
917-
918- global all_parameters
919- all_parameters.append(self)
920-
921- if (lhablock is None or lhacode is None) and nature == 'external':
922- raise Exception('Need LHA information for external parameter "%s".' % name)
923- self.lhablock = lhablock
924- self.lhacode = lhacode
925-
926-all_vertices = []
927-
928-class Vertex(FRBaseClass):
929-
930- require_args=['name', 'particles', 'color', 'lorentz', 'couplings']
931-
932- def __init__(self, name, particles, color, lorentz, couplings, **opt):
933-
934- args = (name, particles, color, lorentz, couplings)
935-
936- FRBaseClass.__init__(self, *args, **opt)
937-
938- args=(particles,color,lorentz,couplings)
939-
940- global all_vertices
941- all_vertices.append(self)
942-
943-all_couplings = []
944-
945-class Coupling(FRBaseClass):
946-
947- require_args=['name', 'value', 'order']
948-
949- def __init__(self, name, value, order, **opt):
950-
951- args =(name, value, order)
952- FRBaseClass.__init__(self, *args, **opt)
953- global all_couplings
954- all_couplings.append(self)
955-
956-
957-
958-all_lorentz = []
959-
960-class Lorentz(FRBaseClass):
961-
962- require_args=['name','spins','structure']
963-
964- def __init__(self, name, spins, structure='external', **opt):
965- args = (name, spins, structure)
966- FRBaseClass.__init__(self, *args, **opt)
967-
968- global all_lorentz
969- all_lorentz.append(self)
970-
971-
972-all_functions = []
973-
974-class Function(object):
975-
976- def __init__(self, name, arguments, expression):
977-
978- global all_functions
979- all_functions.append(self)
980-
981- self.name = name
982- self.arguments = arguments
983- self.expr = expression
984-
985- def __call__(self, *opt):
986-
987- for i, arg in enumerate(self.arguments):
988- exec('%s = %s' % (arg, opt[i] ))
989-
990- return eval(self.expr)
991-
992-
993-
994+##
995+##
996+## Feynrules Header
997+##
998+##
999+##
1000+##
1001+##
1002+
1003+import cmath
1004+
1005+
1006+class UFOBaseClass(object):
1007+ """The class from which all FeynRules classes are derived."""
1008+
1009+ require_args = []
1010+
1011+ def __init__(self, *args, **options):
1012+ assert(len(self.require_args) == len (args))
1013+
1014+ for i, name in enumerate(self.require_args):
1015+ setattr(self, name, args[i])
1016+
1017+ for (option, value) in options.items():
1018+ setattr(self, option, value)
1019+
1020+ def get(self, name):
1021+ return getattr(self, name)
1022+
1023+ def set(self, name, value):
1024+ setattr(self, name, value)
1025+
1026+ def get_all(self):
1027+ """Return a dictionary containing all the information of the object"""
1028+ return self.__dict__
1029+
1030+ def __str__(self):
1031+ return self.name
1032+
1033+ def nice_string(self):
1034+ """ return string with the full information """
1035+ return '\n'.join(['%s \t: %s' %(name, value) for name, value in self.__dict__.items()])
1036+
1037+ def __repr__(self):
1038+ replacements = [
1039+ ('+','__plus__'),
1040+ ('-','__minus__'),
1041+ ('@','__at__'),
1042+ ('!','__exclam__'),
1043+ ('?','__quest__'),
1044+ ('*','__star__'),
1045+ ('~','__tilde__')
1046+ ]
1047+ text = self.name
1048+ for orig,sub in replacements:
1049+ text = text.replace(orig,sub)
1050+ return text
1051+
1052+
1053+
1054+all_particles = []
1055+
1056+
1057+
1058+class Particle(UFOBaseClass):
1059+ """A standard Particle"""
1060+
1061+ require_args=['pdg_code', 'name', 'antiname', 'spin', 'color', 'mass', 'width', 'texname', 'antitexname', 'charge']
1062+
1063+ require_args_all = ['pdg_code', 'name', 'antiname', 'spin', 'color', 'mass', 'width', 'texname', 'antitexname', 'charge', 'line', 'propagating', 'goldstoneboson']
1064+
1065+ def __init__(self, pdg_code, name, antiname, spin, color, mass, width, texname,
1066+ antitexname, charge , line=None, propagating=True, goldstoneboson=False, **options):
1067+
1068+ args= (pdg_code, name, antiname, spin, color, mass, width, texname,
1069+ antitexname, float(charge))
1070+
1071+ UFOBaseClass.__init__(self, *args, **options)
1072+
1073+ global all_particles
1074+ all_particles.append(self)
1075+
1076+ self.propagating = propagating
1077+ self.goldstoneboson= goldstoneboson
1078+
1079+ self.selfconjugate = (name == antiname)
1080+ if 1: #not line:
1081+ self.line = self.find_line_type()
1082+ else:
1083+ self.line = line
1084+
1085+
1086+
1087+
1088+ def find_line_type(self):
1089+ """ find how we draw a line if not defined
1090+ valid output: dashed/straight/wavy/curly/double/swavy/scurly
1091+ """
1092+
1093+ spin = self.spin
1094+ color = self.color
1095+
1096+ #use default
1097+ if spin == 1:
1098+ return 'dashed'
1099+ elif spin == 2:
1100+ if not self.selfconjugate:
1101+ return 'straight'
1102+ elif color == 1:
1103+ return 'swavy'
1104+ else:
1105+ return 'scurly'
1106+ elif spin == 3:
1107+ if color == 1:
1108+ return 'wavy'
1109+
1110+ else:
1111+ return 'curly'
1112+ elif spin == 5:
1113+ return 'double'
1114+ elif spin == -1:
1115+ return 'dotted'
1116+ else:
1117+ return 'dashed' # not supported yet
1118+
1119+ def anti(self):
1120+ if self.selfconjugate:
1121+ raise Exception('%s has no anti particle.' % self.name)
1122+ outdic = {}
1123+ for k,v in self.__dict__.iteritems():
1124+ if k not in self.require_args_all:
1125+ outdic[k] = -v
1126+ if self.color in [1,8]:
1127+ newcolor = self.color
1128+ else:
1129+ newcolor = -self.color
1130+
1131+ return Particle(-self.pdg_code, self.antiname, self.name, self.spin, newcolor, self.mass, self.width,
1132+ self.antitexname, self.texname, -self.charge, self.line, self.propagating, self.goldstoneboson, **outdic)
1133+
1134+
1135+
1136+all_parameters = []
1137+
1138+class Parameter(UFOBaseClass):
1139+
1140+ require_args=['name', 'nature', 'type', 'value', 'texname']
1141+
1142+ def __init__(self, name, nature, type, value, texname, lhablock=None, lhacode=None):
1143+
1144+ args = (name,nature,type,value,texname)
1145+
1146+ UFOBaseClass.__init__(self, *args)
1147+
1148+ args=(name,nature,type,value,texname)
1149+
1150+ global all_parameters
1151+ all_parameters.append(self)
1152+
1153+ if (lhablock is None or lhacode is None) and nature == 'external':
1154+ raise Exception('Need LHA information for external parameter "%s".' % name)
1155+ self.lhablock = lhablock
1156+ self.lhacode = lhacode
1157+
1158+all_vertices = []
1159+
1160+class Vertex(UFOBaseClass):
1161+
1162+ require_args=['name', 'particles', 'color', 'lorentz', 'couplings']
1163+
1164+ def __init__(self, name, particles, color, lorentz, couplings, **opt):
1165+
1166+ args = (name, particles, color, lorentz, couplings)
1167+
1168+ UFOBaseClass.__init__(self, *args, **opt)
1169+
1170+ args=(particles,color,lorentz,couplings)
1171+
1172+ global all_vertices
1173+ all_vertices.append(self)
1174+
1175+all_couplings = []
1176+
1177+class Coupling(UFOBaseClass):
1178+
1179+ require_args=['name', 'value', 'order']
1180+
1181+ def __init__(self, name, value, order, **opt):
1182+
1183+ args =(name, value, order)
1184+ UFOBaseClass.__init__(self, *args, **opt)
1185+ global all_couplings
1186+ all_couplings.append(self)
1187+
1188+
1189+
1190+all_lorentz = []
1191+
1192+class Lorentz(UFOBaseClass):
1193+
1194+ require_args=['name','spins','structure']
1195+
1196+ def __init__(self, name, spins, structure='external', **opt):
1197+ args = (name, spins, structure)
1198+ UFOBaseClass.__init__(self, *args, **opt)
1199+
1200+ global all_lorentz
1201+ all_lorentz.append(self)
1202+
1203+
1204+all_functions = []
1205+
1206+class Function(object):
1207+
1208+ def __init__(self, name, arguments, expression):
1209+
1210+ global all_functions
1211+ all_functions.append(self)
1212+
1213+ self.name = name
1214+ self.arguments = arguments
1215+ self.expr = expression
1216+
1217+ def __call__(self, *opt):
1218+
1219+ for i, arg in enumerate(self.arguments):
1220+ exec('%s = %s' % (arg, opt[i] ))
1221+
1222+ return eval(self.expr)
1223+
1224+all_orders = []
1225+
1226+class CouplingOrder(object):
1227+
1228+ def __init__(self, name, expansion_order, hierarchy, perturbative_expansion = 0):
1229+
1230+ global all_orders
1231+ all_orders.append(self)
1232+
1233+ self.name = name
1234+ self.expansion_order = expansion_order
1235+ self.hierarchy = hierarchy
1236+
1237+
1238+
1239
1240=== modified file 'models/SMScalars/__init__.py'
1241--- models/SMScalars/__init__.py 2011-04-10 15:43:51 +0000
1242+++ models/SMScalars/__init__.py 2011-07-22 20:26:18 +0000
1243@@ -4,6 +4,7 @@
1244 import lorentz
1245 import parameters
1246 import vertices
1247+import coupling_orders
1248 import write_param_card
1249
1250
1251@@ -12,9 +13,10 @@
1252 all_couplings = couplings.all_couplings
1253 all_lorentz = lorentz.all_lorentz
1254 all_parameters = parameters.all_parameters
1255+all_orders = coupling_orders.all_orders
1256 all_functions = function_library.all_functions
1257
1258
1259-__author__ = "C. Duhr"
1260-__version__ = "1.0"
1261-__email__ = "claude.duhr@uclouvain.be"
1262+__author__ = "N. Christensen, C. Duhr"
1263+__version__ = "1.3"
1264+__email__ = "neil@pa.msu.edu, claude.duhr@uclouvain.be"
1265
1266=== added file 'models/SMScalars/coupling_orders.py'
1267--- models/SMScalars/coupling_orders.py 1970-01-01 00:00:00 +0000
1268+++ models/SMScalars/coupling_orders.py 2011-07-22 20:26:18 +0000
1269@@ -0,0 +1,15 @@
1270+# This file was automatically created by FeynRules $Revision: 634 $
1271+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
1272+# Date: Tue 19 Jul 2011 18:23:49
1273+
1274+
1275+from object_library import all_orders, CouplingOrder
1276+
1277+
1278+QCD = CouplingOrder(name = 'QCD',
1279+ expansion_order = -1,
1280+ hierarchy = 1)
1281+
1282+QED = CouplingOrder(name = 'QED',
1283+ expansion_order = -1,
1284+ hierarchy = 2)
1285
1286=== modified file 'models/SMScalars/object_library.py'
1287--- models/SMScalars/object_library.py 2011-04-10 15:43:51 +0000
1288+++ models/SMScalars/object_library.py 2011-07-22 20:26:18 +0000
1289@@ -228,5 +228,18 @@
1290
1291 return eval(self.expr)
1292
1293+all_orders = []
1294+
1295+class CouplingOrder(object):
1296+
1297+ def __init__(self, name, expansion_order, hierarchy, perturbative_expansion = 0):
1298+
1299+ global all_orders
1300+ all_orders.append(self)
1301+
1302+ self.name = name
1303+ self.expansion_order = expansion_order
1304+ self.hierarchy = hierarchy
1305+
1306
1307
1308
1309=== added file 'models/heft/HEFT_UFO.log'
1310--- models/heft/HEFT_UFO.log 1970-01-01 00:00:00 +0000
1311+++ models/heft/HEFT_UFO.log 2011-07-22 20:26:18 +0000
1312@@ -0,0 +1,75 @@
1313+# This file was automatically created by FeynRules $Revision: 634 $
1314+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
1315+# Date: Wed 20 Jul 2011 12:57:52
1316+
1317+
1318+#
1319+# This is the logfile for the model Higgs_Effective_Couplings
1320+
1321+# Authors: N. Christensen, C. Duhr
1322+# Model version: 1.3
1323+# Checking the Lagrangians
1324+ * All Lagrangians are ok.
1325+#
1326+# Particle definitions
1327+#
1328+
1329+ * No particles removed. All particles correspond to GenInt setup.
1330+
1331+# Automatically assigned PDG numbers
1332+ * Assigned PDG number 9000001 to particle ghA
1333+ * Assigned PDG number 9000002 to particle ghZ
1334+ * Assigned PDG number 9000003 to particle ghWp
1335+ * Assigned PDG number 9000004 to particle ghWm
1336+ * Assigned PDG number 9000005 to particle ghG
1337+ * Assigned PDG number 9000006 to particle h1
1338+
1339+
1340+# Compulsory PDG codes:
1341+ * Class SM leptons complete.
1342+ * Class SM neutrinos complete.
1343+ * Class SM quarks complete.
1344+ * Class SM gauge bosons complete.
1345+#
1346+# Parameter definitions
1347+#
1348+
1349+ * All parameters are ok.
1350+
1351+
1352+# Vertices
1353+ * Calling FeynmanRules for 1 Lagrangians.
1354+ * Number of classes vertices: 36
1355+ * Number of flavored vertices: 77
1356+ * Saved vertices in InterfaceRun[ 1 ].
1357+ * Removing all ghosts and Goldstone bosons form the output.
1358+ * Checked QNumber conservation.
1359+ - Quantum number GhostNumber conserved in all vertices.
1360+ - Quantum number LeptonNumber conserved in all vertices.
1361+ - Quantum number Q conserved in all vertices.
1362+ * particles.py written.
1363+ * parameters.py written.
1364+#
1365+# Vertex definitions
1366+#
1367+
1368+ * 76 vertices written.
1369+ * vertices.py written.
1370+#
1371+# Lorentz structure definitions
1372+#
1373+
1374+ * 22 lorentz structures written.
1375+ * lorentz.py written.
1376+#
1377+# Coupling definitions
1378+#
1379+
1380+ * 53 couplings written.
1381+ * couplings.py written.
1382+#
1383+# Coupling order definitions
1384+#
1385+
1386+ * 0 couplings orders written.
1387+ * coupling_orders.py written.
1388
1389=== removed file 'models/heft/Higgs_Effective_Couplings_UFO.log'
1390--- models/heft/Higgs_Effective_Couplings_UFO.log 2011-05-28 20:11:29 +0000
1391+++ models/heft/Higgs_Effective_Couplings_UFO.log 1970-01-01 00:00:00 +0000
1392@@ -1,69 +0,0 @@
1393-# This file was automatically created by FeynRules $Revision: 623 $
1394-# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
1395-# Date: Sat 28 May 2011 18:07:33
1396-
1397-
1398-#
1399-# This is the logfile for the model Higgs_Effective_Couplings
1400-
1401-# Authors: N. Christensen, C. Duhr
1402-# Model version: 1.3
1403-# Checking the Lagrangians
1404- * All Lagrangians are ok.
1405-#
1406-# Particle definitions
1407-#
1408-
1409- * No particles removed. All particles correspond to GenInt setup.
1410-
1411-# Automatically assigned PDG numbers
1412- * Assigned PDG number 9000001 to particle ghA
1413- * Assigned PDG number 9000002 to particle ghZ
1414- * Assigned PDG number 9000003 to particle ghWp
1415- * Assigned PDG number 9000004 to particle ghWm
1416- * Assigned PDG number 9000005 to particle ghG
1417- * Assigned PDG number 9000006 to particle h1
1418-
1419-
1420-# Compulsory PDG codes:
1421- * Class SM leptons complete.
1422- * Class SM neutrinos complete.
1423- * Class SM quarks complete.
1424- * Class SM gauge bosons complete.
1425-#
1426-# Parameter definitions
1427-#
1428-
1429- * All parameters are ok.
1430-
1431-
1432-# Vertices
1433- * Calling FeynmanRules for 1 Lagrangians.
1434- * Number of classes vertices: 36
1435- * Number of flavored vertices: 74
1436- * Saved vertices in InterfaceRun[ 1 ].
1437- * Removing all ghosts and Goldstone bosons form the output.
1438- * Checked QNumber conservation.
1439- - Quantum number GhostNumber conserved in all vertices.
1440- - Quantum number LeptonNumber conserved in all vertices.
1441- - Quantum number Q conserved in all vertices.
1442- * particles.py written.
1443- * parameters.py written.
1444-#
1445-# Vertex definitions
1446-#
1447-
1448- * 73 vertices written.
1449- * vertices.py written.
1450-#
1451-# Lorentz structure definitions
1452-#
1453-
1454- * 22 lorentz structures written.
1455- * lorentz.py written.
1456-#
1457-# Coupling definitions
1458-#
1459-
1460- * 50 couplings written.
1461- * couplings.py written.
1462
1463=== modified file 'models/heft/__init__.py'
1464--- models/heft/__init__.py 2011-04-10 15:43:51 +0000
1465+++ models/heft/__init__.py 2011-07-22 20:26:18 +0000
1466@@ -4,6 +4,7 @@
1467 import lorentz
1468 import parameters
1469 import vertices
1470+import coupling_orders
1471 import write_param_card
1472
1473
1474@@ -12,6 +13,7 @@
1475 all_couplings = couplings.all_couplings
1476 all_lorentz = lorentz.all_lorentz
1477 all_parameters = parameters.all_parameters
1478+all_orders = coupling_orders.all_orders
1479 all_functions = function_library.all_functions
1480
1481
1482
1483=== added file 'models/heft/coupling_orders.py'
1484--- models/heft/coupling_orders.py 1970-01-01 00:00:00 +0000
1485+++ models/heft/coupling_orders.py 2011-07-22 20:26:18 +0000
1486@@ -0,0 +1,24 @@
1487+# This file was automatically created by FeynRules $Revision: 634 $
1488+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
1489+# Date: Wed 20 Jul 2011 12:58:03
1490+
1491+
1492+from object_library import all_orders, CouplingOrder
1493+
1494+
1495+QCD = CouplingOrder(name = 'QCD',
1496+ expansion_order = 99,
1497+ hierarchy = 1)
1498+
1499+QED = CouplingOrder(name = 'QED',
1500+ expansion_order = 99,
1501+ hierarchy = 2)
1502+
1503+HIG = CouplingOrder(name = 'HIG',
1504+ expansion_order = 1,
1505+ hierarchy = 2)
1506+
1507+HIW = CouplingOrder(name = 'HIW',
1508+ expansion_order = 1,
1509+ hierarchy = 2)
1510+
1511
1512=== modified file 'models/heft/couplings.py'
1513--- models/heft/couplings.py 2011-05-28 20:11:29 +0000
1514+++ models/heft/couplings.py 2011-07-22 20:26:18 +0000
1515@@ -1,6 +1,6 @@
1516-# This file was automatically created by FeynRules $Revision: 623 $
1517+# This file was automatically created by FeynRules $Revision: 634 $
1518 # Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
1519-# Date: Sat 28 May 2011 18:07:45
1520+# Date: Wed 20 Jul 2011 12:58:03
1521
1522
1523 from object_library import all_couplings, Coupling
1524@@ -166,46 +166,58 @@
1525 order = {'QED':1})
1526
1527 GC_40 = Coupling(name = 'GC_40',
1528+ value = '-((complex(0,1)*yc)/cmath.sqrt(2))',
1529+ order = {'QED':1})
1530+
1531+GC_41 = Coupling(name = 'GC_41',
1532+ value = '-((complex(0,1)*ye)/cmath.sqrt(2))',
1533+ order = {'QED':1})
1534+
1535+GC_42 = Coupling(name = 'GC_42',
1536+ value = '-((complex(0,1)*ym)/cmath.sqrt(2))',
1537+ order = {'QED':1})
1538+
1539+GC_43 = Coupling(name = 'GC_43',
1540 value = '-((complex(0,1)*yt)/cmath.sqrt(2))',
1541 order = {'QED':1})
1542
1543-GC_41 = Coupling(name = 'GC_41',
1544+GC_44 = Coupling(name = 'GC_44',
1545 value = '-((complex(0,1)*ytau)/cmath.sqrt(2))',
1546 order = {'QED':1})
1547
1548-GC_42 = Coupling(name = 'GC_42',
1549+GC_45 = Coupling(name = 'GC_45',
1550 value = '(ee*complex(0,1)*complexconjugate(CKM11))/(sw*cmath.sqrt(2))',
1551 order = {'QED':1})
1552
1553-GC_43 = Coupling(name = 'GC_43',
1554+GC_46 = Coupling(name = 'GC_46',
1555 value = '(ee*complex(0,1)*complexconjugate(CKM12))/(sw*cmath.sqrt(2))',
1556 order = {'QED':1})
1557
1558-GC_44 = Coupling(name = 'GC_44',
1559+GC_47 = Coupling(name = 'GC_47',
1560 value = '(ee*complex(0,1)*complexconjugate(CKM13))/(sw*cmath.sqrt(2))',
1561 order = {'QED':1})
1562
1563-GC_45 = Coupling(name = 'GC_45',
1564+GC_48 = Coupling(name = 'GC_48',
1565 value = '(ee*complex(0,1)*complexconjugate(CKM21))/(sw*cmath.sqrt(2))',
1566 order = {'QED':1})
1567
1568-GC_46 = Coupling(name = 'GC_46',
1569+GC_49 = Coupling(name = 'GC_49',
1570 value = '(ee*complex(0,1)*complexconjugate(CKM22))/(sw*cmath.sqrt(2))',
1571 order = {'QED':1})
1572
1573-GC_47 = Coupling(name = 'GC_47',
1574+GC_50 = Coupling(name = 'GC_50',
1575 value = '(ee*complex(0,1)*complexconjugate(CKM23))/(sw*cmath.sqrt(2))',
1576 order = {'QED':1})
1577
1578-GC_48 = Coupling(name = 'GC_48',
1579+GC_51 = Coupling(name = 'GC_51',
1580 value = '(ee*complex(0,1)*complexconjugate(CKM31))/(sw*cmath.sqrt(2))',
1581 order = {'QED':1})
1582
1583-GC_49 = Coupling(name = 'GC_49',
1584+GC_52 = Coupling(name = 'GC_52',
1585 value = '(ee*complex(0,1)*complexconjugate(CKM32))/(sw*cmath.sqrt(2))',
1586 order = {'QED':1})
1587
1588-GC_50 = Coupling(name = 'GC_50',
1589+GC_53 = Coupling(name = 'GC_53',
1590 value = '(ee*complex(0,1)*complexconjugate(CKM33))/(sw*cmath.sqrt(2))',
1591 order = {'QED':1})
1592
1593
1594=== modified file 'models/heft/lorentz.py'
1595--- models/heft/lorentz.py 2011-05-28 20:11:29 +0000
1596+++ models/heft/lorentz.py 2011-07-22 20:26:18 +0000
1597@@ -1,6 +1,6 @@
1598-# This file was automatically created by FeynRules $Revision: 623 $
1599+# This file was automatically created by FeynRules $Revision: 634 $
1600 # Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
1601-# Date: Sat 28 May 2011 18:07:45
1602+# Date: Wed 20 Jul 2011 12:58:03
1603
1604
1605 from object_library import all_lorentz, Lorentz
1606
1607=== modified file 'models/heft/object_library.py'
1608--- models/heft/object_library.py 2011-05-28 20:11:29 +0000
1609+++ models/heft/object_library.py 2011-07-22 20:26:18 +0000
1610@@ -230,9 +230,9 @@
1611
1612 all_orders = []
1613
1614-class Order(object):
1615+class CouplingOrder(object):
1616
1617- def __init__(self, name, expansion_order, hierarchy):
1618+ def __init__(self, name, expansion_order, hierarchy, perturbative_expansion = 0):
1619
1620 global all_orders
1621 all_orders.append(self)
1622
1623=== modified file 'models/heft/parameters.py'
1624--- models/heft/parameters.py 2011-05-28 20:11:29 +0000
1625+++ models/heft/parameters.py 2011-07-22 20:26:18 +0000
1626@@ -1,6 +1,6 @@
1627-# This file was automatically created by FeynRules $Revision: 623 $
1628+# This file was automatically created by FeynRules $Revision: 634 $
1629 # Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
1630-# Date: Sat 28 May 2011 18:07:45
1631+# Date: Wed 20 Jul 2011 12:58:03
1632
1633
1634
1635@@ -44,7 +44,7 @@
1636 lamWS = Parameter(name = 'lamWS',
1637 nature = 'external',
1638 type = 'real',
1639- value = 0,
1640+ value = 0.2253,
1641 texname = '\\text{lamWS}',
1642 lhablock = 'Wolfenstein',
1643 lhacode = [ 1 ])
1644@@ -52,7 +52,7 @@
1645 AWS = Parameter(name = 'AWS',
1646 nature = 'external',
1647 type = 'real',
1648- value = 0,
1649+ value = 0.808,
1650 texname = '\\text{AWS}',
1651 lhablock = 'Wolfenstein',
1652 lhacode = [ 2 ])
1653@@ -60,7 +60,7 @@
1654 rhoWS = Parameter(name = 'rhoWS',
1655 nature = 'external',
1656 type = 'real',
1657- value = 0,
1658+ value = 0.132,
1659 texname = '\\text{rhoWS}',
1660 lhablock = 'Wolfenstein',
1661 lhacode = [ 3 ])
1662@@ -68,15 +68,23 @@
1663 etaWS = Parameter(name = 'etaWS',
1664 nature = 'external',
1665 type = 'real',
1666- value = 0,
1667+ value = 0.341,
1668 texname = '\\text{etaWS}',
1669 lhablock = 'Wolfenstein',
1670 lhacode = [ 4 ])
1671
1672+ymc = Parameter(name = 'ymc',
1673+ nature = 'external',
1674+ type = 'real',
1675+ value = 1.27,
1676+ texname = '\\text{ymc}',
1677+ lhablock = 'YUKAWA',
1678+ lhacode = [ 4 ])
1679+
1680 ymb = Parameter(name = 'ymb',
1681 nature = 'external',
1682 type = 'real',
1683- value = 4.7,
1684+ value = 4.2,
1685 texname = '\\text{ymb}',
1686 lhablock = 'YUKAWA',
1687 lhacode = [ 5 ])
1688@@ -84,11 +92,27 @@
1689 ymt = Parameter(name = 'ymt',
1690 nature = 'external',
1691 type = 'real',
1692- value = 172.,
1693+ value = 164.5,
1694 texname = '\\text{ymt}',
1695 lhablock = 'YUKAWA',
1696 lhacode = [ 6 ])
1697
1698+yme = Parameter(name = 'yme',
1699+ nature = 'external',
1700+ type = 'real',
1701+ value = 0.0005110000000000001,
1702+ texname = '\\text{yme}',
1703+ lhablock = 'YUKAWA',
1704+ lhacode = [ 11 ])
1705+
1706+ymm = Parameter(name = 'ymm',
1707+ nature = 'external',
1708+ type = 'real',
1709+ value = 0.10566,
1710+ texname = '\\text{ymm}',
1711+ lhablock = 'YUKAWA',
1712+ lhacode = [ 13 ])
1713+
1714 ymtau = Parameter(name = 'ymtau',
1715 nature = 'external',
1716 type = 'real',
1717@@ -97,18 +121,18 @@
1718 lhablock = 'YUKAWA',
1719 lhacode = [ 15 ])
1720
1721-MTA = Parameter(name = 'MTA',
1722- nature = 'external',
1723- type = 'real',
1724- value = 1.777,
1725- texname = '\\text{MTA}',
1726- lhablock = 'MASS',
1727- lhacode = [ 15 ])
1728+MC = Parameter(name = 'MC',
1729+ nature = 'external',
1730+ type = 'real',
1731+ value = 1.42,
1732+ texname = '\\text{MC}',
1733+ lhablock = 'MASS',
1734+ lhacode = [ 4 ])
1735
1736 MT = Parameter(name = 'MT',
1737 nature = 'external',
1738 type = 'real',
1739- value = 172,
1740+ value = 172.,
1741 texname = '\\text{MT}',
1742 lhablock = 'MASS',
1743 lhacode = [ 6 ])
1744@@ -132,11 +156,35 @@
1745 MH = Parameter(name = 'MH',
1746 nature = 'external',
1747 type = 'real',
1748- value = 120,
1749+ value = 120.,
1750 texname = '\\text{MH}',
1751 lhablock = 'MASS',
1752 lhacode = [ 25 ])
1753
1754+Me = Parameter(name = 'Me',
1755+ nature = 'external',
1756+ type = 'real',
1757+ value = 0.0005110000000000001,
1758+ texname = '\\text{Me}',
1759+ lhablock = 'MASS',
1760+ lhacode = [ 11 ])
1761+
1762+MM = Parameter(name = 'MM',
1763+ nature = 'external',
1764+ type = 'real',
1765+ value = 0.10566,
1766+ texname = '\\text{MM}',
1767+ lhablock = 'MASS',
1768+ lhacode = [ 13 ])
1769+
1770+MTA = Parameter(name = 'MTA',
1771+ nature = 'external',
1772+ type = 'real',
1773+ value = 1.777,
1774+ texname = '\\text{MTA}',
1775+ lhablock = 'MASS',
1776+ lhacode = [ 15 ])
1777+
1778 MP = Parameter(name = 'MP',
1779 nature = 'external',
1780 type = 'real',
1781@@ -148,7 +196,7 @@
1782 WT = Parameter(name = 'WT',
1783 nature = 'external',
1784 type = 'real',
1785- value = 1.4611,
1786+ value = 1.50833649,
1787 texname = '\\text{WT}',
1788 lhablock = 'DECAY',
1789 lhacode = [ 6 ])
1790@@ -177,6 +225,14 @@
1791 lhablock = 'DECAY',
1792 lhacode = [ 25 ])
1793
1794+WTau = Parameter(name = 'WTau',
1795+ nature = 'external',
1796+ type = 'real',
1797+ value = 2.27e-12,
1798+ texname = '\\text{WTau}',
1799+ lhablock = 'DECAY',
1800+ lhacode = [ 15 ])
1801+
1802 WH1 = Parameter(name = 'WH1',
1803 nature = 'external',
1804 type = 'real',
1805@@ -200,7 +256,7 @@
1806 CKM13 = Parameter(name = 'CKM13',
1807 nature = 'internal',
1808 type = 'complex',
1809- value = 'AWS*lamWS*(-(etaWS*complex(0,1)) + rhoWS)',
1810+ value = 'AWS*lamWS**3*(-(etaWS*complex(0,1)) + rhoWS)',
1811 texname = '\\text{CKM13}')
1812
1813 CKM21 = Parameter(name = 'CKM21',
1814@@ -329,6 +385,24 @@
1815 value = '(ymb*cmath.sqrt(2))/v',
1816 texname = '\\text{yb}')
1817
1818+yc = Parameter(name = 'yc',
1819+ nature = 'internal',
1820+ type = 'real',
1821+ value = '(ymc*cmath.sqrt(2))/v',
1822+ texname = '\\text{yc}')
1823+
1824+ye = Parameter(name = 'ye',
1825+ nature = 'internal',
1826+ type = 'real',
1827+ value = '(yme*cmath.sqrt(2))/v',
1828+ texname = '\\text{ye}')
1829+
1830+ym = Parameter(name = 'ym',
1831+ nature = 'internal',
1832+ type = 'real',
1833+ value = '(ymm*cmath.sqrt(2))/v',
1834+ texname = '\\text{ym}')
1835+
1836 yt = Parameter(name = 'yt',
1837 nature = 'internal',
1838 type = 'real',
1839
1840=== modified file 'models/heft/particles.py'
1841--- models/heft/particles.py 2011-05-28 20:11:29 +0000
1842+++ models/heft/particles.py 2011-07-22 20:26:18 +0000
1843@@ -1,6 +1,6 @@
1844-# This file was automatically created by FeynRules $Revision: 623 $
1845+# This file was automatically created by FeynRules $Revision: 634 $
1846 # Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
1847-# Date: Sat 28 May 2011 18:07:45
1848+# Date: Wed 20 Jul 2011 12:58:03
1849
1850
1851 from __future__ import division
1852@@ -52,51 +52,6 @@
1853
1854 vt__tilde__ = vt.anti()
1855
1856-e__minus__ = Particle(pdg_code = 11,
1857- name = 'e-',
1858- antiname = 'e+',
1859- spin = 2,
1860- color = 1,
1861- mass = Param.ZERO,
1862- width = Param.ZERO,
1863- texname = 'e-',
1864- antitexname = 'e-',
1865- charge = -1,
1866- LeptonNumber = 1,
1867- GhostNumber = 0)
1868-
1869-e__plus__ = e__minus__.anti()
1870-
1871-m__minus__ = Particle(pdg_code = 13,
1872- name = 'm-',
1873- antiname = 'm+',
1874- spin = 2,
1875- color = 1,
1876- mass = Param.ZERO,
1877- width = Param.ZERO,
1878- texname = 'm-',
1879- antitexname = 'm-',
1880- charge = -1,
1881- LeptonNumber = 1,
1882- GhostNumber = 0)
1883-
1884-m__plus__ = m__minus__.anti()
1885-
1886-tt__minus__ = Particle(pdg_code = 15,
1887- name = 'tt-',
1888- antiname = 'tt+',
1889- spin = 2,
1890- color = 1,
1891- mass = Param.MTA,
1892- width = Param.ZERO,
1893- texname = 'tt-',
1894- antitexname = 'tt-',
1895- charge = -1,
1896- LeptonNumber = 1,
1897- GhostNumber = 0)
1898-
1899-tt__plus__ = tt__minus__.anti()
1900-
1901 u = Particle(pdg_code = 2,
1902 name = 'u',
1903 antiname = 'u~',
1904@@ -117,7 +72,7 @@
1905 antiname = 'c~',
1906 spin = 2,
1907 color = 3,
1908- mass = Param.ZERO,
1909+ mass = Param.MC,
1910 width = Param.ZERO,
1911 texname = 'c',
1912 antitexname = 'c',
1913@@ -254,6 +209,51 @@
1914 LeptonNumber = 0,
1915 GhostNumber = 0)
1916
1917+e__minus__ = Particle(pdg_code = 11,
1918+ name = 'e-',
1919+ antiname = 'e+',
1920+ spin = 2,
1921+ color = 1,
1922+ mass = Param.Me,
1923+ width = Param.ZERO,
1924+ texname = 'e-',
1925+ antitexname = 'e-',
1926+ charge = -1,
1927+ LeptonNumber = 1,
1928+ GhostNumber = 0)
1929+
1930+e__plus__ = e__minus__.anti()
1931+
1932+m__minus__ = Particle(pdg_code = 13,
1933+ name = 'm-',
1934+ antiname = 'm+',
1935+ spin = 2,
1936+ color = 1,
1937+ mass = Param.MM,
1938+ width = Param.ZERO,
1939+ texname = 'm-',
1940+ antitexname = 'm-',
1941+ charge = -1,
1942+ LeptonNumber = 1,
1943+ GhostNumber = 0)
1944+
1945+m__plus__ = m__minus__.anti()
1946+
1947+tt__minus__ = Particle(pdg_code = 15,
1948+ name = 'tt-',
1949+ antiname = 'tt+',
1950+ spin = 2,
1951+ color = 1,
1952+ mass = Param.MTA,
1953+ width = Param.WTau,
1954+ texname = 'tt-',
1955+ antitexname = 'tt-',
1956+ charge = -1,
1957+ LeptonNumber = 1,
1958+ GhostNumber = 0)
1959+
1960+tt__plus__ = tt__minus__.anti()
1961+
1962 h1 = Particle(pdg_code = 9000006,
1963 name = 'h1',
1964 antiname = 'h1',
1965
1966=== added file 'models/heft/restrict_ckm.dat'
1967--- models/heft/restrict_ckm.dat 1970-01-01 00:00:00 +0000
1968+++ models/heft/restrict_ckm.dat 2011-07-22 20:26:18 +0000
1969@@ -0,0 +1,53 @@
1970+######################################################################
1971+## PARAM_CARD AUTOMATICALY GENERATED BY THE UFO #####################
1972+######################################################################
1973+
1974+###################################
1975+## INFORMATION FOR SMINPUTS
1976+###################################
1977+Block SMINPUTS
1978+ 1 1.325070e+02 # aEWM1
1979+ 2 1.166390e-05 # Gf
1980+ 3 1.180000e-01 # aS
1981+
1982+###################################
1983+## INFORMATION FOR MASS
1984+###################################
1985+Block MASS
1986+ 4 0.000000e+00 # MC
1987+ 5 4.700000e+00 # MB
1988+ 6 1.730000e+02 # MT
1989+ 11 0.000000e+00 # Me
1990+ 13 0.000000e+00 # MM
1991+ 15 1.777000e+00 # MTA
1992+ 23 9.118800e+01 # MZ
1993+ 25 1.200000e+02 # MH
1994+
1995+###################################
1996+## INFORMATION FOR DECAY
1997+###################################
1998+DECAY 6 1.491500E+00
1999+DECAY 15 0.000000e+00
2000+DECAY 23 2.441404e+00
2001+DECAY 24 2.047600e+00
2002+DECAY 25 5.753088e-03
2003+
2004+###################################
2005+## INFORMATION FOR WOLFENSTEIN
2006+###################################
2007+Block Wolfenstein
2008+ 1 2.253000e-01 # lamWS
2009+ 2 8.080000e-01 # AWS
2010+ 3 1.320000e-01 # rhoWS
2011+ 4 3.410000e-01 # etaWS
2012+
2013+###################################
2014+## INFORMATION FOR YUKAWA
2015+###################################
2016+Block YUKAWA
2017+ 4 0.000000e+00 # ymc
2018+ 5 4.200000e+00 # ymb
2019+ 6 1.645000e+02 # ymt
2020+ 11 0.000000e+00 # yme
2021+ 13 0.000000e+00 # ymm
2022+ 15 1.777000e+00 # ymtau
2023
2024=== modified file 'models/heft/restrict_default.dat'
2025--- models/heft/restrict_default.dat 2011-06-02 00:11:53 +0000
2026+++ models/heft/restrict_default.dat 2011-07-22 20:26:18 +0000
2027@@ -14,21 +14,23 @@
2028 ## INFORMATION FOR MASS
2029 ###################################
2030 Block MASS
2031+ 4 0.000000e+00 # MC
2032 5 4.700000e+00 # MB
2033- 6 1.720000e+02 # MT
2034+ 6 1.730000e+02 # MT
2035+ 11 0.000000e+00 # Me
2036+ 13 0.000000e+00 # MM
2037 15 1.777000e+00 # MTA
2038 23 9.118800e+01 # MZ
2039 25 1.200000e+02 # MH
2040- 9000006 1.200000e+02 # MP
2041
2042 ###################################
2043 ## INFORMATION FOR DECAY
2044 ###################################
2045-DECAY 6 1.439478E+00
2046+DECAY 6 1.491500E+00
2047+DECAY 15 0.000000e+00
2048 DECAY 23 2.441404e+00
2049 DECAY 24 2.047600e+00
2050 DECAY 25 5.753088e-03
2051-DECAY 9000006 5.753088e-03
2052
2053 ###################################
2054 ## INFORMATION FOR WOLFENSTEIN
2055@@ -43,15 +45,9 @@
2056 ## INFORMATION FOR YUKAWA
2057 ###################################
2058 Block YUKAWA
2059+ 4 0.000000e+00 # ymc
2060 5 4.200000e+00 # ymb
2061 6 1.645000e+02 # ymt
2062+ 11 0.000000e+00 # yme
2063+ 13 0.000000e+00 # ymm
2064 15 1.777000e+00 # ymtau
2065-#===========================================================
2066-# QUANTUM NUMBERS OF NEW STATE(S) (NON SM PDG CODE)
2067-#===========================================================
2068-
2069-Block QNUMBERS 9000006 # h1
2070- 1 0 # 3 times electric charge
2071- 2 3 # number of spin states (2S+1)
2072- 3 1 # colour rep (1: singlet, 3: triplet, 8: octet)
2073- 4 0 # Particle/Antiparticle distinction (0=own anti)
2074
2075=== added file 'models/heft/restrict_no_b_mass.dat'
2076--- models/heft/restrict_no_b_mass.dat 1970-01-01 00:00:00 +0000
2077+++ models/heft/restrict_no_b_mass.dat 2011-07-22 20:26:18 +0000
2078@@ -0,0 +1,53 @@
2079+######################################################################
2080+## PARAM_CARD AUTOMATICALY GENERATED BY THE UFO #####################
2081+######################################################################
2082+
2083+###################################
2084+## INFORMATION FOR SMINPUTS
2085+###################################
2086+Block SMINPUTS
2087+ 1 1.325070e+02 # aEWM1
2088+ 2 1.166390e-05 # Gf
2089+ 3 1.180000e-01 # aS
2090+
2091+###################################
2092+## INFORMATION FOR MASS
2093+###################################
2094+Block MASS
2095+ 4 0.000000e+00 # MC
2096+ 5 0.000000e+00 # MB
2097+ 6 1.730000e+02 # MT
2098+ 11 0.000000e+00 # Me
2099+ 13 0.000000e+00 # MM
2100+ 15 1.777000e+00 # MTA
2101+ 23 9.118800e+01 # MZ
2102+ 25 1.200000e+02 # MH
2103+
2104+###################################
2105+## INFORMATION FOR DECAY
2106+###################################
2107+DECAY 6 1.491500E+00
2108+DECAY 15 0.000000e+00
2109+DECAY 23 2.441404e+00
2110+DECAY 24 2.047600e+00
2111+DECAY 25 5.753088e-03
2112+
2113+###################################
2114+## INFORMATION FOR WOLFENSTEIN
2115+###################################
2116+Block Wolfenstein
2117+ 1 0.000000e+00 # lamWS
2118+ 2 0.000000e+00 # AWS
2119+ 3 0.000000e+00 # rhoWS
2120+ 4 0.000000e+00 # etaWS
2121+
2122+###################################
2123+## INFORMATION FOR YUKAWA
2124+###################################
2125+Block YUKAWA
2126+ 4 0.000000e+00 # ymc
2127+ 5 0.000000e+00 # ymb
2128+ 6 1.645000e+02 # ymt
2129+ 11 0.000000e+00 # yme
2130+ 13 0.000000e+00 # ymm
2131+ 15 1.777000e+00 # ymtau
2132
2133=== added file 'models/heft/restrict_no_masses.dat'
2134--- models/heft/restrict_no_masses.dat 1970-01-01 00:00:00 +0000
2135+++ models/heft/restrict_no_masses.dat 2011-07-22 20:26:18 +0000
2136@@ -0,0 +1,53 @@
2137+######################################################################
2138+## PARAM_CARD AUTOMATICALY GENERATED BY THE UFO #####################
2139+######################################################################
2140+
2141+###################################
2142+## INFORMATION FOR SMINPUTS
2143+###################################
2144+Block SMINPUTS
2145+ 1 1.325070e+02 # aEWM1
2146+ 2 1.166390e-05 # Gf
2147+ 3 1.180000e-01 # aS
2148+
2149+###################################
2150+## INFORMATION FOR MASS
2151+###################################
2152+Block MASS
2153+ 4 0.000000e+00 # MC
2154+ 5 0.000000e+00 # MB
2155+ 6 1.730000e+02 # MT
2156+ 11 0.000000e+00 # Me
2157+ 13 0.000000e+00 # MM
2158+ 15 0.000000e+00 # MTA
2159+ 23 9.118800e+01 # MZ
2160+ 25 1.200000e+02 # MH
2161+
2162+###################################
2163+## INFORMATION FOR DECAY
2164+###################################
2165+DECAY 6 1.491500E+00
2166+DECAY 15 0.000000e+00
2167+DECAY 23 2.441404e+00
2168+DECAY 24 2.047600e+00
2169+DECAY 25 5.753088e-03
2170+
2171+###################################
2172+## INFORMATION FOR WOLFENSTEIN
2173+###################################
2174+Block Wolfenstein
2175+ 1 0.000000e+00 # lamWS
2176+ 2 0.000000e+00 # AWS
2177+ 3 0.000000e+00 # rhoWS
2178+ 4 0.000000e+00 # etaWS
2179+
2180+###################################
2181+## INFORMATION FOR YUKAWA
2182+###################################
2183+Block YUKAWA
2184+ 4 0.000000e+00 # ymc
2185+ 5 0.000000e+00 # ymb
2186+ 6 1.645000e+02 # ymt
2187+ 11 0.000000e+00 # yme
2188+ 13 0.000000e+00 # ymm
2189+ 15 0.000000e+00 # ymtau
2190
2191=== added file 'models/heft/restrict_no_tau_mass.dat'
2192--- models/heft/restrict_no_tau_mass.dat 1970-01-01 00:00:00 +0000
2193+++ models/heft/restrict_no_tau_mass.dat 2011-07-22 20:26:18 +0000
2194@@ -0,0 +1,53 @@
2195+######################################################################
2196+## PARAM_CARD AUTOMATICALY GENERATED BY THE UFO #####################
2197+######################################################################
2198+
2199+###################################
2200+## INFORMATION FOR SMINPUTS
2201+###################################
2202+Block SMINPUTS
2203+ 1 1.325070e+02 # aEWM1
2204+ 2 1.166390e-05 # Gf
2205+ 3 1.180000e-01 # aS
2206+
2207+###################################
2208+## INFORMATION FOR MASS
2209+###################################
2210+Block MASS
2211+ 4 0.000000e+00 # MC
2212+ 5 4.700000e+00 # MB
2213+ 6 1.730000e+02 # MT
2214+ 11 0.000000e+00 # Me
2215+ 13 0.000000e+00 # MM
2216+ 15 0.000000e+00 # MTA
2217+ 23 9.118800e+01 # MZ
2218+ 25 1.200000e+02 # MH
2219+
2220+###################################
2221+## INFORMATION FOR DECAY
2222+###################################
2223+DECAY 6 1.491500E+00
2224+DECAY 15 0.000000e+00
2225+DECAY 23 2.441404e+00
2226+DECAY 24 2.047600e+00
2227+DECAY 25 5.753088e-03
2228+
2229+###################################
2230+## INFORMATION FOR WOLFENSTEIN
2231+###################################
2232+Block Wolfenstein
2233+ 1 0.000000e+00 # lamWS
2234+ 2 0.000000e+00 # AWS
2235+ 3 0.000000e+00 # rhoWS
2236+ 4 0.000000e+00 # etaWS
2237+
2238+###################################
2239+## INFORMATION FOR YUKAWA
2240+###################################
2241+Block YUKAWA
2242+ 4 0.000000e+00 # ymc
2243+ 5 4.200000e+00 # ymb
2244+ 6 1.645000e+02 # ymt
2245+ 11 0.000000e+00 # yme
2246+ 13 0.000000e+00 # ymm
2247+ 15 0.000000e+00 # ymtau
2248
2249=== added file 'models/heft/restrict_zeromass_ckm.dat'
2250--- models/heft/restrict_zeromass_ckm.dat 1970-01-01 00:00:00 +0000
2251+++ models/heft/restrict_zeromass_ckm.dat 2011-07-22 20:26:18 +0000
2252@@ -0,0 +1,53 @@
2253+######################################################################
2254+## PARAM_CARD AUTOMATICALY GENERATED BY THE UFO #####################
2255+######################################################################
2256+
2257+###################################
2258+## INFORMATION FOR SMINPUTS
2259+###################################
2260+Block SMINPUTS
2261+ 1 1.325070e+02 # aEWM1
2262+ 2 1.166390e-05 # Gf
2263+ 3 1.180000e-01 # aS
2264+
2265+###################################
2266+## INFORMATION FOR MASS
2267+###################################
2268+Block MASS
2269+ 4 0.000000e+00 # MC
2270+ 5 0.000000e+00 # MB
2271+ 6 1.730000e+02 # MT
2272+ 11 0.000000e+00 # Me
2273+ 13 0.000000e+00 # MM
2274+ 15 0.000000e+00 # MTA
2275+ 23 9.118800e+01 # MZ
2276+ 25 1.200000e+02 # MH
2277+
2278+###################################
2279+## INFORMATION FOR DECAY
2280+###################################
2281+DECAY 6 1.491500E+00
2282+DECAY 15 0.000000e+00
2283+DECAY 23 2.441404e+00
2284+DECAY 24 2.047600e+00
2285+DECAY 25 5.753088e-03
2286+
2287+###################################
2288+## INFORMATION FOR WOLFENSTEIN
2289+###################################
2290+Block Wolfenstein
2291+ 1 2.253000e-01 # lamWS
2292+ 2 8.080000e-01 # AWS
2293+ 3 1.320000e-01 # rhoWS
2294+ 4 3.410000e-01 # etaWS
2295+
2296+###################################
2297+## INFORMATION FOR YUKAWA
2298+###################################
2299+Block YUKAWA
2300+ 4 0.000000e+00 # ymc
2301+ 5 0.000000e+00 # ymb
2302+ 6 1.645000e+02 # ymt
2303+ 11 0.000000e+00 # yme
2304+ 13 0.000000e+00 # ymm
2305+ 15 0.000000e+00 # ymtau
2306
2307=== modified file 'models/heft/vertices.py'
2308--- models/heft/vertices.py 2011-05-28 20:11:29 +0000
2309+++ models/heft/vertices.py 2011-07-22 20:26:18 +0000
2310@@ -1,6 +1,6 @@
2311-# This file was automatically created by FeynRules $Revision: 623 $
2312+# This file was automatically created by FeynRules $Revision: 634 $
2313 # Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
2314-# Date: Sat 28 May 2011 18:07:45
2315+# Date: Wed 20 Jul 2011 12:58:03
2316
2317
2318 from object_library import all_vertices, Vertex
2319@@ -46,23 +46,23 @@
2320 couplings = {(1,1):C.GC_7,(0,0):C.GC_7,(2,2):C.GC_7})
2321
2322 V_7 = Vertex(name = 'V_7',
2323+ particles = [ P.G, P.G, P.G, P.h1 ],
2324+ color = [ 'f(1,2,3)' ],
2325+ lorentz = [ L.VVVS1 ],
2326+ couplings = {(0,0):C.GC_12})
2327+
2328+V_8 = Vertex(name = 'V_8',
2329 particles = [ P.G, P.G, P.G, P.H ],
2330 color = [ 'f(1,2,3)' ],
2331 lorentz = [ L.VVVS2 ],
2332 couplings = {(0,0):C.GC_9})
2333
2334-V_8 = Vertex(name = 'V_8',
2335+V_9 = Vertex(name = 'V_9',
2336 particles = [ P.G, P.G, P.G, P.G, P.H ],
2337 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)' ],
2338 lorentz = [ L.VVVVS1, L.VVVVS2, L.VVVVS3 ],
2339 couplings = {(1,1):C.GC_10,(0,0):C.GC_10,(2,2):C.GC_10})
2340
2341-V_9 = Vertex(name = 'V_9',
2342- particles = [ P.G, P.G, P.G, P.h1 ],
2343- color = [ 'f(1,2,3)' ],
2344- lorentz = [ L.VVVS1 ],
2345- couplings = {(0,0):C.GC_12})
2346-
2347 V_10 = Vertex(name = 'V_10',
2348 particles = [ P.A, P.W__minus__, P.W__plus__ ],
2349 color = [ '1' ],
2350@@ -277,55 +277,55 @@
2351 particles = [ P.u__tilde__, P.d, P.W__plus__ ],
2352 color = [ 'Identity(1,2)' ],
2353 lorentz = [ L.FFV2 ],
2354- couplings = {(0,0):C.GC_42})
2355+ couplings = {(0,0):C.GC_45})
2356
2357 V_46 = Vertex(name = 'V_46',
2358 particles = [ P.c__tilde__, P.d, P.W__plus__ ],
2359 color = [ 'Identity(1,2)' ],
2360 lorentz = [ L.FFV2 ],
2361- couplings = {(0,0):C.GC_45})
2362+ couplings = {(0,0):C.GC_48})
2363
2364 V_47 = Vertex(name = 'V_47',
2365 particles = [ P.t__tilde__, P.d, P.W__plus__ ],
2366 color = [ 'Identity(1,2)' ],
2367 lorentz = [ L.FFV2 ],
2368- couplings = {(0,0):C.GC_48})
2369+ couplings = {(0,0):C.GC_51})
2370
2371 V_48 = Vertex(name = 'V_48',
2372 particles = [ P.u__tilde__, P.s, P.W__plus__ ],
2373 color = [ 'Identity(1,2)' ],
2374 lorentz = [ L.FFV2 ],
2375- couplings = {(0,0):C.GC_43})
2376+ couplings = {(0,0):C.GC_46})
2377
2378 V_49 = Vertex(name = 'V_49',
2379 particles = [ P.c__tilde__, P.s, P.W__plus__ ],
2380 color = [ 'Identity(1,2)' ],
2381 lorentz = [ L.FFV2 ],
2382- couplings = {(0,0):C.GC_46})
2383+ couplings = {(0,0):C.GC_49})
2384
2385 V_50 = Vertex(name = 'V_50',
2386 particles = [ P.t__tilde__, P.s, P.W__plus__ ],
2387 color = [ 'Identity(1,2)' ],
2388 lorentz = [ L.FFV2 ],
2389- couplings = {(0,0):C.GC_49})
2390+ couplings = {(0,0):C.GC_52})
2391
2392 V_51 = Vertex(name = 'V_51',
2393 particles = [ P.u__tilde__, P.b, P.W__plus__ ],
2394 color = [ 'Identity(1,2)' ],
2395 lorentz = [ L.FFV2 ],
2396- couplings = {(0,0):C.GC_44})
2397+ couplings = {(0,0):C.GC_47})
2398
2399 V_52 = Vertex(name = 'V_52',
2400 particles = [ P.c__tilde__, P.b, P.W__plus__ ],
2401 color = [ 'Identity(1,2)' ],
2402 lorentz = [ L.FFV2 ],
2403- couplings = {(0,0):C.GC_47})
2404+ couplings = {(0,0):C.GC_50})
2405
2406 V_53 = Vertex(name = 'V_53',
2407 particles = [ P.t__tilde__, P.b, P.W__plus__ ],
2408 color = [ 'Identity(1,2)' ],
2409 lorentz = [ L.FFV2 ],
2410- couplings = {(0,0):C.GC_50})
2411+ couplings = {(0,0):C.GC_53})
2412
2413 V_54 = Vertex(name = 'V_54',
2414 particles = [ P.u__tilde__, P.u, P.G ],
2415@@ -346,102 +346,120 @@
2416 couplings = {(0,0):C.GC_6})
2417
2418 V_57 = Vertex(name = 'V_57',
2419- particles = [ P.tt__plus__, P.tt__minus__, P.H ],
2420+ particles = [ P.e__plus__, P.e__minus__, P.H ],
2421 color = [ '1' ],
2422 lorentz = [ L.FFS1 ],
2423 couplings = {(0,0):C.GC_41})
2424
2425 V_58 = Vertex(name = 'V_58',
2426+ particles = [ P.m__plus__, P.m__minus__, P.H ],
2427+ color = [ '1' ],
2428+ lorentz = [ L.FFS1 ],
2429+ couplings = {(0,0):C.GC_42})
2430+
2431+V_59 = Vertex(name = 'V_59',
2432+ particles = [ P.tt__plus__, P.tt__minus__, P.H ],
2433+ color = [ '1' ],
2434+ lorentz = [ L.FFS1 ],
2435+ couplings = {(0,0):C.GC_44})
2436+
2437+V_60 = Vertex(name = 'V_60',
2438+ particles = [ P.c__tilde__, P.c, P.H ],
2439+ color = [ 'Identity(1,2)' ],
2440+ lorentz = [ L.FFS1 ],
2441+ couplings = {(0,0):C.GC_40})
2442+
2443+V_61 = Vertex(name = 'V_61',
2444 particles = [ P.t__tilde__, P.t, P.H ],
2445 color = [ 'Identity(1,2)' ],
2446 lorentz = [ L.FFS1 ],
2447- couplings = {(0,0):C.GC_40})
2448+ couplings = {(0,0):C.GC_43})
2449
2450-V_59 = Vertex(name = 'V_59',
2451+V_62 = Vertex(name = 'V_62',
2452 particles = [ P.e__plus__, P.e__minus__, P.Z ],
2453 color = [ '1' ],
2454 lorentz = [ L.FFV2, L.FFV4 ],
2455 couplings = {(0,0):C.GC_27,(0,1):C.GC_30})
2456
2457-V_60 = Vertex(name = 'V_60',
2458+V_63 = Vertex(name = 'V_63',
2459 particles = [ P.m__plus__, P.m__minus__, P.Z ],
2460 color = [ '1' ],
2461 lorentz = [ L.FFV2, L.FFV4 ],
2462 couplings = {(0,0):C.GC_27,(0,1):C.GC_30})
2463
2464-V_61 = Vertex(name = 'V_61',
2465+V_64 = Vertex(name = 'V_64',
2466 particles = [ P.tt__plus__, P.tt__minus__, P.Z ],
2467 color = [ '1' ],
2468 lorentz = [ L.FFV2, L.FFV4 ],
2469 couplings = {(0,0):C.GC_27,(0,1):C.GC_30})
2470
2471-V_62 = Vertex(name = 'V_62',
2472+V_65 = Vertex(name = 'V_65',
2473 particles = [ P.e__plus__, P.ve, P.W__minus__ ],
2474 color = [ '1' ],
2475 lorentz = [ L.FFV2 ],
2476 couplings = {(0,0):C.GC_17})
2477
2478-V_63 = Vertex(name = 'V_63',
2479+V_66 = Vertex(name = 'V_66',
2480 particles = [ P.m__plus__, P.vm, P.W__minus__ ],
2481 color = [ '1' ],
2482 lorentz = [ L.FFV2 ],
2483 couplings = {(0,0):C.GC_17})
2484
2485-V_64 = Vertex(name = 'V_64',
2486+V_67 = Vertex(name = 'V_67',
2487 particles = [ P.tt__plus__, P.vt, P.W__minus__ ],
2488 color = [ '1' ],
2489 lorentz = [ L.FFV2 ],
2490 couplings = {(0,0):C.GC_17})
2491
2492-V_65 = Vertex(name = 'V_65',
2493+V_68 = Vertex(name = 'V_68',
2494 particles = [ P.ve__tilde__, P.e__minus__, P.W__plus__ ],
2495 color = [ '1' ],
2496 lorentz = [ L.FFV2 ],
2497 couplings = {(0,0):C.GC_17})
2498
2499-V_66 = Vertex(name = 'V_66',
2500+V_69 = Vertex(name = 'V_69',
2501 particles = [ P.vm__tilde__, P.m__minus__, P.W__plus__ ],
2502 color = [ '1' ],
2503 lorentz = [ L.FFV2 ],
2504 couplings = {(0,0):C.GC_17})
2505
2506-V_67 = Vertex(name = 'V_67',
2507+V_70 = Vertex(name = 'V_70',
2508 particles = [ P.vt__tilde__, P.tt__minus__, P.W__plus__ ],
2509 color = [ '1' ],
2510 lorentz = [ L.FFV2 ],
2511 couplings = {(0,0):C.GC_17})
2512
2513-V_68 = Vertex(name = 'V_68',
2514+V_71 = Vertex(name = 'V_71',
2515 particles = [ P.u__tilde__, P.u, P.Z ],
2516 color = [ 'Identity(1,2)' ],
2517 lorentz = [ L.FFV2, L.FFV5 ],
2518 couplings = {(0,0):C.GC_28,(0,1):C.GC_29})
2519
2520-V_69 = Vertex(name = 'V_69',
2521+V_72 = Vertex(name = 'V_72',
2522 particles = [ P.c__tilde__, P.c, P.Z ],
2523 color = [ 'Identity(1,2)' ],
2524 lorentz = [ L.FFV2, L.FFV5 ],
2525 couplings = {(0,0):C.GC_28,(0,1):C.GC_29})
2526
2527-V_70 = Vertex(name = 'V_70',
2528+V_73 = Vertex(name = 'V_73',
2529 particles = [ P.t__tilde__, P.t, P.Z ],
2530 color = [ 'Identity(1,2)' ],
2531 lorentz = [ L.FFV2, L.FFV5 ],
2532 couplings = {(0,0):C.GC_28,(0,1):C.GC_29})
2533
2534-V_71 = Vertex(name = 'V_71',
2535+V_74 = Vertex(name = 'V_74',
2536 particles = [ P.ve__tilde__, P.ve, P.Z ],
2537 color = [ '1' ],
2538 lorentz = [ L.FFV2 ],
2539 couplings = {(0,0):C.GC_34})
2540
2541-V_72 = Vertex(name = 'V_72',
2542+V_75 = Vertex(name = 'V_75',
2543 particles = [ P.vm__tilde__, P.vm, P.Z ],
2544 color = [ '1' ],
2545 lorentz = [ L.FFV2 ],
2546 couplings = {(0,0):C.GC_34})
2547
2548-V_73 = Vertex(name = 'V_73',
2549+V_76 = Vertex(name = 'V_76',
2550 particles = [ P.vt__tilde__, P.vt, P.Z ],
2551 color = [ '1' ],
2552 lorentz = [ L.FFV2 ],
2553
2554=== modified file 'models/import_ufo.py'
2555--- models/import_ufo.py 2011-05-08 07:27:55 +0000
2556+++ models/import_ufo.py 2011-07-22 20:26:18 +0000
2557@@ -202,6 +202,33 @@
2558 self.add_interaction(interaction_info)
2559
2560 self.model.set('conserved_charge', self.conservecharge)
2561+
2562+ # If we deal with a Loop model here, the order hierarchy MUST be
2563+ # defined in the file coupling_orders.py and we import it from
2564+ # there.
2565+
2566+ hierarchy={}
2567+ try:
2568+ all_orders = self.ufomodel.all_orders
2569+ for order in all_orders:
2570+ hierarchy[order.name]=order.hierarchy
2571+ except AttributeError:
2572+ pass
2573+ else:
2574+ self.model.set('order_hierarchy', hierarchy)
2575+
2576+ # Also set expansion_order, i.e., maximum coupling order per process
2577+
2578+ expansion_order={}
2579+ try:
2580+ all_orders = self.ufomodel.all_orders
2581+ for order in all_orders:
2582+ expansion_order[order.name]=order.expansion_order
2583+ except AttributeError:
2584+ pass
2585+ else:
2586+ self.model.set('expansion_order', expansion_order)
2587+
2588 return self.model
2589
2590
2591
2592=== modified file 'models/mssm/__init__.py'
2593--- models/mssm/__init__.py 2011-03-09 11:08:59 +0000
2594+++ models/mssm/__init__.py 2011-07-22 20:26:18 +0000
2595@@ -4,6 +4,7 @@
2596 import lorentz
2597 import parameters
2598 import vertices
2599+import coupling_orders
2600 import write_param_card
2601
2602
2603@@ -12,9 +13,10 @@
2604 all_couplings = couplings.all_couplings
2605 all_lorentz = lorentz.all_lorentz
2606 all_parameters = parameters.all_parameters
2607+all_orders = coupling_orders.all_orders
2608 all_functions = function_library.all_functions
2609
2610
2611-__author__ = "Benjamin Fuks"
2612-__version__ = "1.3.0"
2613-__email__ = "fuks@cern.ch"
2614+__author__ = "N. Christensen, C. Duhr"
2615+__version__ = "1.3"
2616+__email__ = "neil@pa.msu.edu, claude.duhr@uclouvain.be"
2617
2618=== added file 'models/mssm/coupling_orders.py'
2619--- models/mssm/coupling_orders.py 1970-01-01 00:00:00 +0000
2620+++ models/mssm/coupling_orders.py 2011-07-22 20:26:18 +0000
2621@@ -0,0 +1,15 @@
2622+# This file was automatically created by FeynRules $Revision: 634 $
2623+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
2624+# Date: Tue 19 Jul 2011 18:23:49
2625+
2626+
2627+from object_library import all_orders, CouplingOrder
2628+
2629+
2630+QCD = CouplingOrder(name = 'QCD',
2631+ expansion_order = -1,
2632+ hierarchy = 1)
2633+
2634+QED = CouplingOrder(name = 'QED',
2635+ expansion_order = -1,
2636+ hierarchy = 2)
2637
2638=== modified file 'models/mssm/object_library.py'
2639--- models/mssm/object_library.py 2011-03-09 13:58:28 +0000
2640+++ models/mssm/object_library.py 2011-07-22 20:26:18 +0000
2641@@ -228,5 +228,18 @@
2642
2643 return eval(self.expr)
2644
2645+all_orders = []
2646+
2647+class CouplingOrder(object):
2648+
2649+ def __init__(self, name, expansion_order, hierarchy, perturbative_expansion = 0):
2650+
2651+ global all_orders
2652+ all_orders.append(self)
2653+
2654+ self.name = name
2655+ self.expansion_order = expansion_order
2656+ self.hierarchy = hierarchy
2657+
2658
2659
2660
2661=== modified file 'models/nmssm/__init__.py'
2662--- models/nmssm/__init__.py 2011-04-12 16:11:45 +0000
2663+++ models/nmssm/__init__.py 2011-07-22 20:26:18 +0000
2664@@ -4,6 +4,7 @@
2665 import lorentz
2666 import parameters
2667 import vertices
2668+import coupling_orders
2669 import write_param_card
2670
2671
2672@@ -12,9 +13,10 @@
2673 all_couplings = couplings.all_couplings
2674 all_lorentz = lorentz.all_lorentz
2675 all_parameters = parameters.all_parameters
2676+all_orders = coupling_orders.all_orders
2677 all_functions = function_library.all_functions
2678
2679
2680-__author__ = "Benjamin Fuks"
2681-__version__ = "1.0.0"
2682-__email__ = "fuks@cern.ch"
2683+__author__ = "N. Christensen, C. Duhr"
2684+__version__ = "1.3"
2685+__email__ = "neil@pa.msu.edu, claude.duhr@uclouvain.be"
2686
2687=== added file 'models/nmssm/coupling_orders.py'
2688--- models/nmssm/coupling_orders.py 1970-01-01 00:00:00 +0000
2689+++ models/nmssm/coupling_orders.py 2011-07-22 20:26:18 +0000
2690@@ -0,0 +1,15 @@
2691+# This file was automatically created by FeynRules $Revision: 634 $
2692+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
2693+# Date: Tue 19 Jul 2011 18:23:49
2694+
2695+
2696+from object_library import all_orders, CouplingOrder
2697+
2698+
2699+QCD = CouplingOrder(name = 'QCD',
2700+ expansion_order = -1,
2701+ hierarchy = 1)
2702+
2703+QED = CouplingOrder(name = 'QED',
2704+ expansion_order = -1,
2705+ hierarchy = 2)
2706
2707=== modified file 'models/nmssm/object_library.py'
2708--- models/nmssm/object_library.py 2011-04-12 16:11:45 +0000
2709+++ models/nmssm/object_library.py 2011-07-22 20:26:18 +0000
2710@@ -228,5 +228,18 @@
2711
2712 return eval(self.expr)
2713
2714+all_orders = []
2715+
2716+class CouplingOrder(object):
2717+
2718+ def __init__(self, name, expansion_order, hierarchy, perturbative_expansion = 0):
2719+
2720+ global all_orders
2721+ all_orders.append(self)
2722+
2723+ self.name = name
2724+ self.expansion_order = expansion_order
2725+ self.hierarchy = hierarchy
2726+
2727
2728
2729
2730=== modified file 'models/sextet_diquarks/__init__.py'
2731--- models/sextet_diquarks/__init__.py 2010-10-02 11:13:28 +0000
2732+++ models/sextet_diquarks/__init__.py 2011-07-22 20:26:18 +0000
2733@@ -4,6 +4,7 @@
2734 import lorentz
2735 import parameters
2736 import vertices
2737+import coupling_orders
2738 import write_param_card
2739
2740
2741@@ -12,4 +13,10 @@
2742 all_couplings = couplings.all_couplings
2743 all_lorentz = lorentz.all_lorentz
2744 all_parameters = parameters.all_parameters
2745+all_orders = coupling_orders.all_orders
2746 all_functions = function_library.all_functions
2747+
2748+
2749+__author__ = "N. Christensen, C. Duhr"
2750+__version__ = "1.3"
2751+__email__ = "neil@pa.msu.edu, claude.duhr@uclouvain.be"
2752
2753=== added file 'models/sextet_diquarks/coupling_orders.py'
2754--- models/sextet_diquarks/coupling_orders.py 1970-01-01 00:00:00 +0000
2755+++ models/sextet_diquarks/coupling_orders.py 2011-07-22 20:26:18 +0000
2756@@ -0,0 +1,15 @@
2757+# This file was automatically created by FeynRules $Revision: 634 $
2758+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
2759+# Date: Tue 19 Jul 2011 18:23:49
2760+
2761+
2762+from object_library import all_orders, CouplingOrder
2763+
2764+
2765+QCD = CouplingOrder(name = 'QCD',
2766+ expansion_order = -1,
2767+ hierarchy = 1)
2768+
2769+QED = CouplingOrder(name = 'QED',
2770+ expansion_order = -1,
2771+ hierarchy = 2)
2772
2773=== modified file 'models/sextet_diquarks/object_library.py'
2774--- models/sextet_diquarks/object_library.py 2010-10-20 18:43:22 +0000
2775+++ models/sextet_diquarks/object_library.py 2011-07-22 20:26:18 +0000
2776@@ -10,7 +10,7 @@
2777 import cmath
2778
2779
2780-class FRBaseClass(object):
2781+class UFOBaseClass(object):
2782 """The class from which all FeynRules classes are derived."""
2783
2784 require_args = []
2785@@ -62,20 +62,20 @@
2786
2787
2788
2789-class Particle(FRBaseClass):
2790+class Particle(UFOBaseClass):
2791 """A standard Particle"""
2792
2793- require_args=['pdg_code', 'name', 'antiname', 'spin', 'color', 'mass', 'width', 'texname', 'antitexname', 'line', 'charge']
2794+ require_args=['pdg_code', 'name', 'antiname', 'spin', 'color', 'mass', 'width', 'texname', 'antitexname', 'charge']
2795
2796- require_args_all = ['pdg_code', 'name', 'antiname', 'spin', 'color', 'mass', 'width', 'texname', 'antitexname', 'line', 'charge', 'propagating', 'goldstoneboson']
2797+ require_args_all = ['pdg_code', 'name', 'antiname', 'spin', 'color', 'mass', 'width', 'texname', 'antitexname', 'charge', 'line', 'propagating', 'goldstoneboson']
2798
2799 def __init__(self, pdg_code, name, antiname, spin, color, mass, width, texname,
2800- antitexname, line, charge , propagating=True, goldstoneboson=False, **options):
2801+ antitexname, charge , line=None, propagating=True, goldstoneboson=False, **options):
2802
2803 args= (pdg_code, name, antiname, spin, color, mass, width, texname,
2804- antitexname, line, float(charge))
2805+ antitexname, float(charge))
2806
2807- FRBaseClass.__init__(self, *args, **options)
2808+ UFOBaseClass.__init__(self, *args, **options)
2809
2810 global all_particles
2811 all_particles.append(self)
2812@@ -84,6 +84,44 @@
2813 self.goldstoneboson= goldstoneboson
2814
2815 self.selfconjugate = (name == antiname)
2816+ if 1: #not line:
2817+ self.line = self.find_line_type()
2818+ else:
2819+ self.line = line
2820+
2821+
2822+
2823+
2824+ def find_line_type(self):
2825+ """ find how we draw a line if not defined
2826+ valid output: dashed/straight/wavy/curly/double/swavy/scurly
2827+ """
2828+
2829+ spin = self.spin
2830+ color = self.color
2831+
2832+ #use default
2833+ if spin == 1:
2834+ return 'dashed'
2835+ elif spin == 2:
2836+ if not self.selfconjugate:
2837+ return 'straight'
2838+ elif color == 1:
2839+ return 'swavy'
2840+ else:
2841+ return 'scurly'
2842+ elif spin == 3:
2843+ if color == 1:
2844+ return 'wavy'
2845+
2846+ else:
2847+ return 'curly'
2848+ elif spin == 5:
2849+ return 'double'
2850+ elif spin == -1:
2851+ return 'dotted'
2852+ else:
2853+ return 'dashed' # not supported yet
2854
2855 def anti(self):
2856 if self.selfconjugate:
2857@@ -98,13 +136,13 @@
2858 newcolor = -self.color
2859
2860 return Particle(-self.pdg_code, self.antiname, self.name, self.spin, newcolor, self.mass, self.width,
2861- self.antitexname, self.texname, self.line, -self.charge, self.propagating, self.goldstoneboson, **outdic)
2862+ self.antitexname, self.texname, -self.charge, self.line, self.propagating, self.goldstoneboson, **outdic)
2863
2864
2865
2866 all_parameters = []
2867
2868-class Parameter(FRBaseClass):
2869+class Parameter(UFOBaseClass):
2870
2871 require_args=['name', 'nature', 'type', 'value', 'texname']
2872
2873@@ -112,7 +150,7 @@
2874
2875 args = (name,nature,type,value,texname)
2876
2877- FRBaseClass.__init__(self, *args)
2878+ UFOBaseClass.__init__(self, *args)
2879
2880 args=(name,nature,type,value,texname)
2881
2882@@ -126,7 +164,7 @@
2883
2884 all_vertices = []
2885
2886-class Vertex(FRBaseClass):
2887+class Vertex(UFOBaseClass):
2888
2889 require_args=['name', 'particles', 'color', 'lorentz', 'couplings']
2890
2891@@ -134,7 +172,7 @@
2892
2893 args = (name, particles, color, lorentz, couplings)
2894
2895- FRBaseClass.__init__(self, *args, **opt)
2896+ UFOBaseClass.__init__(self, *args, **opt)
2897
2898 args=(particles,color,lorentz,couplings)
2899
2900@@ -143,14 +181,14 @@
2901
2902 all_couplings = []
2903
2904-class Coupling(FRBaseClass):
2905+class Coupling(UFOBaseClass):
2906
2907 require_args=['name', 'value', 'order']
2908
2909 def __init__(self, name, value, order, **opt):
2910
2911 args =(name, value, order)
2912- FRBaseClass.__init__(self, *args, **opt)
2913+ UFOBaseClass.__init__(self, *args, **opt)
2914 global all_couplings
2915 all_couplings.append(self)
2916
2917@@ -158,13 +196,13 @@
2918
2919 all_lorentz = []
2920
2921-class Lorentz(FRBaseClass):
2922+class Lorentz(UFOBaseClass):
2923
2924 require_args=['name','spins','structure']
2925
2926 def __init__(self, name, spins, structure='external', **opt):
2927 args = (name, spins, structure)
2928- FRBaseClass.__init__(self, *args, **opt)
2929+ UFOBaseClass.__init__(self, *args, **opt)
2930
2931 global all_lorentz
2932 all_lorentz.append(self)
2933@@ -190,5 +228,18 @@
2934
2935 return eval(self.expr)
2936
2937+all_orders = []
2938+
2939+class CouplingOrder(object):
2940+
2941+ def __init__(self, name, expansion_order, hierarchy, perturbative_expansion = 0):
2942+
2943+ global all_orders
2944+ all_orders.append(self)
2945+
2946+ self.name = name
2947+ self.expansion_order = expansion_order
2948+ self.hierarchy = hierarchy
2949+
2950
2951
2952
2953=== added file 'models/sm/SM_Full_CKM_UFO.log'
2954--- models/sm/SM_Full_CKM_UFO.log 1970-01-01 00:00:00 +0000
2955+++ models/sm/SM_Full_CKM_UFO.log 2011-07-22 20:26:18 +0000
2956@@ -0,0 +1,67 @@
2957+# This file was automatically created by FeynRules $Revision: 634 $
2958+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
2959+# Date: Wed 6 Jul 2011 14:07:30
2960+
2961+
2962+#
2963+# This is the logfile for the model Standard Model
2964+
2965+# Authors: N. Christensen, C. Duhr
2966+# Model version: 1.3
2967+# Checking the Lagrangians
2968+ * All Lagrangians are ok.
2969+#
2970+# Particle definitions
2971+#
2972+
2973+ * No particles removed. All particles correspond to GenInt setup.
2974+
2975+# Automatically assigned PDG numbers
2976+ * Assigned PDG number 9000001 to particle ghA
2977+ * Assigned PDG number 9000002 to particle ghZ
2978+ * Assigned PDG number 9000003 to particle ghWp
2979+ * Assigned PDG number 9000004 to particle ghWm
2980+ * Assigned PDG number 9000005 to particle ghG
2981+
2982+
2983+# Compulsory PDG codes:
2984+ * Class SM leptons complete.
2985+ * Class SM neutrinos complete.
2986+ * Class SM quarks complete.
2987+ * Class SM gauge bosons complete.
2988+#
2989+# Parameter definitions
2990+#
2991+
2992+ * All parameters are ok.
2993+
2994+
2995+# Vertices
2996+ * Calling FeynmanRules for 1 Lagrangians.
2997+ * Number of classes vertices: 30
2998+ * Number of flavored vertices: 71
2999+ * Saved vertices in InterfaceRun[ 1 ].
3000+ * Checked QNumber conservation.
3001+ - Quantum number GhostNumber conserved in all vertices.
3002+ - Quantum number LeptonNumber conserved in all vertices.
3003+ - Quantum number Q conserved in all vertices.
3004+ * particles.py written.
3005+ * parameters.py written.
3006+#
3007+# Vertex definitions
3008+#
3009+
3010+ * 71 vertices written.
3011+ * vertices.py written.
3012+#
3013+# Lorentz structure definitions
3014+#
3015+
3016+ * 16 lorentz structures written.
3017+ * lorentz.py written.
3018+#
3019+# Coupling definitions
3020+#
3021+
3022+ * 47 couplings written.
3023+ * couplings.py written.
3024
3025=== modified file 'models/sm/__init__.py'
3026--- models/sm/__init__.py 2011-03-18 18:04:05 +0000
3027+++ models/sm/__init__.py 2011-07-22 20:26:18 +0000
3028@@ -4,6 +4,7 @@
3029 import lorentz
3030 import parameters
3031 import vertices
3032+import coupling_orders
3033 import write_param_card
3034
3035
3036@@ -12,9 +13,10 @@
3037 all_couplings = couplings.all_couplings
3038 all_lorentz = lorentz.all_lorentz
3039 all_parameters = parameters.all_parameters
3040+all_orders = coupling_orders.all_orders
3041 all_functions = function_library.all_functions
3042
3043
3044 __author__ = "N. Christensen, C. Duhr"
3045-__version__ = "1.2"
3046+__version__ = "1.3"
3047 __email__ = "neil@pa.msu.edu, claude.duhr@uclouvain.be"
3048
3049=== added file 'models/sm/coupling_orders.py'
3050--- models/sm/coupling_orders.py 1970-01-01 00:00:00 +0000
3051+++ models/sm/coupling_orders.py 2011-07-22 20:26:18 +0000
3052@@ -0,0 +1,15 @@
3053+# This file was automatically created by FeynRules $Revision: 634 $
3054+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
3055+# Date: Tue 19 Jul 2011 18:23:49
3056+
3057+
3058+from object_library import all_orders, CouplingOrder
3059+
3060+
3061+QCD = CouplingOrder(name = 'QCD',
3062+ expansion_order = -1,
3063+ hierarchy = 1)
3064+
3065+QED = CouplingOrder(name = 'QED',
3066+ expansion_order = -1,
3067+ hierarchy = 2)
3068
3069=== modified file 'models/sm/couplings.py'
3070--- models/sm/couplings.py 2011-03-18 18:04:05 +0000
3071+++ models/sm/couplings.py 2011-07-22 20:26:18 +0000
3072@@ -1,6 +1,6 @@
3073-# This file was automatically created by FeynRules $Revision: 535 $
3074-# Mathematica version: 7.0 for Mac OS X x86 (64-bit) (November 11, 2008)
3075-# Date: Fri 18 Mar 2011 18:40:51
3076+# This file was automatically created by FeynRules $Revision: 634 $
3077+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
3078+# Date: Wed 6 Jul 2011 14:07:37
3079
3080
3081 from object_library import all_couplings, Coupling
3082@@ -22,534 +22,178 @@
3083 order = {'QED':1})
3084
3085 GC_4 = Coupling(name = 'GC_4',
3086- value = 'ee*complex(0,1)',
3087- order = {'QED':1})
3088+ value = '-G',
3089+ order = {'QCD':1})
3090
3091 GC_5 = Coupling(name = 'GC_5',
3092- value = '2*ee**2*complex(0,1)',
3093- order = {'QED':2})
3094+ value = 'complex(0,1)*G',
3095+ order = {'QCD':1})
3096
3097 GC_6 = Coupling(name = 'GC_6',
3098- value = '-ee**2/(2.*cw)',
3099- order = {'QED':2})
3100+ value = 'complex(0,1)*G**2',
3101+ order = {'QCD':2})
3102
3103 GC_7 = Coupling(name = 'GC_7',
3104- value = '(ee**2*complex(0,1))/(2.*cw)',
3105- order = {'QED':2})
3106+ value = 'cw*complex(0,1)*gw',
3107+ order = {'QED':1})
3108
3109 GC_8 = Coupling(name = 'GC_8',
3110- value = 'ee**2/(2.*cw)',
3111+ value = '-(complex(0,1)*gw**2)',
3112 order = {'QED':2})
3113
3114 GC_9 = Coupling(name = 'GC_9',
3115- value = '-G',
3116- order = {'QCD':1})
3117+ value = 'cw**2*complex(0,1)*gw**2',
3118+ order = {'QED':2})
3119
3120 GC_10 = Coupling(name = 'GC_10',
3121- value = 'complex(0,1)*G',
3122- order = {'QCD':1})
3123+ value = '(ee**2*complex(0,1))/(2.*sw**2)',
3124+ order = {'QED':2})
3125
3126 GC_11 = Coupling(name = 'GC_11',
3127- value = 'complex(0,1)*G**2',
3128- order = {'QCD':2})
3129+ value = '(ee*complex(0,1))/(sw*cmath.sqrt(2))',
3130+ order = {'QED':1})
3131
3132 GC_12 = Coupling(name = 'GC_12',
3133- value = 'cw*complex(0,1)*gw',
3134+ value = '(CKM11*ee*complex(0,1))/(sw*cmath.sqrt(2))',
3135 order = {'QED':1})
3136
3137 GC_13 = Coupling(name = 'GC_13',
3138- value = '-(complex(0,1)*gw**2)',
3139- order = {'QED':2})
3140+ value = '(CKM12*ee*complex(0,1))/(sw*cmath.sqrt(2))',
3141+ order = {'QED':1})
3142
3143 GC_14 = Coupling(name = 'GC_14',
3144- value = 'cw**2*complex(0,1)*gw**2',
3145- order = {'QED':2})
3146+ value = '(CKM13*ee*complex(0,1))/(sw*cmath.sqrt(2))',
3147+ order = {'QED':1})
3148
3149 GC_15 = Coupling(name = 'GC_15',
3150- value = '-2*complex(0,1)*lam',
3151- order = {'QED':2})
3152+ value = '(CKM21*ee*complex(0,1))/(sw*cmath.sqrt(2))',
3153+ order = {'QED':1})
3154
3155 GC_16 = Coupling(name = 'GC_16',
3156- value = '-4*complex(0,1)*lam',
3157- order = {'QED':2})
3158+ value = '(CKM22*ee*complex(0,1))/(sw*cmath.sqrt(2))',
3159+ order = {'QED':1})
3160
3161 GC_17 = Coupling(name = 'GC_17',
3162- value = '-6*complex(0,1)*lam',
3163- order = {'QED':2})
3164+ value = '(CKM23*ee*complex(0,1))/(sw*cmath.sqrt(2))',
3165+ order = {'QED':1})
3166
3167 GC_18 = Coupling(name = 'GC_18',
3168- value = '-(ee*MW)',
3169+ value = '(CKM31*ee*complex(0,1))/(sw*cmath.sqrt(2))',
3170 order = {'QED':1})
3171
3172 GC_19 = Coupling(name = 'GC_19',
3173- value = 'ee*MW',
3174+ value = '(CKM32*ee*complex(0,1))/(sw*cmath.sqrt(2))',
3175 order = {'QED':1})
3176
3177 GC_20 = Coupling(name = 'GC_20',
3178- value = '(ee**2*complex(0,1))/(2.*sw**2)',
3179- order = {'QED':2})
3180+ value = '(CKM33*ee*complex(0,1))/(sw*cmath.sqrt(2))',
3181+ order = {'QED':1})
3182
3183 GC_21 = Coupling(name = 'GC_21',
3184- value = '-(ee*complex(0,1))/(2.*sw)',
3185+ value = '-(cw*ee*complex(0,1))/(2.*sw)',
3186 order = {'QED':1})
3187
3188 GC_22 = Coupling(name = 'GC_22',
3189- value = '(ee*complex(0,1))/(2.*sw)',
3190+ value = '(cw*ee*complex(0,1))/(2.*sw)',
3191 order = {'QED':1})
3192
3193 GC_23 = Coupling(name = 'GC_23',
3194- value = 'ee/(2.*sw)',
3195+ value = '-(ee*complex(0,1)*sw)/(6.*cw)',
3196 order = {'QED':1})
3197
3198 GC_24 = Coupling(name = 'GC_24',
3199- value = '(ee*complex(0,1))/(sw*cmath.sqrt(2))',
3200+ value = '(ee*complex(0,1)*sw)/(2.*cw)',
3201 order = {'QED':1})
3202
3203 GC_25 = Coupling(name = 'GC_25',
3204- value = '(CKM11*ee*complex(0,1))/(sw*cmath.sqrt(2))',
3205+ value = 'complex(0,1)*gw*sw',
3206 order = {'QED':1})
3207
3208 GC_26 = Coupling(name = 'GC_26',
3209- value = '(CKM12*ee*complex(0,1))/(sw*cmath.sqrt(2))',
3210- order = {'QED':1})
3211+ value = '-2*cw*complex(0,1)*gw**2*sw',
3212+ order = {'QED':2})
3213
3214 GC_27 = Coupling(name = 'GC_27',
3215- value = '(CKM13*ee*complex(0,1))/(sw*cmath.sqrt(2))',
3216- order = {'QED':1})
3217+ value = 'complex(0,1)*gw**2*sw**2',
3218+ order = {'QED':2})
3219
3220 GC_28 = Coupling(name = 'GC_28',
3221- value = '(CKM21*ee*complex(0,1))/(sw*cmath.sqrt(2))',
3222+ value = '(cw*ee*complex(0,1))/(2.*sw) + (ee*complex(0,1)*sw)/(2.*cw)',
3223 order = {'QED':1})
3224
3225 GC_29 = Coupling(name = 'GC_29',
3226- value = '(CKM22*ee*complex(0,1))/(sw*cmath.sqrt(2))',
3227- order = {'QED':1})
3228+ 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)',
3229+ order = {'QED':2})
3230
3231 GC_30 = Coupling(name = 'GC_30',
3232- value = '(CKM23*ee*complex(0,1))/(sw*cmath.sqrt(2))',
3233+ value = '-6*complex(0,1)*lam*v',
3234 order = {'QED':1})
3235
3236 GC_31 = Coupling(name = 'GC_31',
3237- value = '(CKM31*ee*complex(0,1))/(sw*cmath.sqrt(2))',
3238+ value = '(ee**2*complex(0,1)*v)/(2.*sw**2)',
3239 order = {'QED':1})
3240
3241 GC_32 = Coupling(name = 'GC_32',
3242- value = '(CKM32*ee*complex(0,1))/(sw*cmath.sqrt(2))',
3243+ 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)',
3244 order = {'QED':1})
3245
3246 GC_33 = Coupling(name = 'GC_33',
3247- value = '(CKM33*ee*complex(0,1))/(sw*cmath.sqrt(2))',
3248+ value = '-((complex(0,1)*yb)/cmath.sqrt(2))',
3249 order = {'QED':1})
3250
3251 GC_34 = Coupling(name = 'GC_34',
3252- value = '-(cw*ee*complex(0,1))/(2.*sw)',
3253+ value = '-((complex(0,1)*yc)/cmath.sqrt(2))',
3254 order = {'QED':1})
3255
3256 GC_35 = Coupling(name = 'GC_35',
3257- value = '(cw*ee*complex(0,1))/(2.*sw)',
3258+ value = '-((complex(0,1)*ye)/cmath.sqrt(2))',
3259 order = {'QED':1})
3260
3261 GC_36 = Coupling(name = 'GC_36',
3262- value = '-((cw*ee*complex(0,1))/sw)',
3263+ value = '-((complex(0,1)*ym)/cmath.sqrt(2))',
3264 order = {'QED':1})
3265
3266 GC_37 = Coupling(name = 'GC_37',
3267- value = '(cw*ee*complex(0,1))/sw',
3268+ value = '-((complex(0,1)*yt)/cmath.sqrt(2))',
3269 order = {'QED':1})
3270
3271 GC_38 = Coupling(name = 'GC_38',
3272- value = '-ee**2/(2.*sw)',
3273- order = {'QED':2})
3274+ value = '-((complex(0,1)*ytau)/cmath.sqrt(2))',
3275+ order = {'QED':1})
3276
3277 GC_39 = Coupling(name = 'GC_39',
3278- value = '-(ee**2*complex(0,1))/(2.*sw)',
3279- order = {'QED':2})
3280+ value = '(ee*complex(0,1)*complexconjugate(CKM11))/(sw*cmath.sqrt(2))',
3281+ order = {'QED':1})
3282
3283 GC_40 = Coupling(name = 'GC_40',
3284- value = 'ee**2/(2.*sw)',
3285- order = {'QED':2})
3286+ value = '(ee*complex(0,1)*complexconjugate(CKM12))/(sw*cmath.sqrt(2))',
3287+ order = {'QED':1})
3288
3289 GC_41 = Coupling(name = 'GC_41',
3290- value = '-(ee*MW)/(2.*sw)',
3291+ value = '(ee*complex(0,1)*complexconjugate(CKM13))/(sw*cmath.sqrt(2))',
3292 order = {'QED':1})
3293
3294 GC_42 = Coupling(name = 'GC_42',
3295- value = '-(ee*complex(0,1)*MW)/(2.*sw)',
3296+ value = '(ee*complex(0,1)*complexconjugate(CKM21))/(sw*cmath.sqrt(2))',
3297 order = {'QED':1})
3298
3299 GC_43 = Coupling(name = 'GC_43',
3300- value = '(ee*MW)/(2.*sw)',
3301+ value = '(ee*complex(0,1)*complexconjugate(CKM22))/(sw*cmath.sqrt(2))',
3302 order = {'QED':1})
3303
3304 GC_44 = Coupling(name = 'GC_44',
3305- value = '-(ee*MZ)/(2.*sw)',
3306+ value = '(ee*complex(0,1)*complexconjugate(CKM23))/(sw*cmath.sqrt(2))',
3307 order = {'QED':1})
3308
3309 GC_45 = Coupling(name = 'GC_45',
3310- value = '(ee*MZ)/(2.*sw)',
3311+ value = '(ee*complex(0,1)*complexconjugate(CKM31))/(sw*cmath.sqrt(2))',
3312 order = {'QED':1})
3313
3314 GC_46 = Coupling(name = 'GC_46',
3315- value = '-(ee*complex(0,1)*MZ)/(2.*cw*sw)',
3316+ value = '(ee*complex(0,1)*complexconjugate(CKM32))/(sw*cmath.sqrt(2))',
3317 order = {'QED':1})
3318
3319 GC_47 = Coupling(name = 'GC_47',
3320- value = '-(ee*complex(0,1)*sw)/(6.*cw)',
3321- order = {'QED':1})
3322-
3323-GC_48 = Coupling(name = 'GC_48',
3324- value = '(ee*complex(0,1)*sw)/(2.*cw)',
3325- order = {'QED':1})
3326-
3327-GC_49 = Coupling(name = 'GC_49',
3328- value = 'complex(0,1)*gw*sw',
3329- order = {'QED':1})
3330-
3331-GC_50 = Coupling(name = 'GC_50',
3332- value = '-2*cw*complex(0,1)*gw**2*sw',
3333- order = {'QED':2})
3334-
3335-GC_51 = Coupling(name = 'GC_51',
3336- value = 'complex(0,1)*gw**2*sw**2',
3337- order = {'QED':2})
3338-
3339-GC_52 = Coupling(name = 'GC_52',
3340- value = '-(cw*ee*complex(0,1))/(2.*sw) + (ee*complex(0,1)*sw)/(2.*cw)',
3341- order = {'QED':1})
3342-
3343-GC_53 = Coupling(name = 'GC_53',
3344- value = '(cw*ee*complex(0,1))/(2.*sw) + (ee*complex(0,1)*sw)/(2.*cw)',
3345- order = {'QED':1})
3346-
3347-GC_54 = Coupling(name = 'GC_54',
3348- value = '(cw*ee)/(2.*sw) + (ee*sw)/(2.*cw)',
3349- order = {'QED':1})
3350-
3351-GC_55 = Coupling(name = 'GC_55',
3352- value = '(cw*ee**2*complex(0,1))/sw - (ee**2*complex(0,1)*sw)/cw',
3353- order = {'QED':2})
3354-
3355-GC_56 = Coupling(name = 'GC_56',
3356- value = '(cw*ee*MW)/(2.*sw) - (ee*MW*sw)/(2.*cw)',
3357- order = {'QED':1})
3358-
3359-GC_57 = Coupling(name = 'GC_57',
3360- value = '-(cw*ee*MW)/(2.*sw) + (ee*MW*sw)/(2.*cw)',
3361- order = {'QED':1})
3362-
3363-GC_58 = Coupling(name = 'GC_58',
3364- 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)',
3365- order = {'QED':2})
3366-
3367-GC_59 = Coupling(name = 'GC_59',
3368- 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)',
3369- order = {'QED':2})
3370-
3371-GC_60 = Coupling(name = 'GC_60',
3372- value = '-(ee**2*v)/(2.*cw)',
3373- order = {'QED':1})
3374-
3375-GC_61 = Coupling(name = 'GC_61',
3376- value = '(ee**2*v)/(2.*cw)',
3377- order = {'QED':1})
3378-
3379-GC_62 = Coupling(name = 'GC_62',
3380- value = '-2*complex(0,1)*lam*v',
3381- order = {'QED':1})
3382-
3383-GC_63 = Coupling(name = 'GC_63',
3384- value = '-6*complex(0,1)*lam*v',
3385- order = {'QED':1})
3386-
3387-GC_64 = Coupling(name = 'GC_64',
3388- value = '(ee**2*complex(0,1)*v)/(2.*sw**2)',
3389- order = {'QED':1})
3390-
3391-GC_65 = Coupling(name = 'GC_65',
3392- value = '-(ee**2*v)/(2.*sw)',
3393- order = {'QED':1})
3394-
3395-GC_66 = Coupling(name = 'GC_66',
3396- value = '(ee**2*v)/(2.*sw)',
3397- order = {'QED':1})
3398-
3399-GC_67 = Coupling(name = 'GC_67',
3400- 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)',
3401- order = {'QED':1})
3402-
3403-GC_68 = Coupling(name = 'GC_68',
3404- value = '-((complex(0,1)*yb)/cmath.sqrt(2))',
3405- order = {'QED':1})
3406-
3407-GC_69 = Coupling(name = 'GC_69',
3408- value = 'yb/cmath.sqrt(2)',
3409- order = {'QED':1})
3410-
3411-GC_70 = Coupling(name = 'GC_70',
3412- value = '-(CKM13*yb)',
3413- order = {'QED':1})
3414-
3415-GC_71 = Coupling(name = 'GC_71',
3416- value = '-(CKM23*yb)',
3417- order = {'QED':1})
3418-
3419-GC_72 = Coupling(name = 'GC_72',
3420- value = '-(CKM33*yb)',
3421- order = {'QED':1})
3422-
3423-GC_73 = Coupling(name = 'GC_73',
3424- value = '-(yc/cmath.sqrt(2))',
3425- order = {'QED':1})
3426-
3427-GC_74 = Coupling(name = 'GC_74',
3428- value = '-((complex(0,1)*yc)/cmath.sqrt(2))',
3429- order = {'QED':1})
3430-
3431-GC_75 = Coupling(name = 'GC_75',
3432- value = 'CKM21*yc',
3433- order = {'QED':1})
3434-
3435-GC_76 = Coupling(name = 'GC_76',
3436- value = 'CKM22*yc',
3437- order = {'QED':1})
3438-
3439-GC_77 = Coupling(name = 'GC_77',
3440- value = 'CKM23*yc',
3441- order = {'QED':1})
3442-
3443-GC_78 = Coupling(name = 'GC_78',
3444- value = '-((complex(0,1)*ydo)/cmath.sqrt(2))',
3445- order = {'QED':1})
3446-
3447-GC_79 = Coupling(name = 'GC_79',
3448- value = 'ydo/cmath.sqrt(2)',
3449- order = {'QED':1})
3450-
3451-GC_80 = Coupling(name = 'GC_80',
3452- value = '-(CKM11*ydo)',
3453- order = {'QED':1})
3454-
3455-GC_81 = Coupling(name = 'GC_81',
3456- value = '-(CKM21*ydo)',
3457- order = {'QED':1})
3458-
3459-GC_82 = Coupling(name = 'GC_82',
3460- value = '-(CKM31*ydo)',
3461- order = {'QED':1})
3462-
3463-GC_83 = Coupling(name = 'GC_83',
3464- value = '-ye',
3465- order = {'QED':1})
3466-
3467-GC_84 = Coupling(name = 'GC_84',
3468- value = 'ye',
3469- order = {'QED':1})
3470-
3471-GC_85 = Coupling(name = 'GC_85',
3472- value = '-((complex(0,1)*ye)/cmath.sqrt(2))',
3473- order = {'QED':1})
3474-
3475-GC_86 = Coupling(name = 'GC_86',
3476- value = 'ye/cmath.sqrt(2)',
3477- order = {'QED':1})
3478-
3479-GC_87 = Coupling(name = 'GC_87',
3480- value = '-ym',
3481- order = {'QED':1})
3482-
3483-GC_88 = Coupling(name = 'GC_88',
3484- value = 'ym',
3485- order = {'QED':1})
3486-
3487-GC_89 = Coupling(name = 'GC_89',
3488- value = '-((complex(0,1)*ym)/cmath.sqrt(2))',
3489- order = {'QED':1})
3490-
3491-GC_90 = Coupling(name = 'GC_90',
3492- value = 'ym/cmath.sqrt(2)',
3493- order = {'QED':1})
3494-
3495-GC_91 = Coupling(name = 'GC_91',
3496- value = '-((complex(0,1)*ys)/cmath.sqrt(2))',
3497- order = {'QED':1})
3498-
3499-GC_92 = Coupling(name = 'GC_92',
3500- value = 'ys/cmath.sqrt(2)',
3501- order = {'QED':1})
3502-
3503-GC_93 = Coupling(name = 'GC_93',
3504- value = '-(CKM12*ys)',
3505- order = {'QED':1})
3506-
3507-GC_94 = Coupling(name = 'GC_94',
3508- value = '-(CKM22*ys)',
3509- order = {'QED':1})
3510-
3511-GC_95 = Coupling(name = 'GC_95',
3512- value = '-(CKM32*ys)',
3513- order = {'QED':1})
3514-
3515-GC_96 = Coupling(name = 'GC_96',
3516- value = '-(yt/cmath.sqrt(2))',
3517- order = {'QED':1})
3518-
3519-GC_97 = Coupling(name = 'GC_97',
3520- value = '-((complex(0,1)*yt)/cmath.sqrt(2))',
3521- order = {'QED':1})
3522-
3523-GC_98 = Coupling(name = 'GC_98',
3524- value = 'CKM31*yt',
3525- order = {'QED':1})
3526-
3527-GC_99 = Coupling(name = 'GC_99',
3528- value = 'CKM32*yt',
3529- order = {'QED':1})
3530-
3531-GC_100 = Coupling(name = 'GC_100',
3532- value = 'CKM33*yt',
3533- order = {'QED':1})
3534-
3535-GC_101 = Coupling(name = 'GC_101',
3536- value = '-ytau',
3537- order = {'QED':1})
3538-
3539-GC_102 = Coupling(name = 'GC_102',
3540- value = 'ytau',
3541- order = {'QED':1})
3542-
3543-GC_103 = Coupling(name = 'GC_103',
3544- value = '-((complex(0,1)*ytau)/cmath.sqrt(2))',
3545- order = {'QED':1})
3546-
3547-GC_104 = Coupling(name = 'GC_104',
3548- value = 'ytau/cmath.sqrt(2)',
3549- order = {'QED':1})
3550-
3551-GC_105 = Coupling(name = 'GC_105',
3552- value = '-(yup/cmath.sqrt(2))',
3553- order = {'QED':1})
3554-
3555-GC_106 = Coupling(name = 'GC_106',
3556- value = '-((complex(0,1)*yup)/cmath.sqrt(2))',
3557- order = {'QED':1})
3558-
3559-GC_107 = Coupling(name = 'GC_107',
3560- value = 'CKM11*yup',
3561- order = {'QED':1})
3562-
3563-GC_108 = Coupling(name = 'GC_108',
3564- value = 'CKM12*yup',
3565- order = {'QED':1})
3566-
3567-GC_109 = Coupling(name = 'GC_109',
3568- value = 'CKM13*yup',
3569- order = {'QED':1})
3570-
3571-GC_110 = Coupling(name = 'GC_110',
3572- value = '(ee*complex(0,1)*complexconjugate(CKM11))/(sw*cmath.sqrt(2))',
3573- order = {'QED':1})
3574-
3575-GC_111 = Coupling(name = 'GC_111',
3576- value = 'ydo*complexconjugate(CKM11)',
3577- order = {'QED':1})
3578-
3579-GC_112 = Coupling(name = 'GC_112',
3580- value = '-(yup*complexconjugate(CKM11))',
3581- order = {'QED':1})
3582-
3583-GC_113 = Coupling(name = 'GC_113',
3584- value = '(ee*complex(0,1)*complexconjugate(CKM12))/(sw*cmath.sqrt(2))',
3585- order = {'QED':1})
3586-
3587-GC_114 = Coupling(name = 'GC_114',
3588- value = 'ys*complexconjugate(CKM12)',
3589- order = {'QED':1})
3590-
3591-GC_115 = Coupling(name = 'GC_115',
3592- value = '-(yup*complexconjugate(CKM12))',
3593- order = {'QED':1})
3594-
3595-GC_116 = Coupling(name = 'GC_116',
3596- value = '(ee*complex(0,1)*complexconjugate(CKM13))/(sw*cmath.sqrt(2))',
3597- order = {'QED':1})
3598-
3599-GC_117 = Coupling(name = 'GC_117',
3600- value = 'yb*complexconjugate(CKM13)',
3601- order = {'QED':1})
3602-
3603-GC_118 = Coupling(name = 'GC_118',
3604- value = '-(yup*complexconjugate(CKM13))',
3605- order = {'QED':1})
3606-
3607-GC_119 = Coupling(name = 'GC_119',
3608- value = '(ee*complex(0,1)*complexconjugate(CKM21))/(sw*cmath.sqrt(2))',
3609- order = {'QED':1})
3610-
3611-GC_120 = Coupling(name = 'GC_120',
3612- value = '-(yc*complexconjugate(CKM21))',
3613- order = {'QED':1})
3614-
3615-GC_121 = Coupling(name = 'GC_121',
3616- value = 'ydo*complexconjugate(CKM21)',
3617- order = {'QED':1})
3618-
3619-GC_122 = Coupling(name = 'GC_122',
3620- value = '(ee*complex(0,1)*complexconjugate(CKM22))/(sw*cmath.sqrt(2))',
3621- order = {'QED':1})
3622-
3623-GC_123 = Coupling(name = 'GC_123',
3624- value = '-(yc*complexconjugate(CKM22))',
3625- order = {'QED':1})
3626-
3627-GC_124 = Coupling(name = 'GC_124',
3628- value = 'ys*complexconjugate(CKM22)',
3629- order = {'QED':1})
3630-
3631-GC_125 = Coupling(name = 'GC_125',
3632- value = '(ee*complex(0,1)*complexconjugate(CKM23))/(sw*cmath.sqrt(2))',
3633- order = {'QED':1})
3634-
3635-GC_126 = Coupling(name = 'GC_126',
3636- value = 'yb*complexconjugate(CKM23)',
3637- order = {'QED':1})
3638-
3639-GC_127 = Coupling(name = 'GC_127',
3640- value = '-(yc*complexconjugate(CKM23))',
3641- order = {'QED':1})
3642-
3643-GC_128 = Coupling(name = 'GC_128',
3644- value = '(ee*complex(0,1)*complexconjugate(CKM31))/(sw*cmath.sqrt(2))',
3645- order = {'QED':1})
3646-
3647-GC_129 = Coupling(name = 'GC_129',
3648- value = 'ydo*complexconjugate(CKM31)',
3649- order = {'QED':1})
3650-
3651-GC_130 = Coupling(name = 'GC_130',
3652- value = '-(yt*complexconjugate(CKM31))',
3653- order = {'QED':1})
3654-
3655-GC_131 = Coupling(name = 'GC_131',
3656- value = '(ee*complex(0,1)*complexconjugate(CKM32))/(sw*cmath.sqrt(2))',
3657- order = {'QED':1})
3658-
3659-GC_132 = Coupling(name = 'GC_132',
3660- value = 'ys*complexconjugate(CKM32)',
3661- order = {'QED':1})
3662-
3663-GC_133 = Coupling(name = 'GC_133',
3664- value = '-(yt*complexconjugate(CKM32))',
3665- order = {'QED':1})
3666-
3667-GC_134 = Coupling(name = 'GC_134',
3668- value = '(ee*complex(0,1)*complexconjugate(CKM33))/(sw*cmath.sqrt(2))',
3669- order = {'QED':1})
3670-
3671-GC_135 = Coupling(name = 'GC_135',
3672- value = 'yb*complexconjugate(CKM33)',
3673- order = {'QED':1})
3674-
3675-GC_136 = Coupling(name = 'GC_136',
3676- value = '-(yt*complexconjugate(CKM33))',
3677- order = {'QED':1})
3678+ value = '(ee*complex(0,1)*complexconjugate(CKM33))/(sw*cmath.sqrt(2))',
3679+ order = {'QED':1})
3680
3681
3682=== modified file 'models/sm/lorentz.py'
3683--- models/sm/lorentz.py 2011-03-18 18:04:05 +0000
3684+++ models/sm/lorentz.py 2011-07-22 20:26:18 +0000
3685@@ -1,6 +1,6 @@
3686-# This file was automatically created by FeynRules $Revision: 535 $
3687-# Mathematica version: 7.0 for Mac OS X x86 (64-bit) (November 11, 2008)
3688-# Date: Fri 18 Mar 2011 18:40:51
3689+# This file was automatically created by FeynRules $Revision: 634 $
3690+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
3691+# Date: Wed 6 Jul 2011 14:07:37
3692
3693
3694 from object_library import all_lorentz, Lorentz
3695@@ -9,10 +9,6 @@
3696
3697
3698
3699-UUS1 = Lorentz(name = 'UUS1',
3700- spins = [ -1, -1, 1 ],
3701- structure = '1')
3702-
3703 UUV1 = Lorentz(name = 'UUV1',
3704 spins = [ -1, -1, 3 ],
3705 structure = 'P(3,2) + P(3,3)')
3706@@ -23,20 +19,8 @@
3707
3708 FFS1 = Lorentz(name = 'FFS1',
3709 spins = [ 2, 2, 1 ],
3710- structure = 'Gamma5(2,1)')
3711-
3712-FFS2 = Lorentz(name = 'FFS2',
3713- spins = [ 2, 2, 1 ],
3714 structure = 'Identity(2,1)')
3715
3716-FFS3 = Lorentz(name = 'FFS3',
3717- spins = [ 2, 2, 1 ],
3718- structure = 'ProjM(2,1)')
3719-
3720-FFS4 = Lorentz(name = 'FFS4',
3721- spins = [ 2, 2, 1 ],
3722- structure = 'ProjP(2,1)')
3723-
3724 FFV1 = Lorentz(name = 'FFV1',
3725 spins = [ 2, 2, 3 ],
3726 structure = 'Gamma(3,2,1)')
3727@@ -57,10 +41,6 @@
3728 spins = [ 2, 2, 3 ],
3729 structure = 'Gamma(3,2,-1)*ProjM(-1,1) + 4*Gamma(3,2,-1)*ProjP(-1,1)')
3730
3731-VSS1 = Lorentz(name = 'VSS1',
3732- spins = [ 3, 1, 1 ],
3733- structure = 'P(1,2) - P(1,3)')
3734-
3735 VVS1 = Lorentz(name = 'VVS1',
3736 spins = [ 3, 3, 1 ],
3737 structure = 'Metric(1,2)')
3738@@ -69,10 +49,6 @@
3739 spins = [ 3, 3, 3 ],
3740 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)')
3741
3742-SSSS1 = Lorentz(name = 'SSSS1',
3743- spins = [ 1, 1, 1, 1 ],
3744- structure = '1')
3745-
3746 VVSS1 = Lorentz(name = 'VVSS1',
3747 spins = [ 3, 3, 1, 1 ],
3748 structure = 'Metric(1,2)')
3749
3750=== modified file 'models/sm/object_library.py'
3751--- models/sm/object_library.py 2011-03-18 18:04:05 +0000
3752+++ models/sm/object_library.py 2011-07-22 20:26:18 +0000
3753@@ -228,5 +228,18 @@
3754
3755 return eval(self.expr)
3756
3757+all_orders = []
3758+
3759+class CouplingOrder(object):
3760+
3761+ def __init__(self, name, expansion_order, hierarchy, perturbative_expansion = 0):
3762+
3763+ global all_orders
3764+ all_orders.append(self)
3765+
3766+ self.name = name
3767+ self.expansion_order = expansion_order
3768+ self.hierarchy = hierarchy
3769+
3770
3771
3772
3773=== modified file 'models/sm/parameters.py'
3774--- models/sm/parameters.py 2011-04-02 05:34:20 +0000
3775+++ models/sm/parameters.py 2011-07-22 20:26:18 +0000
3776@@ -1,6 +1,6 @@
3777-# This file was automatically created by FeynRules $Revision: 535 $
3778-# Mathematica version: 7.0 for Mac OS X x86 (64-bit) (November 11, 2008)
3779-# Date: Fri 18 Mar 2011 18:40:51
3780+# This file was automatically created by FeynRules $Revision: 634 $
3781+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
3782+# Date: Wed 6 Jul 2011 14:07:37
3783
3784
3785
3786@@ -17,18 +17,10 @@
3787 texname = '0')
3788
3789 # User-defined parameters.
3790-cabi = Parameter(name = 'cabi',
3791- nature = 'external',
3792- type = 'real',
3793- value = 0.227736,
3794- texname = '\\theta _c',
3795- lhablock = 'CKMBLOCK',
3796- lhacode = [ 1 ])
3797-
3798 aEWM1 = Parameter(name = 'aEWM1',
3799 nature = 'external',
3800 type = 'real',
3801- value = 127.9,
3802+ value = 132.50698,
3803 texname = '\\text{aEWM1}',
3804 lhablock = 'SMINPUTS',
3805 lhacode = [ 1 ])
3806@@ -36,7 +28,7 @@
3807 Gf = Parameter(name = 'Gf',
3808 nature = 'external',
3809 type = 'real',
3810- value = 0.000011663900000000002,
3811+ value = 0.0000116639,
3812 texname = 'G_f',
3813 lhablock = 'SMINPUTS',
3814 lhacode = [ 2 ])
3815@@ -44,15 +36,47 @@
3816 aS = Parameter(name = 'aS',
3817 nature = 'external',
3818 type = 'real',
3819- value = 0.1172,
3820+ value = 0.118,
3821 texname = '\\text{aS}',
3822 lhablock = 'SMINPUTS',
3823 lhacode = [ 3 ])
3824
3825+lamWS = Parameter(name = 'lamWS',
3826+ nature = 'external',
3827+ type = 'real',
3828+ value = 0.2253,
3829+ texname = '\\text{lamWS}',
3830+ lhablock = 'Wolfenstein',
3831+ lhacode = [ 1 ])
3832+
3833+AWS = Parameter(name = 'AWS',
3834+ nature = 'external',
3835+ type = 'real',
3836+ value = 0.808,
3837+ texname = '\\text{AWS}',
3838+ lhablock = 'Wolfenstein',
3839+ lhacode = [ 2 ])
3840+
3841+rhoWS = Parameter(name = 'rhoWS',
3842+ nature = 'external',
3843+ type = 'real',
3844+ value = 0.132,
3845+ texname = '\\text{rhoWS}',
3846+ lhablock = 'Wolfenstein',
3847+ lhacode = [ 3 ])
3848+
3849+etaWS = Parameter(name = 'etaWS',
3850+ nature = 'external',
3851+ type = 'real',
3852+ value = 0.341,
3853+ texname = '\\text{etaWS}',
3854+ lhablock = 'Wolfenstein',
3855+ lhacode = [ 4 ])
3856+
3857 ymc = Parameter(name = 'ymc',
3858 nature = 'external',
3859 type = 'real',
3860- value = 1.42,
3861+ value = 1.27,
3862 texname = '\\text{ymc}',
3863 lhablock = 'YUKAWA',
3864 lhacode = [ 4 ])
3865@@ -60,7 +84,7 @@
3866 ymb = Parameter(name = 'ymb',
3867 nature = 'external',
3868 type = 'real',
3869- value = 4.7,
3870+ value = 4.2,
3871 texname = '\\text{ymb}',
3872 lhablock = 'YUKAWA',
3873 lhacode = [ 5 ])
3874@@ -68,11 +92,27 @@
3875 ymt = Parameter(name = 'ymt',
3876 nature = 'external',
3877 type = 'real',
3878- value = 174.3,
3879+ value = 164.5,
3880 texname = '\\text{ymt}',
3881 lhablock = 'YUKAWA',
3882 lhacode = [ 6 ])
3883
3884+yme = Parameter(name = 'yme',
3885+ nature = 'external',
3886+ type = 'real',
3887+ value = 0.0005110000000000001,
3888+ texname = '\\text{yme}',
3889+ lhablock = 'YUKAWA',
3890+ lhacode = [ 11 ])
3891+
3892+ymm = Parameter(name = 'ymm',
3893+ nature = 'external',
3894+ type = 'real',
3895+ value = 0.10566,
3896+ texname = '\\text{ymm}',
3897+ lhablock = 'YUKAWA',
3898+ lhacode = [ 13 ])
3899+
3900 ymtau = Parameter(name = 'ymtau',
3901 nature = 'external',
3902 type = 'real',
3903@@ -81,38 +121,6 @@
3904 lhablock = 'YUKAWA',
3905 lhacode = [ 15 ])
3906
3907-Me = Parameter(name = 'Me',
3908- nature = 'external',
3909- type = 'real',
3910- value = 0.0005110000000000001,
3911- texname = '\\text{Me}',
3912- lhablock = 'MASS',
3913- lhacode = [ 11 ])
3914-
3915-MM = Parameter(name = 'MM',
3916- nature = 'external',
3917- type = 'real',
3918- value = 0.10566,
3919- texname = '\\text{MM}',
3920- lhablock = 'MASS',
3921- lhacode = [ 13 ])
3922-
3923-MTA = Parameter(name = 'MTA',
3924- nature = 'external',
3925- type = 'real',
3926- value = 1.777,
3927- texname = '\\text{MTA}',
3928- lhablock = 'MASS',
3929- lhacode = [ 15 ])
3930-
3931-MU = Parameter(name = 'MU',
3932- nature = 'external',
3933- type = 'real',
3934- value = 0.0025499999999999997,
3935- texname = 'M',
3936- lhablock = 'MASS',
3937- lhacode = [ 2 ])
3938-
3939 MC = Parameter(name = 'MC',
3940 nature = 'external',
3941 type = 'real',
3942@@ -124,27 +132,11 @@
3943 MT = Parameter(name = 'MT',
3944 nature = 'external',
3945 type = 'real',
3946- value = 174.3,
3947+ value = 172.,
3948 texname = '\\text{MT}',
3949 lhablock = 'MASS',
3950 lhacode = [ 6 ])
3951
3952-MD = Parameter(name = 'MD',
3953- nature = 'external',
3954- type = 'real',
3955- value = 0.00504,
3956- texname = '\\text{MD}',
3957- lhablock = 'MASS',
3958- lhacode = [ 1 ])
3959-
3960-MS = Parameter(name = 'MS',
3961- nature = 'external',
3962- type = 'real',
3963- value = 0.104,
3964- texname = '\\text{MS}',
3965- lhablock = 'MASS',
3966- lhacode = [ 3 ])
3967-
3968 MB = Parameter(name = 'MB',
3969 nature = 'external',
3970 type = 'real',
3971@@ -164,18 +156,34 @@
3972 MH = Parameter(name = 'MH',
3973 nature = 'external',
3974 type = 'real',
3975- value = 120,
3976+ value = 120.,
3977 texname = '\\text{MH}',
3978 lhablock = 'MASS',
3979 lhacode = [ 25 ])
3980
3981-WTA = Parameter(name = 'WTA',
3982- nature = 'external',
3983- type = 'real',
3984- value = 0,
3985- texname = '\\text{WT}',
3986- lhablock = 'DECAY',
3987- lhacode = [ 15 ])
3988+Me = Parameter(name = 'Me',
3989+ nature = 'external',
3990+ type = 'real',
3991+ value = 0.0005110000000000001,
3992+ texname = '\\text{Me}',
3993+ lhablock = 'MASS',
3994+ lhacode = [ 11 ])
3995+
3996+MM = Parameter(name = 'MM',
3997+ nature = 'external',
3998+ type = 'real',
3999+ value = 0.10566,
4000+ texname = '\\text{MM}',
4001+ lhablock = 'MASS',
4002+ lhacode = [ 13 ])
4003+
4004+MTA = Parameter(name = 'MTA',
4005+ nature = 'external',
4006+ type = 'real',
4007+ value = 1.777,
4008+ texname = '\\text{MTA}',
4009+ lhablock = 'MASS',
4010+ lhacode = [ 15 ])
4011
4012 WT = Parameter(name = 'WT',
4013 nature = 'external',
4014@@ -209,94 +217,60 @@
4015 lhablock = 'DECAY',
4016 lhacode = [ 25 ])
4017
4018-aEW = Parameter(name = 'aEW',
4019- nature = 'internal',
4020- type = 'real',
4021- value = '1/aEWM1',
4022- texname = '\\text{aEW}')
4023-
4024-G = Parameter(name = 'G',
4025- nature = 'internal',
4026- type = 'real',
4027- value = '2*cmath.sqrt(aS)*cmath.sqrt(cmath.pi)',
4028- texname = 'G')
4029-
4030-ye = Parameter(name = 'ye',
4031- nature = 'internal',
4032- type = 'real',
4033- value = '0',
4034- texname = '\\text{ye}')
4035-
4036-ym = Parameter(name = 'ym',
4037- nature = 'internal',
4038- type = 'real',
4039- value = '0',
4040- texname = '\\text{ym}')
4041-
4042-yup = Parameter(name = 'yup',
4043- nature = 'internal',
4044- type = 'real',
4045- value = '0',
4046- texname = '\\text{yup}')
4047-
4048-ydo = Parameter(name = 'ydo',
4049- nature = 'internal',
4050- type = 'real',
4051- value = '0',
4052- texname = '\\text{ydo}')
4053-
4054-ys = Parameter(name = 'ys',
4055- nature = 'internal',
4056- type = 'real',
4057- value = '0',
4058- texname = '\\text{ys}')
4059+WTau = Parameter(name = 'WTau',
4060+ nature = 'external',
4061+ type = 'real',
4062+ value = 2.27e-12,
4063+ texname = '\\text{WTau}',
4064+ lhablock = 'DECAY',
4065+ lhacode = [ 15 ])
4066
4067 CKM11 = Parameter(name = 'CKM11',
4068 nature = 'internal',
4069 type = 'complex',
4070- value = 'cmath.cos(cabi)',
4071+ value = '1 - lamWS**2/2.',
4072 texname = '\\text{CKM11}')
4073
4074 CKM12 = Parameter(name = 'CKM12',
4075 nature = 'internal',
4076 type = 'complex',
4077- value = 'cmath.sin(cabi)',
4078+ value = 'lamWS',
4079 texname = '\\text{CKM12}')
4080
4081 CKM13 = Parameter(name = 'CKM13',
4082 nature = 'internal',
4083 type = 'complex',
4084- value = '0',
4085+ value = 'AWS*lamWS**3*(-(etaWS*complex(0,1)) + rhoWS)',
4086 texname = '\\text{CKM13}')
4087
4088 CKM21 = Parameter(name = 'CKM21',
4089 nature = 'internal',
4090 type = 'complex',
4091- value = '-cmath.sin(cabi)',
4092+ value = '-lamWS',
4093 texname = '\\text{CKM21}')
4094
4095 CKM22 = Parameter(name = 'CKM22',
4096 nature = 'internal',
4097 type = 'complex',
4098- value = 'cmath.cos(cabi)',
4099+ value = '1 - lamWS**2/2.',
4100 texname = '\\text{CKM22}')
4101
4102 CKM23 = Parameter(name = 'CKM23',
4103 nature = 'internal',
4104 type = 'complex',
4105- value = '0',
4106+ value = 'AWS*lamWS**2',
4107 texname = '\\text{CKM23}')
4108
4109 CKM31 = Parameter(name = 'CKM31',
4110 nature = 'internal',
4111 type = 'complex',
4112- value = '0',
4113+ value = 'AWS*lamWS**3*(1 - etaWS*complex(0,1) - rhoWS)',
4114 texname = '\\text{CKM31}')
4115
4116 CKM32 = Parameter(name = 'CKM32',
4117 nature = 'internal',
4118 type = 'complex',
4119- value = '0',
4120+ value = '-(AWS*lamWS**2)',
4121 texname = '\\text{CKM32}')
4122
4123 CKM33 = Parameter(name = 'CKM33',
4124@@ -305,6 +279,18 @@
4125 value = '1',
4126 texname = '\\text{CKM33}')
4127
4128+aEW = Parameter(name = 'aEW',
4129+ nature = 'internal',
4130+ type = 'real',
4131+ value = '1/aEWM1',
4132+ texname = '\\text{aEW}')
4133+
4134+G = Parameter(name = 'G',
4135+ nature = 'internal',
4136+ type = 'real',
4137+ value = '2*cmath.sqrt(aS)*cmath.sqrt(cmath.pi)',
4138+ texname = 'G')
4139+
4140 MW = Parameter(name = 'MW',
4141 nature = 'internal',
4142 type = 'real',
4143@@ -371,6 +357,18 @@
4144 value = '(ymc*cmath.sqrt(2))/v',
4145 texname = '\\text{yc}')
4146
4147+ye = Parameter(name = 'ye',
4148+ nature = 'internal',
4149+ type = 'real',
4150+ value = '(yme*cmath.sqrt(2))/v',
4151+ texname = '\\text{ye}')
4152+
4153+ym = Parameter(name = 'ym',
4154+ nature = 'internal',
4155+ type = 'real',
4156+ value = '(ymm*cmath.sqrt(2))/v',
4157+ texname = '\\text{ym}')
4158+
4159 yt = Parameter(name = 'yt',
4160 nature = 'internal',
4161 type = 'real',
4162@@ -387,5 +385,5 @@
4163 nature = 'internal',
4164 type = 'real',
4165 value = 'cmath.sqrt(lam*v**2)',
4166- texname = '\\mu ')
4167+ texname = '\\mu')
4168
4169
4170=== modified file 'models/sm/particles.py'
4171--- models/sm/particles.py 2011-04-02 05:34:20 +0000
4172+++ models/sm/particles.py 2011-07-22 20:26:18 +0000
4173@@ -1,6 +1,6 @@
4174-# This file was automatically created by FeynRules $Revision: 535 $
4175-# Mathematica version: 7.0 for Mac OS X x86 (64-bit) (November 11, 2008)
4176-# Date: Fri 18 Mar 2011 18:40:51
4177+# This file was automatically created by FeynRules $Revision: 634 $
4178+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
4179+# Date: Wed 6 Jul 2011 14:07:37
4180
4181
4182 from __future__ import division
4183@@ -52,57 +52,12 @@
4184
4185 vt__tilde__ = vt.anti()
4186
4187-e__minus__ = Particle(pdg_code = 11,
4188- name = 'e-',
4189- antiname = 'e+',
4190- spin = 2,
4191- color = 1,
4192- mass = Param.Me,
4193- width = Param.ZERO,
4194- texname = 'e-',
4195- antitexname = 'e-',
4196- charge = -1,
4197- LeptonNumber = 1,
4198- GhostNumber = 0)
4199-
4200-e__plus__ = e__minus__.anti()
4201-
4202-m__minus__ = Particle(pdg_code = 13,
4203- name = 'm-',
4204- antiname = 'm+',
4205- spin = 2,
4206- color = 1,
4207- mass = Param.MM,
4208- width = Param.ZERO,
4209- texname = 'm-',
4210- antitexname = 'm-',
4211- charge = -1,
4212- LeptonNumber = 1,
4213- GhostNumber = 0)
4214-
4215-m__plus__ = m__minus__.anti()
4216-
4217-tt__minus__ = Particle(pdg_code = 15,
4218- name = 'tt-',
4219- antiname = 'tt+',
4220- spin = 2,
4221- color = 1,
4222- mass = Param.MTA,
4223- width = Param.WTA,
4224- texname = 'tt-',
4225- antitexname = 'tt-',
4226- charge = -1,
4227- LeptonNumber = 1,
4228- GhostNumber = 0)
4229-
4230-tt__plus__ = tt__minus__.anti()
4231-
4232 u = Particle(pdg_code = 2,
4233 name = 'u',
4234 antiname = 'u~',
4235 spin = 2,
4236 color = 3,
4237- mass = Param.MU,
4238+ mass = Param.ZERO,
4239 width = Param.ZERO,
4240 texname = 'u',
4241 antitexname = 'u',
4242@@ -147,7 +102,7 @@
4243 antiname = 'd~',
4244 spin = 2,
4245 color = 3,
4246- mass = Param.MD,
4247+ mass = Param.ZERO,
4248 width = Param.ZERO,
4249 texname = 'd',
4250 antitexname = 'd',
4251@@ -162,7 +117,7 @@
4252 antiname = 's~',
4253 spin = 2,
4254 color = 3,
4255- mass = Param.MS,
4256+ mass = Param.ZERO,
4257 width = Param.ZERO,
4258 texname = 's',
4259 antitexname = 's',
4260@@ -359,3 +314,48 @@
4261
4262 phi__minus__ = phi__plus__.anti()
4263
4264+e__minus__ = Particle(pdg_code = 11,
4265+ name = 'e-',
4266+ antiname = 'e+',
4267+ spin = 2,
4268+ color = 1,
4269+ mass = Param.Me,
4270+ width = Param.ZERO,
4271+ texname = 'e-',
4272+ antitexname = 'e-',
4273+ charge = -1,
4274+ LeptonNumber = 1,
4275+ GhostNumber = 0)
4276+
4277+e__plus__ = e__minus__.anti()
4278+
4279+m__minus__ = Particle(pdg_code = 13,
4280+ name = 'm-',
4281+ antiname = 'm+',
4282+ spin = 2,
4283+ color = 1,
4284+ mass = Param.MM,
4285+ width = Param.ZERO,
4286+ texname = 'm-',
4287+ antitexname = 'm-',
4288+ charge = -1,
4289+ LeptonNumber = 1,
4290+ GhostNumber = 0)
4291+
4292+m__plus__ = m__minus__.anti()
4293+
4294+tt__minus__ = Particle(pdg_code = 15,
4295+ name = 'tt-',
4296+ antiname = 'tt+',
4297+ spin = 2,
4298+ color = 1,
4299+ mass = Param.MTA,
4300+ width = Param.WTau,
4301+ texname = 'tt-',
4302+ antitexname = 'tt-',
4303+ charge = -1,
4304+ LeptonNumber = 1,
4305+ GhostNumber = 0)
4306+
4307+tt__plus__ = tt__minus__.anti()
4308+
4309
4310=== added file 'models/sm/restrict_ckm.dat'
4311--- models/sm/restrict_ckm.dat 1970-01-01 00:00:00 +0000
4312+++ models/sm/restrict_ckm.dat 2011-07-22 20:26:18 +0000
4313@@ -0,0 +1,53 @@
4314+######################################################################
4315+## PARAM_CARD AUTOMATICALY GENERATED BY THE UFO #####################
4316+######################################################################
4317+
4318+###################################
4319+## INFORMATION FOR SMINPUTS
4320+###################################
4321+Block SMINPUTS
4322+ 1 1.325070e+02 # aEWM1
4323+ 2 1.166390e-05 # Gf
4324+ 3 1.180000e-01 # aS
4325+
4326+###################################
4327+## INFORMATION FOR MASS
4328+###################################
4329+Block MASS
4330+ 4 0.000000e+00 # MC
4331+ 5 4.700000e+00 # MB
4332+ 6 1.730000e+02 # MT
4333+ 11 0.000000e+00 # Me
4334+ 13 0.000000e+00 # MM
4335+ 15 1.777000e+00 # MTA
4336+ 23 9.118800e+01 # MZ
4337+ 25 1.200000e+02 # MH
4338+
4339+###################################
4340+## INFORMATION FOR DECAY
4341+###################################
4342+DECAY 6 1.491500E+00
4343+DECAY 15 0.000000e+00
4344+DECAY 23 2.441404e+00
4345+DECAY 24 2.047600e+00
4346+DECAY 25 5.753088e-03
4347+
4348+###################################
4349+## INFORMATION FOR WOLFENSTEIN
4350+###################################
4351+Block Wolfenstein
4352+ 1 2.253000e-01 # lamWS
4353+ 2 8.080000e-01 # AWS
4354+ 3 1.320000e-01 # rhoWS
4355+ 4 3.410000e-01 # etaWS
4356+
4357+###################################
4358+## INFORMATION FOR YUKAWA
4359+###################################
4360+Block YUKAWA
4361+ 4 0.000000e+00 # ymc
4362+ 5 4.200000e+00 # ymb
4363+ 6 1.645000e+02 # ymt
4364+ 11 0.000000e+00 # yme
4365+ 13 0.000000e+00 # ymm
4366+ 15 1.777000e+00 # ymtau
4367
4368=== modified file 'models/sm/restrict_default.dat'
4369--- models/sm/restrict_default.dat 2011-05-28 20:11:29 +0000
4370+++ models/sm/restrict_default.dat 2011-07-22 20:26:18 +0000
4371@@ -3,49 +3,51 @@
4372 ######################################################################
4373
4374 ###################################
4375+## INFORMATION FOR SMINPUTS
4376+###################################
4377+Block SMINPUTS
4378+ 1 1.325070e+02 # aEWM1
4379+ 2 1.166390e-05 # Gf
4380+ 3 1.180000e-01 # aS
4381+
4382+###################################
4383 ## INFORMATION FOR MASS
4384 ###################################
4385 Block MASS
4386- 11 0.000000e-00 # Me
4387- 13 0.000000e-01 # MM
4388- 15 1.777000e+00 # MTA
4389- 2 0.000000e-03 # MU
4390 4 0.000000e+00 # MC
4391- 6 1.720000e+02 # MT
4392- 1 0.000000e-03 # MD
4393- 3 0.000000e-01 # MS
4394 5 4.700000e+00 # MB
4395+ 6 1.730000e+02 # MT
4396+ 11 0.000000e+00 # Me
4397+ 13 0.000000e+00 # MM
4398+ 15 1.777000e+00 # MTA
4399 23 9.118800e+01 # MZ
4400 25 1.200000e+02 # MH
4401
4402 ###################################
4403-## INFORMATION FOR CKMBLOCK
4404+## INFORMATION FOR DECAY
4405 ###################################
4406-Block CKMBLOCK
4407- 1 0.000000e-01 # cabi
4408+DECAY 6 1.491500E+00
4409+DECAY 15 0.000000e+00
4410+DECAY 23 2.441404e+00
4411+DECAY 24 2.047600e+00
4412+DECAY 25 5.753088e-03
4413
4414 ###################################
4415-## INFORMATION FOR SMINPUTS
4416+## INFORMATION FOR WOLFENSTEIN
4417 ###################################
4418-Block SMINPUTS
4419- 1 1.325070e+02 # aEWM1
4420- 2 1.166390e-05 # Gf
4421- 3 1.18000e-01 # aS
4422+Block Wolfenstein
4423+ 1 0.000000e+00 # lamWS
4424+ 2 0.000000e+00 # AWS
4425+ 3 0.000000e+00 # rhoWS
4426+ 4 0.000000e+00 # etaWS
4427
4428 ###################################
4429 ## INFORMATION FOR YUKAWA
4430 ###################################
4431 Block YUKAWA
4432- 4 0.00000e+00 # ymc
4433+ 4 0.000000e+00 # ymc
4434 5 4.200000e+00 # ymb
4435 6 1.645000e+02 # ymt
4436+ 11 0.000000e+00 # yme
4437+ 13 0.000000e+00 # ymm
4438 15 1.777000e+00 # ymtau
4439-
4440-###################################
4441-## INFORMATION FOR DECAY
4442-###################################
4443-DECAY 6 1.439478E+00 # WT
4444-DECAY 15 0.000000e+00 # WTA
4445-DECAY 23 2.441404e+00 # WZ
4446-DECAY 24 2.047600e+00 # WW
4447-DECAY 25 5.753088e-03 # WH
4448
4449=== modified file 'models/sm/restrict_no_b_mass.dat'
4450--- models/sm/restrict_no_b_mass.dat 2011-04-18 19:06:57 +0000
4451+++ models/sm/restrict_no_b_mass.dat 2011-07-22 20:26:18 +0000
4452@@ -3,48 +3,51 @@
4453 ######################################################################
4454
4455 ###################################
4456+## INFORMATION FOR SMINPUTS
4457+###################################
4458+Block SMINPUTS
4459+ 1 1.325070e+02 # aEWM1
4460+ 2 1.166390e-05 # Gf
4461+ 3 1.180000e-01 # aS
4462+
4463+###################################
4464 ## INFORMATION FOR MASS
4465 ###################################
4466 Block MASS
4467- 11 0.000000e-00 # Me
4468- 13 0.000000e-01 # MM
4469- 15 1.777000e+00 # MTA
4470- 2 0.000000e-03 # MU
4471 4 0.000000e+00 # MC
4472- 6 1.743000e+02 # MT
4473- 1 0.000000e-03 # MD
4474- 3 0.000000e-01 # MS
4475 5 0.000000e+00 # MB
4476+ 6 1.730000e+02 # MT
4477+ 11 0.000000e+00 # Me
4478+ 13 0.000000e+00 # MM
4479+ 15 1.777000e+00 # MTA
4480 23 9.118800e+01 # MZ
4481 25 1.200000e+02 # MH
4482
4483 ###################################
4484-## INFORMATION FOR CKMBLOCK
4485+## INFORMATION FOR DECAY
4486 ###################################
4487-Block CKMBLOCK
4488- 1 0.000000e-01 # cabi
4489+DECAY 6 1.491500E+00
4490+DECAY 15 0.000000e+00
4491+DECAY 23 2.441404e+00
4492+DECAY 24 2.047600e+00
4493+DECAY 25 5.753088e-03
4494
4495 ###################################
4496-## INFORMATION FOR SMINPUTS
4497+## INFORMATION FOR WOLFENSTEIN
4498 ###################################
4499-Block SMINPUTS
4500- 1 1.325070e+02 # aEWM1
4501- 2 1.166390e-05 # Gf
4502- 3 1.18000e-01 # aS
4503+Block Wolfenstein
4504+ 1 0.000000e+00 # lamWS
4505+ 2 0.000000e+00 # AWS
4506+ 3 0.000000e+00 # rhoWS
4507+ 4 0.000000e+00 # etaWS
4508
4509 ###################################
4510 ## INFORMATION FOR YUKAWA
4511 ###################################
4512 Block YUKAWA
4513- 4 0.00000e+00 # ymc
4514+ 4 0.000000e+00 # ymc
4515 5 0.000000e+00 # ymb
4516- 6 1.743000e+02 # ymt
4517+ 6 1.645000e+02 # ymt
4518+ 11 0.000000e+00 # yme
4519+ 13 0.000000e+00 # ymm
4520 15 1.777000e+00 # ymtau
4521-
4522-###################################
4523-## INFORMATION FOR DECAY
4524-###################################
4525-DECAY 6 1.508336e+00 # WT
4526-DECAY 23 2.441404e+00 # WZ
4527-DECAY 24 2.047600e+00 # WW
4528-DECAY 25 5.753088e-03 # WH
4529
4530=== modified file 'models/sm/restrict_no_masses.dat'
4531--- models/sm/restrict_no_masses.dat 2011-03-03 00:29:37 +0000
4532+++ models/sm/restrict_no_masses.dat 2011-07-22 20:26:18 +0000
4533@@ -3,48 +3,51 @@
4534 ######################################################################
4535
4536 ###################################
4537+## INFORMATION FOR SMINPUTS
4538+###################################
4539+Block SMINPUTS
4540+ 1 1.325070e+02 # aEWM1
4541+ 2 1.166390e-05 # Gf
4542+ 3 1.180000e-01 # aS
4543+
4544+###################################
4545 ## INFORMATION FOR MASS
4546 ###################################
4547 Block MASS
4548- 11 0.000000e-00 # Me
4549- 13 0.000000e-01 # MM
4550- 15 0.000000e+00 # MTA
4551- 2 0.000000e-03 # MU
4552 4 0.000000e+00 # MC
4553- 6 1.743000e+02 # MT
4554- 1 0.000000e-03 # MD
4555- 3 0.000000e-01 # MS
4556 5 0.000000e+00 # MB
4557+ 6 1.730000e+02 # MT
4558+ 11 0.000000e+00 # Me
4559+ 13 0.000000e+00 # MM
4560+ 15 0.000000e+00 # MTA
4561 23 9.118800e+01 # MZ
4562 25 1.200000e+02 # MH
4563
4564 ###################################
4565-## INFORMATION FOR CKMBLOCK
4566+## INFORMATION FOR DECAY
4567 ###################################
4568-Block CKMBLOCK
4569- 1 0.000000e-01 # cabi
4570+DECAY 6 1.491500E+00
4571+DECAY 15 0.000000e+00
4572+DECAY 23 2.441404e+00
4573+DECAY 24 2.047600e+00
4574+DECAY 25 5.753088e-03
4575
4576 ###################################
4577-## INFORMATION FOR SMINPUTS
4578+## INFORMATION FOR WOLFENSTEIN
4579 ###################################
4580-Block SMINPUTS
4581- 1 1.325070e+02 # aEWM1
4582- 2 1.166390e-05 # Gf
4583- 3 1.18000e-01 # aS
4584+Block Wolfenstein
4585+ 1 0.000000e+00 # lamWS
4586+ 2 0.000000e+00 # AWS
4587+ 3 0.000000e+00 # rhoWS
4588+ 4 0.000000e+00 # etaWS
4589
4590 ###################################
4591 ## INFORMATION FOR YUKAWA
4592 ###################################
4593 Block YUKAWA
4594- 4 0.00000e+00 # ymc
4595+ 4 0.000000e+00 # ymc
4596 5 0.000000e+00 # ymb
4597- 6 1.743000e+02 # ymt
4598+ 6 1.645000e+02 # ymt
4599+ 11 0.000000e+00 # yme
4600+ 13 0.000000e+00 # ymm
4601 15 0.000000e+00 # ymtau
4602-
4603-###################################
4604-## INFORMATION FOR DECAY
4605-###################################
4606-DECAY 6 1.508336e+00 # WT
4607-DECAY 23 2.441404e+00 # WZ
4608-DECAY 24 2.047600e+00 # WW
4609-DECAY 25 5.753088e-03 # WH
4610
4611=== modified file 'models/sm/restrict_no_tau_mass.dat'
4612--- models/sm/restrict_no_tau_mass.dat 2011-04-18 19:06:57 +0000
4613+++ models/sm/restrict_no_tau_mass.dat 2011-07-22 20:26:18 +0000
4614@@ -3,48 +3,51 @@
4615 ######################################################################
4616
4617 ###################################
4618+## INFORMATION FOR SMINPUTS
4619+###################################
4620+Block SMINPUTS
4621+ 1 1.325070e+02 # aEWM1
4622+ 2 1.166390e-05 # Gf
4623+ 3 1.180000e-01 # aS
4624+
4625+###################################
4626 ## INFORMATION FOR MASS
4627 ###################################
4628 Block MASS
4629- 11 0.000000e-00 # Me
4630- 13 0.000000e-01 # MM
4631- 15 0.000000e-01 # MTA
4632- 2 0.000000e-03 # MU
4633 4 0.000000e+00 # MC
4634- 6 1.743000e+02 # MT
4635- 1 0.000000e-03 # MD
4636- 3 0.000000e-01 # MS
4637 5 4.700000e+00 # MB
4638+ 6 1.730000e+02 # MT
4639+ 11 0.000000e+00 # Me
4640+ 13 0.000000e+00 # MM
4641+ 15 0.000000e+00 # MTA
4642 23 9.118800e+01 # MZ
4643 25 1.200000e+02 # MH
4644
4645 ###################################
4646-## INFORMATION FOR CKMBLOCK
4647+## INFORMATION FOR DECAY
4648 ###################################
4649-Block CKMBLOCK
4650- 1 0.000000e-01 # cabi
4651+DECAY 6 1.491500E+00
4652+DECAY 15 0.000000e+00
4653+DECAY 23 2.441404e+00
4654+DECAY 24 2.047600e+00
4655+DECAY 25 5.753088e-03
4656
4657 ###################################
4658-## INFORMATION FOR SMINPUTS
4659+## INFORMATION FOR WOLFENSTEIN
4660 ###################################
4661-Block SMINPUTS
4662- 1 1.325070e+02 # aEWM1
4663- 2 1.166390e-05 # Gf
4664- 3 1.18000e-01 # aS
4665+Block Wolfenstein
4666+ 1 0.000000e+00 # lamWS
4667+ 2 0.000000e+00 # AWS
4668+ 3 0.000000e+00 # rhoWS
4669+ 4 0.000000e+00 # etaWS
4670
4671 ###################################
4672 ## INFORMATION FOR YUKAWA
4673 ###################################
4674 Block YUKAWA
4675- 4 0.00000e+00 # ymc
4676+ 4 0.000000e+00 # ymc
4677 5 4.200000e+00 # ymb
4678- 6 1.743000e+02 # ymt
4679+ 6 1.645000e+02 # ymt
4680+ 11 0.000000e+00 # yme
4681+ 13 0.000000e+00 # ymm
4682 15 0.000000e+00 # ymtau
4683-
4684-###################################
4685-## INFORMATION FOR DECAY
4686-###################################
4687-DECAY 6 1.508336e+00 # WT
4688-DECAY 23 2.441404e+00 # WZ
4689-DECAY 24 2.047600e+00 # WW
4690-DECAY 25 5.753088e-03 # WH
4691
4692=== added file 'models/sm/restrict_zeromass_ckm.dat'
4693--- models/sm/restrict_zeromass_ckm.dat 1970-01-01 00:00:00 +0000
4694+++ models/sm/restrict_zeromass_ckm.dat 2011-07-22 20:26:18 +0000
4695@@ -0,0 +1,53 @@
4696+######################################################################
4697+## PARAM_CARD AUTOMATICALY GENERATED BY THE UFO #####################
4698+######################################################################
4699+
4700+###################################
4701+## INFORMATION FOR SMINPUTS
4702+###################################
4703+Block SMINPUTS
4704+ 1 1.325070e+02 # aEWM1
4705+ 2 1.166390e-05 # Gf
4706+ 3 1.180000e-01 # aS
4707+
4708+###################################
4709+## INFORMATION FOR MASS
4710+###################################
4711+Block MASS
4712+ 4 0.000000e+00 # MC
4713+ 5 0.000000e+00 # MB
4714+ 6 1.730000e+02 # MT
4715+ 11 0.000000e+00 # Me
4716+ 13 0.000000e+00 # MM
4717+ 15 0.000000e+00 # MTA
4718+ 23 9.118800e+01 # MZ
4719+ 25 1.200000e+02 # MH
4720+
4721+###################################
4722+## INFORMATION FOR DECAY
4723+###################################
4724+DECAY 6 1.491500E+00
4725+DECAY 15 0.000000e+00
4726+DECAY 23 2.441404e+00
4727+DECAY 24 2.047600e+00
4728+DECAY 25 5.753088e-03
4729+
4730+###################################
4731+## INFORMATION FOR WOLFENSTEIN
4732+###################################
4733+Block Wolfenstein
4734+ 1 2.253000e-01 # lamWS
4735+ 2 8.080000e-01 # AWS
4736+ 3 1.320000e-01 # rhoWS
4737+ 4 3.410000e-01 # etaWS
4738+
4739+###################################
4740+## INFORMATION FOR YUKAWA
4741+###################################
4742+Block YUKAWA
4743+ 4 0.000000e+00 # ymc
4744+ 5 0.000000e+00 # ymb
4745+ 6 1.645000e+02 # ymt
4746+ 11 0.000000e+00 # yme
4747+ 13 0.000000e+00 # ymm
4748+ 15 0.000000e+00 # ymtau
4749
4750=== modified file 'models/sm/vertices.py'
4751--- models/sm/vertices.py 2011-03-18 18:04:05 +0000
4752+++ models/sm/vertices.py 2011-07-22 20:26:18 +0000
4753@@ -1,6 +1,6 @@
4754-# This file was automatically created by FeynRules $Revision: 535 $
4755-# Mathematica version: 7.0 for Mac OS X x86 (64-bit) (November 11, 2008)
4756-# Date: Fri 18 Mar 2011 18:40:51
4757+# This file was automatically created by FeynRules $Revision: 634 $
4758+# Mathematica version: 8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
4759+# Date: Wed 6 Jul 2011 14:07:37
4760
4761
4762 from object_library import all_vertices, Vertex
4763@@ -10,980 +10,428 @@
4764
4765
4766 V_1 = Vertex(name = 'V_1',
4767- particles = [ P.H, P.H, P.H, P.H ],
4768+ particles = [ P.H, P.H, P.H ],
4769 color = [ '1' ],
4770- lorentz = [ L.SSSS1 ],
4771- couplings = {(0,0):C.GC_17})
4772+ lorentz = [ L.SSS1 ],
4773+ couplings = {(0,0):C.GC_30})
4774
4775 V_2 = Vertex(name = 'V_2',
4776- particles = [ P.H, P.H, P.phi0, P.phi0 ],
4777- color = [ '1' ],
4778- lorentz = [ L.SSSS1 ],
4779- couplings = {(0,0):C.GC_15})
4780+ particles = [ P.ghG, P.ghG__tilde__, P.G ],
4781+ color = [ 'f(3,1,2)' ],
4782+ lorentz = [ L.UUV1 ],
4783+ couplings = {(0,0):C.GC_4})
4784
4785 V_3 = Vertex(name = 'V_3',
4786- particles = [ P.phi0, P.phi0, P.phi0, P.phi0 ],
4787- color = [ '1' ],
4788- lorentz = [ L.SSSS1 ],
4789- couplings = {(0,0):C.GC_17})
4790+ particles = [ P.G, P.G, P.G ],
4791+ color = [ 'f(1,2,3)' ],
4792+ lorentz = [ L.VVV1 ],
4793+ couplings = {(0,0):C.GC_4})
4794
4795 V_4 = Vertex(name = 'V_4',
4796- particles = [ P.H, P.H, P.phi__minus__, P.phi__plus__ ],
4797- color = [ '1' ],
4798- lorentz = [ L.SSSS1 ],
4799- couplings = {(0,0):C.GC_15})
4800+ particles = [ P.G, P.G, P.G, P.G ],
4801+ 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)' ],
4802+ lorentz = [ L.VVVV1, L.VVVV3, L.VVVV4 ],
4803+ couplings = {(1,1):C.GC_6,(0,0):C.GC_6,(2,2):C.GC_6})
4804
4805 V_5 = Vertex(name = 'V_5',
4806- particles = [ P.phi0, P.phi0, P.phi__minus__, P.phi__plus__ ],
4807+ particles = [ P.A, P.W__minus__, P.W__plus__ ],
4808 color = [ '1' ],
4809- lorentz = [ L.SSSS1 ],
4810- couplings = {(0,0):C.GC_15})
4811+ lorentz = [ L.VVV1 ],
4812+ couplings = {(0,0):C.GC_25})
4813
4814 V_6 = Vertex(name = 'V_6',
4815- particles = [ P.phi__minus__, P.phi__minus__, P.phi__plus__, P.phi__plus__ ],
4816+ particles = [ P.W__minus__, P.W__plus__, P.H, P.H ],
4817 color = [ '1' ],
4818- lorentz = [ L.SSSS1 ],
4819- couplings = {(0,0):C.GC_16})
4820+ lorentz = [ L.VVSS1 ],
4821+ couplings = {(0,0):C.GC_10})
4822
4823 V_7 = Vertex(name = 'V_7',
4824- particles = [ P.H, P.H, P.H ],
4825+ particles = [ P.W__minus__, P.W__plus__, P.H ],
4826 color = [ '1' ],
4827- lorentz = [ L.SSS1 ],
4828- couplings = {(0,0):C.GC_63})
4829+ lorentz = [ L.VVS1 ],
4830+ couplings = {(0,0):C.GC_31})
4831
4832 V_8 = Vertex(name = 'V_8',
4833- particles = [ P.H, P.phi0, P.phi0 ],
4834+ particles = [ P.A, P.A, P.W__minus__, P.W__plus__ ],
4835 color = [ '1' ],
4836- lorentz = [ L.SSS1 ],
4837- couplings = {(0,0):C.GC_62})
4838+ lorentz = [ L.VVVV2 ],
4839+ couplings = {(0,0):C.GC_27})
4840
4841 V_9 = Vertex(name = 'V_9',
4842- particles = [ P.H, P.phi__minus__, P.phi__plus__ ],
4843+ particles = [ P.W__minus__, P.W__plus__, P.Z ],
4844 color = [ '1' ],
4845- lorentz = [ L.SSS1 ],
4846- couplings = {(0,0):C.GC_62})
4847+ lorentz = [ L.VVV1 ],
4848+ couplings = {(0,0):C.GC_7})
4849
4850 V_10 = Vertex(name = 'V_10',
4851- particles = [ P.A, P.A, P.phi__minus__, P.phi__plus__ ],
4852+ particles = [ P.W__minus__, P.W__minus__, P.W__plus__, P.W__plus__ ],
4853 color = [ '1' ],
4854- lorentz = [ L.VVSS1 ],
4855- couplings = {(0,0):C.GC_5})
4856+ lorentz = [ L.VVVV2 ],
4857+ couplings = {(0,0):C.GC_8})
4858
4859 V_11 = Vertex(name = 'V_11',
4860- particles = [ P.A, P.phi__minus__, P.phi__plus__ ],
4861+ particles = [ P.A, P.W__minus__, P.W__plus__, P.Z ],
4862 color = [ '1' ],
4863- lorentz = [ L.VSS1 ],
4864- couplings = {(0,0):C.GC_3})
4865+ lorentz = [ L.VVVV5 ],
4866+ couplings = {(0,0):C.GC_26})
4867
4868 V_12 = Vertex(name = 'V_12',
4869- particles = [ P.ghA, P.ghWm__tilde__, P.W__minus__ ],
4870+ particles = [ P.Z, P.Z, P.H, P.H ],
4871 color = [ '1' ],
4872- lorentz = [ L.UUV1 ],
4873- couplings = {(0,0):C.GC_3})
4874+ lorentz = [ L.VVSS1 ],
4875+ couplings = {(0,0):C.GC_29})
4876
4877 V_13 = Vertex(name = 'V_13',
4878- particles = [ P.ghA, P.ghWp__tilde__, P.W__plus__ ],
4879+ particles = [ P.Z, P.Z, P.H ],
4880 color = [ '1' ],
4881- lorentz = [ L.UUV1 ],
4882- couplings = {(0,0):C.GC_4})
4883+ lorentz = [ L.VVS1 ],
4884+ couplings = {(0,0):C.GC_32})
4885
4886 V_14 = Vertex(name = 'V_14',
4887- particles = [ P.ghWm, P.ghA__tilde__, P.phi__plus__ ],
4888+ particles = [ P.W__minus__, P.W__plus__, P.Z, P.Z ],
4889 color = [ '1' ],
4890- lorentz = [ L.UUS1 ],
4891- couplings = {(0,0):C.GC_19})
4892+ lorentz = [ L.VVVV2 ],
4893+ couplings = {(0,0):C.GC_9})
4894
4895 V_15 = Vertex(name = 'V_15',
4896- particles = [ P.ghWm, P.ghA__tilde__, P.W__plus__ ],
4897- color = [ '1' ],
4898- lorentz = [ L.UUV1 ],
4899- couplings = {(0,0):C.GC_3})
4900+ particles = [ P.d__tilde__, P.d, P.A ],
4901+ color = [ 'Identity(1,2)' ],
4902+ lorentz = [ L.FFV1 ],
4903+ couplings = {(0,0):C.GC_1})
4904
4905 V_16 = Vertex(name = 'V_16',
4906- particles = [ P.ghWm, P.ghWm__tilde__, P.H ],
4907- color = [ '1' ],
4908- lorentz = [ L.UUS1 ],
4909- couplings = {(0,0):C.GC_42})
4910+ particles = [ P.s__tilde__, P.s, P.A ],
4911+ color = [ 'Identity(1,2)' ],
4912+ lorentz = [ L.FFV1 ],
4913+ couplings = {(0,0):C.GC_1})
4914
4915 V_17 = Vertex(name = 'V_17',
4916- particles = [ P.ghWm, P.ghWm__tilde__, P.phi0 ],
4917- color = [ '1' ],
4918- lorentz = [ L.UUS1 ],
4919- couplings = {(0,0):C.GC_41})
4920+ particles = [ P.b__tilde__, P.b, P.A ],
4921+ color = [ 'Identity(1,2)' ],
4922+ lorentz = [ L.FFV1 ],
4923+ couplings = {(0,0):C.GC_1})
4924
4925 V_18 = Vertex(name = 'V_18',
4926- particles = [ P.ghWm, P.ghWm__tilde__, P.A ],
4927+ particles = [ P.e__plus__, P.e__minus__, P.A ],
4928 color = [ '1' ],
4929- lorentz = [ L.UUV1 ],
4930- couplings = {(0,0):C.GC_4})
4931+ lorentz = [ L.FFV1 ],
4932+ couplings = {(0,0):C.GC_3})
4933
4934 V_19 = Vertex(name = 'V_19',
4935- particles = [ P.ghWm, P.ghWm__tilde__, P.Z ],
4936+ particles = [ P.m__plus__, P.m__minus__, P.A ],
4937 color = [ '1' ],
4938- lorentz = [ L.UUV1 ],
4939- couplings = {(0,0):C.GC_37})
4940+ lorentz = [ L.FFV1 ],
4941+ couplings = {(0,0):C.GC_3})
4942
4943 V_20 = Vertex(name = 'V_20',
4944- particles = [ P.ghWm, P.ghZ__tilde__, P.phi__plus__ ],
4945+ particles = [ P.tt__plus__, P.tt__minus__, P.A ],
4946 color = [ '1' ],
4947- lorentz = [ L.UUS1 ],
4948- couplings = {(0,0):C.GC_56})
4949+ lorentz = [ L.FFV1 ],
4950+ couplings = {(0,0):C.GC_3})
4951
4952 V_21 = Vertex(name = 'V_21',
4953- particles = [ P.ghWm, P.ghZ__tilde__, P.W__plus__ ],
4954- color = [ '1' ],
4955- lorentz = [ L.UUV1 ],
4956- couplings = {(0,0):C.GC_36})
4957+ particles = [ P.u__tilde__, P.u, P.A ],
4958+ color = [ 'Identity(1,2)' ],
4959+ lorentz = [ L.FFV1 ],
4960+ couplings = {(0,0):C.GC_2})
4961
4962 V_22 = Vertex(name = 'V_22',
4963- particles = [ P.ghWp, P.ghA__tilde__, P.phi__minus__ ],
4964- color = [ '1' ],
4965- lorentz = [ L.UUS1 ],
4966- couplings = {(0,0):C.GC_18})
4967+ particles = [ P.c__tilde__, P.c, P.A ],
4968+ color = [ 'Identity(1,2)' ],
4969+ lorentz = [ L.FFV1 ],
4970+ couplings = {(0,0):C.GC_2})
4971
4972 V_23 = Vertex(name = 'V_23',
4973- particles = [ P.ghWp, P.ghA__tilde__, P.W__minus__ ],
4974- color = [ '1' ],
4975- lorentz = [ L.UUV1 ],
4976- couplings = {(0,0):C.GC_4})
4977+ particles = [ P.t__tilde__, P.t, P.A ],
4978+ color = [ 'Identity(1,2)' ],
4979+ lorentz = [ L.FFV1 ],
4980+ couplings = {(0,0):C.GC_2})
4981
4982 V_24 = Vertex(name = 'V_24',
4983- particles = [ P.ghWp, P.ghWp__tilde__, P.H ],
4984- color = [ '1' ],
4985- lorentz = [ L.UUS1 ],
4986- couplings = {(0,0):C.GC_42})
4987+ particles = [ P.d__tilde__, P.d, P.G ],
4988+ color = [ 'T(3,2,1)' ],
4989+ lorentz = [ L.FFV1 ],
4990+ couplings = {(0,0):C.GC_5})
4991
4992 V_25 = Vertex(name = 'V_25',
4993- particles = [ P.ghWp, P.ghWp__tilde__, P.phi0 ],
4994- color = [ '1' ],
4995- lorentz = [ L.UUS1 ],
4996- couplings = {(0,0):C.GC_43})
4997+ particles = [ P.s__tilde__, P.s, P.G ],
4998+ color = [ 'T(3,2,1)' ],
4999+ lorentz = [ L.FFV1 ],
5000+ couplings = {(0,0):C.GC_5})
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches