{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "dd3c9519",
   "metadata": {},
   "source": [
    "# 1 to 1 process"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "b35a693f",
   "metadata": {},
   "outputs": [],
   "source": [
    "from smpl_io import io"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "8fdd58fc",
   "metadata": {},
   "outputs": [],
   "source": [
    "from feynml.interface.qgraf import style\n",
    "import itertools as it\n",
    "import re"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "1c37732f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\tPlease cite the following papers if you use this code:\n",
      "\n",
      "      [1] Automatic Feynman graph generation J. Comput. Phys. 105 (1993) 279--289 https://doi.org/10.1006/jcph.1993.1074\n",
      "\n",
      "      [2] Abusing Qgraf Nucl. Instrum. Methods Phys. Res. A 559 (2006) 220--223 https://doi.org/10.1016/j.nima.2005.11.151\n",
      "\n",
      "      [3] Feynman graph generation and propagator mixing, I Comput. Phys. Commun. 269 (2021) 108103 https://doi.org/10.1016/j.cpc.2021.108103\n",
      "\n",
      "\t\n"
     ]
    }
   ],
   "source": [
    "from pyqgraf import qgraf, model\n",
    "qgraf.install(\"3.6.5\")\n",
    "xml_string = qgraf.run(\"nu_e[p1]\", \"nu_e[p1]\",loops=2,loop_momentum=\"l\",model = model.gws_UnitaryGauge_reduced, style=style)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "23fe988d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "single photon diags 2\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<wand.image.Image: 832f0ec 'PDF' (540x117)>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<wand.image.Image: 45830d0 'PDF' (540x137)>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from xsdata.formats.dataclass.parsers import XmlParser\n",
    "from pyfeyn2.render.latex.feynmp import FeynmpRender\n",
    "from pyfeyn2.render.latex.tikzfeynman import TikzFeynmanRender\n",
    "from pyfeyn2.render.pyx.pyxrender import PyxRender\n",
    "from pyfeyn2.feynmandiagram import FeynML\n",
    "\n",
    "from pyfeyn2.auto.bend import auto_bend\n",
    "from pyfeyn2.auto.label import auto_label\n",
    "from pyfeyn2.auto.position import feynman_adjust_points,auto_vdw\n",
    "\n",
    "parser = XmlParser()\n",
    "fml = parser.from_string(xml_string, FeynML)\n",
    "\n",
    "def filter_diag(d):\n",
    "    count = 0\n",
    "    ecount = 0\n",
    "    for p in d.propagators:\n",
    "        if p.pdgid == 22:\n",
    "            count +=1\n",
    "        if p.pdgid == 11:\n",
    "            ecount +=1\n",
    "    if count ==1 and ecount >=2:\n",
    "        return True\n",
    "    return False\n",
    "\n",
    "ccount=0 \n",
    "for d in fml.diagrams:\n",
    "    if filter_diag(d):\n",
    "        ccount +=1\n",
    "print(\"single photon diags\", ccount)\n",
    "\n",
    "for d in fml.diagrams:\n",
    "    if filter_diag(d):\n",
    "        d.legs[0].with_xy(-2,0)\n",
    "        d.legs[1].with_xy(2,0)\n",
    "        d.get_point(d.legs[0].target).with_xy(-1,0)\n",
    "        d.get_point(d.legs[1].target).with_xy(1,0)\n",
    "        d = feynman_adjust_points(d,size=15,clear_vertices=False)\n",
    "        auto_bend(d)\n",
    "        auto_label(d.propagators)\n",
    "        auto_label(d.legs)\n",
    "        #print(d)\n",
    "        t = TikzFeynmanRender(d)\n",
    "        #print(t.get_src())\n",
    "        t.render(show=True)\n",
    "        #break"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "ab4399ea",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<!--\n",
      " file generated by qgraf-3.6.5\n",
      "\n",
      "  output= 'output.out' ;\n",
      "  style= 'tmp.sty' ;\n",
      "  model = 'tmp.model';\n",
      "  in= nu_e[p1];\n",
      "  out= nu_e[p1];\n",
      "  loops= 2;\n",
      "  loop_momentum= l;\n",
      "  options= notadpole,onshell;\n",
      "\n",
      "\n",
      " You must add x= and y= with suitable vertex positions.\n",
      " Some lines may need manual bending to render properly.\n",
      "-->\n",
      "<feynml>\n",
      " \n",
      " <diagram\n",
      "          id=\"Diagram1\"\n",
      "          incoming=\"1\"\n",
      "          outgoing=\"1\"\n",
      "          sign=\"+\"\n",
      "          symmmetry_factor=\"1/2\"\n",
      " >\n",
      "\n",
      "\n",
      "  <vertex id=\"Vert1\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert2\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert3\">\n",
      "  </vertex>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"In1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>incoming</sense>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"Out1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>outgoing</sense>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <propagator id=\"Prop1\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert1</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>l1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop2\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>l1-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop3\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert2</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>l1-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop4\">\n",
      "        <name>gamma</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "\n",
      " </diagram>\n",
      " \n",
      " <diagram\n",
      "          id=\"Diagram2\"\n",
      "          incoming=\"1\"\n",
      "          outgoing=\"1\"\n",
      "          sign=\"+\"\n",
      "          symmmetry_factor=\"1\"\n",
      " >\n",
      "\n",
      "\n",
      "  <vertex id=\"Vert1\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert2\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert3\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert4\">\n",
      "  </vertex>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"In1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>incoming</sense>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"Out1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>outgoing</sense>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <propagator id=\"Prop1\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert1</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>l1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop2\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>l1-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop3\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>-l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop4\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert2</source>\n",
      "        <target>Vert4</target>\n",
      "        <momentum>\n",
      "          <name>-l2-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop5\">\n",
      "        <name>gamma</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>-l1-l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "\n",
      " </diagram>\n",
      " \n",
      " <diagram\n",
      "          id=\"Diagram3\"\n",
      "          incoming=\"1\"\n",
      "          outgoing=\"1\"\n",
      "          sign=\"+\"\n",
      "          symmmetry_factor=\"1\"\n",
      " >\n",
      "\n",
      "\n",
      "  <vertex id=\"Vert1\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert2\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert3\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert4\">\n",
      "  </vertex>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"In1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>incoming</sense>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"Out1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>outgoing</sense>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <propagator id=\"Prop1\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert1</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>l1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop2\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>l1-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop3\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>-l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop4\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert2</source>\n",
      "        <target>Vert4</target>\n",
      "        <momentum>\n",
      "          <name>-l2-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop5\">\n",
      "        <name>Z_0</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>-l1-l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "\n",
      " </diagram>\n",
      " \n",
      " <diagram\n",
      "          id=\"Diagram4\"\n",
      "          incoming=\"1\"\n",
      "          outgoing=\"1\"\n",
      "          sign=\"+\"\n",
      "          symmmetry_factor=\"1\"\n",
      " >\n",
      "\n",
      "\n",
      "  <vertex id=\"Vert1\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert2\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert3\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert4\">\n",
      "  </vertex>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"In1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>incoming</sense>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"Out1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>outgoing</sense>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <propagator id=\"Prop1\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert1</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>l1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop2\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>l1-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop3\">\n",
      "        <name>nu_e</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>-l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop4\">\n",
      "        <name>Z_0</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>l2+p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop5\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert4</target>\n",
      "        <momentum>\n",
      "          <name>l1+l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "\n",
      " </diagram>\n",
      " \n",
      " <diagram\n",
      "          id=\"Diagram5\"\n",
      "          incoming=\"1\"\n",
      "          outgoing=\"1\"\n",
      "          sign=\"+\"\n",
      "          symmmetry_factor=\"1\"\n",
      " >\n",
      "\n",
      "\n",
      "  <vertex id=\"Vert1\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert2\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert3\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert4\">\n",
      "  </vertex>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"In1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>incoming</sense>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"Out1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>outgoing</sense>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <propagator id=\"Prop1\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert1</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>l1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop2\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>l1-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop3\">\n",
      "        <name>Z_0</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>-l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop4\">\n",
      "        <name>nu_e</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>l2+p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop5\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert4</target>\n",
      "        <momentum>\n",
      "          <name>l1+l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "\n",
      " </diagram>\n",
      " \n",
      " <diagram\n",
      "          id=\"Diagram6\"\n",
      "          incoming=\"1\"\n",
      "          outgoing=\"1\"\n",
      "          sign=\"+\"\n",
      "          symmmetry_factor=\"1\"\n",
      " >\n",
      "\n",
      "\n",
      "  <vertex id=\"Vert1\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert2\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert3\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert4\">\n",
      "  </vertex>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"In1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>incoming</sense>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"Out1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>outgoing</sense>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <propagator id=\"Prop1\">\n",
      "        <name>nu_e</name>\n",
      "        <source>Vert1</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>l1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop2\">\n",
      "        <name>Z_0</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>l1-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop3\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>-l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop4\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert2</source>\n",
      "        <target>Vert4</target>\n",
      "        <momentum>\n",
      "          <name>-l2-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop5\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>-l1-l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "\n",
      " </diagram>\n",
      " \n",
      " <diagram\n",
      "          id=\"Diagram7\"\n",
      "          incoming=\"1\"\n",
      "          outgoing=\"1\"\n",
      "          sign=\"+\"\n",
      "          symmmetry_factor=\"1\"\n",
      " >\n",
      "\n",
      "\n",
      "  <vertex id=\"Vert1\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert2\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert3\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert4\">\n",
      "  </vertex>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"In1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>incoming</sense>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"Out1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>outgoing</sense>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <propagator id=\"Prop1\">\n",
      "        <name>nu_e</name>\n",
      "        <source>Vert1</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>l1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop2\">\n",
      "        <name>Z_0</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>l1-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop3\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert2</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop4\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>l2+p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop5\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert4</target>\n",
      "        <momentum>\n",
      "          <name>l1+l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "\n",
      " </diagram>\n",
      " \n",
      " <diagram\n",
      "          id=\"Diagram8\"\n",
      "          incoming=\"1\"\n",
      "          outgoing=\"1\"\n",
      "          sign=\"+\"\n",
      "          symmmetry_factor=\"1\"\n",
      " >\n",
      "\n",
      "\n",
      "  <vertex id=\"Vert1\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert2\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert3\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert4\">\n",
      "  </vertex>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"In1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>incoming</sense>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"Out1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>outgoing</sense>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <propagator id=\"Prop1\">\n",
      "        <name>nu_e</name>\n",
      "        <source>Vert1</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>l1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop2\">\n",
      "        <name>Z_0</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>l1-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop3\">\n",
      "        <name>Z_0</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>-l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop4\">\n",
      "        <name>nu_e</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>l2+p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop5\">\n",
      "        <name>nu_e</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert4</target>\n",
      "        <momentum>\n",
      "          <name>l1+l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "\n",
      " </diagram>\n",
      " \n",
      " <diagram\n",
      "          id=\"Diagram9\"\n",
      "          incoming=\"1\"\n",
      "          outgoing=\"1\"\n",
      "          sign=\"-\"\n",
      "          symmmetry_factor=\"1\"\n",
      " >\n",
      "\n",
      "\n",
      "  <vertex id=\"Vert1\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert2\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert3\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert4\">\n",
      "  </vertex>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"In1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>incoming</sense>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"Out1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>outgoing</sense>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <propagator id=\"Prop1\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert1</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>l1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop2\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>l1-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop3\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert2</source>\n",
      "        <target>Vert4</target>\n",
      "        <momentum>\n",
      "          <name>l1-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop4\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>l1+l2-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop5\">\n",
      "        <name>nu_e</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert4</target>\n",
      "        <momentum>\n",
      "          <name>l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "\n",
      " </diagram>\n",
      " \n",
      " <diagram\n",
      "          id=\"Diagram10\"\n",
      "          incoming=\"1\"\n",
      "          outgoing=\"1\"\n",
      "          sign=\"+\"\n",
      "          symmmetry_factor=\"1\"\n",
      " >\n",
      "\n",
      "\n",
      "  <vertex id=\"Vert1\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert2\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert3\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert4\">\n",
      "  </vertex>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"In1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>incoming</sense>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"Out1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>outgoing</sense>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <propagator id=\"Prop1\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert1</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>l1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop2\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>l1-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop3\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert2</source>\n",
      "        <target>Vert4</target>\n",
      "        <momentum>\n",
      "          <name>l1-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop4\">\n",
      "        <name>gamma</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>l1+l2-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop5\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>-l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "\n",
      " </diagram>\n",
      " \n",
      " <diagram\n",
      "          id=\"Diagram11\"\n",
      "          incoming=\"1\"\n",
      "          outgoing=\"1\"\n",
      "          sign=\"+\"\n",
      "          symmmetry_factor=\"1\"\n",
      " >\n",
      "\n",
      "\n",
      "  <vertex id=\"Vert1\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert2\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert3\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert4\">\n",
      "  </vertex>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"In1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>incoming</sense>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"Out1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>outgoing</sense>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <propagator id=\"Prop1\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert1</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>l1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop2\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>l1-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop3\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert2</source>\n",
      "        <target>Vert4</target>\n",
      "        <momentum>\n",
      "          <name>l1-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop4\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>l1+l2-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop5\">\n",
      "        <name>Z_0</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>-l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "\n",
      " </diagram>\n",
      " \n",
      " <diagram\n",
      "          id=\"Diagram12\"\n",
      "          incoming=\"1\"\n",
      "          outgoing=\"1\"\n",
      "          sign=\"-\"\n",
      "          symmmetry_factor=\"1\"\n",
      " >\n",
      "\n",
      "\n",
      "  <vertex id=\"Vert1\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert2\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert3\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert4\">\n",
      "  </vertex>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"In1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>incoming</sense>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"Out1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>outgoing</sense>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <propagator id=\"Prop1\">\n",
      "        <name>nu_e</name>\n",
      "        <source>Vert1</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>l1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop2\">\n",
      "        <name>Z_0</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>l1-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop3\">\n",
      "        <name>Z_0</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>-l1+p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop4\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>l1+l2-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop5\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert4</target>\n",
      "        <momentum>\n",
      "          <name>l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "\n",
      " </diagram>\n",
      " \n",
      " <diagram\n",
      "          id=\"Diagram13\"\n",
      "          incoming=\"1\"\n",
      "          outgoing=\"1\"\n",
      "          sign=\"-\"\n",
      "          symmmetry_factor=\"1\"\n",
      " >\n",
      "\n",
      "\n",
      "  <vertex id=\"Vert1\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert2\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert3\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert4\">\n",
      "  </vertex>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"In1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>incoming</sense>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"Out1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>outgoing</sense>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <propagator id=\"Prop1\">\n",
      "        <name>nu_e</name>\n",
      "        <source>Vert1</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>l1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop2\">\n",
      "        <name>Z_0</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>l1-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop3\">\n",
      "        <name>Z_0</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>-l1+p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop4\">\n",
      "        <name>nu_e</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>l1+l2-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop5\">\n",
      "        <name>nu_e</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert4</target>\n",
      "        <momentum>\n",
      "          <name>l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "\n",
      " </diagram>\n",
      " \n",
      " <diagram\n",
      "          id=\"Diagram14\"\n",
      "          incoming=\"1\"\n",
      "          outgoing=\"1\"\n",
      "          sign=\"+\"\n",
      "          symmmetry_factor=\"1\"\n",
      " >\n",
      "\n",
      "\n",
      "  <vertex id=\"Vert1\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert2\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert3\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert4\">\n",
      "  </vertex>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"In1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>incoming</sense>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"Out1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>outgoing</sense>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <propagator id=\"Prop1\">\n",
      "        <name>nu_e</name>\n",
      "        <source>Vert1</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>l1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop2\">\n",
      "        <name>Z_0</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>l1-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop3\">\n",
      "        <name>Z_0</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>-l1+p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop4\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>l1+l2-p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop5\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert4</target>\n",
      "        <momentum>\n",
      "          <name>l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "\n",
      " </diagram>\n",
      " \n",
      " <diagram\n",
      "          id=\"Diagram15\"\n",
      "          incoming=\"1\"\n",
      "          outgoing=\"1\"\n",
      "          sign=\"+\"\n",
      "          symmmetry_factor=\"1\"\n",
      " >\n",
      "\n",
      "\n",
      "  <vertex id=\"Vert1\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert2\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert3\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert4\">\n",
      "  </vertex>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"In1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>incoming</sense>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"Out1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>outgoing</sense>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <propagator id=\"Prop1\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert2</source>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>-l1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop2\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert1</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>-l1+p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop3\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>-l1+p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop4\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert4</target>\n",
      "        <momentum>\n",
      "          <name>-l1-l2+p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop5\">\n",
      "        <name>gamma</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>-l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "\n",
      " </diagram>\n",
      " \n",
      " <diagram\n",
      "          id=\"Diagram16\"\n",
      "          incoming=\"1\"\n",
      "          outgoing=\"1\"\n",
      "          sign=\"+\"\n",
      "          symmmetry_factor=\"1\"\n",
      " >\n",
      "\n",
      "\n",
      "  <vertex id=\"Vert1\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert2\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert3\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert4\">\n",
      "  </vertex>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"In1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>incoming</sense>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"Out1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>outgoing</sense>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <propagator id=\"Prop1\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert2</source>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>-l1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop2\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert1</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>-l1+p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop3\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>-l1+p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop4\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert4</target>\n",
      "        <momentum>\n",
      "          <name>-l1-l2+p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop5\">\n",
      "        <name>Z_0</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>-l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "\n",
      " </diagram>\n",
      " \n",
      " <diagram\n",
      "          id=\"Diagram17\"\n",
      "          incoming=\"1\"\n",
      "          outgoing=\"1\"\n",
      "          sign=\"+\"\n",
      "          symmmetry_factor=\"1\"\n",
      " >\n",
      "\n",
      "\n",
      "  <vertex id=\"Vert1\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert2\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert3\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert4\">\n",
      "  </vertex>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"In1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>incoming</sense>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"Out1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>outgoing</sense>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <propagator id=\"Prop1\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert2</source>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>-l1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop2\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert1</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>-l1+p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop3\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>-l1+p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop4\">\n",
      "        <name>nu_e</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert4</target>\n",
      "        <momentum>\n",
      "          <name>-l1-l2+p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop5\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert4</target>\n",
      "        <momentum>\n",
      "          <name>l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "\n",
      " </diagram>\n",
      " \n",
      " <diagram\n",
      "          id=\"Diagram18\"\n",
      "          incoming=\"1\"\n",
      "          outgoing=\"1\"\n",
      "          sign=\"+\"\n",
      "          symmmetry_factor=\"1\"\n",
      " >\n",
      "\n",
      "\n",
      "  <vertex id=\"Vert1\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert2\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert3\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert4\">\n",
      "  </vertex>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"In1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>incoming</sense>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"Out1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>outgoing</sense>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <propagator id=\"Prop1\">\n",
      "        <name>Z_0</name>\n",
      "        <source>Vert2</source>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>-l1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop2\">\n",
      "        <name>nu_e</name>\n",
      "        <source>Vert1</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>-l1+p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop3\">\n",
      "        <name>nu_e</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>-l1+p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop4\">\n",
      "        <name>e_minus</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert4</target>\n",
      "        <momentum>\n",
      "          <name>-l1-l2+p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop5\">\n",
      "        <name>W_minus</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>-l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "\n",
      " </diagram>\n",
      " \n",
      " <diagram\n",
      "          id=\"Diagram19\"\n",
      "          incoming=\"1\"\n",
      "          outgoing=\"1\"\n",
      "          sign=\"+\"\n",
      "          symmmetry_factor=\"1\"\n",
      " >\n",
      "\n",
      "\n",
      "  <vertex id=\"Vert1\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert2\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert3\">\n",
      "  </vertex>\n",
      "\n",
      "  <vertex id=\"Vert4\">\n",
      "  </vertex>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"In1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>incoming</sense>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <leg id=\"Out1\">\n",
      "        <name>nu_e</name>\n",
      "        <sense>outgoing</sense>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>p1</name>\n",
      "        </momentum>\n",
      "  </leg>\n",
      "\n",
      "\n",
      "\n",
      "  <propagator id=\"Prop1\">\n",
      "        <name>Z_0</name>\n",
      "        <source>Vert2</source>\n",
      "        <target>Vert1</target>\n",
      "        <momentum>\n",
      "          <name>-l1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop2\">\n",
      "        <name>nu_e</name>\n",
      "        <source>Vert1</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>-l1+p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop3\">\n",
      "        <name>nu_e</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert2</target>\n",
      "        <momentum>\n",
      "          <name>-l1+p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop4\">\n",
      "        <name>nu_e</name>\n",
      "        <source>Vert3</source>\n",
      "        <target>Vert4</target>\n",
      "        <momentum>\n",
      "          <name>-l1-l2+p1</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "  <propagator id=\"Prop5\">\n",
      "        <name>Z_0</name>\n",
      "        <source>Vert4</source>\n",
      "        <target>Vert3</target>\n",
      "        <momentum>\n",
      "          <name>-l2</name>\n",
      "        </momentum>\n",
      "  </propagator>\n",
      "\n",
      "\n",
      " </diagram>\n",
      "</feynml>\n",
      "\n",
      "<!-- end -->\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(xml_string)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6cb264a7",
   "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
}