Symmetric-phase SM model file#

M$ModelName = "Symmetric phase SM";

M$Information = {
	Authors -> {"Killian Bouzoud", "Jacopo Ghiglieri"},
	Institutions -> {"SUBATECH, IN2P3","SUBATECH, IN2P3"},
	Emails -> {"killian.bouzoud@subatech.in2p3.fr","jacopo.ghiglieri@subatech.in2p3.fr"},
	Date -> "14.11.2024",
	Version -> "1.1"
}

(****************)
(* Gauge groups *)
(****************)

M$GaugeGroups = {
	U1Y == {
		Abelian -> True,
		CouplingConstant -> g1,
		GaugeBoson -> B,
		Charge -> Y
	},
	SU2L == {
		Abelian -> False,
		CouplingConstant -> g2,
		GaugeBoson -> Wi,
		StructureConstant -> Eps,
		Representations -> {Ta,SU2D}
	},
	SU3C == {
		Abelian ->False,
		CouplingConstant -> g3,
		GaugeBoson -> G,
		StructureConstant -> f,
		Representations -> {T,Colour},
		DTerm -> dSUN
	}
};

(****************)
(*    Indices   *)
(****************)


IndexRange[Index[SU2W]] = NoUnfold[Range[3]];
IndexRange[Index[SU2D]] = NoUnfold[Range[2]];
IndexRange[Index[Gluon]] = NoUnfold[Range[8]];
IndexRange[Index[Colour]] = NoUnfold[Range[3]];
IndexRange[Index[Generation]] = Range[3];

IndexStyle[SU2W,j];
IndexStyle[SU2D,k];
IndexStyle[Gluon,a];
IndexStyle[Colour,m];
IndexStyle[Generation,f];

(******************)
(*    Particles   *)
(******************)

M$ClassesDescription = {
	V[1] == {
		ClassName -> B,
		SelfConjugate -> True,
		Mass -> 0,
		Width -> 0,
		PropagatorLabel -> "B",
		PropagatorType -> Sine,
		PropagatorArrow -> None
	},
	V[2] == {
		ClassName -> Wi,
		SelfConjugate -> True,
		Indices -> {Index[SU2W]},
		Mass -> 0,
		Width -> 0,
		PropagatorLabel -> "W",
		PropagatorType -> Sine,
		PropagatorArrow -> None 
	},
	V[3] == {
		ClassName -> G,
		SelfConjugate -> True,
		Indices -> {Index[Gluon]},
		Mass -> 0,
		Width -> 0,
		ParticleName -> "g",
		PropagatorLabel -> "g",
		PropagatorType -> Cycles,
		PropagatorArrow -> None 
	},
	F[1] == {
		ClassName -> lL,
		Indices -> {Index[SU2D],Index[Generation]},
		SelfConjugate -> False,
		FlavorIndex -> SU2D,
		QuantumNumbers -> {Y -> 1/2},
		Mass -> 0,
		Width -> 0,
		PropagatorLabel -> ComposedChar["l","L"],
		PropagatorType -> Straight,
		PropagatorArrow -> Forward
	},
	F[2] == {
		ClassName -> eR,
		Indices -> {Index[Generation]},
		SelfConjugate -> False,
		FlavorIndex -> Generation,
		QuantumNumbers -> {Y -> 1},
		Mass -> 0,
		Width -> 0,
		PropagatorLabel -> ComposedChar["e","R"],
		PropagatorType -> Straight,
		PropagatorArrow -> Forward
	},
	F[3] == {
		ClassName -> QL,
		Indices -> {Index[SU2D],Index[Generation],Index[Colour]},
		SelfConjugate -> False,
		FlavorIndex -> SU2D,
		QuantumNumbers -> {Y -> -1/6},
		Mass -> 0,
		Width -> 0,
		PropagatorLabel ->ComposedChar["Q","L"],
		PropagatorType -> Straight,
		PropagatorArrow -> Forward
	},
	F[4] == {
		ClassName -> uR,
		Indices -> {Index[Generation],Index[Colour]},
		SelfConjugate -> False,
		FlavorIndex -> Generation,
		QuantumNumbers -> {Y -> -2/3},
		Mass -> 0,
		Width -> 0,
		PropagatorLabel -> ComposedChar["u","R"],
		PropagatorType -> Straight,
		PropagatorArrow -> Forward
	},
	F[5] == {
		ClassName -> dR,
		Indices -> {Index[Generation],Index[Colour]},
		SelfConjugate -> False,
		FlavorIndex -> Generation,
		QuantumNumbers -> {Y -> 1/3},
		Mass -> 0,
		Width -> 0,
		PropagatorLabel -> ComposedChar["d","R"],
		PropagatorType -> Straight,
		PropagatorArrow -> Forward
	},
	S[1] == {
		ClassName -> Phi,
		Indices -> {Index[SU2D]},
		SelfConjugate -> False,
		FlavorIndex -> SU2D,
		QuantumNumbers -> {Y -> -1/2},
		Mass -> 0,
		Width -> 0,
		PropagatorLabel -> "\\Phi",
		PropagatorType -> ScalarDash,
		PropagatorArrow -> Forward
	}
};

(**************)
(* Parameters *)
(**************)

M$Parameters = {
	g1 == {
		ParameterType -> Internal
	},
	g2 == {
		ParameterType -> Internal	
	},
	g3 == {
		ParameterType -> Internal
	},
	lam == {
		ParameterType -> Internal
	},
	yu == {
		ParameterType -> Internal,
		Indices -> {Index[Generation],Index[Generation]}
	},
	ht =={
		ParameterType -> Internal,
		Description -> "Top Yukawa"
	},
	yuext == {
		ParameterType -> External,
		Indices->{Index[Generation],Index[Generation]},
		Value ->{yuext[i_,3] :> 0 /; i!=3,
		yuext[3,i_] :> 0 /; i!=3,
		yuext[i_,j_] :> 0 /; i!=3&&j!=3,
		yuext[3,3]->ht}
	}
};

(**************)
(* Lagrangian *)
(**************)


LGauge := Block[{mu,nu,ii,aa},
	-1/4 FS[B,mu,nu] FS[B,mu,nu]
	-1/4 FS[Wi,mu,nu,ii] FS[Wi,mu,nu,ii]
	-1/4 FS[G,mu,nu,aa] FS[G,mu,nu,aa] ];

LFermion := Block[{mu},
	I*(lLbar.Ga[mu].ProjM.DC[lL,mu]
	+eRbar.Ga[mu].ProjP.DC[eR,mu]
	+QLbar.Ga[mu].ProjM.DC[QL,mu]
	+uRbar.Ga[mu].ProjP.DC[uR,mu]
	+dRbar.Ga[mu].ProjP.DC[dR,mu])
];

(* add an explicit multiplication rule for the fundamental generators *)
LHiggs := Expand[Block[{mu,ii,jj},
	DC[Phibar[ii],mu] DC[Phi[ii],mu]
	- lam (Phibar[ii] Phi[ii]) (Phibar[jj] Phi [jj])] ]/. {Ta[a_, i_, j_] Ta[b_, j_, kk_] :> 
   Module[ {c}, 
	I/2  Eps[a, b, Index[SU2W, c] ] Ta[Index[SU2W, c], i, kk] + 
	 1/4 IndexDelta[a, b] IndexDelta[i, kk] ]};


LYukawa := Block[{sp,sp1,ii,jj,cc,ff1,ff2,yuk,iii,jjj},
	yuk = -yu[ff1,ff2] QLbar[sp,ii,ff1,cc].ProjP[sp,sp1].uR[sp1,ff2,cc] Phibar[jj] Eps[ii,jj];
	yuk + HC[yuk]
];

LSM := LGauge + LFermion + LHiggs + LYukawa;