FCLoopIntegralToGraph
FCLoopIntegralToGraph[int, {q1, q2, ...}]
constructs a graph representation of the loop integral int
that depends on the loop momenta q1, q2, ...
. The function returns a list of the form {edges,labels,props,pref}
, where edges
is a list of edge rules representing the loop integral int
, labels
is a list of lists containing the line momentum, multiplicity and the mass term of each propagator, props
is a list with the original propagators and pref
is the piece of the integral that was ignored when constructing the graph representation (e.g. scalar products or vectors in the numerator) .
Use FCLoopGraphPlot
to visualize the output of FCLoopIntegralToGraph
.
A quick and simple way to plot the graph is to evaluate GraphPlot[List @@@ Transpose[output[[1 ;; 2]]]]
or GraphPlot[Labeled @@@ Transpose[output[[1 ;; 2]]]]
. The visual quality will not be that great, though. To obtain a nicer plot one might use GraphPlot
with a custom EdgeTaggedGraph
or export the output to a file and visualize it with an external tool such as dot/neato from graphviz.
It is also possible to invoke the function as FCLoopIntegralToGraph[GLI[...], FCTopology[...]]
or FCLoopIntegralToGraph[FCTopology[...]]
.
See also
Overview, FCLoopGraphPlot.
Examples
out = FCLoopIntegralToGraph[FAD[{q - k1}, k1, q - k2, k2, {k2 - k3, mb}, {k1 - k3, mb}], {k1, k2, k3}]
{{−3→2,−1→1,1→3,1→4,2→3,2→4,3→4,3→4},{−q,q,{k2,1,0},{q−k2,1,0},{k1,1,0},{q−k1,1,0},{k2−k3,1,−mb2},{k1−k3,1,−mb2}},{0,0,(k22+iη)1,(k12+iη)1,((q−k2)2+iη)1,((q−k1)2+iη)1,((k2−k3)2−mb2+iη)1,((k1−k3)2−mb2+iη)1},1}
![0bfm86ewusrdi](img/0bfm86ewusrdi.svg)
Labeled @@@ Transpose[out[[1 ;; 2]]]
![01p715ugi4jrv](img/01p715ugi4jrv.svg)
GraphPlot[List @@@ Transpose[out[[1 ;; 2]]]]
![0blv15cgm9d0u](img/0blv15cgm9d0u.svg)
FCLoopIntegralToGraph[FAD[{q - k1}, k1, q - k2, k2, {k2 - k3, mb}, {k1 - k3, mb}], {k1, k2,k3}]
{{−3→2,−1→1,1→3,1→4,2→3,2→4,3→4,3→4},{−q,q,{k2,1,0},{q−k2,1,0},{k1,1,0},{q−k1,1,0},{k2−k3,1,−mb2},{k1−k3,1,−mb2}},{0,0,(k22+iη)1,(k12+iη)1,((q−k2)2+iη)1,((q−k1)2+iη)1,((k2−k3)2−mb2+iη)1,((k1−k3)2−mb2+iη)1},1}
FAD[q - k1, k1, q - k2, k2, {k2 - k3, mb}, {k1 - k3, mb}]
(q−k1)2.k12.(q−k2)2.k22.((k2−k3)2−mb2).((k1−k3)2−mb2)1
If the input is given as a list of propagators, their ordering will be preserved when constructing the graph
FCLoopIntegralToGraph[FCTopology[topo1, {FAD[q - k1], FAD[k1], FAD[q - k2], FAD[k2],
FAD[{k2 - k3, mb}], FAD[{k1 - k3, mb}]}, {k1, k2, k3}, {q}, {}, {}]]
{{−3→2,−1→1,1→3,1→4,2→3,2→4,3→4,3→4},{−q,q,{q−k1,1,0},{k1,1,0},{q−k2,1,0},{k2,1,0},{k2−k3,1,−mb2},{k1−k3,1,−mb2}},{0,0,((q−k1)2+iη)1,(k12+iη)1,((q−k2)2+iη)1,(k22+iη)1,((k2−k3)2−mb2+iη)1,((k1−k3)2−mb2+iη)1},1}
FCLoopIntegralToGraph[GLI[topo1, {1, 1, 1, 1, 1, 1}],
FCTopology[topo1, {FAD[q - k1], FAD[k1], FAD[q - k2], FAD[k2],
FAD[{k2 - k3, mb}], FAD[{k1 - k3, mb}]}, {k1, k2, k3}, {q}, {}, {}]]
{{−3→2,−1→1,1→3,1→4,2→3,2→4,3→4,3→4},{−q,q,{k2,1,0},{q−k2,1,0},{k1,1,0},{q−k1,1,0},{k2−k3,1,−mb2},{k1−k3,1,−mb2}},{0,0,(k22+iη)1,(k12+iη)1,((q−k2)2+iη)1,((q−k1)2+iη)1,((k2−k3)2−mb2+iη)1,((k1−k3)2−mb2+iη)1},1}
If the second argument contains multiple topologies, the function will automatically select the relevant ones.
FCLoopIntegralToGraph[GLI[topo1, {1, 1, 1, 0, 0, 0}],
{FCTopology[topo1, {FAD[q - k1], FAD[k1], FAD[q - k2], FAD[k2],
FAD[{k2 - k3, mb}], FAD[{k1 - k3, mb}]}, {k1, k2, k3}, {q}, {}, {}],
FCTopology[topo2, {FAD[q - k1], FAD[k1], FAD[q - k2], FAD[k2],
FAD[{k2 - k3, mg}], FAD[{k1 - k3, mg}]}, {k1, k2, k3}, {q}, {}, {}]
}]
{{−3→2,−1→1,1→2,1→2,2→2},{−q,q,{k1,1,0},{q−k1,1,0},{q−k2,1,0}},{0,0,(k12+iη)1,((q−k2)2+iη)1,((q−k1)2+iη)1},1}