1 to 1 process

[1]:
from smpl_io import io
[2]:
from feynml.interface.qgraf import style
import itertools as it
import re
[3]:
from pyqgraf import qgraf, model
qgraf.install("3.6.5")
xml_string = qgraf.run("nu_e[p1]", "nu_e[p1]",loops=2,loop_momentum="l",model = model.gws_UnitaryGauge_reduced, style=style)

        Please cite the following papers if you use this code:

      [1] Automatic Feynman graph generation J. Comput. Phys. 105 (1993) 279--289 https://doi.org/10.1006/jcph.1993.1074

      [2] Abusing Qgraf Nucl. Instrum. Methods Phys. Res. A 559 (2006) 220--223 https://doi.org/10.1016/j.nima.2005.11.151

      [3] Feynman graph generation and propagator mixing, I Comput. Phys. Commun. 269 (2021) 108103 https://doi.org/10.1016/j.cpc.2021.108103


[31]:
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,auto_vdw

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 ==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):
        d.legs[0].with_xy(-2,0)
        d.legs[1].with_xy(2,0)
        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,clear_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 2
../../../_images/interfaces_qgraf_1_to_1_qgraf_4_1.png
../../../_images/interfaces_qgraf_1_to_1_qgraf_4_2.png
[6]:
print(xml_string)
<!--
 file generated by qgraf-3.6.5

  output= 'output.out' ;
  style= 'tmp.sty' ;
  model = 'tmp.model';
  in= nu_e[p1];
  out= nu_e[p1];
  loops= 2;
  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="1"
          outgoing="1"
          sign="+"
          symmmetry_factor="1/2"
 >


  <vertex id="Vert1">
  </vertex>

  <vertex id="Vert2">
  </vertex>

  <vertex id="Vert3">
  </vertex>



  <leg id="In1">
        <name>nu_e</name>
        <sense>incoming</sense>
        <target>Vert1</target>
        <momentum>
          <name>p1</name>
        </momentum>
  </leg>



  <leg id="Out1">
        <name>nu_e</name>
        <sense>outgoing</sense>
        <target>Vert2</target>
        <momentum>
          <name>p1</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>Vert3</target>
        <momentum>
          <name>l1-p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop4">
        <name>gamma</name>
        <source>Vert3</source>
        <target>Vert3</target>
        <momentum>
          <name>l2</name>
        </momentum>
  </propagator>


 </diagram>

 <diagram
          id="Diagram2"
          incoming="1"
          outgoing="1"
          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="Out1">
        <name>nu_e</name>
        <sense>outgoing</sense>
        <target>Vert2</target>
        <momentum>
          <name>p1</name>
        </momentum>
  </leg>



  <propagator id="Prop1">
        <name>e_minus</name>
        <source>Vert1</source>
        <target>Vert3</target>
        <momentum>
          <name>l1</name>
        </momentum>
  </propagator>

  <propagator id="Prop2">
        <name>W_minus</name>
        <source>Vert4</source>
        <target>Vert1</target>
        <momentum>
          <name>l1-p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop3">
        <name>e_minus</name>
        <source>Vert3</source>
        <target>Vert2</target>
        <momentum>
          <name>-l2</name>
        </momentum>
  </propagator>

  <propagator id="Prop4">
        <name>W_minus</name>
        <source>Vert2</source>
        <target>Vert4</target>
        <momentum>
          <name>-l2-p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop5">
        <name>gamma</name>
        <source>Vert4</source>
        <target>Vert3</target>
        <momentum>
          <name>-l1-l2</name>
        </momentum>
  </propagator>


 </diagram>

 <diagram
          id="Diagram3"
          incoming="1"
          outgoing="1"
          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="Out1">
        <name>nu_e</name>
        <sense>outgoing</sense>
        <target>Vert2</target>
        <momentum>
          <name>p1</name>
        </momentum>
  </leg>



  <propagator id="Prop1">
        <name>e_minus</name>
        <source>Vert1</source>
        <target>Vert3</target>
        <momentum>
          <name>l1</name>
        </momentum>
  </propagator>

  <propagator id="Prop2">
        <name>W_minus</name>
        <source>Vert4</source>
        <target>Vert1</target>
        <momentum>
          <name>l1-p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop3">
        <name>e_minus</name>
        <source>Vert3</source>
        <target>Vert2</target>
        <momentum>
          <name>-l2</name>
        </momentum>
  </propagator>

  <propagator id="Prop4">
        <name>W_minus</name>
        <source>Vert2</source>
        <target>Vert4</target>
        <momentum>
          <name>-l2-p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop5">
        <name>Z_0</name>
        <source>Vert4</source>
        <target>Vert3</target>
        <momentum>
          <name>-l1-l2</name>
        </momentum>
  </propagator>


 </diagram>

 <diagram
          id="Diagram4"
          incoming="1"
          outgoing="1"
          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="Out1">
        <name>nu_e</name>
        <sense>outgoing</sense>
        <target>Vert2</target>
        <momentum>
          <name>p1</name>
        </momentum>
  </leg>



  <propagator id="Prop1">
        <name>e_minus</name>
        <source>Vert1</source>
        <target>Vert3</target>
        <momentum>
          <name>l1</name>
        </momentum>
  </propagator>

  <propagator id="Prop2">
        <name>W_minus</name>
        <source>Vert4</source>
        <target>Vert1</target>
        <momentum>
          <name>l1-p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop3">
        <name>nu_e</name>
        <source>Vert3</source>
        <target>Vert2</target>
        <momentum>
          <name>-l2</name>
        </momentum>
  </propagator>

  <propagator id="Prop4">
        <name>Z_0</name>
        <source>Vert4</source>
        <target>Vert2</target>
        <momentum>
          <name>l2+p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop5">
        <name>W_minus</name>
        <source>Vert3</source>
        <target>Vert4</target>
        <momentum>
          <name>l1+l2</name>
        </momentum>
  </propagator>


 </diagram>

 <diagram
          id="Diagram5"
          incoming="1"
          outgoing="1"
          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="Out1">
        <name>nu_e</name>
        <sense>outgoing</sense>
        <target>Vert2</target>
        <momentum>
          <name>p1</name>
        </momentum>
  </leg>



  <propagator id="Prop1">
        <name>e_minus</name>
        <source>Vert1</source>
        <target>Vert3</target>
        <momentum>
          <name>l1</name>
        </momentum>
  </propagator>

  <propagator id="Prop2">
        <name>W_minus</name>
        <source>Vert4</source>
        <target>Vert1</target>
        <momentum>
          <name>l1-p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop3">
        <name>Z_0</name>
        <source>Vert3</source>
        <target>Vert2</target>
        <momentum>
          <name>-l2</name>
        </momentum>
  </propagator>

  <propagator id="Prop4">
        <name>nu_e</name>
        <source>Vert4</source>
        <target>Vert2</target>
        <momentum>
          <name>l2+p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop5">
        <name>e_minus</name>
        <source>Vert3</source>
        <target>Vert4</target>
        <momentum>
          <name>l1+l2</name>
        </momentum>
  </propagator>


 </diagram>

 <diagram
          id="Diagram6"
          incoming="1"
          outgoing="1"
          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="Out1">
        <name>nu_e</name>
        <sense>outgoing</sense>
        <target>Vert2</target>
        <momentum>
          <name>p1</name>
        </momentum>
  </leg>



  <propagator id="Prop1">
        <name>nu_e</name>
        <source>Vert1</source>
        <target>Vert3</target>
        <momentum>
          <name>l1</name>
        </momentum>
  </propagator>

  <propagator id="Prop2">
        <name>Z_0</name>
        <source>Vert4</source>
        <target>Vert1</target>
        <momentum>
          <name>l1-p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop3">
        <name>e_minus</name>
        <source>Vert3</source>
        <target>Vert2</target>
        <momentum>
          <name>-l2</name>
        </momentum>
  </propagator>

  <propagator id="Prop4">
        <name>W_minus</name>
        <source>Vert2</source>
        <target>Vert4</target>
        <momentum>
          <name>-l2-p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop5">
        <name>W_minus</name>
        <source>Vert4</source>
        <target>Vert3</target>
        <momentum>
          <name>-l1-l2</name>
        </momentum>
  </propagator>


 </diagram>

 <diagram
          id="Diagram7"
          incoming="1"
          outgoing="1"
          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="Out1">
        <name>nu_e</name>
        <sense>outgoing</sense>
        <target>Vert2</target>
        <momentum>
          <name>p1</name>
        </momentum>
  </leg>



  <propagator id="Prop1">
        <name>nu_e</name>
        <source>Vert1</source>
        <target>Vert3</target>
        <momentum>
          <name>l1</name>
        </momentum>
  </propagator>

  <propagator id="Prop2">
        <name>Z_0</name>
        <source>Vert4</source>
        <target>Vert1</target>
        <momentum>
          <name>l1-p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop3">
        <name>W_minus</name>
        <source>Vert2</source>
        <target>Vert3</target>
        <momentum>
          <name>l2</name>
        </momentum>
  </propagator>

  <propagator id="Prop4">
        <name>e_minus</name>
        <source>Vert4</source>
        <target>Vert2</target>
        <momentum>
          <name>l2+p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop5">
        <name>e_minus</name>
        <source>Vert3</source>
        <target>Vert4</target>
        <momentum>
          <name>l1+l2</name>
        </momentum>
  </propagator>


 </diagram>

 <diagram
          id="Diagram8"
          incoming="1"
          outgoing="1"
          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="Out1">
        <name>nu_e</name>
        <sense>outgoing</sense>
        <target>Vert2</target>
        <momentum>
          <name>p1</name>
        </momentum>
  </leg>



  <propagator id="Prop1">
        <name>nu_e</name>
        <source>Vert1</source>
        <target>Vert3</target>
        <momentum>
          <name>l1</name>
        </momentum>
  </propagator>

  <propagator id="Prop2">
        <name>Z_0</name>
        <source>Vert4</source>
        <target>Vert1</target>
        <momentum>
          <name>l1-p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop3">
        <name>Z_0</name>
        <source>Vert3</source>
        <target>Vert2</target>
        <momentum>
          <name>-l2</name>
        </momentum>
  </propagator>

  <propagator id="Prop4">
        <name>nu_e</name>
        <source>Vert4</source>
        <target>Vert2</target>
        <momentum>
          <name>l2+p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop5">
        <name>nu_e</name>
        <source>Vert3</source>
        <target>Vert4</target>
        <momentum>
          <name>l1+l2</name>
        </momentum>
  </propagator>


 </diagram>

 <diagram
          id="Diagram9"
          incoming="1"
          outgoing="1"
          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="Out1">
        <name>nu_e</name>
        <sense>outgoing</sense>
        <target>Vert2</target>
        <momentum>
          <name>p1</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-p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop4">
        <name>e_minus</name>
        <source>Vert4</source>
        <target>Vert3</target>
        <momentum>
          <name>l1+l2-p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop5">
        <name>nu_e</name>
        <source>Vert3</source>
        <target>Vert4</target>
        <momentum>
          <name>l2</name>
        </momentum>
  </propagator>


 </diagram>

 <diagram
          id="Diagram10"
          incoming="1"
          outgoing="1"
          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="Out1">
        <name>nu_e</name>
        <sense>outgoing</sense>
        <target>Vert2</target>
        <momentum>
          <name>p1</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-p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop4">
        <name>gamma</name>
        <source>Vert4</source>
        <target>Vert3</target>
        <momentum>
          <name>l1+l2-p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop5">
        <name>W_minus</name>
        <source>Vert4</source>
        <target>Vert3</target>
        <momentum>
          <name>-l2</name>
        </momentum>
  </propagator>


 </diagram>

 <diagram
          id="Diagram11"
          incoming="1"
          outgoing="1"
          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="Out1">
        <name>nu_e</name>
        <sense>outgoing</sense>
        <target>Vert2</target>
        <momentum>
          <name>p1</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-p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop4">
        <name>W_minus</name>
        <source>Vert4</source>
        <target>Vert3</target>
        <momentum>
          <name>l1+l2-p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop5">
        <name>Z_0</name>
        <source>Vert4</source>
        <target>Vert3</target>
        <momentum>
          <name>-l2</name>
        </momentum>
  </propagator>


 </diagram>

 <diagram
          id="Diagram12"
          incoming="1"
          outgoing="1"
          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="Out1">
        <name>nu_e</name>
        <sense>outgoing</sense>
        <target>Vert2</target>
        <momentum>
          <name>p1</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+p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop4">
        <name>e_minus</name>
        <source>Vert4</source>
        <target>Vert3</target>
        <momentum>
          <name>l1+l2-p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop5">
        <name>e_minus</name>
        <source>Vert3</source>
        <target>Vert4</target>
        <momentum>
          <name>l2</name>
        </momentum>
  </propagator>


 </diagram>

 <diagram
          id="Diagram13"
          incoming="1"
          outgoing="1"
          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="Out1">
        <name>nu_e</name>
        <sense>outgoing</sense>
        <target>Vert2</target>
        <momentum>
          <name>p1</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+p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop4">
        <name>nu_e</name>
        <source>Vert4</source>
        <target>Vert3</target>
        <momentum>
          <name>l1+l2-p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop5">
        <name>nu_e</name>
        <source>Vert3</source>
        <target>Vert4</target>
        <momentum>
          <name>l2</name>
        </momentum>
  </propagator>


 </diagram>

 <diagram
          id="Diagram14"
          incoming="1"
          outgoing="1"
          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="Out1">
        <name>nu_e</name>
        <sense>outgoing</sense>
        <target>Vert2</target>
        <momentum>
          <name>p1</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+p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop4">
        <name>W_minus</name>
        <source>Vert4</source>
        <target>Vert3</target>
        <momentum>
          <name>l1+l2-p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop5">
        <name>W_minus</name>
        <source>Vert3</source>
        <target>Vert4</target>
        <momentum>
          <name>l2</name>
        </momentum>
  </propagator>


 </diagram>

 <diagram
          id="Diagram15"
          incoming="1"
          outgoing="1"
          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="Out1">
        <name>nu_e</name>
        <sense>outgoing</sense>
        <target>Vert2</target>
        <momentum>
          <name>p1</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+p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop4">
        <name>e_minus</name>
        <source>Vert3</source>
        <target>Vert4</target>
        <momentum>
          <name>-l1-l2+p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop5">
        <name>gamma</name>
        <source>Vert4</source>
        <target>Vert3</target>
        <momentum>
          <name>-l2</name>
        </momentum>
  </propagator>


 </diagram>

 <diagram
          id="Diagram16"
          incoming="1"
          outgoing="1"
          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="Out1">
        <name>nu_e</name>
        <sense>outgoing</sense>
        <target>Vert2</target>
        <momentum>
          <name>p1</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+p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop4">
        <name>e_minus</name>
        <source>Vert3</source>
        <target>Vert4</target>
        <momentum>
          <name>-l1-l2+p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop5">
        <name>Z_0</name>
        <source>Vert4</source>
        <target>Vert3</target>
        <momentum>
          <name>-l2</name>
        </momentum>
  </propagator>


 </diagram>

 <diagram
          id="Diagram17"
          incoming="1"
          outgoing="1"
          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="Out1">
        <name>nu_e</name>
        <sense>outgoing</sense>
        <target>Vert2</target>
        <momentum>
          <name>p1</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+p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop4">
        <name>nu_e</name>
        <source>Vert3</source>
        <target>Vert4</target>
        <momentum>
          <name>-l1-l2+p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop5">
        <name>W_minus</name>
        <source>Vert3</source>
        <target>Vert4</target>
        <momentum>
          <name>l2</name>
        </momentum>
  </propagator>


 </diagram>

 <diagram
          id="Diagram18"
          incoming="1"
          outgoing="1"
          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="Out1">
        <name>nu_e</name>
        <sense>outgoing</sense>
        <target>Vert2</target>
        <momentum>
          <name>p1</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+p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop4">
        <name>e_minus</name>
        <source>Vert3</source>
        <target>Vert4</target>
        <momentum>
          <name>-l1-l2+p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop5">
        <name>W_minus</name>
        <source>Vert4</source>
        <target>Vert3</target>
        <momentum>
          <name>-l2</name>
        </momentum>
  </propagator>


 </diagram>

 <diagram
          id="Diagram19"
          incoming="1"
          outgoing="1"
          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="Out1">
        <name>nu_e</name>
        <sense>outgoing</sense>
        <target>Vert2</target>
        <momentum>
          <name>p1</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+p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop4">
        <name>nu_e</name>
        <source>Vert3</source>
        <target>Vert4</target>
        <momentum>
          <name>-l1-l2+p1</name>
        </momentum>
  </propagator>

  <propagator id="Prop5">
        <name>Z_0</name>
        <source>Vert4</source>
        <target>Vert3</target>
        <momentum>
          <name>-l2</name>
        </momentum>
  </propagator>


 </diagram>
</feynml>

<!-- end -->

[ ]: