csts1={sw2->0.23,cw2->0.77,mz2->91.2^2,alfa->1/137,GeV2pb->0.389379*10^9}
csts2={mw2->mz2*cw2,ga->-1/4,gv->-1/4+sw2,e->Sqrt[4 Pi alfa],g->Sqrt[4 Pi alfa/sw2]} /. csts1

csts=Flatten[{csts1,csts2}]


Kinematics1={sp[p1,p1]->0,sp[p2,p2]->0,sp[p3,p3]->mw2,sp[p4,p4]->mw2}
Kinematics2={sp[p1,p2]->1/2 s,sp[p1,p3]->s/4*(1-be[s]*Cos[t])}
Kinematics3={sp[p3,p4]->s/4*(1+be[s]^2),sp[p1,p4]->s/4*(1+be[s]*Cos[t])}
Kinematics4={sp[p2,p3]->s/4*(1+be[s]*Cos[t]),sp[p2,p4]->s/4*(1-be[s]*Cos[t])}
Kinematics=Flatten[{Kinematics1,Kinematics2,Kinematics3,Kinematics4}]
valor1={mz2->91.2^2,mw2->80^2,s->200^2,t->Pi/4}
valor2={mz2->91.2^2,mw2->80^2,s->200^2,t->Pi/8}


ans1=
-((e^4*((s*(12*mw2^3 - mw2^2*(2 - (4*mw2)/s)*s - 
             (3*mw2*(2 - (4*mw2)/s)^2*s^2)/8 - ((2 - (4*mw2)/s)^3*s^3)/32))/
         2 + (s*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t])*
           ((mw2^2*s*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t]))/2 - 
             (mw2*(2 - (4*mw2)/s)*s^2*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t]))/
              4 - ((2 - (4*mw2)/s)^2*s^3*
                (1 - Sqrt[1 - (4*mw2)/s]*Cos[t]))/64 + 
             (3*mw2^2*s*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/2 - 
             (mw2*(2 - (4*mw2)/s)*s^2*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/
              4 + ((2 - (4*mw2)/s)^2*s^3*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/
              64))/2 + (s*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t])*
           ((s*(6*mw2^2 - mw2*(2 - (4*mw2)/s)*s + 
                  ((2 - (4*mw2)/s)^2*s^2)/16)*
                (1 - Sqrt[1 - (4*mw2)/s]*Cos[t]))/4 + 
             (s*(2*mw2^2 - mw2*(2 - (4*mw2)/s)*s - 
                  ((2 - (4*mw2)/s)^2*s^2)/16)*
                (1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/4))/2))/(mw2^2*s^2))

ans2=
-((g^4*(ga^2 + gv^2)*((s*(12*mw2^3 - mw2^2*(2 - (4*mw2)/s)*s - 
             (3*mw2*(2 - (4*mw2)/s)^2*s^2)/8 - ((2 - (4*mw2)/s)^3*s^3)/32))/
         2 + (s*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t])*
           ((mw2^2*s*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t]))/2 - 
             (mw2*(2 - (4*mw2)/s)*s^2*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t]))/
              4 - ((2 - (4*mw2)/s)^2*s^3*
                (1 - Sqrt[1 - (4*mw2)/s]*Cos[t]))/64 + 
             (3*mw2^2*s*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/2 - 
             (mw2*(2 - (4*mw2)/s)*s^2*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/
              4 + ((2 - (4*mw2)/s)^2*s^3*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/
              64))/2 + (s*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t])*
           ((s*(6*mw2^2 - mw2*(2 - (4*mw2)/s)*s + 
                  ((2 - (4*mw2)/s)^2*s^2)/16)*
                (1 - Sqrt[1 - (4*mw2)/s]*Cos[t]))/4 + 
             (s*(2*mw2^2 - mw2*(2 - (4*mw2)/s)*s - 
                  ((2 - (4*mw2)/s)^2*s^2)/16)*
                (1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/4))/2))/(mw2^2*(mz2 - s)^2))

ans3=
(g^4*(-(mw2*s*(mw2^2 + mw2*s*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t]) - 
            (s^2*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t])^2)/4))/2 + 
      2*((mw2^2*s^2*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t])*
            (1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/16 + 
         (mw2*(2 - (4*mw2)/s)*s^3*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t])^2)/16 - 
         (mw2*s^3*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t])*
            (1 + Sqrt[1 - (4*mw2)/s]*Cos[t])^2)/16 + 
         (s^4*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t])*
            (1 + Sqrt[1 - (4*mw2)/s]*Cos[t])^3)/64)))/
  (8*mw2^2*(mw2 - (s*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/2)^2)

ans12=
(2*e^2*g^2*gv*((s*(12*mw2^3 - mw2^2*(2 - (4*mw2)/s)*s - 
           (3*mw2*(2 - (4*mw2)/s)^2*s^2)/8 - ((2 - (4*mw2)/s)^3*s^3)/32))/2 \
+ (s*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t])*
         ((mw2^2*s*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t]))/2 - 
           (mw2*(2 - (4*mw2)/s)*s^2*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t]))/4 - 
           ((2 - (4*mw2)/s)^2*s^3*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t]))/64 + 
           (3*mw2^2*s*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/2 - 
           (mw2*(2 - (4*mw2)/s)*s^2*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/4 + 
           ((2 - (4*mw2)/s)^2*s^3*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/64))/2 + 
      (s*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t])*
         ((s*(6*mw2^2 - mw2*(2 - (4*mw2)/s)*s + 
                ((2 - (4*mw2)/s)^2*s^2)/16)*
              (1 - Sqrt[1 - (4*mw2)/s]*Cos[t]))/4 + 
           (s*(2*mw2^2 - mw2*(2 - (4*mw2)/s)*s - 
                ((2 - (4*mw2)/s)^2*s^2)/16)*
              (1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/4))/2))/(mw2^2*s*(-mz2 + s))

ans13=
-(e^2*g^2*((mw2*(2 - (4*mw2)/s)*s^3*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t])^2)/64 + 
       (mw2*s^3*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t])^3)/32 - 
       (mw2*(2 - (4*mw2)/s)*s^3*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t])*
          (1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/32 + 
       (mw2*s^3*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t])^2*
          (1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/32 + 
       ((2 - (4*mw2)/s)*s^4*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t])^2*
          (1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/128 + 
       (mw2^2*s^2*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t])^2)/2 - 
       (7*mw2*(2 - (4*mw2)/s)*s^3*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t])^2)/64 - 
       (mw2*s^3*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t])*
          (1 + Sqrt[1 - (4*mw2)/s]*Cos[t])^2)/32 - 
       ((2 - (4*mw2)/s)*s^4*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t])*
          (1 + Sqrt[1 - (4*mw2)/s]*Cos[t])^2)/64 - 
       (mw2*s^3*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t])^3)/32 + 
       ((2 - (4*mw2)/s)*s^4*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t])^3)/128 + 
       (s*(4*mw2^3 - (3*mw2^2*(2 - (4*mw2)/s)*s)/4 - 
            (mw2*(2 - (4*mw2)/s)^2*s^2)/16 + 
            (mw2*s*(3*mw2 - ((2 - (4*mw2)/s)*s)/4)*
               (1 - Sqrt[1 - (4*mw2)/s]*Cos[t]))/2 + 
            (mw2^2*s*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/2 - 
            (mw2*(2 - (4*mw2)/s)*s^2*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/4 - 
            ((2 - (4*mw2)/s)^2*s^3*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/32))/2))/
  (2*mw2^2*s*(mw2 - (s*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/2))

ans23=
-(g^4*(ga + gv)*((mw2*(2 - (4*mw2)/s)*s^3*
          (1 - Sqrt[1 - (4*mw2)/s]*Cos[t])^2)/64 + 
       (mw2*s^3*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t])^3)/32 - 
       (mw2*(2 - (4*mw2)/s)*s^3*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t])*
          (1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/32 + 
       (mw2*s^3*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t])^2*
          (1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/32 + 
       ((2 - (4*mw2)/s)*s^4*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t])^2*
          (1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/128 + 
       (mw2^2*s^2*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t])^2)/2 - 
       (7*mw2*(2 - (4*mw2)/s)*s^3*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t])^2)/64 - 
       (mw2*s^3*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t])*
          (1 + Sqrt[1 - (4*mw2)/s]*Cos[t])^2)/32 - 
       ((2 - (4*mw2)/s)*s^4*(1 - Sqrt[1 - (4*mw2)/s]*Cos[t])*
          (1 + Sqrt[1 - (4*mw2)/s]*Cos[t])^2)/64 - 
       (mw2*s^3*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t])^3)/32 + 
       ((2 - (4*mw2)/s)*s^4*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t])^3)/128 + 
       (s*(4*mw2^3 - (3*mw2^2*(2 - (4*mw2)/s)*s)/4 - 
            (mw2*(2 - (4*mw2)/s)^2*s^2)/16 + 
            (mw2*s*(3*mw2 - ((2 - (4*mw2)/s)*s)/4)*
               (1 - Sqrt[1 - (4*mw2)/s]*Cos[t]))/2 + 
            (mw2^2*s*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/2 - 
            (mw2*(2 - (4*mw2)/s)*s^2*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/4 - 
            ((2 - (4*mw2)/s)^2*s^3*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/32))/2))/
  (2*mw2^2*(mz2 - s)*(mw2 - (s*(1 + Sqrt[1 - (4*mw2)/s]*Cos[t]))/2))



dSigdtGPZ=
-(GeV2pb*Sqrt[1 - (4*mw2)/s]*(-4*mw2 + s)*
     (e^4*(mz2 - s)^2 + 2*e^2*g^2*gv*(mz2 - s)*s + g^4*(ga^2 + gv^2)*s^2)*
     (-12*mw2^2 - 12*mw2*s - s^2 + (12*mw2^2 - 4*mw2*s + s^2)*Cos[t]^2))/
  (256*mw2^2*Pi*(mz2 - s)^2*s^2)

dSigdtGPZN=
(g^2*GeV2pb*Sqrt[1 - (4*mw2)/s]*(e^2*(mz2 - s) + g^2*(ga + gv)*s)*
    (Sqrt[1 - (4*mw2)/s]*s*(-120*mw2^2 + 58*mw2*s + s^2)*Cos[t] + 
      (4*mw2 - s)*(-24*mw2^2 - 56*mw2*s - 2*s^2 + 
         2*(12*mw2^2 - 4*mw2*s + s^2)*Cos[2*t] - 
         2*mw2*Sqrt[1 - (4*mw2)/s]*s*Cos[3*t] + 
         Sqrt[1 - (4*mw2)/s]*s^2*Cos[3*t])))/
  (2048*mw2^2*Pi*s*(-mz2 + s)*(-2*mw2 + s + Sqrt[1 - (4*mw2)/s]*s*Cos[t]))

dSigdtN=
-(g^4*GeV2pb*Sqrt[1 - (4*mw2)/s]*
     (16*mw2^3 + 28*mw2^2*s - 8*mw2*s^2 - s^3 - 
       2*Sqrt[1 - (4*mw2)/s]*s*(-24*mw2^2 + 10*mw2*s + s^2)*Cos[t] - 
       4*mw2*(20*mw2^2 - 21*mw2*s + 4*s^2)*Cos[t]^2 + 
       2*Sqrt[1 - (4*mw2)/s]*s*(8*mw2^2 - 6*mw2*s + s^2)*Cos[t]^3 + 
       s*(-4*mw2 + s)^2*Cos[t]^4))/
  (2048*mw2^2*Pi*(-2*mw2 + s + Sqrt[1 - (4*mw2)/s]*s*Cos[t])^2)

dSigdtG=
-(e^4*GeV2pb*Sqrt[1 - (4*mw2)/s]*(-4*mw2 + s)*
     (-12*mw2^2 - 28*mw2*s - s^2 + (12*mw2^2 - 4*mw2*s + s^2)*Cos[2*t]))/
  (512*mw2^2*Pi*s^2)

dSigdtZ=
-(g^4*GeV2pb*(ga^2 + gv^2)*Sqrt[1 - (4*mw2)/s]*(-4*mw2 + s)*
     (-12*mw2^2 - 28*mw2*s - s^2 + (12*mw2^2 - 4*mw2*s + s^2)*Cos[2*t]))/
  (512*mw2^2*Pi*(mz2 - s)^2)


dSigdtGZ=
(e^2*g^2*GeV2pb*gv*Sqrt[1 - (4*mw2)/s]*(-4*mw2 + s)*
    (-12*mw2^2 - 28*mw2*s - s^2 + (12*mw2^2 - 4*mw2*s + s^2)*Cos[2*t]))/
  (256*mw2^2*Pi*s*(-mz2 + s))



dSigdtGN=
(e^2*g^2*GeV2pb*Sqrt[1 - (4*mw2)/s]*
    (48*mw2^3 + 36*mw2^2*s - 8*mw2*s^2 - s^3 - 
      Sqrt[1 - (4*mw2)/s]*s*(-24*mw2^2 + 10*mw2*s + s^2)*Cos[t] + 
      (-48*mw2^3 + 28*mw2^2*s - 8*mw2*s^2 + s^3)*Cos[t]^2 + 
      Sqrt[1 - (4*mw2)/s]*s*(8*mw2^2 - 6*mw2*s + s^2)*Cos[t]^3))/
  (512*mw2^2*Pi*s*(-2*mw2 + s + Sqrt[1 - (4*mw2)/s]*s*Cos[t]))

dSigdtZN=
-(g^4*GeV2pb*(ga + gv)*Sqrt[1 - (4*mw2)/s]*
     (48*mw2^3 + 36*mw2^2*s - 8*mw2*s^2 - s^3 - 
       Sqrt[1 - (4*mw2)/s]*s*(-24*mw2^2 + 10*mw2*s + s^2)*Cos[t] + 
       (-48*mw2^3 + 28*mw2^2*s - 8*mw2*s^2 + s^3)*Cos[t]^2 + 
       Sqrt[1 - (4*mw2)/s]*s*(8*mw2^2 - 6*mw2*s + s^2)*Cos[t]^3))/
  (512*mw2^2*Pi*(-mz2 + s)*(-2*mw2 + s + Sqrt[1 - (4*mw2)/s]*s*Cos[t]))



fact=2*(-2*mw2 + s + Sqrt[1 - (4*mw2)/s]*s*Cos[t])/s

newfact=1+be[s]^2 + 2 be[s] x


(* Diagrama do neutrino *)


a0aux[s_]:=Coefficient[dSigdtN*fact^2,Cos[t],0]
a1aux[s_]:=Coefficient[dSigdtN*fact^2,Cos[t],1]
a2aux[s_]:=Coefficient[dSigdtN*fact^2,Cos[t],2]
a3aux[s_]:=Coefficient[dSigdtN*fact^2,Cos[t],3]
a4aux[s_]:=Coefficient[dSigdtN*fact^2,Cos[t],4]

evalN={a0[s]->a0aux[s],a1[s]->a1aux[s],a2[s]->a2aux[s],a3[s]->a3aux[s],a4[s]->a4aux[s],be[s]->Sqrt[1-4 mw2/s]}

evalNx={a0[s]->a0aux[s],a1[s]->a1aux[s],a2[s]->a2aux[s],a3[s]->a3aux[s],a4[s]->a4aux[s],be[s]->Sqrt[1-4 mw2/s],x->Cos[t]}

auxdSigdtN:=(a0[s]+a1[s]*x+a2[s]*x^2+a3[s]*x^3+a4[s]*x^4)/newfact^2 

testN:=dSigdtN-auxdSigdtN /. evalNx  // Simplify

newdSigdtN=auxdSigdtN  // Simplify

SigN=Integrate[newdSigdtN,{x,-1,1}] /. evalN // Simplify

aux2SigN:= SigN /. csts

NumSigN:=aux2SigN /. s->rs^2

SigNlimit=g^4/1536/Pi/mw2^2 rs^2 

NumSigNlimit=GeV2pb SigNlimit /.csts

TestLimit1:=Limit[SigN/s,s->Infinity]


(* Diagramas  Z Plus G *)

newdSigdtGPZ=dSigdtGPZ /. Cos[t]->x

SigGPZ=Integrate[newdSigdtGPZ,{x,-1,1}] // Simplify 

aux2SigGPZ=SigGPZ /. csts

NumSigGPZ=aux2SigGPZ /. s->rs^2


(* Interferencia Z Plus G com neutrino *)

aux0dSigdtGPZN=dSigdtGPZN*fact  //Simplify

auxdSigdtGPZN=Expand[aux0dSigdtGPZN,Trig->True]

aux1dSigdtGPZN=auxdSigdtGPZN /. {Cos[t]->x,Sin[t]->Sqrt[1-x^2]} 

aux2dSigdtGPZN= aux1dSigdtGPZN  //Simplify

b0aux[s_]:=Coefficient[aux2dSigdtGPZN,x,0]
b1aux[s_]:=Coefficient[aux2dSigdtGPZN,x,1]
b2aux[s_]:=Coefficient[aux2dSigdtGPZN,x,2]
b3aux[s_]:=Coefficient[aux2dSigdtGPZN,x,3]
b4aux[s_]:=Coefficient[aux2dSigdtGPZN,x,4]

evalGPZN={b0[s]->b0aux[s],b1[s]->b1aux[s],b2[s]->b2aux[s],b3[s]->b3aux[s],b4[s]->b4aux[s],be[s]->Sqrt[1-4 mw2/s]}

evalGPZNx={b0[s]->b0aux[s],b1[s]->b1aux[s],b2[s]->b2aux[s],b3[s]->b3aux[s],b4[s]->b4aux[s],be[s]->Sqrt[1-4 mw2/s],x->Cos[t]}

 
aux3dSigdtGPZN=(b0[s]+b1[s]*x+b2[s]*x^2+b3[s]*x^3+b4[s]*x^4)/newfact

auxtestGPZN=dSigdtGPZN-aux3dSigdtGPZN 
 
testGPZN:=auxtestGPZN  /. evalGPZNx //Simplify

newdSigdtGPZN=aux3dSigdtGPZN  //Simplify

auxSigGPZN=Integrate[newdSigdtGPZN,{x,-1,1}]  // Simplify

SigGPZN=auxSigGPZN  /. evalGPZN

aux2SigGPZN:= SigGPZN /. csts

NumSigGPZN:=aux2SigGPZN /. s->rs^2


(* Diagrama do Z *)

auxdSigdtZ=Expand[dSigdtZ,Trig->True]

aux2dSigdtZ=auxdSigdtZ /. {Cos[t]->x,Sin[t]->Sqrt[1-x^2]} 


c0aux[s_]:=Coefficient[aux2dSigdtZ,x,0]
c1aux[s_]:=Coefficient[aux2dSigdtZ,x,1]
c2aux[s_]:=Coefficient[aux2dSigdtZ,x,2]


evalZ={c0[s]->c0aux[s],c1[s]->c1aux[s],c2[s]->c2aux[s],be[s]->Sqrt[1-4 mw2/s]}
evalZx={c0[s]->c0aux[s],c1[s]->c1aux[s],c2[s]->c2aux[s],be[s]->Sqrt[1-4 mw2/s],x->Cos[t]}


aux3dSigdtZ=(c0[s]+c1[s]*x+c2[s]*x^2)

testZ:=dSigdtZ-aux3dSigdtZ /. evalZx  // Simplify

newdSigdtZ=aux3dSigdtZ  //Simplify

SigZ=Integrate[newdSigdtZ,{x,-1,1}] /. evalZ 

aux2SigZ:= SigZ /. csts

NumSigZ:=aux2SigZ /. s->rs^2




(* Diagrama do Gama *)

auxdSigdtG=Expand[dSigdtG,Trig->True]

aux2dSigdtG=auxdSigdtG /. {Cos[t]->x,Sin[t]->Sqrt[1-x^2]} 


d0aux[s_]:=Coefficient[aux2dSigdtG,x,0]
d1aux[s_]:=Coefficient[aux2dSigdtG,x,1]
d2aux[s_]:=Coefficient[aux2dSigdtG,x,2]


evalG={d0[s]->d0aux[s],d1[s]->d1aux[s],d2[s]->d2aux[s],be[s]->Sqrt[1-4 mw2/s]}
evalGx={d0[s]->d0aux[s],d1[s]->d1aux[s],d2[s]->d2aux[s],be[s]->Sqrt[1-4 mw2/s],x->Cos[t]}


aux3dSigdtG:=(d0[s]+d1[s]*x+d2[s]*x^2)

testG:=dSigdtG-aux3dSigdtG /. evalGx  // Simplify

newdSigdtG=aux3dSigdtG  //Simplify

SigG=Integrate[newdSigdtG,{x,-1,1}] /. evalG 

aux2SigG:= SigG /. csts

NumSigG:=aux2SigG /. s->rs^2



(* Interferencia do Z com Gama *)

auxdSigdtGZ=Expand[dSigdtGZ,Trig->True]

aux2dSigdtGZ=auxdSigdtGZ /. {Cos[t]->x,Sin[t]->Sqrt[1-x^2]} 


d0aux[s_]:=Coefficient[aux2dSigdtGZ,x,0]
d1aux[s_]:=Coefficient[aux2dSigdtGZ,x,1]
d2aux[s_]:=Coefficient[aux2dSigdtGZ,x,2]


evalGZ={d0[s]->d0aux[s],d1[s]->d1aux[s],d2[s]->d2aux[s],be[s]->Sqrt[1-4 mw2/s]}
evalGZx={d0[s]->d0aux[s],d1[s]->d1aux[s],d2[s]->d2aux[s],be[s]->Sqrt[1-4 mw2/s],x->Cos[t]}


aux3dSigdtGZ:=(d0[s]+d1[s]*x+d2[s]*x^2)

testGZ:=dSigdtGZ-aux3dSigdtGZ /. evalGZx  // Simplify

newdSigdtGZ=aux3dSigdtGZ  // Simplify

SigGZ=Integrate[newdSigdtGZ,{x,-1,1}] /. evalGZ 

aux2SigGZ:= SigGZ /. csts

NumSigGZ:=aux2SigGZ /. s->rs^2


(* Interferencia do G com Neutrino *)

aux0dSigdtGN=dSigdtGN*fact  //Simplify

auxdSigdtGN=Expand[aux0dSigdtGN,Trig->True]

aux1dSigdtGN=auxdSigdtGN /. {Cos[t]->x,Sin[t]->Sqrt[1-x^2]} 

aux2dSigdtGN= aux1dSigdtGN  //Simplify


e0aux[s_]:=Coefficient[aux2dSigdtGN,x,0]
e1aux[s_]:=Coefficient[aux2dSigdtGN,x,1]
e2aux[s_]:=Coefficient[aux2dSigdtGN,x,2]
e3aux[s_]:=Coefficient[aux2dSigdtGN,x,3]
e4aux[s_]:=Coefficient[aux2dSigdtGN,x,4]

evalGN={e0[s]->e0aux[s],e1[s]->e1aux[s],e2[s]->e2aux[s],e3[s]->e3aux[s],e4[s]->e4aux[s],be[s]->Sqrt[1-4 mw2/s]}
evalGNx={e0[s]->e0aux[s],e1[s]->e1aux[s],e2[s]->e2aux[s],e3[s]->e3aux[s],e4[s]->e4aux[s],be[s]->Sqrt[1-4 mw2/s],x->Cos[t]}


aux3dSigdtGN:=(e0[s]+e1[s]*x+e2[s]*x^2+e3[s]*x^3+e4[s]*x^4)/newfact

testGN:=dSigdtGN-aux3dSigdtGN /. evalGNx  // Simplify

newdSigdtGN=aux3dSigdtGN  //Simplify

SigGN=Integrate[newdSigdtGN,{x,-1,1}] /. evalGN 

aux2SigGN:= SigGN /. csts

NumSigGN:=aux2SigGN /. s->rs^2


(* Interferencia do Z com Neutrino *)

aux0dSigdtZN=dSigdtZN*fact  //Simplify

auxdSigdtZN=Expand[aux0dSigdtZN,Trig->True]

aux1dSigdtZN=auxdSigdtZN /. {Cos[t]->x,Sin[t]->Sqrt[1-x^2]} 

aux2dSigdtZN= aux1dSigdtZN  //Simplify


f0aux[s_]:=Coefficient[aux2dSigdtZN,x,0]
f1aux[s_]:=Coefficient[aux2dSigdtZN,x,1]
f2aux[s_]:=Coefficient[aux2dSigdtZN,x,2]
f3aux[s_]:=Coefficient[aux2dSigdtZN,x,3]
f4aux[s_]:=Coefficient[aux2dSigdtZN,x,4]

evalZN={f0[s]->f0aux[s],f1[s]->f1aux[s],f2[s]->f2aux[s],f3[s]->f3aux[s],f4[s]->f4aux[s],be[s]->Sqrt[1-4 mw2/s]}
evalZNx={f0[s]->f0aux[s],f1[s]->f1aux[s],f2[s]->f2aux[s],f3[s]->f3aux[s],f4[s]->f4aux[s],be[s]->Sqrt[1-4 mw2/s],x->Cos[t]}


aux3dSigdtZN:=(f0[s]+f1[s]*x+f2[s]*x^2+f3[s]*x^3+f4[s]*x^4)/newfact

testZN:=dSigdtZN-aux3dSigdtZN /. evalZNx  // Simplify

newdSigdtZN=aux3dSigdtZN   //Simplify

SigZN=Integrate[newdSigdtZN,{x,-1,1}] /. evalZN  

aux2SigZN:= SigZN /. csts

NumSigZN:=aux2SigZN /. s->rs^2



(* Total Cross Sections *)

Sig=SigG+SigZ+SigN+SigGZ+SigGN+SigZN ;

NumSig=NumSigG+NumSigZ+NumSigN+NumSigGZ+NumSigGN+NumSigZN ;




(* graficos *)

Print["Neutrino exchange cross-section"]
Plot[NumSigN,{rs,161,1000}]

Print["Total cross section"]
Plot[NumSig,{rs,161,1000}]

Print["Neutrino exchange and t0tal cros section"]
Plot[{NumSigN,NumSig},{rs,161,300}]
