hephys.tex 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369
  1. \section{High Energy Physics}
  2. \begin{Introduction}{HEPHYS}
  3. The High-energy Physics package is historic for REDUCE, since REDUCE
  4. originated as a program to aid in computations with Dirac expressions.
  5. The commutation algebra of the gamma matrices is independent of their
  6. representation, and is a natural subject for symbolic mathematics. Dirac
  7. theory is applied to \IFTEX{$\beta$}{beta} decay and the computation of
  8. cross-sections and scattering. The high-energy physics operators are
  9. available in the REDUCE main program, rather than as a module which must
  10. be loaded.
  11. \end{Introduction}
  12. \begin{Operator}[HE-dot]{.}
  13. The . operator is used to denote the scalar product of two Lorentz
  14. four-vectors.
  15. \begin{Syntax}
  16. \meta{vector} \name{.} \meta{vector}
  17. \end{Syntax}
  18. \meta{vector} must be an identifier declared to be of type \name{vector} to have
  19. the scalar product definition. When applied to arguments that are not
  20. vectors, the \nameref{cons} operator is used,
  21. whose symbol is also ``dot.''
  22. \begin{Examples}
  23. vector aa,bb,cc; \\
  24. let aa.bb = 0; \\
  25. aa.bb; & 0 \\
  26. aa.cc; & AA.CC \\
  27. q := aa.cc; & Q := AA.CC \\
  28. q; & AA.CC
  29. \end{Examples}
  30. \begin{Comments}
  31. Since vectors are special high-energy physics entities that do not contain
  32. values, the . product will not return a true scalar product. You can
  33. assign a scalar identifier to the result of a . operation, or assign a .
  34. operation to have the value of the scalar you supply, as shown above. Note
  35. that the result of a . operation is a scalar, not a vector.
  36. The metric tensor g(u,v) can be represented by \name{u.v}. If contraction
  37. over the indices is required, \name{u} and \name{v} should be declared to
  38. be of type \nameref{index}.
  39. The dot operator has the highest precedence of the infix operators, so
  40. expressions involving . and other operators have the scalar product
  41. evaluated first before other operations are done.
  42. \end{Comments}
  43. \end{Operator}
  44. \begin{Operator}{EPS}
  45. The \name{eps} operator denotes the completely antisymmetric tensor of
  46. order 4 and its contraction with Lorentz four-vectors, as used in
  47. high-energy physics calculations.
  48. \begin{Syntax}
  49. \name{eps}\(\meta{vector-expr},\meta{vector-expr},\meta{vector-expr},
  50. \meta{vector-expr}\)
  51. \end{Syntax}
  52. \meta{vector-expr} must be a valid vector expression, and may be an index.
  53. \begin{Examples}
  54. vector g0,g1,g2,g3; \\
  55. eps(g1,g0,g2,g3); & - EPS(G0,G1,G2,G3); \\
  56. eps(g1,g2,g0,g3); & EPS(G0,G1,G2,G3); \\
  57. eps(g1,g2,g3,g1); & 0
  58. \end{Examples}
  59. \begin{Comments}
  60. Vector identifiers are ordered alphabetically by REDUCE. When an odd number
  61. of transpositions is required to restore the canonical order to the four
  62. arguments of \name{eps}, the term is ordered and carries a minus sign. When an
  63. even number of transpositions is required, the term is returned ordered and
  64. positive. When one of the arguments is repeated, the value 0 is returned.
  65. A contraction of the form
  66. \IFTEX{$\epsilon_{ij\mu\nu}p_{\mu}q_{\nu}$}{eps(_i j mu nu p_mu q_nu)}
  67. is represented by \name{eps(i,j,p,q)} when \name{i} and \name{j} have been
  68. declared to be of type \nameref{index}.
  69. \end{Comments}
  70. \end{Operator}
  71. \begin{Operator}{G}
  72. \name{g} is an n-ary operator used to denote a product of gamma matrices
  73. contracted with Lorentz four-vectors, in high-energy physics.
  74. \begin{Syntax}
  75. \name{g}\(\meta{identifier},\meta{vector-expr}
  76. \{,\meta{vector-expr}\}\optional\)
  77. \end{Syntax}
  78. \meta{identifier} is a scalar identifier representing a fermion line
  79. identifier, \meta{vector-expr} can be any valid vector expression,
  80. representing a vector or a gamma matrix.
  81. \begin{Examples}
  82. vector aa,bb,cc; \\
  83. vector a; \\
  84. g(line1,aa,bb); & AA.BB \\
  85. g(line2,aa,a); & 0 \\
  86. g(id,aa,bb,cc); & 0 \\
  87. g(li1,aa,bb) + k; & AA.BB + K \\
  88. let aa.bb = m*k; \\
  89. g(ln1,aa)*g(ln1,bb); & K*M \\
  90. g(ln1,aa)*g(ln2,bb); & 0
  91. \end{Examples}
  92. \begin{Comments}
  93. The vector \name{A} is reserved in arguments of \name{g} to denote the
  94. special gamma matrix \IFTEX{$\gamma_{5}$}{gamma_5}. It must be declared to
  95. be a vector before you use it.
  96. Gamma matrix expressions are associated with fermion lines in a Feynman
  97. diagram. If more than one line occurs in an expression, the gamma
  98. matrices involved are separate (operating in independent spin space), as
  99. shown in the last two example lines above. A product of gamma matrices
  100. associated with a single line can be entered either as a single \name{g}
  101. command with several vector arguments, or as products of separate \name{g}
  102. commands each with a single argument.
  103. While the product of vectors is not defined, the product, sum and
  104. difference of several gamma expressions are defined, as is the product of
  105. a gamma expression with a scalar. If an expression involving gamma
  106. matrices includes a scalar, the scalar is treated as if it were the
  107. product of itself with a unit \IFTEX{$4 \times 4$}{4 x 4} matrix.
  108. Dirac expressions are evaluated by computing the trace of the expression
  109. using the commutation algebra of gamma matrices. The algorithms used are
  110. described in articles by J. S. R. Chisholm in \meta{Il Nuovo Cimento X,} Vol.
  111. 30, p. 426, 1963, and J. Kahane, \meta{Journal of Mathematical Physics},
  112. Vol. 9, p. 1732, 1968. The trace is then divided by 4 to distinguish
  113. between the trace of a scalar and the trace of an expression that is the
  114. product of a scalar with a unit \IFTEX{$4 \times 4$}{4 x 4} matrix.
  115. Trace calculations may be prevented over any line identifier by declaring it
  116. to be \nameref{nospur}. If it is later desired to evaluate these traces,
  117. the declaration can be undone with the \nameref{spur} declaration.
  118. The notation of Bjorken and Drell, \meta{Relativistic Quantum Mechanics,}
  119. 1964, is assumed in all operations involving gamma matrices. For an
  120. example of the use of \name{g} in a calculation, see the \meta{REDUCE
  121. User's Manual}.
  122. \end{Comments}
  123. \end{Operator}
  124. \begin{Declaration}{INDEX}
  125. The declaration \name{index} flags a four-vector as an index for subsequent
  126. high-energy physics calculations.
  127. \begin{Syntax}
  128. \name{index} \meta{vector-id}\{,\meta{vector-id}\}\optional
  129. \end{Syntax}
  130. \meta{vector-id} must have been declared of type \name{vector}.
  131. \begin{Examples}
  132. vector aa,bb,cc; \\
  133. index uu; \\
  134. let aa.bb = 0; \\
  135. (aa.uu)*(bb.uu); & 0 \\
  136. (aa.uu)*(cc.uu); & AA.CC
  137. \end{Examples}
  138. \begin{Comments}
  139. Index variables are used to represent contraction over components of
  140. vectors when scalar products are taken by the . operator, as well as
  141. indicating contraction for the \nameref{eps} operator or metric tensor.
  142. The special status of a vector as an index can be revoked with the
  143. declaration \nameref{remind}. The object remains a vector, however.
  144. \end{Comments}
  145. \end{Declaration}
  146. \begin{Command}{MASS}
  147. The \name{mass} command associates a scalar variable as a mass with
  148. the corresponding vector variable, in high-energy physics calculations.
  149. \begin{Syntax}
  150. \name{mass} \meta{vector-var}\name{=}\meta{scalar-var}
  151. \{,\meta{vector-var}\name{=}\meta{scalar-var}\}\optional
  152. \end{Syntax}
  153. \meta{vector-var} can be a declared vector variable; \name{mass} will declare
  154. it to be of type \name{vector} if it is not. This may override an existing
  155. matrix variable by that name. \meta{scalar-var} must be a scalar variable.
  156. \begin{Examples}
  157. vector bb,cc; \\
  158. mass cc=m; \\
  159. mshell cc; \\
  160. cc.cc; & M^{2}
  161. \end{Examples}
  162. \begin{Comments}
  163. Once a mass has been attached to a vector with a \name{mass} declaration,
  164. the \nameref{mshell} declaration puts the associated particle ``on the mass
  165. shell.'' Subsequent scalar (.) products of the vector with itself will be
  166. replaced by the square of the mass expression.
  167. \end{Comments}
  168. \end{Command}
  169. \begin{Command}{MSHELL}
  170. The \name{mshell} command puts particles on the mass shell in high-energy
  171. physics calculations.
  172. \begin{Syntax}
  173. \name{mshell} \meta{vector-var}\{,\meta{vector-var}\}\optional
  174. \end{Syntax}
  175. \meta{vector-var} must have had a mass attached to it by a \nameref{mass}
  176. declaration.
  177. \begin{Examples}
  178. vector v1,v2; \\
  179. mass v1=m,v2=q; \\
  180. mshell v1; \\
  181. v1.v1; & M^{2} \\
  182. v2.v2; & V2.V2 \\
  183. mshell v2; \\
  184. v1.v1*v2.v2; & M^{2}*Q^{2}
  185. \end{Examples}
  186. \begin{Comments}
  187. Even though a mass is attached to a vector variable representing a
  188. particle, the replacement does not take place until the \name{mshell}
  189. declaration is given for that vector variable.
  190. \end{Comments}
  191. \end{Command}
  192. \begin{Declaration}{NOSPUR}
  193. The \name{nospur} declaration prevents the trace calculation over the given
  194. line identifiers in high-energy physics calculations.
  195. \begin{Syntax}
  196. \name{nospur} \meta{line-id}\{,\meta{line-id}\}\optional
  197. \end{Syntax}
  198. \meta{line-id} is a scalar identifier that will be used as a line identifier.
  199. \begin{Examples}
  200. vector a1,b1,c1; \\
  201. g(line1,a1,b1)*g(line2,b1,c1); & A1.B1*B1.C1 \\
  202. nospur line2; \\
  203. g(line1,a1,b1)*g(line2,b1,c1); & A1.B1*G(LINE2,B1,C1)
  204. \end{Examples}
  205. \begin{Comments}
  206. Nospur declarations can be removed by making the declaration \nameref{spur}.
  207. \end{Comments}
  208. \end{Declaration}
  209. \begin{Declaration}{REMIND}
  210. The \name{remind} declaration removes the special status of its arguments
  211. as indices, which was set in the \nameref{index} declaration, in
  212. high-energy physics calculations.
  213. \begin{Syntax}
  214. \name{remind} \meta{identifier}\{,\meta{identifier}\}\optional
  215. \end{Syntax}
  216. \meta{identifier} must have been declared to be of type \nameref{index}.
  217. \end{Declaration}
  218. \begin{Declaration}{SPUR}
  219. The \name{spur} declaration removes the special exemption from trace
  220. calculations that was declared by \nameref{nospur}, in high-energy physics
  221. calculations.
  222. \begin{Syntax}
  223. \name{spur} \meta{line-id}\{,\meta{line-id}\}\optional
  224. \end{Syntax}
  225. \meta{line-id} must be a line-identifier that has previously been declared
  226. \name{nospur}.
  227. \end{Declaration}
  228. \begin{Command}{VECDIM}
  229. The command \name{vecdim} changes the vector dimension from 4 to an arbitrary
  230. integer or symbol. Used in high-energy physics calculations.
  231. \begin{Syntax}
  232. \name{vecdim} \meta{dimension}
  233. \end{Syntax}
  234. \meta{dimension} must be either an integer or a valid scalar identifier that
  235. does not have a floating-point value.
  236. \begin{Comments}
  237. The \nameref{eps} operator and the \IFTEX{$\gamma_{5}$}{gamma_5}
  238. symbol (\name{A}) are not properly defined in anything except four
  239. dimensions and will print an error message if you use them that way. The
  240. other high-energy physics operators should work without problem.
  241. \end{Comments}
  242. \end{Command}
  243. \begin{Declaration}{VECTOR}
  244. The \name{vector} declaration declares that its arguments are of type \name{vector}.
  245. \begin{Syntax}
  246. \name{vector} \meta{identifier}\{,\meta{identifier}\}\optional
  247. \end{Syntax}
  248. \meta{identifier} must be a valid REDUCE identifier. It may have already been
  249. used for a matrix, array, operator or scalar variable. After an identifier
  250. has been declared to be a vector, it may not be used as a scalar variable.
  251. \begin{Comments}
  252. Vectors are special entities for high-energy physics calculations. You
  253. cannot put values into their coordinates; they do not have coordinates.
  254. They are legal arguments for the high-energy physics operators
  255. \nameref{eps}, \nameref{g} and \name{.} (dot). Vector variables are
  256. used to represent gamma matrices and gamma matrices contracted with Lorentz
  257. 4-vectors, since there are no Dirac variables per se in the system.
  258. Vectors do follow the usual vector rules for arithmetic operations:
  259. \name{+} and \name{-} operate upon two or more vectors, producing a
  260. vector; \name{*} and \name{/} cannot be used between vectors; the
  261. scalar product is represented by the . operator; and the product of a
  262. scalar and vector expression is well defined, and is a vector.
  263. You can represent components of vectors by including representations of unit
  264. vectors in your system. For instance, letting \name{E0} represent the unit
  265. vector (1,0,0,0), the command
  266. \name{V1.E0 := 0;}
  267. would set up the substitution of zero for the first component of the vector
  268. \name{V1}.
  269. Identifiers that are declared by the \name{index} and \name{mass} declarations are
  270. automatically declared to be vectors.
  271. The following errors can occur in calculations using the high energy
  272. physics package:
  273. \name{A represents only gamma5 in vector expressions}
  274. \begin{quote}
  275. You have tried to use A in some way other than gamma5 in a
  276. high-energy physics expression.
  277. \end{quote}
  278. \name{Gamma5 not allowed unless vecdim is 4}
  279. \begin{quote}
  280. You have used \IFTEX{$\gamma_{5}$}{gamma_5} in a high-energy physics
  281. computation involving a vector dimension other than 4.
  282. \end{quote}
  283. \meta{ID} \name{has no mass}
  284. \begin{quote}
  285. One of the arguments to \nameref{mshell} has had no mass assigned to it, in
  286. high-energy physics calculations.
  287. \end{quote}
  288. \name{Missing arguments for G operator}
  289. \begin{quote}
  290. A line symbol is missing in a gamma matrix expression in high-energy physics
  291. calculations.
  292. \end{quote}
  293. \name{Unmatched index} \meta{list}
  294. \begin{quote}
  295. The parser has found unmatched indices during the evaluation of a
  296. gamma matrix expression in high-energy physics calculations.
  297. \end{quote}
  298. \end{Comments}
  299. \end{Declaration}