Overleaf¶
Reimplementation of diagrams from https://www.overleaf.com/learn/latex/Feynman_diagrams
[2]:
from pyfeyn2.feynmandiagram import FeynmanDiagram, Leg, Propagator, Vertex
from pyfeyn2.render.all import AllRender
from pyfeyn2.render.latex.dot import feynman_adjust_points
[3]:
v1 = Vertex().set_xy(-1, 0)
v2 = Vertex().set_xy(1, 0)
fd = FeynmanDiagram().add(
v1,
v2,
Propagator().connect(v1, v2).set_type("photon").put_style('opacity',0.2).put_style('color','red').set_momentum("$k$"),
Leg().set_target(v1).set_xy(-2, 1).set_type("fermion").set_incoming().set_label("$e^+$").put_style('opacity',0.2),
Leg().set_target(v1).set_xy(-2, -1).set_type("fermion").set_incoming().set_label("$e^-$").put_style('opacity',0.2),
Leg().set_target(v2).set_xy(2, 1).set_type("fermion").set_outgoing().set_label("$\\mu^+$").put_style('opacity',0.2),
Leg().set_target(v2).set_xy(2, -1).set_type("fermion").set_outgoing().set_label("$\\mu^-$").put_style('opacity',0.9),
)
ar = AllRender(fd)
ar.render()
pyx:
feynmp:
tikz:
dot:
feynman:
mpl:
ascii:
* *
-> >--
-- e+ -
-- + ---
>- >
*~~~~~~~~~~~~~~~~~~~*-
>- >
-- ----
e- -- -
-> >--
* *
unicode:
* *
↘↘ ↗↗↗
↘↘ e^ + ↗
↘↘ + μ^ ↗↗↗
↘↘ ↗
*~~~~~~~~~~~~~~~~~~~*↘
↗↗ ↘
- ↗↗ ↘↘↘μ^
e^ ↗↗ ↘ -
↗↗ ↘↘↘
* *
[4]:
v1 = Vertex().set_xy(-1, 0)
v2 = Vertex().set_xy(1, 0)
fd = FeynmanDiagram().add(
v1,
v2,
Propagator().connect(v1, v2).set_type("fermion"),
Leg().set_target(v1).set_xy(-2, 1).set_type("fermion").set_incoming(),
Leg().set_target(v1).set_xy(-2, -1).set_type("photon").set_incoming(),
Leg().set_target(v2).set_xy(2, 1).set_type("fermion").set_outgoing(),
Leg().set_target(v2).set_xy(2, -1).set_type("photon").set_outgoing(),
)
ar = AllRender(fd)
ar.render()
pyx:
feynmp:
tikz:
dot:
feynman:
mpl:
ascii:
* *
-> >--
-- -
-- ---
>- >
*->---->---->---->--*~
~~ ~
~~ ~~~
~~ ~
~~ ~~~
* *
unicode:
* *
↘↘ ↗↗↗
↘↘ ↗
↘↘ ↗↗↗
↘↘ ↗
*→→→→→→→→→→→→→→→→→→→*~
~~ ~
~~ ~~~
~~ ~
~~ ~~~
* *
[5]:
v1 = Vertex().set_xy(-2, -2)
v2 = Vertex().set_xy(2, -2)
i1 = Vertex().set_xy(-2, 2)
o1 = Vertex().set_xy(2, 2)
o2 = Vertex().set_xy(2, 1)
o3 = Vertex().set_xy(2, 0)
p1 = Vertex().set_xy(0, 2)
p2 = Vertex().set_xy(1, 1)
fd = FeynmanDiagram().add(
v1,
v2,
Propagator().connect(v1,v2).set_type("fermion").set_label("$d$").set_tension(0),
Leg().set_target(v1).set_point(v1).set_type("phantom").set_incoming(),
Leg().set_target(v2).set_point(v2).set_type("phantom").set_outgoing(),
i1,p1,p2,o1,o2,o3,
Propagator().connect(p2,p1).set_type("boson").set_label("$W^+$"),
Leg(label=r"$\bar{b}$").set_target(p1).set_point(i1).set_type("fermion").set_incoming(),
Leg(label=r"$\bar{c}$").set_target(p1).set_point(o1).set_type("fermion").set_outgoing(),
Leg(label="$c$").set_target(p2).set_point(o2).set_type("fermion").set_outgoing(),
Leg(label=r"$\bar{s}$").set_target(p2).set_point(o3).set_type("fermion").set_outgoing()
)
ar = AllRender(fd)
ar.render()
pyx:
feynmp:
tikz:
dot:
feynman:
mpl:
ascii:
_b _c
*->---->---->---->-*->---->---->---->--*
~~~
~ c
+ ~~~
W ~
~*->---->--*
>
---_s
-
>--
*
d
*->---->---->---->---->---->---->---->-*
unicode:
b̅ c̅
*→→→→→→→→→→→→→→→→→→*→→→→→→→→→→→→→→→→→→→*
~~~
~ c
+^ ~~~
W ~
~*↘→→→→→→→→*
↘
↘↘↘s̅
↘
↘↘↘
*
d
*→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→*
[ ]:
[ ]:
[ ]: