2 to 2 process
[1]:
from smpl_io import io
[2]:
from pyfeyn2.interface.qgraf import style
import itertools as it
import re
[5]:
from pyqgraf import qgraf, model
qgraf.install("3.6.5")
xml_string = qgraf.run("nu_e[p1], nu_e_bar[p2]", "nu_e[p3], nu_e_bar[p4]",loops=1,loop_momentum="l",model = model.gws_UnitaryGauge_reduced, style=style)
/home/apn/.local/bin/qgraf-3.6.5 qgraf.dat
--------------------------------------------------------------
qgraf-3.6.5
--------------------------------------------------------------
output= 'output.out' ;
style= 'tmp.sty' ;
model = 'tmp.model';
in= nu_e[p1], nu_e_bar[p2];
out= nu_e[p3], nu_e_bar[p4];
loops= 1;
loop_momentum= l;
options= notadpole,onshell;
--------------------------------------------------------------
#loops v-degrees #diagrams
1
- 4^2 .... 0
3^2 4^1 .... 0
3^4 - .... 24
total = 24 connected diagrams
[8]:
from pathlib import Path
import subprocess
import shlex
from xsdata.formats.dataclass.parsers import XmlParser
from pyfeyn2.render.latex.feynmp import FeynmpRender
from pyfeyn2.render.latex.tikzfeynman import TikzFeynmanRender
from pyfeyn2.render.pyx.pyxrender import PyxRender
from pyfeyn2.feynmandiagram import FeynML
from pyfeyn2.auto.bend import auto_bend
from pyfeyn2.auto.label import auto_label
from pyfeyn2.auto.position import feynman_adjust_points
parser = XmlParser()
fml = parser.from_string(xml_string, FeynML)
def filter_diag(d):
count = 0
ecount = 0
for p in d.propagators:
if p.pdgid == 22:
count +=1
if p.pdgid == 11:
ecount +=1
if count >=0 and ecount >=2:
return True
return False
ccount=0
for d in fml.diagrams:
if filter_diag(d):
ccount +=1
print("single photon diags", ccount)
for d in fml.diagrams:
if filter_diag(d):
d.legs[0].with_xy(-2,2)
d.legs[1].with_xy(-2,-2)
d.legs[2].with_xy(2,2)
d.legs[3].with_xy(2,-2)
#d.get_point(d.legs[0].target).with_xy(-1,0)
#d.get_point(d.legs[1].target).with_xy(1,0)
d = feynman_adjust_points(d,size=15,override_vertices=False)
auto_bend(d)
auto_label(d.propagators)
auto_label(d.legs)
#print(d)
t = TikzFeynmanRender(d)
#print(t.get_src())
t.render(show=True)
#break
single photon diags 8
![../../../_images/interfaces_qgraf_2_to_2_qgraf_2to2_4_1.png](../../../_images/interfaces_qgraf_2_to_2_qgraf_2to2_4_1.png)
![../../../_images/interfaces_qgraf_2_to_2_qgraf_2to2_4_2.png](../../../_images/interfaces_qgraf_2_to_2_qgraf_2to2_4_2.png)
---------------------------------------------------------------------------
KeyboardInterrupt Traceback (most recent call last)
Cell In[8], line 51
49 t = TikzFeynmanRender(d)
50 #print(t.get_src())
---> 51 t.render(show=True)
52 #break
File ~/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/latex.py:55, in LatexRender.render(self, file, show, resolution, width, height, clean_up)
53 file = "tmp"
54 file = re.sub("\.pdf$", "", file.strip())
---> 55 self.generate_pdf(
56 file,
57 clean_tex=clean_up,
58 compiler="lualatex",
59 compiler_args=["-shell-escape"],
60 )
61 wi = WImage(
62 filename=file + ".pdf", resolution=resolution, width=width, height=height
63 )
64 if delete:
File ~/.cache/pypoetry/virtualenvs/pyfeyn2-CEvJ4jFG-py3.9/lib/python3.9/site-packages/pylatex/document.py:250, in Document.generate_pdf(self, filepath, clean, clean_tex, compiler, compiler_args, silent)
247 command = [compiler] + arguments + compiler_args + main_arguments
249 try:
--> 250 output = subprocess.check_output(command,
251 stderr=subprocess.STDOUT,
252 **check_output_kwargs)
253 except (OSError, IOError) as e:
254 # Use FileNotFoundError when python 2 is dropped
255 os_error = e
File /usr/lib/python3.9/subprocess.py:424, in check_output(timeout, *popenargs, **kwargs)
421 empty = b''
422 kwargs['input'] = empty
--> 424 return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
425 **kwargs).stdout
File /usr/lib/python3.9/subprocess.py:507, in run(input, capture_output, timeout, check, *popenargs, **kwargs)
505 with Popen(*popenargs, **kwargs) as process:
506 try:
--> 507 stdout, stderr = process.communicate(input, timeout=timeout)
508 except TimeoutExpired as exc:
509 process.kill()
File /usr/lib/python3.9/subprocess.py:1121, in Popen.communicate(self, input, timeout)
1119 self._stdin_write(input)
1120 elif self.stdout:
-> 1121 stdout = self.stdout.read()
1122 self.stdout.close()
1123 elif self.stderr:
KeyboardInterrupt:
[7]:
print(xml_string)
<!--
file generated by qgraf-3.6.5
output= 'output.out' ;
style= 'tmp.sty' ;
model = 'tmp.model';
in= nu_e[p1], nu_e_bar[p2];
out= nu_e[p3], nu_e_bar[p4];
loops= 1;
loop_momentum= l;
options= notadpole,onshell;
You must add x= and y= with suitable vertex positions.
Some lines may need manual bending to render properly.
-->
<feynml>
<diagram
id="Diagram1"
incoming="2"
outgoing="2"
sign="-"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert2</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert2</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>Z_0</name>
<source>Vert3</source>
<target>Vert1</target>
<momentum>
<name>-p1-p2</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>Z_0</name>
<source>Vert4</source>
<target>Vert2</target>
<momentum>
<name>p3+p4</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>e_minus</name>
<source>Vert4</source>
<target>Vert3</target>
<momentum>
<name>l1-p1-p2</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>e_minus</name>
<source>Vert3</source>
<target>Vert4</target>
<momentum>
<name>l1</name>
</momentum>
</propagator>
</diagram>
<diagram
id="Diagram2"
incoming="2"
outgoing="2"
sign="-"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert2</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert2</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>Z_0</name>
<source>Vert3</source>
<target>Vert1</target>
<momentum>
<name>-p1-p2</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>Z_0</name>
<source>Vert4</source>
<target>Vert2</target>
<momentum>
<name>p3+p4</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>nu_e</name>
<source>Vert4</source>
<target>Vert3</target>
<momentum>
<name>l1-p1-p2</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>nu_e</name>
<source>Vert3</source>
<target>Vert4</target>
<momentum>
<name>l1</name>
</momentum>
</propagator>
</diagram>
<diagram
id="Diagram3"
incoming="2"
outgoing="2"
sign="+"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert2</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert2</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>Z_0</name>
<source>Vert3</source>
<target>Vert1</target>
<momentum>
<name>-p1-p2</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>Z_0</name>
<source>Vert4</source>
<target>Vert2</target>
<momentum>
<name>p3+p4</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>W_minus</name>
<source>Vert4</source>
<target>Vert3</target>
<momentum>
<name>l1-p1-p2</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>W_minus</name>
<source>Vert3</source>
<target>Vert4</target>
<momentum>
<name>l1</name>
</momentum>
</propagator>
</diagram>
<diagram
id="Diagram4"
incoming="2"
outgoing="2"
sign="+"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert2</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert1</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert2</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>Z_0</name>
<source>Vert3</source>
<target>Vert1</target>
<momentum>
<name>-p1+p3</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>Z_0</name>
<source>Vert4</source>
<target>Vert2</target>
<momentum>
<name>-p2+p4</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>e_minus</name>
<source>Vert4</source>
<target>Vert3</target>
<momentum>
<name>l1-p1+p3</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>e_minus</name>
<source>Vert3</source>
<target>Vert4</target>
<momentum>
<name>l1</name>
</momentum>
</propagator>
</diagram>
<diagram
id="Diagram5"
incoming="2"
outgoing="2"
sign="+"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert2</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert1</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert2</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>Z_0</name>
<source>Vert3</source>
<target>Vert1</target>
<momentum>
<name>-p1+p3</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>Z_0</name>
<source>Vert4</source>
<target>Vert2</target>
<momentum>
<name>-p2+p4</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>nu_e</name>
<source>Vert4</source>
<target>Vert3</target>
<momentum>
<name>l1-p1+p3</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>nu_e</name>
<source>Vert3</source>
<target>Vert4</target>
<momentum>
<name>l1</name>
</momentum>
</propagator>
</diagram>
<diagram
id="Diagram6"
incoming="2"
outgoing="2"
sign="-"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert2</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert1</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert2</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>Z_0</name>
<source>Vert3</source>
<target>Vert1</target>
<momentum>
<name>-p1+p3</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>Z_0</name>
<source>Vert4</source>
<target>Vert2</target>
<momentum>
<name>-p2+p4</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>W_minus</name>
<source>Vert4</source>
<target>Vert3</target>
<momentum>
<name>l1-p1+p3</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>W_minus</name>
<source>Vert3</source>
<target>Vert4</target>
<momentum>
<name>l1</name>
</momentum>
</propagator>
</diagram>
<diagram
id="Diagram7"
incoming="2"
outgoing="2"
sign="+"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert2</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert3</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>Z_0</name>
<source>Vert4</source>
<target>Vert1</target>
<momentum>
<name>-p1-p2</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>e_minus</name>
<source>Vert3</source>
<target>Vert2</target>
<momentum>
<name>-l1</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>W_minus</name>
<source>Vert2</source>
<target>Vert4</target>
<momentum>
<name>-l1-p3</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>W_minus</name>
<source>Vert4</source>
<target>Vert3</target>
<momentum>
<name>-l1+p4</name>
</momentum>
</propagator>
</diagram>
<diagram
id="Diagram8"
incoming="2"
outgoing="2"
sign="+"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert2</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert3</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>Z_0</name>
<source>Vert4</source>
<target>Vert1</target>
<momentum>
<name>-p1-p2</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>W_minus</name>
<source>Vert2</source>
<target>Vert3</target>
<momentum>
<name>l1</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>e_minus</name>
<source>Vert4</source>
<target>Vert2</target>
<momentum>
<name>l1+p3</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>e_minus</name>
<source>Vert3</source>
<target>Vert4</target>
<momentum>
<name>l1-p4</name>
</momentum>
</propagator>
</diagram>
<diagram
id="Diagram9"
incoming="2"
outgoing="2"
sign="+"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert2</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert3</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>Z_0</name>
<source>Vert4</source>
<target>Vert1</target>
<momentum>
<name>-p1-p2</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>Z_0</name>
<source>Vert3</source>
<target>Vert2</target>
<momentum>
<name>-l1</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>nu_e</name>
<source>Vert4</source>
<target>Vert2</target>
<momentum>
<name>l1+p3</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>nu_e</name>
<source>Vert3</source>
<target>Vert4</target>
<momentum>
<name>l1-p4</name>
</momentum>
</propagator>
</diagram>
<diagram
id="Diagram10"
incoming="2"
outgoing="2"
sign="-"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert2</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert1</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert3</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>Z_0</name>
<source>Vert4</source>
<target>Vert1</target>
<momentum>
<name>-p1+p3</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>e_minus</name>
<source>Vert3</source>
<target>Vert2</target>
<momentum>
<name>-l1</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>W_minus</name>
<source>Vert2</source>
<target>Vert4</target>
<momentum>
<name>-l1+p2</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>W_minus</name>
<source>Vert4</source>
<target>Vert3</target>
<momentum>
<name>-l1+p4</name>
</momentum>
</propagator>
</diagram>
<diagram
id="Diagram11"
incoming="2"
outgoing="2"
sign="-"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert2</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert1</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert3</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>Z_0</name>
<source>Vert4</source>
<target>Vert1</target>
<momentum>
<name>-p1+p3</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>W_minus</name>
<source>Vert2</source>
<target>Vert3</target>
<momentum>
<name>l1</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>e_minus</name>
<source>Vert4</source>
<target>Vert2</target>
<momentum>
<name>l1-p2</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>e_minus</name>
<source>Vert3</source>
<target>Vert4</target>
<momentum>
<name>l1-p4</name>
</momentum>
</propagator>
</diagram>
<diagram
id="Diagram12"
incoming="2"
outgoing="2"
sign="-"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert2</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert1</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert3</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>Z_0</name>
<source>Vert4</source>
<target>Vert1</target>
<momentum>
<name>-p1+p3</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>Z_0</name>
<source>Vert3</source>
<target>Vert2</target>
<momentum>
<name>-l1</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>nu_e</name>
<source>Vert4</source>
<target>Vert2</target>
<momentum>
<name>l1-p2</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>nu_e</name>
<source>Vert3</source>
<target>Vert4</target>
<momentum>
<name>l1-p4</name>
</momentum>
</propagator>
</diagram>
<diagram
id="Diagram13"
incoming="2"
outgoing="2"
sign="-"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert2</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert3</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert1</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>Z_0</name>
<source>Vert4</source>
<target>Vert1</target>
<momentum>
<name>-p2+p4</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>e_minus</name>
<source>Vert2</source>
<target>Vert3</target>
<momentum>
<name>l1</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>W_minus</name>
<source>Vert4</source>
<target>Vert2</target>
<momentum>
<name>l1-p1</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>W_minus</name>
<source>Vert3</source>
<target>Vert4</target>
<momentum>
<name>l1-p3</name>
</momentum>
</propagator>
</diagram>
<diagram
id="Diagram14"
incoming="2"
outgoing="2"
sign="-"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert2</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert3</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert1</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>Z_0</name>
<source>Vert4</source>
<target>Vert1</target>
<momentum>
<name>-p2+p4</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>W_minus</name>
<source>Vert3</source>
<target>Vert2</target>
<momentum>
<name>-l1</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>e_minus</name>
<source>Vert2</source>
<target>Vert4</target>
<momentum>
<name>-l1+p1</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>e_minus</name>
<source>Vert4</source>
<target>Vert3</target>
<momentum>
<name>-l1+p3</name>
</momentum>
</propagator>
</diagram>
<diagram
id="Diagram15"
incoming="2"
outgoing="2"
sign="-"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert2</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert3</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert1</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>Z_0</name>
<source>Vert4</source>
<target>Vert1</target>
<momentum>
<name>-p2+p4</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>Z_0</name>
<source>Vert3</source>
<target>Vert2</target>
<momentum>
<name>-l1</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>nu_e</name>
<source>Vert2</source>
<target>Vert4</target>
<momentum>
<name>-l1+p1</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>nu_e</name>
<source>Vert4</source>
<target>Vert3</target>
<momentum>
<name>-l1+p3</name>
</momentum>
</propagator>
</diagram>
<diagram
id="Diagram16"
incoming="2"
outgoing="2"
sign="+"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert2</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert3</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert1</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert1</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>Z_0</name>
<source>Vert4</source>
<target>Vert1</target>
<momentum>
<name>p3+p4</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>e_minus</name>
<source>Vert2</source>
<target>Vert3</target>
<momentum>
<name>l1</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>W_minus</name>
<source>Vert4</source>
<target>Vert2</target>
<momentum>
<name>l1-p1</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>W_minus</name>
<source>Vert3</source>
<target>Vert4</target>
<momentum>
<name>l1+p2</name>
</momentum>
</propagator>
</diagram>
<diagram
id="Diagram17"
incoming="2"
outgoing="2"
sign="+"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert2</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert3</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert1</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert1</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>Z_0</name>
<source>Vert4</source>
<target>Vert1</target>
<momentum>
<name>p3+p4</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>W_minus</name>
<source>Vert3</source>
<target>Vert2</target>
<momentum>
<name>-l1</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>e_minus</name>
<source>Vert2</source>
<target>Vert4</target>
<momentum>
<name>-l1+p1</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>e_minus</name>
<source>Vert4</source>
<target>Vert3</target>
<momentum>
<name>-l1-p2</name>
</momentum>
</propagator>
</diagram>
<diagram
id="Diagram18"
incoming="2"
outgoing="2"
sign="+"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert2</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert3</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert1</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert1</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>Z_0</name>
<source>Vert4</source>
<target>Vert1</target>
<momentum>
<name>p3+p4</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>Z_0</name>
<source>Vert3</source>
<target>Vert2</target>
<momentum>
<name>-l1</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>nu_e</name>
<source>Vert2</source>
<target>Vert4</target>
<momentum>
<name>-l1+p1</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>nu_e</name>
<source>Vert4</source>
<target>Vert3</target>
<momentum>
<name>-l1-p2</name>
</momentum>
</propagator>
</diagram>
<diagram
id="Diagram19"
incoming="2"
outgoing="2"
sign="+"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert2</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert3</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert4</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>e_minus</name>
<source>Vert1</source>
<target>Vert2</target>
<momentum>
<name>l1</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>W_minus</name>
<source>Vert3</source>
<target>Vert1</target>
<momentum>
<name>l1-p1</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>W_minus</name>
<source>Vert2</source>
<target>Vert4</target>
<momentum>
<name>l1+p2</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>e_minus</name>
<source>Vert4</source>
<target>Vert3</target>
<momentum>
<name>l1-p1+p3</name>
</momentum>
</propagator>
</diagram>
<diagram
id="Diagram20"
incoming="2"
outgoing="2"
sign="+"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert2</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert3</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert4</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>nu_e</name>
<source>Vert1</source>
<target>Vert2</target>
<momentum>
<name>l1</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>Z_0</name>
<source>Vert3</source>
<target>Vert1</target>
<momentum>
<name>l1-p1</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>Z_0</name>
<source>Vert4</source>
<target>Vert2</target>
<momentum>
<name>-l1-p2</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>nu_e</name>
<source>Vert4</source>
<target>Vert3</target>
<momentum>
<name>l1-p1+p3</name>
</momentum>
</propagator>
</diagram>
<diagram
id="Diagram21"
incoming="2"
outgoing="2"
sign="-"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert2</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert3</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert4</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>W_minus</name>
<source>Vert2</source>
<target>Vert1</target>
<momentum>
<name>-l1</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>e_minus</name>
<source>Vert1</source>
<target>Vert3</target>
<momentum>
<name>-l1+p1</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>e_minus</name>
<source>Vert4</source>
<target>Vert2</target>
<momentum>
<name>-l1-p2</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>W_minus</name>
<source>Vert3</source>
<target>Vert4</target>
<momentum>
<name>-l1+p1-p3</name>
</momentum>
</propagator>
</diagram>
<diagram
id="Diagram22"
incoming="2"
outgoing="2"
sign="-"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert2</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert3</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert4</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>Z_0</name>
<source>Vert2</source>
<target>Vert1</target>
<momentum>
<name>-l1</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>nu_e</name>
<source>Vert1</source>
<target>Vert3</target>
<momentum>
<name>-l1+p1</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>nu_e</name>
<source>Vert4</source>
<target>Vert2</target>
<momentum>
<name>-l1-p2</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>Z_0</name>
<source>Vert4</source>
<target>Vert3</target>
<momentum>
<name>l1-p1+p3</name>
</momentum>
</propagator>
</diagram>
<diagram
id="Diagram23"
incoming="2"
outgoing="2"
sign="+"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert2</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert4</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert3</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>nu_e</name>
<source>Vert1</source>
<target>Vert2</target>
<momentum>
<name>l1</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>Z_0</name>
<source>Vert3</source>
<target>Vert1</target>
<momentum>
<name>l1-p1</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>Z_0</name>
<source>Vert4</source>
<target>Vert2</target>
<momentum>
<name>-l1-p2</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>nu_e</name>
<source>Vert3</source>
<target>Vert4</target>
<momentum>
<name>-l1+p1-p4</name>
</momentum>
</propagator>
</diagram>
<diagram
id="Diagram24"
incoming="2"
outgoing="2"
sign="-"
symmmetry_factor="1"
>
<vertex id="Vert1">
</vertex>
<vertex id="Vert2">
</vertex>
<vertex id="Vert3">
</vertex>
<vertex id="Vert4">
</vertex>
<leg id="In1">
<name>nu_e</name>
<sense>incoming</sense>
<target>Vert1</target>
<momentum>
<name>p1</name>
</momentum>
</leg>
<leg id="In2">
<name>nu_e_bar</name>
<sense>incoming</sense>
<target>Vert4</target>
<momentum>
<name>p2</name>
</momentum>
</leg>
<leg id="Out1">
<name>nu_e</name>
<sense>outgoing</sense>
<target>Vert2</target>
<momentum>
<name>p3</name>
</momentum>
</leg>
<leg id="Out2">
<name>nu_e_bar</name>
<sense>outgoing</sense>
<target>Vert3</target>
<momentum>
<name>p4</name>
</momentum>
</leg>
<propagator id="Prop1">
<name>nu_e</name>
<source>Vert1</source>
<target>Vert2</target>
<momentum>
<name>l1</name>
</momentum>
</propagator>
<propagator id="Prop2">
<name>Z_0</name>
<source>Vert3</source>
<target>Vert1</target>
<momentum>
<name>l1-p1</name>
</momentum>
</propagator>
<propagator id="Prop3">
<name>Z_0</name>
<source>Vert4</source>
<target>Vert2</target>
<momentum>
<name>-l1+p3</name>
</momentum>
</propagator>
<propagator id="Prop4">
<name>nu_e</name>
<source>Vert3</source>
<target>Vert4</target>
<momentum>
<name>-l1+p1-p4</name>
</momentum>
</propagator>
</diagram>
</feynml>
<!-- end -->
[ ]: