%Paper: 
%From: pittau@rulgm0.LeidenUniv.nl (Roberto Pittau 30.46 5531)
%Date: Mon, 6 Jun 94 11:02:16 +0200

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%     WARNING:
%
%    This latex file uses a style program called axodraw.sty,
%    that is included here after the comment line
%
%    % here begins axodraw.sty.
%
%    To print out the paper you have just to exctract the file
%    axodraw.sty, to compile in latex, to create a .ps file,
%    and to print in postscript.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentstyle[12pt,axodraw]{article}
\begin{document}
\newcommand{\bq}{\begin{equation}}
\newcommand{\eq}{\end{equation}}
\newcommand{\bqa}{\begin{eqnarray}}
\newcommand{\eqa}{\end{eqnarray}}
\newcommand{\nl}{\nonumber \\}
\newcommand{\epl}{e^+}
\newcommand{\emn}{e^-}
\newcommand{\ubar}{\bar{u}}
\newcommand{\dbar}{\bar{d}}
\newcommand{\cbar}{\bar{c}}
\newcommand{\sbar}{\bar{s}}
\newcommand{\bbar}{\bar{b}}
\newcommand{\si}{\sigma}
\newcommand{\sit}{\sigma_{tot}}
\newcommand{\sqs}{\sqrt{s}}
\newcommand{\p}[1]{{\scriptstyle{\,(#1)}}}
\newcommand{\gev}{\mbox{GeV}}
\newcommand{\mev}{\mbox{MeV}}
\title{
\vspace{-4cm}
\begin{flushright}
{\large  INLO-PUB-8/94}
\end{flushright}
\vspace{4cm}
Four quark processes at LEP 200
\footnote{This research has been partly supported by EU under contract
number\\ CHRX-CT-0004.}}
\author{R.~Pittau\thanks{email address: pittau@rulgm0.LeidenUniv.nl}\\
        Instituut-Lorentz, Leiden, The Netherlands}
\maketitle
\begin{abstract}
In this paper I investigate the production of four quarks at LEP 200 energies.
Effects due to initial state QED corrections and background
diagrams, including QCD contributions, are studied and examples of results
obtained with an event generator presented.
\end{abstract}
\clearpage
\setcounter{page}{1}
\section{Introduction}
At LEP 200, four jet events will be used to perform
a direct reconstruction of the $W$ massl.gov    \cite{katsa}.
The mass of the charged boson can be determined by looking at the maximum
of the detected invariant mass distribution in the process
\bq
\epl\;\emn \to W^+\;W^- \to 4~quarks \label{wpair}\;\;.
\eq
Since the energy of the jets is not accurately known, one has to perform
fits to the measured distribution using, as a constraint, information about
the center of mass energy of the colliding electrons. This knowledge is
crucial.
If $\epsilon$ is the average energy radiated by the beams, one expects
a shift
\bq
\Delta_M=\epsilon\,{M_W \over \sqs}\;\;.
\eq
in the reconstructed mass.
The value of the maximum of the theoretically predicted distribution is
not affected by
initial state QED radiation or by the inclusion of electroweak and QCD
background diagrams, but the average energy loss is very sensitive
to them and to the experimentally applied cuts.
Therefore, taking into account only the three basic diagrams of reaction
(\ref{wpair}) is not sufficient for comparison with experiment and a flexible
tool is needed, that includes
\begin{itemize}
\item the possibility to implement any desired cut and to study any
experimental distribution;
\item all electroweak background diagrams, leading to the same four quark
final state;
\item initial state QED radiation;
\item QCD background diagrams.
\end{itemize}
In ref. \cite{cpc1} a Monte Carlo program was described that satisfies
all these requirements. The inclusion of electroweak background diagrams
for {\em all} possible four fermion final states was performed in ref.
\cite{np}, and QED initial state radiation introduced in ref. \cite{qed}.
Here, I discuss the effects of QCD production channels on four
quark processes, also showing numerical results obtained with
the above Monte Carlo.
\section{Implementing QCD contributions}
There are two types of QCD contributions. On one hand, when considering a
specific four quark final state, the particles can be produced either
by decaying gauge bosons or gluons, and the respective terms interfere
when squaring the amplitude. Therefore, this gluonic contribution
constitutes an {\em interfering} QCD background for the process (\ref{wpair}).
On the other hand, the measured signal is a four jet final
state, thus also the {\em non-interfering} cross section due to
$\epl \emn \to g g q \bar{q}$ has to be included.

The implementation of the interfering QCD diagrams is trivial
in a program like that in ref. \cite{cpc1}, which already contains
{\em all} possible electroweak Feynman diagrams.
It is enough to add gluons wherever photons connect quark lines.
In fact, if $Q_q,~Q_{q'}$ are the charges of the quarks and $i,j,l,m$
colour labels, the amplitude due to photon
exchange between quarks can be written as follows
\bq
{\cal M}_\gamma= \alpha^2 \, Q_q\, Q_{q'} \left[\,{\cal A}^\p{1}\delta_{ij}
\delta_{lm}+{\cal A}^\p{2}\delta_{im}\delta_{jl}\,\right]\;\;.
\eq
Substituting
\bqa
\delta_{ij}\delta_{lm} &\to& \left(1-{\alpha_r \over 6}\right)\,
                             \delta_{ij}\delta_{lm} +
                              {\alpha_r \over 2}\,\delta_{im}\delta_{jl} \nl
\delta_{im}\delta_{jl} &\to& \left(1-{\alpha_r \over 6}\right)\,
                             \delta_{im}\delta_{jl} +
                              {\alpha_r \over 2} \,\delta_{ij}\delta_{lm} \nl
\alpha_r &=& { \alpha_s \over \alpha\, Q_q\, Q_{q'}} \nonumber
\eqa
in the previous formula takes also gluons into account, including the correct
QCD coupling and colour structure.
Since there is no need to evaluate new Feynman diagrams, this approach requires
almost no additional CPU time.

As for the the non-interfering $\epl \emn \to g g q \bar{q}$ process, the
relevant amplitude can be efficiently computed by using the recursion relations
of ref. \cite{gilber}. A Monte Carlo program with the same structure of that of
ref. \cite{cpc1} has been built in order to get this contribution.

Finally, comparisons have been made with results of refs. \cite{maina,mainap},
always finding a very good agreement.
\section{Results}
I shall now discuss a number of results obtained with the program
of ref. \cite{cpc1}. Fragmentation effects are neglected.
The chosen values for the input parameters are
$\alpha= 1/129$, $\alpha_s$= 0.103, $\sin^2\theta_W= 0.23$, $M_W= 80.5$,
$\Gamma_W= 2.3$, $M_Z= 91.19$ and $\Gamma_Z= 2.5$ (all GeV).

\begin{table}[h]
\begin{center}
\begin{tabular}{|l|cc|c|} \hline\hline
$\sqrt s$ (GeV) & \multicolumn{2}{c|}{175}  &  190   \\
\hline
    & $\sigma$ &$\epsilon$& $\sigma$  \\
\hline
$WW$ signal                        &3.0674 &--     &3.5136 \\
                                   &0.0074 &       &0.0090 \\
\hline
$WW$ signal + ISR                  &2.5622 &1.091  &3.1416 \\
                                   &0.0071 &0.005  &0.0089 \\
\hline
 All EW diagrams + ISR             &2.5922  &1.104 &3.3553 \\
                                   &0.0075  &0.005 &0.0097 \\
\hline
 All EW diagrams + interfering QCD & 2.6202 &1.188 &3.3789 \\
   + ISR                           &0.0079  &0.017 &0.0100 \\
\hline
 All EW diagrams + all QCD         &3.1155  &2.513 &3.8688 \\
    + ISR                          &0.0123  &0.065 &0.0146 \\
\hline \hline
\end{tabular}
\end{center}
\caption[.]{Cross section in picobarn and average energy loss ($\epsilon$)
in GeV for $e^+ e^- \to$ 4 $jets$. $E_\p{all~particles}>20~GeV$,
$|\cos \theta_{\p{all~particles}}|<0.9$, $m\p{ij}>10~GeV$ and
$|\cos \p{i,\,j}|<0.9$ between all possible final state pairs.
The second line in each entry is the estimated Monte Carlo error.}
\label{tableone}
\end{table}

Table \ref{tableone} shows results for $e^+ e^- \to 4~jets$
under inclusion of several QED and QCD contributions at LEP 200 energies. The
cross section is lowered by the initial state QED radiation (ISR),
while all the other contributions tend to raise it back to its Born value.
The electroweak (EW) background is at the per cent level as well as the
interfering QCD background. In the last row
also $e^+ e^- \to 2\,gluons\,+\,2\,quarks$ is included; it increases the cross
section by 16\% at $\sqrt s$= 175 GeV.
\noindent As far as the energy loss is concerned,
QCD interfering diagrams are more important than
EW background. However, both contributions are
small compared to the huge effect due to the inclusion of $ggq\bar{q}$.
Cuts on the invariant masses around the $W$ mass strongly suppress these QCD
events. For instance, with the additional requirement that at least one
invariant mass falls in the interval $M_W \,\pm\, 2.5$ GeV, the $ggq\bar{q}$
cross section goes down by a factor 4 and the $WW$ signal only by 5\%.
Furthermore, the corrections to the energy loss become of the same order of
magnitude as the interfering QCD contributions. Finally, it should be noted
that $\epsilon$ is also very sensitive to the experimental setup \cite{qed}.
For example, with the additional cut described above, the value of $\epsilon$
in the second row of table \ref{tableone} goes down from
1.091 $\pm$ 0.005 to 1.039 $\pm$ 0.007.

In figure 1 the effect of the combinatorial background on the invariant mass
distribution for a specific final state at $\sqs=$ 175 GeV is shown. In (a) any
possible invariant mass $m\p{i,j}$ is taken into account, so that the
normalization of the histogram is 6 times the value of the cross section.
In (b) only
those combinations that can be produced by decaying $W's$ are plotted.

Figure 2 shows invariant mass distributions in four jet events under
inclusion of QCD, QED and EW background contributions at two different
energies.
The curves have been obtained by fitting histograms as those given in figure 1.
ISR lowers the distributions and $g g q \bar{q}$ gives a roughly constant
positive contribution between 30 and 100 GeV. Below the peak the latter effect
is dominant, while at the peak the situation is reversed.

A more detailed analysis of the peak of the distribution at $\sqs=$ 175 GeV
is contained in figure 3. The maximum is not affected by ISR, EW background and
QCD contributions, and, after subtraction of constant effects due to
combinatorial background and  $g g q \bar{q}$ production, also the width
is unchanged.
\section{Conclusions}
At LEP 200 the $W$ mass will be measured from invariant mass distributions
by direct reconstruction.
An accurate analysis shows that, in four jet events, the maximum and
the width of the distributions are not strongly affected  by the inclusion of
electroweak and QCD background diagrams as well as QED initial state radiation.
On the other hand, due to uncertainties in the measurement of the jet energy,
a precise knowledge of the average energy loss is required, and this quantity
{\em is very sensitive} to the mentioned effects and to the experimental setup.
Therefore, a flexible program like that in ref. \cite{cpc1} is needed, which
includes all these corrections and the possibility to implement cuts and
compute any experimental distribution.
\section{Acknowledgments}
Very stimulating discussions with Prof. Berends and Dr. Kleiss are gratefully
acknowledged. I also thank Dr. Ballestrero, Dr. Maina and Dr. Moretti for
detailed information on the results of ref. \cite{maina} and for checks against
their programs.
\begin{thebibliography}{999}
\bibitem{katsa} S.~Katsanevas et al. DELPHI 92-166 PHYS. (1992) 250.
\bibitem{cpc1} F.A.~Berends, R.~Kleiss and R.~Pittau,\\
               {\em EXCALIBUR - A Monte  Carlo program to evaluate all
               four fermion processes at LEP 200 and beyond},
               to be submitted to Comp. Phys. Comm.
\bibitem{np}  F.A.~Berends, R.~Kleiss and R.~Pittau,
              {\em All electroweak four fermion processes in electron-positron
              collisions}, INLO-PUB-1/94 and NIKHEF-H/94-08, to be published
              in Nucl. Phys. {\bf B}.
\bibitem{qed}  F.A.~Berends, R.~Kleiss and R.~Pittau, {\em Initial-state QED
               corrections to four-fermion production in $e^+ e^-$ collisions
               at LEP 200 and beyond}, INLO-PUB-6/94 and NIKHEF-H/94-20,
               submitted to  Nucl. Phys. {\bf B}.
\bibitem{gilber} F.A~Berends, W.T.~Giele and H. Kuijf, Nucl. Phys. {\bf B321}
                 (1989) 39.
\bibitem{maina} A. Ballestrero, E. Maina and S. Moretti, Nucl Phys.
{\bf B415} (1994) 265.
\bibitem{mainap} E. Maina, private communication.
\end{thebibliography}

\begin{picture}(180,365)(40,-45)
\LinAxis(0,0)(200,0)(2,10,5,0,1)
\LinAxis(0,300)(200,300)(2,10,-5,0,1)
\LinAxis(0,0)(0,300)(6,10,-5,0,1)
\LinAxis(200,0)(200,300)(6,10,5,0,1)
\SetScale{100.}
\SetWidth{0.005}
\Line(0.0000,0.0000)(0.1000,0.0000)\Line(0.1000,0.0000)(0.1000,0.0998)
\Line(0.1000,0.0998)(0.2000,0.0998)\Line(0.2000,0.0998)(0.2000,0.4435)
\Line(0.2000,0.4435)(0.3000,0.4435)\Line(0.3000,0.4435)(0.3000,0.5818)
\Line(0.3000,0.5818)(0.4000,0.5818)\Line(0.4000,0.5818)(0.4000,0.7067)
\Line(0.4000,0.7067)(0.5000,0.7067)\Line(0.5000,0.7067)(0.5000,0.7596)
\Line(0.5000,0.7596)(0.6000,0.7596)\Line(0.6000,0.7596)(0.6000,0.7382)
\Line(0.6000,0.7382)(0.7000,0.7382)\Line(0.7000,0.7382)(0.7000,1.5667)
\Line(0.7000,1.5667)(0.8000,1.5667)\Line(0.8000,1.5667)(0.8000,2.0720)
\Line(0.8000,2.0720)(0.9000,2.0720)\Line(0.9000,2.0720)(0.9000,0.4174)
\Line(0.9000,0.4174)(1.0000,0.4174)\Line(1.0000,0.4174)(1.0000,0.2434)
\Line(1.0000,0.2434)(1.1000,0.2434)\Line(1.1000,0.2434)(1.1000,0.0857)
\Line(1.1000,0.0857)(1.2000,0.0857)\Line(1.2000,0.0857)(1.2000,0.0077)
\Line(1.2000,0.0077)(1.3000,0.0077)\Line(1.3000,0.0077)(1.3000,0.0000)
\Line(1.3000,0.0000)(1.4000,0.0000)\Line(1.4000,0.0000)(1.4000,0.0000)
\Line(1.4000,0.0000)(1.5000,0.0000)\Line(1.5000,0.0000)(1.5000,0.0000)
\Line(1.5000,0.0000)(1.6000,0.0000)\Line(1.6000,0.0000)(1.6000,0.0000)
\Line(1.6000,0.0000)(1.7000,0.0000)\Line(1.7000,0.0000)(1.7000,0.0000)
\Line(1.7000,0.0000)(1.8000,0.0000)\Line(1.8000,0.0000)(1.8000,0.0000)
\Line(1.8000,0.0000)(1.9000,0.0000)\Line(1.9000,0.0000)(1.9000,0.0000)
\SetScale{1.}\SetWidth{0.5}
\Text(10,250)[l]{${\mbox{pb} \over 10\,\gev}$}
\Text(20,280)[]{(a)}
\Text(0,-10)[]{0}\Text(100,-10)[]{100}
\Text(200,-10)[r]{200}
\Text(-14,50)[]{0.25}
\Text(-14,100)[]{0.50}
\Text(-14,150)[]{0.75}
\Text(-14,200)[]{1.00}
\Text(-14,250)[]{1.25}
\Text(100,-25)[t]{$m\p{i,j}$ (GeV)}
\end{picture}
\begin{picture}(180,365)(-10,-45)
\LinAxis(0,0)(200,0)(2,10,5,0,1)
\LinAxis(0,300)(200,300)(2,10,-5,0,1)
\LinAxis(0,0)(0,300)(6,10,-5,0,1)
\LinAxis(200,0)(200,300)(6,10,5,0,1)
\SetScale{100.}
\SetWidth{0.005}
\Line(0.0000,0.0000)(0.1000,0.0000)\Line(0.1000,0.0000)(0.1000,0.0006)
\Line(0.1000,0.0006)(0.2000,0.0006)\Line(0.2000,0.0006)(0.2000,0.0015)
\Line(0.2000,0.0015)(0.3000,0.0015)\Line(0.3000,0.0015)(0.3000,0.0037)
\Line(0.3000,0.0037)(0.4000,0.0037)\Line(0.4000,0.0037)(0.4000,0.0057)
\Line(0.4000,0.0057)(0.5000,0.0057)\Line(0.5000,0.0057)(0.5000,0.0128)
\Line(0.5000,0.0128)(0.6000,0.0128)\Line(0.6000,0.0128)(0.6000,0.0436)
\Line(0.6000,0.0436)(0.7000,0.0436)\Line(0.7000,0.0436)(0.7000,0.9409)
\Line(0.7000,0.9409)(0.8000,0.9409)\Line(0.8000,0.9409)(0.8000,1.5436)
\Line(0.8000,1.5436)(0.9000,1.5436)\Line(0.9000,1.5436)(0.9000,0.0194)
\Line(0.9000,0.0194)(1.0000,0.0194)\Line(1.0000,0.0194)(1.0000,0.0019)
\Line(1.0000,0.0019)(1.1000,0.0019)\Line(1.1000,0.0019)(1.1000,0.0004)
\Line(1.1000,0.0004)(1.2000,0.0004)\Line(1.2000,0.0004)(1.2000,0.0002)
\Line(1.2000,0.0002)(1.3000,0.0002)\Line(1.3000,0.0002)(1.3000,0.0000)
\Line(1.3000,0.0000)(1.4000,0.0000)\Line(1.4000,0.0000)(1.4000,0.0000)
\Line(1.4000,0.0000)(1.5000,0.0000)\Line(1.5000,0.0000)(1.5000,0.0000)
\Line(1.5000,0.0000)(1.6000,0.0000)\Line(1.6000,0.0000)(1.6000,0.0000)
\Line(1.6000,0.0000)(1.7000,0.0000)\Line(1.7000,0.0000)(1.7000,0.0000)
\Line(1.7000,0.0000)(1.8000,0.0000)\Line(1.8000,0.0000)(1.8000,0.0000)
\Line(1.8000,0.0000)(1.9000,0.0000)\Line(1.9000,0.0000)(1.9000,0.0000)
\SetScale{1.}\SetWidth{0.5}
\Text(10,250)[l]{${\mbox{pb} \over 10\,\gev}$}
\Text(20,280)[]{(b)}
\Text(0,-10)[]{0}\Text(100,-10)[]{100}
\Text(200,-10)[r]{200}
\Text(-14,50)[]{0.25}
\Text(-14,100)[]{0.50}
\Text(-14,150)[]{0.75}
\Text(-14,200)[]{1.00}
\Text(-14,250)[]{1.25}
\Text(100,-25)[t]{$m\p{3,4}$ + $m\p{5,6}$ (GeV)}
\end{picture}

\noindent Figure 1: Distributions of the invariant masses for
$e^+ e^- \to$  $u\p{3}\,\bar{d}\p{4}\,d\p{5}\,\bar{u}\p{6}$
 with (a) and without (b) combinatorial background
at $\sqrt s$ = 175 GeV. Cuts like in table 1.
All diagrams are taken into account.
QED corrections and QCD background included.
\clearpage
\begin{picture}(180,365)(40,-45)
\LinAxis(0,0)(200,0)(2,10,5,0,1)
\LinAxis(0,300)(200,300)(2,10,-5,0,1)
\LinAxis(0,0)(0,300)(6,10,-5,0,1)
\LinAxis(200,0)(200,300)(6,10,5,0,1)
\SetScale{100.}
\SetWidth{0.005}
\DashCurve{(0.1,0.0000)
(0.2,0.1176)
(0.3,0.5182)
(0.4,0.6876)
(0.5,0.8400)
(0.6,0.8840)
(0.7,0.8480)
(0.8,1.8440)
(0.9,2.4980)
(1.0,0.5107)
(1.1,0.3207)
(1.2,0.1223)
(1.3,0.0111)
(1.4,0.0001)
(1.5,0.0000)
(1.6,0.0000)
(1.7,0.0000)
(1.8,0.0000)
(1.9,0.0000)
(2.0,0.0000)}{0.03}
\Curve{(0.1,0.0000)
(0.2,0.2079)
(0.3,0.6097)
(0.4,0.7529)
(0.5,0.8941)
(0.6,0.9365)
(0.7,0.9119)
(0.8,1.7490)
(0.9,2.2310)
(1.0,0.5408)
(1.1,0.3314)
(1.2,0.1454)
(1.3,0.0355)
(1.4,0.0015)
(1.5,0.0000)
(1.6,0.0000)
(1.7,0.0000)
(1.8,0.0000)
(1.9,0.0000)
(2.0,0.0000)}
\DashCurve{(0.1,0.0000)
(0.2,0.1021)
(0.3,0.1578)
(0.4,0.1586)
(0.5,0.1683)
(0.6,0.1641)
(0.7,0.1564)
(0.8,0.1631)
(0.9,0.1424)
(1.0,0.1073)
(1.1,0.0813)
(1.2,0.0564)
(1.3,0.0267)
(1.4,0.0015)
(1.5,0.0000)
(1.6,0.0000)
(1.7,0.0000)
(1.8,0.0000)
(1.9,0.0000)
(2.0,0.0000)}{0.013}
\SetScale{1.}\SetWidth{0.5}
\DashLine(105,250)(130,250){3}
\Text(10,250)[l]{${\mbox{pb} \over 10\,\gev}$}
\Text(20,280)[]{(a)}
\Text(135,250)[l]{$WW$}
\Line(105,235)(130,235)
\Text(135,235)[l]{All + QCD}
\Text(135,220)[l]{~~~~~+ ISR}
\DashLine(105,200)(130,200){1.3}
\Text(135,200)[l]{$g g q\bar{q}$}
\Text(0,-10)[]{0}\Text(100,-10)[]{100}
\Text(200,-10)[r]{200}
\Text(-10,50)[]{1}
\Text(-10,100)[]{2}
\Text(-10,150)[]{3}
\Text(-10,200)[]{4}
\Text(-10,250)[]{5}
\Text(100,-25)[t]{$m\p{i,j}$ (GeV)}
\end{picture}
\begin{picture}(180,365)(-10,-45)
\LinAxis(0,0)(200,0)(2,10,5,0,1)
\LinAxis(0,300)(200,300)(2,10,-5,0,1)
\LinAxis(0,0)(0,300)(6,10,-5,0,1)
\LinAxis(200,0)(200,300)(6,10,5,0,1)
\SetScale{100.}
\SetWidth{0.005}
\DashCurve{(0.10,0.0000)
(0.20,0.1308)
(0.30,0.5089)
(0.40,0.6987)
(0.50,0.8102)
(0.60,0.8320)
(0.70,0.8338)
(0.80,1.9387)
(0.90,2.8062)
(1.00,0.6351)
(1.10,0.4960)
(1.20,0.4036)
(1.30,0.2848)
(1.40,0.1436)
(1.50,0.0176)
(1.60,0.0000)
(1.70,0.0000)
(1.80,0.0000)
(1.90,0.0000)
(2.00,0.0000)}{0.03}
\Curve{(0.10,0.0000)
(0.20,0.2104)
(0.30,0.6542)
(0.40,0.8381)
(0.50,0.9566)
(0.60,0.9810)
(0.70,0.9832)
(0.80,1.9611)
(0.90,2.7603)
(1.00,0.8505)
(1.10,0.5477)
(1.20,0.4163)
(1.30,0.2842)
(1.40,0.1434)
(1.50,0.0192)
(1.60,0.0000)
(1.70,0.0000)
(1.80,0.0000)
(1.90,0.0000)
(2.00,0.0000)}
\DashCurve{(0.10,0.0000)
(0.20,0.0836)
(0.30,0.1532)
(0.40,0.1524)
(0.50,0.1540)
(0.60,0.1449)
(0.70,0.1383)
(0.80,0.1440)
(0.90,0.1390)
(1.00,0.1097)
(1.10,0.0864)
(1.20,0.0690)
(1.30,0.0527)
(1.40,0.0338)
(1.50,0.0086)
(1.60,0.0000)
(1.70,0.0000)
(1.80,0.0000)
(1.90,0.0000)
(2.00,0.0000)}{0.013}
\SetScale{1.}\SetWidth{0.5}
\DashLine(105,250)(130,250){3}
\Text(10,250)[l]{${\mbox{pb} \over 10\,\gev}$}
\Text(20,280)[]{(b)}
\Text(135,250)[l]{$WW$}
\Line(105,235)(130,235)
\Text(135,235)[l]{All + QCD}
\Text(135,220)[l]{~~~~~+ ISR}
\DashLine(105,200)(130,200){1.3}
\Text(135,200)[l]{$g g q\bar{q}$}
\Text(0,-10)[]{0}\Text(100,-10)[]{100}
\Text(200,-10)[r]{200}
\Text(-10,50)[]{1}
\Text(-10,100)[]{2}
\Text(-10,150)[]{3}
\Text(-10,200)[]{4}
\Text(-10,250)[]{5}
\Text(100,-25)[t]{$m\p{i,j}$ (GeV)}
\end{picture}

\noindent Figure 2: Distributions of the invariant masses for
$e^+ e^- \to$  4 $jets$

\noindent at $\sqrt s$ = 175 GeV (a)
 and $\sqrt s$ = 190 GeV (b). Cuts like in table 1.

\clearpage
\begin{center}
\begin{picture}(360,450)(0,8)
\LinAxis(22.5,0)(360,0)(4.5,10,5,0,1.5)
\LinAxis(22.5,500)(360,500)(4.5,10,-5,0,1.5)
\LinAxis(22.5,0)(22.5,500)(10,10,-5,0,1.5)
\LinAxis(360,0)(360,500)(10,10,5,0,1.5)
\Text(97.5,-10)[t]{{\large 79.3}}
\Text(172.5,-10)[t]{{\large 80.3}}
\Text(247.5,-10)[t]{{\large 81.3}}
\Text(322.5,-10)[t]{{\large 82.3}}
\Text(10.5,100)[r]{{\large 0.04}}
\Text(10.5,200)[r]{{\large 0.08}}
\Text(10.5,300)[r]{{\large 0.12}}
\Text(10.5,400)[r]{{\large 0.16}}
\Text(33,475)[l]{\large ${\mbox{pb} \over 100\,\mev}$}
\DashLine(97.5,100)(168,100){4}
\Text(178,100)[l]{\large $WW$}
\Line(97.5,85)(168,85)
\Text(178,85)[l]{\large All + QCD + ISR}
\DashLine(97.5,70)(168,70){2}
\Text(178,70)[l]{\large $WW$ + ISR}
\DashLine(97.5,55)(168,55){1.1}
\Text(178,55)[l]{\large $g g q \bar{q}$}
\Text(191,-30)[t]{$m\p{i,j}$ (GeV)}
\SetScale{50.}
\SetWidth{0.005}
\DashCurve{(0.45,2.5908)
(0.60,2.7788)
(0.75,2.9612)
(0.90,3.1172)
(1.05,3.2428)
(1.20,3.5180)
(1.35,3.7252)
(1.50,4.0376)
(1.65,4.3264)
(1.80,4.6520)
(1.95,4.9004)
(2.10,5.3008)
(2.25,5.7440)
(2.40,6.2612)
(2.55,6.6872)
(2.70,7.1520)
(2.85,7.6340)
(3.00,8.1520)
(3.15,8.5680)
(3.30,9.0560)
(3.45,9.3400)
(3.60,9.5400)
(3.75,9.6640)
(3.90,9.5960)
(4.05,9.4880)
(4.20,9.1720)
(4.35,8.8560)
(4.50,8.3840)
(4.65,7.8496)
(4.80,7.3168)
(4.95,6.8012)
(5.10,6.3324)
(5.25,5.8528)
(5.40,5.4468)
(5.55,5.0048)
(5.70,4.6660)
(5.85,4.3420)
(6.00,4.0120)
(6.15,3.7584)
(6.30,3.5100)
(6.45,3.2992)
(6.60,3.0840)
(6.75,2.9100)
(6.90,2.7408)
(7.05,2.5964)
(7.20,2.4464)}{0.08}
\DashCurve{(0.45,2.2320)
(0.60,2.3204)
(0.75,2.4740)
(0.90,2.5972)
(1.05,2.7600)
(1.20,2.9188)
(1.35,3.1548)
(1.50,3.3532)
(1.65,3.6304)
(1.80,3.8256)
(1.95,4.1440)
(2.10,4.4288)
(2.25,4.8412)
(2.40,5.1964)
(2.55,5.5100)
(2.70,5.9956)
(2.85,6.3588)
(3.00,6.8608)
(3.15,7.2432)
(3.30,7.5244)
(3.45,7.7544)
(3.60,7.9908)
(3.75,8.0600)
(3.90,8.0160)
(4.05,7.8264)
(4.20,7.5764)
(4.35,7.3140)
(4.50,6.9372)
(4.65,6.5140)
(4.80,6.0668)
(4.95,5.6400)
(5.10,5.2376)
(5.25,4.8448)
(5.40,4.4636)
(5.55,4.1284)
(5.70,3.8424)
(5.85,3.5792)
(6.00,3.2920)
(6.15,3.0848)
(6.30,2.8652)
(6.45,2.6860)
(6.60,2.4936)
(6.75,2.3960)
(6.90,2.2132)
(7.05,2.1260)
(7.20,2.0092)}{0.04}
\Curve{(0.45,2.4455)
(0.60,2.5405)
(0.75,2.6650)
(0.90,2.7925)
(1.05,2.9290)
(1.20,3.0975)
(1.35,3.3175)
(1.50,3.5275)
(1.65,3.8130)
(1.80,4.0140)
(1.95,4.3400)
(2.10,4.5680)
(2.25,5.0500)
(2.40,5.3800)
(2.55,5.6700)
(2.70,6.1800)
(2.85,6.5000)
(3.00,7.0100)
(3.15,7.4100)
(3.30,7.6650)
(3.45,7.9450)
(3.60,8.1550)
(3.75,8.2250)
(3.90,8.1800)
(4.05,8.0400)
(4.20,7.7050)
(4.35,7.4200)
(4.50,7.1000)
(4.65,6.7050)
(4.80,6.2400)
(4.95,5.8550)
(5.10,5.4450)
(5.25,5.0400)
(5.40,4.6045)
(5.55,4.2940)
(5.70,4.0435)
(5.85,3.7590)
(6.00,3.5045)
(6.15,3.2690)
(6.30,3.0165)
(6.45,2.8460)
(6.60,2.6630)
(6.75,2.5425)
(6.90,2.3625)
(7.05,2.2930)
(7.20,2.1860)}
\DashCurve{(0.45,0.1570)
(0.60,0.1605)
(0.75,0.1705)
(0.90,0.1655)
(1.05,0.1605)
(1.20,0.1660)
(1.35,0.1625)
(1.50,0.1560)
(1.65,0.1605)
(1.80,0.1655)
(1.95,0.1605)
(2.10,0.1625)
(2.25,0.1660)
(2.40,0.1700)
(2.55,0.1650)
(2.70,0.1650)
(2.85,0.1500)
(3.00,0.1550)
(3.15,0.1550)
(3.30,0.1600)
(3.45,0.1550)
(3.60,0.1650)
(3.75,0.1550)
(3.90,0.1550)
(4.05,0.1500)
(4.20,0.1600)
(4.35,0.1550)
(4.50,0.1650)
(4.65,0.1600)
(4.80,0.1550)
(4.95,0.1600)
(5.10,0.1550)
(5.25,0.1605)
(5.40,0.1600)
(5.55,0.1530)
(5.70,0.1525)
(5.85,0.1555)
(6.00,0.1605)
(6.15,0.1515)
(6.30,0.1510)
(6.45,0.1605)
(6.60,0.1480)
(6.75,0.1520)
(6.90,0.1490)
(7.05,0.1580)
(7.20,0.1555)}{0.022}
\SetScale{1.}\SetWidth{0.5}
%\Text(0,-10)[]{0}\Text(100,-10)[]{100}
%\Text(200,-10)[]{200}
%\Text(-10,50)[]{1}
%\Text(-10,100)[]{2}
%\Text(-10,150)[]{3}
%\Text(-10,200)[]{4}
%\Text(-10,250)[]{5}
\end{picture}\end{center}

\vspace{1.5cm}
\noindent  Figure 3: Distribution of the invariant masses near the peak for

\noindent  $e^+ e^- \to$  4 $jets$ at $\sqrt s$ = 175 GeV. Cuts like in table
1.
\end{document}
% here begins axodraw.sty
%
%	Style file for the drawing of Feynman diagrams with LaTeX.
%	It assumes that the dvips that is used is by Radical Eye Software
%	(by Rokicki), because the graphics primitives are given in
%	postscript. If you do not work with a dvi to postscript converter
%	you are out of luck.
%
%	Made by J.A.M. Vermaseren 14-feb-1994
%
%	Use:
%	Enter the picture environment with for instance
%	\begin{picture}(width,height)(0,0)
%		statements
%	\end{picture}
%	All statements should be entered inside the picture environment.
%	All coordinates should be in terms of pt (but the pt must be omitted).
%
\input{epsf.sty}
%		#[ inventory :
%
%   The variables in are:
%   mtrx,num,ampi,x1,y1,x2,y2,dx,dy,dr,speed
%   step,phi,arcend,arcstart,radius
%   theindex,thechar,darc,const,amp1 amp2 amp3
%	gcolor,xx,name,name1,name2,xx1,xx2
%
%	NOTE: blank lines are not allowed inside the postscript code!!!!!
%	(LaTeX sneaks \par commands in and the postscript goes boink)
%
\special{! /ed{exch def}def }
%
%		#] inventory :
%		#[ arrowdown :
%
\special{! /arrowdown
{
    newpath
        0 -2.5 moveto                       % Arrow is a triangle
        2 5 rlineto
        -4 0 rlineto
        2 -5 rlineto
    closepath fill                          % and it is filled
} def }
%
%		#] arrowdown :
%		#[ arrowup :
%
\special{! /arrowup
{
    newpath
        0 2.5 moveto                       % Arrow is a triangle
        2 -5 rlineto
        -4 0 rlineto
        2 5 rlineto
    closepath fill                          % and it is filled
} def }
%
%		#] arrowup :
%		#[ arrowright :
%
\special{! /arrowright
{
    newpath
        2.5 0 moveto                       % Arrow is a triangle
        -5 2 rlineto
        0 -4 rlineto
        5 2 rlineto
    closepath fill                          % and it is filled
} def }
%
%		#] arrowright :
%		#[ gluon :
%
\special{! /gluon
{
	gsave
%
	dup scale
	/width exch def
    /num exch def
    /ampi exch def
    /dy exch def /dx exch def
    /y1 exch def /x1 exch def
    /dy dy y1 sub def
    /dx dx x1 sub def
%
	width setlinewidth
%
%	We have a 'head' and a 'tail' and inbetween the 'body'
%	The head + tail is 2 windings. The body is num-1 windings.
%
    /dr dx dx mul dy dy mul add sqrt def
%
    x1 y1 translate
    dy dx atan rotate
%
	/num num 0.5 sub round def
	/inc dr num 2 mul 2 add div def         % increment per half winding
	/amp8 ampi 0.9 mul def
	amp8 0 lt {/amp8 amp8 neg def} if
%
	/x1 inc 2 mul def
%
	newpath
		0 0 moveto
		inc 0.1 mul ampi 0.5 mul inc 0.5 mul ampi inc 1.4 mul ampi curveto
		x1 amp8 add dup ampi exch ampi neg dup x1 exch curveto
%
		2 1 num {
			pop
			x1 amp8 sub dup ampi neg exch ampi dup x1 inc add exch curveto
			/x1 x1 inc dup add add def
			x1 amp8 add dup ampi exch ampi neg dup x1 exch curveto
		} for
%
		x1 amp8 sub dup ampi neg exch ampi dup x1 inc 0.6 mul add exch curveto
		x1 inc 1.5 mul add ampi dr inc 0.1 mul sub ampi 0.5 mul dr 0 curveto
	stroke
%
	grestore
} def }
%
%		#] gluon :
%		#[ photon :
%
\special{! /photon
%
%   Draws a photon from x1,y1 to x2,y2 with amplitude A and n wiggles
%
{
	gsave
%
	dup scale
	/width exch def
    /num exch def
    /ampi exch def
    /y2 exch def /x2 exch def
    /y1 exch def /x1 exch def
    /dy y2 y1 sub def
    /dx x2 x1 sub def
    /dr dx dx mul dy dy mul add sqrt def
%
    width setlinewidth
%
    x1 y1 translate
    dy dx atan rotate
	/num num 2 mul 0.5 sub round def
	/x2 dr num div def
	/pi 3.141592 def
	/sign 1 def
	1 1 num {
		pop
		newpath
		0 0 moveto
		4 3 div x2 mul pi div dup neg x2 add
		4 3 div ampi sign mul mul dup 3 1 roll
		x2 0 curveto
		stroke
		/sign sign neg def
		x2 0 translate
	} for
%
	grestore
} def }
%
%		#] photon :
%		#[ zigzag :
%
\special{! /zigzag
%
%   Draws a zigzag line from x1,y1 to x2,y2 with amplitude A and n zigzags
%
{
	gsave
%
	dup scale
	/width exch def
    /num exch def
    /ampi exch def
    /y2 exch def /x2 exch def
    /y1 exch def /x1 exch def
    /dy y2 y1 sub def
    /dx x2 x1 sub def
    /dr dx dx mul dy dy mul add sqrt def
%
    width setlinewidth
%
    x1 y1 translate
    dy dx atan rotate
	/num num 2 mul 0.5 sub round def
	/x2 dr num div def
	/pi 3.141592 def
	/sign 1 def
	1 1 num {
		pop
		newpath
		0 0 moveto
		x2 2 div ampi sign mul lineto
		x2 0 lineto
		stroke
		/sign sign neg def
		x2 0 translate
	} for
%
	grestore
} def }
%
%		#] zigzag :
%		#[ photonarc :
%
\special{! /photonarc
%
%   Draws a photonarc center at x1,y1, radius arcstart,arcend, amplitude
%		number of wiggles,  width, scale
%
{
	gsave
%
	dup scale
	/width exch def
	/num exch def
	/ampli exch def
	/arcend exch def
	/arcstart exch def
	/radius exch def
%
	translate		% The center of the circle is now the origin
	width setlinewidth
%
	/num num 2 mul round def	% number of half wiggles
	arcend arcstart lt { /arcend arcend 360 add def } if
	/arcend arcend arcstart sub num div def    % phi
	arcstart rotate
	/arcstart arcend 2 div def                 % phi/2
	/cp arcend cos def
	/sp arcend sin def
	/cp2 arcstart cos def
	/sp2 arcstart sin def
%
	newpath
	1 1 num {
		pop
		radius 0 moveto
		/beta radius arcend mul 180 ampli mul div def
		/tt sp cp beta mul sub cp sp beta mul add div def
		/amp1 radius ampli add 8 mul beta cp2 mul sp2 sub mul beta 4 cp add mul
			tt cp mul 3 mul sp 4 mul sub add radius mul sub
			beta tt sub 3 mul div def			% this is x2
		radius ampli add 8 mul cp2 mul 1 cp add radius mul sub 3 div amp1 sub
			dup radius sub beta mul				% x1,y1
		amp1 dup radius cp mul sub tt mul radius sp mul add		% x2,y2
		radius cp mul radius sp mul				% x3 y3
				curveto
		/ampli ampli neg def
		arcend rotate
	} for
	stroke
%
	grestore
} def }
%
%		#] photonarc :
%		#[ gluearc :
%
\special{! /gluearc
%
%   Draws a gluon on an arcsegment
%   x_center,y_center,radius,stat_angle,end_angle,gluon_radius,num
%   in which num is the number of windings of the gluon.
%   Method:
%   1:  compute length of arc.
%   2:  generate gluon in x and y as if the arc is a straight line
%   3:  x' = (radius+y)*cos(x*const)
%       y' = (radius+y)*sin(x*const)
%
{
    gsave
	dup scale
	/width exch def
    /num exch def
    /ampi exch def
    /arcend exch def
    /arcstart exch def
    /radius exch def
%
    width setlinewidth
    translate                               % move to center of circle
    arcstart rotate                         % segment starts at zero
    /darc arcend arcstart sub def           % argsegment
    /dr darc 180 div 3.141592 mul radius mul def  % length of segment.
    /const darc dr div def                  % conversion constant
%
	/num num 0.5 sub round def
	/inc dr num 2 mul 2 add div def         % increment per half winding
%
	/amp8 ampi 0.9 mul def
	/amp1 radius ampi add def
	/amp2 radius ampi sub def
	/amp3 radius ampi 2 div add def
	/amp4 amp1 inc amp8 add const mul cos div def
	/amp5 amp2 amp8 const mul cos div def
	/amp6 amp1 inc 0.6 mul amp8 add const mul cos div def
	/amp7 amp1 inc 0.9 mul const mul cos div def
	amp8 0 lt {/amp8 amp8 neg def} if
%
	/x1 inc 2 mul def
%
	newpath
		radius 0 moveto
%
		inc 0.1 mul const mul dup cos amp3 mul exch sin amp3 mul
		inc 0.5 mul const mul dup cos amp7 mul exch sin amp7 mul
		inc 1.4 mul const mul dup cos amp1 mul exch sin amp1 mul
			curveto
		x1 amp8 add const mul dup cos amp6 mul exch sin amp6 mul
		x1 amp8 add const mul dup cos amp5 mul exch sin amp5 mul
		x1 const mul dup cos amp2 mul exch sin amp2 mul
			curveto
%
		2 1 num {
			pop
			x1 amp8 sub const mul dup cos amp5 mul exch sin amp5 mul
			x1 amp8 sub const mul dup cos amp4 mul exch sin amp4 mul
			x1 inc add const mul dup cos amp1 mul exch sin amp1 mul
				curveto
			/x1 x1 inc dup add add def
			x1 amp8 add const mul dup cos amp4 mul exch sin amp4 mul
			x1 amp8 add const mul dup cos amp5 mul exch sin amp5 mul
			x1 const mul dup cos amp2 mul exch sin amp2 mul
				curveto
		} for
%
		x1 amp8 sub const mul dup cos amp5 mul exch sin amp5 mul
		x1 amp8 sub const mul dup cos amp6 mul exch sin amp6 mul
		x1 inc 0.6 mul add const mul dup cos amp1 mul exch sin amp1 mul
			curveto
		x1 inc 1.5 mul add const mul dup cos amp7 mul exch sin amp7 mul
		dr inc 0.1 mul sub const mul dup cos amp3 mul exch sin amp3 mul
		dr const mul dup cos radius mul exch sin radius mul
		curveto
	stroke
%
	grestore
} def }
%
%		#] gluearc :
%		#[ arrowarc :
%
\special{! /arrowarc
%
%   Draws an anticlockwise arc with an arrow in the middle
%   The arc is   x_center, y_center, radius, start_angle, end_angle
%
{
    gsave
	dup scale
	/width exch def
    /arcend exch def
    /arcstart exch def
    /radius exch def
%
    width setlinewidth
%
    translate                               % x and y are still on stack
    newpath 0 0 radius arcstart arcend arc stroke
    arcstart arcend gt {
        /arcend arcend 360 add def } if
    arcstart arcend add 2 div rotate        % middle of arc
    radius 0 translate                      % move to it
	arrowup
    grestore
} def }
%
%		#] arrowarc :
%		#[ longarrowarc :
%
\special{! /longarrowarc
%
%   Draws an anticlockwise arc with an arrow at the end
%   The arc is   x_center, y_center, radius, start_angle, end_angle
%
{
    gsave
	dup scale
	/width exch def
    /arcend exch def
    /arcstart exch def
    /radius exch def
%
    width setlinewidth
%
    translate                               % x and y are still on stack
    arcstart arcend gt {
        /arcend arcend 360 add def } if
	/arcmid 900 3.14159 div radius div def	% discount for 5 points
    newpath 0 0 radius arcstart arcend arcmid sub arc stroke
    arcend arcmid 2 div sub rotate          % middle of arrow
    radius 0 translate                      % move to it
	arrowup
    grestore
} def }
%
%		#] longarrowarc :
%		#[ dasharrowarc :
%
\special{! /dasharrowarc
%
%   Draws a dashed anticlockwise arc with an arrow in the middle
%   The arc is   x_center, y_center, radius, start_angle, end_angle dsize
%
{
    gsave
	dup scale
	/width exch def
	/dsize exch def
    /arcend1 exch def
    /arcstart1 exch def
    /radius exch def
%
    width setlinewidth
%
    translate                               % x and y are still on stack
%
	arcend1 arcstart1 lt { /arcend1 arcend1 360 add def } if
	/arcmid1 arcend1 arcstart1 add 2 div def
%
	0 0 radius arcstart1 arcmid1 dsize width 1 dashcarc
	0 0 radius arcmid1 arcend1 dsize width 1 dashcarc
	arcmid1 rotate
	radius 0 translate
	arrowup
    grestore
} def }
%
%		#] dasharrowarc :
%		#[ arrowarcn :
%
\special{! /arrowarcn
%
%   Draws a clockwise arc with an arrow in the middle
%   The arc is   x_center, y_center, radius, start_angle, end_angle
%
{
    gsave
	dup scale
	/width exch def
    /arcend exch def
    /arcstart exch def
    /radius exch def
%
    width setlinewidth
%
    translate                               % x and y are still on stack
    newpath 0 0 radius arcstart arcend arcn stroke
    arcstart arcend lt {
        /arcstart arcstart 360 add def } if
    arcstart arcend add 2 div rotate        % middle of arc
    radius 0 translate                      % move to it
	arrowdown
    grestore
} def }
%
%		#] arrowarcn :
%		#[ longarrowarcn :
%
\special{! /longarrowarcn
%
%   Draws a clockwise arc with an arrow in the end
%   The arc is   x_center, y_center, radius, start_angle, end_angle
%
{
    gsave
	dup scale
	/width exch def
    /arcend exch def
    /arcstart exch def
    /radius exch def
%
    width setlinewidth
%
    translate                               % x and y are still on stack
    arcstart arcend lt {
        /arcstart arcstart 360 add def } if
	/arcmid 900 3.14159 div radius div def  % correction for a 5 point arrow
    newpath 0 0 radius arcstart arcend arcmid add arcn stroke
    arcend arcmid 2 div add rotate          % middle of arrow
    radius 0 translate                      % move to it
	arrowdown
    grestore
} def }
%
%		#] longarrowarcn :
%		#[ dasharrowarcn :
%
\special{! /dasharrowarcn
%
%   Draws a dashed clockwise arc with an arrow in the middle
%   The arc is   x_center, y_center, radius, start_angle, end_angle
%
{
    gsave
	dup scale
	/width exch def
	/dsize exch def
    /arcend1 exch def
    /arcstart1 exch def
    /radius exch def
%
    width setlinewidth
%
    translate                               % x and y are still on stack
    arcstart1 arcend1 lt {
        /arcstart1 arcstart1 360 add def } if
	/arcmid1 arcstart1 arcend1 add 2 div def
	0 0 radius arcmid1 arcstart1 dsize width 1 dashcarc
	0 0 radius arcend1 arcmid1 dsize width 1 dashcarc
    arcmid1 rotate
    radius 0 translate
	arrowdown
    grestore
} def }
%
%		#] dasharrowarcn :
%		#[ arrowline :
%
\special{! /arrowline
%
%   Draws a straight line with an arrow in the middle
%   x1,y1,x2,y2
%
{
    gsave
	dup scale
	/width exch def
    /y2 exch def /x2 exch def
    /y1 exch def /x1 exch def
    /dx x2 x1 sub def
    /dy y2 y1 sub def
    /dr dx dx mul dy dy mul add sqrt def
%
    width setlinewidth
    x1 y1 translate
    newpath
        0 0 moveto
        dx dy rlineto
    stroke
    dy dx atan rotate
	dr 2.0 div 0 translate
	arrowright
    grestore
} def }
%
%		#] arrowline :
%		#[ longarrow :
%
\special{! /longarrow
%
%   Draws a straight line with an arrow at the end
%   x1,y1,x2,y2
%
{
    gsave
	dup scale
	/width exch def
    /y2 exch def /x2 exch def
    /y1 exch def /x1 exch def
    /dx x2 x1 sub def
    /dy y2 y1 sub def
    /dr dx dx mul dy dy mul add sqrt def
%
    width setlinewidth
    x1 y1 translate
    dy dx atan rotate
    newpath
        0 0 moveto
        dr 5 sub 0 rlineto
    stroke
	dr 2.5 sub 0 translate
	arrowright
    grestore
} def }
%
%		#] longarrow :
%		#[ dasharrowline :
%
\special{! /dasharrowline
%
%   Draws a straight dashed line with an arrow in the middle
%   x1,y1,x2,y2
%
%	The pattern is ideally [dsize dsize] 0 setdash
%	but we want to have (2*n+1)/2 patterns, so dsize must be rounded
%	Actually we want the center to be black too so that the arrow
%	fits in nice. This means that n must be odd. So
%	r = dsize*(4*m+3)
%
{
%    gsave
%	dup scale
%	/width exch def
%	/dsize exch def
%    /y2 exch def /x2 exch def
%    /y1 exch def /x1 exch def
%    /dx x2 x1 sub def
%    /dy y2 y1 sub def
%    /dr dx dx mul dy dy mul add sqrt def
%	/dsize dr dsize sub 4 dsize mul div round dup 0 le { pop 0 } if
%	4 mul 1 add dr exch div def
%	[dsize dsize] 0 setdash
%
%    width setlinewidth
%    x1 y1 translate
%    dy dx atan rotate
%    newpath
%        0 0 moveto
%        dr 0 rlineto
%    stroke
%	dr 2.0 div 0 translate
%	arrowright
%    grestore
    gsave
	dup scale
	/width exch def
	/dsize exch def
    /y2 exch def /x2 exch def
    /y1 exch def /x1 exch def
    /dx x2 x1 sub def
    /dy y2 y1 sub def
    /dr dx dx mul dy dy mul add sqrt 2 div def
%
    width setlinewidth
    x1 y1 translate
    dy dx atan rotate
%
	0 0 dr 0 dsize width 1 dashline
	dr 0 translate
	0 0 dr 0 dsize width 1 dashline
	arrowright
    grestore
} def }
%
%		#] dasharrowline :
%		#[ line :
%
\special{! /line
%
%   Draws a straight line: x1,y1,x2,y2
%
{
	gsave
	dup scale
	/width exch def
    /y2 exch def /x2 exch def
    /y1 exch def /x1 exch def
%
	width setlinewidth
    newpath
      x1 y1 moveto
      x2 y2 lineto
    stroke
	grestore
} def }
%
%		#] line :
%		#[ dashline :
%
\special{! /dashline
%
%   Draws a straight dashed line: x1,y1,x2,y2,dsize
%
%	The pattern is ideally [dsize dsize] 0 setdash
%	but we want to have (2*n+1)/2 patterns, so dsize must be rounded
%
{
	gsave
	dup scale
	/width exch def
	/dsize exch def
    /y2 exch def /x2 exch def
    /y1 exch def /x1 exch def
	/r y2 y1 sub dup mul x2 x1 sub dup mul add sqrt def
	/dsize r dsize 2 mul div 0.5 sub round dup 0 le { pop 0 } if 2 mul 1 add
	r exch div def
	[dsize dsize] 0 setdash
%
	width setlinewidth
    newpath
      x1 y1 moveto
      x2 y2 lineto
    stroke
	grestore
} def }
%
%		#] dashline :
%		#[ carc :
%
\special{! /carc
%
%   Draws an anti-clockwise arc segment:
%   x_center, y_center, radius, start_angle, end_angle
%
{
    gsave
	dup scale
	/width exch def
    /arcend exch def
    /arcstart exch def
    /radius exch def
%
    width setlinewidth
%
    translate                               % x and y are still on stack
    newpath 0 0 radius arcstart arcend arc stroke
    grestore
} def }
%
%		#] carc :
%		#[ dashcarc :
%
\special{! /dashcarc
%
%   Draws an anti-clockwise arc segment:
%   x_center, y_center, radius, start_angle, end_angle, dsize
%
{
    gsave
	dup scale
	/width exch def
	/dsize exch def
    /arcend exch def
    /arcstart exch def
    /radius exch def
%
    width setlinewidth
%
    translate                               % x and y are still on stack
%
%	Compute the length of the line
%
	/dr arcend arcstart sub dup 0 lt { 360 add } if
		3.14159 mul 180 div radius mul def
	/dsize dr dsize 2 mul div 0.5 sub round dup 0 le { pop 0 } if 2 mul 1 add
	dr exch div def
	[dsize dsize] 0 setdash
%
    newpath 0 0 radius arcstart arcend arc stroke
    grestore
} def }
%
%		#] dashcarc :
%		#[ vertex :
%
\special{! /vertex
%
%	Puts a fat dot at x,y  size is the radius of the dot
%
{
    gsave
	dup scale
	/dotsize exch def
	translate
	newpath
		0 0 dotsize 0 360 arc
	0 setgray fill stroke
    grestore
} def }
%
%		#] vertex :
%		#[ bcirc :
%
\special{! /bcirc
%
%   Draws an anti-clockwise blanked circle:
%   x_center, y_center, radius
%
{
    gsave
	dup scale
	/width exch def
    /radius exch def
%
    width setlinewidth
    translate                               % x and y are still on stack
%
	1 setgray
    newpath 0 0 radius 0 360 arc fill
	0 setgray
    newpath 0 0 radius 0 360 arc stroke
    grestore
} def }
%
%		#] bcirc :
%		#[ gcirc :
%
\special{! /gcirc
%
%   Draws an anti-clockwise blanked gray circle:
%   x_center, y_center, radius, grayscale
%
{
    gsave
	dup scale
	/width exch def
	/gcolor exch def
    /radius exch def
%
    width setlinewidth
    translate                               % x and y are still on stack
%
	1 setgray
    newpath 0 0 radius 0 360 arc fill
	gcolor setgray
    newpath 0 0 radius 0 360 arc fill
	0 setgray
    newpath 0 0 radius 0 360 arc stroke
    grestore
} def }
%
%		#] gcirc :
%		#[ box :
%
\special{! /box
%
%   Draws a box x1,y1,x2,y2
%
{
	gsave
	dup scale
	/width exch def
    /y2 exch def /x2 exch def
    /y1 exch def /x1 exch def
%
	width setlinewidth
    newpath
        x1 y1 moveto
        x1 y2 lineto
        x2 y2 lineto
        x2 y1 lineto
    closepath stroke
	grestore
} def }
%
%		#] box :
%		#[ bbox :
%
\special{! /bbox
%
%   Draws a blanked out box x1,y1,x2,y2
%
{
	gsave
	dup scale
	/width exch def
    /y2 exch def /x2 exch def
    /y1 exch def /x1 exch def
%
	width setlinewidth
	1 setgray
    newpath
        x1 y1 moveto
        x1 y2 lineto
        x2 y2 lineto
        x2 y1 lineto
    closepath fill
	0 setgray
    newpath
        x1 y1 moveto
        x1 y2 lineto
        x2 y2 lineto
        x2 y1 lineto
    closepath stroke
	grestore
} def }
%
%		#] bbox :
%		#[ gbox :
%
\special{! /gbox
%
%   Draws a blanked out gray box x1,y1,x2,y2,color
%
{
	gsave
	dup scale
	/width exch def
	/gcolor exch def
    /y2 exch def /x2 exch def
    /y1 exch def /x1 exch def
%
	width setlinewidth
	1 setgray
    newpath
        x1 y1 moveto
        x1 y2 lineto
        x2 y2 lineto
        x2 y1 lineto
    closepath fill
	gcolor setgray
    newpath
        x1 y1 moveto
        x1 y2 lineto
        x2 y2 lineto
        x2 y1 lineto
    closepath fill
	0 setgray
    newpath
        x1 y1 moveto
        x1 y2 lineto
        x2 y2 lineto
        x2 y1 lineto
    closepath stroke
	grestore
} def }
%
%		#] gbox :
%		#[ ptext :
%
\special{! /ptext
%
%   Puts a text at x,y (focal point)
%	phi is a rotation angle
%	Mode tells how the text should be w.r.t. the focal point.
%	fsize is the fontsize
%	Then the text is given.
%	Finally the scale factor should be there
%
{
	gsave
	dup scale
	/text exch def
	/fsize exch def
	/mode exch def
	3 1 roll
	translate rotate	% We are at the focus and have the proper orientation
	mode 3 lt { 0 fsize neg translate } {
		mode 6 lt { /mode mode 3 sub def 0 fsize 2 div neg translate }
		{ /mode mode 6 sub def } ifelse } ifelse
	/fsize text stringwidth pop def
	mode 1 eq { fsize 2 div neg 0 translate } {
		mode 2 eq { fsize neg 0 translate } if } ifelse
	text show
	grestore
} def }
%
%		#] ptext :
%		#[ goval :
%
\special{! /goval
%
%	Draws a colored oval that overwrites whatever was there.
%	x_center y_center height width rotation color linewidth scale
%
{
    gsave
	dup scale
	/width exch def
	/gcolor exch def
	/x1 exch def
	/x2 exch def
    /radius exch def
%
    width setlinewidth
    translate                               % x and y are still on stack
	x1 rotate
	x2 radius div 1.0 scale
%
	1 setgray
    newpath 0 0 radius 0 360 arc fill
	gcolor setgray
    newpath 0 0 radius 0 360 arc fill
	0 setgray
    newpath 0 0 radius 0 360 arc stroke
    grestore
} def }
%
%		#] goval :
%		#[ oval :
%
\special{! /oval
%
%	Draws an oval that does not overwrite whatever was there.
%	x_center y_center height width rotation linewidth scale
%
{
    gsave
	dup scale
	/width exch def
	/x1 exch def
	/x2 exch def
    /radius exch def
%
    width setlinewidth
    translate                               % x and y are still on stack
	x1 rotate
	x2 radius div 1.0 scale
%
	0 setgray
    newpath 0 0 radius 0 360 arc stroke
    grestore
} def }
%
%		#] oval :
%		#[ makecurve :
%
\special{! /docurve{
	x1 2 mul x2 add 3 div
		y1 y0 sub x1 x0 sub div x2 x0 sub mul
		y2 y0 sub x2 x0 sub div x1 x0 sub mul add
		y1 add y0 2 mul add 3 div
	x1 x2 2 mul add 3 div
		y2 y3 sub x2 x3 sub div x1 x3 sub mul
		y1 y3 sub x1 x3 sub div x2 x3 sub mul add
		y2 add y3 2 mul add 3 div
	x2 y2 curveto
} def }
%
\special{! /makecurve {
%
%	Incoming stack:
%	[array of x,y pairs] width scale
%
	gsave
	dup scale
	setlinewidth
	/points ed
	/ss points length 2 idiv 2 mul def
	newpath
	ss 4 gt {
		/x1 points 0 get def
		/y1 points 1 get def
		/x2 points 2 get def
		/y2 points 3 get def
		/x3 points 4 get def
		/y3 points 5 get def
		/x0 x1 2 mul x2 sub def
		/y0 y3 y2 sub x3 x2 sub div y2 y1 sub x2 x1 sub div sub 2 mul
			x2 x1 sub dup mul x3 x1 sub div mul
			y1 2 mul add y2 sub def
		x1 y1 moveto
		docurve
		0 2 ss 8 sub { /ii ed
			/x0 points ii       get def
			/y0 points ii 1 add get def
			/x1 points ii 2 add get def
			/y1 points ii 3 add get def
			/x2 points ii 4 add get def
			/y2 points ii 5 add get def
			/x3 points ii 6 add get def
			/y3 points ii 7 add get def
			docurve
		} for
		/x0 points ss 6 sub get def
		/y0 points ss 5 sub get def
		/x1 points ss 4 sub get def
		/y1 points ss 3 sub get def
		/x2 points ss 2 sub get def
		/y2 points ss 1 sub get def
		/x3 x2 2 mul x1 sub def
		/y3 y2 y1 sub x2 x1 sub div y1 y0 sub x1 x0 sub div sub 2 mul
			x2 x1 sub dup mul x2 x0 sub div mul
			y2 2 mul add y1 sub def
		docurve
	} {
		ss 4 eq {
			points 0 get points 1 get moveto
			points 2 get points 3 get lineto
		} if
	} ifelse
	stroke
	grestore
} def }
%
%		#] makecurve :
%		#[ makedashcurve :
%
\special{! /makedashcurve {
%
%	Incoming stack:
%	[array of x,y pairs] dashsize width scale
%
	gsave
	dup scale
	setlinewidth
	/dsize ed
	/points ed
	/ss points length 2 idiv 2 mul def
	newpath
	ss 4 gt {
		/x1 points 0 get def
		/y1 points 1 get def
		/x2 points 2 get def
		/y2 points 3 get def
		/x3 points 4 get def
		/y3 points 5 get def
		/x0 x1 2 mul x2 sub def
		/y0 y3 y2 sub x3 x2 sub div y2 y1 sub x2 x1 sub div sub 2 mul
			x2 x1 sub dup mul x3 x1 sub div mul
			y1 2 mul add y2 sub def
		x1 y1 moveto
		docurve
		0 2 ss 8 sub { /ii ed
			/x0 points ii       get def
			/y0 points ii 1 add get def
			/x1 points ii 2 add get def
			/y1 points ii 3 add get def
			/x2 points ii 4 add get def
			/y2 points ii 5 add get def
			/x3 points ii 6 add get def
			/y3 points ii 7 add get def
			docurve
		} for
		/x0 points ss 6 sub get def
		/y0 points ss 5 sub get def
		/x1 points ss 4 sub get def
		/y1 points ss 3 sub get def
		/x2 points ss 2 sub get def
		/y2 points ss 1 sub get def
		/x3 x2 2 mul x1 sub def
		/y3 y2 y1 sub x2 x1 sub div y1 y0 sub x1 x0 sub div sub 2 mul
			x2 x1 sub dup mul x2 x0 sub div mul
			y2 2 mul add y1 sub def
		docurve
	} {
		ss 4 eq {
			points 0 get points 1 get moveto
			points 2 get points 3 get lineto
		} if
	} ifelse
	centerdash
	stroke
	grestore
} def }
%
\special{! /pathlength {
	flattenpath
	/dist 0 def
	{ /yfirst ed /xfirst ed /ymoveto yfirst def /xmoveto xfirst def }
	{ /ynext ed /xnext ed /dist dist ynext yfirst sub dup mul
		xnext xfirst sub dup mul add sqrt add def
		/yfirst ynext def /xfirst xnext def }
	{}
	{/ynext ymoveto def /xnext xmoveto def
		/dist ynext yfirst sub dup mul
		      xnext xfirst sub dup mul add sqrt add def
		/yfirst ynext def /xfirst xnext def }
	pathforall
	dist
} def }
%
\special{! /centerdash {
	/pathlen pathlength def
	/jj pathlen dsize div 2.0 div cvi def
	/ddsize pathlen jj 2.0 mul div def
	[ddsize] ddsize 2 div setdash
} def }
%
%		#] makedashcurve :
%		#[ logaxis :
%
\special{! /logaxis {
%
%   Draws an axis from x1,y1 to x2,y2 with nl log divisions
%   size of the hashes hs, offset F
%   and width W. The stack looks like
%   x1,y1,x2,y2,nl,hs,F,W,scale
%   After the rotation the hash marks are on top if nl is positive and
%   on the bottom if nl is negative
%
    gsave
    dup scale
    /width exch def
    /offset exch def
    /hashsize exch def
    /nlogs exch def
    /y2 exch def /x2 exch def /y1 exch def /x1 exch def
    x1 y1 translate
    /y2 y2 y1 sub def /x2 x2 x1 sub def
    y2 x2 atan rotate
    /rr x2 dup mul y2 dup mul add sqrt def
    width setlinewidth
    offset 0 ne { /offset offset ln 10 ln div def } if
    /offset offset dup cvi sub def
    newpath
        0 0 moveto
        rr 0 lineto
    /lsize rr nlogs div def
    0 1 nlogs { /x2 exch def
        x2 offset ge {
            /y2 x2 offset sub lsize mul def
            y2 rr le {
                y2 0 moveto
                y2 hashsize 1.2 mul lineto
            } if
        } if
    } for
    stroke
    width 0.6 mul setlinewidth
    newpath
    0 1 nlogs { /x2 exch def
        2 1 9 {
            ln 10 ln div x2 add
            /xx2 exch def
            xx2 offset ge {
                /y2 xx2 offset sub lsize mul def
                y2 rr le {
                    y2 0 moveto
                    y2 hashsize 0.8 mul lineto
                } if
            } if
        } for
    } for
    stroke
    grestore
} def }
%
%		#] logaxis :
%		#[ linaxis :
%
\special{! /linaxis {
%
%	x1,y1,x2,y2,num_decs,per_dec,hashsize,offset,width,scale
%
	gsave
	dup scale
	/width exch def
	/offset exch def
	/hashsize exch def
	/perdec exch def
	/numdec exch def
	/y2 exch def /x2 exch def /y1 exch def /x1 exch def
    x1 y1 translate
    /y2 y2 y1 sub def /x2 x2 x1 sub def
    y2 x2 atan rotate
    /rr x2 dup mul y2 dup mul add sqrt def
    width setlinewidth
	newpath
		0 0 moveto
		rr 0 lineto
	/x1 rr numdec perdec mul div def
	/y1 rr numdec div def
	/offset offset x1 mul def
	0 1 numdec { y1 mul offset sub
		dup 0 ge {
			dup rr le {
				dup 0 moveto
				hashsize 1.2 mul lineto
			} if
		} if
	} for
	stroke
	width 0.6 mul setlinewidth
	newpath
	offset cvi 1 numdec perdec mul offset add {
		x1 mul offset sub
		dup 0 ge {
			dup rr le {
				dup 0 moveto
				hashsize 0.8 mul lineto
			} if
		} if
	} for
	stroke
	grestore
} def }
%
%		#] linaxis :

%\tracingmacros=1
\def\axowidth{0.5 }
\def\axoscale{1.0 }
\def\axoxoff{0 }
\def\axoyoff{0 }

\def\Gluon(#1,#2)(#3,#4)#5#6{
%
%	Draws a gluon from (x1,y1) to (x2,y2) with amplitude and number of windings
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 #5 #6 \axowidth
          \axoscale gluon showpage}}
}

\def\Photon(#1,#2)(#3,#4)#5#6{
%
%	Draws a photon from (x1,y1) to (x2,y2) with amplitude and number of windings
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 #5 #6 \axowidth
          \axoscale photon showpage}}
}

\def\ZigZag(#1,#2)(#3,#4)#5#6{
%
%	Draws a zigzag from (x1,y1) to (x2,y2) with amplitude and number of zigzags
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 #5 #6 \axowidth
          \axoscale zigzag showpage}}
}

\def\PhotonArc(#1,#2)(#3,#4,#5)#6#7{
%
%	Draws a photon on an arc segment. The center of the curve is at (1,2)
%	The radius, start angle and target angle are (#3,#4,#5), 6 is the
%	amplitude of the gluon, and 7 is the number of wiggles.
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 #5 #6 #7 \axowidth
          \axoscale photonarc showpage}}
}

\def\GlueArc(#1,#2)(#3,#4,#5)#6#7{
%
%	Draws a gluon on aa arc segment. The center of the curve is at (1,2)
%	The radius, start angle and target angle are (#3,#4,#5), 6 is the
%	amplitude of the gluon, and 7 is the number of windings.
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 #5 #6 #7 \axowidth
          \axoscale gluearc showpage}}
}

\def\ArrowArc(#1,#2)(#3,#4,#5){
%
%	Draws an arc segment with an arrow in it. The center of the curve
%	is at (1,2).
%	The radius, start angle and target angle are (#3,#4,#5).
%	The arc segment runs anticlockwise
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 #5 \axowidth
          \axoscale arrowarc showpage}}
}

\def\LongArrowArc(#1,#2)(#3,#4,#5){
%
%	Draws an arc segment with an arrow at its end. The center of the curve
%	is at (1,2).
%	The radius, start angle and target angle are (#3,#4,#5).
%	The arc segment runs anticlockwise
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 #5 \axowidth
          \axoscale longarrowarc showpage}}
}

\def\DashArrowArc(#1,#2)(#3,#4,#5)#6{
%
%	Draws a dashed arc segment with an arrow in it. The center of the curve
%	is at (1,2).
%	The radius, start angle and target angle are (#3,#4,#5).
%	The arc segment runs anticlockwise
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 #5 #6 \axowidth
          \axoscale dasharrowarc showpage}}
}

\def\ArrowArcn(#1,#2)(#3,#4,#5){
%
%	Draws an arc segment with an arrow in it. The center of the curve
%	is at (1,2).
%	The radius, start angle and target angle are (#3,#4,#5).
%	The arc segment runs clockwise
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 #5 \axowidth
          \axoscale arrowarcn showpage}}
}

\def\LongArrowArcn(#1,#2)(#3,#4,#5){
%
%	Draws an arc segment with an arrow at the end. The center of the curve
%	is at (1,2).
%	The radius, start angle and target angle are (#3,#4,#5).
%	The arc segment runs clockwise
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 #5 \axowidth
          \axoscale longarrowarcn showpage}}
}

\def\DashArrowArcn(#1,#2)(#3,#4,#5)#6{
%
%	Draws a dashed arc segment with an arrow in it. The center of the curve
%	is at (1,2).
%	The radius, start angle and target angle are (#3,#4,#5).
%	The arc segment runs clockwise
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 #5 #6 \axowidth
          \axoscale dasharrowarcn showpage}}
}

\def\ArrowLine(#1,#2)(#3,#4){
%
%	Draws a line with an arrow in it from (x1,y1) to (x2,y2)
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 \axowidth
          \axoscale arrowline showpage}}
}

\def\LongArrow(#1,#2)(#3,#4){
%
%	Draws a line with an arrow at the end from (x1,y1) to (x2,y2)
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 \axowidth
          \axoscale longarrow showpage}}
}

\def\DashArrowLine(#1,#2)(#3,#4)#5{
%
%	Draws a dashed line with an arrow in it from (x1,y1) to (x2,y2)
%	The size of the dashes is given by the fifth argument.
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 #5 \axowidth
          \axoscale dasharrowline showpage}}
}

\def\Line(#1,#2)(#3,#4){
%
%	Draws a line from (x1,y1) to (x2,y2)
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 \axowidth
          \axoscale line showpage}}
}

\def\DashLine(#1,#2)(#3,#4)#5{
%
%	Draws a line from (x1,y1) to (x2,y2) with a dash pattern of which the
%	alternating black and white pieces are approximately {5} points long
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 #5 \axowidth
          \axoscale dashline showpage}}
}

\def\CArc(#1,#2)(#3,#4,#5){
%
%	Draws an arc segment. The center of the curve
%	is at (1,2).
%	The radius, start angle and target angle are (#3,#4,#5).
%	The arc segment runs anticlockwise
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 #5 \axowidth
          \axoscale carc showpage}}
}

\def\DashCArc(#1,#2)(#3,#4,#5)#6{
%
%	Draws a dashed arc segment. The center of the curve
%	is at (1,2).
%	The radius, start angle and target angle are (#3,#4,#5).
%	The arc segment runs anticlockwise
%	dsize (6) is the dashsize. this is rounded to make things come
%	out right.
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 #5 #6 \axowidth
          \axoscale dashcarc showpage}}
}

\def\Vertex(#1,#2)#3{
%
%	Draws a fat dot at (1,2). The radius of the dot is given by 3.
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 \axoscale vertex showpage}}
}

\def\Text(#1,#2)[#3]#4{
%
%	Draws text at (1,2). Argument 3 is l,r or c indicating whether
%	the text is left adjusted, right adjusted or centered.
%	4 is of course the text.
%
\dimen0=\axoxoff \unitlength
\dimen1=\axoyoff \unitlength
\advance\dimen0 by #1 \unitlength
\advance\dimen1 by #2 \unitlength
\makeatletter
\@killglue\raise\dimen1\hbox to\z@{\kern\dimen0 \makebox(0,0)[#3]{#4}\hss}
\ignorespaces
%\put(\count2,\count3){\makebox(0,0)[#3]{#4}}
\makeatother
}

\def\BCirc(#1,#2)#3{
%
%	Draws a circle at (1,2) and radius 3 that is blanked out.
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 \axowidth
          \axoscale bcirc showpage}}
}

\def\GCirc(#1,#2)#3#4{
%
%	Draws a circle at (1,2) and radius 3 that is blanked out.
%	Then it fills the circle with a gray scale 4 (0 = black, 1 is white)
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 \axowidth
          \axoscale gcirc showpage}}
}

\def\EBox(#1,#2)(#3,#4){
%
%	Draws a box with the left bottom at (x1,y1) and the right top
%	at (x2,y2).
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 \axowidth
          \axoscale box showpage}}
}

\def\BBox(#1,#2)(#3,#4){
%
%	Draws a box with the left bottom at (x1,y1) and the right top
%	at (x2,y2). The box is blanked out.
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 \axowidth
          \axoscale bbox showpage}}
}

\def\GBox(#1,#2)(#3,#4)#5{
%
%	Draws a box with the left bottom at (x1,y1) and the right top
%	at (x2,y2). The box is blanked out and then filled with gray 5
%	(0 is black, 1 is white)
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 #5 \axowidth
          \axoscale gbox showpage}}
}

\def\Boxc(#1,#2)(#3,#4){
%
%	Draws a box with the center at (x1,y1).
%	The width and height are (3,4).
%
\put(\axoxoff,\axoyoff){\special{"#1 #3 2 div sub #2 #4 2 div sub
#1 #3 2 div add #2 #4 2 div add \axowidth \axoscale box showpage}}
}

\def\BBoxc(#1,#2)(#3,#4){
%
%	Draws a box with the center at (x1,y1).
%	The width and height are (3,4). The contents are blanked out
%
\put(\axoxoff,\axoyoff){\special{"#1 #3 2 div sub #2 #4 2 div sub
#1 #3 2 div add #2 #4 2 div add \axowidth \axoscale bbox showpage}}
}

\def\GBoxc(#1,#2)(#3,#4)#5{
%
%	Draws a box with the center at (x1,y1).
%	The width and height are (3,4). The contents are blanked out
%	Then the contents are filled with gray 5 (0 is black, 1 is white)
%
\put(\axoxoff,\axoyoff){\special{"#1 #3 2 div sub #2 #4 2 div sub
#1 #3 2 div add #2 #4 2 div add \axowidth \axoscale gbox showpage}}
}

\def\SetWidth#1{\def\axowidth{#1 }}
\def\SetScale#1{\def\axoscale{#1 }}
\def\SetOffset(#1,#2){\def\axoxoff{#1 } \def\axoyoff{#2 }}

\def\pfont{Times-Roman }
\def\fsize{10 }

\def\SetPFont#1#2{\def\pfont{#1 } \def\fsize{#2 }}

\def\PText(#1,#2)(#3)[#4]#5{
%
%	Draws a postscript text in a postscript font.
%	Focal point is (1,2), rotation angle is 3, 4 is the mode (as in text)
%	and 5 is the text.
%
\ifx#4 lt{\def\fmode{0 }}\else{
\ifx#4 tl{\def\fmode{0 }}\else{
\ifx#4 lb{\def\fmode{2 }}\else{
\ifx#4 bl{\def\fmode{2 }}\else{
\ifx#4 l{\def\fmode{1 }}\else{
\ifx#4 rt{\def\fmode{6 }}\else{
\ifx#4 tr{\def\fmode{6 }}\else{
\ifx#4 rb{\def\fmode{8 }}\else{
\ifx#4 br{\def\fmode{8 }}\else{
\ifx#4 r{\def\fmode{7 }}\else{
\ifx#4 t{\def\fmode{3 }}\else{
\ifx#4 b{\def\fmode{5 }}\else{ \def\fmode{4 } }\fi
}\fi}\fi}\fi}\fi}\fi}\fi}\fi}\fi}\fi}\fi}\fi
\put(#1,#2){\makebox(0,0)[]{\special{"/pfont findfont /fsize scale setfont
\axoxoff \axoyoff #3 \fmode \fsize (#5) ptext }}}  }

\def\GOval(#1,#2)(#3,#4)(#5)#6{
%
%	Draws a colored oval that overwrites whatever was there.
%	Oval(x_center,y_center)(height,width)(rotation)(color)
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 #5 #6
\axowidth \axoscale goval showpage}}
}

\def\Oval(#1,#2)(#3,#4)(#5){
%
%	Draws an oval that does not overwrite whatever was there.
%	Oval(x_center,y_center)(height,width)(rotation)
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 #5
\axowidth \axoscale oval showpage}}
}

\let\eind=]
\def\DashCurve#1#2{\put(\axoxoff,\axoyoff){\special{" [ \kromme#1] #2
\axowidth \axoscale makedashcurve showpage}}}
\def\Curve#1{\put(\axoxoff,\axoyoff){\special{" [ \kromme#1] \axowidth
\axoscale makecurve showpage}}}
\def\kromme(#1,#2)#3{#1 #2 \ifx #3\eind\else\expandafter\kromme\fi#3}

\def\LogAxis(#1,#2)(#3,#4)(#5,#6,#7,#8){
%
%	Draws a line with logarithmic hash marks along it.
%	LogAxis(x1,y1)(x2,y2)(num_logs,hashsize,offset,width)
%	The line is from (x1,y1) to (x2,y2) and the marks are on the left side
%	when hashsize is positive, and right when it is negative.
%	num_logs is the number of orders of magnitude and offset is the number
%	at which one starts at (x1,y1) (like if offset=2 we start at 2)
%	When offset is 0 we start at 1. Width is the linewidth.
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 #5 #6 #7 #8 \axoscale logaxis
showpage}}
}

\def\LinAxis(#1,#2)(#3,#4)(#5,#6,#7,#8,#9){
%
%	Draws a line with linear hash marks along it.
%	LinAxis(x1,y1)(x2,y2)(num_decs,per_dec,hashsize,offset,width)
%	The line is from (x1,y1) to (x2,y2) and the marks are on the left side
%	when hashsize is positive, and right when it is negative.
%	num_decs is the number of accented marks, per_dec the number of
%	divisions between them and offset is the number
%	at which one starts at (x1,y1) (like if offset=2 we start at the second
%	small mark) Width is the linewidth.
%
\put(\axoxoff,\axoyoff){\special{"#1 #2 #3 #4 #5 #6 #7 #8 #9 \axoscale linaxis
showpage}}
}



