This shows you the differences between two versions of the page.
documentation:ref:diractrace [2015/11/20 19:28] poslavskysv [Options] |
documentation:ref:diractrace [2015/11/21 12:33] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== DiracTrace ====== | ||
- | ---- | ||
- | ====Description==== | ||
- | |||
- | * ''%%DiracTrace%%'' calculates trace of Dirac matrices in $D$ dimensions | ||
- | |||
- | * By default ''%%DiracTrace%%'' works in $D = 4$; for arbitrary $D$ one can use option ''%%DiracTrace[[Dimension: D]]%%'' | ||
- | |||
- | * One can directly set trace of identity matrix (e.g. for dimensional regularisation): ''%%DiracTrace[[Dimension: D, TraceOfOne: 4]]%%'' | ||
- | |||
- | * By default ''DiracTrace'' uses notation ''G_m'' for $\gamma_m$, ''G5'' for $\gamma_5$ and ''e_abcd'' for Levi-Civita tensor. ''%%DiracTrace[G, G5, eps]%%'' or ''%%DiracTrace[[Gamma: G, Gamma5: G5, LeviCivita: eps]]%%'' specifies the notation for $\gamma_m$, $\gamma_5$ and Levi-Civita tensor. | ||
- | |||
- | * ''%%DiracTrace[[Simplifications: rules]]%%'' will apply additional simplification ''rules'' to each processed trace | ||
- | |||
- | |||
- | ====Examples==== | ||
- | ---- | ||
- | Calculate trace of $\gamma$-matrices: | ||
- | <sxh groovy; gutter: false> | ||
- | defineMatrices 'G_a', 'G5', Matrix1.matrix | ||
- | println DiracTrace >> 'Tr[G_a*G_b]'.t | ||
- | </sxh> | ||
- | <sxh plain; gutter: false> | ||
- | > 4*g_ab | ||
- | </sxh> | ||
- | |||
- | Another example: | ||
- | <sxh groovy; gutter: false> | ||
- | //set up matrix objects | ||
- | defineMatrices 'G_a', 'G5', Matrix1.matrix | ||
- | //calculate trace | ||
- | println DiracTrace >> 'Tr[(p_a*G^a + m)*G_m*(q_a*G^a-m)*G_n]'.t | ||
- | </sxh> | ||
- | <sxh plain; gutter: false> | ||
- | > 4*p_{m}*q_{n}+4*p_{n}*q_{m}-4*m**2*g_{mn}-4*p^{a}*g_{mn}*q_{a} | ||
- | </sxh> | ||
- | |||
- | ---- | ||
- | Calculate trace involving $\gamma_5$: | ||
- | <sxh groovy; gutter: true> | ||
- | //set up matrix objects | ||
- | defineMatrices 'G_a', 'G5', Matrix1.matrix | ||
- | //calculate trace | ||
- | println DiracTrace >> 'Tr[G_a*G_b*G_c*G_d*G5]'.t | ||
- | </sxh> | ||
- | <sxh plain; gutter: false> | ||
- | > -4*I*e_{abcd} | ||
- | </sxh> | ||
- | <sxh groovy; gutter: true; first-line: 7> | ||
- | println DiracTrace >> 'Tr[(p_a*G^a + m)*G_m*G5*(q_a*G^a-m)*G_n]'.t | ||
- | </sxh> | ||
- | <sxh plain; gutter: false> | ||
- | > -4*I*p_{b}*q_{a}*e^{a}_{n}^{b}_{m} | ||
- | </sxh> | ||
- | ---- | ||
- | |||
- | Calculate trace in different dimensions: | ||
- | |||
- | <sxh groovy; gutter: false> | ||
- | defineMatrices 'G_a', 'G5', Matrix1.matrix | ||
- | println DiracTrace[[Dimension: 6]] >> 'Tr[G_c*G_a*G_b*G^c]'.t | ||
- | </sxh> | ||
- | <sxh plain; gutter: false> | ||
- | > 48*g_ab | ||
- | </sxh> | ||
- | |||
- | By default, ''Tr[1]'' is equal to $2^{\frac{D-1}{2}}$ for odd $D$ and $2^{\frac{D}{2}}$ for even. For symbolic $D$ it will be assumed that it is even: | ||
- | |||
- | <sxh groovy; gutter: false> | ||
- | defineMatrices 'G_a', 'G5', Matrix1.matrix | ||
- | println DiracTrace[[Dimension: 'D'.t]] >> 'Tr[G_c*G_a*G_b*G^c]'.t | ||
- | </sxh> | ||
- | <sxh plain; gutter: false> | ||
- | > D*2**(D/2)*g_ab | ||
- | </sxh> | ||
- | |||
- | One can directly overcome predefined value of ''Tr[1]'' by using additional option (required for dimensional regularisation): | ||
- | <sxh groovy; gutter: false> | ||
- | defineMatrices 'G_a', 'G5', Matrix1.matrix | ||
- | def dTrace = DiracTrace[[Dimension: 'D'.t, TraceOfOne: 4]] | ||
- | println dTrace >> 'Tr[G_c*G_a*G_b*G^c]'.t | ||
- | </sxh> | ||
- | <sxh plain; gutter: false> | ||
- | > 4*D*g_ab | ||
- | </sxh> | ||
- | |||
- | ---- | ||
- | For traces involving $\gamma_5$ in $D$ dimensions, all $\gamma_5$-related calculations will be performed as in 4 dimensions ($Tr[\gamma_a \gamma_b \gamma_c \gamma_d \gamma_5] = -4 i e_{abcd}$ and Chiholm-Kahane identitie: $\gamma_a \gamma_b \gamma_c = g_{ab} \gamma_c-g_{ac} \gamma_b+g_{bc} \gamma_a-i e_{abcd} \gamma_5 \gamma^d$): | ||
- | |||
- | <sxh groovy; gutter: true> | ||
- | defineMatrices 'G_a', 'G5', Matrix1.matrix | ||
- | def dTrace = DiracTrace[[Dimension: 'D'.t, TraceOfOne: 4]] | ||
- | println dTrace >> 'Tr[G_a*G_b*G_c*G_d*G5]'.t | ||
- | </sxh> | ||
- | <sxh plain; gutter: false> | ||
- | > -4*I*e_{abcd} | ||
- | </sxh> | ||
- | |||
- | <sxh groovy; gutter: true; first-line: 4> | ||
- | println dTrace >> 'Tr[G_a*G_b*G_c*G_d*G_e*G^a*G5]'.t | ||
- | </sxh> | ||
- | <sxh plain; gutter: false> | ||
- | > 4*I*e_{debc}-4*I*e_{decb}+4*I*e_{dbce}-4*I*e_{ebcd} | ||
- | </sxh> | ||
- | |||
- | ---- | ||
- | Use another notation for gamma matrices: | ||
- | <sxh groovy; gutter: false> | ||
- | defineMatrices 'F_\\mu', 'F5', Matrix2.matrix | ||
- | def dTrace = DiracTrace[[Gamma: 'F_\\mu', Gamma5: 'F5', LeviCivita: 'Eps_{\\mu\\nu\\alpha\\beta}']] | ||
- | println dTrace >> 'Tr[F_\\mu*F_\\nu*F_\\alpha*F_\\beta * F5]'.t | ||
- | </sxh> | ||
- | <sxh plain; gutter: false> | ||
- | > -4*I*Eps_{\mu\nu\alpha\beta} | ||
- | </sxh> | ||
- | ====Options==== | ||
- | |||
- | * ''Simplifications'': one can specify additional simplifications that will be applied to each evaluated trace:<sxh groovy; gutter: false> | ||
- | defineMatrices 'G_a', 'G5', Matrix1.matrix | ||
- | def expr = 'Tr[(p^a + k^a)*(p^b + k^b)*G_a*G_b*G_c*G_d]'.t | ||
- | def mandelstam = setMandelstam([k_a: '0', p_a: '0', q_a: 'm', r_a: 'm'], 's', 't', 'u') | ||
- | println DiracTrace[[Simplifications: mandelstam]] >> expr | ||
- | </sxh><sxh plain; gutter: false> | ||
- | > 4*s*g_{cd} | ||
- | </sxh>which is same as<sxh groovy; gutter: false> | ||
- | println( (DiracTrace & mandelstam) >> expr ) | ||
- | </sxh><sxh plain; gutter: false> | ||
- | > 4*s*g_{cd} | ||
- | </sxh> | ||
- | |||
- | * ''ExpandAndEliminate'': ''DiracTrace'' expands out products of sums containing traces of $\gamma$-matrices using [[ExpandAndEliminate]] transformation. One can replace it with another instance using ''DiractTrace[[ExpandAndEliminate: tr]]''. | ||
- | |||
- | ====See also==== | ||
- | * Related guides: [[documentation:guide:applying_and_manipulating_transformations]], [[documentation:guide:Setting up matrix objects]], [[documentation:guide:list_of_transformations]] | ||
- | * Related tutorials: [[documentation:tutorials:Compton scattering in QED]] | ||
- | * Related transformations: [[documentation:ref:LeviCivitaSimplify]], [[documentation:ref:UnitaryTrace]] | ||
- | * JavaDocs: [[http://api.redberry.cc/redberry/1.1.8/java-api//cc/redberry/physics/feyncalc/DiracTraceTransformation.html| DiracTraceTransformation]] | ||
- | * Source code: [[https://bitbucket.org/redberry/redberry/src/tip/physics/src/main/java/cc/redberry/physics/feyncalc/DiracTraceTransformation.java|DiracTraceTransformation.java]] |