% Psfig/TeX 
\def\PsfigVersion{1.10}
\def\setDriver{\DvipsDriver} % \DvipsDriver or \OzTeXDriver
%
% All software, documentation, and related files in this distribution of
% psfig/tex are Copyright 1993 Trevor J. Darrell
%
% Permission is granted for use and non-profit distribution of psfig/tex 
% providing that this notice is clearly maintained. The right to
% distribute any portion of psfig/tex for profit or as part of any commercial
% product is specifically reserved for the author(s) of that portion.
%
% To use with LaTeX, use \documentstyle[psfig,...]{...}
% To use with TeX, use \input psfig.sty
%
% Bugs and improvements to trevor@media.mit.edu.
%
% Thanks to Ned Batchelder, Greg Hager (GDH), J. Daniel Smith (JDS),
% Tom Rokicki (TR), Robert Russell (RR), George V. Reilly (GVR),
% Ken McGlothlen (KHC), Baron Grey (BG), Gerhard Tobermann (GT).
% and all others who have contributed code and comments to this project!
%
% ======================================================================
% Modification History:
%
%  9 Oct 1990   JDS     used more robust bbox reading code from Tom Rokicki
% 29 Mar 1991   JDS     implemented rotation= option
% 25 Jun 1991   RR      if bb specified on cmd line don't check
%                       for .ps file.
%  3 Jul 1991   JDS     check if file already read in once
%  4 Sep 1991   JDS     fixed incorrect computation of rotated
%                       bounding box
% 25 Sep 1991   GVR     expanded synopsis of \psfig
% 14 Oct 1991   JDS     \fbox code from LaTeX so \psdraft works with TeX
%                       changed \typeout to \ps@typeout
% 17 Oct 1991   JDS     added \psscalefirst and \psrotatefirst
% 23 Jun 1993   KHC     ``doclip'' must appear before ``rotate''
% 27 Oct 1993   TJD     removed printing of filename to avoid 
%                       underscore problems. changed \frame to \fbox.
%                       Added OzTeX support from BG. Added new
%                       figure search path code from GT.
%
% ======================================================================
%
% Command synopsis:
%
% \psdraft      draws an outline box, but doesn't include the figure
%               in the DVI file.  Useful for previewing.
%
% \psfull       includes the figure in the DVI file (default).
%
% \psscalefirst width= or height= specifies the size of the figure
%               before rotation.
% \psrotatefirst (default) width= or height= specifies the size of the
%                figure after rotation.  Asymetric figures will
%                appear to shrink.
%
% \psfigurepath{dir:dir:...}  sets the path to search for the figure
%
% \psfig
% usage: \psfig{file=, figure=, height=, width=,
%                       bbllx=, bblly=, bburx=, bbury=,
%                       rheight=, rwidth=, clip=, angle=, silent=}
%
%       "file" is the filename.  If no path name is specified and the
%               file is not found in the current directory,
%               it will be looked for in directory \psfigurepath.
%       "figure" is a synonym for "file".
%       By default, the width and height of the figure are taken from
%               the BoundingBox of the figure.
%       If "width" is specified, the figure is scaled so that it has
%               the specified width.  Its height changes proportionately.
%       If "height" is specified, the figure is scaled so that it has
%               the specified height.  Its width changes proportionately.
%       If both "width" and "height" are specified, the figure is scaled
%               anamorphically.
%       "bbllx", "bblly", "bburx", and "bbury" control the PostScript
%               BoundingBox.  If these four values are specified
%               *before* the "file" option, the PSFIG will not try to
%               open the PostScript file.
%       "rheight" and "rwidth" are the reserved height and width
%               of the figure, i.e., how big TeX actually thinks
%               the figure is.  They default to "width" and "height".
%       The "clip" option ensures that no portion of the figure will
%               appear outside its BoundingBox.  "clip=" is a switch and
%               takes no value, but the `=' must be present.
%       The "angle" option specifies the angle of rotation (degrees, ccw).
%       The "silent" option makes \psfig work silently.
%
% ======================================================================
% check to see if macros already loaded in (maybe some other file says
% "\input psfig") ...
\ifx\undefined\psfig\else\endinput\fi
%
% from a suggestion by eijkhout@csrd.uiuc.edu to allow
% loading as a style file. Changed to avoid problems
% with amstex per suggestion by jbence@math.ucla.edu

\let\LaTeXAtSign=\@
\let\@=\relax
\edef\psfigRestoreAt{\catcode`\@=\number\catcode`@\relax}
%\edef\psfigRestoreAt{\catcode`@=\number\catcode`@\relax}
\catcode`\@=11\relax
\newwrite\@unused
\def\ps@typeout#1{{\let\protect\string\immediate\write\@unused{#1}}}

\def\DvipsDriver{
        \ps@typeout{psfig/tex \PsfigVersion -dvips}
\def\PsfigSpecials{\DvipsSpecials}      \def\ps@dir{/}
\def\ps@predir{} }
\def\OzTeXDriver{
        \ps@typeout{psfig/tex \PsfigVersion -oztex}
        \def\PsfigSpecials{\OzTeXSpecials}
        \def\ps@dir{:}
        \def\ps@predir{:}
        \catcode`\^^J=5
}

%% Here's how you define your figure path.  Should be set up with null
%% default and a user useable definition.

\def\figurepath{./:}
\def\psfigurepath#1{\edef\figurepath{#1:}}

%%% inserted for Searching Unixpaths
%%% (the path must end with :)
%%% (call: \DoPaths\figurepath )
%%%------------------------------------------------------
\def\DoPaths#1{\expandafter\EachPath#1\stoplist}
%
\def\leer{}
\def\EachPath#1:#2\stoplist{% #1 part of the list (delimiter :)
  \ExistsFile{#1}{\SearchedFile}
  \ifx#2\leer
  \else
    \expandafter\EachPath#2\stoplist
  \fi}
%
% exists the file (does not work for directories!)
%
\def\ps@dir{/}
\def\ExistsFile#1#2{%
   \openin1=\ps@predir#1\ps@dir#2
   \ifeof1
       \closein1
       %\ps@typeout{...not: \ps@predir#1\ps@dir#2}
   \else
       \closein1
       %\ps@typeout{...in:  \ps@predir#1\ps@dir#2}
        \ifx\ps@founddir\leer
          %\ps@typeout{set founddir #1}
           \edef\ps@founddir{#1}
        \fi
   \fi}
%------------------------------------------------------
%
% Get dir in path or error
%
\def\get@dir#1{%
  \def\ps@founddir{}
  \def\SearchedFile{#1}
  \DoPaths\figurepath
%  \fi
}
%------------------------------------------------------
%%% END of Searching Unixpaths


%
% @psdo control structure -- similar to Latex @for.
% I redefined these with different names so that psfig can
% be used with TeX as well as LaTeX, and so that it will not 
% be vunerable to future changes in LaTeX's internal
% control structure,
%
\def\@nnil{\@nil}
\def\@empty{}
\def\@psdonoop#1\@@#2#3{}
\def\@psdo#1:=#2\do#3{\edef\@psdotmp{#2}\ifx\@psdotmp\@empty \else
    \expandafter\@psdoloop#2,\@nil,\@nil\@@#1{#3}\fi}
\def\@psdoloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else
       #5\def#4{#2}\ifx #4\@nnil \else#5\@ipsdoloop #3\@@#4{#5}\fi\fi}
\def\@ipsdoloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil 
       \let\@nextwhile=\@psdonoop \else
      #4\relax\let\@nextwhile=\@ipsdoloop\fi\@nextwhile#2\@@#3{#4}}
\def\@tpsdo#1:=#2\do#3{\xdef\@psdotmp{#2}\ifx\@psdotmp\@empty \else
    \@tpsdoloop#2\@nil\@nil\@@#1{#3}\fi}
\def\@tpsdoloop#1#2\@@#3#4{\def#3{#1}\ifx #3\@nnil 
       \let\@nextwhile=\@psdonoop \else
      #4\relax\let\@nextwhile=\@tpsdoloop\fi\@nextwhile#2\@@#3{#4}}
% 
% \fbox is defined in latex.tex; so if \fbox is undefined, assume that
% we are not in LaTeX.
% Perhaps this could be done better???
\ifx\undefined\fbox
% \fbox code from modified slightly from LaTeX
\newdimen\fboxrule
\newdimen\fboxsep
\newdimen\ps@tempdima
\newbox\ps@tempboxa
\fboxsep = 3pt
\fboxrule = .4pt
\long\def\fbox#1{\leavevmode\setbox\ps@tempboxa\hbox{#1}\ps@tempdima\fboxrule
    \advance\ps@tempdima \fboxsep \advance\ps@tempdima \dp\ps@tempboxa
   \hbox{\lower \ps@tempdima\hbox
  {\vbox{\hrule height \fboxrule
          \hbox{\vrule width \fboxrule \hskip\fboxsep
          \vbox{\vskip\fboxsep \box\ps@tempboxa\vskip\fboxsep}\hskip 
                 \fboxsep\vrule width \fboxrule}
                 \hrule height \fboxrule}}}}
\fi
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% file reading stuff from epsf.tex
%   EPSF.TEX macro file:
%   Written by Tomas Rokicki of Radical Eye Software, 29 Mar 1989.
%   Revised by Don Knuth, 3 Jan 1990.
%   Revised by Tomas Rokicki to accept bounding boxes with no
%      space after the colon, 18 Jul 1990.
%   Portions modified/removed for use in PSFIG package by
%      J. Daniel Smith, 9 October 1990.
%
\newread\ps@stream
\newif\ifnot@eof       % continue looking for the bounding box?
\newif\if@noisy        % report what you're making?
\newif\if@atend        % %%BoundingBox: has (at end) specification
\newif\if@psfile       % does this look like a PostScript file?
%
% PostScript files should start with `%!'
%
{\catcode`\%=12\global\gdef\epsf@start{%!}}
\def\epsf@PS{PS}
%
\def\epsf@getbb#1{%
%
%   The first thing we need to do is to open the
%   PostScript file, if possible.
%
\openin\ps@stream=\ps@predir#1
\ifeof\ps@stream\ps@typeout{Error, File #1 not found}\else
%
%   Okay, we got it. Now we'll scan lines until we find one that doesn't
%   start with %. We're looking for the bounding box comment.
%
   {\not@eoftrue \chardef\other=12
    \def\do##1{\catcode`##1=\other}\dospecials \catcode`\ =10
    \loop
       \if@psfile
          \read\ps@stream to \epsf@fileline
       \else{
          \obeyspaces
          \read\ps@stream to \epsf@tmp\global\let\epsf@fileline\epsf@tmp}
       \fi
       \ifeof\ps@stream\not@eoffalse\else
%
%   Check the first line for `%!'.  Issue a warning message if its not
%   there, since the file might not be a PostScript file.
%
       \if@psfile\else
       \expandafter\epsf@test\epsf@fileline:. \\%
       \fi
%
%   We check to see if the first character is a % sign;
%   if so, we look further and stop only if the line begins with
%   `%%BoundingBox:' and the `(atend)' specification was not found.
%   That is, the only way to stop is when the end of file is reached,
%   or a `%%BoundingBox: llx lly urx ury' line is found.
%
          \expandafter\epsf@aux\epsf@fileline:. \\%
       \fi
   \ifnot@eof\repeat
   }\closein\ps@stream\fi}%
%
% This tests if the file we are reading looks like a PostScript file.
%
\long\def\epsf@test#1#2#3:#4\\{\def\epsf@testit{#1#2}
                        \ifx\epsf@testit\epsf@start\else
\ps@typeout{Warning! File does not start with `\epsf@start'.  It may not be a PostScript file.}
                        \fi
                        \@psfiletrue} % don't test after 1st line
%
%   We still need to define the tricky \epsf@aux macro. This requires
%   a couple of magic constants for comparison purposes.
%
{\catcode`\%=12\global\let\epsf@percent=%\global\def\epsf@bblit{%BoundingBox}}
%
%
%   So we're ready to check for `%BoundingBox:' and to grab the
%   values if they are found.  We continue searching if `(at end)'
%   was found after the `%BoundingBox:'.
%
\long\def\epsf@aux#1#2:#3\\{\ifx#1\epsf@percent
   \def\epsf@testit{#2}\ifx\epsf@testit\epsf@bblit
        \@atendfalse
        \epsf@atend #3 . \\%
        \if@atend       
           \if@verbose{
                \ps@typeout{psfig: found `(atend)'; continuing search}
           }\fi
        \else
        \epsf@grab #3 . . . \\%
        \not@eoffalse
        \global\no@bbfalse
        \fi
   \fi\fi}%
%
%   Here we grab the values and stuff them in the appropriate definitions.
%
\def\epsf@grab #1 #2 #3 #4 #5\\{%
   \global\def\epsf@llx{#1}\ifx\epsf@llx\empty
      \epsf@grab #2 #3 #4 #5 .\\\else
   \global\def\epsf@lly{#2}%
   \global\def\epsf@urx{#3}\global\def\epsf@ury{#4}\fi}%
%
% Determine if the stuff following the %%BoundingBox is `(atend)'
% J. Daniel Smith.  Copied from \epsf@grab above.
%
\def\epsf@atendlit{(atend)} 
\def\epsf@atend #1 #2 #3\\{%
   \def\epsf@tmp{#1}\ifx\epsf@tmp\empty
      \epsf@atend #2 #3 .\\\else
   \ifx\epsf@tmp\epsf@atendlit\@atendtrue\fi\fi}


% End of file reading stuff from epsf.tex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% trigonometry stuff from "trig.tex"
\chardef\psletter = 11 % won't conflict with \begin{letter} now...
\chardef\other = 12

\newif \ifdebug %%% turn me on to see TeX hard at work ...
\newif\ifc@mpute %%% don't need to compute some values
\c@mputetrue % but assume that we do

\let\then = \relax
\def\r@dian{pt }
\let\r@dians = \r@dian
\let\dimensionless@nit = \r@dian
\let\dimensionless@nits = \dimensionless@nit
\def\internal@nit{sp }
\let\internal@nits = \internal@nit
\newif\ifstillc@nverging
\def \Mess@ge #1{\ifdebug \then \message {#1} \fi}

{ %%% Things that need abnormal catcodes %%%
        \catcode `\@ = \psletter
        \gdef \nodimen {\expandafter \n@dimen \the \dimen}
        \gdef \term #1 #2 #3%
               {\edef \t@ {\the #1}%%% freeze parameter 1 (count, by value)
                \edef \t@@ {\expandafter \n@dimen \the #2\r@dian}%
                                   %%% freeze parameter 2 (dimen, by value)
                \t@rm {\t@} {\t@@} {#3}%
               }
        \gdef \t@rm #1 #2 #3%
               {{%
                \count 0 = 0
                \dimen 0 = 1 \dimensionless@nit
                \dimen 2 = #2\relax
                \Mess@ge {Calculating term #1 of \nodimen 2}%
                \loop
                \ifnum  \count 0 < #1
                \then   \advance \count 0 by 1
                        \Mess@ge {Iteration \the \count 0 \space}%
                        \Multiply \dimen 0 by {\dimen 2}%
                        \Mess@ge {After multiplication, term = \nodimen 0}%
                        \Divide \dimen 0 by {\count 0}%
                        \Mess@ge {After division, term = \nodimen 0}%
                \repeat
                \Mess@ge {Final value for term #1 of 
                                \nodimen 2 \space is \nodimen 0}%
                \xdef \Term {#3 = \nodimen 0 \r@dians}%
                \aftergroup \Term
               }}
        \catcode `\p = \other
        \catcode `\t = \other
        \gdef \n@dimen #1pt{#1} %%% throw away the ``pt''
}

\def \Divide #1by #2{\divide #1 by #2} %%% just a synonym

\def \Multiply #1by #2%%% allows division of a dimen by a dimen
       {{%%% should really freeze parameter 2 (dimen, passed by value)
        \count 0 = #1\relax
        \count 2 = #2\relax
        \count 4 = 65536
        \Mess@ge {Before scaling, count 0 = \the \count 0 \space and
                        count 2 = \the \count 2}%
        \ifnum  \count 0 > 32767 %%% do our best to avoid overflow
        \then   \divide \count 0 by 4
                \divide \count 4 by 4
        \else   \ifnum  \count 0 < -32767
                \then   \divide \count 0 by 4
                        \divide \count 4 by 4
                \else
                \fi
        \fi
        \ifnum  \count 2 > 32767 %%% while retaining reasonable accuracy
        \then   \divide \count 2 by 4
                \divide \count 4 by 4
        \else   \ifnum  \count 2 < -32767
                \then   \divide \count 2 by 4
                        \divide \count 4 by 4
                \else
                \fi
        \fi
        \multiply \count 0 by \count 2
        \divide \count 0 by \count 4
        \xdef \product {#1 = \the \count 0 \internal@nits}%
        \aftergroup \product
       }}

\def\r@duce{\ifdim\dimen0 > 90\r@dian \then   % sin(x+90) = sin(180-x)
                \multiply\dimen0 by -1
                \advance\dimen0 by 180\r@dian
                \r@duce
            \else \ifdim\dimen0 < -90\r@dian \then  % sin(-x) = sin(360+x)
                \advance\dimen0 by 360\r@dian
                \r@duce
                \fi
            \fi}

\def\Sine#1%
       {{%
        \dimen 0 = #1 \r@dian
        \r@duce
        \ifdim\dimen0 = -90\r@dian \then
           \dimen4 = -1\r@dian
           \c@mputefalse
        \fi
        \ifdim\dimen0 = 90\r@dian \then
           \dimen4 = 1\r@dian
           \c@mputefalse
        \fi
        \ifdim\dimen0 = 0\r@dian \then
           \dimen4 = 0\r@dian
           \c@mputefalse
        \fi
%
        \ifc@mpute \then
                % convert degrees to radians
                \divide\dimen0 by 180
                \dimen0=3.141592654\dimen0
%
                \dimen 2 = 3.1415926535897963\r@dian %%% a well-known constant
                \divide\dimen 2 by 2 %%% we only deal with -pi/2 : pi/2
                \Mess@ge {Sin: calculating Sin of \nodimen 0}%
                \count 0 = 1 %%% see power-series expansion for sine
                \dimen 2 = 1 \r@dian %%% ditto
                \dimen 4 = 0 \r@dian %%% ditto
                \loop
                        \ifnum  \dimen 2 = 0 %%% then we've done
                        \then   \stillc@nvergingfalse 
                        \else   \stillc@nvergingtrue
                        \fi
                        \ifstillc@nverging %%% then calculate next term
                        \then   \term {\count 0} {\dimen 0} {\dimen 2}%
                                \advance \count 0 by 2
                                \count 2 = \count 0
                                \divide \count 2 by 2
                                \ifodd  \count 2 %%% signs alternate
                                \then   \advance \dimen 4 by \dimen 2
                                \else   \advance \dimen 4 by -\dimen 2
                                \fi
                \repeat
        \fi             
                        \xdef \sine {\nodimen 4}%
       }}

% Now the Cosine can be calculated easily by calling \Sine
\def\Cosine#1{\ifx\sine\UnDefined\edef\Savesine{\relax}\else
                             \edef\Savesine{\sine}\fi
        {\dimen0=#1\r@dian\advance\dimen0 by 90\r@dian
         \Sine{\nodimen 0}
         \xdef\cosine{\sine}
         \xdef\sine{\Savesine}}}              
% end of trig stuff
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\def\psdraft{
        \def\@psdraft{0}
        %\ps@typeout{draft level now is \@psdraft \space . }
}
\def\psfull{
        \def\@psdraft{100}
        %\ps@typeout{draft level now is \@psdraft \space . }
}

\psfull

\newif\if@scalefirst
\def\psscalefirst{\@scalefirsttrue}
\def\psrotatefirst{\@scalefirstfalse}
\psrotatefirst

\newif\if@draftbox
\def\psnodraftbox{
        \@draftboxfalse
}
\def\psdraftbox{
        \@draftboxtrue
}
\@draftboxtrue

\newif\if@prologfile
\newif\if@postlogfile
\def\pssilent{
        \@noisyfalse
}
\def\psnoisy{
        \@noisytrue
}
\psnoisy
%%% These are for the option list.
%%% A specification of the form a = b maps to calling \@p@@sa{b}
\newif\if@bbllx
\newif\if@bblly
\newif\if@bburx
\newif\if@bbury
\newif\if@height
\newif\if@width
\newif\if@rheight
\newif\if@rwidth
\newif\if@angle
\newif\if@clip
\newif\if@verbose
\def\@p@@sclip#1{\@cliptrue}
%
%
\newif\if@decmpr
%
\def\@p@@sfigure#1{\def\@p@sfile{null}\def\@p@sbbfile{null}\@decmprfalse
   % look directly for file (e.g. absolute path)
   \openin1=\ps@predir#1
   \ifeof1
        \closein1
        % failed, search directories for file
        \get@dir{#1}
        \ifx\ps@founddir\leer
                % failed, search directly for file.bb
                \openin1=\ps@predir#1.bb
                \ifeof1
                        \closein1
                        % failed, search directories for file.bb
                        \get@dir{#1.bb}
                        \ifx\ps@founddir\leer
                                % failed, lose.
                                \ps@typeout{Can't find #1 in \figurepath}
                        \else
                                % found file.bb in search dir
                                \@decmprtrue
                                \def\@p@sfile{\ps@founddir\ps@dir#1}
                                \def\@p@sbbfile{\ps@founddir\ps@dir#1.bb}
                        \fi
                \else
                        \closein1
                        %found file.bb directly
                        \@decmprtrue
                        \def\@p@sfile{#1}
                        \def\@p@sbbfile{#1.bb}
                \fi
        \else
                % found file in search dir
                \def\@p@sfile{\ps@founddir\ps@dir#1}
                \def\@p@sbbfile{\ps@founddir\ps@dir#1}
        \fi
   \else
        % found file directly
        \closein1
        \def\@p@sfile{#1}
        \def\@p@sbbfile{#1}
   \fi
}
%
%
%
\def\@p@@sfile#1{\@p@@sfigure{#1}}
%
\def\@p@@sbbllx#1{
                %\ps@typeout{bbllx is #1}
                \@bbllxtrue
                \dimen100=#1
                \edef\@p@sbbllx{\number\dimen100}
}
\def\@p@@sbblly#1{
                %\ps@typeout{bblly is #1}
                \@bbllytrue
                \dimen100=#1
                \edef\@p@sbblly{\number\dimen100}
}
\def\@p@@sbburx#1{
                %\ps@typeout{bburx is #1}
                \@bburxtrue
                \dimen100=#1
                \edef\@p@sbburx{\number\dimen100}
}
\def\@p@@sbbury#1{
                %\ps@typeout{bbury is #1}
                \@bburytrue
                \dimen100=#1
                \edef\@p@sbbury{\number\dimen100}
}
\def\@p@@sheight#1{
                \@heighttrue
                \dimen100=#1
                \edef\@p@sheight{\number\dimen100}
                %\ps@typeout{Height is \@p@sheight}
}
\def\@p@@swidth#1{
                %\ps@typeout{Width is #1}
                \@widthtrue
                \dimen100=#1
                \edef\@p@swidth{\number\dimen100}
}
\def\@p@@srheight#1{
                %\ps@typeout{Reserved height is #1}
                \@rheighttrue
                \dimen100=#1
                \edef\@p@srheight{\number\dimen100}
}
\def\@p@@srwidth#1{
                %\ps@typeout{Reserved width is #1}
                \@rwidthtrue
                \dimen100=#1
                \edef\@p@srwidth{\number\dimen100}
}
\def\@p@@sangle#1{
                %\ps@typeout{Rotation is #1}
                \@angletrue
%               \dimen100=#1
                \edef\@p@sangle{#1} %\number\dimen100}
}
\def\@p@@ssilent#1{ 
                \@verbosefalse
}
\def\@p@@sprolog#1{\@prologfiletrue\def\@prologfileval{#1}}
\def\@p@@spostlog#1{\@postlogfiletrue\def\@postlogfileval{#1}}
\def\@cs@name#1{\csname #1\endcsname}
\def\@setparms#1=#2,{\@cs@name{@p@@s#1}{#2}}
%
% initialize the defaults (size the size of the figure)
%
\def\ps@init@parms{
                \@bbllxfalse \@bbllyfalse
                \@bburxfalse \@bburyfalse
                \@heightfalse \@widthfalse
                \@rheightfalse \@rwidthfalse
                \def\@p@sbbllx{}\def\@p@sbblly{}
                \def\@p@sbburx{}\def\@p@sbbury{}
                \def\@p@sheight{}\def\@p@swidth{}
                \def\@p@srheight{}\def\@p@srwidth{}
                \def\@p@sangle{0}
                \def\@p@sfile{} \def\@p@sbbfile{}
                \def\@p@scost{10}
                \def\@sc{}
                \@prologfilefalse
                \@postlogfilefalse
                \@clipfalse
                \if@noisy
                        \@verbosetrue
                \else
                        \@verbosefalse
                \fi
}
%
% Go through the options setting things up.
%
\def\parse@ps@parms#1{
                \@psdo\@psfiga:=#1\do
                   {\expandafter\@setparms\@psfiga,}}
%
% Compute bb height and width
%
\newif\ifno@bb
\def\bb@missing{
        \if@verbose{
                \ps@typeout{psfig: searching \@p@sbbfile \space  for bounding box}
        }\fi
        \no@bbtrue
        \epsf@getbb{\@p@sbbfile}
        \ifno@bb \else \bb@cull\epsf@llx\epsf@lly\epsf@urx\epsf@ury\fi
}       
\def\bb@cull#1#2#3#4{
        \dimen100=#1 bp\edef\@p@sbbllx{\number\dimen100}
        \dimen100=#2 bp\edef\@p@sbblly{\number\dimen100}
        \dimen100=#3 bp\edef\@p@sbburx{\number\dimen100}
        \dimen100=#4 bp\edef\@p@sbbury{\number\dimen100}
        \no@bbfalse
}
% rotate point (#1,#2) about (0,0).
% The sine and cosine of the angle are already stored in \sine and
% \cosine.  The result is placed in (\p@intvaluex, \p@intvaluey).
\newdimen\p@intvaluex
\newdimen\p@intvaluey
\def\rotate@#1#2{{\dimen0=#1 sp\dimen1=#2 sp
%               calculate x' = x \cos\theta - y \sin\theta
                  \global\p@intvaluex=\cosine\dimen0
                  \dimen3=\sine\dimen1
                  \global\advance\p@intvaluex by -\dimen3
%               calculate y' = x \sin\theta + y \cos\theta
                  \global\p@intvaluey=\sine\dimen0
                  \dimen3=\cosine\dimen1
                  \global\advance\p@intvaluey by \dimen3
                  }}
\def\compute@bb{
                \no@bbfalse
                \if@bbllx \else \no@bbtrue \fi
                \if@bblly \else \no@bbtrue \fi
                \if@bburx \else \no@bbtrue \fi
                \if@bbury \else \no@bbtrue \fi
                \ifno@bb \bb@missing \fi
                \ifno@bb \ps@typeout{FATAL ERROR: no bb supplied or found}
                        \no-bb-error
                \fi
                %
%\ps@typeout{BB: \@p@sbbllx, \@p@sbblly, \@p@sbburx, \@p@sbbury} 
%
% store height/width of original (unrotated) bounding box
                \count203=\@p@sbburx
                \count204=\@p@sbbury
                \advance\count203 by -\@p@sbbllx
                \advance\count204 by -\@p@sbblly
                \edef\ps@bbw{\number\count203}
                \edef\ps@bbh{\number\count204}
                %\ps@typeout{ psbbh = \ps@bbh, psbbw = \ps@bbw }
                \if@angle 
                        \Sine{\@p@sangle}\Cosine{\@p@sangle}
                        {\dimen100=\maxdimen\xdef\r@p@sbbllx{\number\dimen100}
                                            \xdef\r@p@sbblly{\number\dimen100}
                                            \xdef\r@p@sbburx{-\number\dimen100}
                                            \xdef\r@p@sbbury{-\number\dimen100}}
%
% Need to rotate all four points and take the X-Y extremes of the new
% points as the new bounding box.
                        \def\minmaxtest{
                           \ifnum\number\p@intvaluex<\r@p@sbbllx
                              \xdef\r@p@sbbllx{\number\p@intvaluex}\fi
                           \ifnum\number\p@intvaluex>\r@p@sbburx
                              \xdef\r@p@sbburx{\number\p@intvaluex}\fi
                           \ifnum\number\p@intvaluey<\r@p@sbblly
                              \xdef\r@p@sbblly{\number\p@intvaluey}\fi
                           \ifnum\number\p@intvaluey>\r@p@sbbury
                              \xdef\r@p@sbbury{\number\p@intvaluey}\fi
                           }
%                       lower left
                        \rotate@{\@p@sbbllx}{\@p@sbblly}
                        \minmaxtest
%                       upper left
                        \rotate@{\@p@sbbllx}{\@p@sbbury}
                        \minmaxtest
%                       lower right
                        \rotate@{\@p@sbburx}{\@p@sbblly}
                        \minmaxtest
%                       upper right
                        \rotate@{\@p@sbburx}{\@p@sbbury}
                        \minmaxtest
                        \edef\@p@sbbllx{\r@p@sbbllx}\edef\@p@sbblly{\r@p@sbblly}
                        \edef\@p@sbburx{\r@p@sbburx}\edef\@p@sbbury{\r@p@sbbury}
%\ps@typeout{rotated BB: \r@p@sbbllx, \r@p@sbblly, \r@p@sbburx, \r@p@sbbury}
                \fi
                \count203=\@p@sbburx
                \count204=\@p@sbbury
                \advance\count203 by -\@p@sbbllx
                \advance\count204 by -\@p@sbblly
                \edef\@bbw{\number\count203}
                \edef\@bbh{\number\count204}
                %\ps@typeout{ bbh = \@bbh, bbw = \@bbw }
}
%
% \in@hundreds performs #1 * (#2 / #3) correct to the hundreds,
%       then leaves the result in @result
%
\def\in@hundreds#1#2#3{\count240=#2 \count241=#3
                     \count100=\count240        % 100 is first digit #2/#3
                     \divide\count100 by \count241
                     \count101=\count100
                     \multiply\count101 by \count241
                     \advance\count240 by -\count101
                     \multiply\count240 by 10
                     \count101=\count240        %101 is second digit of #2/#3
                     \divide\count101 by \count241
                     \count102=\count101
                     \multiply\count102 by \count241
                     \advance\count240 by -\count102
                     \multiply\count240 by 10
                     \count102=\count240        % 102 is the third digit
                     \divide\count102 by \count241
                     \count200=#1\count205=0
                     \count201=\count200
                        \multiply\count201 by \count100
                        \advance\count205 by \count201
                     \count201=\count200
                        \divide\count201 by 10
                        \multiply\count201 by \count101
                        \advance\count205 by \count201
                        %
                     \count201=\count200
                        \divide\count201 by 100
                        \multiply\count201 by \count102
                        \advance\count205 by \count201
                        %
                     \edef\@result{\number\count205}
}
\def\compute@wfromh{
                % computing : width = height * (bbw / bbh)
                \in@hundreds{\@p@sheight}{\@bbw}{\@bbh}
                %\ps@typeout{ \@p@sheight * \@bbw / \@bbh, = \@result }
                \edef\@p@swidth{\@result}
                %\ps@typeout{w from h: width is \@p@swidth}
}
\def\compute@hfromw{
                % computing : height = width * (bbh / bbw)
                \in@hundreds{\@p@swidth}{\@bbh}{\@bbw}
                %\ps@typeout{ \@p@swidth * \@bbh / \@bbw = \@result }
                \edef\@p@sheight{\@result}
                %\ps@typeout{h from w : height is \@p@sheight}
}
\def\compute@handw{
                \if@height 
                        \if@width
                        \else
                                \compute@wfromh
                        \fi
                \else 
                        \if@width
                                \compute@hfromw
                        \else
                                \edef\@p@sheight{\@bbh}
                                \edef\@p@swidth{\@bbw}
                        \fi
                \fi
}
\def\compute@resv{
                \if@rheight \else \edef\@p@srheight{\@p@sheight} \fi
                \if@rwidth \else \edef\@p@srwidth{\@p@swidth} \fi
                %\ps@typeout{rheight = \@p@srheight, rwidth = \@p@srwidth}
}
%               
% Compute any missing values
\def\compute@sizes{
        \compute@bb
        \if@scalefirst\if@angle
% at this point the bounding box has been adjsuted correctly for
% rotation.  PSFIG does all of its scaling using \@bbh and \@bbw.  If
% a width= or height= was specified along with \psscalefirst, then the
% width=/height= value needs to be adjusted to match the new (rotated)
% bounding box size (specifed in \@bbw and \@bbh).
%    \ps@bbw       width=
%    -------  =  ---------- 
%    \@bbw       new width=
% so `new width=' = (width= * \@bbw) / \ps@bbw; where \ps@bbw is the
% width of the original (unrotated) bounding box.
        \if@width
           \in@hundreds{\@p@swidth}{\@bbw}{\ps@bbw}
           \edef\@p@swidth{\@result}
        \fi
        \if@height
           \in@hundreds{\@p@sheight}{\@bbh}{\ps@bbh}
           \edef\@p@sheight{\@result}
        \fi
        \fi\fi
        \compute@handw
        \compute@resv}
%
%
%
\def\OzTeXSpecials{
        \special{empty.ps /@isp {true} def}
        \special{empty.ps \@p@swidth \space \@p@sheight \space
                        \@p@sbbllx \space \@p@sbblly \space
                        \@p@sbburx \space \@p@sbbury \space
                        startTexFig \space }
        \if@clip{
                \if@verbose{
                        \ps@typeout{(clip)}
                }\fi
                \special{empty.ps doclip \space }
        }\fi
        \if@angle{
                \if@verbose{
                        \ps@typeout{(rotate)}
                }\fi
                \special {empty.ps \@p@sangle \space rotate \space} 
        }\fi
        \if@prologfile
            \special{\@prologfileval \space } \fi
        \if@decmpr{
                \if@verbose{
                        \ps@typeout{psfig: Compression not available
                        in OzTeX version \space }
                }\fi
        }\else{
                \if@verbose{
                        \ps@typeout{psfig: including \@p@sfile \space }
                }\fi
                \special{epsf=\ps@predir\@p@sfile \space }
        }\fi
        \if@postlogfile
            \special{\@postlogfileval \space } \fi
        \special{empty.ps /@isp {false} def}
}
\def\DvipsSpecials{
        %
        \special{ps::[begin]    \@p@swidth \space \@p@sheight \space
                        \@p@sbbllx \space \@p@sbblly \space
                        \@p@sbburx \space \@p@sbbury \space
                        startTexFig \space }
        \if@clip{
                \if@verbose{
                        \ps@typeout{(clip)}
                }\fi
                \special{ps:: doclip \space }
        }\fi
        \if@angle
                \if@verbose{
                        \ps@typeout{(clip)}
                }\fi
                \special {ps:: \@p@sangle \space rotate \space} 
        \fi
        \if@prologfile
            \special{ps: plotfile \@prologfileval \space } \fi
        \if@decmpr{
                \if@verbose{
                        \ps@typeout{psfig: including \@p@sfile.Z \space }
                }\fi
                \special{ps: plotfile "`zcat \@p@sfile.Z" \space }
        }\else{
                \if@verbose{
                        \ps@typeout{psfig: including \@p@sfile \space }
                }\fi
                \special{ps: plotfile \@p@sfile \space }
        }\fi
        \if@postlogfile
            \special{ps: plotfile \@postlogfileval \space } \fi
        \special{ps::[end] endTexFig \space }
}
%
% \psfig
% usage : \psfig{file=, height=, width=, bbllx=, bblly=, bburx=, bbury=,
%                       rheight=, rwidth=, clip=}
%
% "clip=" is a switch and takes no value, but the `=' must be present.
\def\psfig#1{\vbox {
        % do a zero width hard space so that a single
        % \psfig in a centering enviornment will behave nicely
        %{\setbox0=\hbox{\ }\ \hskip-\wd0}
        %
        \ps@init@parms
        \parse@ps@parms{#1}
        \compute@sizes
        %
        \ifnum\@p@scost<\@psdraft{
                \PsfigSpecials 
                % Create the vbox to reserve the space for the figure.
                \vbox to \@p@srheight sp{
                % 1/92 TJD Changed from "true sp" to "sp" for magnification.
                        \hbox to \@p@srwidth sp{
                                \hss
                        }
                \vss
                }
        }\else{
                % draft figure, just reserve the space and print the
                % path name.
                \if@draftbox{           
                        % Verbose draft: print file name in box
                        % 10/93 TJD changed to fbox from frame
                        \hbox{\fbox{\vbox to \@p@srheight sp{
                        \vss
                        \hbox to \@p@srwidth sp{ \hss 
                                % 10/93 TJD deleted to avoid ``_'' problems
                                % \@p@sfile
                         \hss }
                        \vss
                        }}}
                }\else{
                        % Non-verbose draft
                        \vbox to \@p@srheight sp{
                        \vss
                        \hbox to \@p@srwidth sp{\hss}
                        \vss
                        }
                }\fi    



        }\fi
}}
\psfigRestoreAt
\setDriver
\let\@=\LaTeXAtSign





%====================================================================%
%                  sprocl.tex     27-Feb-1995                        %
% This latex file rewritten from various sources for use in the      %
% preparation of the standard proceedings Volume, latest version     %
% by Susan Hezlet with acknowledgments to Lukas Nellen.              %
% Some changes are due to David Cassel.                              %
%====================================================================%



\documentstyle[sprocl,epsfig]{article}
\font\eightrm=cmr8
\input{psfig}

\bibliographystyle{unsrt} %for BibTeX - sorted numerical labels by

                          %order of first citation.
\arraycolsep1.5pt



% A useful Journal macro

\def\Journal#1#2#3#4{{#1} {\bf #2}, #3 (#4)}



% Some useful journal names
\def\NCA{\em Nuovo Cimento}
\def\NIM{\em Nucl. Instrum. Methods}
\def\NIMA{{\em Nucl. Instrum. Methods} A}
\def\NPB{{\em Nucl. Phys.} B}
\def\PLB{{\em Phys. Lett.}  B}
\def\PRL{\em Phys. Rev. Lett.}
\def\PRD{{\em Phys. Rev.} D}
\def\ZPC{{\em Z. Phys.} C}



% Some other macros used in the sample text

\def\st{\scriptstyle}
\def\sst{\scriptscriptstyle}
\def\mco{\multicolumn}
\def\epp{\epsilon^{\prime}}
\def\vep{\varepsilon}
\def\ra{\rightarrow}
\def\ppg{\pi^+\pi^-\gamma}
\def\vp{{\bf p}}
\def\ko{K^0}
\def\kb{\bar{K^0}}
\def\al{\alpha}
\def\ab{\bar{\alpha}}
\def\be{\begin{equation}}
\def\ee{\end{equation}}
\def\CPbar{\hbox{{\rm CP}\hskip-1.80em{/}}}%temp replacemt due to no font
\def\bq{\begin{eqnarray}}
\def\eq{\end{eqnarray}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%BEGINNING OF TEXT                           
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

\begin{flushright}
WUE-ITP-99-021
\end{flushright}
\bigskip

\title{PION FORM FACTORS FROM QCD LIGHT-CONE SUM RULES }

\author{A. KHODJAMIRIAN \footnote{ {\it on leave from 
Yerevan Physics Institute, 375036 Yerevan, Armenia }}$^,$\footnote{
after Sept. 1, 1999 at The Niels Bohr Institute,  
DK-2100, Copenhagen, Denmark}}
\address{
Institut f\"ur Theoretische Physik, 
Universit\"at W\"urzburg,\\
D-97074 W\"urzburg, Germany 
\\E-mail : ak@physik.uni-wuerzburg.de}



\maketitle\abstracts {Light-cone sum rules have proved to be 
very useful in calculating hadronic matrix elements for 
exclusive processes. I present recent applications 
of this method to the pion electromagnetic form factor
and to the form factors of  $\gamma^* \rho \to \pi$ 
and $\gamma^*\gamma \to \pi^0$ transitions.\\
\begin{center}
{\it Presented at the 6th INT/Jlab Workshop on Exclusive and 
Semiexclusive Processes at High Momentum Transfer, Jefferson Laboratory, 
May 1999.}
\end{center}}


\section{Introduction}

Current and future experimental studies of exclusive and semi-exclusive 
processes require accurate calculations of relevant 
hadronic matrix elements in QCD. This task 
is, however, still far from being fulfilled. Of particular 
interest are quantitative QCD predictions for 
various form factors  determining matrix elements of 
electroweak quark currents between one-hadron states.
At sufficiently large values of the momentum transfer 
the form factors are determined by the perturbative 
QCD factorization. In particular, the pion electromagnetic 
form factor at $Q^2 \to \infty$ is given by the well known 
expression \cite{CZ,ER,BL}
\begin{equation}
 F_\pi(Q^2) = \frac{8\pi\alpha_s f_\pi^2}{9Q^2}
  \left|\int\limits_0^1\!\! du \frac{\varphi_{\pi}(u)}{\bar u}\right|^2\,,
\label{asympt}
\end{equation}  
$(\bar{u}\equiv 1-u)$ obtained by the convolution of twist-2 distribution 
amplitudes $\varphi_\pi(u)$ of the initial and final pion 
with  the  $O(\alpha_s)$ quark hard-scattering kernel. 
The major unsolved problem is to estimate 
the so-called soft, or end-point contributions to this form factor. 
These contributions are expected \cite{soft} to be important 
at intermediate  momentum transfers $Q^2 \sim 1 \div 10 $ GeV$^2$.
Obviously, a consistent solution of this problem requires 
a calculation of both soft and hard contributions in {\em one 
and the same} framework beyond perturbation theory. 

A promising and largely universal method of   
calculating hadronic matrix elements 
is provided by QCD light-cone sum rules (LCSR) \cite{LCSR}. 
This approach combines the light-cone operator-product expansion 
(OPE) with the conventional SVZ sum rule technique
\cite{SVZ}. Proceeding from the basis of QCD perturbation theory,
LCSR incorporate elements of nonperturbative long-distance dynamics  
parametrized in terms of hadronic distribution amplitudes 
with different twist and multiplicity. 

In this talk, I describe recent applications of LCSR 
to various pion form factors, including  the pion electromagnetic
form factor \cite{BH94,BKM} and the form factors of  
$\gamma^* \rho(\omega)\to \pi$ and $\gamma^* \gamma \to \pi^0$
transitions \cite{AK}. 

\section{Pion electromagnetic form factor}

I begin with explaining the general idea of the LCSR approach 
using an important example of the pion electromagnetic form factor.
More detailed derivation can be found in \cite{BKM}. 
The starting object is the vacuum-pion correlation function 
\begin{equation}
T_{\mu\nu}(p,q) = i\int\! d^4 x \,e^{iqx}
\langle 0| T\{j_\mu^5(0) j_\nu^{\rm em}(x)\} 
| \pi^+(p)\rangle \;,
\label{corr}
\end{equation}
%
%
where $j_\nu^{\rm em} = e_u\bar u\gamma_\nu u + e_d\bar d \gamma_\nu d~$
is the quark electromagnetic current. One of the pions is put on-shell 
and the second one  is replaced by the generating current 
$j_\mu^5 = \bar d\gamma_\mu\gamma_5 u$. For the on-shell pions, 
$p^2=m_\pi^2$ vanishes in the chiral limit adopted here. 

At fixed  large $Q^2=-q^2 >> \Lambda_{QCD}^2$
the correlation function (\ref{corr}) is a function of  a single 
invariant $(p-q)^2$. Depending on the value of this variable the amplitude 
$T_{\mu\nu}$ corresponds to different physical pictures.   
At large spacelike $(p-q)^2$, $|(p-q)^2| >> \Lambda_{QCD}^2$,  
the interval $x^2 \to 0$ 
and one is able to employ the light-cone operator expansion 
for the product of two currents in (\ref{corr}). 
The amplitude (\ref{corr}) can then be factorized 
in a convolution of the pion distribution amplitude and the
hard scattering amplitude yielding 
\begin{equation}
  T_{\mu\nu} =  2if_\pi p_\mu p_\nu \int\limits_0^1 \! du\! 
   \frac{u\varphi_\pi(u)}{\bar{u}Q^2 -u(p-q)^2}+\ldots\,.
\label{ope}
\end{equation}   
In the above, only the leading order, 
twist 2 contribution is shown, the ellipses denoting
$O(\alpha_s)$ corrections and higher twist terms.  

Decreasing $|(p-q)^2 |$, one gradually 
approaches the physical region in the channel of the pion current.
The interval $x^2$ deviates from zero, the light-cone 
OPE diverges and factorization is lost. 
Finally, at $(p-q)^2 = m_\pi^2$ one deals with the 
emission and propagation of an on-shell pion which is then 
elastically scattered by the electromagnetic current.
In this region, the amplitude $T_{\mu\nu}$ is dominated by 
the one-pion contribution to its hadronic representation 
(dispersion relation) 
\begin{equation}
T_{\mu\nu}(p,q) =  2if_\pi (p-q)_\mu p_\nu F_\pi(Q^2)\frac{1}
{m_\pi^2 - (p-q)^2} + \int ds ~\frac{\rho_{\mu\nu}(s)}{
s-(p-q)^2}\, .  
\label{pion}
\end{equation}
The one-pion term is proportional to the 
pion decay constant $f_\pi$ and to the desired form 
factor $F_\pi(Q^2)$.
The integral over $\rho_{\mu\nu}$ in (\ref{pion})
contains contributions 
of higher mass intermediate states with the pion quantum numbers. 

Equating (\ref{ope}) and (\ref{pion})
one extracts  the form factor $F_\pi(Q^2)$ 
applying the standard elements of the QCD sum rule technique.
Specifically, the quark-hadron duality is used: 
$\rho_{\mu\nu}(s) = 1/\pi\mbox{Im}T_{\mu\nu}(s)\Theta(s-s_0^\pi)$,
where $\mbox{Im}T_{\mu\nu}(s)$ is calculated from 
(\ref{ope}) and $s_0^\pi\simeq 0.7$ GeV$^2$ is the effective threshold 
for the pion channel determined from the two-point QCD sum rule  
\cite{SVZ}. Furthermore, the Borel transformation 
in the variable $(p-q)^2$ is performed.  
The resulting LCSR, in the zeroth order 
in $\alpha_s$ and  in the twist 2 approximation, reads \cite{BH94}
%
\begin{equation}
F_{\pi}(Q^2) = \int\limits_{u_0}^1 \!du\, \varphi_{\pi}(u,\mu_u) 
\exp \left( - \frac{\bar uQ^2}{u M^2} \right)
\stackrel{Q^2\to\infty}{\longrightarrow}
\varphi_{\pi}'(0) 
\int\limits_0^{s_0} \frac{ds\, s\, e^{-s/{M^2}}}{Q^4}\,, 
\label{SR1}
\end{equation} 
%
where $\varphi_{\pi}'(0)=-\varphi_{\pi}'(1)$, $M^2$ is the Borel 
parameter, $u_0= Q^2/(s_0^\pi+Q^2)$.
The factorization scale $\mu_u^2= \bar{u}Q^2+uM^2 $  
corresponds to the quark virtuality in the correlation function. 
This sum rule perfectly behaves at $Q^2 \to \infty$, in contrast
to the conventional QCD sum rule \cite{IofSmilRad} for $F_\pi(Q^2)$ 
based on the local OPE. 
The  $1/Q^4$ behaviour of (\ref{SR1}) corresponds to the 
soft end-point mechanism, provided that 
in $Q^2\to \infty$ limit 
the integration region in (\ref{SR1}) shrinks to a point $u=1$.

Perturbative $O(\alpha_s)$ corrections to the correlation
function (\ref{corr}) considerably improve  
the accuracy of the soft contribution. More importantly,
in $O(\alpha_s)$ one recoveres the  $\sim 1/Q^2$ asymptotic 
behaviour  corresponding to the hard perturbative mechanism.
The $O(\alpha_s)$ twist 2 term was calculated in \cite{BKM}.
Including this contribution in the LCSR and retaining the 
first two terms of the sum rule expansion in powers 
of $1/Q^2$ one obtains:
%\begin{eqnarray}
$$
F_{\pi} (Q^2) = 
\frac{\alpha_s}{2\pi}C_F\int\limits_0^{s_0} \frac{ds\,  e^{-s/{M^2}}}{Q^2} 
\int\limits_0^1 du\, \frac{\varphi_{\pi}(u)}{\bar u}
+\varphi_{\pi}'(0) \int\limits_0^{s_0} \frac{ds\, s\, e^{-s/{M^2}}}{Q^4}
$$
%\nonumber \\
%\hspace{-0.5cm}
$$
+
\frac{\alpha_s}{4\pi}C_F \int\limits_0^{s_0} \frac{ds\, s\, e^{-s/{M^2}}}{Q^4}
\Bigg\{ \varphi_{\pi}'(0) \left[-9 + \frac{1}{3}\pi^2 + 
\ln\frac{s}{\mu^2} - \ln^2\frac{s}{Q^2}\right]
$$
\begin{equation}
%\nonumber \\
+(2\ln\frac{s}{\mu^2}-3)\int\limits_0^1 du 
 \left[ \frac{\varphi_{\pi}(u)-\bar u\,\varphi'(0)}{\bar u^2}\right]
+ (2 \ln\frac{s}{\mu^2}-8) \int\limits_0^1\!\! du  
\frac{\varphi_{\pi}(u)}{\bar u}\Bigg\}.
\label{pert}
\end{equation}
It is remarkable that the leading asymptotic $O(1/Q^2)$ term in (\ref{pert})
coinsides with (\ref{asympt}) provided that  
the two-point sum rule \cite{SVZ} for $f_\pi$ 
yields  $\int_0^{s_0}\!ds\,e^{-s/M^2}= 4\pi^2f_\pi^2$,
and $\int_0^1 \!\!du\varphi^{\rm as}_{\pi}(u)/\bar{u} =3$ 
for the asymptotic  $\varphi^{\rm as}_{\pi}(u)=6u\bar{u}$. 
Furthermore, it is instructive to split the $0<u<1$ integration region 
in LCSR into ``hard''  $( u<u_0)$ and ``soft'' $( u>u_0)$ parts.
This separation reveals \cite{BKM} that the $O(\alpha_s/Q^4)$ 
hard contribution is large and negative while the soft  $O(1/Q^4)$ and 
$O(\alpha_s/Q^4)$ contributions  are positive yielding 
considerable cancellations in the sum rule.

To further improve the accuracy of the LCSR, one also has to include
the higher twist corrections. Physically, 
these corrections take into account 
both the transverse momentum of the quark-antiquark state and 
the contributions of higher Fock states in the pion wave function.
In addition to the twist 4 terms, in \cite{BKM} the factorizable 
twist 6 contributions proportional to the square 
of the quark condensate have been calculated. The latter
corrections turn out to be comfortably small.
%%%%%%%%%%%%%%%%%%%%%%%FIGURE 1 %%%%%%%%%%%%%%%%%%%%%%%%
\begin{figure}[t]
\vspace{-1.2cm}
\hspace{2cm}
\psfig{figure=Fig1.eps,height=2.7in}
\vspace{-0.5cm}
\caption{ The light-cone sum rule predictions for the pion electromagnetic 
  form factor $^8$ using asymptotic distribution amplitude 
   (dashed), CZ distribution (dotted) and fit to the data $^{11}$ (solid).}
\vspace{-0.5cm}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Adding twist 4,6 terms to the twist 2 (leading and $O(\alpha_s)$) parts 
yields the LCSR prediction for $F_\pi(Q^2)$  shown in Fig. 1 for 
the pion distribution amplitude $
\varphi_\pi(u,\mu) = 6u\bar{u} \left[1+ a_2(\mu)C_2^{3/2}(u-\bar{u})\right]\, 
$
with two choices: $a_2=0$ (asymptotic) and $a_2( 1\,\mbox{GeV})= 2/3 $ (CZ). 
The  available experimental data \cite{exp} 
seem to rule out the CZ option. The fit of the LCSR 
to these data yields $a_2( 1 \,\mbox{GeV} ) = 0.12 \pm 0.07 
^{+0.05}_{-0.07}$ where the first (second) uncertainty is 
experimental (theoretical).
%%%%%%%%%%%%%%%%%%%%%%%FIGURE 2 %%%%%%%%%%%%%%%%%%%%%%%%
\begin{figure}[t]
\vspace{-1.2cm}
\hspace{2cm}
\psfig{figure=Fig2.eps,height=2.7in}
\vspace{-0.5cm}
\caption{ The light-cone sum rule prediction$^8$ for the nonperturbative correction
to the pion form factor  with the asymptotic pion distribution amplitude.
The grey band shows the sensitivity of the result to variation of the  
Borel parameter within $0.8 ~{\rm GeV}^2 < M^2 < 1.5 ~{\rm GeV}^2$.
The dashed curve is the calculation for the nominal value 
$M^2 = 1 {\rm GeV}^2$.}
\vspace{-0.3cm}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%SECTION %%%%%%%%%%%%%


Another way to employ the LCSR prediction \cite{BKM}
is to  subtract the leading asymptotic $1/Q^2$ term (the first term 
in (\ref{pert})) from the sum rule. The remaining power suppressed  
part can be  called ``nonperturbative'' contribution $F_{nonp}(Q^2)$. 
One then obtains  a quantitative prediction 
for the full pion form factor by adding $F_{nonp}(Q^2)$ to the 
perturbative QCD result which is currently known 
with the NLO accuracy. The LCSR prediction for $F_{nonp}(Q^2) $ 
is plotted in Fig. 2.  It turns out to be numerically 
moderate due to abovementioned cancellations  between soft 
and hard $O(1/Q^4)$  contributions in the twist 2 part.

\section{ $\gamma^* \rho \to \pi$ and $\gamma^* \gamma \to \pi$
transition form factors} 

Similar to the pion electromagnetic form factor, the 
$\gamma^* \rho \to \pi $ or $\gamma^* \omega \to \pi $ 
transition form factors can be measured by extracting the one-pion 
exchange in the electroproduction of $\rho$ or $\omega$.
The form factors are defined as 
$ \frac13\langle \pi^0(p)\mid j_\mu^{em} \mid \omega(p-q)\rangle \simeq
\langle \pi^0(p)\mid j_\mu^{em} \mid \rho^0(p-q)\rangle =
F^{\rho \pi}(Q^2)m_\rho^{-1}\epsilon_{\mu\nu\alpha\beta}
e^{\nu}q^\alpha p^\beta 
\,,
$
%\label{formf}
%\ee
$e_\nu$ being the polarization vector of $\rho$ or $\omega$.
The derivation of LCSR \cite{AK} for $F^{\rho \pi}(Q^2)$ 
basically follows the procedure described in the previous section. 
The underlying correlation function is  
\be
\int \! d^4x e^{-iqx}\langle \pi^0 (p)\! \mid
T\{ j_\mu^{em}(x) j_\nu^{em}(0)\}\mid \! 0\rangle = 
i\epsilon_{\mu\nu\alpha\beta}
q^\alpha p^\beta F^{\gamma^{*}\pi}(Q^2,(p-q)^2).
\label{ampl}
\ee
If both $Q^2$ and $|(p-q)^2|$ are sufficiently large,  
the light-cone OPE is valid for the amplitude 
$F^{\gamma^{*}\pi}(Q^2,(p-q)^2)$ starting from the leading twist 
2 term \cite{BL}: 
\be
F^{\gamma^{*}\pi}(Q^2,(p-q)^2)= \frac{\sqrt{2}f_\pi}{3}\int\limits_0^1 
\frac{du~\varphi_\pi(u)}{\bar{u}Q^2 -u(p-q)^2}~ + ...
\label{leading}
\ee
Physical states in the $(p-q)^2$--channel include  
vector mesons $\rho,\omega,\rho',\omega',...$ and a continuum
of hadronic states with the same quantum numbers. 
The hadronic dispersion relation can be written as 
\be
F^{\gamma^{*}\pi}(Q^2,(p-q)^2) 
=\frac{\sqrt{2}f_\rho F^{\rho \pi}(Q^2)}{m_{\rho}^2-(p-q)^2}
+ \frac{1}{\pi}\int\limits_{s_0^\rho}^\infty ds~ 
\frac{\mbox{Im}F^{\gamma^{*}\pi}(Q^2,s)}{s-(p-q)^2}.  
\label{disp}
\ee
Here, the $\rho$ and $\omega$  contributions
are combined in one ground-state resonance term 
using $m_\rho \simeq m_\omega$ and 
$
3\langle \omega \mid j_\nu^{em} \mid 0 \rangle \simeq
\langle \rho^0 \mid j_\nu^{em} \mid 0 \rangle = 
(f_\rho/\sqrt{2}) m_\rho e^{ *}_\nu  
$. For the higher states above the effective threshold $s_0^\rho$, the
quark-hadron duality is used 
with the spectral density $1/\pi\mbox{Im}F^{\gamma^{*}\pi}(Q^2,s)$ 
calculated from (\ref{leading}). The resulting LCSR 
\be
F^{\rho\pi}(Q^2) = \frac{f_\pi}{3f_\rho} 
\int^1_{u_0}\frac{du}u \varphi_\pi (u)
\exp\left(-\frac{Q^2(1-u)}{uM^2} +\frac{m_\rho^2}{M^2}\right)
+ O(\mbox{twist 4}) 
\label{rhopi}
\ee
was obtained in \cite{AK} where one can 
find additional details and numerical predictions.  
Note that the form factor (\ref{rhopi})
corresponds to the  soft mechanism with $1/Q^4$ behaviour
at large $Q^2$. Due to helicity suppression, the perturbative 
$O(\alpha_s)$ correction to $F^{\rho\pi}(Q^2)$ should have the same 
$1/Q^4$ behaviour. This and twist 6 corrections 
still have to be included in (\ref{rhopi}).

Finally, let me focus on the $\gamma^*\gamma \to  \pi$ transition. 
Since the real photon is a  large-distance  object, 
the transition form factor  $F^{\gamma\pi}(Q^2)$ 
contains nonperturbative contributions beyound the light-cone
expansion of two electromagnetic quark currents. 
The leading $1/Q^2$ asymptotics of $F^{\gamma\pi}(Q^2)$ 
is well known \cite{BL} and given by (\ref{leading})
at $(p-q)^2\to 0$. The calculation of the contributions 
suppressed by powers of $1/Q^2$  is a nontrivial task. 
Within LCSR approach, one has to invoke the photon 
distribution amplitudes. A reliable estimate is nevertheless
possible \cite{AK} using the hadronic dispersion relation (\ref{disp})
where the resonance term is determined by the LCSR (\ref{rhopi})
and the integral over higher states is estimated using duality.  
One can analytically continue  this relation 
to $(p-q)^2 \to 0$ provided that it does not contain  
subtraction terms (a similar approach was used in \cite{GIKO} for 
the structure function of the real photon).
The result shown in Fig. 3 again has a better agreement 
with the experimental data \cite{CELLO} in the case of 
the asymptotic pion distribution amplitude. The recent update \cite{SY} of  
$F^{\gamma\pi}(Q^2)$ includes the 
$O(\alpha_s)$ correction decreasing the leading order results in Fig. 3 by  
15-20\%. 
%%%%%%%%%%%%%%%%%%%%%%%FIGURE 3 %%%%%%%%%%%%%%%%%%%%%%%%
\begin{figure}[t]
\vspace{3.4cm}
%\hspace{cm}
\psfig{figure=Fig3.ps,height=2.0in}
\vspace{-4cm}
\caption{Form factor of the $\gamma^*\gamma \to \pi^0$ transition 
calculated $^9$ with the asymptotic 
(solid), CZ (long dashed) and BF (short-dashed) wave 
function of the pion in comparison with the experimental 
data points $^{13}$ and with the  
interpolation formula from $^3$ (dash-dotted).}
\vspace{-0.4cm}
\end{figure}

\section{Conclusions}

Light-cone sum rules provide a powerful tool for calculating various
form factors at intermediate momentum transfers. In this framework, 
both soft end-point and hard perturbative mechanisms 
can be incorporated. The LCSR results for the pion electromagnetic 
form factor  indicate that the soft contribution is indeed large. 
However, an essential part of it is cancelled by the 
$O(\alpha_s/Q^4)$ corrections originating from the hard region. 
As a result, the overall power suppressed  correction to 
the perturbative QCD factorization turns out to be relatively moderate.
Comparison of LCSR predictions for the pion 
form factors with the available data indicates  an almost 
asymptotic pion distribution amplitude $\varphi_\pi(u)$. 
More precise measurements of the form factors 
are needed to tightly constrain the nonasymptotic parts of
$\varphi_\pi(u)$. 

The LCSR approach 
is extremely useful also for heavy flavour exclusive  decays, 
in particular, for the form factors
of $B\to \pi,K,\rho,K^*$ transitions \cite{heavy}. 
The sum rules for heavy-to-light and light-to-light 
transition form factors share a common nonperturbative input,
that is the set of light hadron distribution amplitudes.
Moreover, the structure of 
perturbative corrections to the pion form factor \cite{BKM} 
turns out to be  very similar to the 
heavy quark limit \cite{Bagan} of the LCSR for $B\to \pi$ in 
$O(\alpha_s)$. One may conclude 
that within a universal approach of QCD 
light-cone sum rules, both fields, the hard exclusive 
processes and the heavy flavour decays  can mutually benefit.


\section*{Acknowledgments}

I am grateful to C. Carlson and A. Radyushkin for the invitation
to this fruitful workshop. Collaboration with V. Braun 
and M. Maul on the subject of this talk is acknowledged. 
This work was supported by the German Federal Ministry for 
Education and Research (BMBF) under contract number 05 7WZ91P (0).

                                                                               \section*{References}

\begin{thebibliography}{99}

\bibitem{CZ}
 V.L.\ Chernyak and A.R.\ Zhitnitsky, JETP Lett.\ 
  {\bf {25}} (1977) 510; Yad.\ Fiz.\ {\bf 31} (1980) 1053;
  Phys. Rept. {\bf 112} (1984) 173.
\bibitem{ER}
  A.V.\ Efremov and A.V.\ Radyushkin, Phys.\ Lett.\ B {\bf 94} (1980)
  245;
  Theor.\ Math.\ Phys.\  {\bf {42}} (1980) 97.
\bibitem{BL}
  G.P.\ Lepage and S.J.\ Brodsky, Phys.\ Lett.\ B {\bf 87} (1979) 359;
  Phys.\ Rev.\ D {\bf 22} (1980) 2157, Phys. Rev. {\bf D24} (1981) 1808.
\bibitem{soft}
N.~Isgur and C.H.~Llewellyn Smith,
Phys. Lett. {\bf B217} (1989) 535;\\
A.V.~Radyushkin,
%``Exclusive processes in perturbative QCD,''
Nucl. Phys. {\bf A527} (1991) 153C;
%``Hadronic form-factors: Perturbative QCD vs. QCD sum rules,''
{\it ibid}. {\bf A532} (1991) 141.

\bibitem{LCSR}
 I.I.\ Balitsky, V.M.\ Braun and A.V.\ Kolesnichenko,
  Nucl.\ Phys.\ {\bf B312} (1989) 509;
 V.M.\ Braun and I.E.\ Filyanov, Z.\ Phys.\ {\bf {C 44}}
  (1989) 157;\\
V.L.\ Chernyak and I.R.\ Zhitnitskii, Nucl.\ Phys.\ {\bf B345} (1990) 137.


\bibitem{SVZ}
M.A.~Shifman, A.I.~Vainshtein and V.I.~Zakharov,
Nucl. Phys. {\bf B147} (1979) 385.


\bibitem{BH94}
V.M.~Braun and I.~Halperin,
%``Soft contribution to the pion form-factor from light cone QCD sum rules,''
Phys. Lett. {\bf B328} 457 (1994) 457 .

\bibitem{BKM}
V.M.~Braun, A.~Khodjamirian and M.~Maul,
%``Pion form factor in QCD at intermediate momentum transfers,''
.
%%CITATION = ;%%

\bibitem{AK}
A.~Khodjamirian,
Eur. Phys. J. {\bf C6} (1999) 477.
%%CITATION = EPHJA,C6,477;%%



\bibitem{IofSmilRad} 
B.L. Ioffe and A.V. Smilga, Phys. Lett. {\bf 114B} (1982) 353; 
Nucl. Phys. {\bf B216} (1983) 373;\\ 
V.A. Nesterenko and A.V. Radyushkin, Phys. Lett. {\bf 115B} (1982) 410. 




\bibitem{exp}
C.J.~Bebek {\it et al.},
Phys. Rev. {\bf D17} (1978) 1693;
%%CITATION = PHRVA,D17,1693;%%
S.R.~Amendolia {\it et al.}
[NA7 Collaboration],
Nucl. Phys. {\bf B277} (1986) 168.
%%CITATION = NUPHA,B277,168;%%



\bibitem{GIKO}
A.S.~Gorsky, B.L.~Ioffe, A.Yu.~Khodjamirian and A.G.~Oganesian,
Z.\ Phys.\ {\bf C44} (1989) 523.
%%CITATION = ZEPYA,C44,523;%%



\bibitem{CELLO} CELLO Collaboration (H.-J. Behrend et. al),
Z. Phys. {\bf C49} (1991) 401; CLEO Collaboration (J. Gronberg et al.),
Phys. Rev. {\bf D57} (1998) 33. 


\bibitem{SY}
A.~Schmedding and O.~Yakovlev,
.
%%CITATION = ;%%


\bibitem{heavy} 
V.M. Belyaev, A. Khodjamirian and  R. R\"uckl, Z. Phys. {\bf C 60} (1993) 349;  
V.M.~Belyaev, V.M.~Braun, A.~Khodjamirian and R.~R\"uckl,
Phys. Rev. {\bf D51} (1995) 6177;\\
%%CITATION = PHRVA,D51,6177;%%
P.~Ball and V.M.~Braun, Phys. Rev. {\bf D55} (1997) 5561;
%%CITATION = PHRVA,D55,5561;%%
Phys.\ Rev.\ {\bf D58} (1998) 094016;\\
%%CITATION = PHRVA,D58,094016;%%
A. Khodjamirian and R. R\"uckl,  in 
Heavy Flavours II, eds. A.J. Buras and M. Lindner 
(World Scientific, Singapore,1998), p.345;\\
P.~Ball, JHEP {\bf 09} (1998) 005.
%%CITATION = JHEPA,9809,005;%%

\bibitem{Bagan}
E.~Bagan, P.~Ball and V.M.~Braun,
Phys.\ Lett.\ {\bf B417} (1998) 154.
%%CITATION = PHLTA,B417,154;%%



\end{thebibliography}
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% End of sprocl.tex  
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 



