NLOModels: type_iii.fr

File type_iii.fr, 12.3 KB (added by Benjamin Fuks, 20 months ago)
Line 
1(* ****************************************************************** *)
2(* ***** ***** *)
3(* ***** FeynRules model file supplementing the reduced SM ***** *)
4(* ***** with a type-III seesaw ***** *)
5(* ***** ***** *)
6(* ***** Author: Benjamin Fuks ***** *)
7(* ***** ***** *)
8(* ****************************************************************** *)
9
10(* ************************** *)
11(* ***** Setup ***** *)
12(* ************************** *)
13M$ModelName = "TypeIII";
14M$Information = { Authors -> {"B. Fuks"}, Version -> "1.0", Date -> "14.11.2022" };
15FeynmanGauge = True;
16
17
18(* ************************** *)
19(* **** Particle classes **** *)
20(* ************************** *)
21
22IndexRange[Index[LepGen]] = Range[4]; IndexStyle[LepGen,f];
23
24M$ClassesDescription = {
25
26 (* Fermions: physical fields *)
27 F[1] == {
28 ClassName -> vi, ClassMembers -> {v1,v2,v3,Sig0}, Indices -> {Index[LepGen]}, FlavorIndex -> LepGen,
29 SelfConjugate -> True, WeylComponents->viw,
30 Mass -> {Mvi, {Mv1, 0.05*^-9}, {Mv2, Internal}, {Mv3, Internal}, {MSigma, 100. }}, Width -> {0, 0, 0, {WSig0,1.1}}, PDG -> {12,14,16,9000018}
31 },
32 F[2] == {
33 ClassName -> l, ClassMembers -> {e,mu,ta,SigM}, Indices -> {Index[LepGen]}, FlavorIndex -> LepGen,
34 SelfConjugate -> False, WeylComponents->{lLw,lRwbar}, QuantumNumbers -> {Q -> -1},
35 Mass -> {Ml, {Me,5.11*^-4}, {MMU,0.10566}, {MTA,1.777}, {MSigma, 100.}}, Width -> {0, 0, 0, {WSigM, 1.2} }, PDG -> {11,13,15, 9000017},
36 ParticleName -> {"e-", "mu-", "ta-", "sig-"}, AntiParticleName -> {"e+", "mu+", "ta+", "sig+"}
37 },
38
39 (* Weyl components of the physical fermions *)
40 W[5] == { ClassName->viw, Unphysical->True, Chirality->Left, SelfConjugate->False, Indices->{Index[LepGen]}, FlavorIndex->LepGen },
41 W[6] == { ClassName->lLw, Unphysical->True, Chirality->Left, SelfConjugate->False, Indices->{Index[LepGen]}, FlavorIndex->LepGen },
42 W[7] == { ClassName->lRw, Unphysical->True, Chirality->Left, SelfConjugate->False, Indices->{Index[LepGen]}, FlavorIndex->LepGen },
43
44 (* Weyl components of the SM fermions *)
45 W[11] == {
46 ClassName->LLw, Unphysical->True, Chirality->Left, Indices->{Index[SU2D],Index[Generation]}, FlavorIndex->SU2D,
47 SelfConjugate->False, QuantumNumbers->{Y->-1/2},
48 Definitions -> {
49 LLw[sp_,1,ff_] :> Module[{ff2}, U0lp[ff,ff2]*viw[sp,ff2]],
50 LLw[sp_,2,ff_] :> Module[{ff2}, ULlp[ff,ff2]*lLw[sp,ff2]]
51 }
52 },
53 W[22] == {
54 ClassName->ERw, Unphysical->True, Chirality->Left, Indices->{Index[Generation]}, FlavorIndex->Generation,
55 SelfConjugate->False, QuantumNumbers->{Y->1},
56 Definitions -> { ERw[sp_,ff_] :> Module[{ff2}, URlp[ff,ff2] lRw[sp,ff2]] }
57 },
58
59 (* Weyl components of the triplets *)
60 W[21] == {
61 ClassName->Sigw, Unphysical->True, Chirality->Left, SelfConjugate->False, Indices->{Index[SU2W]}, FlavorIndex->SU2W,
62 Definitions->{
63 Sigw[sp_,1] :> Module[{ff2}, (UL[4,ff2]*lLw[sp,ff2] + Conjugate[UR[4,ff2]]*lRw[sp,ff2])/Sqrt[2] ],
64 Sigw[sp_,2] :> Module[{ff2}, (UL[4,ff2]*lLw[sp,ff2] - Conjugate[UR[4,ff2]]*lRw[sp,ff2])/(I*Sqrt[2]) ],
65 Sigw[sp_,3] :> Module[{ff2}, U0[4,ff2] * viw[sp,ff2] ]
66 }
67 }
68};
69
70
71(* ************************** *)
72(* ***** Parameters ***** *)
73(* ************************** *)
74
75M$Parameters = {
76
77 (* Neutrino masses and mass differences*)
78 dmsq21 == { ParameterType -> External, Value -> 7.39*^-23, TeX -> Subsuperscript["\[CapitalDelta]m",21,2], BlockName -> MNU, OrderBlock -> 2, Description -> "Solar mass splitting squared" },
79 dmsq31 == { ParameterType -> External, Value -> 2.50*^-21, TeX -> Subsuperscript["\[CapitalDelta]m",31,2], BlockName -> MNU, OrderBlock -> 3, Description -> "Atmospheric mass splitting squared" },
80 Mv2 == { ParameterType -> Internal, Value -> Sqrt[Mv1^2 + dmsq21], TeX -> Subscript[m, "\[Nu]2"] },
81 Mv3 == { ParameterType -> Internal, Value -> Sqrt[Mv1^2 + dmsq31], TeX -> Subscript[m, "\[Nu]3"] },
82
83 (* New fermion Yukawa interactions Lagrangian external parameters *)
84 ySigma == {
85 ParameterType -> External, TeX -> Subscript[y, \[Sigma]], Indices -> {Index[Generation]}, BlockName -> YSIGMA, Description -> "Sigma Yukawa couplings",
86 InteractionOrder->{QED,1}, ComplexParameter->False, Value -> {{ySigma[1]->0.01, ySigma[2]->0.02, ySigma[3]->0.03}}
87 },
88
89 (* Neutrino oscillation data matrix *)
90 th12 == { ParameterType -> External, Value -> 0.59, TeX -> Subscript[\[Theta], 12], BlockName -> PMNS, OrderBlock -> 1, Description -> "Solar mixing angle - theta12" },
91 th23 == { ParameterType -> External, Value -> 0.87, TeX -> Subscript[\[Theta], 23], BlockName -> PMNS, OrderBlock -> 2, Description -> "Atmospheric mixing angle - theta23" },
92 th13 == { ParameterType -> External, Value -> 0.15, TeX -> Subscript[\[Theta], 13], BlockName -> PMNS, OrderBlock -> 3, Description -> "Reactor mixing angle - theta_13" },
93 delCP == { ParameterType -> External, Value -> 0.00, TeX -> Subscript[\[Delta], CP], BlockName -> PMNS, OrderBlock -> 4, Description -> "Leptonic Dirac CP phase" },
94 phiM1 == { ParameterType -> External, Value -> 0.00, TeX -> Subscript[\[Phi], 1], BlockName -> PMNS, OrderBlock -> 5, Description -> "1st Majorana CP phase" },
95 phiM2 == { ParameterType -> External, Value -> 0.00, TeX -> Subscript[\[Phi], 2], BlockName -> PMNS, OrderBlock -> 6, Description -> "2nd Majorana CP phase" },
96
97 (* PMNS mixing matrix defined from oscillation data *)
98 PMNS == {
99 ParameterType -> Internal, Indices -> {Index[Generation],Index[Generation]}, TeX -> Superscript[V, PMNS],
100 ComplexParameter->True, Unitary->True,
101 Value -> {
102 PMNS[1,1] -> Cos[th12]*Cos[th13],
103 PMNS[1,2] -> Cos[th13]*Sin[th12]*Exp[I/2 phiM1],
104 PMNS[1,3] -> Sin[th13]*Exp[I (phiM2/2 - delCP)],
105 PMNS[2,1] -> -Cos[th23]*Sin[th12] - Cos[th12]*Sin[th13]*Sin[th23]*Exp[I delCP],
106 PMNS[2,2] -> (Cos[th12]*Cos[th23] - Sin[th12]*Sin[th13]*Sin[th23]*Exp[I delCP])*Exp[I/2 phiM1],
107 PMNS[2,3] -> Cos[th13]*Sin[th23]*Exp[I/2 phiM2],
108 PMNS[3,1] -> Sin[th12]*Sin[th23] - Cos[th12]*Cos[th23]*Sin[th13]*Exp[I delCP],
109 PMNS[3,2] -> (-Cos[th23]*Sin[th12]*Sin[th13]*Exp[I delCP] - Cos[th12]*Sin[th23])*Exp[I/2 phiM1],
110 PMNS[3,3] -> Cos[th13]*Cos[th23]*Exp[I/2 phiM2]
111 }
112 },
113
114 (* Mixing parameters : left-handed leptons *)
115 EPS == { TeX ->\[Epsilon], ParameterType->Internal, Indices->{Index[Generation],Index[Generation]}, ComplexParameter->False, Value->{EPS[i_, j_]->vev^2/(2*MSigma^2) ySigma[i] ySigma[j]} },
116
117 (* 4x4 mixing matrices *)
118 U0 == { ParameterType->Internal, Indices->{Index[LepGen],Index[LepGen]}, TeX->Superscript[U,0], ComplexParameter->True, Description->"Neutrino mixing matrix" },
119 UL == { ParameterType->Internal, Indices->{Index[LepGen],Index[LepGen]}, TeX->Subsuperscript[U,L,l], ComplexParameter->True, Description->"LH lepton mixing matrix" },
120 UR == { ParameterType->Internal, Indices->{Index[LepGen],Index[LepGen]}, TeX->Subsuperscript[U,R,l], ComplexParameter->True, Description->"RH lepton mixing matrix" },
121
122 (* 3x4 blocks of the mixing matrices *)
123 U0lp=={ ParameterType->Internal, Indices->{Index[Generation],Index[LepGen]}, TeX->Superscript[U,0], Description-> "3x4 block of the neutrino mixing matrix" },
124 ULlp=={ ParameterType->Internal, Indices->{Index[Generation],Index[LepGen]}, TeX->Subsuperscript[U,L,l], Description-> "3x4 block of the LH charged lepton mixing matrix" },
125 URlp=={ ParameterType->Internal, Indices->{Index[Generation],Index[LepGen]}, TeX->Subsuperscript[U,R,l], Description-> "3x4 block of the RH charged lepton mixing matrix" }
126};
127
128
129(* ************************************************************* *)
130(* ***** Expansion of the mixing matrices at first order ***** *)
131(* ************************************************************* *)
132ExpandMixing[exp_] := Block[{resu},
133 (* Cleaning *)
134 resu = Expand[exp] /. {CKM[a_, b_]*Conjugate[CKM[a_, c_]] :> IndexDelta[a, c]};
135
136 (* LH leptons *)
137 resu = resu /. {
138 ULlp[Index[Generation, aa_], Index[LepGen, b_]] :> KroneckerDelta[aa, b] - EPS[Index[LepGen, aa], Index[LepGen, b]] /; b < 4,
139 ULlp[aa_, Index[LepGen, 4]] :> vev/MSigma ySigma[aa],
140 UL[Index[LepGen, 4], Index[LepGen, aa_]] :> -vev/MSigma Conjugate[ySigma[Index[Generation, aa]]] /; aa < 4,
141 UL[Index[LepGen, 4], Index[LepGen, 4]] :> 1 - Plus@@Table[EPS[Index[LepGen, aa], Index[LepGen, aa]],{aa,1,3}]
142 };
143
144 (* RH leptons *)
145 resu = resu /. {
146 URlp[Index[Generation, aa_], Index[LepGen, b_]] :> If[aa == b, 1, 0] /; b < 4,
147 URlp[Index[Generation, aa_], Index[LepGen, 4]] :> vev/MSigma^2 Ml[aa] *ySigma[Index[Generation, aa]],
148 UR[Index[LepGen, 4], Index[LepGen, aa_]] :> -vev/MSigma^2 Ml[aa] * Conjugate[ySigma[Index[Generation, aa]]] /; aa < 4,
149 UR[Index[LepGen, 4], Index[LepGen, 4]] :> 1
150 };
151
152 (* Neutrinos *)
153 resu = resu //. {
154 U0lp[Index[Generation, aa_], Index[LepGen, b_]] :> PMNS[Index[Generation, aa], Index[Generation, b]] - \
155 Plus @@ Table[1/2*EPS[Index[LepGen, aa], Index[LepGen, cc]]*PMNS[Index[Generation, cc], Index[Generation, b]], {cc, 1, 3}] /; b < 4,
156 U0lp[aa_, Index[LepGen, 4]] :> vev/MSigma/Sqrt[2] ySigma[aa],
157 U0[Index[LepGen, 4], Index[LepGen, aa_]] :> Plus @@ Table[
158 -vev/MSigma/Sqrt[2] Conjugate[ySigma[Index[Generation, cc]]]*U0lp[Index[Generation, cc], Index[LepGen, aa]],
159 {cc, 1, 3}] /; aa < 4,
160 U0[Index[LepGen, 4], Index[LepGen, 4]] :> 1 - Plus@@Table[EPS[Index[LepGen, aa], Index[LepGen, aa]]/2,{aa,1,3}]
161 };
162
163 (* Simplifications *)
164 resu = Expand[resu] //. {
165 Conjugate[ySigma[ii_]] -> ySigma[ii], HC[ySigma[ii_]] -> ySigma[ii],
166 yl[Index[_, ii_], Index[_, ii_]] -> Sqrt[2] Ml[ii]/vev,
167 ySigma[Index[Generation, aa_]]*ySigma[Index[Generation, bb_]] -> EPS[Index[LepGen, aa], Index[LepGen, bb]]*MSigma^2/vev^2*2,
168 ySigma[Index[Generation, aa_]]^2 -> EPS[Index[LepGen, aa], Index[LepGen, aa]]*MSigma^2/vev^2*2,
169 ySigma[Index[Generation, aa_]]^3 -> EPS[Index[LepGen, aa], Index[LepGen, aa]]*MSigma^2/vev^2*2*ySigma[Index[Generation, aa]]
170 };
171 resu = Expand[resu] /. {
172 EPS[__]/MSigma -> 0, EPS[__]/MSigma^2 -> 0,
173 Power[EPS[__], 2] -> 0, Power[EPS[__], 3] -> 0, EPS[ii__] EPS[jj__] -> 0,
174 EPS[inds__] :> EPS[Sequence @@ Sort[{inds}]]
175 };
176 resu = OptimizeIndex /@ Expand[resu];
177
178 (* Output *)
179 resu];
180
181(* ************************** *)
182(* ***** Lagrangian ***** *)
183(* ************************** *)
184LFermions := Block[{ii,ff,mu, Lleptons, Lquarks, Ltot},
185
186 (* leptons *)
187 Lleptons = I/2 * (LLwbar[sp1,ii,ff].DC[LLw[sp2,ii,ff],mu] - DC[LLwbar[sp1,ii,ff],mu].LLw[sp2,ii,ff]) * sibar[mu,sp1,sp2] \
188 + I/2 * (ERwbar[sp1,ff].DC[ERw[sp2,ff],mu] - DC[ERwbar[sp1,ff],mu].ERw[sp2,ff]) * sibar[mu,sp1,sp2] \
189 + I/2 * (Sigwbar[sp1,ii].DC[Sigw[sp2,ii],mu] - DC[Sigwbar[sp1,ii],mu].Sigw[sp2,ii]) * sibar[mu,sp1,sp2] \
190 - 1/2 MSigma (Sigw[sp1,ii].Sigw[sp1,ii] + Sigwbar[sp1,ii].Sigwbar[sp1,ii]);
191 Lleptons = ExpandIndices[Lleptons, FlavorExpand -> {SU2W, SU2D}];
192 Lleptons = OptimizeIndex /@ Expand[WeylToDirac[Lleptons]];
193
194 (* quarks *)
195 Lquarks = I*QLbar.Ga[mu].DC[QL, mu] + I*uRbar.Ga[mu].DC[uR, mu] + I*dRbar.Ga[mu].DC[dR, mu];
196 Lquarks = ExpandIndices[Lquarks, FlavorExpand -> {SU2W, SU2D}];
197
198 (* output *)
199 Ltot = ExpandIndices /@ Expand[Lquarks+Lleptons];
200 Ltot = ExpandMixing /@ Expand[Ltot];
201 Return[Ltot];
202];
203
204
205LYukawa := Block[{sp,hh,ii,jj,ll,cc,ff1,ff2,ff3,Lleptons,Lquarks,Ltot},
206
207 (* leptons *)
208 Lleptons = yl[ff1,ff2]*LLw[sp,ii,ff1].ERw[sp,ff2]*Phibar[ii] \
209 + 2*ySigma[ff1]*Eps[ii, jj]*Phi[jj]*Ta[hh,ii,ll]*Sigw[sp,hh].LLw[sp, ll, ff1];
210 Lleptons = ExpandIndices[Lleptons, FlavorExpand -> {SU2W, SU2D}] /. ySigma[ii_?(Head[#] =!= Index &)] -> ySigma[Index[Generation, ii]];
211 Lleptons = OptimizeIndex /@ Expand[WeylToDirac[Lleptons]];
212
213 (* quarks *)
214 Lquarks = -yd[ff2,ff3] CKM[ff1,ff2] QLbar[sp,ii,ff1,cc].dR [sp,ff3,cc] Phi[ii] \
215 - yu[ff1,ff2] QLbar[sp,ii,ff1,cc].uR [sp,ff2,cc] Phibar[jj] Eps[ii,jj];
216 Lquarks = ExpandIndices[Lquarks, FlavorExpand -> {SU2W, SU2D}]/.{CKM[a_,b_]*Conjugate[CKM[a_,c_]] :> IndexDelta[a,c]};
217
218 (* output *)
219 Ltot = ExpandMixing /@ Expand[ExpandIndices /@ (Lleptons+Lquarks+ HC[Lleptons+Lquarks])];
220 Return[Ltot];
221 ];
222
223
224LTypeIII := {ExpandIndices[LGauge], LFermions, ExpandIndices[LHiggs], LYukawa, ExpandIndices[LGhost]};
225