DMGISM0: S2HDM.fr

File S2HDM.fr, 19.1 KB (added by GiorgioBusoni, 4 weeks ago)

FR model file

Line 
1(* **************************************************************************************** *)
2(* *****                                                                              ***** *)
3(* *****  FeynRules model file: Simplified s-channel DM models with Gauge Invariance  ***** *)
4(* *****  Author: G.Busoni                                                            ***** *)
5(* *****                                                                              ***** *)
6(* **************************************************************************************** *)
7
8
9(* ************************** *)
10(* *****  Information   ***** *)
11(* ************************** *)
12M$ModelName = "S2HDM";
13
14M$Information = {
15 Authors      -> {"G.Busoni"},
16 Institutions -> {"The University of Melbourne"},
17 Emails       -> {"giorgio.busoni@unimelb.edu.au"},
18 URLs         -> "http://feynrules.irmp.ucl.ac.be/wiki/DMsimp/", 
19 References   -> {"N. Bell et al., 1612.03475, 1710.10764"},
20 Version      -> "1.0",
21 Date         -> "2017.10.31"
22};
23
24(* ************************** *)
25(* *****  Change  log   ***** *)
26(* ************************** *)
27
28(* 2017.10.31 v1.0 - Initial release *)
29
30(***** Setting for interaction order (as e.g. used by MadGraph 5)  ******)
31(*
32M$InteractionOrderLimit = {
33    {DMS, 1}
34};
35
36M$InteractionOrderHierarchy = {
37    {QCD, 1}, {DMS, 2}, {QED, 3}
38};
39*)
40
41FR$LoopSwitches = {{Gf, MW}, {lambda12s, t2theta}};
42
43(* ************************** *)
44(* *****      vevs      ***** *)
45(* ************************** *)
46M$vevs = { {phi1[2],vev*cbeta},{phi2[2],vev*sbeta} };
47
48M$ClassesDescription = {
49
50(* ************************** *)
51(* *****     Fields     ***** *)
52(* ************************** *)
53
54F[7] == { ClassName -> Xd,
55    SelfConjugate -> False,
56    Mass -> {MXd, 300.},
57    Width -> 0,
58    ParticleName   -> "~Xd",
59    AntiParticleName -> "~Xd~",
60    PDG -> 52,
61    PropagatorLabel -> "Xd",
62    PropagatorType  -> Straight,
63    PropagatorArrow -> Forward,
64    TeX -> Subscript[X,d],
65    FullName -> "DM" },
66
67S[108] == { ClassName -> S1,
68    SelfConjugate -> True,
69    Mass -> {MS1, 200.},
70    Width -> {WS1,63.7546},
71    PDG -> 100001,
72    PropagatorLabel -> "S1",
73    PropagatorType  -> D,
74    PropagatorArrow -> None,
75    TeX -> Subscript[S,1],
76    FullName -> "S1" },
77
78S[109] == { ClassName -> S2,
79    SelfConjugate -> True,
80    Mass -> {MS2, 800.},
81    Width -> {WS2,0.525971 },
82    PDG -> 100002,
83    PropagatorLabel -> "S2",
84    PropagatorType  -> D,
85    PropagatorArrow -> None,
86    TeX -> Subscript[S,2],
87    FullName -> "S2" },
88
89S[1110] == { ClassName -> R,
90    SelfConjugate -> True,
91    Mass -> {MR, 400.},
92    Width -> {WR,65.4399},
93    PDG -> 100003,
94    PropagatorLabel -> "R",
95    PropagatorType  -> D,
96    PropagatorArrow -> None,
97    TeX -> R,
98    FullName -> "R" },
99
100S[111] == {
101    ClassName      -> HP,
102    SelfConjugate  -> False,
103    QuantumNumbers -> {Q -> 1},
104    Mass -> {MHP, 400.},
105    Width -> {WHP,63.9267},
106    ParticleName   -> "h+",
107    AntiParticleName -> "h-",
108    PDG            -> 100004,
109    PropagatorLabel -> "H+",
110    PropagatorType  -> D,
111    PropagatorArrow -> None,
112    TeX -> "H^+",
113    FullName -> "HP" },
114
115
116(* ************************************* *)
117(* *****     unphysical Fields     ***** *)
118(* ************************************* *)
119
120S[101] == {
121    ClassName     -> phi1,
122    Unphysical    -> True,
123    SelfConjugate -> False,
124    ParticleName   -> "phi1",
125    AntiParticleName -> "phi1bar",
126    Indices       -> {Index[SU2D]},
127    FlavorIndex   -> SU2D,
128    QuantumNumbers-> {Y -> 1/2},
129    Definitions    -> { phi1[1] -> cbeta phih[1] - sbeta phiH[1], phi1[2] -> cbeta phih[2] - sbeta phiH[2] },
130    FullName -> "Phi1"
131    },
132
133S[102] == {
134    ClassName     -> phi2,
135    Unphysical    -> True,
136    SelfConjugate -> False,
137    ParticleName   -> "phi2",
138    AntiParticleName -> "phi2bar",
139    Indices       -> {Index[SU2D]},
140    FlavorIndex   -> SU2D,
141    QuantumNumbers-> {Y -> 1/2},
142    Definitions    -> { phi2[1] -> sbeta phih[1] + cbeta phiH[1], phi2[2] -> sbeta phih[2] + cbeta phiH[2] },
143    FullName -> "Phi2"
144},
145
146S[103] == {
147    ClassName     -> phih,
148    Unphysical    -> True,
149    SelfConjugate -> False,
150    ParticleName   -> "phih",
151    AntiParticleName -> "phihbar",
152    Indices       -> {Index[SU2D]},
153    FlavorIndex   -> SU2D,
154    QuantumNumbers-> {Y -> 1/2},
155    Definitions    -> { phih[1] -> GP, phih[2] -> (vev + H + I G0)/Sqrt[2]  },
156    FullName -> "Phih"
157},
158
159S[104] == {
160    ClassName     -> phiH,
161    Unphysical    -> True,
162    SelfConjugate -> False,
163    ParticleName   -> "phiH",
164    AntiParticleName -> "phiHbar",
165    Indices       -> {Index[SU2D]},
166    FlavorIndex   -> SU2D,
167    QuantumNumbers-> {Y -> 1/2},
168    Definitions    -> { phiH[1] -> HP, phiH[2] -> (H0 + I R)/Sqrt[2]  },
169    FullName -> "PhiH"
170},
171
172S[105] == {
173    ClassName     -> SS,
174    Unphysical    -> True,
175    SelfConjugate -> True,
176    Definitions    -> { SS -> (vs + S0 )  },
177    FullName -> "SS"
178    },
179
180S[106] == {
181    ClassName     -> H0,
182    Unphysical    -> True,
183    SelfConjugate -> True,
184    ParticleName   -> "h0",
185    Definitions    -> { H0 -> ctheta S1 - stheta S2  },
186    FullName -> "H0"
187    },
188
189S[107] == {
190    ClassName     -> S0,
191    Unphysical    -> True,
192    SelfConjugate -> True,
193    ParticleName   -> "s0",
194    Definitions    -> { S0 -> stheta S1 + ctheta S2  },
195    FullName -> "S0"
196    }
197
198};
199
200(* ************************** *)
201(* *****   Parameters   ***** *)
202(* ************************** *) 
203M$Parameters = {
204
205(* *********************************** *)
206(* *****   External Parameters   ***** *)
207(* *********************************** *)
208
209tbeta == {
210    BlockName      -> Higgs,
211    OrderBlock     -> 1,
212    ComplexParameter -> False,
213    ParameterType  -> External,
214    Value          -> 1,
215    Description    -> "tan beta"
216},
217
218t2theta == {
219    BlockName      -> Higgs,
220    OrderBlock     -> 2,
221    ComplexParameter -> False,
222    ParameterType  -> External,
223    Value          -> -0.99,
224    Description    -> "tan 2 theta"
225},
226
227lambdaHHs == {
228    BlockName      -> Higgs,
229    OrderBlock     -> 3,
230    ComplexParameter -> False,
231    ParameterType  -> External,
232    Value          -> 1,
233    InteractionOrder -> {QED,2},
234    Description    -> "phi2^2 S^2 interaction"
235},
236
237vs == {
238    BlockName      -> Higgs,
239    OrderBlock     -> 4,
240    ComplexParameter -> False,
241    ParameterType  -> External,
242    Value          -> 4000,
243    InteractionOrder -> {QED,-1},
244    Description    -> "vs"
245},
246
247yDM == {
248    BlockName      -> Higgs,
249    OrderBlock     -> 5,
250    ComplexParameter -> False,
251    ParameterType -> External,
252    Value         -> 1,
253    InteractionOrder -> {DMS,1},
254    Description   -> "DM yukawa coupling"
255},
256
257tgammau == {
258    BlockName      -> YukawaNew,
259    OrderBlock     -> 1,
260    ComplexParameter -> False,
261    ParameterType -> External,
262    Value         -> 0.5,
263    InteractionOrder -> {DMS,1},
264    Description   -> "New Higgs up quarks yukawa coupling"
265},
266
267tgammad == {
268    BlockName      -> YukawaNew,
269    OrderBlock     -> 2,
270    ComplexParameter -> False,
271    ParameterType -> External,
272    Value         -> 1,
273    InteractionOrder -> {DMS,1},
274    Description   -> "New Higgs down quarks yukawa coupling"
275},
276
277tgammal == {
278    BlockName      -> YukawaNew,
279    OrderBlock     -> 3,
280    ComplexParameter -> False,
281    ParameterType -> External,
282    Value         -> 0,
283    InteractionOrder -> {DMS,1},
284    Description   -> "New Higgs leptons yukawa coupling"
285},
286
287AA == {
288    BlockName      -> YukawaNew,
289    OrderBlock     -> 4,
290    ComplexParameter -> False,
291    ParameterType -> External,
292    Value         -> 0.1,
293    InteractionOrder -> {DMS,1},
294    Description   -> "New Higgs light up quarks yukawa coupling"
295},
296
297BB == {
298    BlockName      -> YukawaNew,
299    OrderBlock     -> 5,
300    ComplexParameter -> False,
301    ParameterType -> External,
302    Value         -> 0.01,
303    InteractionOrder -> {DMS,1},
304    Description   -> "New Higgs light down quarks yukawa coupling"
305},
306
307(* *********************************** *)
308(* *****   Internal Parameters   ***** *)
309(* *********************************** *)
310
311cbeta == {
312    ComplexParameter -> False,
313    ParameterType -> Internal,
314    Value         -> 1/Sqrt[1+tbeta^2],
315    Description   -> "cos beta"
316},
317
318sbeta == {
319    ComplexParameter -> False,
320    ParameterType -> Internal,
321    Value         -> tbeta*cbeta,
322    Description   -> "sin beta"
323},
324
325c2theta == {
326    ComplexParameter -> False,
327    ParameterType -> Internal,
328    Value         -> 1/Sqrt[1+t2theta^2],
329    Description   -> "cos beta"
330},
331
332s2theta == {
333    ComplexParameter -> False,
334    ParameterType -> Internal,
335    Value         -> t2theta*c2theta,
336    Description   -> "sin beta"
337},
338
339ctheta == {
340    ComplexParameter -> False,
341    ParameterType -> Internal,
342    Value         -> Cos[ArcSin[s2theta]/2],
343    Description   -> "cos beta"
344},
345
346stheta == {
347    ComplexParameter -> False,
348    ParameterType -> Internal,
349    Value         -> Sin[ArcSin[s2theta]/2],
350    Description   -> "sin beta"
351},
352
353mm11 == {
354    ComplexParameter -> False,
355    ParameterType -> Internal,
356    Value         -> 1/2 (-lambda1 vev^2-lambda11s vs^2),  (*minima condition*)
357    Description   -> "m11"
358},
359
360mmss == {
361    ComplexParameter -> False,
362    ParameterType -> Internal,
363    Value         -> (- lambdas vs^2-lambda11s vev^2/2),  (*mimima condition*)
364    Description   -> "mss"
365},
366
367lambda11s == {
368    ComplexParameter -> False,
369    ParameterType  -> Internal,
370    Value          -> (stheta/ctheta)(2mm12+vs^2 lambda12s)/(2 vev vs), (*alignment condition*)
371    InteractionOrder -> {QED,2},
372    Description    -> "phi1 phi1 S^2 interaction"
373},
374
375mm12 == {
376    ComplexParameter -> False,
377    ParameterType -> Internal,
378    Value         -> 1/2 (- lambda12s vs^2), (*minima condition*)
379    Description   -> "m12"
380},
381
382mm22 == {
383    ComplexParameter -> False,
384    ParameterType -> Internal,
385    Value         -> 1/2 ((2 MHP^2 - lambda3 vev^2) - lambdaHHs vs^2),  (*masses condition*)
386    Description   -> "m22"
387},
388
389lambda5 == {
390    ComplexParameter -> False,
391    ParameterType -> Internal,
392    Value          -> lambda4 - (2 (-MHP^2 + MR^2))/vev^2, (*masses condition*)
393    InteractionOrder -> {QED,2},
394    Description   -> "lambda5"
395},
396
397lambda12s == {
398    ComplexParameter -> False,
399    ParameterType  -> Internal,
400    Value          -> (1/(2 vev vs))( t2theta ( + MR^2 + lambda5 vev^2 - 2 lambdas vs^2)), (*mixing angle definition*)
401    InteractionOrder -> {QED,2},
402    Description    -> "phi1 phi2 S^2 interaction"
403},
404
405lambdas == {
406    ComplexParameter -> False,
407    ParameterType  -> Internal,
408    Value          -> (MS1^2+MS2^2+(MS2^2-MS1^2)c2theta)/4/vs^2, (*masses*)
409    InteractionOrder -> {QED,2},
410    Description    -> "Singlet self interaction coupling"
411},
412
413lambda4 == {
414    ComplexParameter -> False,
415    ParameterType -> Internal,
416    Value          -> (-4 MHP^2 + 2 MR^2 + MS1^2 + MS2^2 + c2theta (MS1^2 - MS2^2))/(2 vev^2), (*masses*)
417    InteractionOrder -> {QED,2},
418    Description   -> "lambda4"
419},
420
421lambda1 == {
422    ComplexParameter -> False,
423    ParameterType -> Internal,
424    Value         -> MH^2/(vev^2), (*masses condition*)
425    InteractionOrder -> {QED,2},
426    Description   -> "First higgs self interaction term"
427},
428
429lambda2 == {
430    ComplexParameter -> False,
431    ParameterType -> Internal,
432    Value         -> lambda1, (*CP2*)
433    InteractionOrder -> {QED,2},
434    Description   -> "Second higgs self interaction term"
435},
436
437lambda3 == {
438    ComplexParameter -> False,
439    ParameterType -> Internal,
440    Value         -> lambda1-lambda4-lambda5, (*CP2*)
441    InteractionOrder -> {QED,2},
442    Description   -> "lambda3"
443},
444
445mm0 == {
446    ComplexParameter -> False,
447    ParameterType -> Internal,
448    Value         -> MXd - yDM*vs,
449    Description   -> "DM bare mass term"
450},
451  yuA == {
452    ParameterType    -> Internal,
453    Indices          -> {Index[Generation], Index[Generation]},
454    Definitions      -> {yuA[i_?NumericQ, j_?NumericQ] :> 0  /; (i =!= j)},
455    Value            -> {yuA[1,1] -> AA,  yuA[2,2] -> AA, yuA[3,3] -> 0},
456    InteractionOrder -> {DMS, 1},
457    TeX              -> Superscript[Y, u],
458    Description      -> "Up-type Yukawa couplings new doublet"
459  },
460  ydB == {
461    ParameterType    -> Internal,
462    Indices          -> {Index[Generation], Index[Generation]},
463    Definitions      -> {ydB[i_?NumericQ, j_?NumericQ] :> 0  /; (i =!= j)},
464    Value            -> {ydB[1,1] -> BB, ydB[2,2] -> BB, ydB[3,3] -> 0},
465    InteractionOrder -> {DMS, 1},
466    TeX              -> Superscript[Y, d],
467    Description      -> "Down-type Yukawa couplings new doublet"
468  }
469
470};
471
472
473(* ************************** *)
474(* *****   Lagrangian   ***** *)
475(* ************************** *)
476
477LHiggsKin := Block[{ii, mu, feynmangaugerules},
478feynmangaugerules = If[Not[FeynmanGauge], {G0 | GP | GPbar -> 0}, {}];
479ExpandIndices[
480DC[phi1bar[ii], mu] DC[phi1[ii], mu] +
481DC[phi2bar[ii], mu] DC[phi2[ii], mu],
482FlavorExpand -> {SU2D, SU2W}] /. feynmangaugerules];
483
484LHiggsKin2 := Block[{ii, mu, feynmangaugerules},
485feynmangaugerules = If[Not[FeynmanGauge], {G0 | GP | GPbar -> 0}, {}];
486ExpandIndices[
487DC[phihbar[ii], mu] DC[phih[ii], mu] +
488DC[phiHbar[ii], mu] DC[phiH[ii], mu],
489FlavorExpand -> {SU2D, SU2W}] /. feynmangaugerules];
490
491LSkin := Block[{mu}, DC[SS,mu] DC[SS,mu]]/2;
492
493VS := mmss SS^2/2 + lambdas SS^4/4;
494
495P1 = Block[{feynmangaugerules},
496    feynmangaugerules = If[Not[FeynmanGauge], {G0|GP|GPbar ->0}, {}];
497    {phih[1], phih[2]}/.feynmangaugerules];
498P2 = Block[{feynmangaugerules},
499    feynmangaugerules = If[Not[FeynmanGauge], {G0|GP|GPbar ->0}, {}];
500    {phiH[1], phiH[2]}/.feynmangaugerules];
501
502P1bar = HC[P1];
503P2bar = HC[P2];
504
505P11 = HC[P1].P1;
506P12 = HC[P1].P2;
507P21 = HC[P2].P1;
508P22 = HC[P2].P2;
509
510V2HDM := mm11 P11 + mm22 P22 + mm12 (P12 + P21) +
511lambda1 P11^2/2 + lambda2 P22^2/2 + lambda3 P11 P22 +
512lambda4 P12 P21 + lambda5 (P12^2 + P21^2)/2;
513
514
515VSH := lambda11s P11 SS^2/2 + lambdaHHs P22 SS^2/2 + lambda12s (P12 + P21) SS^2/2;
516
517LS := LSkin - VS - VSH;
518
519L2Higgs := LHiggsKin2 - V2HDM;
520
521LDM := Block[{mu}, I*(Xdbar.Ga[mu].DC[Xd, mu] )] - mm0 Xdbar.Xd - yDM SS Xdbar.Xd;
522
523LGhost2 := Block[{LGh1,LGhw,LGhs,LGhphi,mu, generators,gh,ghbar,Vectorize,phi3,phi4,togoldstones,doublet,doublet0},
524(* Pure gauge piece *)
525LGh1 = -ghBbar.del[DC[ghB,mu],mu];
526LGhw = -ghWibar.del[DC[ghWi,mu],mu];
527LGhs = -ghGbar.del[DC[ghG,mu],mu];
528
529(* Scalar pieces: see Peskin pages 739-742 *)
530(* phi1 and phi2 are the real degrees of freedom of GP *)
531(* Vectorize transforms a doublet in a vector in the phi-basis, i.e. the basis of real degrees of freedom *)
532gh    = {ghB, ghWi[1], ghWi[2], ghWi[3]};
533ghbar = {ghBbar, ghWibar[1], ghWibar[2], ghWibar[3]};
534generators = {-I/2 g1 IdentityMatrix[2], -I/2 gw PauliSigma[1], -I/2 gw PauliSigma[2], -I/2 gw PauliSigma[3]};
535doublet = Expand[{(-I phi3 - phi4)/Sqrt[2], phih[2]} /. MR$Definitions /. vev -> 0];
536doublet0 = {0, vev/Sqrt[2]};
537Vectorize[{a_, b_}]:= Simplify[{Sqrt[2] Re[Expand[a]], Sqrt[2] Im[Expand[a]], Sqrt[2] Re[Expand[b]], Sqrt[2] Im[Expand[b]]}/.{Im[_]->0, Re[num_]->num}];
538togoldstones := {phi3 -> (GP + GPbar)/Sqrt[2], phi4 -> (-GP + GPbar)/(I Sqrt[2])};
539LGhphi=Plus@@Flatten[Table[-ghbar[[kkk]].gh[[lll]] Vectorize[generators[[kkk]].doublet0].Vectorize[generators[[lll]].(doublet+doublet0)],{kkk,4},{lll,4}]] /.togoldstones;
540
541ExpandIndices[ LGhs + If[FeynmanGauge, LGh1 + LGhw + LGhphi,0], FlavorExpand->SU2W]];
542
543LYukawaTypeI := Block[{sp,ii,jj,cc,ff1,ff2,ff3,yuk,feynmangaugerules},
544  feynmangaugerules = If[Not[FeynmanGauge], {G0|GP|GPbar ->0}, {}];
545 
546  yuk = ExpandIndices[
547   -yd[ff2, ff3] CKM[ff1, ff2] QLbar[sp, ii, ff1, cc].dR [sp, ff3, cc] phi2[ii]/sbeta -
548    yl[ff1, ff3] LLbar[sp, ii, ff1].lR [sp, ff3] phi2[ii]/sbeta -
549    yu[ff1, ff2] QLbar[sp, ii, ff1, cc].uR [sp, ff2, cc] phi2bar[jj] Eps[ii, jj]/sbeta, FlavorExpand -> SU2D];
550  yuk = yuk /. { CKM[a_, b_] Conjugate[CKM[a_, c_]] -> IndexDelta[b, c], CKM[b_, a_] Conjugate[CKM[c_, a_]] -> IndexDelta[b, c]};
551  yuk+HC[yuk]/.feynmangaugerules
552 ];
553
554LYukawaTypeII := Block[{sp,ii,jj,cc,ff1,ff2,ff3,yuk,feynmangaugerules},
555  feynmangaugerules = If[Not[FeynmanGauge], {G0|GP|GPbar ->0}, {}];
556 
557  yuk = ExpandIndices[
558   -yd[ff2, ff3] CKM[ff1, ff2] QLbar[sp, ii, ff1, cc].dR [sp, ff3, cc] phi1[ii]/cbeta -
559    yl[ff1, ff3] LLbar[sp, ii, ff1].lR [sp, ff3] phi1[ii]/cbeta -
560    yu[ff1, ff2] QLbar[sp, ii, ff1, cc].uR [sp, ff2, cc] phi2bar[jj] Eps[ii, jj]/sbeta, FlavorExpand -> SU2D];
561  yuk = yuk /. { CKM[a_, b_] Conjugate[CKM[a_, c_]] -> IndexDelta[b, c], CKM[b_, a_] Conjugate[CKM[c_, a_]] -> IndexDelta[b, c]};
562  yuk+HC[yuk]/.feynmangaugerules
563 ];
564
565LYukawaTypeX := Block[{sp,ii,jj,cc,ff1,ff2,ff3,yuk,feynmangaugerules},
566  feynmangaugerules = If[Not[FeynmanGauge], {G0|GP|GPbar ->0}, {}];
567 
568  yuk = ExpandIndices[
569   -yd[ff2, ff3] CKM[ff1, ff2] QLbar[sp, ii, ff1, cc].dR [sp, ff3, cc] phi2[ii]/sbeta -
570    yl[ff1, ff3] LLbar[sp, ii, ff1].lR [sp, ff3] phi1[ii]/cbeta -
571    yu[ff1, ff2] QLbar[sp, ii, ff1, cc].uR [sp, ff2, cc] phi2bar[jj] Eps[ii, jj]/sbeta, FlavorExpand -> SU2D];
572  yuk = yuk /. { CKM[a_, b_] Conjugate[CKM[a_, c_]] -> IndexDelta[b, c], CKM[b_, a_] Conjugate[CKM[c_, a_]] -> IndexDelta[b, c]};
573  yuk+HC[yuk]/.feynmangaugerules
574 ];
575
576LYukawaTypeY := Block[{sp,ii,jj,cc,ff1,ff2,ff3,yuk,feynmangaugerules},
577  feynmangaugerules = If[Not[FeynmanGauge], {G0|GP|GPbar ->0}, {}];
578 
579  yuk = ExpandIndices[
580   -yd[ff2, ff3] CKM[ff1, ff2] QLbar[sp, ii, ff1, cc].dR [sp, ff3, cc] phi1[ii]/cbeta -
581    yl[ff1, ff3] LLbar[sp, ii, ff1].lR [sp, ff3] phi2[ii]/sbeta -
582    yu[ff1, ff2] QLbar[sp, ii, ff1, cc].uR [sp, ff2, cc] phi2bar[jj] Eps[ii, jj]/sbeta, FlavorExpand -> SU2D];
583  yuk = yuk /. { CKM[a_, b_] Conjugate[CKM[a_, c_]] -> IndexDelta[b, c], CKM[b_, a_] Conjugate[CKM[c_, a_]] -> IndexDelta[b, c]};
584  yuk+HC[yuk]/.feynmangaugerules
585 ];
586
587LYukawaAlign := Block[{sp,ii,jj,cc,ff1,ff2,ff3,yuk,feynmangaugerules},
588  feynmangaugerules = If[Not[FeynmanGauge], {G0|GP|GPbar ->0}, {}];
589 
590  yuk = ExpandIndices[
591    -yd[ff2, ff3] CKM[ff1, ff2] QLbar[sp, ii, ff1, cc].dR [sp, ff3, cc] phih[ii] -
592    yl[ff1, ff3] LLbar[sp, ii, ff1].lR [sp, ff3] phih[ii] -
593    yu[ff1, ff2] QLbar[sp, ii, ff1, cc].uR [sp, ff2, cc] phihbar[jj] Eps[ii, jj]
594    -tgammad*yd[ff2, ff3] CKM[ff1, ff2] QLbar[sp, ii, ff1, cc].dR [sp, ff3, cc] phiH[ii] -
595    tgammal*yl[ff1, ff3] LLbar[sp, ii, ff1].lR [sp, ff3] phiH[ii] -
596    tgammau*yu[ff1, ff2] QLbar[sp, ii, ff1, cc].uR [sp, ff2, cc] phiHbar[jj] Eps[ii, jj], FlavorExpand -> SU2D];
597  yuk = yuk /. { CKM[a_, b_] Conjugate[CKM[a_, c_]] -> IndexDelta[b, c], CKM[b_, a_] Conjugate[CKM[c_, a_]] -> IndexDelta[b, c]};
598  yuk+HC[yuk]/.feynmangaugerules
599 ];
600
601LYukawa2gen := Block[{sp,ii,jj,cc,ff1,ff2,ff3,yuk,feynmangaugerules},
602  feynmangaugerules = If[Not[FeynmanGauge], {G0|GP|GPbar ->0}, {}];
603 
604  yuk = ExpandIndices[
605    -yd[ff2, ff3] CKM[ff1, ff2] QLbar[sp, ii, ff1, cc].dR [sp, ff3, cc] phih[ii] -
606    yl[ff1, ff3] LLbar[sp, ii, ff1].lR [sp, ff3] phih[ii] -
607    yu[ff1, ff2] QLbar[sp, ii, ff1, cc].uR [sp, ff2, cc] phihbar[jj] Eps[ii, jj]
608    -ydB[ff2, ff3] CKM[ff1, ff2] QLbar[sp, ii, ff1, cc].dR [sp, ff3, cc] phiH[ii] -
609    yuA[ff1, ff2] QLbar[sp, ii, ff1, cc].uR [sp, ff2, cc] phiHbar[jj] Eps[ii, jj], FlavorExpand -> SU2D];
610  yuk = yuk /. { CKM[a_, b_] Conjugate[CKM[a_, c_]] -> IndexDelta[b, c], CKM[b_, a_] Conjugate[CKM[c_, a_]] -> IndexDelta[b, c]};
611  yuk+HC[yuk]/.feynmangaugerules
612 ];
613
614L2HDM:= L2Higgs + LS + LDM;
615
616LS2HDM:= LGauge + LFermions + L2HDM  + LGhost2;
617
618LTypeI:= LS2HDM +LYukawaTypeI;
619LTypeII:= LS2HDM +LYukawaTypeII;
620LTypeX:= LS2HDM +LYukawaTypeX;
621LTypeY:= LS2HDM +LYukawaTypeY;
622LInert:= LS2HDM;
623LAlign:= LS2HDM +LYukawaAlign;
624L2gen:= LS2HDM +LYukawa2gen;