From 48aa3c83824c3e836b27968e27f2f5cad061d4f5 Mon Sep 17 00:00:00 2001 From: Vladyslav Shtabovenko Date: Thu, 23 Jun 2022 23:55:58 +0200 Subject: [PATCH] Fixed a bug in SpinorChainTranspose (related to issue #177). --- FeynCalc/Dirac/SpinorChainTranspose.m | 2 +- Tests/Feynman/FCFADiracChainJoin.test | 41 +++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/FeynCalc/Dirac/SpinorChainTranspose.m b/FeynCalc/Dirac/SpinorChainTranspose.m index d9852c94f..4a04552c9 100755 --- a/FeynCalc/Dirac/SpinorChainTranspose.m +++ b/FeynCalc/Dirac/SpinorChainTranspose.m @@ -139,7 +139,7 @@ time=AbsoluteTime[]; diracObjectsEval = (diracObjects/.dsHead->Identity /. DOT->holdDOT)/. { holdDOT[Spinor[p1_,r1__], b___, Spinor[p2_,r2__]] :> - -1*optHead[DOT[Spinor[-p2,r2], FCChargeConjugateTransposed[DOT[b],FCI->True,Explicit->True,DotSimplify->False],Spinor[-p1,r1]]] + (-1*optHead[DOT[Spinor[-p2,r2], FCChargeConjugateTransposed[DOT[b]/.holdDOT->DOT,FCI->True,Explicit->True,DotSimplify->False],Spinor[-p1,r1]]]) } /. holdDOT -> DOT; FCPrint[1, "SpinorChainTranspose: Done transposing spinor chains, timing: ", N[AbsoluteTime[] - time, 4], FCDoControl->sctrVerbose]; diff --git a/Tests/Feynman/FCFADiracChainJoin.test b/Tests/Feynman/FCFADiracChainJoin.test index a5c1954b4..eb456a170 100644 --- a/Tests/Feynman/FCFADiracChainJoin.test +++ b/Tests/Feynman/FCFADiracChainJoin.test @@ -209,6 +209,47 @@ First -> {Spinor[-Momentum[p2, D], mqu, 1]}, FCE -> True]", "-Spinor[-Momentum[p2, D], mqu, 1] . GAD[Lor3] . (mqu + GSD[-l - p2]) . GAD[LCdummy2] . GA[6] . (mqu - GSD[-k - k1 - k2 + l + p2]) . GAD[Lor2] . +Spinor[Momentum[p1, D], mqu, 1]"}, +{"fcstFCFADiracChainJoin-ID8","FCFADiracChainJoin[ +DiracChain[Spinor[Momentum[k1, D], mle, 1], +DiracIndex[Dir3]] DiracChain[Spinor[Momentum[k2, D], mle, 1], +DiracIndex[Dir4]] DiracChain[Spinor[-Momentum[p1, D], mqu, 1], +DiracIndex[Dir1]] DiracChain[Spinor[-Momentum[p2, D], mqu, 1], +DiracIndex[Dir2]] DiracChain[DiracGamma[LorentzIndex[Lor2, D], D], +DiracIndex[Dir5], DiracIndex[Dir1]] DiracChain[ +mqu + DiracGamma[Momentum[-k - k1 - k2 + l + p2, D], D], +DiracIndex[Dir5], DiracIndex[Dir6]] DiracChain[ +DiracGamma[LorentzIndex[LCdummy1, D], D] . DiracGamma[6], +DiracIndex[Dir3], DiracIndex[Dir4]] DiracChain[ +DiracGamma[LorentzIndex[LCdummy2, D], D] . DiracGamma[6], +DiracIndex[Dir2], DiracIndex[Dir6]], FCE -> True]", +"Spinor[Momentum[k1, D], mle, 1] . GAD[LCdummy1] . GA[6] . +Spinor[-Momentum[k2, D], mle, 1] Spinor[-Momentum[p1, D], mqu, +1] . (-GAD[Lor2]) . (mqu + + GSD[-k - k1 - k2 + l + p2]) . (-GA[6] . GAD[LCdummy2]) . +Spinor[Momentum[p2, D], mqu, 1]"}, +{"fcstFCFADiracChainJoin-ID9","FCFADiracChainJoin[ +DiracChain[Spinor[Momentum[k1, D], mle, 1], +DiracIndex[Dir3]] DiracChain[Spinor[Momentum[k2, D], mle, 1], +DiracIndex[Dir4]] DiracChain[Spinor[-Momentum[p1, D], mqu, 1], +DiracIndex[Dir1]] DiracChain[Spinor[-Momentum[p2, D], mqu, 1], +DiracIndex[Dir2]] DiracChain[DiracGamma[LorentzIndex[Lor2, D], D], +DiracIndex[Dir5], DiracIndex[Dir1]] DiracChain[ +mqu + DiracGamma[Momentum[-k - k1 - k2 + l + p2, D], D], +DiracIndex[Dir5], DiracIndex[Dir6]] DiracChain[ +DiracGamma[LorentzIndex[LCdummy1, D], D] . DiracGamma[6], +DiracIndex[Dir3], DiracIndex[Dir4]] DiracChain[ +DiracGamma[LorentzIndex[LCdummy2, D], D] . DiracGamma[6], +DiracIndex[Dir2], DiracIndex[Dir6]], +First -> {Spinor[-Momentum[p2, D], mqu, 1], +Spinor[Momentum[k1, D], mle, 1]}]", +"Spinor[Momentum[k1, D], mle, 1] . +DiracGamma[LorentzIndex[LCdummy1, D], D] . DiracGamma[6] . +Spinor[-Momentum[k2, D], mle, 1] Spinor[-Momentum[p2, D], mqu, 1] . +DiracGamma[LorentzIndex[LCdummy2, D], D] . +DiracGamma[ +6] . (mqu - DiracGamma[Momentum[-k - k1 - k2 + l + p2, D], D]) . +DiracGamma[LorentzIndex[Lor2, D], D] . Spinor[Momentum[p1, D], mqu, 1]"} };