Artifact 4a5e0985f293d42e147f7b77483132e2f79e63d77108ec659061dfdcfd3163a9:
- Executable file
r36/help/HEPHYS.TEX
— part of check-in
[f2fda60abd]
at
2011-09-02 18:13:33
on branch master
— Some historical releases purely for archival purposes
git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1375 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 13785) [annotate] [blame] [check-ins using] [more...]
- Executable file
r37/doc/help/hephys.tex
— part of check-in
[f2fda60abd]
at
2011-09-02 18:13:33
on branch master
— Some historical releases purely for archival purposes
git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1375 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 13785) [annotate] [blame] [check-ins using]
- Executable file
r38/doc/help/hephys.tex
— part of check-in
[f2fda60abd]
at
2011-09-02 18:13:33
on branch master
— Some historical releases purely for archival purposes
git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1375 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 13785) [annotate] [blame] [check-ins using]
\section{High Energy Physics} \begin{Introduction}{HEPHYS} The High-energy Physics package is historic for REDUCE, since REDUCE originated as a program to aid in computations with Dirac expressions. The commutation algebra of the gamma matrices is independent of their representation, and is a natural subject for symbolic mathematics. Dirac theory is applied to \IFTEX{$\beta$}{beta} decay and the computation of cross-sections and scattering. The high-energy physics operators are available in the REDUCE main program, rather than as a module which must be loaded. \end{Introduction} \begin{Operator}[HE-dot]{.} The . operator is used to denote the scalar product of two Lorentz four-vectors. \begin{Syntax} \meta{vector} \name{.} \meta{vector} \end{Syntax} \meta{vector} must be an identifier declared to be of type \name{vector} to have the scalar product definition. When applied to arguments that are not vectors, the \nameref{cons} operator is used, whose symbol is also ``dot.'' \begin{Examples} vector aa,bb,cc; \\ let aa.bb = 0; \\ aa.bb; & 0 \\ aa.cc; & AA.CC \\ q := aa.cc; & Q := AA.CC \\ q; & AA.CC \end{Examples} \begin{Comments} Since vectors are special high-energy physics entities that do not contain values, the . product will not return a true scalar product. You can assign a scalar identifier to the result of a . operation, or assign a . operation to have the value of the scalar you supply, as shown above. Note that the result of a . operation is a scalar, not a vector. The metric tensor g(u,v) can be represented by \name{u.v}. If contraction over the indices is required, \name{u} and \name{v} should be declared to be of type \nameref{index}. The dot operator has the highest precedence of the infix operators, so expressions involving . and other operators have the scalar product evaluated first before other operations are done. \end{Comments} \end{Operator} \begin{Operator}{EPS} The \name{eps} operator denotes the completely antisymmetric tensor of order 4 and its contraction with Lorentz four-vectors, as used in high-energy physics calculations. \begin{Syntax} \name{eps}\(\meta{vector-expr},\meta{vector-expr},\meta{vector-expr}, \meta{vector-expr}\) \end{Syntax} \meta{vector-expr} must be a valid vector expression, and may be an index. \begin{Examples} vector g0,g1,g2,g3; \\ eps(g1,g0,g2,g3); & - EPS(G0,G1,G2,G3); \\ eps(g1,g2,g0,g3); & EPS(G0,G1,G2,G3); \\ eps(g1,g2,g3,g1); & 0 \end{Examples} \begin{Comments} Vector identifiers are ordered alphabetically by REDUCE. When an odd number of transpositions is required to restore the canonical order to the four arguments of \name{eps}, the term is ordered and carries a minus sign. When an even number of transpositions is required, the term is returned ordered and positive. When one of the arguments is repeated, the value 0 is returned. A contraction of the form \IFTEX{$\epsilon_{ij\mu\nu}p_{\mu}q_{\nu}$}{eps(_i j mu nu p_mu q_nu)} is represented by \name{eps(i,j,p,q)} when \name{i} and \name{j} have been declared to be of type \nameref{index}. \end{Comments} \end{Operator} \begin{Operator}{G} \name{g} is an n-ary operator used to denote a product of gamma matrices contracted with Lorentz four-vectors, in high-energy physics. \begin{Syntax} \name{g}\(\meta{identifier},\meta{vector-expr} \{,\meta{vector-expr}\}\optional\) \end{Syntax} \meta{identifier} is a scalar identifier representing a fermion line identifier, \meta{vector-expr} can be any valid vector expression, representing a vector or a gamma matrix. \begin{Examples} vector aa,bb,cc; \\ vector a; \\ g(line1,aa,bb); & AA.BB \\ g(line2,aa,a); & 0 \\ g(id,aa,bb,cc); & 0 \\ g(li1,aa,bb) + k; & AA.BB + K \\ let aa.bb = m*k; \\ g(ln1,aa)*g(ln1,bb); & K*M \\ g(ln1,aa)*g(ln2,bb); & 0 \end{Examples} \begin{Comments} The vector \name{A} is reserved in arguments of \name{g} to denote the special gamma matrix \IFTEX{$\gamma_{5}$}{gamma_5}. It must be declared to be a vector before you use it. Gamma matrix expressions are associated with fermion lines in a Feynman diagram. If more than one line occurs in an expression, the gamma matrices involved are separate (operating in independent spin space), as shown in the last two example lines above. A product of gamma matrices associated with a single line can be entered either as a single \name{g} command with several vector arguments, or as products of separate \name{g} commands each with a single argument. While the product of vectors is not defined, the product, sum and difference of several gamma expressions are defined, as is the product of a gamma expression with a scalar. If an expression involving gamma matrices includes a scalar, the scalar is treated as if it were the product of itself with a unit \IFTEX{$4 \times 4$}{4 x 4} matrix. Dirac expressions are evaluated by computing the trace of the expression using the commutation algebra of gamma matrices. The algorithms used are described in articles by J. S. R. Chisholm in \meta{Il Nuovo Cimento X,} Vol. 30, p. 426, 1963, and J. Kahane, \meta{Journal of Mathematical Physics}, Vol. 9, p. 1732, 1968. The trace is then divided by 4 to distinguish between the trace of a scalar and the trace of an expression that is the product of a scalar with a unit \IFTEX{$4 \times 4$}{4 x 4} matrix. Trace calculations may be prevented over any line identifier by declaring it to be \nameref{nospur}. If it is later desired to evaluate these traces, the declaration can be undone with the \nameref{spur} declaration. The notation of Bjorken and Drell, \meta{Relativistic Quantum Mechanics,} 1964, is assumed in all operations involving gamma matrices. For an example of the use of \name{g} in a calculation, see the \meta{REDUCE User's Manual}. \end{Comments} \end{Operator} \begin{Declaration}{INDEX} The declaration \name{index} flags a four-vector as an index for subsequent high-energy physics calculations. \begin{Syntax} \name{index} \meta{vector-id}\{,\meta{vector-id}\}\optional \end{Syntax} \meta{vector-id} must have been declared of type \name{vector}. \begin{Examples} vector aa,bb,cc; \\ index uu; \\ let aa.bb = 0; \\ (aa.uu)*(bb.uu); & 0 \\ (aa.uu)*(cc.uu); & AA.CC \end{Examples} \begin{Comments} Index variables are used to represent contraction over components of vectors when scalar products are taken by the . operator, as well as indicating contraction for the \nameref{eps} operator or metric tensor. The special status of a vector as an index can be revoked with the declaration \nameref{remind}. The object remains a vector, however. \end{Comments} \end{Declaration} \begin{Command}{MASS} The \name{mass} command associates a scalar variable as a mass with the corresponding vector variable, in high-energy physics calculations. \begin{Syntax} \name{mass} \meta{vector-var}\name{=}\meta{scalar-var} \{,\meta{vector-var}\name{=}\meta{scalar-var}\}\optional \end{Syntax} \meta{vector-var} can be a declared vector variable; \name{mass} will declare it to be of type \name{vector} if it is not. This may override an existing matrix variable by that name. \meta{scalar-var} must be a scalar variable. \begin{Examples} vector bb,cc; \\ mass cc=m; \\ mshell cc; \\ cc.cc; & M^{2} \end{Examples} \begin{Comments} Once a mass has been attached to a vector with a \name{mass} declaration, the \nameref{mshell} declaration puts the associated particle ``on the mass shell.'' Subsequent scalar (.) products of the vector with itself will be replaced by the square of the mass expression. \end{Comments} \end{Command} \begin{Command}{MSHELL} The \name{mshell} command puts particles on the mass shell in high-energy physics calculations. \begin{Syntax} \name{mshell} \meta{vector-var}\{,\meta{vector-var}\}\optional \end{Syntax} \meta{vector-var} must have had a mass attached to it by a \nameref{mass} declaration. \begin{Examples} vector v1,v2; \\ mass v1=m,v2=q; \\ mshell v1; \\ v1.v1; & M^{2} \\ v2.v2; & V2.V2 \\ mshell v2; \\ v1.v1*v2.v2; & M^{2}*Q^{2} \end{Examples} \begin{Comments} Even though a mass is attached to a vector variable representing a particle, the replacement does not take place until the \name{mshell} declaration is given for that vector variable. \end{Comments} \end{Command} \begin{Declaration}{NOSPUR} The \name{nospur} declaration prevents the trace calculation over the given line identifiers in high-energy physics calculations. \begin{Syntax} \name{nospur} \meta{line-id}\{,\meta{line-id}\}\optional \end{Syntax} \meta{line-id} is a scalar identifier that will be used as a line identifier. \begin{Examples} vector a1,b1,c1; \\ g(line1,a1,b1)*g(line2,b1,c1); & A1.B1*B1.C1 \\ nospur line2; \\ g(line1,a1,b1)*g(line2,b1,c1); & A1.B1*G(LINE2,B1,C1) \end{Examples} \begin{Comments} Nospur declarations can be removed by making the declaration \nameref{spur}. \end{Comments} \end{Declaration} \begin{Declaration}{REMIND} The \name{remind} declaration removes the special status of its arguments as indices, which was set in the \nameref{index} declaration, in high-energy physics calculations. \begin{Syntax} \name{remind} \meta{identifier}\{,\meta{identifier}\}\optional \end{Syntax} \meta{identifier} must have been declared to be of type \nameref{index}. \end{Declaration} \begin{Declaration}{SPUR} The \name{spur} declaration removes the special exemption from trace calculations that was declared by \nameref{nospur}, in high-energy physics calculations. \begin{Syntax} \name{spur} \meta{line-id}\{,\meta{line-id}\}\optional \end{Syntax} \meta{line-id} must be a line-identifier that has previously been declared \name{nospur}. \end{Declaration} \begin{Command}{VECDIM} The command \name{vecdim} changes the vector dimension from 4 to an arbitrary integer or symbol. Used in high-energy physics calculations. \begin{Syntax} \name{vecdim} \meta{dimension} \end{Syntax} \meta{dimension} must be either an integer or a valid scalar identifier that does not have a floating-point value. \begin{Comments} The \nameref{eps} operator and the \IFTEX{$\gamma_{5}$}{gamma_5} symbol (\name{A}) are not properly defined in anything except four dimensions and will print an error message if you use them that way. The other high-energy physics operators should work without problem. \end{Comments} \end{Command} \begin{Declaration}{VECTOR} The \name{vector} declaration declares that its arguments are of type \name{vector}. \begin{Syntax} \name{vector} \meta{identifier}\{,\meta{identifier}\}\optional \end{Syntax} \meta{identifier} must be a valid REDUCE identifier. It may have already been used for a matrix, array, operator or scalar variable. After an identifier has been declared to be a vector, it may not be used as a scalar variable. \begin{Comments} Vectors are special entities for high-energy physics calculations. You cannot put values into their coordinates; they do not have coordinates. They are legal arguments for the high-energy physics operators \nameref{eps}, \nameref{g} and \name{.} (dot). Vector variables are used to represent gamma matrices and gamma matrices contracted with Lorentz 4-vectors, since there are no Dirac variables per se in the system. Vectors do follow the usual vector rules for arithmetic operations: \name{+} and \name{-} operate upon two or more vectors, producing a vector; \name{*} and \name{/} cannot be used between vectors; the scalar product is represented by the . operator; and the product of a scalar and vector expression is well defined, and is a vector. You can represent components of vectors by including representations of unit vectors in your system. For instance, letting \name{E0} represent the unit vector (1,0,0,0), the command \name{V1.E0 := 0;} would set up the substitution of zero for the first component of the vector \name{V1}. Identifiers that are declared by the \name{index} and \name{mass} declarations are automatically declared to be vectors. The following errors can occur in calculations using the high energy physics package: \name{A represents only gamma5 in vector expressions} \begin{quote} You have tried to use A in some way other than gamma5 in a high-energy physics expression. \end{quote} \name{Gamma5 not allowed unless vecdim is 4} \begin{quote} You have used \IFTEX{$\gamma_{5}$}{gamma_5} in a high-energy physics computation involving a vector dimension other than 4. \end{quote} \meta{ID} \name{has no mass} \begin{quote} One of the arguments to \nameref{mshell} has had no mass assigned to it, in high-energy physics calculations. \end{quote} \name{Missing arguments for G operator} \begin{quote} A line symbol is missing in a gamma matrix expression in high-energy physics calculations. \end{quote} \name{Unmatched index} \meta{list} \begin{quote} The parser has found unmatched indices during the evaluation of a gamma matrix expression in high-energy physics calculations. \end{quote} \end{Comments} \end{Declaration}