<<X`

1. Define the kinematics

Definition of initial/final masses

Min1=M;
Min2=M;
Mfin1=m;
Mfin2=m;

Definition of kinematics

p1.p1=(Min1^2);
p2.p2=(Min2^2);
q1.q1=(Mfin1^2);
q2.q2=(Mfin2^2);

(* Combination of momenta to be used in the Mandelstam variables *)
ps1=p1+p2;
ps2=q1+q2;
pt1=p1-q1;
pt2=p2-q2;
pu1=p1-q2;
pu2=p2-q1;

(* Mandelstam variables *)
onshell=Solve[{ps1.ps1==s, ps2.ps2==s, pt1.pt1==t, pt2.pt2==t, pu1.pu1==u, pu2.pu2==u}, {p1.p2, q1.q2, p1.q1, p2.q2, p1.q2, p2.q1}][[1]]/.u-> 2 (m^2)+2 (M^2)-s-t

2. Amplitude squared and mediated

Asq = (1/2)*(1/2)* ((((y/Λ)))^2)* Spur[(γ.p2 - M 𝟙), γ.p1+M 𝟙]/.onshell

3. Cross section

dσ = (Asq/(4 (Sqrt[(((p1.p2))^2)- (Min1^2) (Min2^2)])))(Sqrt[(1-((((Mfin1-Mfin2))^2)/s))(1-((((Mfin1+Mfin2))^2)/s))]) ((2π dcosθ)/(32(π^2)))/.onshell//FullSimplify

We now integrate over dcosθ in the interval (-1, +1)

Xsec = Integrate[((dσ)/(dcosθ)), {cosθ, -1, 1}]

Loops

Vertex[μ_]:= I e Qf  (Subscript[γ, μ])
numF[p_, m_]:= I(γ.p+ m 𝟙)
denF[p_, m_]:={p, m};

Incoming/outgoing momentum: q
Momentum in the lower part of the loop: k (direction of the fermion line)
Momentum in the upper part of the loop: q+k (direction of the fermion line)

Loopnum = -(*FERMION LOOP*)Spur[numF[k,m], Vertex[ν], numF[q+k, m], Vertex[μ]]

loop=(I/(16(π^2)))LoopIntegrate[Loopnum, k, denF[k,m], denF[q+k, m]]

loop2=LoopRefine[loop]/.(1/ϵ)+Log[((µ^2)/(m^2))]-> div

Checks

loop2//Longitudinal

Collect[loop2//Transverse//Simplify, div]

loop3=Collect[loop2//Transverse//Simplify, div]//DiscExpand

Limit[(loop3/(q.q))/.q.q-> q2, q2->0]