**Next message:**Selcuk: "Levi-Civita with three indices"**Previous message:**Aliaksandr Dubrouski: "Re: Problem in Calculating matrix element"**In reply to:**Aliaksandr Dubrouski: "Re: Problem in Calculating matrix element"**Messages sorted by:**[ date ] [ thread ] [ subject ] [ author ]**Mail actions:**[ respond to this message ] [ mail a new topic ]

Hi,

just to avoid the confusion: Aliaksandr is right regarding the

calculation of Pedro. My previous e-mail only concerned the muon

decay example in FeynCalc 9.2 that gave incorrect amplitude squared.

Apart from that, the mistake of forgetting to rename dummy indices

when squaring an expression is unfortunately quite common among

beginners.

As I have already mentioned it several times on this

mailing list, for performance reasons FeynCalc usually does not check

if an expression contains dummy indices that violate Einstein's

convention. BTW, with FORM it is the same, you can write something

like

off statistics;

Indices mu,nu,rho,si;

CFunction f1,g1,f2,g2;

L exp1=f1(mu,nu)*g1(mu,nu);

L exp2=f2(mu,nu)*g2(mu,nu);

L res= exp1*exp2;

print res;

.sort

sum mu,nu;

print res;

.end

and FORM will not complain about it. Having said that, the development

version of FeynCalc does contain some improvements to mitigate such issues

1) ComplexConjugate now automatically applies FCRenameDummyIndices. This

is why the above mentioned muon decay calculation that I "backported"

from the development version did not work properly in FeynCalc 9.2.

2) There is a new function called FCCheckSyntax

?FCCheckSyntax

FCCheckSyntax[expr] attempts to detect mistakes and inconsistencies in

the user input. The function returns the original expression but will

abort the evaluation if it thinks that the input is incorrect.

Notice that false positives are possible and it is not guaranteed that

the input which passes FCCheckSyntax is indeed fully correct.

FCCheckSyntax is also an option for several FeynCalc routines. If set to

True, those functions will try to check the syntax of the input

expressions to detect possible inconsistencies. However, on large

expressions such checks may cost a lot of performance, which is why this

option is set to False by default.

which can prevent the given problem

j\[Mu] = Gf/Sqrt[2]*Spinor[p3, 0].GA[a].(1 - GA[5]).Spinor[p1, m\[Mu]];

je = Gf/Sqrt[2] Spinor[p4, me].GA[b].(1 - GA[5]).Spinor[-p2, 0];

M = (j\[Mu] MT[a, b] je // Contract);

FermionSpinSum[M*ComplexConjugate[M]] // FCCheckSyntax

FCCheckSyntax::failmsg: Error! FCCheckSyntax has found an inconsistency

in your input expression and must abort the evaluation. The problem

reads: More than two repeating indices in <<2030>>

Cheers,

Vladyslav

Am 28.02.2018 um 06:49 schrieb Aliaksandr Dubrouski:

*> 2Pedro,
*

*>
*

*> Btw. do not forget to rename Lorentz indices in the conjugated matrix
*

*> element after contraction from a to b.
*

*>
*

*> 2018-02-27 22:29 GMT+03:00 Pedro <noreply@feyncalc.org
*

*> <mailto:noreply@feyncalc.org>>:
*

*>
*

*> Dear all,
*

*>
*

*> I am calculating a simple diagram and the program is returning the
*

*> wrong answer.
*

*>
*

*> I have looked up my code thousand times and I don't think it has an
*

*> error (plus I run the EWMuonDecayTree example and it gave me the
*

*> same wrong answer....)
*

*>
*

*> Is this a bug or am I missing something very trivial?
*

*>
*

*> The proble is the following:
*

*>
*

*> I am calculating the muon decay matrix element, using the following
*

*> code:
*

*>
*

*> (* Beging of the code *)
*

*>
*

*>
*

*> (*This is Gf/Sqrt[2]Overscript[u,
*

*> _](p3)\[Gamma]^a(1-\[Gamma]^5)u(p1) (muon curent) *)
*

*>
*

*> j\[Mu] = Gf/Sqrt[2]*Spinor[p3, 0].GA[a].(1 - GA[5]).Spinor[p1, m\[Mu]];
*

*>
*

*>
*

*> (*This is Gf/Sqrt[2]Overscript[u,
*

*> _](p4)\[Gamma]^a(1-\[Gamma]^5)v(p2) (electron curent) *)
*

*>
*

*> je = Gf/Sqrt[2] Spinor[p4, me].GA[b].(1 - GA[5]).Spinor[-p2, 0];
*

*>
*

*>
*

*> (*This is to contract the \[Gamma] matrices*)
*

*>
*

*> M = (j\[Mu] MT[a, b] je // Contract);
*

*>
*

*>
*

*> (* Matrix element <|M|^2>. Should be 64 Gf^2 (p1.p2)(p3.p4), see
*

*> e.g. Griffths *)
*

*>
*

*> FermionSpinSum[M*ComplexConjugate[M]] /. DiracTrace -> TR
*

*>
*

*>
*

*> (*End of the code *)
*

*>
*

*>
*

*> The result it is giving is: 64 Gf^2 (p1.p3)(p2.p4) and not the well
*

*> known 64 Gf^2 (p1.p2)(p3.p4).
*

*>
*

*>
*

*> Now, if I run the EWMuonDecayTree example, it will show in the last line
*

*>
*

*> Check with the Okun, Chapter 3.2:CORRECT.
*

*>
*

*> But only because it is checking the final total decay rate and not
*

*> the intermediate step (by lucky, it gave the correct result). If
*

*> you run the EWMuonDecayTree, in the third output, after the Feynman
*

*> Diagram, you will find the equivalent expression. Notice that the
*

*> program gives ~(k.q1)(p.q2) which should be ~(k.q2)(p.q1)
*

*>
*

*>
*

*> I am currently using version 9.2.0 and I also tested it on 8.2.0 and
*

*> it gave the same results.
*

*>
*

*> Is there something wrong with my code and the example?
*

*>
*

*>
*

*> thanks
*

*>
*

*>
*

*>
*

*>
*

*> --
*

*> Regards,
*

*> Aliaksandr Dubrouski
*

**Next message:**Selcuk: "Levi-Civita with three indices"**Previous message:**Aliaksandr Dubrouski: "Re: Problem in Calculating matrix element"**In reply to:**Aliaksandr Dubrouski: "Re: Problem in Calculating matrix element"**Messages sorted by:**[ date ] [ thread ] [ subject ] [ author ]**Mail actions:**[ respond to this message ] [ mail a new topic ]

*
This archive was generated by hypermail 2b29
: 09/20/18-11:40:01 PM Z CEST
*