{ "cells": [ { "cell_type": "markdown", "id": "441f116b", "metadata": {}, "source": [ "# Pyfeyn\n", "\n", "https://pyfeyn.hepforge.org/examples" ] }, { "cell_type": "code", "execution_count": 1, "id": "804707a8", "metadata": {}, "outputs": [], "source": [ "from pyfeyn2.feynmandiagram import FeynmanDiagram, Leg, Propagator, Vertex\n", "from pyfeyn2.render.all import AllRender\n", "from pyfeyn2.auto.position import feynman_adjust_points\n", "from pyfeyn2.auto.label import auto_label\n", "from pyfeyn2.auto.bend import auto_bend\n", "from pyfeyn2.feynmandiagram import Momentum" ] }, { "cell_type": "code", "execution_count": 2, "id": "d4b571dd", "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pyx:\n", "pyx failed:\n", "Traceback (most recent call last):\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py\", line 86, in render\n", " render(fd).render(dirpath + \"/\" + name + \".pdf\", **dynarg)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/pyx/pyxrender.py\", line 43, in render\n", " nl = NamedLine[l.type](Point(l.x, l.y), Point(tar.x, tar.y))\n", "KeyError: 'anti fermion'\n", "\n", "feynmp:\n", "feynmp failed:\n", "Traceback (most recent call last):\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py\", line 86, in render\n", " render(fd).render(dirpath + \"/\" + name + \".pdf\", **dynarg)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/feynmp.py\", line 139, in __init__\n", " self.set_feynman_diagram(fd)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/feynmp.py\", line 143, in set_feynman_diagram\n", " self.set_src_diag(NoEscape(feynman_to_feynmp(fd)))\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/feynmp.py\", line 91, in feynman_to_feynmp\n", " tttype = type_map[l.type]\n", "KeyError: 'anti fermion'\n", "\n", "tikz:\n" ] }, { "data": { "image/png": "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cD7vGlsph45IDJXwVPSOQfn4bAasAbxErZUaa1tzx8jyVqrD4EclPPKE5zoLITW2Kh0BcgGReevIutdsT0Wsu1FqxaNe6jWOyQME7Kk0d6hUSsADD/pdXhOobOiFbE3qjpCQRQ9vqJhiK7NceVdIgm+3hrb1GpaHhX0i7ASsC9zKSsBFkS534BWsIZXLh63j7ASsG9wx3jRdVctulN6ojYp4wrf1akob2yXnHSoVjFpeDk+Zb2/7pca619x+jV7LuSf5wwK2H9wB7+I619Em9ZSPV5gTMcUucmSWe83LNp96rKcvMQnhpcb2rLmHNCkjnXWk0xSRQDs+FLC94X4x/HXEU6AtX1f0Pz68djHdpvJr/jVybtaRTnOIut1Jre1ZhmNnVB7lJMHRpsCdBdxxesjVSIAnln0WH4m4pk1QMUfB5/rlyffDg1WVx8583LBkPUUC2ecj4yXhHaPW/gqAJUsZyw4X14QnhdQmKxqhnf2O302ZhvL5aZ829zyFwsBaqwJWfCC1dVxxr7l1KRQGoRWX4lTiDDc8n5EbgFbATim2cFXCBgg5T8g5oI0Vl+LV29y2ZEUCdtbaEdrqm6zmYV2Gml4GWUzxpaTDLEem8xTWxb70WPMjYC8pesmSXL1X+2VrsiJntAL20qKX/J0v1GcqPPtqjadCFbOpzSwlbez8FY9v0Wi253HgzcmKBOxNKOn+447UjoGAvQnFP9lhkdNcwN6IklU2rJJxWnajpPN0dVnvP/1Rj/fGEAE7B1E7POBv/MBuPtei1grYmcgSWOqf2uXEoLutlTZ2Loq/f12j1XyugL1JtYHb6kMWUzxXsZnya0ErYOcs3XAb0QrYuUsX3Aa0AvYWpB1uLVoBeyvSBrcGrYC9JWmGe4ZWwN6aNME9QStgb1Hq4R6hFbC3KnVwK2gF7C3LOdw9WgF763IK16AVsPcgx3BfgIC9H6nCfSFg70sOcF8I2HuTEq7CvClV5J5ExQT/B5bbWZDKuRz0AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIyLTEyLTI0VDIzOjQ2OjQ3KzAwOjAwk5zVVwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMi0xMi0yNFQyMzo0Njo0NyswMDowMOLBbesAAAAodEVYdGRhdGU6dGltZXN0YW1wADIwMjItMTItMjRUMjM6NDY6NDcrMDA6MDC11Ew0AAAALXRFWHRpY2M6Y29weXJpZ2h0AENvcHlyaWdodCBBcnRpZmV4IFNvZnR3YXJlIDIwMTEIusW0AAAAMXRFWHRpY2M6ZGVzY3JpcHRpb24AQXJ0aWZleCBTb2Z0d2FyZSBzUkdCIElDQyBQcm9maWxlEwwBhgAAABN0RVh0cGRmOlZlcnNpb24AUERGLTEuNVM2WsEAAABKdEVYdHNpZ25hdHVyZQA1MTg0ZTk0MzYwNjgwZWVmNjcwOGQ1NDhhZWFjNzY4OTU3YjAzNDBmMzc5OTk0Y2UzOTljZjU1ZjkwMTliZGJjcX/bKAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "dot:\n", "dot failed:\n", "Traceback (most recent call last):\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py\", line 86, in render\n", " render(fd).render(dirpath + \"/\" + name + \".pdf\", **dynarg)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/dot.py\", line 72, in __init__\n", " self.set_feynman_diagram(fd)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/dot.py\", line 76, in set_feynman_diagram\n", " self.src_dot = feynman_to_dot(\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/interface/dot.py\", line 27, in feynman_to_dot\n", " thestyle = styler(p)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/dot.py\", line 33, in stylize_connect\n", " style = 'style=\"{}\",texmode=\"raw\"'.format(map_feyn_to_tikz[c.type])\n", "KeyError: 'anti fermion'\n", "\n", "feynman:\n", "feynman failed:\n", "Traceback (most recent call last):\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py\", line 86, in render\n", " render(fd).render(dirpath + \"/\" + name + \".pdf\", **dynarg)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/mpl/feynmanrender.py\", line 75, in render\n", " byid[v.id] = diagram.vertex(\n", " File \"/home/apn/.cache/pypoetry/virtualenvs/pyfeyn2-CEvJ4jFG-py3.9/lib/python3.9/site-packages/feynman/diagrams/diagrams.py\", line 73, in vertex\n", " v = Vertex(xy, **kwargs)\n", " File \"/home/apn/.cache/pypoetry/virtualenvs/pyfeyn2-CEvJ4jFG-py3.9/lib/python3.9/site-packages/feynman/core/vertex.py\", line 64, in __init__\n", " cxy = (np.complex(*xy) + np.complex(*dxy) + np.complex(dx, dy)\n", " File \"/home/apn/.cache/pypoetry/virtualenvs/pyfeyn2-CEvJ4jFG-py3.9/lib/python3.9/site-packages/numpy/__init__.py\", line 284, in __getattr__\n", " raise AttributeError(\"module {!r} has no attribute \"\n", "AttributeError: module 'numpy' has no attribute 'complex'\n", "\n", "mpl:\n", "mpl failed:\n", "Traceback (most recent call last):\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py\", line 86, in render\n", " render(fd).render(dirpath + \"/\" + name + \".pdf\", **dynarg)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/mpl/mpl.py\", line 138, in render\n", " namedlines[p.type](idtopos[p.source], idtopos[p.target])\n", "KeyError: 'anti fermion'\n", "\n", "ascii:\n", "ascii failed:\n", "Traceback (most recent call last):\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py\", line 86, in render\n", " render(fd).render(dirpath + \"/\" + name + \".pdf\", **dynarg)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/asciipdf.py\", line 25, in render\n", " ASCIIRender.render(self, file, show, resolution, width, height)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/ascii.py\", line 150, in render\n", " self.namedlines[p.type]().draw(pane, src, tar, **fmt)\n", "KeyError: 'anti fermion'\n", "\n", "unicode:\n", "unicode failed:\n", "Traceback (most recent call last):\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py\", line 86, in render\n", " render(fd).render(dirpath + \"/\" + name + \".pdf\", **dynarg)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/unicodepdf.py\", line 64, in render\n", " UnicodeRender.render(self, file, show, resolution, width, height)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/ascii.py\", line 150, in render\n", " self.namedlines[p.type]().draw(pane, src, tar, **fmt)\n", "KeyError: 'anti fermion'\n", "\n" ] }, { "data": { "image/png": "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6I8RZR8AAIBxMzAwkG3btiX5aIWfsaHsAwAAMG4eeeSRHD58OB0dHbnuuuvKjlO3lH0AAADGTbHCv27durS2tpacpn450AcAAMC4OHjwYObNm5fh4eHs2bMnixcvLjtS3TLZBwAAYFxs3bo1w8PDWb16taI/xpR9AAAAxlylUhlZ4XeYb+xZ4wcAAGDMPfXUU1mzZk0mTZqU7u7uTJo0qexIdc1kHwAAgDG3cePGJMkdd9yh6I8Dk30AAADGVE9PTzo6OtLX15enn346q1atKjtS3TPZBwAAYEw9+OCD6evry9KlS7Ny5cqy4zQEZR8AAIAxdfxhvqamppLTNAZr/AAAAIyZ3bt3Z/ny5WlpacmBAwcya9assiM1BJN9AAAAxsymTZuSJDfeeKOiP46UfQAAAMbE4OBgtm7dmuSjFX7Gj7IPAADAmHj00Ufz1ltvZebMmbnhhhvKjtNQlH0AAADGRHGY75577smECRNKTtNYHOgDAABg1B06dCjnnHNOhoaGsmvXrixbtqzsSA3FZB8AAIBRt23btgwNDWXlypWKfgmUfQAAAEZVpVIZWeF3mK8c1vgBAAAYVc8880xWrVqViRMnpru7O5MnTy47UsMx2QcAAGBUFVP922+/XdEvick+AAAAo+b999/PrFmz0tvbmyeffDJr1qwpO1JDMtkHAABg1Hzve99Lb29vFi1alNWrV5cdp2Ep+wAAAIyaYoV//fr1aWpqKjlN47LGDwAAwKjYs2dPlixZkubm5uzfvz9z5swpO1LDMtkHAABgVGzevDlJcv311yv6JVP2AQAAOG3Hjh3Lli1bkiSdnZ0lp0HZBwAA4LQ9/vjj6erqyvTp03PTTTeVHafhKfsAAACctuIw39133522traS0+BAHwAAAKflnXfeyZw5czI4OJiXXnopF154YdmRGp7JPgAAAKflvvvuy+DgYFasWKHoVwllHwAAgFNWqVSycePGJA7zVRNr/AAAAJyy5557LldccUXa29vT3d2dKVOmlB2JmOwDAABwGorDfLfddpuiX0VM9gEAADglfX196ejoSE9PT3bs2JGrr7667Ej8HZN9AAAATsn27dvT09OT+fPn58orryw7DsdR9gEAADglxQr/+vXr09ysXlYTa/wAAACctH379mXhwoVpamrKG2+8kXPPPbfsSBzHWy8AAACctM2bNydJ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uXPn5o033vDvdKAuWeOHz/H444/n+9//fiZMmJDvf//7v1T0k2TevHn5oz/6oyTJxo0b8+yzz453TE7D3r178w//4T9Mkvyzf/bPfqnoJ0lbW1s2bdqUs846K88880z+4A/+YLxjchoGBgbyX/6X/2WSj45wfVrRT5I/+IM/yOWXX54jR47kf/gf/ofxjAiMs2KFf926dYo+ULdM9uEzHDt2LJdccklefvnl/N7v/V7+2T/7Z5/7v//Od76TrVu3ZsWKFfmbv/kbvzzUiHvuuSfbtm3Lt771rTz22GOf+8kKGzduzHe/+91MmjQpP/vZz/KVr3xlHJNyqn7/938///Af/sPMmDEjr7zyyue+bi+99FIuueSSVCqVPP/88/na1742jkmB8bB///7Mnz8/lUole/fuzYIFC8qOBDAmTPbhM9x77715+eWXM23atPzjf/yPv/B///u///uZPHlynn/++fzxH//xOCTkdL3yyiv5wz/8wyTJ//6//+9f+BGKnZ2dufjii9Pb25t//s//+XhE5DR98MEH+af/9J8m+ehn9IveoLnoooty9913J0n+x//xfxzzfMD427x5cyqVSq666ipFH6hryj58iuHh4fz+7/9+kuQf/+N/fEJH984+++z8t//tf5sk+T//z/8zlmaq3z/5J/8kw8PDufXWW09ogtvU1JR/9I/+UZLkn//zf5733ntvrCNymjZt2pR33nkn8+fPHynxX+R//p//57S1teUv/uIv8oMf/GCMEwLjaXh4OJs2bUry0Ru4APVM2YdP8R//43/M3r17M2XKlHz3u9894b/ud3/3d3PGGWfkP/2n/5Qf/vCHY5iQ0/XTn/40Dz74YJKPSv+J+o3f+I0sX7487733Xv7lv/yXY5SO0XDs2LH8H//H/5Ek+e/+u/8ura2tJ/TXzZ8/P+vXr08SrzHUmb/6q7/KT3/600yePDm/8Ru/UXYcgDGl7MOn+Bf/4l8kSb773e/mzDPPPOG/bubMmfmd3/mdJB9N96le//bf/ttUKpVcc801ufjii0/4r2tubs7/9D/9T0mS//f//X8zNDQ0VhE5TX/8x3+cn/70p5k+ffpIeT9Rf//v//0kyfbt29PV1TUW8YASFIf57rzzzkycOLHkNABjS9mHX7B79+48/vjjaW5uzu/+7u+e9F//e7/3e0mSP/mTP8mbb745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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "v1 = Vertex().with_xy(-1, 0)\n", "v2 = Vertex().with_xy(1, 0)\n", "v3 = Vertex().with_xy(2, 1)\n", "v4 = Vertex().with_xy(2, -1)\n", "\n", "fd = FeynmanDiagram().add(\n", " v1, v2, v3, v4,\n", " Propagator().connect(v1, v2).with_type(\"boson\").with_label(\"$\\\\gamma/Z$\"),\n", " Propagator(pdgid=1).connect(v2, v3),\n", " Propagator(pdgid=-1).connect(v2,v4),\n", " Propagator(name=\"g\").connect(v3,v4).with_style(\"bend-direction : left\"),\n", " Leg(pdgid=11).with_target(v1).with_xy(-3, 2).with_incoming().with_style(\"momentum-arrow : true; momentum-arrow-flip : true\").with_momentum(Momentum(name=\"$\\\\vec p$\")),\n", " Leg(pdgid=-11).with_target(v1).with_xy(-3, -2).with_incoming(),\n", " Leg(pdgid=1).with_target(v3).with_xy(3, 2).with_outgoing(),\n", " Leg(pdgid=-1).with_target(v4).with_xy(3, -2).with_outgoing(),\n", ")\n", "auto_label(fd.propagators + fd.legs)\n", "ar = AllRender(fd)\n", "ar.render()" ] }, { "cell_type": "code", "execution_count": 3, "id": "43ef0922", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pyx:\n", "pyx failed:\n", "Traceback (most recent call last):\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py\", line 86, in render\n", " render(fd).render(dirpath + \"/\" + name + \".pdf\", **dynarg)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/pyx/pyxrender.py\", line 53, in render\n", " nl = NamedLine[p.type](Point(src.x, src.y), Point(tar.x, tar.y))\n", "KeyError: 'anti fermion'\n", "\n", "feynmp:\n", "feynmp failed:\n", "Traceback (most recent call last):\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py\", line 86, in render\n", " render(fd).render(dirpath + \"/\" + name + \".pdf\", **dynarg)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/feynmp.py\", line 139, in __init__\n", " self.set_feynman_diagram(fd)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/feynmp.py\", line 143, in set_feynman_diagram\n", " self.set_src_diag(NoEscape(feynman_to_feynmp(fd)))\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/feynmp.py\", line 104, in feynman_to_feynmp\n", " tttype = type_map[p.type]\n", "KeyError: 'anti fermion'\n", "\n", "tikz:\n" ] }, { "data": { "image/png": "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5EXMjIg27dcrn7octa30yVmzMf2moq3pBqpZx/9jouYbwq8ODRKQkJSEFUvX3kSYRmIyHFub1JHpjRLKEy/ULNSjl10XVap7PhLJRlLbtpyLAzWeBGTEFC49z3aQkIyIRxfS56MXnqRkvnk9H4nJqIfI811pJ5GesqfnQ8luXtVuekvQrm+uY5s2itqdsbvCwRm7J689Y3eF7hm7e+oz2it8zY/8xYxj135Iyk/8zm/AOV455ceOVz7hx652un481E71gUh/uNRZ6lDPkKp1OB20s6q20/dof9+dsbvC4Rm7Kr97he4ZYeeM3RW+5Cv+sOtEZ/n2pB+7Xjnlx/BsP3a10/XjoXZq39RODInIacbfSow+qlUFC2DtTrxmDwnliSeW6mHssnNAeKAa9ci9W8mC4dEJp0otXIhpnRAegKrVx534hh8SOXZa0d25k3IafR+vY65/e9HBxbcW4JzwQCeUvfhoRbd0o3Ht2O6e8MCLz23RgbPCgz3xzWj+vS6546IDTE3oHmxQkMVRyEQ2pl0PMfp4iB9HotqTj02jCnVHZWUK4MDrIOupmxH3U5hF53BT2ynINt6tWKnVQHdcM1Citi1b6Vrs+okyTUV4ujgDLf4gCREJKwzv3ujyQhzvlGxawtOFSomJzIYdkhCZ3b1REmLiqQZPkxQegASkJBhb9ktyKlONukQkJJSs3O/LnSzjVIWni7ftHZWUtxaJrLm/vaAlJCGlohz3Knk3KOm0hacLuWu0Vrfr+claLSS+3XYCEpCQELBiNcWm9aC8cxAeaMfGeina8vqZovJCsbeaUv/rRHo1ZChv+WCMndkIry1wqNcchoqasq+rr9u9UQIiYr34dm06Nh4jsxPeXtFjLcHqsuW4JSXqm65pl9puKKkp59Convgm5iu89it4u/3Ju3Wg5GRsG8Yz07lvtnCZZf125Dvxwntlb/uTT+xJpoUH0FB0s2wHe6C9bik14+1UDvHCO8rRPckCQirge7578+G/afi3/evRPdA8XbzwLkZ+5Yc3//Env6ifbVvlGn7b0Mv5Z++4mM9apLfFC68vNcXUXtwPiRdeH1YUPjK9Dt/H81jB8RHIHlfxwvNYwQvPY4X/AUYzsJ1/jp93AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIyLTEyLTI0VDIzOjQ2OjQ4KzAwOjAwZdSlvgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMi0xMi0yNFQyMzo0Njo0OCswMDowMBSJHQIAAAAodEVYdGRhdGU6dGltZXN0YW1wADIwMjItMTItMjRUMjM6NDY6NDgrMDA6MDBDnDzdAAAALXRFWHRpY2M6Y29weXJpZ2h0AENvcHlyaWdodCBBcnRpZmV4IFNvZnR3YXJlIDIwMTEIusW0AAAAMXRFWHRpY2M6ZGVzY3JpcHRpb24AQXJ0aWZleCBTb2Z0d2FyZSBzUkdCIElDQyBQcm9maWxlEwwBhgAAABN0RVh0cGRmOlZlcnNpb24AUERGLTEuNVM2WsEAAABKdEVYdHNpZ25hdHVyZQA4Njk5YjMxODZlNDM2M2Q5NzdkN2U2YTEwZjY5OTkwYmZkZjczZDE5NjY3YmNjMzYzYTVlYTFmODkzYjE4NDgzQc2guwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "dot:\n", "dot failed:\n", "Traceback (most recent call last):\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py\", line 86, in render\n", " render(fd).render(dirpath + \"/\" + name + \".pdf\", **dynarg)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/dot.py\", line 72, in __init__\n", " self.set_feynman_diagram(fd)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/dot.py\", line 76, in set_feynman_diagram\n", " self.src_dot = feynman_to_dot(\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/interface/dot.py\", line 27, in feynman_to_dot\n", " thestyle = styler(p)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/dot.py\", line 33, in stylize_connect\n", " style = 'style=\"{}\",texmode=\"raw\"'.format(map_feyn_to_tikz[c.type])\n", "KeyError: 'anti fermion'\n", "\n", "feynman:\n", "feynman failed:\n", "Traceback (most recent call last):\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py\", line 86, in render\n", " render(fd).render(dirpath + \"/\" + name + \".pdf\", **dynarg)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/mpl/feynmanrender.py\", line 68, in render\n", " scaley = 1.0 / (maxy - miny) * buffer\n", "ZeroDivisionError: float division by zero\n", "\n", "mpl:\n", "mpl failed:\n", "Traceback (most recent call last):\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py\", line 86, in render\n", " render(fd).render(dirpath + \"/\" + name + \".pdf\", **dynarg)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/mpl/mpl.py\", line 138, in render\n", " namedlines[p.type](idtopos[p.source], idtopos[p.target])\n", "KeyError: 'anti fermion'\n", "\n", "ascii:\n", "ascii failed:\n", "Traceback (most recent call last):\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py\", line 86, in render\n", " render(fd).render(dirpath + \"/\" + name + \".pdf\", **dynarg)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/asciipdf.py\", line 25, in render\n", " ASCIIRender.render(self, file, show, resolution, width, height)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/ascii.py\", line 150, in render\n", " self.namedlines[p.type]().draw(pane, src, tar, **fmt)\n", "KeyError: 'anti fermion'\n", "\n", "unicode:\n", "unicode failed:\n", "Traceback (most recent call last):\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py\", line 86, in render\n", " render(fd).render(dirpath + \"/\" + name + \".pdf\", **dynarg)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/unicodepdf.py\", line 64, in render\n", " UnicodeRender.render(self, file, show, resolution, width, height)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/ascii.py\", line 150, in render\n", " self.namedlines[p.type]().draw(pane, src, tar, **fmt)\n", "KeyError: 'anti fermion'\n", "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGdCAYAAADuR1K7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAkFElEQVR4nO3de3CU1eH/8c+G3EBM0kDIEg1ykQIKEg0mLv1OUZMalKmkoGJK5dIU1AIFgyigwmjrpOIFL6DR6QjDCEKxiBUpDgbBC2uAgFUiZMAiVzeImF0ukkRyfn/wY9uVJCQhm02O79fMjvLsObvnsCz7nie7i8MYYwQAAGCJsFAvAAAAoCkRNwAAwCrEDQAAsApxAwAArELcAAAAqxA3AADAKsQNAACwCnEDAACsEh7qBYRCdXW1Dh06pIsvvlgOhyPUywEAAPVgjNGxY8eUlJSksLDaz8/8JOPm0KFDSk5ODvUyAABAI+zfv1+XXnpprdf/JOPm4osvlnTmNycmJibEqwEAAPXh8/mUnJzsfx2vzU8ybs7+KComJoa4AQCglTnfW0p4QzEAALAKcQMAAKxC3AAAAKsQNwAAwCrEDQAAsApxAwAArELcAAAAqxA3AADAKsQNAACwCnEDAACsQtwAAACrEDcAAMAqxA0AALAKcQMAAKxC3AAAAKsQNwAAwCrEDQAAsApxAwAArELcAAAAqxA3AADAKsQNAACwCnEDAACsQtwAAACrEDcAAMAqxA0AALAKcQMAAKxC3AAAAKsQNwAAwCrEDQAAsApxAwAArELcAAAAqxA3AADAKsQNAACwCnEDAACsQtwAAACrEDcAAMAqxA0AALAKcQMAAKxC3AAAAKsQNwAAwCrEDQAAsApxAwAArELcAAAAqzRL3MyfP19du3ZVdHS00tPTtWnTpjrHL1++XL1791Z0dLT69eun1atX1zr2nnvukcPh0LPPPtvEqwYAAK1R0ONm2bJlysvL0+zZs7V161b1799fWVlZOnz4cI3jN27cqJycHOXm5mrbtm3Kzs5Wdna2tm/ffs7YN998U5988omSkpKCvQ0AANBKBD1unnnmGY0bN05jx47VFVdcoYKCArVr106vvvpqjeOfe+45DR48WNOmTVOfPn305z//Wddcc43mzZsXMO7gwYOaNGmSFi9erIiIiGBvAwAAtBJBjZvKykoVFxcrMzPzv3cYFqbMzEy53e4a57jd7oDxkpSVlRUwvrq6WnfddZemTZumK6+88rzrqKiokM/nC7gAAAA7BTVujhw5otOnTysxMTHgeGJiojweT41zPB7Pecc/8cQTCg8P15/+9Kd6rSM/P1+xsbH+S3JycgN3AgAAWotW92mp4uJiPffcc1q4cKEcDke95syYMUNer9d/2b9/f5BXCQAAQiWocdOxY0e1adNGZWVlAcfLysrkdDprnON0Ousc/+GHH+rw4cPq0qWLwsPDFR4err1792rq1Knq2rVrjbcZFRWlmJiYgAsAALBTUOMmMjJSqampKiws9B+rrq5WYWGhXC5XjXNcLlfAeElau3atf/xdd92lzz77TJ9++qn/kpSUpGnTpundd98N3mYAAECrEB7sO8jLy9Po0aM1YMAApaWl6dlnn9WJEyc0duxYSdKoUaN0ySWXKD8/X5I0efJkDRo0SE8//bSGDBmipUuXasuWLXrllVckSR06dFCHDh0C7iMiIkJOp1O9evUK9nYAAEALF/S4GTFihL755hvNmjVLHo9HKSkpWrNmjf9Nw/v27VNY2H9PIA0cOFBLlizRww8/rJkzZ6pnz55auXKl+vbtG+ylAgAACziMMSbUi2huPp9PsbGx8nq9vP8GAIBWor6v363u01IAAAB1IW4AAIBViBsAAGAV4gYAAFiFuAEAAFYhbgAAgFWIGwAAYBXiBgAAWIW4AQAAViFuAACAVYgbAABgFeIGAABYhbgBAABWIW4AAIBViBsAAGAV4gYAAFiFuAEAAFYhbgAAgFWIGwAAYBXiBgAAWIW4AQAAViFuAACAVYgbAABgFeIGAABYhbgBAABWIW4AAIBViBsAAGAV4gYAAFiFuAEAAFYhbgAAgFWIGwAAYBXiBgAAWIW4AQAAViFuAACAVYgbAABgFeIGAABYhbgBAABWIW4AAIBViBsAAGAV4gYAAFiFuAEAAFYhbgAAgFWIGwAAYBXiBgAAWIW4AQAAViFuAACAVYgbAABgFeIGAABYhbgBAABWIW4AAIBViBsAAGAV4gYAAFiFuAEAAFYhbgAAgFWIGwAAYBXiBgAAWKVZ4mb+/Pnq2rWroqOjlZ6erk2bNtU5fvny5erdu7eio6PVr18/rV692n9dVVWVHnzwQfXr108XXXSRkpKSNGrUKB06dCjY2wAAAK1A0ONm2bJlysvL0+zZs7V161b1799fWVlZOnz4cI3jN27cqJycHOXm5mrbtm3Kzs5Wdna2tm/fLkk6efKktm7dqkceeURbt27VihUrVFpaqltvvTXYWwEAAK2AwxhjgnkH6enpuvbaazVv3jxJUnV1tZKTkzVp0iRNnz79nPEjRozQiRMntGrVKv+x6667TikpKSooKKjxPjZv3qy0tDTt3btXXbp0Oe+afD6fYmNj5fV6FRMT08idAQCA5lTf1++gnrmprKxUcXGxMjMz/3uHYWHKzMyU2+2ucY7b7Q4YL0lZWVm1jpckr9crh8OhuLi4Gq+vqKiQz+cLuAAAADsFNW6OHDmi06dPKzExMeB4YmKiPB5PjXM8Hk+Dxp86dUoPPvigcnJyaq24/Px8xcbG+i/JycmN2A0AAGgNWvWnpaqqqnTHHXfIGKOXXnqp1nEzZsyQ1+v1X/bv39+MqwQAAM0pPJg33rFjR7Vp00ZlZWUBx8vKyuR0Omuc43Q66zX+bNjs3btX69atq/Nnb1FRUYqKimrkLgAAQGsS1DM3kZGRSk1NVWFhof9YdXW1CgsL5XK5apzjcrkCxkvS2rVrA8afDZtdu3bpvffeU4cOHYKzAQAA0OoE9cyNJOXl5Wn06NEaMGCA0tLS9Oyzz+rEiRMaO3asJGnUqFG65JJLlJ+fL0maPHmyBg0apKefflpDhgzR0qVLtWXLFr3yyiuSzoTNbbfdpq1bt2rVqlU6ffq0//048fHxioyMDPaWAABACxb0uBkxYoS++eYbzZo1Sx6PRykpKVqzZo3/TcP79u1TWNh/TyANHDhQS5Ys0cMPP6yZM2eqZ8+eWrlypfr27StJOnjwoP75z39KklJSUgLu6/3339f1118f7C0BAIAWLOjfc9MS8T03AAC0Pi3ie24AAACaG3EDAACsQtwAAACrEDcAAMAqxA0AALAKcQMAAKxC3AAAAKsQNwAAwCrEDQAAsApxAwAArELcAAAAqxA3AADAKsQNAACwCnEDAACsQtwAAACrEDcAAMAqxA0AALAKcQMAAKxC3AAAAKsQNwAAwCrEDQAAsApxAwAArELcAAAAqxA3AADAKsQNAACwCnEDAACsQtwAAACrEDcAAMAqxA0AALAKcQMAAKxC3AAAAKsQNwAAwCrEDQAAsApxAwAArELcAAAAqxA3AADAKsQNAACwCnEDAACsQtwAAACrEDcAAMAqxA0AALAKcQMAAKxC3AAAAKsQNwAAwCrEDQAAsApxAwAArELcAAAAqxA3AADAKsQNAACwCnEDAACsQtwAAACrEDcAAMAqxA0AALAKcQMAAKxC3AAAAKsQNwAAwCrNEjfz589X165dFR0drfT0dG3atKnO8cuXL1fv3r0VHR2tfv36afXq1QHXG2M0a9Ysde7cWW3btlVmZqZ27doVzC0AAIBWIuhxs2zZMuXl5Wn27NnaunWr+vfvr6ysLB0+fLjG8Rs3blROTo5yc3O1bds2ZWdnKzs7W9u3b/ePmTNnjp5//nkVFBSoqKhIF110kbKysnTq1KlgbwcAALRwDmOMCeYdpKen69prr9W8efMkSdXV1UpOTtakSZM0ffr0c8aPGDFCJ06c0KpVq/zHrrvuOqWkpKigoEDGGCUlJWnq1Km6//77JUler1eJiYlauHCh7rzzzvOuyefzKTY2Vl6vVzExMU200zNnlE6ePNlktwcAQGvVrl07ORyOJr3N+r5+hzfpvf5IZWWliouLNWPGDP+xsLAwZWZmyu121zjH7XYrLy8v4FhWVpZWrlwpSdqzZ488Ho8yMzP918fGxio9PV1ut7vGuKmoqFBFRYX/1z6f70K2VauTJ0+qffv2QbltAABak+PHj+uiiy4KyX0H9cdSR44c0enTp5WYmBhwPDExUR6Pp8Y5Ho+nzvFn/9uQ28zPz1dsbKz/kpyc3Kj9AACAli+oZ25aihkzZgScDfL5fEEJnHbt2un48eNNfrsAALQ27dq1C9l9BzVuOnbsqDZt2qisrCzgeFlZmZxOZ41znE5nnePP/resrEydO3cOGJOSklLjbUZFRSkqKqqx26g3h8MRslNwAADgjKD+WCoyMlKpqakqLCz0H6uurlZhYaFcLleNc1wuV8B4SVq7dq1/fLdu3eR0OgPG+Hw+FRUV1XqbAADgpyPoP5bKy8vT6NGjNWDAAKWlpenZZ5/ViRMnNHbsWEnSqFGjdMkllyg/P1+SNHnyZA0aNEhPP/20hgwZoqVLl2rLli165ZVXJJ05OzJlyhT95S9/Uc+ePdWtWzc98sgjSkpKUnZ2drC3AwAAWrigx82IESP0zTffaNasWfJ4PEpJSdGaNWv8bwjet2+fwsL+ewJp4MCBWrJkiR5++GHNnDlTPXv21MqVK9W3b1//mAceeEAnTpzQ+PHjVV5erv/7v//TmjVrFB0dHeztAACAFi7o33PTEgXre24AAEDw1Pf1m39bCgAAWIW4AQAAViFuAACAVYgbAABgFeIGAABYhbgBAABWIW4AAIBViBsAAGAV4gYAAFiFuAEAAFYhbgAAgFWIGwAAYBXiBgAAWIW4AQAAViFuAACAVYgbAABgFeIGAABYhbgBAABWIW4AAIBViBsAAGAV4gYAAFiFuAEAAFYhbgAAgFWIGwAAYBXiBgAAWIW4AQAAViFuAACAVYgbAABgFeIGAABYhbgBAABWIW4AAIBViBsAAGAV4gYAAFiFuAEAAFYhbgAAgFWIGwAAYBXiBgAAWIW4AQAAViFuAACAVYgbAABgFeIGAABYhbgBAABWIW4AAIBViBsAAGAV4gYAAFiFuAEAAFYhbgAAgFWIGwAAYBXiBgAAWIW4AQAAViFuAACAVYgbAABgFeIGAABYhbgBAABWIW4AAIBViBsAAGCVoMXN0aNHNXLkSMXExCguLk65ubk6fvx4nXNOnTqlCRMmqEOHDmrfvr2GDx+usrIy//X//ve/lZOTo+TkZLVt21Z9+vTRc889F6wtAACAVihocTNy5EiVlJRo7dq1WrVqlT744AONHz++zjn33Xef3n77bS1fvlwbNmzQoUOHNGzYMP/1xcXF6tSpk1577TWVlJTooYce0owZMzRv3rxgbQMAALQyDmOMaeob3bFjh6644gpt3rxZAwYMkCStWbNGt9xyiw4cOKCkpKRz5ni9XiUkJGjJkiW67bbbJEk7d+5Unz595Ha7dd1119V4XxMmTNCOHTu0bt26eq/P5/MpNjZWXq9XMTExjdghAABobvV9/Q7KmRu32624uDh/2EhSZmamwsLCVFRUVOOc4uJiVVVVKTMz03+sd+/e6tKli9xud6335fV6FR8f33SLBwAArVp4MG7U4/GoU6dOgXcUHq74+Hh5PJ5a50RGRiouLi7geGJiYq1zNm7cqGXLlumdd96pcz0VFRWqqKjw/9rn89VjFwAAoDVq0Jmb6dOny+Fw1HnZuXNnsNYaYPv27Ro6dKhmz56tm266qc6x+fn5io2N9V+Sk5ObZY0AAKD5NejMzdSpUzVmzJg6x3Tv3l1Op1OHDx8OOP7DDz/o6NGjcjqdNc5zOp2qrKxUeXl5wNmbsrKyc+Z88cUXysjI0Pjx4/Xwww+fd90zZsxQXl6e/9c+n4/AAQDAUg2Km4SEBCUkJJx3nMvlUnl5uYqLi5WamipJWrdunaqrq5Wenl7jnNTUVEVERKiwsFDDhw+XJJWWlmrfvn1yuVz+cSUlJbrxxhs1evRoPf744/Vad1RUlKKiouo1FgAAtG5B+bSUJN18880qKytTQUGBqqqqNHbsWA0YMEBLliyRJB08eFAZGRlatGiR0tLSJEn33nuvVq9erYULFyomJkaTJk2SdOa9NdKZH0XdeOONysrK0pNPPum/rzZt2tQrus7i01IAALQ+9X39DsobiiVp8eLFmjhxojIyMhQWFqbhw4fr+eef919fVVWl0tJSnTx50n9s7ty5/rEVFRXKysrSiy++6L/+jTfe0DfffKPXXntNr732mv/4ZZddpq+++ipYWwEAAK1I0M7ctGScuQEAoPUJ6ffcAAAAhApxAwAArELcAAAAqxA3AADAKsQNAACwCnEDAACsQtwAAACrEDcAAMAqxA0AALAKcQMAAKxC3AAAAKsQNwAAwCrEDQAAsApxAwAArELcAAAAqxA3AADAKsQNAACwCnEDAACsQtwAAACrEDcAAMAqxA0AALAKcQMAAKxC3AAAAKsQNwAAwCrEDQAAsApxAwAArELcAAAAqxA3AADAKsQNAACwCnEDAACsQtwAAACrEDcAAMAqxA0AALAKcQMAAKxC3AAAAKsQNwAAwCrEDQAAsApxAwAArELcAAAAqxA3AADAKsQNAACwCnEDAACsQtwAAACrEDcAAMAqxA0AALAKcQMAAKxC3AAAAKsQNwAAwCrEDQAAsApxAwAArELcAAAAqxA3AADAKsQNAACwCnEDAACsQtwAAACrEDcAAMAqxA0AALBK0OLm6NGjGjlypGJiYhQXF6fc3FwdP368zjmnTp3ShAkT1KFDB7Vv317Dhw9XWVlZjWO//fZbXXrppXI4HCovLw/CDgAAQGsUtLgZOXKkSkpKtHbtWq1atUoffPCBxo8fX+ec++67T2+//baWL1+uDRs26NChQxo2bFiNY3Nzc3XVVVcFY+kAAKAVcxhjTFPf6I4dO3TFFVdo8+bNGjBggCRpzZo1uuWWW3TgwAElJSWdM8fr9SohIUFLlizRbbfdJknauXOn+vTpI7fbreuuu84/9qWXXtKyZcs0a9YsZWRk6LvvvlNcXFy91+fz+RQbGyuv16uYmJgL2ywAAGgW9X39DsqZG7fbrbi4OH/YSFJmZqbCwsJUVFRU45zi4mJVVVUpMzPTf6x3797q0qWL3G63/9gXX3yhxx57TIsWLVJYWP2WX1FRIZ/PF3ABAAB2CkrceDwederUKeBYeHi44uPj5fF4ap0TGRl5zhmYxMRE/5yKigrl5OToySefVJcuXeq9nvz8fMXGxvovycnJDdsQAABoNRoUN9OnT5fD4ajzsnPnzmCtVTNmzFCfPn30u9/9rsHzvF6v/7J///4grRAAAIRaeEMGT506VWPGjKlzTPfu3eV0OnX48OGA4z/88IOOHj0qp9NZ4zyn06nKykqVl5cHnL0pKyvzz1m3bp0+//xzvfHGG5Kks28X6tixox566CE9+uijNd52VFSUoqKi6rNFAADQyjUobhISEpSQkHDecS6XS+Xl5SouLlZqaqqkM2FSXV2t9PT0GuekpqYqIiJChYWFGj58uCSptLRU+/btk8vlkiT94x//0Pfff++fs3nzZv3+97/Xhx9+qB49ejRkKwAAwFINipv66tOnjwYPHqxx48apoKBAVVVVmjhxou68807/J6UOHjyojIwMLVq0SGlpaYqNjVVubq7y8vIUHx+vmJgYTZo0SS6Xy/9JqR8HzJEjR/z315BPSwEAAHsFJW4kafHixZo4caIyMjIUFham4cOH6/nnn/dfX1VVpdLSUp08edJ/bO7cuf6xFRUVysrK0osvvhisJQIAAAsF5XtuWjq+5wYAgNYnpN9zAwAAECrEDQAAsApxAwAArELcAAAAqxA3AADAKsQNAACwCnEDAACsQtwAAACrEDcAAMAqxA0AALAKcQMAAKxC3AAAAKsQNwAAwCrEDQAAsApxAwAArELcAAAAqxA3AADAKsQNAACwCnEDAACsQtwAAACrEDcAAMAqxA0AALAKcQMAAKxC3AAAAKsQNwAAwCrEDQAAsApxAwAArELcAAAAqxA3AADAKsQNAACwCnEDAACsQtwAAACrEDcAAMAqxA0AALAKcQMAAKxC3AAAAKsQNwAAwCrEDQAAsApxAwAArELcAAAAqxA3AADAKsQNAACwSnioFxAKxhhJks/nC/FKAABAfZ193T77Ol6bn2TcHDt2TJKUnJwc4pUAAICGOnbsmGJjY2u93mHOlz8Wqq6u1qFDh3TxxRfL4XA06W37fD4lJydr//79iomJadLbbgnYX+tn+x7ZX+tn+x7ZX+MZY3Ts2DElJSUpLKz2d9b8JM/chIWF6dJLLw3qfcTExFj5h/Ys9tf62b5H9tf62b5H9tc4dZ2xOYs3FAMAAKsQNwAAwCrETROLiorS7NmzFRUVFeqlBAX7a/1s3yP7a/1s3yP7C76f5BuKAQCAvThzAwAArELcAAAAqxA3AADAKsQNAACwCnFzAb766ivl5uaqW7duatu2rXr06KHZs2ersrKyznmnTp3ShAkT1KFDB7Vv317Dhw9XWVlZM6264R5//HENHDhQ7dq1U1xcXL3mjBkzRg6HI+AyePDg4C60kRqzP2OMZs2apc6dO6tt27bKzMzUrl27grvQRjp69KhGjhypmJgYxcXFKTc3V8ePH69zzvXXX3/O43fPPfc004rPb/78+eratauio6OVnp6uTZs21Tl++fLl6t27t6Kjo9WvXz+tXr26mVbaOA3Z38KFC895rKKjo5txtQ3zwQcf6Ne//rWSkpLkcDi0cuXK885Zv369rrnmGkVFRenyyy/XwoULg77OC9HQPa5fv/6cx9DhcMjj8TTPghsgPz9f1157rS6++GJ16tRJ2dnZKi0tPe+85n4OEjcXYOfOnaqurtbLL7+skpISzZ07VwUFBZo5c2ad8+677z69/fbbWr58uTZs2KBDhw5p2LBhzbTqhqusrNTtt9+ue++9t0HzBg8erK+//tp/ef3114O0wgvTmP3NmTNHzz//vAoKClRUVKSLLrpIWVlZOnXqVBBX2jgjR45USUmJ1q5dq1WrVumDDz7Q+PHjzztv3LhxAY/fnDlzmmG157ds2TLl5eVp9uzZ2rp1q/r376+srCwdPny4xvEbN25UTk6OcnNztW3bNmVnZys7O1vbt29v5pXXT0P3J535Jtj/faz27t3bjCtumBMnTqh///6aP39+vcbv2bNHQ4YM0Q033KBPP/1UU6ZM0R/+8Ae9++67QV5p4zV0j2eVlpYGPI6dOnUK0gobb8OGDZowYYI++eQTrV27VlVVVbrpppt04sSJWueE5Dlo0KTmzJljunXrVuv15eXlJiIiwixfvtx/bMeOHUaScbvdzbHERluwYIGJjY2t19jRo0eboUOHBnU9Ta2++6uurjZOp9M8+eST/mPl5eUmKirKvP7660FcYcN98cUXRpLZvHmz/9i//vUv43A4zMGDB2udN2jQIDN58uRmWGHDpaWlmQkTJvh/ffr0aZOUlGTy8/NrHH/HHXeYIUOGBBxLT083d999d1DX2VgN3V9DnpctjSTz5ptv1jnmgQceMFdeeWXAsREjRpisrKwgrqzp1GeP77//vpFkvvvuu2ZZU1M6fPiwkWQ2bNhQ65hQPAc5c9PEvF6v4uPja72+uLhYVVVVyszM9B/r3bu3unTpIrfb3RxLbDbr169Xp06d1KtXL91777369ttvQ72kJrFnzx55PJ6AxzA2Nlbp6ekt7jF0u92Ki4vTgAED/McyMzMVFhamoqKiOucuXrxYHTt2VN++fTVjxgydPHky2Ms9r8rKShUXFwf83oeFhSkzM7PW33u32x0wXpKysrJa3GMlNW5/knT8+HFddtllSk5O1tChQ1VSUtIcy20Wrenxu1ApKSnq3LmzfvWrX+njjz8O9XLqxev1SlKdr3uheAx/kv9wZrDs3r1bL7zwgp566qlax3g8HkVGRp7z3o7ExMQW+fPVxho8eLCGDRumbt266csvv9TMmTN18803y+12q02bNqFe3gU5+zglJiYGHG+Jj6HH4znn1HZ4eLji4+PrXOtvf/tbXXbZZUpKStJnn32mBx98UKWlpVqxYkWwl1ynI0eO6PTp0zX+3u/cubPGOR6Pp1U8VlLj9terVy+9+uqruuqqq+T1evXUU09p4MCBKikpCfo/ENwcanv8fD6fvv/+e7Vt2zZEK2s6nTt3VkFBgQYMGKCKigr97W9/0/XXX6+ioiJdc801oV5eraqrqzVlyhT94he/UN++fWsdF4rnIGduajB9+vQa39z1v5cf/0Vz8OBBDR48WLfffrvGjRsXopXXX2P22BB33nmnbr31VvXr10/Z2dlatWqVNm/erPXr1zfdJuoQ7P2FWrD3N378eGVlZalfv34aOXKkFi1apDfffFNffvllE+4CTcHlcmnUqFFKSUnRoEGDtGLFCiUkJOjll18O9dJQT7169dLdd9+t1NRUDRw4UK+++qoGDhyouXPnhnppdZowYYK2b9+upUuXhnop5+DMTQ2mTp2qMWPG1Dmme/fu/v8/dOiQbrjhBg0cOFCvvPJKnfOcTqcqKytVXl4ecPamrKxMTqfzQpbdIA3d44Xq3r27OnbsqN27dysjI6PJbrc2wdzf2ceprKxMnTt39h8vKytTSkpKo26zoeq7P6fTec4bUX/44QcdPXq0QX/e0tPTJZ05O9mjR48Gr7epdOzYUW3atDnn04V1PX+cTmeDxodSY/b3YxEREbr66qu1e/fuYCyx2dX2+MXExFhx1qY2aWlp+uijj0K9jFpNnDjR/wGF850hDMVzkLipQUJCghISEuo19uDBg7rhhhuUmpqqBQsWKCys7pNhqampioiIUGFhoYYPHy7pzDvk9+3bJ5fLdcFrr6+G7LEpHDhwQN9++21ADARTMPfXrVs3OZ1OFRYW+mPG5/OpqKiowZ8oa6z67s/lcqm8vFzFxcVKTU2VJK1bt07V1dX+YKmPTz/9VJKa7fGrTWRkpFJTU1VYWKjs7GxJZ06NFxYWauLEiTXOcblcKiws1JQpU/zH1q5d26zPt/pqzP5+7PTp0/r88891yy23BHGlzcflcp3zseGW+vg1pU8//TTkz7eaGGM0adIkvfnmm1q/fr26det23jkheQ4G7a3KPwEHDhwwl19+ucnIyDAHDhwwX3/9tf/yv2N69eplioqK/Mfuuece06VLF7Nu3TqzZcsW43K5jMvlCsUW6mXv3r1m27Zt5tFHHzXt27c327ZtM9u2bTPHjh3zj+nVq5dZsWKFMcaYY8eOmfvvv9+43W6zZ88e895775lrrrnG9OzZ05w6dSpU26hVQ/dnjDF//etfTVxcnHnrrbfMZ599ZoYOHWq6detmvv/++1BsoU6DBw82V199tSkqKjIfffSR6dmzp8nJyfFf/+M/o7t37zaPPfaY2bJli9mzZ4956623TPfu3c0vf/nLUG0hwNKlS01UVJRZuHCh+eKLL8z48eNNXFyc8Xg8xhhj7rrrLjN9+nT/+I8//tiEh4ebp556yuzYscPMnj3bREREmM8//zxUW6hTQ/f36KOPmnfffdd8+eWXpri42Nx5550mOjralJSUhGoLdTp27Jj/OSbJPPPMM2bbtm1m7969xhhjpk+fbu666y7/+P/85z+mXbt2Ztq0aWbHjh1m/vz5pk2bNmbNmjWh2sJ5NXSPc+fONStXrjS7du0yn3/+uZk8ebIJCwsz7733Xqi2UKt7773XxMbGmvXr1we85p08edI/piU8B4mbC7BgwQIjqcbLWXv27DGSzPvvv+8/9v3335s//vGP5mc/+5lp166d+c1vfhMQRC3N6NGja9zj/+5JklmwYIExxpiTJ0+am266ySQkJJiIiAhz2WWXmXHjxvn/cm5pGro/Y858HPyRRx4xiYmJJioqymRkZJjS0tLmX3w9fPvttyYnJ8e0b9/exMTEmLFjxwaE24//jO7bt8/88pe/NPHx8SYqKspcfvnlZtq0acbr9YZoB+d64YUXTJcuXUxkZKRJS0szn3zyif+6QYMGmdGjRweM//vf/25+/vOfm8jISHPllVead955p5lX3DAN2d+UKVP8YxMTE80tt9xitm7dGoJV18/Zjz3/+HJ2T6NHjzaDBg06Z05KSoqJjIw03bt3D3gutkQN3eMTTzxhevToYaKjo018fLy5/vrrzbp160Kz+POo7TXvfx+TlvAcdPz/xQIAAFiBT0sBAACrEDcAAMAqxA0AALAKcQMAAKxC3AAAAKsQNwAAwCrEDQAAsApxAwAArELcAAAAqxA3AADAKsQNAACwCnEDAACs8v8A4dWEFMU7Q1AAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "v1 = Vertex(x=-2,y=0)\n", "v2 = Vertex(x= 2,y=0)\n", "l1 = Leg(x=-4,y=0,pdgid=25)\n", "l2 = Leg(x= 4,y=0,pdgid=25)\n", "\n", "fd = FeynmanDiagram().add(\n", " v1, v2,\n", " Propagator(pdgid=6).connect(v1, v2),\n", " Propagator(pdgid=-6).connect(v1, v2),\n", " l1.with_target(v1).with_incoming(),\n", " l2.with_target(v2).with_outgoing(),\n", ")\n", "auto_label(fd.propagators + fd.legs)\n", "auto_bend(fd)\n", "ar = AllRender(fd)\n", "ar.render()" ] }, { "cell_type": "code", "execution_count": 4, "id": "8abc4e93", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pyx:\n", "pyx failed:\n", "Traceback (most recent call last):\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py\", line 86, in render\n", " render(fd).render(dirpath + \"/\" + name + \".pdf\", **dynarg)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/pyx/pyxrender.py\", line 53, in render\n", " nl = NamedLine[p.type](Point(src.x, src.y), Point(tar.x, tar.y))\n", "KeyError: 'anti fermion'\n", "\n", "feynmp:\n", "feynmp failed:\n", "Traceback (most recent call last):\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py\", line 86, in render\n", " render(fd).render(dirpath + \"/\" + name + \".pdf\", **dynarg)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/feynmp.py\", line 139, in __init__\n", " self.set_feynman_diagram(fd)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/feynmp.py\", line 143, in set_feynman_diagram\n", " self.set_src_diag(NoEscape(feynman_to_feynmp(fd)))\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/feynmp.py\", line 104, in feynman_to_feynmp\n", " tttype = type_map[p.type]\n", "KeyError: 'anti fermion'\n", "\n", "tikz:\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "dot:\n", "dot failed:\n", "Traceback (most recent call last):\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py\", line 86, in render\n", " render(fd).render(dirpath + \"/\" + name + \".pdf\", **dynarg)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/dot.py\", line 72, in __init__\n", " self.set_feynman_diagram(fd)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/dot.py\", line 76, in set_feynman_diagram\n", " self.src_dot = feynman_to_dot(\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/interface/dot.py\", line 27, in feynman_to_dot\n", " thestyle = styler(p)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/dot.py\", line 33, in stylize_connect\n", " style = 'style=\"{}\",texmode=\"raw\"'.format(map_feyn_to_tikz[c.type])\n", "KeyError: 'anti fermion'\n", "\n", "feynman:\n", "feynman failed:\n", "Traceback (most recent call last):\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py\", line 86, in render\n", " render(fd).render(dirpath + \"/\" + name + \".pdf\", **dynarg)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/mpl/feynmanrender.py\", line 68, in render\n", " scaley = 1.0 / (maxy - miny) * buffer\n", "ZeroDivisionError: float division by zero\n", "\n", "mpl:\n", "mpl failed:\n", "Traceback (most recent call last):\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py\", line 86, in render\n", " render(fd).render(dirpath + \"/\" + name + \".pdf\", **dynarg)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/mpl/mpl.py\", line 138, in render\n", " namedlines[p.type](idtopos[p.source], idtopos[p.target])\n", "KeyError: 'anti fermion'\n", "\n", "ascii:\n", "ascii failed:\n", "Traceback (most recent call last):\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py\", line 86, in render\n", " render(fd).render(dirpath + \"/\" + name + \".pdf\", **dynarg)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/asciipdf.py\", line 25, in render\n", " ASCIIRender.render(self, file, show, resolution, width, height)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/ascii.py\", line 150, in render\n", " self.namedlines[p.type]().draw(pane, src, tar, **fmt)\n", "KeyError: 'anti fermion'\n", "\n", "unicode:\n", "unicode failed:\n", "Traceback (most recent call last):\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py\", line 86, in render\n", " render(fd).render(dirpath + \"/\" + name + \".pdf\", **dynarg)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/unicodepdf.py\", line 64, in render\n", " UnicodeRender.render(self, file, show, resolution, width, height)\n", " File \"/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/ascii.py\", line 150, in render\n", " self.namedlines[p.type]().draw(pane, src, tar, **fmt)\n", "KeyError: 'anti fermion'\n", "\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "v1 = Vertex(x=-2,y=0)\n", "v2 = Vertex(x= 2,y=0)\n", "l1 = Leg(x=-4,y=0,pdgid=25)\n", "l2 = Leg(x= 4,y=0,pdgid=25)\n", "\n", "fd = FeynmanDiagram().add(\n", " v1, v2,\n", " Propagator(pdgid=6).connect(v1, v2),\n", " Propagator(pdgid=-6).connect(v1, v2),\n", " #l1.with_target(v1).with_incoming(),\n", " #l2.with_target(v2).with_outgoing(),\n", ")\n", "auto_label(fd.propagators + fd.legs)\n", "auto_bend(fd)\n", "ar = AllRender(fd)\n", "ar.render()" ] }, { "cell_type": "code", "execution_count": 5, "id": "e06dc9c3", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'\\n\\n \\n t\\n Vertex27\\n Vertex28\\n \\n \\n t~\\n Vertex27\\n Vertex28\\n \\n \\n \\n\\n'" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [] }, { "cell_type": "code", "execution_count": 9, "id": "cffd8d56", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "cssutils.css.CSSStyleDeclaration(cssText='ok: true; kek: true; kek: true')" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "d90210fd", "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 }