(*^ ::[ 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.1 |..#...| :[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 -> V1V1F1aF1, Process -> {{V[1], p1, 0}, {V[1], p2, 0}} -> {{F[1], k1, ME}, {F[-1], k2, ME}}][FeynAmp[GraphName [V1V1F1aF1, T1, I1, N1], -(EL^2*LeptonSpinor[k1, ME] . DiracMatrix[li4] . (ME + DiracSlash[k1 - p2]) . DiracMatrix[li2] . LeptonSpinor[-k2, ME]*PolarizationVector[p1, li2]* PolarizationVector[p2, li4]* PropagatorDenominator[k1 - p2, ME])], FeynAmp[GraphName[V1V1F1aF1, T2, I1, N2], -(EL^2*LeptonSpinor[k1, ME] . DiracMatrix[li2] . (ME + DiracSlash[k1 - p1]) . DiracMatrix[li4] . LeptonSpinor[-k2, ME]*PolarizationVector[p1, li2]* PolarizationVector[p2, li4]* PropagatorDenominator[k1 - p1, 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"[p2, li4]* Feyn`Calc`Main`fcdot2["u[k1, ME]", "ga[li4]", "gs[k1 - p2]" + ME, "ga[li2]", "v[k2, ME]"])/ "("(k1 - p2)^2"- "ME^2")"), -((EL^2*"ep"[p1, li2]*"ep"[p2, li4]* Feyn`Calc`Main`fcdot2["u[k1, ME]", "ga[li2]", "gs[k1 - p1]" + ME, "ga[li4]", "v[k2, ME]"])/ "("(k1 - p1)^2"- "ME^2")")} ;[o] 2 {-((EL ep[p1, li2] ep[p2, li4] u[k1, ME] ga[li4] (gs[k1 - p2] + ME) ga[li2] v[k2, ME]) / 2 2 2 ((k1 - p2) - ME )), -((EL ep[p1, li2] ep[p2, li4] u[k1, ME] ga[li2] (gs[k1 - p1] + ME) ga[li4] v[k2, ME]) / 2 2 ((k1 - p1) - 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(*)"[p1, "li2*"]*"ep(*)"[p2, "li4*"]* Feyn`Calc`Main`fcdot2["v[k2, ME]", "ga[li2*]", "gs[k1 - p2]" + ME, "ga[li4*]", "u[k1, ME]"])/ "("(k1 - p2)^2"- "ME^2")"), -((EL^2*"ep(*)"[p1, "li2*"]*"ep(*)"[p2, "li4*"]* Feyn`Calc`Main`fcdot2["v[k2, ME]", "ga[li4*]", "gs[k1 - p1]" + ME, "ga[li2*]", "u[k1, ME]"])/ "("(k1 - p1)^2"- "ME^2")")} ;[o] 2 {-((EL ep(*)[p1, li2*] ep(*)[p2, li4*] v[k2, ME] ga[li2*] (gs[k1 - p2] + ME) ga[li4*] u[k1, ME])\ 2 2 / ((k1 - p2) - ME )), 2 -((EL ep(*)[p1, li2*] ep(*)[p2, li4*] v[k2, ME] ga[li4*] (gs[k1 - p1] + ME) ga[li2*] u[k1, ME])\ 2 2 / ((k1 - p1) - 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*((4*EL^4*k1"."k1*k1"."k2)/ (k1"."k1 - 2*k1"."p2 + p2"."p2)^2 - (8*EL^4*k1"."k1*k2"."p2)/ (k1"."k1 - 2*k1"."p2 + p2"."p2)^2 + (8*EL^4*k1"."p2*k2"."p2)/ (k1"."k1 - 2*k1"."p2 + p2"."p2)^2 - (4*EL^4*k1"."k2*p2"."p2)/ (k1"."k1 - 2*k1"."p2 + p2"."p2)^2), (-32*EL^4*k1"."k2*"("k1 - p1")"".""("k1 - p2")")/ ((k1"."k1 - 2*k1"."p1 + p1"."p1)* (k1"."k1 - 2*k1"."p2 + p2"."p2))}, {(-32*EL^4*k1"."k2*"("k1 - p1")"".""("k1 - p2")")/ ((k1"."k1 - 2*k1"."p1 + p1"."p1)* (k1"."k1 - 2*k1"."p2 + p2"."p2)), 4*((4*EL^4*k1"."k1*k1"."k2)/ (k1"."k1 - 2*k1"."p1 + p1"."p1)^2 - (8*EL^4*k1"."k1*k2"."p1)/ (k1"."k1 - 2*k1"."p1 + p1"."p1)^2 + (8*EL^4*k1"."p1*k2"."p1)/ (k1"."k1 - 2*k1"."p1 + p1"."p1)^2 - (4*EL^4*k1"."k2*p1"."p1)/(k1"."k1 - 2*k1"."p1 + p1"."p1)^2) }} ;[o] 4 4 4 EL k1.k1 k1.k2 8 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.p2 k2.p2 4 EL k1.k2 p2.p2 -------------------------- - --------------------------), 2 2 (k1.k1 - 2 k1.p2 + p2.p2) (k1.k1 - 2 k1.p2 + p2.p2) 4 -32 EL k1.k2 (k1 - p1).(k1 - p2) ---------------------------------------------------}, (k1.k1 - 2 k1.p1 + p1.p1) (k1.k1 - 2 k1.p2 + p2.p2) 4 -32 EL k1.k2 (k1 - p1).(k1 - p2) {---------------------------------------------------, (k1.k1 - 2 k1.p1 + p1.p1) (k1.k1 - 2 k1.p2 + p2.p2) 4 4 4 EL k1.k1 k1.k2 8 EL k1.k1 k2.p1 4 (-------------------------- - -------------------------- + 2 2 (k1.k1 - 2 k1.p1 + p1.p1) (k1.k1 - 2 k1.p1 + p1.p1) 4 4 8 EL k1.p1 k2.p1 4 EL k1.k2 p1.p1 -------------------------- - --------------------------)}} 2 2 (k1.k1 - 2 k1.p1 + p1.p1) (k1.k1 - 2 k1.p1 + p1.p1) :[font = subsection; inactive; Cclosed; preserveAspect; startGroup; ] ================================ Examine Mandelstam Variables :[font = input; preserveAspect; ] SetMandelstam[s,t,u,p1,p2,-k1,-k2,q,0,ME,ME]; :[font = input; Cclosed; preserveAspect; startGroup; ] ( {ScalarProduct[p1+p2,p1+p2] ,ScalarProduct[p1-k1,p1-k1] ,ScalarProduct[p1-k2,p1-k2]} //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*t)/u, (-8*EL^4*Q^2*s)/(t*u)}, {(-8*EL^4*Q^2*s)/(t*u), (8*EL^4*u)/t}} ;[o] 4 4 2 4 2 4 8 EL t -8 EL Q s -8 EL Q s 8 EL u {{-------, -----------}, {-----------, -------}} u t u t u t :[font = input; Cclosed; preserveAspect; startGroup; ] msquared4= msquared3 /(8 EL^4) /.{ME->0} :[font = output; output; inactive; preserveAspect; endGroup; ] {{t/u, -((Q^2*s)/(t*u))}, {-((Q^2*s)/(t*u)), u/t}} ;[o] 2 2 t Q s Q s u {{-, -(----)}, {-(----), -}} u t u t u t :[font = input; Cclosed; preserveAspect; startGroup; ] msquared5= Plus @@ Plus @@ msquared4 :[font = output; output; inactive; preserveAspect; endGroup; endGroup; ] (-2*Q^2*s)/(t*u) + t/u + u/t ;[o] 2 -2 Q s t u ------- + - + - t u u t :[font = subsection; inactive; Cclosed; preserveAspect; startGroup; ] Note that this is the result from g+f->g+f :[font = output; input; active; Cclosed; preserveAspect; startGroup; ] photoProd= -(s/t) - t/s + (2*Q^2*u)/(s*t) ;[s] 2:0,1;41,0;42,-1; 2:1,12,10,Courier,0,12,0,0,0;1,12,10,Courier,1,12,0,0,0; :[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 :[font = subsection; inactive; preserveAspect; ] This is the crossed result from g+g->f+f :[font = input; Cclosed; preserveAspect; startGroup; ] crossed= -msquared5 /.{u -> t, t -> s, s -> u} :[font = output; output; inactive; preserveAspect; endGroup; ] -(s/t) - t/s + (2*Q^2*u)/(s*t) ;[o] 2 s t 2 Q u -(-) - - + ------ t s s t :[font = input; Cclosed; preserveAspect; startGroup; ] crossed==photoProd :[font = output; output; inactive; preserveAspect; endGroup; ] True ;[o] True ^*)