Source code for feynml.topology.four

from feynml.feynmandiagram import FeynmanDiagram
from feynml.leg import Leg
from feynml.pdgid import pdgid_param
from feynml.propagator import Propagator
from feynml.vertex import Vertex


[docs] def fusion(in1=None, in2=None, in3=None, out1=None): return FeynmanDiagram().add( v1 := Vertex(), Leg(**pdgid_param(in1), sense="incoming", target=v1), Leg(**pdgid_param(in2), sense="incoming", target=v1), Leg(**pdgid_param(in3), sense="incoming", target=v1), Leg(**pdgid_param(out1), sense="outgoing", target=v1), )
[docs] def decay(in1=None, out1=None, out2=None, out3=None): return FeynmanDiagram().add( v1 := Vertex(), Leg(**pdgid_param(in1), sense="incoming", target=v1), Leg(**pdgid_param(out1), sense="outgoing", target=v1), Leg(**pdgid_param(out2), sense="outgoing", target=v1), Leg(**pdgid_param(out3), sense="outgoing", target=v1), )
[docs] def s_channel(in1=None, in2=None, prop=None, out1=None, out2=None): return FeynmanDiagram().add( v1 := Vertex(), v2 := Vertex(), Leg(**pdgid_param(in1), sense="incoming", target=v1), Leg(**pdgid_param(in2), sense="incoming", target=v1), Propagator(**pdgid_param(prop)).connect(v1, v2), Leg(**pdgid_param(out1), sense="outgoing", target=v2), Leg(**pdgid_param(out2), sense="outgoing", target=v2), )
[docs] def t_channel(in1=None, in2=None, prop=None, out1=None, out2=None): return FeynmanDiagram().add( v1 := Vertex(), v2 := Vertex(), Leg(**pdgid_param(in1), sense="incoming", target=v1), Leg(**pdgid_param(in2), sense="incoming", target=v2), Propagator(**pdgid_param(prop)).connect(v1, v2), Leg(**pdgid_param(out1), sense="outgoing", target=v1), Leg(**pdgid_param(out2), sense="outgoing", target=v2), )
[docs] def u_channel(in1=None, in2=None, prop=None, out1=None, out2=None): return FeynmanDiagram().add( v1 := Vertex(), v2 := Vertex(), Leg(**pdgid_param(in1), sense="incoming", target=v1), Leg(**pdgid_param(in2), sense="incoming", target=v2), Propagator(**pdgid_param(prop)).connect(v1, v2), Leg(**pdgid_param(out1), sense="outgoing", target=v2), Leg(**pdgid_param(out2), sense="outgoing", target=v1), )
[docs] def v_channel(in1=None, in2=None, out1=None, out2=None): return FeynmanDiagram().add( v := Vertex(), Leg(**pdgid_param(in1), sense="incoming", target=v), Leg(**pdgid_param(in2), sense="incoming", target=v), Leg(**pdgid_param(out1), sense="outgoing", target=v), Leg(**pdgid_param(out2), sense="outgoing", target=v), )