Off[General::spell];
Off[General::spell1];

================================
Load FeynCalc:

Get["/users/smuphy/olness/mathload/FeynCalc2/FeynCalc.m"]

Get["/users/smuphy/olness/mathload/FeynCalc2/FeynCalc2.0b07.m"]

Get["/users/smuphy/olness/mathload/FeynCalc2/FeynCalc2.0b13.m"]

================================
Check with Halzen

{p1s,p2s,p3s,p4s}=Map[DiracSlash,{p1,p2,p3,p4}]

{gm,gn,gm1,gm2}=Map[DiracMatrix,{mu,nu,mu1,mu2}]

Tr[ gm.p1s.gn.p2s ]

4 Tr[ gm.DiracGamma[7].p1s.gn.DiracGamma[7].p2s ] - 2Tr[ gm.p1s.gn.p2s ] //Expand

Contract[ Tr[ gm.p1s.gn.p2s ] Tr[ gm.p3s.gn.p4s ] ]

Contract[ Tr[ gm.p1s.gn.DiracGamma[5].p2s ] Tr[ gm.p3s.gn.DiracGamma[5].p4s ] 
   , EpsContract->True] //Simplify

Contract[ 4 Tr[ gm.DiracGamma[7].p1s.gn.DiracGamma[7].p2s ] 
        * 4 Tr[ gm.DiracGamma[7].p3s.gn.DiracGamma[7].p4s ] 
   , EpsContract->True] //Simplify

Tr[ Spinor[p,m].Spinor[p,m] ] //DiracSimplify

Tr[ DiracGamma[5].gm.gn.gm1.gm2 ]

Tr[DiracMatrix[a1,a2,a3,a4,5]]

Tr[DiracMatrix[a1,a2,a3,a4,a5,a6,5]]

(tmp= Tr[DiracMatrix[a1,a2,a3,a4,a5,a6,a7,a8,5]]) //Timing //First

tmp //Last //Length

================================
Do Traces from Ch6 Halzen

temp1= Tr[ (DiracSlash[kp]+m)
          .DiracMatrix[mu]
          .(DiracSlash[k ]+m)
          .DiracMatrix[nu]
        ]

temp2= Tr[ (DiracSlash[pp]+m)
          .DiracMatrix[mu]
          .(DiracSlash[p ]+m)
          .DiracMatrix[nu]
        ]

temp3= temp1 temp2 //Contract

================================
Examine Mandelstam Variables

SetMandelstam[s,t,u,p,k,-pp,-kp,m,m,m,m];

( {ScalarProduct[p+k,p+k]
  ,ScalarProduct[p-pp,p-pp]
  ,ScalarProduct[p-kp,p-kp]}  
      //ExpandScalarProduct 
      //Simplify
   )

temp3 //Simplify

temp4= temp3 /.{m->0} //Simplify

denom= (ScalarProduct[k-kp,k-kp])^2 //ExpandScalarProduct

result= temp4/denom e^4/4