Trees | Indices | Help |
---|
|
object --+ | dict --+ | base_objects.PhysicsObject --+ | Amplitude
Amplitude: process + list of diagrams (ordered) Initialize with a process, then call generate_diagrams() to generate the diagrams for the amplitude
|
|||
Inherited from |
|
|||
|
|||
new empty dictionary |
|
||
|
|||
D[k] if k in D, else d |
|
||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
Inherited from Inherited from Inherited from |
|
|||
Inherited from |
|
|||
Inherited from |
|
Default values for all properties
|
Allow initialization with Process
|
Filter for valid amplitude property values.
|
Get the value of the property name.
|
Return diagram property names as a nicely sorted list.
|
Return an AmplitudeList with just this amplitude. Needed for DecayChainAmplitude. |
Generate diagrams. Algorithm: 1. Define interaction dictionaries: * 2->0 (identity), 3->0, 4->0, ... , maxlegs->0 * 2 -> 1, 3 -> 1, ..., maxlegs-1 -> 1 2. Set flag from_group=true for all external particles. Flip particle/anti particle for incoming particles. 3. If there is a dictionary n->0 with n=number of external particles, create if possible the combination [(1,2,3,4,...)] with *at least two* from_group==true. This will give a finished (set of) diagram(s) (done by reduce_leglist) 4. Create all allowed groupings of particles with at least one from_group==true (according to dictionaries n->1): [(1,2),3,4...],[1,(2,3),4,...],..., [(1,2),(3,4),...],...,[(1,2,3),4,...],... (done by combine_legs) 5. Replace each group with a (list of) new particle(s) with number n = min(group numbers). Set from_group true for these particles and false for all other particles. Store vertex info. (done by merge_comb_legs) 6. Stop algorithm when at most 2 particles remain. Return all diagrams (lists of vertices). 7. Repeat from 3 (recursion done by reduce_leglist) 8. Replace final p=p vertex Be aware that the resulting vertices have all particles outgoing, so need to flip for incoming particles when used. SPECIAL CASE: For A>BC... processes which are legs in decay chains, we need to ensure that BC... combine first, giving A=A as a final vertex. This case is defined by the Process property is_decay_chain = True. This function can also be called by the generate_diagram function of LoopAmplitudes, in which case the generated diagrams here must not be directly assigned to the 'diagrams' attributed but returned as a DiagramList by the function. This is controlled by the argument returndiag. |
Return a Diagram created from the vertex list. This function can be overloaded by daughter classes. |
In LoopAmplitude, it converts back all DGLoopLegs into Legs. In Amplitude, there is nothing to do. |
Simply returns a copy of the leg list. This function is overloaded in LoopAmplitude so that a DGLoopLeg list is returned. The DGLoopLeg has some additional parameters only useful during loop diagram generation |
Return False if the coupling orders for any coupling is < 0, otherwise return the new coupling orders with the vertex orders subtracted. If coupling_orders is not given, return None (which counts as success). WEIGHTED is a special order, which corresponds to the sum of order hierarchies for the couplings. We ignore negative constraints as these cannot be taken into account on the fly but only after generation. |
Recursive function. Take a list of legs as an input, with the reference dictionary n-1->1, and output a list of list of tuples of Legs (allowed combinations) and Legs (rest). Algorithm: 1. Get all n-combinations from list [123456]: [12],..,[23],..,[123],.. 2. For each combination, say [34]. Check if combination is valid. If so: a. Append [12[34]56] to result array b. Split [123456] at index(first element in combination+1), i.e. [12],[456] and subtract combination from second half, i.e.: [456]-[34]=[56]. Repeat from 1. with this array 3. Take result array from call to 1. (here, [[56]]) and append (first half in step b - combination) + combination + (result from 1.) = [12[34][56]] to result array 4. After appending results from all n-combinations, return resulting array. Example, if [13] and [45] are valid combinations: [[[13]2456],[[13]2[45]6],[123[45]6]] |
Takes a list of allowed leg combinations as an input and returns a set of lists where combinations have been properly replaced (one list per element in the ref_dict, so that all possible intermediate particles are included). For each list, give the list of vertices corresponding to the executed merging, group the two as a tuple. |
Create a set of new legs from the info given. This can be overloaded by daughter classes. |
Allow for selection of vertex ids. This can be overloaded by daughter classes. |
Reduce the number of legs and vertices used in memory. When called by a diagram generation initiated by LoopAmplitude, this function should not trim the diagrams in the attribute 'diagrams' but rather a given list in the 'diaglist' argument. |
Trees | Indices | Help |
---|
Generated by Epydoc 3.0.1 on Mon Feb 4 12:20:06 2019 | http://epydoc.sourceforge.net |