예제 #1
0
def get_diagram_one(ax, fermion_style, boson_style, vertex_style):

    D = Diagram(ax)

    w = 0.75
    xy0 = [0.5 - w / 2, 0.25]
    v1 = D.vertex(xy0, **vertex_style)
    v2 = D.vertex(v1.xy, dx=w, **vertex_style)
    G = D.line(v1, v2, **fermion_style)
    B = D.line(v1, v2, **boson_style)

    # In case the axes get smaller (you have more diagrams), you might want to change the scale
    D.scale(1.0)

    D.plot()
    return D
예제 #2
0
import matplotlib

from feynman import Diagram

fig = matplotlib.pyplot.figure(figsize=(1., 1.))
ax = fig.add_axes([0, 0, 10, 10], frameon=False)

diagram = Diagram(ax)
in1 = diagram.verticle(xy=(.1, .5))
in2 = diagram.verticle(xy=(.4, .5))
v1 = diagram.verticle(xy=(.65, .65))
v2 = diagram.verticle(xy=(.65, .35))
out1 = diagram.verticle(xy=(.9, .65), marker='')
out2 = diagram.verticle(xy=(.9, .35), marker='')

higgs = diagram.line(in1, in2, arrow=False, style='dashed')
nu1 = diagram.line(v1, in2)
nu2 = diagram.line(in2, v2)
w = diagram.line(v1, v2, style='wiggly')
lep = diagram.line(out1, v1)
tau = diagram.line(v2, out2)

nu1.text(r"$\nu_\ell$", fontsize=40)
nu2.text(r"$\nu_\tau$", fontsize=40)
lep.text(r"$\ell^+$", fontsize=40)
tau.text(r"$\tau^-$", fontsize=40)
#w.text(r"W$^\pm$",fontsize=40)
diagram.text(0.72, 0.5, "$W^\pm$", fontsize=40)
#diagram.text(0.69,0.35,"$Z/W^\pm$",fontsize=30)
higgs.text("H", fontsize=40)
예제 #3
0
fig = plt.figure(figsize=(8, 2))
ax = fig.add_subplot(111, frameon=False)

ax.set_xlim(0, 2)
ax.set_ylim(0, .5)

y0 = 0.175

opwidth = 0.3
linlen = 0.8

W_style = dict(style='double wiggly elliptic', nwiggles=5)
G_style = dict(style='double', arrow=True, arrow_param={'width': 0.05})

D = Diagram(ax)

xy = [0.2, y0]
v01 = D.verticle(xy)

xy[0] += opwidth
v02 = D.verticle(xy)

Sigma = D.operator([v01, v02])
Sigma.text("$\Sigma$")

D.text(.70, y0, "=", fontsize=30)

xy[1] = y0 - 0.07

xy[0] = 0.9
예제 #4
0
"""Create the Fock interaction diagram."""

import matplotlib.pyplot as plt
from feynman import Diagram

diagram = Diagram()

v1 = diagram.verticle(xy=(.1, .5), marker='')
v2 = diagram.verticle(xy=(.3, .5))
v3 = diagram.verticle(xy=(.7, .5))
v4 = diagram.verticle(xy=(.9, .5), marker='')

l12 = diagram.line(v1, v2, arrow=True)
w23 = diagram.line(v2, v3, style='elliptic wiggly')
l23 = diagram.line(v2, v3, arrow=True)
l34 = diagram.line(v3, v4, arrow=True)

l12.text("p")
w23.text("q")
l23.text("p-q")
l34.text("p")

diagram.plot()
plt.savefig('pdf/fock.pdf')
diagram.show()
예제 #5
0
"""
Polarization
============

A diagram containing different operators.
"""
from __future__ import print_function, division
import numpy as np
import matplotlib.pyplot as plt
from feynman import Diagram

# Set up the dimensions of the figure and the objects
d = Diagram(figsize=(8, 3))
d.ax.set_xlim(0, 8 / 3)
d.ax.set_ylim(0, 1)

textpad = 0.25
opwidth = 0.4
linlen = 1.1
Gamma_side = .4
Gamma_height = Gamma_side * np.sqrt(3) / 2

# Positon of the first vertex
x0 = 0.2
y0 = sum(d.ax.get_ylim()) / 2

# Define line styles
G_style = dict(
    style='double elliptic',
    ellipse_excentricity=-1.2,
    ellipse_spread=.3,
예제 #6
0
fig = plt.figure(figsize=(12, 3))
ax = fig.add_subplot(111, frameon=False)

ax.set_xlim(0, 3)
ax.set_ylim(0, .75)

y0 = .75 / 2

opwidth = 0.3
linlen = 0.4

W_style = dict(style='double wiggly', nwiggles=2)
v_style = dict(style='simple wiggly', nwiggles=2)

# First diagram
D1 = Diagram(ax)

xy = [0.2, y0]
v01 = D1.verticle(xy)

xy[0] += linlen
v02 = D1.verticle(v01.xy, dx=linlen)

W = D1.line(v01, v02, **W_style)

text_prop = dict(y=0.06, fontsize=22)

W.text("$W$", **text_prop)

D1.text(.75, y0, "=", fontsize=30)
"""
Common neutrino nucleon interactions
"""
import matplotlib.pyplot as plt
from feynman import Diagram

fig = plt.figure(figsize=(10, 5))

ax1 = fig.add_subplot(121, frameon=False)
diagram = Diagram(ax1)
diagram.text(.5, 0.9, "Charged-Current", fontsize=25)
in1 = diagram.vertex(xy=(0.05, 0.75), marker='')
in2 = diagram.vertex(xy=(0.05, 0.25), marker='')
v1 = diagram.vertex(xy=(.45, .6))
v2 = diagram.vertex(xy=(.45, .4))
out1 = diagram.vertex(xy=(0.85, 0.75), marker='')
out2 = diagram.vertex(xy=(0.85, 0.25), marker='')
nu1 = diagram.line(in1, v1)  #incoming neutrino
N = diagram.line(in2, v2)  #incoming neucleon
W = diagram.line(v1, v2, style='wiggly')  #W mediator
nu2 = diagram.line(v1, out1)  #outgoing neutrino
X = diagram.line(v2, out2)  #outgoing shower
diagram.text(0.10, 0.68, "$\\nu_{\ell}$", fontsize=30)
diagram.text(0.10, 0.32, "$N$", fontsize=30)
diagram.text(0.57, 0.5, "$W^{\pm}$", fontsize=30)
diagram.text(0.81, 0.68, "$\ell$", fontsize=30)
diagram.text(0.81, 0.32, "$X$", fontsize=30)

ax2 = fig.add_subplot(122, frameon=False)
diagram2 = Diagram(ax2)
diagram2.text(.5, 0.9, "Neutral-Current", fontsize=25)