Package madgraph :: Package core :: Module diagram_generation :: Class MultiProcess
[hide private]
[frames] | no frames]

Class MultiProcess

source code

            object --+        
                     |        
                  dict --+    
                         |    
base_objects.PhysicsObject --+
                             |
                            MultiProcess

MultiProcess: list of process definitions list of processes (after cleaning) list of amplitudes (after generation)

Nested Classes [hide private]

Inherited from base_objects.PhysicsObject: PhysicsObjectError

Instance Methods [hide private]
 
default_setup(self)
Default values for all properties
source code
new empty dictionary

__init__(self, argument=None, collect_mirror_procs=False, ignore_six_quark_processes=[])
Allow initialization with ProcessDefinition or ProcessDefinitionList
source code
 
filter(self, name, value)
Filter for valid process property values.
source code
D[k] if k in D, else d
get(self, name)
Get the value of the property name.
source code
 
get_sorted_keys(self)
Return process property names as a nicely sorted list.
source code

Inherited from base_objects.PhysicsObject: __getitem__, __repr__, __str__, is_valid_prop, set

Inherited from dict: __cmp__, __contains__, __delitem__, __eq__, __ge__, __getattribute__, __gt__, __iter__, __le__, __len__, __lt__, __ne__, __new__, __setitem__, __sizeof__, clear, copy, fromkeys, has_key, items, iteritems, iterkeys, itervalues, keys, pop, popitem, setdefault, update, values

Inherited from object: __delattr__, __format__, __reduce__, __reduce_ex__, __setattr__, __subclasshook__

Static Methods [hide private]
 
generate_multi_amplitudes(process_definition, collect_mirror_procs=False, ignore_six_quark_processes=[])
Generate amplitudes in a semi-efficient way.
source code
 
find_optimal_process_orders(process_definition)
Find the minimal WEIGHTED order for this set of processes.
source code
 
cross_amplitude(amplitude, process, org_perm, new_perm)
Return the amplitude crossed with the permutation new_perm
source code
Class Variables [hide private]

Inherited from dict: __hash__

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

default_setup(self)

source code 

Default values for all properties

Overrides: base_objects.PhysicsObject.default_setup

__init__(self, argument=None, collect_mirror_procs=False, ignore_six_quark_processes=[])
(Constructor)

source code 

Allow initialization with ProcessDefinition or ProcessDefinitionList

Returns:
new empty dictionary

Overrides: object.__init__

filter(self, name, value)

source code 

Filter for valid process property values.

Overrides: base_objects.PhysicsObject.filter

get(self, name)

source code 

Get the value of the property name.

Returns: D[k] if k in D, else d
Overrides: dict.get

get_sorted_keys(self)

source code 

Return process property names as a nicely sorted list.

Overrides: base_objects.PhysicsObject.get_sorted_keys

generate_multi_amplitudes(process_definition, collect_mirror_procs=False, ignore_six_quark_processes=[])
Static Method

source code 

Generate amplitudes in a semi-efficient way. Make use of crossing symmetry for processes that fail diagram generation, but not for processes that succeed diagram generation. Doing so will risk making it impossible to identify processes with identical amplitudes.

find_optimal_process_orders(process_definition)
Static Method

source code 

Find the minimal WEIGHTED order for this set of processes.

The algorithm:

1) Check the coupling hierarchy of the model. Assign all particles to the different coupling hierarchies so that a particle is considered to be in the highest hierarchy (i.e., with lowest value) where it has an interaction.

2) Pick out the legs in the multiprocess according to the highest hierarchy represented (so don't mix particles from different hierarchy classes in the same multiparticles!)

3) Find the starting maximum WEIGHTED order as the sum of the highest n-2 weighted orders

4) Pick out required s-channel particle hierarchies, and use the highest of the maximum WEIGHTED order from the legs and the minimum WEIGHTED order extracted from 2*s-channel hierarchys plus the n-2-2*(number of s-channels) lowest leg weighted orders.

5) Run process generation with the WEIGHTED order determined in 3)-4) - # final state gluons, with all gluons removed from the final state

6) If no process is found, increase WEIGHTED order by 1 and go back to 5), until we find a process which passes. Return that order.

7) Continue 5)-6) until we reach (n-2)*(highest hierarchy)-1. If still no process has passed, return WEIGHTED = (n-2)*(highest hierarchy)