# DiracOrder

### Description

• DiracOrder brings all products of $\gamma$-matrices to alphabetical order
• By default  DiracOrder works in $D = 4$; for arbitrary $D$ one can use option  DiracOrder[[Dimension: D]]
• One can directly set trace of identity matrix (e.g. for dimensional regularisation):  DiracOrder[[Dimension: D, TraceOfOne: 4]]
• By default DiracOrder uses notation G_m for $\gamma_m$ and G5 for $\gamma_5$.  DiracOrder[[Gamma: G, Gamma5: G5]] specifies the notation for $\gamma_m$ and $\gamma_5$.

### Examples

Order product of $\gamma$-matrices:

defineMatrices 'G_a', 'G5', Matrix1.matrix
def dOrder = DiracOrder
println dOrder >> 'G_b*G_a'.t

   > 2*g_{ba}-G_{a}*G_{b}

println dOrder >> 'G_d*G_c*G_b*G_a'.t

   > G_{a}*G_{b}*G_{c}*G_{d}-2*G_{c}*G_{d}*g_{ab}+2*G_{b}*G_{d}*g_{ac}-2*G_{b}*G_{c}*g_{ad}
-2*G_{a}*G_{b}*g_{cd}+4*g_{ab}*g_{cd}


All $\gamma_5$ will be shift right:

defineMatrices 'G_a', 'G5', Matrix1.matrix
def dOrder = DiracOrder
println dOrder >> 'G5*G_b*G_a'.t

   > 2*G5*g_{ba}-G_{a}*G_{b}*G5


Use another notation for $\gamma$-matrices:

defineMatrices 'F_a', 'F5', Matrix1.matrix
def dOrder = DiracOrder[[Gamma: 'F_a', Gamma5: 'F5']]
println dOrder >> 'F_b*F_a'.t

   > 2*g_{ba}-F_{a}*F_{b}