This program generates the BCJ numerator in HEFT,YM, (arxiv:2111.15649, arxiv:2208.05519). YMS+
- Copy "KiHA.wl" to your computer with "mathematica >10" installed
- Load the package use
Needs["KiHA
","your local directory/KiHA.wl"]` - enjoy!
Related paper for KiHA in HEFT are arxiv:2111.15649, arxiv:2208.05519 . In HEFT, kinematic algebra is taken as current algebra. The building blocks are
- vector current
$T^{(i)}_{(i)}$ : correspond to the vector currents and map to a vector current(just the velocity$v$ ) product with a polarisation vector$\varepsilon_i$ . - tensor current
$T^{(\alpha)}_{(\tau_1),(\tau_2),\cdots, (\tau_r)}$ : Tensor currents and map to all multiplicity universal tensor product with multi polarisation vectors - fusion product
$\star$ : The fusion rules from lower order rank tensor currents to higher order tensor currents. This fusion product is bilinear and associative. - convolution map
$\langle \bullet \rangle$ : This is a linear map from abstract algebra general to physics kinematic expression, which is, in general, non-local and manifestly gauge invariant.
The major output of this program is
which is known as an algebraic pre-numerator. Another major function is the convolution map, which maps the abstract generator to the physical function of kinematic information. In HEFT, the algebraic pre-numerator is from
num = \[FivePointedStar] @@ (T /@ List /@ Range[1, 3]);
We get
After taking the convolution map, we have
preNumerator = num /. T -> Tp /. rmzero,
where the Tp
is the convolution map.
Then we get the output of the pre-numerator
All other BCJ numerators are obtained directly from the BCJ numerator by crossing symmetry. For the
The related paper for KiHA in Yang-Mills-scalar arxiv:2208.05886. The kinematic algebra is taken as field algebra in the full theory of Yang-Mills-scalar+
- vector field
${\mathsf K_i}=T_{(i)}^{(i)}$ - scalar field
${\mathsf K_j}=T^{(j)}$ - tensor field
$T^{(\alpha)}_{(\tau_1),(\tau_2),\cdots, (\tau_r)}$ : fields for multi-particle states lie on the interline, which is all multiplicity university mapping to the gauge invariant functions. - fusion product
$\star$ : The fusion rules from a fewer-particle field to a more-particle field. This fusion product is bilinear and associative. - convolution map
$\langle \bullet \rangle$ : This is a linear map from abstract algebra general to physics kinematic expression. This is the inner product between multi-particle states and single outgoing particle states. For each algebraic generator, the mapping value is in general non-local and manifestly gauge invariant.
The major output of this program is
preNumerator = \[FivePointedStar][\[ScriptCapitalK][1,
1], \[ScriptCapitalK][2, 1], \[ScriptCapitalK][3, 0]] /.
ET[f__] :> ET2F2s[ET[f]] /. CenterDot[f__] :> tr[f, t^a[n]] /.
rmzero //. niceF
one can get
For the amplitude with more than three scalars,
preNumerator = \[FivePointedStar][\[ScriptCapitalK][1,
0], \[ScriptCapitalK][3, 1], \[ScriptCapitalK][2, 0]] /.
ET[f__] :> ET2F[ET[f]] /. CenterDot[f__] :> tr[f, t^a[n]] //.
niceF
you get
For the Yang-Mills amplitude with two massive scalar, we can use the following more efficient code
n = 3;
Timing[numpreP = \[FivePointedStar] @@ (T /@ List /@ Range[1, n]);]
bpeff2 = BinaryProduct[Range[n]]
nod = numpreP /. T -> TScalar /. rmzero
See more details in the Notebook "YMSAlgebraNew.nb"
The related paper for KiHA in higher-derivative gauge field theory is 2310.11943 . We consider the gauge field theory with higher order contraction of the strengthen tensor.
num = \[FivePointedStar][T[{1}], T[{2}], T[{3}]] /. rmzeroT /.
T[f__] :> T2FF3F4[T[f]];
num=num /. W -> WFun /. F[i__] :> Sequence @@ (F /@ {i});
using the nice function
ClearAll[nicesp, niceFT]
nicesp =
Join[{\[Epsilon][p[i_]] :> \[Epsilon][i],
p[f__] :> Subscript[p, StringJoin[ToString /@ {f}]],
F[f__] :> Subscript[F, StringJoin[ToString /@ {f}]],
CenterDot[Subscript[p, f_], Subscript[p, f_]] :>
\!\(\*SubsuperscriptBox[\(p\), \(f\), \(2\)]\)}, nice, {v[i_] :> v}];
niceFT =
Join[ niceT, {List[f_List, i_Integer] :>
StringJoin["(", ToString /@ f, ")"]^ToString[i],
FT[f__] :> Subscript[J, f]}];
you can see readable form of the pre-numerator
num//.nicesp
This part is to generate the BCJ numerator in the DF2+YM theory. This theory contains massless gluon, massive gluon and tachyon, see 1803.05452 for reference.
generate the HEFT BCJ numerator
n=7;
num = \[FivePointedStar][T[{1}], T[{2}], T[{3}],T[{4}],T[{5}]] /. rmzeroT /.
T[f__] :> T2FF3F4[T[f]];
num = num /. W -> WFun0;
num = num /. W[od__] :> WFunDF2[od] /. repNormalOrder /.
W[f__] :> W2basis[W[f]] //. dotRules // Expand;
ng=n-2;
Do[
Print[Length[wfun]];
Monitor[
num = Sum[
num[[jjj]] /. W -> WFunDF2 /. repNormalOrder /.
W[f__] :> W2basis[W[f]] /. W0[f__] :> W02basis[W0[f]] //.
dotRules // Expand, {jjj, Length@num}];, jjj];
, {id, ng - 2}]
generate the W prime function
ng=5;
wfun = (-1)^(ng - 1) (WFunDF2 @@ Range[ng]) /. repNormalOrder /.
W[f__] :> W2basis[W[f]] //. dotRules // Expand;
Do[
Print[Length[wfun]];
Monitor[
wfun =
Sum[wfun[[jjj]] /. W -> WFunDF2 /. repNormalOrder /.
W[f__] :> W2basis[W[f]] /. W0[f__] :> W02basis[W0[f]] //.
dotRules // Expand, {jjj, Length@wfun}];, jjj];
, {id, ng - 2}]
More details can be found in the file "DF2YMExample.nb".
The amplitude with two fermion line and multi gluon lines are also of color-kinematic duality. The kinematic algebra is also quasi-shuffle hopf algebra. The pre-numerator is obtained as
n = 5
numJ = \[FivePointedStar] @@ Table[FT[{{i}, 1}], {i, 1, n - 2}] /.
rmzeroT /. FT[f__] :> FT2F[FT[f]];
numJ = % /. sp[f__] :> spAB[p[n], f, p[n - 1]] // Expand;
numJ = numJ /. F[i__] :> Sequence @@ (F /@ {i});
Another version of the bcj numerator can be obtained recursively.
numRecQCD[5] // contractSp
For the local BCJ numerator in Yang-Mills theory, the kinematic algebra is also quasi-shuffle hopf algebra. The BCJ numerator is obtained as
ng = 8;
rmzeroDF2 = {T[{i1_, ils__}, g__] :> 0 /; i1 != 1};
Timing[num2 = (\[FivePointedStar] @@ (Table[
T[{ii}], {ii, ng - 1}])) /.
T[{i1__}, g___] :> T[{i1, ng}, g] /. rmzeroDF2;
num2 = num2 /. T[f__] :> T2YMLocal[T[f]];]
Another version of the bcj numerator can be obtained recursively. We first set the replace rules for the factors in the W' function
repdotnum2 = {W0[1, f___,
ng] :> -1/\[Alpha] dot[\[Epsilon][1],
Sequence @@ F /@ {f}, \[Epsilon][ng]] /.
dot[i1_, F[], i2_] :> dot[i1, i2]};
repdotden2 = {(1 - \[Alpha] dot[p[f__], p[f__]]) :>
2 \[Alpha] Length[Complement[Range[ng], {f}]] x};
repdotFnum2 = {dot[f__, F[i_],
p[gs___, ng]] :> -dot[f, \[Epsilon][i]] x,
dot[f__, F[rs__, i_],
p[gs___, ng]] :> -dot[f, F[rs], \[Epsilon][i]] x};
Then we use the recursive rules that contribute to the leading order of
Timing[wfun = (-1)^(ng - 1) (WFun2YM @@ Range[ng]);
wfun = Sum[
wfun[[ii]]*(1 - \[Alpha] dot[p @@ Range[ng]]) // Simplify, {ii,
Length@wfun}];
wfun = wfun //. W -> WFun2YM // Expand;
wfunYM = wfun /. repdotnum2 /. repdotden2 /. repdotFnum2;
]