Feynman diagram for double Higgs production
Source code name: "feynman_doubleHiggs.py"
Programming language: Python
Topic: Physics/HEP
DMelt Version 1. Last modified: 05/09/2015. License: Free
https://datamelt.org/code/cache/feynman_doubleHiggs_8481.py
To run this script using the DMelt IDE, copy the above URL link to the menu [File]→[Read script from URL] of the DMelt IDE.



from java.awt import *
from jhplot import *
from jhplot.jadraw import Diagram

# position of the diagram on the canvas
Xpos=0.2
Ypos=0.22

c1=HPlotJa("Diagram",600,400,1,1,0)
c1.setGTitle("Feynman diagram for 2 Higgs to 4 τ", Color.blue)
c1.visible()
c1.showEditor(False)

# upper V shape
# start position x=0.05, y=0.1 
gl=Diagram.FLine(Xpos,Ypos)
gl.setRelWH(0.15,0.1,"NDC")
gl.setStroke(2)
c1.add(gl)

gl=Diagram.FLine(Xpos+0.15,Ypos)
gl.setRelWH(0.15,-0.1,"NDC")
gl.setStroke(2)
c1.add(gl)

 
# lower V  shape
gl=Diagram.FLine(Xpos,Ypos+0.4)
gl.setRelWH(0.15,-0.1,"NDC")
gl.setStroke(2)
c1.add(gl)

gl=Diagram.FLine(Xpos+0.15,Ypos+0.4)
gl.setRelWH(0.15,0.1,"NDC")
gl.setStroke(2)
c1.add(gl)

# show blob at the center
gl=Diagram.Vertex(0, Xpos+0.15,Ypos+0.25)
gl.setRelWH(0.01,0.01,"NDC")
c1.add(gl)

# vertical line like photon
gl=Diagram.PLine(Xpos+0.15,Ypos+0.1)
gl.setRelWH(0.0,0.3,"NDC")
gl.setStroke(2)
c1.add(gl)

# horizontal dottedline for eta
gl=Diagram.SLine(Xpos+0.15,Ypos+0.25)
gl.setRelWH(0.2,0.0,"NDC")
gl.setArrow(False)
gl.setStroke(2)
c1.add(gl)

# show blob at the end of horisonla line
gl=Diagram.Vertex(0, Xpos+0.35,Ypos+0.25)
gl.setRelWH(0.01,0.01,"NDC")
c1.add(gl)

# show eta decay to Higgs
gl=Diagram.SLine(Xpos+0.35,Ypos+0.25)
gl.setRelWH(0.1,0.1,"NDC")
gl.setArrow(False);
gl.setStroke(2)
c1.add(gl)

# show eta decay to Higgs
gl=Diagram.SLine(Xpos+0.35,Ypos+0.15)
gl.setRelWH(0.1,-0.1,"NDC")
gl.setArrow(False);
gl.setStroke(2)
c1.add(gl)


# show upper higgs decay to tau
# upper fermion line
gl=Diagram.FLine(Xpos+0.45,Ypos+0.3)
gl.setRelWH(0.1,-0.05,"NDC")
gl.setFlip(False)
gl.setStroke(2)
c1.add(gl)

# lower fermin line
gl=Diagram.FLine(Xpos+0.45,Ypos+0.35)
gl.setRelWH(-0.1,-0.05,"NDC")
gl.setStroke(2)
c1.add(gl)


# show apper fermin line
gl=Diagram.FLine(Xpos+0.45,Ypos+0.1)
gl.setRelWH(0.1,-0.05,"NDC")
gl.setStroke(2)
c1.add(gl)

# show lower higgs decay to tau
gl=Diagram.FLine(Xpos+0.45,Ypos+0.15)
gl.setRelWH(-0.1,-0.05,"NDC")
gl.setStroke(2)
c1.add(gl)


# show text
gl=Diagram.Text("η", Xpos+0.25, Ypos+0.2)
c1.add(gl)

# show Higgs lines
gl=Diagram.Text("H^{ 0}", Xpos+0.35,Ypos+0.15)
c1.add(gl)
gl=Diagram.Text("H^{ 0}", Xpos+0.35,Ypos+0.4)
c1.add(gl)

# tau
t1=Diagram.Text("τ^{ +}", Xpos+0.57, Ypos+0.22)
c1.add(t1)
t2=Diagram.Text("τ^{ -}", Xpos+0.57,Ypos+0.10)
c1.add(t2)

# tau
t3=Diagram.Text("τ^{ -}", Xpos+0.57, Ypos+0.3)
c1.add(t3)
t4=Diagram.Text("τ^{ +}", Xpos+0.57, Ypos+0.43)
c1.add(t4)


# show text
gl=Diagram.Text("Z^{ 0}/W^{ ±}", Xpos,Ypos+0.18)
c1.add(gl)

# show text
gl=Diagram.Text("Z^{ 0}/W^{ ∓}", Xpos, Ypos+0.35)
c1.add(gl)

c1.update()
c1.export("doubleHiggs.eps")


# show all now
# c1.update()