%
% Standard Model - unitary and t'Hooft-Feynman gauges.
%
option chepPDWidth=200.
option chepLPWidth=850.
keys gauge_fixing=Feynman.
keys CKMdim=1.

do_if gauge_fixing==Feynman.
    model 'SM+DM-CONT-VDM'/6.
do_else_if gauge_fixing==unitary.
    model 'SM+DM-CONT-VDM(UG)'/16.
do_else.
    write('Error: the key "gauge" should be either "Feynman" or "unitary".').
    quit.
end_if.

option ReduceGamma5=0.
let g5=gamma5.

prtcformat fullname: 'Full   Name     ', 
           name:'  P  ', aname:'  aP ', pdg:'  number  ',
           spin2,mass,width, color, aux, texname: ' LaTeX(A)       ',  
           atexname:'  LateX(A+)      '.
%%%%%%%%%%%%%% INDEPNDENT PARAMETERS %%%%%%%%%%%%%%%%%%%%%%%%%%%%

parameter  	pi=acos(-1),
 		alphaSMZ=0.1184:'Srtong alpha(MZ) for running mass calculation',
 		EE =0.31343:    'elecromagnetic constant',
  		Q  = 100:       'QCD scale'.

parameter   	Mm = 0.1057:	'muon mass',
 		Mtau = 1.777:	'tau-lepton mass',
		Ms = 0.200,
   		McMc =1.23:	'Mc(Mc)  MS-BAR',
		MbMb =4.25:	'Mb(Mb)  MS-BAR',
 		Mtop = 172.5:	't-quark pole mass',
 		MH   = 125:	'higgs mass',
 		MZ = 91.188:    'Z-boson mass',
 		MW = 80.385:    'W-boson mass',
 		wtop = 1.59:	't-quark width (tree level 1->2x)',
 		wZ = 2.49444:   'Z-boson width        (tree level 1->2x)',
 		wW = 2.08895:   'W-boson width        (tree level 1->2x)'.
		
		
parameter       s12 = 0.221: 	'Parameter of C-K-M matrix (PDG-94)',
	   	s23 = 0.040: 	'Parameter of C-K-M matrix (PDG-94)',
           	s13 = 0.0035  : 'Parameter of C-K-M matrix (PDG-94)'.
		
%%%%%%%%%%%%%% DEPNDENT PARAMETERS %%%%%%%%%%%%%%%%%%%%%%%%%%%%
external_func(alphaQCD,1).

parameter GG=sqrt(4*pi*alphaQCD(Q)).
 
parameter  	Mcp 	= McMc*(1+4/3*alphaQCD(McMc)/pi):'1 loop formula like in Hdecay',
	   	Mbp 	= MbMb*(1+4/3*alphaQCD(MbMb)/pi):'1 loop formula like in Hdecay',
		alphaE0	=1/137.036:'electromagnetic constant at zero energy',
		CW = MW/MZ:  		'on-shell cos of the Weinberg angle',
		SW = sqrt(1-CW**2): 	'sin of the Weinberg angle',
		GF = EE**2/(2*SW*MW)**2/Sqrt2: 'Fermi COnstant',
		vv=2*MW/EE*SW.


parameter  	c12  = sqrt(1-s12**2): 	'parameter  of C-K-M matrix',
           	c23  = sqrt(1-s23**2): 	'parameter  of C-K-M matrix',
           	c13  = sqrt(1-s13**2): 	'parameter  of C-K-M matrix'.
	  
external_func(initQCD5,4). 
parameter LamQCD=initQCD5(alphaSMZ,McMc,MbMb,Mtop).

external_func(MbEff,1). 
external_func(MtEff,1). 
external_func(McEff,1). 

parameter	Mb=MbEff(Q),
		Mt=MtEff(Q),
		Mc=McEff(Q).

		   
do_if CKMdim==3.
parameter  Vud = c12*c13                : 'C-K-M matrix element',
           Vus = s12*c13                : 'C-K-M matrix element',
           Vub = s13     	            : 'C-K-M matrix element',
           Vcd = (-s12*c23-c12*s23*s13) : 'C-K-M matrix element',
           Vcs = (c12*c23-s12*s23*s13)  : 'C-K-M matrix element',
           Vcb = s23*c13                : 'C-K-M matrix element',
           Vtd = (s12*s23-c12*c23*s13) 	: 'C-K-M matrix element',
           Vts = (-c12*s23-s12*c23*s13)	: 'C-K-M matrix element',
           Vtb = c23*c13  	            : 'C-K-M matrix element'.
OrthMatrix( { {Vud,Vus,Vub}, {Vcd,Vcs,Vcb}, {Vtd,Vts,Vtb}} ).

alias ckm(1,1)=Vud, ckm(2,1)=Vus, ckm(3,1)=Vub,
      ckm(1,2)=Vcd, ckm(2,2)=Vcs, ckm(3,2)=Vcb,
      ckm(1,3)=Vtd, ckm(2,3)=Vts, ckm(3,3)=Vtb.

do_else_if CKMdim==2.
parameter  Vud = c12            : 'C-K-M matrix element',
           Vus = s12    	    : 'C-K-M matrix element',
           Vcs = Vud     	    : 'C-K-M matrix element',
           Vcd = -Vus           : 'C-K-M matrix element'.
let        Vub = 0, Vcb = 0, Vtd = 0, Vts = 0, Vtb = 1.
OrthMatrix({{Vud,Vus}, {Vcd,Vcs}}).

do_else_if CKMdim==1.
let  Vub=0, Vcb=0, Vtd=0, Vts=0, Vtb=1, Vud=1, Vus=0, Vcs=1, Vcd=0.
end_if.


do_if gauge_fixing==Feynman.

vector  
	A/A: (photon, gauge),
	Z/Z:('Z boson', mass MZ, width wZ, gauge),
	G/G: (gluon, color c8, gauge),
	'W+'/'W-': ('W boson', mass MW , width wW , gauge).

do_else.

vector  
	A/A: (photon, gauge),
	Z/Z:('Z boson', mass MZ, width wZ),
	G/G: (gluon, color c8, gauge),
	'W+'/'W-': ('W boson', mass MW = MZ*CW, width wW).

end_if.

spinor 		n1:(neutrino,left), 	   e1:(electron),
		n2:('mu-neutrino',left),   e2:(muon, mass Mm),
		n3:('tau-neutrino',left),  e3:('tau-lepton', mass Mtau).

spinor		u:('u-quark',color c3),
		d:('d-quark',color c3),
		c:('c-quark',color c3, mass Mcp),
		s:('s-quark',color c3, mass Ms),
		t:('t-quark',color c3, mass Mtop, width wtop),
		b:('b-quark',color c3, mass Mbp).

scalar H/H:(Higgs, mass MH, width wH =auto, pdg 25).



			
						
let l1={n1,e1}, L1={N1,E1}.
let l2={n2,e2}, L2={N2,E2}.
let l3={n3,e3}, L3={N3,E3}.

let q1={u,d}, Q1={U,D}, q1a={u,Vud*d+Vus*s+Vub*b}, Q1a={U,Vud*D+Vus*S+Vub*B}.
let q2={c,s}, Q2={C,S}, q2a={c,Vcd*d+Vcs*s+Vcb*b}, Q2a={C,Vcd*D+Vcs*S+Vcb*B}. 
let q3={t,b}, Q3={T,B}, q3a={t,Vtd*d+Vts*s+Vtb*b}, Q3a={T,Vtd*D+Vts*S+Vtb*B}.

let B1= -SW*Z+CW*A, W3=CW*Z+SW*A, W1=('W+'+'W-')/Sqrt2,
	 W2 = i*('W+'-'W-')/Sqrt2.

do_if gauge_fixing==Feynman.

let gh1 = ('W+.c'+'W-.c')/Sqrt2, gh2= i*('W+.c'-'W-.c')/Sqrt2,
		gh3= CW*'Z.c'+SW*'A.c', gh={gh1,gh2,gh3}.

let Gh1 = ('W+.C'+'W-.C')/Sqrt2, Gh2=i*('W+.C'-'W-.C')/Sqrt2, 
		Gh3= CW*'Z.C'+SW*'A.C', Gh={Gh1,Gh2,Gh3}. 

end_if.

let WW1 = {W1,  W2 , W3}, WW = {'W+',W3,'W-'}.

let g=EE/SW, g1=EE/CW.




% Self-interaction of gauge bosons



lterm -F**2/4   where 
	F=deriv^mu*B1^nu-deriv^nu*B1^mu.

lterm -F**2/4  where
	F=deriv^mu*G^nu^a-deriv^nu*G^mu^a+i*GG*f_SU3^a^b^c*G^mu^b*G^nu^c.

lterm -F**2/4  where
F=deriv^mu*WW1^nu^a-deriv^nu*WW1^mu^a -g*eps^a^b^c*WW1^mu^b*WW1^nu^c.




% left fermion interaction with gauge fields


lterm  	anti(psi)*gamma*(1-g5)/2*(i*deriv-g*taupm*WW/2-Y*g1*B1)*psi
		where 
			psi=l1,  Y=-1/2;
			psi=l2,  Y=-1/2;
			psi=l3,  Y=-1/2;
			psi=q1a, Y= 1/6;
			psi=q2a, Y= 1/6;
			psi=q3a, Y= 1/6.

% right fermion interaction with gauge fields

lterm  	anti(psi)*gamma*(1+g5)/2*(i*deriv - Y*g1*B1)*psi
		where 
			psi=e1,Y= -1;
			psi=e2,Y= -1;
			psi=e3,Y= -1;
			psi=u, Y=  2/3;
			psi=c, Y=  2/3;
			psi=t, Y=  2/3;
			psi=d, Y= -1/3;
			psi=s, Y= -1/3;
			psi=b, Y= -1/3.


% quark-gluon interaction

lterm  GG*anti(psi)*lambda*gamma*G*psi where
	psi=q1; psi=q2; psi=q3.

do_if gauge_fixing==Feynman.

let pp = { -i*'W+.f',  (vev(2*MW/EE*SW)+H+i*'Z.f')/Sqrt2 }, 
    PP = {  i*'W-.f',  (vev(2*MW/EE*SW)+H-i*'Z.f')/Sqrt2 }.

do_else.

let pp = { 0,  (vev(2*MW/EE*SW)+H)/Sqrt2 }, 
    PP = { 0,  (vev(2*MW/EE*SW)+H)/Sqrt2 }.
    
end_if.


lterm  -M/MW/Sqrt2*g*(anti(pl)*(1+g5)/2*pr*pp + anti(pr)*(1-g5)/2*pl*PP )
    where
	M=Vud*0,  pl=q1a, pr=d;          % 0 stands for Md 
	M=Vus*Ms, pl=q1a, pr=s;
	M=Vub*Mb, pl=q1a, pr=b;
	M=Vcd*0,  pl=q2a, pr=d;
	M=Vcs*Ms, pl=q2a, pr=s;
	M=Vcb*Mb, pl=q2a, pr=b;
	M=Vtd*0,  pl=q3a, pr=d;
	M=Vts*Ms, pl=q3a, pr=s;
	M=Vtb*Mb, pl=q3a, pr=b.


lterm  -M/MW/Sqrt2*g*(anti(pl)*(1+g5)/2*i*tau2*pr*PP 
		+ anti(pr)*(1-g5)/2*i*pl*tau2*pp ) 
 where
	M=0 ,  pl=q1a, pr=u;
	M=Mc,  pl=q2a, pr=c;
	M=Mtop,pl=q3a, pr=t.

lterm  -M/MW/Sqrt2*g*(anti(pl)*(1+g5)/2*pr*pp + anti(pr)*(1-g5)/2*pl*PP )
    where
	M=Mm,  pl=l2,  pr=e2;
	M=Mtau,  pl=l3,  pr=e3.
	


lterm -2*lambda*(pp*PP-v**2/2)**2  where 
	lambda=(g*MH/MW)**2/16, v=2*MW*SW/EE.



let Dpp^mu^a = (deriv^mu+i*g1/2*B1^mu)*pp^a +
	 i*g/2*taupm^a^b^c*WW^mu^c*pp^b.

let DPP^mu^a = (deriv^mu-i*g1/2*B1^mu)*PP^a 
	-i*g/2*taupm^a^b^c*{'W-'^mu,W3^mu,'W+'^mu}^c*PP^b.

	

lterm DPP*Dpp.


lterm -i*GG*f_SU3*ccghost(G)*G^mu*deriv^mu*ghost(G).
lterm  -1/2*(deriv*G)**2.

do_if gauge_fixing==Feynman.

%lterm -g*eps*gh*WW1*deriv*Gh.

lterm g*eps*deriv*Gh*gh*WW1.


lterm  -1/2*(deriv*A)**2.


lterm  -1/2*(2*(deriv*'W+'+MW*'W+.f')*(deriv*'W-'+MW*'W-.f') +
	(deriv*Z+MW/CW*'Z.f')**2).


lterm -MW*EE/2/SW*((H+i*'Z.f')*('W-.C'*'W+.c' + 'W+.C'*'W-.c')
    		+H*'Z.C'*'Z.c'/CW**2-2*i*'Z.f'*'W+.C'*'W-.c').

lterm i*EE*MW/2/CW/SW*(
	'W+.f'*('W-.C'*'Z.c'*(1-2*SW**2)+'W-.c'*'Z.C'
			+2*CW*SW*'W-.C'*'A.c') -
	'W-.f'*('W+.C'*'Z.c'*(1-2*SW**2)+'W+.c'*'Z.C'
			+2*CW*SW*'W+.C'*'A.c')).
end_if.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%% HGG+HAA PART %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

external_func(McRun,1).
external_func(MbRun,1).
external_func(MtRun,1).
external_func(HggF,1).
external_func(HggV,1).
external_func(Hgam1F,1).
external_func(alphaQCD,1).

parameter	aQCD =alphaQCD(MH)/pi.


parameter 	Qu=2/3, Qd=-1/3,
		tau2c =(MH/2/McRun(MH/2))**2,
		tau2b =(MH/2/MbRun(MH/2))**2,
		tau2t =(MH/2/MtRun(MH/2))**2,
		tau2l =(MH/2/Mtau)**2,
		tau2W =(MH/2/MW)**2.
		
parameter	Rqcd=1+149/12*aQCD+68.6482*aQCD**2-212.447*aQCD**3,
		Cq=1+11/4*aQCD,
		lnTop=2*log(Mtop/MH),
		Ctop=1+11/4*aQCD+ 
		(6.1537-2.8542*lnTop)*aQCD**2
		+(10.999-17.93*lnTop+5.47*lnTop**2)*aQCD**3.


parameter LmbdAA=
		-alphaE0/(8*pi)*EE/(2*MW*SW)*cabs( 
		3*Qu**2*(HggF(tau2c)*(1+aQCD*Hgam1F(tau2c)) 			
		+HggF(tau2t)*(1+aQCD*Hgam1F(tau2t)))
		+3*Qd**2*HggF(tau2b)*(1+aQCD*Hgam1F(tau2b))
		+HggF(tau2l)+HggV(tau2W)).

parameter LmbdGG=    		
		-aQCD/16*sqrt(Rqcd)*EE/(2*SW*MW)*cabs(
		 HggF((MH/2/Mcp)**2)*Cq
		+HggF((MH/2/Mbp)**2)*Cq 
		+HggF((MH/2/Mtop)**2)*Ctop).

lterm LmbdAA*H*F**2
 	where
	F=deriv^mu*A^nu-deriv^nu*A^mu.

lterm LmbdGG*H*F**2
 	where
	F=deriv^mu*G^nu^a-deriv^nu*G^mu^a.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%% EFFECTIVE Vector DM Interactions %%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%% from paper 1508.04466 %%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
vector  	'~vdm'/'~Vdm': (VDM, mass Mvdm=100, pdg 9000003).

parameter Lam=1000.
parameter  gV1,gV2,gV3,gV4,gV5,gV6,gV7P,gV7M,gV8P,gV8M,gV9P,gV9M,gV10P,gV10M,gV11,gV12.

let gm^m2^m3 = delta(vector)^m2^m3.
let epsgam^i^j^m2^m3^m4 =-i*(gm^m2^m3*gamma^i^k^m4+gm^m3^m4*gamma^i^k^m2-gm^m2^m4*gamma^i^k^m3-gamma^i^l^m2*gamma^l^n^m3*gamma^n^k^m4)*gamma5^k^j.
let epsgam2^i^k^m2^m3^m4 =-i*(gm^m2^m3*gamma^i^k^m4+gm^m3^m4*gamma^i^k^m2-gm^m2^m4*gamma^i^k^m3-gamma^i^l^m2*gamma^l^n^m3*gamma^n^k^m4).


%%%%%%%%%%%%%%%%%%%%%

% % %%%%%%% V1 %%%%%%%
lterm gV1/Lam*anti('~vdm')*'~vdm'*(anti(q)*q)
   where
   q=u; q=d ; q=s; q=c.

% % % %%%%%%% V2 %%%%%%%
lterm gV2/Lam*i*anti('~vdm')*'~vdm'*(anti(q)*gamma5*q)
    where
    q=u; q=d ; q=s; q=c.

% % % %%%%%%% V3 %%%%%%%
lterm gV3/(2*Lam**2)*i*(anti('~vdm')^nu*deriv^mu*'~vdm'^nu - '~vdm'^nu*deriv^mu*anti('~vdm')^nu)*(anti(q)*gamma^mu*q)
    where
    q=u; q=d ; q=s; q=c.

% % % %%%%%%% V4 %%%%%%%
lterm gV4/(2*Lam**2)*i*(anti('~vdm')^nu*deriv^mu*'~vdm'^nu - '~vdm'^nu*deriv^mu*anti('~vdm')^nu)*(anti(q)*gamma^mu*gamma5*q)
    where
    q=u; q=d ; q=s; q=c.

%%%%%%% V5 %%%%%%%
lterm gV5/Lam*i*anti('~vdm')^mu*'~vdm'^nu*(anti(q)*i*(gamma^mu*gamma^nu-gamma^nu*gamma^mu)/2*q)
   where
   q=u; q=d ; q=s; q=c.

% % % %%%%%%% V6 %%%%%%%
lterm gV6/Lam*anti('~vdm')^mu*'~vdm'^nu*(anti(q)*i*(gamma^mu*gamma^nu-gamma^nu*gamma^mu)/2*gamma5*q)
   where
   q=u; q=d ; q=s; q=c.

% % %%%%%%% V7+ %%%%%%%
lterm gV7P/(2*Lam**2)*(anti('~vdm')^nu*deriv^nu*'~vdm'^mu + '~vdm'^nu*deriv^nu*anti('~vdm')^mu)*(anti(q)*gamma^mu*q)
   where
   q=u; q=d ; q=s; q=c.

% % %%%%%%% V7- %%%%%%%
lterm gV7M/(2*Lam**2)*i*(anti('~vdm')^nu*deriv^nu*'~vdm'^mu - '~vdm'^nu*deriv^nu*anti('~vdm')^mu)*(anti(q)*gamma^mu*q)
   where
   q=u; q=d ; q=s; q=c.

% % %%%%%%% V8+ %%%%%%%
lterm gV8P/(2*Lam**2)*(anti('~vdm')^nu*deriv^nu*'~vdm'^mu + '~vdm'^nu*deriv^nu*anti('~vdm')^mu)*(anti(q)*gamma^mu*gamma5*q)
   where
   q=u; q=d ; q=s; q=c.

% % %%%%%%% V8- %%%%%%%
lterm gV8M/(2*Lam**2)*i*(anti('~vdm')^nu*deriv^nu*'~vdm'^mu - '~vdm'^nu*deriv^nu*anti('~vdm')^mu)*(anti(q)*gamma^mu*gamma5*q)
   where
   q=u; q=d ; q=s; q=c.

% %%%%%%% V9+ %%%%%%%
lterm gV9P/(2*Lam**2)*(anti('~vdm')^b*deriv^c*'~vdm'^d + '~vdm'^b*deriv^c*anti('~vdm')^d)*(anti(q)*epsgam^b^c^d*q)
   where
   q=u; q=d ; q=s; q=c.

% %%%%%%% V9- %%%%%%%
lterm gV9M/(2*Lam**2)*i*(anti('~vdm')^b*deriv^c*'~vdm'^d - '~vdm'^b*deriv^c*anti('~vdm')^d)*(anti(q)*epsgam^b^c^d*q)
  where
  q=u; q=d ; q=s; q=c.

% %%%%%%% V10+ %%%%%%%
lterm gV10P/(2*Lam**2)*(anti('~vdm')^b*deriv^c*'~vdm'^d + '~vdm'^b*deriv^c*anti('~vdm')^d)*(anti(q)*epsgam2^b^c^d*q)
  where
  q=u; q=d ; q=s; q=c.

% %%%%%%% V10- %%%%%%%
lterm gV10M/(2*Lam**2)*i*(anti('~vdm')^b*deriv^c*'~vdm'^d - '~vdm'^b*deriv^c*anti('~vdm')^d)*(anti(q)*epsgam2^b^c^d*q)
   where
   q=u; q=d ; q=s; q=c.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


let FGG^m^n^a=deriv^m*G^n^a-deriv^n*G^m^a+i*GG*f_SU3^a^b^c*G^m^b*G^n^c.
let FGGt^m^n^a=(1/2)*epsv^m^n^k^l*FGG^k^l^a.

% %%%%%%% V11 %%%%%%%
lterm gV11/(Lam**2)*anti('~vdm')*'~vdm'*FGG*FGG.

% %%%%%%% V12 %%%%%%%
lterm gV12/(Lam**2)*anti('~vdm')*'~vdm'*FGGt*FGG.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SetAngle(1-SW**2=CW**2).
SetEM(A,EE).
CheckHerm.





