CERN Accelerating science

This website is no longer maintained. Its content may be obsolete. Please visit http://home.cern/ for current CERN information.



next up previous
Next: Text Processing Up: Tutorial Section Previous: Tutorial Section

FEYN, a Package for Drawing Feynman Diagrams with PAW

Mario Stipcevic / PPE

Introduction

FEYN is a package for high-quality drawing of Feynman graphs and related intuitive pictures. The emphasis is on the quality of the picture and the ease of use. FEYN is not a stand-alone package but consists of a set of PAW (Physics Analysis Workstation, CERN Program Library Long Writeup Q121) macros which draw simple objects such as fermion, scalar, photon, gluon,... and loops or half-loops.

To get a picture one has to create a macro written in FEYN's meta-language and run it under PAW. Of course, once the picture is drawn on the graphic HIGZ screen, it can be printed or saved to a file as (Encapsulated) PostScript in the usual way or by using the tools provided with the package itself.

Commands

The present version supports the list of commands whose short descriptions are shown below. More details are given in the User manual. Note that command names are case insensitive, parameters in square brackets are optional.

FINIT

Initializes FEYN. The pawlogon.kumac PAW macro, distributed with FEYN, executes this command automatically.

NEW   [width height]  D= 10 10

Sets the size of the drawing ``paper''.

FEND

End of work with FEYN. Drops all FEYN initializations.

START   x y

Set the current position to point (x,y).

GO     dx [dy]

Moves the current position by (dx,dy).

 
MEM      [n]      D=1

Saving the current position into memory number ``n''.

 
REC      [n]      D=1

Moves to the position memorized in the memory ``n''.

 
BACK     [n]      D=1

Go ``n'' leaps back.

 
DOT   [sf] [typ]  D=1 20

Draws various types of dots at the current position.

 
ARROW [af sf]     D=1 1

Draws an arrow at the current position.

 
COLOR [color [object]]  D=black all

Sets the colour of object(s) and the background.

 
CENTER  mname [lm rm um dm [bx]] D=0 0 0 0 ' '

Centers the drawing in macro ``mname'' on the paper with optional margins.

  
FERM  
FLOOP 
FHLOOP

Draws a fermion, a fermion loop (circle) or fermion half-loop (semi-circle).

 
SCAL    [af]       D=0 
SLOOP   [af]       D=1 0
SHLOOP  [p [af]]   D=1 0

Package for drawing scalars (dashed line). It operates in a way similar to the fermion package (FERM, FLOOP, FHLOOP).

 
PHOTON  [q [af]]   D=1 0
PLOOP   [af]       D=1 0
PHLOOP  [p [af]]   D=1 0

Package for drawing photons (sinusoidal curve). It operates in a way similar to the fermion package (FERM, FLOOP, FHLOOP).

 
GLUON   [q [af]]   D=1 0
GLOOP   [af]       D=1 0
GHLOOP  [p [af]]   D=1 0

Package for drawing gluons (cycloidal curve). It operates in a way similar to the fermion package (FERM, FLOOP, FHLOOP).

 
BLOB    [ty]

Draws a ``blob'', i.e. a shaded or coloured circle.

 
JET     [af]

Draws a jet of particles.

 
TEXT   'text' [tf [dx dy [al]]]  D=1 0 0 c

Writes ``text'' next to the last drawn object, at a position calculated by FEYN taking into account the optional alignment and offset.

 
TXT    'text' [x y] [al]  D=current_position c

Writes the ``text'' at the position (x,y) with alignment.

Examples

Below are a series of examples. First let us draw a very simple graph.

MACRO GRAPH        | start of main macro 
                   |   (arbitrary name)       
* Simplest drawing 
new 10 10          |'paper' size 10 by 10 cm
exec x1234         | execute macro 'x1234'
center x1234       | centers graph produced
                   | by subroutine x1234
 RETURN            | end of main macro
*
MACRO x1234        | beginning of macro x1234
                   |   (arbitrary name)       
start 5  5         |
go    1  2         |
ferm  1            |
text 'e'           |
go   -1  2         |
ferm  1            |
text 'e'           |
back               |
go    2  0         |
photon             |
text '[g]'         | greek letter \gamma
RETURN             | end of macro x1234

When the file is written, it can be executed with:

PAW> run test

The resulting picture is:

Electron bremsstrahlung

 start  0  0
 go     2  0
 ferm 1  
 text 'e^-' 
 go    -1.5  0
 go     0 -1 
 photon -1
 dot 1 x
 back
 go 1 0
 go 1 1
 photon

Gluon bremsstrahlung vertex

 color blue text
 start  0  0
 go     1  0
 ferm   1
 text 'c'
 dot
 go     1 -1
 gluon 2 1
 color red text
 text 'g'
 back         
 go     1 .5
 ferm   1
 color blue text
 text 'c'
 color black text

Loop diagram

 start  0  0
 color black text
 color green ferm 
 go    2 0
 dot
 scal 1
 text ' P'
 go 2 0
 fhloop -1  1
 text ' q[-]P/2' -1
 fhloop 1 4 
 text 'q+P/2' -2 0 1
 text 'q+P''![-]P/2' 2 0.5 1
 dot
 go 2 0
 scal 1
 text ' P'''
 go -3 1
 dot
 go 0 1
 photon

Gluon-gluon fusion Higgs

 start 0 0
 go    2 0
 gluon 
 text 'g' -2
 go    1.5 -1
 ferm  1
 text 't'
 go    -1.5 -1
 ferm  -1
 text 't'
 go    0   2
 ferm  -1
 text 't'
 back 
 go    -2  0
 gluon
 text 'g' 2
 go    3.5 1
 go    2  0
 scal  2 
 text 'H^0' 2

Half-loop diagram

 start  0  0
 color text red
 go 2 0
 ferm 1
 text 'e^\261' -1
 back
 go -.3 
 go 1.4
 ghloop 1  
 text 'g' 1
* -----

These PAW macros are available via the <A HREF="http://wwwinfo.cern.ch/pl/paw/index.html">PAW Home Page</A>.



next up previous
Next: Text Processing Up: Tutorial Section Previous: Tutorial Section



Michel Goossens
CN Division
Tel. 3363
Tue Nov 28 18:14:41 MET 1995