(*^ ::[ frontEndVersion = "Macintosh Mathematica Notebook Front End Version 2.1"; macintoshStandardFontEncoding; paletteColors = 128; currentKernel; fontset = title, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, e8, 24, "Times"; ; fontset = subtitle, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, e6, 18, "Times"; ; fontset = subsubtitle, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, italic, e6, 14, "Times"; ; fontset = section, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, grayBox, M22, bold, a20, 18, "Times"; ; fontset = subsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, blackBox, M19, bold, a15, 14, "Times"; ; fontset = subsubsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, whiteBox, M18, bold, a12, 12, "Times"; ; fontset = text, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; ; fontset = smalltext, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 10, "Times"; ; fontset = input, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeInput, M42, N23, bold, L-5, 12, "Courier"; ; fontset = output, output, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L-5, 12, "Courier"; ; fontset = message, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, R65535, L-5, 12, "Courier"; ; fontset = print, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L-5, 12, "Courier"; ; fontset = info, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, B65535, L-5, 12, "Courier"; ; fontset = postscript, PostScript, formatAsPostScript, output, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeGraphics, M7, l34, w282, h287, 12, "Courier"; ; fontset = name, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, italic, 10, "Geneva"; ; fontset = header, inactive, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; ; fontset = leftheader, inactive, L2, 12, "Times"; ; fontset = footer, inactive, noKeepOnOnePage, preserveAspect, center, M7, 12, "Times"; ; fontset = leftfooter, inactive, L2, 12, "Times"; ; fontset = help, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 10, "Times"; ; fontset = clipboard, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; ; fontset = completions, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; ; fontset = special1, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; ; fontset = special2, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; ; fontset = special3, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; ; fontset = special4, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; ; fontset = special5, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; ; ] :[font = input; preserveAspect; ] Off[General::spell];Off[General::spell1]; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup; ] ================================ Load FeynCalc2.1 :[font = input; Cclosed; preserveAspect; startGroup; ] Get["/users/smuphy/olness/mathload/FeynCalc2/FeynCalc.m"] :[font = print; inactive; preserveAspect; endGroup; endGroup; ] FeynCalc 2.0beta7 (July 1993) |..#...| :[font = subsection; inactive; Cclosed; preserveAspect; startGroup; ] ================================ Input Raw Amps From FeynArts: :[font = input; preserveAspect; fontLeading = 0; ] rawamps=( FeynAmpList[Model -> {SM}, Generation1 -> True, Generation2 -> True, Generation3 -> True, ElectronHCoupling -> True, LightFHCoupling -> True, QuarkMixing -> False, UnitaryGauge -> False, RemoveEmptyTops -> True, ProcessName -> V1F1V1F1, Process -> {{V[1], p1, 0}, {F[1], p2, ME}} -> {{V[1], k1, 0}, {F[1], k2, ME}}][FeynAmp[GraphName[V1F1V\ 1F1, T1, I1, N1], EL^2* Conjugate[PolarizationVector[k1, li4]]* LeptonSpinor[k2, ME] . DiracMatrix[li2] . (ME + DiracSlash[-k1 + p2]) . DiracMatrix[li4] . LeptonSpinor[p2, ME]*PolarizationVector[p1, li2]* PropagatorDenominator[k1 - p2, ME]], FeynAmp[GraphName[V1F1V1F1, T2, I1, N2], EL^2*Conjugate[PolarizationVector[k1, li4]]* LeptonSpinor[k2, ME] . DiracMatrix[li4] . (ME + DiracSlash[p1 + p2]) . DiracMatrix[li2] . LeptonSpinor[p2, ME]*PolarizationVector[p1, li2]* PropagatorDenominator[p1 + p2, ME]]] ); :[font = input; Cclosed; preserveAspect; startGroup; ] amps={rawamps[[1,2]],rawamps[[2,2]]} :[font = output; output; inactive; preserveAspect; endGroup; endGroup; ] {(EL^2*"ep"[p1, li2]*"ep(*)"[k1, li4]* Feyn`Calc`Main`fcdot2["u[k2, ME]", "ga[li2]", -"gs[k1 - p2]" + ME, "ga[li4]", "u[p2, ME]"])/"("(k1 - p2)^2"- "ME^2")", (EL^2*"ep"[p1, li2]*"ep(*)"[k1, li4]* Feyn`Calc`Main`fcdot2["u[k2, ME]", "ga[li4]", "gs[p1 + p2]" + ME, "ga[li2]", "u[p2, ME]"])/"("(p1 + p2)^2"- "ME^2")"} ;[o] 2 {(EL ep[p1, li2] ep(*)[k1, li4] u[k2, ME] ga[li2] (-gs[k1 - p2] + ME) ga[li4] u[p2, ME]) / 2 2 2 ((k1 - p2) - ME ), (EL ep[p1, li2] ep(*)[k1, li4] u[k2, ME] ga[li4] (gs[p1 + p2] + ME) ga[li2] u[p2, ME]) / 2 2 ((p1 + p2) - ME )} :[font = subsection; inactive; Cclosed; preserveAspect; startGroup; ] ================================ Conugate Amps :[font = input; Cclosed; preserveAspect; startGroup; ] camps=ComplexConjugate[amps] :[font = output; output; inactive; preserveAspect; endGroup; endGroup; ] {(EL^2*"ep"[k1, "li4*"]*"ep(*)"[p1, "li2*"]* Feyn`Calc`Main`fcdot2["u[p2, ME]", "ga[li4*]", -"gs[k1 - p2]" + ME, "ga[li2*]", "u[k2, ME]"])/"("(k1 - p2)^2"- "ME^2")", (EL^2*"ep"[k1, "li4*"]*"ep(*)"[p1, "li2*"]* Feyn`Calc`Main`fcdot2["u[p2, ME]", "ga[li2*]", "gs[p1 + p2]" + ME, "ga[li4*]", "u[k2, ME]"])/"("(p1 + p2)^2"- "ME^2")"} ;[o] 2 {(EL ep[k1, li4*] ep(*)[p1, li2*] u[p2, ME] ga[li4*] (-gs[k1 - p2] + ME) ga[li2*] u[k2, ME]) / 2 2 2 ((k1 - p2) - ME ), (EL ep[k1, li4*] ep(*)[p1, li2*] u[p2, ME] ga[li2*] (gs[p1 + p2] + ME) ga[li4*] u[k2, ME]) / 2 2 ((p1 + p2) - ME )} :[font = subsection; inactive; Cclosed; preserveAspect; startGroup; ] ================================ Square Amps :[font = input; Cclosed; preserveAspect; startGroup; ] msquared1=Outer[Times,amps,camps]; Dimensions[msquared1] :[font = output; output; inactive; preserveAspect; endGroup; endGroup; ] {2, 2} ;[o] {2, 2} :[font = subsection; inactive; Cclosed; preserveAspect; startGroup; ] ================================ Set ME=0 for simplicity: :[font = input; preserveAspect; endGroup; ] ME=0; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup; ] ================================ Contract Polarization Vectors: e[mu] e*[nu] -> g[mu,nu] :[font = input; preserveAspect; endGroup; ] Clear[ContractBosons]; ContractBosons={ Pair[LorentzIndex[ComplexIndex[li1_]], Momentum[Polarization[p_, _]]]* Pair[LorentzIndex[ li2_] , Momentum[Polarization[p_, _]]] :> MetricTensor[ComplexIndex[li1],li2] }; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup; ] ================================ Evaluate Square Amps :[font = input; Cclosed; preserveAspect; startGroup; ] msquared2= ( msquared1 //.ContractBosons //Contract //Map[FermionSpinSum,#,{2}]& //Map[EvaluateDiracTrace,#,{2}]& //PropagatorDenominatorExplicit ) :[font = output; output; inactive; preserveAspect; endGroup; endGroup; ] {{4*((8*EL^4*k1"."k2*k1"."p2)/(k1"."k1 - 2*k1"."p2 + p2"."p2)^2 - (4*EL^4*k1"."k1*k2"."p2)/(k1"."k1 - 2*k1"."p2 + p2"."p2)^2 - (8*EL^4*k1"."k2*p2"."p2)/(k1"."k1 - 2*k1"."p2 + p2"."p2)^2 + (4*EL^4*k2"."p2*p2"."p2)/(k1"."k1 - 2*k1"."p2 + p2"."p2)^2), (32*EL^4*k2"."p2*"("k1 - p2")"".""("p1 + p2")")/ ((k1"."k1 - 2*k1"."p2 + p2"."p2)*(p1"."p1 + 2*p1"."p2 + p2"."p2))}, {(32*EL^4*k2"."p2*"("k1 - p2")"".""("p1 + p2")")/ ((k1"."k1 - 2*k1"."p2 + p2"."p2)*(p1"."p1 + 2*p1"."p2 + p2"."p2)), 4*((-4*EL^4*k2"."p2*p1"."p1)/(p1"."p1 + 2*p1"."p2 + p2"."p2)^2 + (8*EL^4*k2"."p1*p1"."p2)/(p1"."p1 + 2*p1"."p2 + p2"."p2)^2 + (8*EL^4*k2"."p1*p2"."p2)/(p1"."p1 + 2*p1"."p2 + p2"."p2)^2 + (4*EL^4*k2"."p2*p2"."p2)/(p1"."p1 + 2*p1"."p2 + p2"."p2)^2)}} ;[o] 4 4 8 EL k1.k2 k1.p2 4 EL k1.k1 k2.p2 {{4 (-------------------------- - -------------------------- - 2 2 (k1.k1 - 2 k1.p2 + p2.p2) (k1.k1 - 2 k1.p2 + p2.p2) 4 4 8 EL k1.k2 p2.p2 4 EL k2.p2 p2.p2 -------------------------- + --------------------------), 2 2 (k1.k1 - 2 k1.p2 + p2.p2) (k1.k1 - 2 k1.p2 + p2.p2) 4 32 EL k2.p2 (k1 - p2).(p1 + p2) ---------------------------------------------------}, (k1.k1 - 2 k1.p2 + p2.p2) (p1.p1 + 2 p1.p2 + p2.p2) 4 32 EL k2.p2 (k1 - p2).(p1 + p2) {---------------------------------------------------, (k1.k1 - 2 k1.p2 + p2.p2) (p1.p1 + 2 p1.p2 + p2.p2) 4 4 -4 EL k2.p2 p1.p1 8 EL k2.p1 p1.p2 4 (-------------------------- + -------------------------- + 2 2 (p1.p1 + 2 p1.p2 + p2.p2) (p1.p1 + 2 p1.p2 + p2.p2) 4 4 8 EL k2.p1 p2.p2 4 EL k2.p2 p2.p2 -------------------------- + --------------------------)}} 2 2 (p1.p1 + 2 p1.p2 + p2.p2) (p1.p1 + 2 p1.p2 + p2.p2) :[font = subsection; inactive; Cclosed; preserveAspect; startGroup; ] ================================ Examine Mandelstam Variables :[font = input; preserveAspect; ] SetMandelstam[s,t,u,p1,p2,-k2,-k1,q,0,ME,ME]; :[font = input; Cclosed; preserveAspect; startGroup; ] ( {ScalarProduct[p1+p2,p1+p2] ,ScalarProduct[p1-k2,p1-k2] ,ScalarProduct[p1-k1,p1-k1]} //ExpandScalarProduct //Simplify ) :[font = output; output; inactive; preserveAspect; endGroup; endGroup; ] {s, t, u} ;[o] {s, t, u} :[font = subsection; inactive; Cclosed; preserveAspect; startGroup; ] ================================ Evaluate Square Amps :[font = input; preserveAspect; ] q /: q^2 =-Q^2; :[font = input; preserveAspect; ] msquared2=msquared2 //ExpandScalarProduct; :[font = input; Cclosed; preserveAspect; startGroup; ] msquared3= TrickMandelstam[ msquared2, {s,t,u,-Q^2+2 ME^2}] :[font = output; output; inactive; preserveAspect; endGroup; ] {{(-8*EL^4*s)/t, (8*EL^4*Q^2*u)/(s*t)}, {(8*EL^4*Q^2*u)/(s*t), (-8*EL^4*t)/s}} ;[o] 4 4 2 4 2 4 -8 EL s 8 EL Q u 8 EL Q u -8 EL t {{--------, ----------}, {----------, --------}} t s t s t s :[font = input; Cclosed; preserveAspect; startGroup; ] msquared4= msquared3 /(8 EL^4) /.{ME->0} :[font = output; output; inactive; preserveAspect; endGroup; ] {{-(s/t), (Q^2*u)/(s*t)}, {(Q^2*u)/(s*t), -(t/s)}} ;[o] 2 2 s Q u Q u t {{-(-), ----}, {----, -(-)}} t s t s t s :[font = input; Cclosed; preserveAspect; startGroup; ] msquared5= Plus @@ Plus @@ msquared4 :[font = output; output; inactive; preserveAspect; endGroup; endGroup; ] -(s/t) - t/s + (2*Q^2*u)/(s*t) ;[o] 2 s t 2 Q u -(-) - - + ------ t s s t ^*)