ColorMath—a package for color summed calculations in SU(N _{ c })
Authors
 First online:
 Received:
 Revised:
DOI: 10.1140/epjc/s1005201323104
Abstract
A Mathematica package for color summed calculations in QCD (SU(N _{ c })) is presented. Color contractions of any color amplitude appearing in QCD may be performed, and the package uses a syntax which is very similar to how color structure is written on paper. It also supports the definition of color vectors and bases, and special functions such as scalar products are defined for such color tensors.
1 Introduction
With the LHC follows an increased demand of exact calculations in QCD involving many color charged partons. Due to the nonabelian nature of QCD this poses a nontrivial computational problem.
This is the issue the Mathematica^{®} package ColorMath is set out to tackle. The main feature of ColorMath is thus the ability to automatically perform color summed calculations starting from a QCD color structure which is expressed using a syntax very similar to how the color structure would have been written on paper.
Each squared amplitude can in principle can be calculated like this. However, ColorMath also facilitates the usage of color vectors and bases and has special functions for the calculations of scalar products and gluon exchanges.
This paper, which is intended to be the main reference, is organized as follows: First a general introduction to the basic color building blocks is given in Sect. 2. In Sect. 3 the computational strategy is presented, whereas basic examples are given in Sect. 4, and the usage of vectors and their functions are presented in Sect. 5. In Sect. 6 some remarks concerning validation and scalability are made and in Sect. 7 conclusions are drawn.
2 QCD building blocks
Due to confinement, we never observe individual colors and it therefore suffices to calculate color summed/averaged quantities for making predictions in quantum chromodynamics. We may thus constrain ourselves to treat QCD amplitudes carrying a set of external indices with values that need never be specified, as they are always summed over in the end.
Along with the number of colors, Nc, and the trace of an SU(N _{ c }) generator squared, TR, the basic building blocks are as below. Note that o ^{{g1,g2,…,gk}} represents a trace over gluons with indices g1…gk, \(\operatorname {tr} [t^{g1}t^{g2}\cdots t^{gk}]\), and that t ^{{g1,g2,…,gk}q1} _{ q2} represent the q1,q2component in a trace over generators that has been cut open, (t ^{ g1} t ^{ g2}⋯t ^{ gk })^{ q1} _{ q2}. For convenience, also the totally symmetric “structure constants” d ^{{g1,g2,g3}} are defined. Note the Mathematica FullForm. ColorMath is built on pattern matching, and it is therefore essential that the expressions have the correct FullForm. In particular, Power may not be used instead of Superscript. To get the right FullForm it is recommended to use the function form, which is just a function returning the corresponding ColorMath object
Pictorial representation 
ColorMath 
Function form 
Mathematica FullForm 


δ ^{ q1} _{ q2} 
δ[q1, q2] 
Subscript[Superscript[∖[Delta], q1], q2] 

Δ ^{{g1,g2}} 
Δ[g1, g2] 
Superscript[∖[CapitalDelta], List[g1, g2]] 

f ^{{g1,g2,g3}} 
f[g1, g2, g3] 
Superscript[f, List[g1, g2, g3]] 

d ^{{g1,g2,g3}} 
d[g1, g2, g3] 
Superscript[d ,List[g1, g2, g3]] 

t ^{{g1,…,gk}q1} _{ q2} 
t[{g1,…, gk}, q1, q2] 
Subscript [Superscript[Superscript[t, List[g1,…, gk]], q1], q2] 

o ^{{g1,…,gk}} 
o[{g1,…, gk}] 
Superscript[o, List[g1, …, gk]] 
In this context we also remark that the color tensors defined in Table 1 are color scalars, i.e., they are invariant under SU(N _{ c }) transformations. This imposes no restriction for our purposes as, for any QCD amplitude, the overall color structure, including both incoming and outgoing particles, always is a color singlet. As the basic building blocks are invariant, each tensor built out of these objects, i.e., each tensor needed for color summed calculations in perturbative QCD is a actually a color scalar.
3 Basic computational strategy
Having defined all the color carrying objects, we turn to describing the basic strategy for carrying out calculations.
 (i)
Rewrite the triple gluon vertices using Eq. (8). This results in a color structure which is a sum of products of open and closed quarklines, connected to each other via repeated gluon indices.
 (ii)Contract all internal gluon indices using the Fierz or completeness relation(13)
 (iii)If present, remove Kronecker deltas (for quarks and gluons), and internal quark indices using(14)
 (iv)Use the tracelessness of the SU(N _{ c }) generators, and contract quark and gluon delta functions with repeated indices(15)
By applying these rules, any amplitude square and any interference term appearing in QCD can be calculated [6, 11]. To successfully square an arbitrary QCD amplitude using the above set of rules we see that steps (i)–(ii) have to be performed while keeping the relative order, i.e., by first applying rule (i) and then rule (ii). We also note that these rules increase the number of terms, whereas the rules (iii)–(iv) decrease the number of terms or keep it fixed. In order not to unnecessarily inflate an expression it may therefore be useful to apply the latter rules at any time during the computation. ColorMath utilizes this and tries to contract indices using (iii)–(iv) at any time, while rules (i)–(ii) are used only when needed, i.e., when the nonexpanding rules fail.
 (v)Two neighboring gluons attached to the same (closed or open) quarkline are contracted. In this case the result is simply \(c_{F} = T_{R} ( N_{c} ^{2}1)/ N_{c} \) times the color structure where the two involved gluons have been contracted,(16)
 (vi)Similarly, it is easy to show, using the Fierz identity, Eq. (13), that the contraction of two next to neighboring gluons results in only one term(17)
4 Basic calculations
The color contractions corresponding to the basic manipulations from Sect. 3 are carried out using Mathematica Rules, i.e., a set of replacement rules based on pattern matching. As always, the rules may be applied using “Expr/.TheRules”, and may be applied repeatedly using “Expr//.TheRules”.
The rules defined in (v)–(vi), acting on t and o, are similarly contained in OTSimpleRules, and the union of SimpleRules and OTSimpleRules and a few rules for rewriting closed quarklines with zero to two gluons, are contained in AllSimpleRules.
The special rules for gluon index contraction in structure constants, exemplified in Eqs. (18)–(19) are defined in FDRules. The complete set of rules are stated in Table 2.
Rather than thinking about how individual rules have to be applied, it is convenient to have a standard procedure for contracting color indices. This is embodied in the function CSimplify, which does what its name suggests; simplifies the color structure as far as possible. For color structures which do not contain structure constants this always implies contracting all repeated indices.
For color structure involving the structure constants CSimplify first attempts simplification using the FDRules. If, after this, the expression still contains structure constants, the structure constants are by default rewritten in terms of traces using Eq. (9), and the indices are fully contracted, resulting in a sum of products of open and closed quarklines. Sometimes it may, however, be desirable not to rewrite the structure constants, as expressions may be more compact if they are kept. This can be achieved by using the option RemoveFD→False.
The most useful set of functions are given in Table 3. Apart from CSimplify we especially note the function ReplaceDummyIndices for replacing all repeated indices in a color structure with a new unique set of color indices.
Sometimes more detailed control over the calculation may be desired. For this purpose, and for internal usage, functions manipulating indices and probing the color structure are given in Table 4, in the Appendix.
While each squared amplitude in principle can be calculated as outlined above, ColorMath also offers more efficient tools for dealing with vectors in color space.
5 Defining and using vectors
For the purpose of studying color space it is often convenient to define a basis for the color space, and sometimes also projection operators. Both of these are examples of color (singlet) tensors, and ColorMath has a set of tools for working directly with such tensors.
From a Mathematica perspective we note a few things. First, on the left hand side, we see that the indices inside the List in the Subscript are followed by underscore to indicate pattern matching. This is standard in Mathematica and makes it possible to use any symbol to denote the indices in later calculations. Then we note that the last two tensors in Eq. (25) are defined using Module. This is to ensure that each time the tensor is used, it comes with a fresh set of dummy indices. This is also the reason why set delayed “:=” is used.
6 Validation and scalability
The computational rules and functions in this package have been used for calculating the three gluon projection operators presented in [15]. This imposes highly nontrivial consistency checks, as it is verified that every projector square equals itself, which at intermediate steps often involve several ten thousand terms. Additional consistency checks on the color contraction rules have been made by using the CGamma function which checks that vectors square and basis decomposed vectors square agree, and by changing the order in which the color structure contraction rules are applied. The scalar product matrices have also been compared to the ColorFull code [16] for tree level trace bases with up to six partons out of which one parton is a quark and one an antiquark. Selected results have been compared against [13], and the package has been tested both in Mathematica 7, 8 and 9.
The computational effort needed for exact treatment of the color space grows very quickly with the number of partons. The dimension of the vector space grows roughly as a factorial in the number of gluons plus \(q\overline{q} \)pairs [15] (strictly speaking an exponential for finite N _{ c } in a multiplet basis). The computational effort for ColorMath, or any program operating by direct manipulation of quarklines, tend to grow roughly as the square of this, as the quarklines are nonorthogonal. ColorMath (in its current form) is thus rather intended to be an easy to use package for calculations of low and intermediate complexity than a competitive tool for processes with very many colored partons.
7 Conclusion
In this paper a Mathematica package ColorMath for performing color summed calculations in QCD is presented. This package allows for simple evaluation of QCD color amplitudes which are expressed in a format which very much resembles how the color structure would have been written on paper, see Table 1. The idea is that the user—for simple cases—just should give the expression, and then run CSimplify[Expr] rather than Simplify[Expr]. The package is based on advanced pattern matching rules, and a list of rules is given in Table 2, whereas functions acting on color structures are given in Table 3.
For calculations of intermediate or high complexity it is often beneficial to use a basis for performing color space calculations. ColorMath allows for definition of color tensors of form C1 _{{i1_,i2_,…,ik_}}:=…, carrying an arbitrary set of quark, antiquark and gluon indices. Special functions for calculating scalar products, and investigating the effect of gluon exchange, are given in Table 5. ColorMath is, however, not intended for high speed calculations involving many colored partons. For this purpose a separate C++ package is written [16].
To enhance the similarity with usage inside Mathematica, we here use the somewhat unorthodox notation q1 etc. for single quark and gluon indices.
In this user guide indices representing incoming quarks and outgoing antiquarks are placed upstairs, whereas outgoing quarks and incoming antiquarks are placed downstairs. Note, however, that we could as well have used the opposite convention.
Acknowledgements
Terrance Figy, Johan Grönqvist, Simon Plätzer, Stefan Prestel, Johan Rathsman and Konrad Tywoniuk are thanked for useful comments on the ColorMath code and/or paper. This work was supported by a Marie Curie Experienced Researcher fellowship of the MCnet Research Training network, contract MRTNCT2006035606, by the Helmholtz Alliance “Physics at the Terascale” and by the Swedish Research Council, contract number 62120103326.
Open Access
This article is distributed under the terms of the Creative Commons Attribution License which permits any use, distribution, and reproduction in any medium, provided the original author(s) and the source are credited.