{ "cells": [ { "cell_type": "markdown", "id": "f32ecc80", "metadata": {}, "source": [ "# TikZ-Feynman" ] }, { "cell_type": "code", "execution_count": 1, "id": "d7959cdb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2.3.2\n" ] } ], "source": [ "from pyfeyn2.feynmandiagram import FeynmanDiagram, Leg, Propagator, Vertex, PDG\n", "from pyfeyn2.render.latex.tikzfeynman import TikzFeynmanRender\n", "from pyfeyn2.auto.position import feynman_adjust_points\n", "import pyfeyn2\n", "print(pyfeyn2.__version__)" ] }, { "cell_type": "markdown", "id": "891100ba", "metadata": {}, "source": [ "## Simple Case" ] }, { "cell_type": "markdown", "id": "151afea0", "metadata": {}, "source": [ "We set the positions of all vertices here." ] }, { "cell_type": "code", "execution_count": 2, "id": "937fa0bc", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/tmp/ipykernel_5127/1904706615.py:1: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " v1 = Vertex(\"v1\").with_xy(-1, 0).with_shape(\"blob\")\n", "/tmp/ipykernel_5127/1904706615.py:2: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " v2 = Vertex(\"v2\").with_xy(1, 0).with_style(\"symbol : dot\")\n", "/tmp/ipykernel_5127/1904706615.py:4: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " fd = FeynmanDiagram().add(\n", "/tmp/ipykernel_5127/1904706615.py:6: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " Propagator(name=\"g\").connect(v1, v2),\n", "/tmp/ipykernel_5127/1904706615.py:7: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " Leg(name=\"g\").with_target(v1).with_xy(-2, 1).with_incoming(),\n", "/tmp/ipykernel_5127/1904706615.py:8: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " Leg(name=\"g\").with_target(v1).with_xy(-2, -1).with_incoming().with_class(\"notred\"),\n", "/tmp/ipykernel_5127/1904706615.py:9: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " Leg(name=\"g\").with_target(v2).with_xy(2, 1).with_outgoing().with_class(\"red\"),\n", "/tmp/ipykernel_5127/1904706615.py:10: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " Leg(\"myid1\",name=\"g\").with_target(v2).with_xy(2, -1).with_outgoing().with_style_property(\"bend-direction\",\"right\")\n" ] } ], "source": [ "v1 = Vertex(\"v1\").with_xy(-1, 0).with_shape(\"blob\")\n", "v2 = Vertex(\"v2\").with_xy(1, 0).with_style(\"symbol : dot\")\n", "\n", "fd = FeynmanDiagram().add(\n", " v1,v2,\n", " Propagator(name=\"g\").connect(v1, v2),\n", " Leg(name=\"g\").with_target(v1).with_xy(-2, 1).with_incoming(),\n", " Leg(name=\"g\").with_target(v1).with_xy(-2, -1).with_incoming().with_class(\"notred\"),\n", " Leg(name=\"g\").with_target(v2).with_xy(2, 1).with_outgoing().with_class(\"red\"),\n", " Leg(\"myid1\",name=\"g\").with_target(v2).with_xy(2, -1).with_outgoing().with_style_property(\"bend-direction\",\"right\")\n", ")" ] }, { "cell_type": "markdown", "id": "84ba61f6", "metadata": {}, "source": [ "### Style" ] }, { "cell_type": "code", "execution_count": 3, "id": "786153ab", "metadata": {}, "outputs": [], "source": [ "fd = fd.with_rule(\"\"\"\n", "* {\n", " bend-direction: left;\n", " color: green;\n", "}\n", "\"\"\")" ] }, { "cell_type": "code", "execution_count": 4, "id": "3d6a447e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "b'* {\\n bend-direction: left;\\n color: green\\n }\\n.red {\\n color: red\\n }\\n.notred {\\n color: blue\\n }\\n#myid1 {\\n color: gray\\n }\\n[pdgid=\"21\"] {\\n color: black\\n }\\n#myid2 {\\n color: gray\\n }\\ndiagram.propagator {\\n color: green\\n }'" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fd.add_rules(\"\"\"\n", ".red {\n", " color: red;\n", "}\n", ".notred {\n", " color: blue;\n", "}\n", "#myid1 {\n", " color: gray;\n", "}\n", "[pdgid=\"21\"] {\n", " color: black;\n", "}\n", "#myid2 {\n", " color: gray;\n", "}\n", "diagram.propagator {\n", " color: green;\n", "}\n", "\"\"\")\n", "fd.sheet.cssText" ] }, { "cell_type": "code", "execution_count": 5, "id": "1b3824e3", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'\\n\\n \\n g\\n v1\\n v2\\n \\n \\n \\n \\n g\\n v1\\n incoming\\n \\n \\n g\\n v1\\n incoming\\n \\n \\n g\\n v2\\n outgoing\\n \\n \\n g\\n v2\\n outgoing\\n \\n\\n'" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fd.to_xml()" ] }, { "cell_type": "code", "execution_count": 6, "id": "a1474ec0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\\documentclass[preview,crop,tikz]{standalone}%\n", "\\usepackage[T1]{fontenc}%\n", "\\usepackage[utf8]{inputenc}%\n", "\\usepackage{lmodern}%\n", "\\usepackage{textcomp}%\n", "\\usepackage{lastpage}%\n", "%\n", "\\RequirePackage{luatex85}%\n", "\\usepackage[compat=1.1.0]{tikz-feynman}%\n", "%\n", "\\begin{document}%\n", "\\normalsize%\n", "\\begin{tikzpicture}\n", "\\begin{feynman}\n", "\t\\vertex (v1) [blob] at (-1.0,0.0) {};\n", "\t\\vertex (v1clone) [] at (-1.0,0.0);\n", "\t\\vertex (v2) [dot] at (1.0,0.0) {};\n", "\t\\vertex (v2clone) [] at (1.0,0.0);\n", "\t\\vertex (Leg9) [] at (-2.0,1.0);\n", "\t\\vertex (Leg10) [] at (-2.0,-1.0);\n", "\t\\vertex (Leg11) [] at (2.0,1.0);\n", "\t\\vertex (myid1) [] at (2.0,-1.0);\n", "\t\\diagram*{\n", "\t\t(v1) -- [gluon,black,bend left] (v2),\n", "\t\t(Leg9) -- [gluon,black,bend left] (v1),\n", "\t\t(Leg10) -- [gluon,blue,bend left] (v1),\n", "\t\t(v2) -- [gluon,red,bend left] (Leg11),\n", "\t\t(v2) -- [gluon,gray,bend right] (myid1),\n", "\t};\n", "\\end{feynman}\n", "\\end{tikzpicture}\n", "%\n", "\\end{document}\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/apn/git/feynml/feynml/feynmandiagram.py:136: UserWarning: No parent fml, returning default style\n", " warnings.warn(\"No parent fml, returning default style\")\n", "/home/apn/git/feynml/feynml/feynmandiagram.py:143: UserWarning: No parent fml, returning default sheet\n", " warnings.warn(\"No parent fml, returning default sheet\")\n" ] } ], "source": [ "tfd = TikzFeynmanRender(fd)\n", "print(tfd.get_src())" ] }, { "cell_type": "code", "execution_count": 7, "id": "a7b7739c", "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tfd.render(\"test.pdf\")" ] }, { "cell_type": "markdown", "id": "99fbd5ba", "metadata": {}, "source": [ "## Complicated Case" ] }, { "cell_type": "markdown", "id": "62f35db5", "metadata": {}, "source": [ "We only set the positions of the Legs here." ] }, { "cell_type": "code", "execution_count": 8, "id": "dda6bc22", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/tmp/ipykernel_5127/1594115405.py:1: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " fd = FeynmanDiagram().with_rules(\n", "/tmp/ipykernel_5127/1594115405.py:6: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " v1 = Vertex(\"v1\")\n", "/tmp/ipykernel_5127/1594115405.py:7: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " v2 = Vertex(\"v2\")\n", "/tmp/ipykernel_5127/1594115405.py:8: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " v3 = Vertex(\"v3\")\n", "/tmp/ipykernel_5127/1594115405.py:9: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " v4 = Vertex(\"v4\")\n", "/tmp/ipykernel_5127/1594115405.py:10: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " p1 = Propagator(\"p1\").connect(v1, v2).with_type(\"gluon\")\n", "/tmp/ipykernel_5127/1594115405.py:11: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " p2 = Propagator(\"p2\").connect(v1, v3).with_type(\"gluon\")\n", "/tmp/ipykernel_5127/1594115405.py:12: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " p3 = Propagator(\"p3\").connect(v3, v2).with_type(\"gluon\")\n", "/tmp/ipykernel_5127/1594115405.py:13: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " p4 = Propagator(\"p4\").connect(v4, v3).with_type(\"gluon\")\n", "/tmp/ipykernel_5127/1594115405.py:14: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " p5 = Propagator(\"p5\").connect(v4, v2).with_type(\"gluon\")\n", "/tmp/ipykernel_5127/1594115405.py:15: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " l1 = Leg(\"l1\").with_target(v1).with_type(\"gluon\").with_incoming().with_xy(-2, 1)\n", "/tmp/ipykernel_5127/1594115405.py:16: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " l2 = Leg(\"l2\").with_target(v1).with_type(\"gluon\").with_incoming().with_xy(-2, -1)\n", "/tmp/ipykernel_5127/1594115405.py:17: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " l3 = Leg(\"l3\").with_target(v2).with_type(\"fermion\").with_outgoing().with_xy(2, -2).with_class(\"blue\")\n", "/tmp/ipykernel_5127/1594115405.py:18: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " l4 = Leg(\"l4\").with_target(v3).with_type(\"fermion\").with_outgoing().with_xy(2, 2)\n", "/tmp/ipykernel_5127/1594115405.py:19: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " l5 = Leg(\"l5\").with_target(v4).with_type(\"gluon\").with_outgoing().with_xy(2, 1)\n", "/tmp/ipykernel_5127/1594115405.py:20: DeprecatedWarning: __init__ is deprecated as of 2.2.6 and will be removed in 2.4.0.\n", " l6 = Leg(\"l6\").with_target(v4).with_type(\"gluon\").with_outgoing().with_xy(2, -1)\n" ] } ], "source": [ "fd = FeynmanDiagram().with_rules(\n", " \"\"\" * {color: red;} \n", " [type=fermion] {color: blue; line: gluon}\n", " #p1 {color: green;}\n", " :not([type=fermion]) { color : black; line: fermion}\"\"\")\n", "v1 = Vertex(\"v1\")\n", "v2 = Vertex(\"v2\")\n", "v3 = Vertex(\"v3\")\n", "v4 = Vertex(\"v4\")\n", "p1 = Propagator(\"p1\").connect(v1, v2).with_type(\"gluon\")\n", "p2 = Propagator(\"p2\").connect(v1, v3).with_type(\"gluon\")\n", "p3 = Propagator(\"p3\").connect(v3, v2).with_type(\"gluon\")\n", "p4 = Propagator(\"p4\").connect(v4, v3).with_type(\"gluon\")\n", "p5 = Propagator(\"p5\").connect(v4, v2).with_type(\"gluon\")\n", "l1 = Leg(\"l1\").with_target(v1).with_type(\"gluon\").with_incoming().with_xy(-2, 1)\n", "l2 = Leg(\"l2\").with_target(v1).with_type(\"gluon\").with_incoming().with_xy(-2, -1)\n", "l3 = Leg(\"l3\").with_target(v2).with_type(\"fermion\").with_outgoing().with_xy(2, -2).with_class(\"blue\")\n", "l4 = Leg(\"l4\").with_target(v3).with_type(\"fermion\").with_outgoing().with_xy(2, 2)\n", "l5 = Leg(\"l5\").with_target(v4).with_type(\"gluon\").with_outgoing().with_xy(2, 1)\n", "l6 = Leg(\"l6\").with_target(v4).with_type(\"gluon\").with_outgoing().with_xy(2, -1)\n", "\n", "l6.style.color = \"orange\"\n", "\n", "fd.propagators.extend([p1, p2, p3, p4, p5])\n", "fd.vertices.extend([v1, v2, v3, v4])\n", "fd.legs.extend([l1, l2, l3, l4, l5, l6])" ] }, { "cell_type": "markdown", "id": "8bf8b95c", "metadata": {}, "source": [ "Now calculate the positions of vertices." ] }, { "cell_type": "code", "execution_count": 9, "id": "2cc1456b", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/apn/git/feynml/feynml/feynmandiagram.py:136: UserWarning: No parent fml, returning default style\n", " warnings.warn(\"No parent fml, returning default style\")\n", "/home/apn/git/feynml/feynml/feynmandiagram.py:143: UserWarning: No parent fml, returning default sheet\n", " warnings.warn(\"No parent fml, returning default sheet\")\n" ] } ], "source": [ "ffd= feynman_adjust_points(fd)" ] }, { "cell_type": "code", "execution_count": 10, "id": "87c4b396", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "TikzFeynmanRender(ffd).render()" ] }, { "cell_type": "code", "execution_count": 11, "id": "7a732d93", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/apn/git/feynml/feynml/feynmandiagram.py:143: UserWarning: No parent fml, returning default sheet\n", " warnings.warn(\"No parent fml, returning default sheet\")\n" ] }, { "data": { "text/plain": [ "b'/*************************************************************************/\\n/* Diagram */\\n/*************************************************************************/\\ndiagram {\\n direction: right;\\n layout: neato\\n }\\n/*************************************************************************/\\n/* Vertex */\\n/*************************************************************************/\\n[shape=dot] {\\n symbol: dot\\n }\\n[shape=empty] {\\n symbol: empty\\n }\\n[shape=square] {\\n symbol: square\\n }\\n[shape=cross] {\\n symbol: cross\\n }\\n[shape=blob] {\\n symbol: blob\\n }\\n/*************************************************************************/\\n/* Propagator */\\n/*************************************************************************/\\n/* General */\\n[type=fermion] {\\n line: fermion;\\n arrow-sense: 1\\n }\\n[type=\"anti fermion\"] {\\n line: anti fermion;\\n arrow-sense: -1\\n }\\n[type=boson] {\\n line: boson;\\n arrow-sense: 0\\n }\\n[type=vector] {\\n line: vector;\\n arrow-sense: 0\\n }\\n[type=scalar] {\\n line: scalar;\\n arrow-sense: 0\\n }\\n[type=majorana] {\\n line: majorana\\n }\\n/* SM */\\n[type=photon] {\\n line: photon;\\n arrow-sense: 0\\n }\\n[type=higgs] {\\n line: higgs;\\n arrow-sense: 0\\n }\\n[type=gluon] {\\n line: gluon;\\n arrow-sense: 0;\\n xamp: 0.025;\\n yamp: 0.035;\\n nloops: 7\\n }\\n[type=ghost] {\\n line: ghost;\\n arrow-sense: 0\\n }\\n/* BSM */\\n[type=graviton] {\\n line: graviton;\\n arrow-sense: 0\\n }\\n[type=gluino] {\\n line: gluino;\\n arrow-sense: 0;\\n xamp: 0.025;\\n yamp: 0.035;\\n nloops: 7\\n }\\n[type=squark] {\\n line: squark;\\n arrow-sense: 1\\n }\\n[type=slepton] {\\n line: slepton;\\n arrow-sense: 1\\n }\\n[type=gaugino] {\\n line: gaugino;\\n arrow-sense: 0\\n }\\n[type=neutralino] {\\n line: neutralino;\\n arrow-sense: 0\\n }\\n[type=chargino] {\\n line: chargino;\\n arrow-sense: 0\\n }\\n[type=higgsino] {\\n line: higgsino;\\n arrow-sense: 0\\n }\\n[type=gravitino] {\\n line: gravitino;\\n arrow-sense: 0\\n }\\n/* util */\\n[type=phantom] {\\n line: phantom;\\n arrow-sense: 0\\n }\\n[type=line] {\\n line: line;\\n arrow-sense: 0\\n }'" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fd.get_sheets()[0].cssText" ] }, { "cell_type": "code", "execution_count": 12, "id": "1bf13ff8", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "b'* {\\n color: red\\n }\\n[type=fermion] {\\n color: blue;\\n line: gluon\\n }\\n#p1 {\\n color: green\\n }\\n:not([type=fermion]) {\\n color: black;\\n line: fermion\\n }'" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fd.get_sheets()[1].cssText" ] }, { "cell_type": "code", "execution_count": 13, "id": "dcc66e77", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[cssutils.css.CSSStyleSheet(href=None, media=None, title=None),\n", " cssutils.css.CSSStyleSheet(href=None, media=None, title=None)]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fd.get_sheets()" ] }, { "cell_type": "code", "execution_count": null, "id": "379244cf", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.4" } }, "nbformat": 4, "nbformat_minor": 5 }