2 to 2 process
[6]:
from smpl import io
[7]:
from pyfeyn2.interface import qgraf
import itertools as it
import re
[10]:
style = "tmp.sty"
model ="tmp.model"
dat = "tmp.dat"
output = "output.out"
def multiple_replace(string, rep_dict):
pattern = re.compile("|".join([re.escape(k) for k in sorted(rep_dict,key=len,reverse=True)]), flags=re.DOTALL)
return pattern.sub(lambda x: rep_dict[x.group(0)], string)
raw_model = r"""
* https://porthos.tecnico.ulisboa.pt/CTQFT/node9.html
* Higgs
* [H,H,+]
* leptons
[e,E,-]
* neutrinos
[n,N,-]
* quarks
* [u,U,-]
* [d,D,-]
* photon, W-boson, Z-boson, gluon
[A,A,+]
[WM,WP,+]
[Z,Z,+]
* [g,g,+]
* cubic vertices
[WP,WM,A]
[WP,WM,Z]
* [g,g,g]
* [WP,WM,H]
* [Z,Z,H]
* [H,H,H]
* yukawa
* [E1,e1,H]
* [E2,e2,H]
* [E3,e3,H]
* [U,u,H]
* [D,d,H]
* fermion - gauge boson
[E,e,A]
[E,e,Z]
[N,n,Z]
[N,e,WP]
[E,n,WM]
* [U,u,A]
* [D,d,A]
* [U,u,Z]
* [D,d,Z]
* [U,u,g]
* [D,d,g]
* K-M
* [U,d,WP]
* [D,u,WM]
* quartic vertices
[WP,WM,A,A]
* [WP,WM,Z,Z]
* [WP,WM,A,Z]
* [WP,WM,WP,WM]
* [g,g,g,g]
* [WP,WM,H,H]
* [Z,Z,H,H]
* [H,H,H,H]
"""
raw_model = multiple_replace(raw_model,{"e":"e_minus","E":"e_plus",'n':'nu_e','N':'nu_e_bar',"g":"g",
"H":"H_0", 'Z':'Z_0',
"WP":"W_plus","WM": "W_minus",
"A":"gamma"
})
io.write(model,raw_model,
create_dir=False)
io.write(style,
qgraf.get_style(),
create_dir=False)
io.write(dat,
f"""
output= '{output}' ;
style= '{style}' ;
model = '{model}';
in= nu_e[p1], nu_e_bar[p2];
out= nu_e[p3], nu_e_bar[p4];
loops= 2;
loop_momentum= l;
options= notadpole, onshell;
"""
,create_dir=False)
io.remove(output)
[11]:
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
subprocess.call(shlex.split(f'qgraf {dat}'))
xml_string = Path(output).read_text()
parser = XmlParser()
fml = parser.from_string(xml_string, FeynML)
def filter_diag(d):
return True
count = 0
ecount = 0
for p in d.propagators:
if p.pdgid == 22:
count +=1
if p.pdgid == 11:
ecount +=1
if count ==1 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):
ccount +=1
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_vertex(d.legs[0].target).with_xy(-1,0)
#d.get_vertex(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
--------------------------------------------------------------
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= 2;
loop_momentum= l;
options= notadpole, onshell;
--------------------------------------------------------------
#loops v-degrees #diagrams
2
- 4^3 .... 0
3^2 4^2 .... 0
3^4 4^1 .... 20
3^6 - .... 662
total = 682 connected diagrams
single photon diags 682
KeyboardInterrupt
[5]:
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 -->
[ ]: