123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326 |
- \chapter{Calculations in High Energy Physics}
- A set of {\REDUCE} commands is provided for users interested in symbolic
- calculations in high energy physics. Several extensions to our basic
- syntax are necessary, however, to allow for the different data structures
- encountered.
- \section{High Energy Physics Operators}
- \label{HEPHYS}
- We begin by introducing three new operators required in these calculations.
- \subsection{. (Cons) Operator}\index{Dot product}
- Syntax:
- \begin{verbatim}
- (EXPRN1:vector_expression)
- . (EXPRN2:vector_expression):algebraic.
- \end{verbatim}
- The binary {\tt .} operator, which is normally used to denote the addition
- of an element to the front of a list, can also be used in algebraic mode
- to denote the scalar product of two Lorentz four-vectors. For this to
- happen, the second argument must be recognizable as a vector expression
- \index{High energy vector expression} at the time of
- evaluation. With this meaning, this operator is often referred to as the
- {\em dot\/} operator. In the present system, the index handling routines all
- assume that Lorentz four-vectors are used, but these routines could be
- rewritten to handle other cases.
- Components of vectors can be represented by including representations of
- unit vectors in the system. Thus if {\tt EO} represents the unit vector
- {\tt (1,0,0,0)}, {\tt (p.eo)} represents the zeroth component of the
- four-vector P. Our metric and notation follows Bjorken and Drell
- ``Relativistic Quantum Mechanics'' (McGraw-Hill, New York, 1965).
- Similarly, an arbitrary component {\tt P} may be represented by
- {\tt (p.u)}. If contraction over components of vectors is required, then
- the declaration {\tt INDEX}\ttindex{INDEX} must be used. Thus
- \begin{verbatim}
- index u;
- \end{verbatim}
- declares {\tt U} as an index, and the simplification of
- \begin{verbatim}
- p.u * q.u
- \end{verbatim}
- would result in
- \begin{verbatim}
- P.Q
- \end{verbatim}
- The metric tensor $g^{\mu \nu}$ may be represented by {\tt (u.v)}. If
- contraction over {\tt U} and {\tt V} is required, then they should be
- declared as indices.
- Errors occur if indices are not properly matched in expressions.
- If a user later wishes to remove the index property from specific vectors,
- he can do it with the declaration {\tt REMIND}.\ttindex{REMIND} Thus
- {\tt remind v1...vn;} removes the index flags from the variables {\tt V1}
- through {\tt Vn}. However, these variables remain vectors in the system.
- \subsection{G Operator for Gamma Matrices}\index{Dirac $\gamma$ matrix}
- \ttindex{G}
- Syntax:
- \begin{verbatim}
- G(ID:identifier[,EXPRN:vector_expression])
- :gamma_matrix_expression.
- \end{verbatim}
- {\tt G} is an n-ary operator used to denote a product of $\gamma$ matrices
- contracted with Lorentz four-vectors. Gamma matrices are associated with
- fermion lines in a Feynman diagram. If more than one such line occurs,
- then a different set of $\gamma$ matrices (operating in independent spin
- spaces) is required to represent each line. To facilitate this, the first
- argument of {\tt G} is a line identification identifier (not a number)
- used to distinguish different lines.
- Thus
- \begin{verbatim}
- g(l1,p) * g(l2,q)
- \end{verbatim}
- denotes the product of {\tt $\gamma$.p} associated with a fermion line
- identified as {\tt L1}, and {\tt $\gamma$.q} associated with another line
- identified as {\tt L2} and where {\tt p} and {\tt q} are Lorentz
- four-vectors. A product of $\gamma$ matrices associated with the same
- line may be written in a contracted form.
- Thus
- \begin{verbatim}
- g(l1,p1,p2,...,p3) = g(l1,p1)*g(l1,p2)*...*g(l1,p3) .
- \end{verbatim}
- The vector {\tt A} is reserved in arguments of G to denote the special
- $\gamma$ matrix $\gamma^{5}$. Thus
- \begin{quote}
- \begin{tabbing}
- \ \ \ \ \ {\tt g(l,a)}\hspace{0.2in} \= =\ \ \ $\gamma^{5}$ \hspace{0.5in}
- \= associated with the line {\tt L} \\[0.1in]
- \ \ \ \ \ {\tt g(l,p,a)} \> =\ \ \ $\gamma$.p $\times \gamma^{5}$ \>
- associated with the line {\tt L}.
- \end{tabbing}
- \end{quote}
- $\gamma^{\mu}$ (associated with the line {\tt L}) may be written as
- {\tt g(l,u)}, with {\tt U} flagged as an index if contraction over {\tt U}
- is required.
- The notation of Bjorken and Drell is assumed in all operations involving
- $\gamma$ matrices.
- \subsection{EPS Operator}\ttindex{EPS}
- Syntax:
- \begin{verbatim}
- EPS(EXPRN1:vector_expression,...,EXPRN4:vector_exp)
- :vector_exp.
- \end{verbatim}
- The operator {\tt EPS} has four arguments, and is used only to denote the
- completely antisymmetric tensor of order 4 and its contraction with Lorentz
- four-vectors. Thus
- \[ \epsilon_{i j k l} = \left\{ \begin{array}{cl}
- +1 & \mbox{if $i,j,k,l$ is an even permutation
- of 0,1,2,3} \\
- -1 & \mbox{if an odd permutation} \\
- 0 & \mbox{otherwise}
- \end{array}
- \right. \]
- A contraction of the form $\epsilon_{i j \mu \nu}p_{\mu}q_{\nu}$ may be
- written as {\tt eps(i,j,p,q)}, with {\tt I} and {\tt J} flagged as indices,
- and so on.
- \section{Vector Variables}
- Apart from the line identification identifier in the {\tt G} operator, all
- other arguments of the operators in this section are vectors. Variables
- used as such must be declared so by the type declaration {\tt VECTOR},
- \ttindex{VECTOR} for example:
- \begin{verbatim}
- vector p1,p2;
- \end{verbatim}
- declares {\tt P1} and {\tt P2} to be vectors. Variables declared as
- indices or given a mass\ttindex{MASS} are automatically declared
- vector by these declarations.
- \section{Additional Expression Types}
- Two additional expression types are necessary for high energy
- calculations, namely
- \subsection{Vector Expressions}\index{High energy vector expression}
- These follow the normal rules of vector combination. Thus the product of a
- scalar or numerical expression and a vector expression is a vector, as are
- the sum and difference of vector expressions. If these rules are not
- followed, error messages are printed. Furthermore, if the system finds an
- undeclared variable where it expects a vector variable, it will ask the
- user in interactive mode whether to make that variable a vector or not. In
- batch mode, the declaration will be made automatically and the user
- informed of this by a message.
- {\tt Examples:}
- Assuming {\tt P} and {\tt Q} have been declared vectors, the following are
- vector expressions
- \begin{verbatim}
- p
- 2*q/3
- 2*x*y*p - p.q*q/(3*q.q)
- \end{verbatim}
- whereas {\tt p*q} and {\tt p/q} are not.
- \subsection{Dirac Expressions}
- These denote those expressions which involve $\gamma$ matrices. A $\gamma$
- matrix is implicitly a 4 $\times$ 4 matrix, and so the product, sum and
- difference of such expressions, or the product of a scalar and Dirac
- expression is again a Dirac expression. There are no Dirac variables in
- the system, so whenever a scalar variable appears in a Dirac expression
- without an associated $\gamma$ matrix expression, an implicit unit 4
- by 4 matrix is assumed. For example, {\tt g(l,p) + m} denotes {\tt
- g(l,p) + m*<unit 4 by 4 matrix>}. Multiplication of Dirac
- expressions, as for matrix expressions, is of course non-commutative.
- \section{Trace Calculations}\index{High energy trace}
- When a Dirac expression is evaluated, the system computes one quarter of
- the trace of each $\gamma$ matrix product in the expansion of the expression.
- One quarter of each trace is taken in order to avoid confusion between the
- trace of the scalar {\tt M}, say, and {\tt M} representing {\tt M * <unit
- 4 by 4 matrix>}. Contraction over indices occurring in such expressions is
- also performed. If an unmatched index is found in such an expression, an
- error occurs.
- The algorithms used for trace calculations are the best available at the
- time this system was produced. For example, in addition to the algorithm
- developed by Chisholm for contracting indices in products of traces,
- {\REDUCE} uses the elegant algorithm of Kahane for contracting indices in
- $\gamma$ matrix products. These algorithms are described in Chisholm, J. S.
- R., Il Nuovo Cimento X, 30, 426 (1963) and Kahane, J., Journal Math.
- Phys. 9, 1732 (1968).
- It is possible to prevent the trace calculation over any line identifier
- by the declaration {\tt NOSPUR}.\ttindex{NOSPUR} For example,
- \begin{verbatim}
- nospur l1,l2;
- \end{verbatim}
- will mean that no traces are taken of $\gamma$ matrix terms involving the line
- numbers {\tt L1} and {\tt L2}. However, in some calculations involving
- more than one line, a catastrophic error
- \begin{verbatim}
- This NOSPUR option not implemented
- \end{verbatim}
- can occur (for the reason stated!) If you encounter this error, please let
- us know!
- A trace of a $\gamma$ matrix expression involving a line identifier which has
- been declared {\tt NOSPUR} may be later taken by making the declaration
- {\tt SPUR}.\ttindex{SPUR}
- See also the CVIT package for an alternative
- mechanism\extendedmanual{ (chapter~\ref{CVIT})}.
- \section{Mass Declarations}\ttindex{MASS}
- It is often necessary to put a particle ``on the mass shell'' in a
- calculation. This can, of course, be accomplished with a {\tt LET}
- command such as
- \begin{verbatim}
- let p.p= m^2;
- \end{verbatim}
- but an alternative method is provided by two commands {\tt MASS} and
- {\tt MSHELL}.\ttindex{MSHELL}
- {\tt MASS} takes a list of equations of the form:
- \begin{verbatim}
- <vector variable> = <scalar variable>
- \end{verbatim}
- for example,
- \begin{verbatim}
- mass p1=m, q1=mu;
- \end{verbatim}
- The only effect of this command is to associate the relevant scalar
- variable as a mass with the corresponding vector. If we now say
- \begin{verbatim}
- mshell <vector variable>,...,<vector variable>;
- \end{verbatim}
- and a mass has been associated with these arguments, a substitution of the
- form
- \begin{verbatim}
- <vector variable>.<vector variable> = <mass>^2
- \end{verbatim}
- is set up. An error results if the variable has no preassigned mass.
- \section{Example}
- We give here as an example of a simple calculation in high energy physics
- the computation of the Compton scattering cross-section as given in
- Bjorken and Drell Eqs. (7.72) through (7.74). We wish to compute the trace of
- $$\left. \alpha^2\over2 \right. \left({k^\prime\over k}\right)^2
- \left({\gamma.p_f+m\over2m}\right)\left({\gamma.e^\prime \gamma.e
- \gamma.k_i\over2k.p_i} + {\gamma.e\gamma.e^\prime
- \gamma.k_f\over2k^\prime.p_i}\right)
- \left({\gamma.p_i+m\over2m}\right)$$
- $$
- \left({\gamma.k_i\gamma.e\gamma.e^\prime\over2k.p_i} +
- {\gamma.k_f\gamma.e^\prime\gamma.e\over2k^\prime.p_i}
- \right)
- $$
- where $k_i$ and $k_f$ are the four-momenta of incoming and outgoing photons
- (with polarization vectors $e$ and $e^\prime$ and laboratory energies
- $k$ and $k^\prime$
- respectively) and $p_i$, $p_f$ are incident and final electron four-momenta.
- Omitting therefore an overall factor
- ${\alpha^2\over2m^2}\left({k^\prime\over k}\right)^2$ we need to find
- one quarter of the trace of
- $${
- \left( \gamma.p_f + m\right)
- \left({\gamma.e^\prime \gamma.e\gamma.k_i\over2k.p_i} +
- {\gamma.e\gamma.e^\prime \gamma.k_f\over 2k^\prime.p_i}\right) \left(
- \gamma.p_i + m\right)}$$
- $${
- \left({\gamma.k_i\gamma.e\gamma.e^\prime\over 2k.p_i} +
- {\gamma.k_f\gamma.e^\prime \gamma.e\over2k^\prime.p_i}\right) }$$
- A straightforward REDUCE program for this, with appropriate substitutions
- (using {\tt P1} for $p_i$, {\tt PF} for $p_f$, {\tt KI}
- for $k_i$ and {\tt KF} for $k_f$) is
- \begin{verbatim}
- on div; % this gives output in same form as Bjorken and Drell.
- mass ki= 0, kf= 0, p1= m, pf= m; vector e,ep;
- % if e is used as a vector, it loses its scalar identity as
- % the base of natural logarithms.
- mshell ki,kf,p1,pf;
- let p1.e= 0, p1.ep= 0, p1.pf= m^2+ki.kf, p1.ki= m*k,p1.kf=
- m*kp, pf.e= -kf.e, pf.ep= ki.ep, pf.ki= m*kp, pf.kf=
- m*k, ki.e= 0, ki.kf= m*(k-kp), kf.ep= 0, e.e= -1,
- ep.ep=-1;
- for all p let gp(p)= g(l,p)+m;
- comment this is just to save us a lot of writing;
- gp(pf)*(g(l,ep,e,ki)/(2*ki.p1) + g(l,e,ep,kf)/(2*kf.p1))
- * gp(p1)*(g(l,ki,e,ep)/(2*ki.p1) + g(l,kf,ep,e)/
- (2*kf.p1))$
- write "The Compton cxn is",ws;
- \end{verbatim}
- (We use {\tt P1} instead of {\tt PI} in the above to avoid confusion with
- the reserved variable {\tt PI}).
- This program will print the following result
- \begin{verbatim}
- (-1) (-1) 2
- The Compton cxn is 1/2*K*KP + 1/2*K *KP + 2*E.EP - 1
- \end{verbatim}
- \section{Extensions to More Than Four Dimensions}
- In our discussion so far, we have assumed that we are working in the
- normal four dimensions of QED calculations. However, in most cases, the
- programs will also work in an arbitrary number of dimensions. The command
- \ttindex{VECDIM}
- \begin{verbatim}
- vecdim <expression>;
- \end{verbatim}
- sets the appropriate dimension. The dimension can be symbolic as well as
- numerical. Users should note however, that the {\tt EPS} operator and the
- $\gamma_{5}$ symbol ({\tt A}) are not properly defined in other than four
- dimensions and will lead to an error if used.
|