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;