% Read in by FEYNMANDOC:  FEYNMANDOC4F.  Called by FD4F.COM
%\chapter{Advanced Features con't Links, Stems and Caps: STEMS}
%
\subsection{Stems}

Stems are small line segments attached to the end of particle lines.
Gluons and photons may be specified with a stem on either end or both ends.  
Vertices may also be drawn with stems on any or all of the lines.

\subsubsection{Stemmed Lines}

Examples of stemmed lines have been given in sections 2.9.2 (photons)
and 2.10.2 (gluons).
They are most \ae stetically pleasing when used in conjunction with
gluons of a centralized style (\ie\ diagonal gluons or those of styles
\bs CENTRAL and \bs FLIPPEDCENTRAL).  To add a stem to a line enter one of
\verb@\frontstemmed@ or \verb@\backstemmed@ 
just prior to the \ddrawline\ statement.  
To stem both front and back enter \verb@\stemmed@.  That is
\begin{verbatim}

\frontstemmed\drawline...
\backstemmed\drawline...
\stemmed\drawline...

\end{verbatim}
The length of a stem may be set by issuing the command
\begin{verbatim}
\global\stemlength=<number in centipoints>
\end{verbatim}
just prior to the stem command. The length is automatically re-set to its
default value.  Note that, since diagonal lines of length less than 1415
centipoints cannot be drawn, this is the minimum stemlength possible
for a diagonal particle.  Attempts to draw a shorter stem will result in
a gap.   To illustrate
\begin{verbatim}

\begin{picture}(15000,8000)
\frontstemmed\drawline\gluon[\E\CENTRAL](1000,6000)[3]
\drawline\fermion[\SW\REG](\pfrontx,\pfronty)[1500]
\drawline\fermion[\NW\REG](\pfrontx,\pfronty)[1500]

\global\stemlength=750
\frontstemmed\drawline\gluon[\E\CENTRAL](1000,1000)[3]
\drawline\fermion[\SW\REG](\pfrontx,\pfronty)[1500]
\drawline\fermion[\NW\REG](\pfrontx,\pfronty)[1500]

\stemmed\drawline\photon[\NE\FLIPPED](10000,2000)[5]
\global\Xone=\pbackx  \global\Yone=\pbacky
\drawline\fermion[\S\REG](\pfrontx,\pfronty)[1500]
\drawline\fermion[\W\REG](\pfrontx,\pfronty)[1500]
\drawline\fermion[\N\REG](\Xone,\Yone)[1500]
\drawline\fermion[\E\REG](\Xone,\Yone)[1500]
\end{picture}

\end{verbatim}
giving

\begin{picture}(15000,8000)
\frontstemmed\drawline\gluon[\E\CENTRAL](1000,6000)[3]
\drawline\fermion[\SW\REG](\pfrontx,\pfronty)[1500]
\drawline\fermion[\NW\REG](\pfrontx,\pfronty)[1500]

\global\stemlength=750
\frontstemmed\drawline\gluon[\E\CENTRAL](1000,1000)[3]
\drawline\fermion[\SW\REG](\pfrontx,\pfronty)[1500]
\drawline\fermion[\NW\REG](\pfrontx,\pfronty)[1500]

\stemmed\drawline\photon[\NE\FLIPPED](10000,2000)[5]
\global\Xone=\pbackx  \global\Yone=\pbacky
\drawline\fermion[\S\REG](\pfrontx,\pfronty)[1500]
\drawline\fermion[\W\REG](\pfrontx,\pfronty)[1500]
\drawline\fermion[\N\REG](\Xone,\Yone)[1500]
\drawline\fermion[\E\REG](\Xone,\Yone)[1500]
\end{picture}

Stems may be also emboldened via \bs THICKLINES and will not appear
when used in phantom mode.  A number of additional features need to 
be mentioned.

Occasionally it may transpire that the user needs to reference the position
of the endpoint of a line both with the stem and without it (perhaps for
alignment purposes).  After the \bs stemmed\ddrawline\ has been issued
the following returned parameters refer to the tips of the {\it stems}:
\begin{verbatim}
     \pfrontx    \pbackx     \pmidx     \plengthx     \boxlengthx
     \pfronty    \pbacky     \pmidy     \plengthy     \boxlengthy
\end{verbatim}
whereas
the following returned parameters refer to the tips of the {\it particle}:
\begin{verbatim}
             \gluonfrontx    \gluonbackx     \gluonlengthx  
             \gluonfronty    \gluonbacky     \gluonlengthy  
             \photonfrontx   \photonbackx    \photonlengthx  
             \photonfronty   \photonbacky    \photonlengthy  
\end{verbatim}
the same is true for \bs frontstemmed and \bs backstemmed.
This does have a disadvantage in that one frequently must store
the values of \verb@\pbackx,\pbacky@ \etc\ in order to draw arrows and so
forth after intervening \ddrawline\ commands.

When a stem is drawn it does not truly become part of the line to which it
has been attached.  For this reason if \bs drawandsaveline is used with a stem
statement the {\em line} will be saved but {\em not} the stem(s).  That is the
statements
\begin{verbatim}
\global\stemlength=100
\stemmed\drawandsaveline`\littlestem' as \gluon[\W\CENTRALGLUON](0,0)[5]
\end{verbatim}
will produce a line as if \ddrawline\ had been issued (with stems) but
attempts to re-use \bs littlestem will result in a stemless gluon.
The same is true for storing gluons with links and caps attached.
Stems saved with the \bs savebox facility will, of course, be retained.
Furthermore in the above example the reduced \bs stemlength will also
revert to its default value.
We demonstrate the previous points:

\begin{verbatim}

\begin{picture}(8000,10000)

\stemmed\drawandsaveline`\unstemmed' as \gluon[\W\CENTRAL](7000,8000)[5]
\global\Xone=\pbackx  \global\Yone=\pbacky
\global\Xthree=\plengthx  \global\Ythree=\plengthy  % store gluon length
\drawline\fermion[\NE\REG](\pfrontx,\pfronty)[1500]
\drawline\fermion[\SE\REG](\pfrontx,\pfronty)[1500]
\drawline\fermion[\NW\REG](\Xone,\Yone)[1500]
\drawline\fermion[\SW\REG](\Xone,\Yone)[1500]

\global\plengthx=\Xthree \global\plengthy=\Ythree   %re-sets gluon lengths

\drawoldpic\unstemmed(7000,4000)
\global\Xone=\pbackx  \global\Yone=\pbacky
\global\Xtwo=\pfrontx  \global\Ytwo=\pfronty
\drawline\fermion[\NE\REG](\gluonfrontx,\gluonfronty)[3000]
\drawline\fermion[\SE\REG](\gluonfrontx,\gluonfronty)[3000]
\drawline\fermion[\NW\REG](\gluonbackx,\gluonbacky)[3000]
\drawline\fermion[\SW\REG](\gluonbackx,\gluonbacky)[3000]

\drawline\fermion[\NE\REG](\Xtwo,\Ytwo)[1500]
\drawline\fermion[\SE\REG](\Xtwo,\Ytwo)[1500]
\drawline\fermion[\NW\REG](\Xone,\Yone)[1500]
\drawline\fermion[\SW\REG](\Xone,\Yone)[1500]
\end{picture}

\end{verbatim}

\begin{picture}(8000,10000)
\stemmed\drawandsaveline`\unstemmed' as \gluon[\W\CENTRAL](7000,8000)[5]
\global\Xone=\pbackx  \global\Yone=\pbacky
\global\Xthree=\plengthx  \global\Ythree=\plengthy
\drawline\fermion[\NE\REG](\pfrontx,\pfronty)[1500]
\drawline\fermion[\SE\REG](\pfrontx,\pfronty)[1500]
\drawline\fermion[\NW\REG](\Xone,\Yone)[1500]
\drawline\fermion[\SW\REG](\Xone,\Yone)[1500]

\global\plengthx=\Xthree \global\plengthy=\Ythree   %re-sets gluon lengths

\drawoldpic\unstemmed(7000,4000)
\global\Xone=\pbackx  \global\Yone=\pbacky
\global\Xtwo=\pfrontx  \global\Ytwo=\pfronty
\drawline\fermion[\NE\REG](\gluonfrontx,\gluonfronty)[3000]
\drawline\fermion[\SE\REG](\gluonfrontx,\gluonfronty)[3000]
\drawline\fermion[\NW\REG](\gluonbackx,\gluonbacky)[3000]
\drawline\fermion[\SW\REG](\gluonbackx,\gluonbacky)[3000]

\drawline\fermion[\NE\REG](\Xtwo,\Ytwo)[1500]
\drawline\fermion[\SE\REG](\Xtwo,\Ytwo)[1500]
\drawline\fermion[\NW\REG](\Xone,\Yone)[1500]
\drawline\fermion[\SW\REG](\Xone,\Yone)[1500]
\end{picture}

Note how the line length needed to be stored when \bs drawoldpic was
called.  As explained before \bs drawoldpic re-sets \bs pfrontx,y
to the point from which the line is currently being drawn and calculates 
\bs pmidx,y and \bs pbackx,y based upon that point and the most recent
value of \bs plengthx,y.  This is useful when the same line is being
repeatedly drawn without intervening \ddrawline\ or \ddrawvertex\ 
commands.  When such commands occur the lengths are lost.
Obviously \bs plengthx,y were measured inclusive of the stems.
To avoid this difficulty one would instead let \bs Xthree=\bs gluonlengthx
and then assign this value to \bs plengthx.

The same line may be both stemmed and linked.  If this is attempted on
the same end you will obtain nonsense.

\begin{picture}(18000,10000)
\global\stemlength=1416
\backstemmed\drawline\gluon[\SE\REG](0,8000)[3]\gluonlink
\frontstemmed\drawline\gluon[\E\CENTRAL](10000,4000)[4]\gluonlink
\drawline\fermion[\NW\REG](\pfrontx,\pfronty)[4000]
\drawline\fermion[\SW\REG](\pfrontx,\pfronty)[4000]
\flipvertex\drawvertex\gluon[\E 3](\gluonbackx,\gluonbacky)[3]
\end{picture}
\vskip 0.2in
which comes from

\begin{verbatim}

\begin{picture}(18000,10000)
\global\stemlength=1416
\backstemmed\drawline\gluon[\SE\REG](0,8000)[3]\gluonlink

\frontstemmed\drawline\gluon[\E\CENTRAL](10000,4000)[4]\gluonlink
\drawline\fermion[\NW\REG](\pfrontx,\pfronty)[4000]
\drawline\fermion[\SW\REG](\pfrontx,\pfronty)[4000]
\flipvertex\drawvertex\gluon[\E 3](\gluonbackx,\gluonbacky)[3]
\end{picture}

\end{verbatim}
