2 import iam_sympy_example
4 from sympy
import Basic
,exp
,Symbol
,sin
,Rational
,I
,Mul
, Matrix
, \
5 ones
, sqrt
, pprint
, simplify
, trim
, Eq
, sympify
7 from sympy
.physics
import msigma
, mgamma
21 E
= Symbol("E", real
=True)
22 m
= Symbol("m", real
=True)
25 """ p = (p1, p2, p3); r = 0,1 """
29 ksi
= Matrix([ [1],[0] ])
31 ksi
= Matrix([ [0],[1] ])
32 a
= (sigma1
*p1
+ sigma2
*p2
+ sigma3
*p3
) / (E
+m
) * ksi
35 return sqrt(E
+m
) * Matrix([ [ksi
[0,0]], [ksi
[1,0]], [a
[0,0]], [a
[1,0]] ])
38 """ p = (p1, p2, p3); r = 0,1 """
42 ksi
= Matrix([ [1],[0] ])
44 ksi
= -Matrix([ [0],[1] ])
45 a
= (sigma1
*p1
+ sigma2
*p2
+ sigma3
*p3
) / (E
+m
) * ksi
48 return sqrt(E
+m
) * Matrix([ [a
[0,0]], [a
[1,0]], [ksi
[0,0]], [ksi
[1,0]] ])
52 p0
= sqrt(m
**2+p1
**2+p2
**2+p3
**2)
53 return gamma0
*p0
-gamma1
*p1
-gamma2
*p2
-gamma3
*p3
56 assert M
.lines
== M
.cols
58 for i
in range(M
.lines
):
62 a
=Symbol("a", real
=True)
63 b
=Symbol("b", real
=True)
64 c
=Symbol("c", real
=True)
68 assert u(p
, 1).D
* u(p
, 2) == Matrix(1, 1, [0])
69 assert u(p
, 2).D
* u(p
, 1) == Matrix(1, 1, [0])
71 p1
,p2
,p3
=[Symbol(x
, real
=True) for x
in ["p1","p2","p3"]]
72 pp1
,pp2
,pp3
=[Symbol(x
, real
=True) for x
in ["pp1","pp2","pp3"]]
73 k1
,k2
,k3
=[Symbol(x
, real
=True) for x
in ["k1","k2","k3"]]
74 kp1
,kp2
,kp3
=[Symbol(x
, real
=True) for x
in ["kp1","kp2","kp3"]]
84 e
= (pslash(p
)+m
*ones(4))*(pslash(k
)-m
*ones(4))
85 f
= pslash(p
)+m
*ones(4)
86 g
= pslash(p
)-m
*ones(4)
90 pprint( Eq(sympify(lhs
), rhs
) )
93 xprint( 'Tr(f*g)', Tr(f
*g
) )
94 #print Tr(pslash(p) * pslash(k)).expand()
96 M0
= [ ( v(pp
, 1).D
* mgamma(mu
) * u(p
, 1) ) * ( u(k
, 1).D
* mgamma(mu
,True) * \
97 v(kp
, 1) ) for mu
in range(4)]
98 M
= M0
[0]+M0
[1]+M0
[2]+M0
[3]
100 assert isinstance(M
, Basic
)
104 d
=Symbol("d", real
=True) #d=E+m
108 M
= ((M
.subs(E
,d
-m
)).expand() * d
**2 ).expand()
109 xprint('M2', 1/(E
+m
)**2 * M
)
111 x
,y
= M
.as_real_imag()
115 xprint('abs(M)**2', e
)
117 xprint('Expand(abs(M)**2)', e
.expand())
119 #print Pauli(1)*Pauli(1)
121 #print Pauli(1)*2*Pauli(1)