ASperGe: 2HDM_mix.fr

File 2HDM_mix.fr, 30.0 KB (added by Karen De Causmaecker, 4 years ago)

Two Higgs Doublet Model (2HDM) including the mixings

Line 
1(***************************************************************************************************************)
2(******                       This is the FeynRules mod-file for the Standard model                       ******)
3(******                                                                                                   ******)
4(******     Authors: N. Christensen, C. Duhr, B. Fuks                                                     ******)
5(******     Adapted by A. Alloul for mass diagonalization                                                 ******)
6(******                                                                                                   ******)
7(****** Choose whether Feynman gauge is desired.                                                          ******)
8(****** If set to False, unitary gauge is assumed.                                                          ****)
9(****** Feynman gauge is especially useful for CalcHEP/CompHEP where the calculation is 10-100 times faster. ***)
10(****** Feynman gauge is not supported in MadGraph and Sherpa.                                              ****)
11(***************************************************************************************************************)
12
13(* ************************** *)
14(* *****  Information   ***** *)
15(* ************************** *)
16M$ModelName = "2HDM_mix";
17
18M$Information = {
19 Authors      -> "K. De Causmaecker",
20 Version      -> "1.0.0",
21 Date         -> "11. 01. 2013",
22 Institutions -> "IIHE - Vrije Universiteit Brussel",
23 Emails       -> "Karen.De.Causmaecker@vub.ac.be"
24};
25
26FeynmanGauge = True;
27
28(* ************************** *)
29(* *****  Change  log   ***** *)
30(* ************************** *)
31
32(* v1.0.0: 2HDM adapted for the mass diagonalization routine*)
33
34(* ************************** *)
35(* ***** vevs & mixings ***** *)
36(* ************************** *)
37M$vevs = { {phi1[2],vev1} };
38
39M$MixingsDescription = {
40    Mix["1u"] == {
41        MassBasis -> {A, Z},
42        GaugeBasis -> {B, Wi[3]},
43        MixingMatrix -> UG,
44        BlockName -> WEAKMIX
45    },
46
47    Mix["2"] == {
48        MassBasis -> {W, Wbar},
49        GaugeBasis -> {Wi[1], Wi[2]},
50        Value -> {{1/Sqrt[2], -I/Sqrt[2]}, {1/Sqrt[2], I/Sqrt[2]}}
51    },
52   
53    Mix["1p"] == {
54        MassBasis    -> {{H0}, {G0}},
55        GaugeBasis   -> {phi1[2]},
56        Value        -> {{{1}}, {{1}}}
57    },
58
59    Mix["2p"] == {
60        MassBasis    -> {{R0}, {I0}},
61        GaugeBasis   -> {phi2[2]},
62        Value        -> {{{1}}, {{1}}}
63    },
64
65    Mix["1s"] == {
66        MassBasis    -> {h1, h2, h3},
67        GaugeBasis   -> {H0, R0, I0},
68        MixingMatrix -> NH,
69        BlockName    -> NHMIX
70    },
71
72    Mix["2s"] == {
73        MassBasis    -> {HP1},
74        GaugeBasis   -> {phi1[1]},
75        MixingMatrix -> CH1,
76        BlockName    -> CH1MIX
77    },
78   
79    Mix["3s"] == {
80        MassBasis    -> {HP2},
81        GaugeBasis   -> {phi2[1]},
82        MixingMatrix -> CH2,
83        BlockName    -> CH2MIX
84    },
85
86    Mix["4a"] == {
87        MassBasis -> {dq[1, _], dq[2, _], dq[3, _]},
88        GaugeBasis -> {{QL[2, 1, _], QL[2, 2, _], QL[2, 3, _]}, {dR[1, _], dR[2, _], dR[3, _]}},
89        MixingMatrix -> {CKM, _},
90        Inverse -> {True, _},
91        Value -> {_, {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}}
92    },
93
94    Mix["4b"] == {
95        MassBasis -> {uq[1, _], uq[2, _], uq[3, _]},
96        GaugeBasis -> {{QL[1, 1, _], QL[1, 2, _], QL[1, 3, _]}, {uR[1, _], uR[2, _], uR[3, _]}}, Value -> {{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}, {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}}
97    },
98
99    Mix["5a"] == {
100        MassBasis -> {l[1], l[2], l[3]},
101        GaugeBasis -> {{LL[2, 1], LL[2, 2], LL[2, 3]}, {lR[1], lR[2], lR[3]}},                 Value -> {{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}, {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}}
102    },
103
104    Mix["5b"] == {
105        MassBasis -> {vl[1], vl[2], vl[3]},
106        GaugeBasis -> {LL[1, 1], LL[1, 2], LL[1, 3]},
107        Value -> {{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}, {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}}}
108    }
109};
110
111
112(* ************************** *)
113(* *****  Gauge groups  ***** *)
114(* ************************** *)
115M$GaugeGroups = {
116    U1Y  == {
117        Abelian          -> True, 
118        CouplingConstant -> g1,
119        GaugeBoson       -> B,
120        Charge           -> Y
121    },
122   
123    SU2L == {
124        Abelian           -> False,
125        CouplingConstant  -> gw,
126        GaugeBoson        -> Wi,
127        StructureConstant -> Eps,
128        Representations   -> {Ta,SU2D},
129        Definitions       -> {Ta[a_,b_,c_]->PauliSigma[a,b,c]/2, FSU2L[i_,j_,k_]:> I Eps[i,j,k]}
130    },
131   
132    SU3C == {
133        Abelian           -> False,
134        CouplingConstant  -> gs,
135        GaugeBoson        -> G,
136        StructureConstant -> f,
137        Representations   -> {T,Colour},
138        DTerm             -> dSUN
139    }
140};
141
142
143(* ************************** *)
144(* *****    Indices     ***** *)
145(* ************************** *)
146
147IndexRange[Index[SU2W      ]] = Unfold[Range[3]];
148IndexRange[Index[SU2D      ]] = Unfold[Range[2]];
149IndexRange[Index[Gluon     ]] = NoUnfold[Range[8]];
150IndexRange[Index[Colour    ]] = NoUnfold[Range[3]];
151IndexRange[Index[Generation]] = Range[3];
152IndexRange[Index[Higgs     ]] = Unfold[Range[3]];
153
154IndexStyle[SU2W,       j];
155IndexStyle[SU2D,       k];
156IndexStyle[Gluon,      a];
157IndexStyle[Colour,     m];
158IndexStyle[Generation, f];
159IndexStyle[Higgs,      h];
160
161
162(* ************************** *)
163(* *** Interaction orders *** *)
164(* ***  (as used by mg5)  *** *)
165(* ************************** *)
166
167M$InteractionOrderHierarchy = {
168    {QCD, 1},
169    {QED, 2}
170};
171
172
173(* ************************** *)
174(* **** Particle classes **** *)
175(* ************************** *)
176M$ClassesDescription = {
177
178(* Gauge bosons: physical vector fields *)
179
180    V[1] == {
181        ClassName       -> A,
182        SelfConjugate   -> True, 
183        Mass            -> 0, 
184        Width           -> 0, 
185        ParticleName    -> "a",
186        PDG             -> 22,
187        PropagatorLabel -> "a",
188        PropagatorType  -> W,
189        PropagatorArrow -> None,
190        FullName        -> "Photon"
191    },
192   
193    V[2] == {
194        ClassName       -> Z,
195        SelfConjugate   -> True,
196        Mass            -> MZ,
197        Width           -> {WZ, 2.4952},
198        ParticleName    -> "Z",
199        PDG             -> 23,
200        PropagatorLabel -> "Z",
201        PropagatorType  -> Sine,
202        PropagatorArrow -> None,
203        FullName        -> "Z"
204    },
205   
206    V[3] == {
207        ClassName        -> W,
208        SelfConjugate    -> False,
209        Mass             -> MW,
210        Width            -> {WW, 2.085},
211        ParticleName     -> "W+",
212        AntiParticleName -> "W-",
213                QuantumNumbers   -> {Q -> 1},
214                PDG              -> 24,
215                PropagatorLabel  -> "W",
216                PropagatorType   -> Sine,
217                PropagatorArrow  -> Forward,
218                FullName         -> "W"
219        },
220       
221        V[4] == {
222                ClassName        -> G,
223                SelfConjugate    -> True,
224                Indices          -> {Index[Gluon]},
225                Mass             -> 0,
226                Width            -> 0,
227                ParticleName     -> "g",
228                PDG              -> 21,
229                PropagatorLabel  -> "G",
230                PropagatorType   -> C,
231                PropagatorArrow  -> None,
232                FullName         -> "G"
233        },
234
235(* Ghosts: related to physical gauge bosons *)
236
237        U[1] == {
238                ClassName       -> ghA,
239                SelfConjugate   -> False,
240                Ghost           -> A,
241                QuantumNumbers  -> {GhostNumber -> 1},
242                Mass            -> 0,
243                PropagatorLabel -> "uA",
244                PropagatorType  -> GhostDash,
245                PropagatorArrow -> Forward
246        },
247       
248        U[2] == {
249                ClassName       -> ghZ,
250                SelfConjugate   -> False,
251                Ghost           -> Z,
252                QuantumNumbers  -> {GhostNumber -> 1},
253                Mass            -> MZ, 
254                PropagatorLabel -> "uZ",
255                PropagatorType  -> GhostDash,
256                PropagatorArrow -> Forward
257        },
258       
259        U[31] == {
260                ClassName       -> ghWp,
261                SelfConjugate   -> False,
262                Ghost           -> W,
263                QuantumNumbers  -> {GhostNumber -> 1, Q -> 1},
264                Mass            -> {MW,Internal},
265                PropagatorLabel -> "uWp",
266                PropagatorType  -> GhostDash,
267                PropagatorArrow -> Forward
268        },
269       
270        U[32] == {
271                ClassName       -> ghWm,
272                SelfConjugate   -> False,
273                Ghost           -> Wbar,
274                QuantumNumbers  -> {GhostNumber -> 1, Q -> -1},
275                Mass            -> MW,
276                PropagatorLabel -> "uWm",
277                PropagatorType  -> GhostDash,
278                PropagatorArrow -> Forward
279        },
280       
281        U[4] == {
282                ClassName       -> ghG,
283                SelfConjugate   -> False,
284                Indices         -> {Index[Gluon]},
285                Ghost           -> G,
286                QuantumNumbers  ->{GhostNumber -> 1},
287                Mass            -> 0,
288                PropagatorLabel -> "uG",
289                PropagatorType  -> GhostDash,
290                PropagatorArrow -> Forward
291        },
292
293(* Gauge bosons: unphysical vector fields *)
294
295        V[11] == {
296                ClassName     -> B,
297                Unphysical    -> True,
298                SelfConjugate -> True
299        },
300       
301        V[12] == {
302                ClassName     -> Wi,
303                Unphysical    -> True,
304                SelfConjugate -> True,
305                Indices       -> {Index[SU2W]},
306                FlavorIndex   -> SU2W
307        },
308
309(* Ghosts: related to unphysical gauge bosons *)
310       
311        U[11] == {
312                ClassName     -> ghB,
313                Unphysical    -> True,
314                SelfConjugate -> False,
315                Ghost         -> B,
316                Definitions   -> { ghB -> -(ee/gw) ghZ + (ee/g1) ghA}
317        },
318       
319        U[12] == {
320                ClassName     -> ghWi,
321                Unphysical    -> True,
322                SelfConjugate -> False,
323                Ghost         -> Wi,
324                Indices       -> {Index[SU2W]},
325                FlavorIndex   -> SU2W,
326                Definitions   -> { ghWi[1] -> (ghWp+ghWm)/Sqrt[2], ghWi[2] -> (ghWm-ghWp)/(I*Sqrt[2]), ghWi[3] -> (ee/g1) ghZ+(ee/gw) ghA}
327    },
328
329(* Fermions: physical fields *)
330
331    F[1] == {
332        ClassName        -> vl,
333        ClassMembers     -> {ve,vm,vt},
334        Indices          -> {Index[Generation]},
335        FlavorIndex      -> Generation,
336        SelfConjugate    -> False,
337        Mass             -> 0,
338        Width            -> 0,
339        QuantumNumbers   -> {LeptonNumber -> 1},
340        PropagatorLabel  -> {"v", "ve", "vm", "vt"} ,
341        PropagatorType   -> S,
342        PropagatorArrow  -> Forward,
343        PDG              -> {12,14,16},
344        ParticleName     -> {"ve","vm","vt"},
345        AntiParticleName -> {"ve~","vm~","vt~"},
346        FullName         -> {"Electron-neutrino", "Mu-neutrino", "Tau-neutrino"}
347    },
348   
349    F[2] == {
350        ClassName        -> l,
351        ClassMembers     -> {e, mu, ta},
352        Indices          -> {Index[Generation]},
353        FlavorIndex      -> Generation,
354        SelfConjugate    -> False,
355        Mass             -> {Ml, {Me,5.11*^-4}, {MM,0.10566}, {MTA,1.777}},
356        Width            -> 0,
357        QuantumNumbers   -> {Q -> -1, LeptonNumber -> 1},
358        PropagatorLabel  -> {"l", "e", "mu", "ta"},
359        PropagatorType   -> Straight,
360        PropagatorArrow  -> Forward,
361        PDG              -> {11, 13, 15},
362        ParticleName     -> {"e-", "mu-", "ta-"},
363        AntiParticleName -> {"e+", "mu+", "ta+"},
364        FullName         -> {"Electron", "Muon", "Tau"}
365    },
366   
367    F[3] == {
368        ClassName        -> uq,
369        ClassMembers     -> {u, c, t},
370        Indices          -> {Index[Generation], Index[Colour]},
371        FlavorIndex      -> Generation,
372        SelfConjugate    -> False,
373        Mass             -> {Mu, {MU, 2.55*^-3}, {MC,1.27}, {MT,172}},
374        Width            -> {0, 0, {WT,1.50833649}},
375        QuantumNumbers   -> {Q -> 2/3},
376        PropagatorLabel  -> {"uq", "u", "c", "t"},
377        PropagatorType   -> Straight,
378        PropagatorArrow  -> Forward,
379        PDG              -> {2, 4, 6},
380        ParticleName     -> {"u",  "c",  "t" },
381        AntiParticleName -> {"u~", "c~", "t~"},
382        FullName         -> {"u-quark", "c-quark", "t-quark"}
383    },
384   
385    F[4] == {
386        ClassName        -> dq,
387        ClassMembers     -> {d, s, b},
388        Indices          -> {Index[Generation], Index[Colour]},
389        FlavorIndex      -> Generation,
390        SelfConjugate    -> False,
391        Mass             -> {Md, {MD,5.04*^-3}, {MS,0.101}, {MB,4.7}},
392        Width            -> 0,
393        QuantumNumbers   -> {Q -> -1/3},
394        PropagatorLabel  -> {"dq", "d", "s", "b"},
395        PropagatorType   -> Straight,
396        PropagatorArrow  -> Forward,
397        PDG              -> {1,3,5},
398        ParticleName     -> {"d",  "s",  "b" },
399        AntiParticleName -> {"d~", "s~", "b~"},
400        FullName         -> {"d-quark", "s-quark", "b-quark"}
401    },
402
403(* Fermions: unphysical fields *)
404   
405    F[11] == {
406        ClassName      -> LL,
407        Unphysical     -> True,
408        Indices        -> {Index[SU2D], Index[Generation]},
409        FlavorIndex    -> SU2D,
410        SelfConjugate  -> False,
411        QuantumNumbers -> {Y -> -1/2}
412    },
413   
414    F[12] == {
415        ClassName      -> lR,
416        Unphysical     -> True,
417        Indices        -> {Index[Generation]},
418        FlavorIndex    -> Generation,
419        SelfConjugate  -> False,
420        QuantumNumbers -> {Y -> -1}
421    },
422   
423    F[13] == {
424        ClassName      -> QL,
425        Unphysical     -> True,
426        Indices        -> {Index[SU2D], Index[Generation], Index[Colour]},
427        FlavorIndex    -> SU2D,
428        SelfConjugate  -> False,
429        QuantumNumbers -> {Y -> 1/6}
430    },
431   
432    F[14] == {
433        ClassName      -> uR,
434        Unphysical     -> True,
435        Indices        -> {Index[Generation], Index[Colour]},
436        FlavorIndex    -> Generation,
437        SelfConjugate  -> False,
438        QuantumNumbers -> {Y -> 2/3}
439    },
440   
441    F[15] == {
442        ClassName      -> dR,
443        Unphysical     -> True,
444        Indices        -> {Index[Generation], Index[Colour]},
445        FlavorIndex    -> Generation,
446        SelfConjugate  -> False,
447        QuantumNumbers -> {Y -> -1/3}
448    },
449
450(* Higgs unphysical scalars *)
451(* Unphysical scalar fields *)
452
453    S[100] == {
454        ClassName     -> phi1,
455        Unphysical    -> True,
456        SelfConjugate -> False,
457        Indices       -> {Index[SU2D]},
458        FlavorIndex   -> SU2D,
459        QuantumNumbers-> {Y -> 1/2}
460    },
461
462    S[101] == {
463        ClassName     -> phi2,
464        Unphysical    -> True,
465        SelfConjugate -> False,
466        Indices       -> {Index[SU2D]},
467        FlavorIndex   -> SU2D,         
468        QuantumNumbers-> {Y -> 1/2}
469    },
470
471    S[110] == {
472        ClassName     -> H0,
473        Unphysical    -> True,
474        SelfConjugate -> True
475    },
476
477    S[111] == {
478        ClassName     -> R0,
479        Unphysical    -> True,
480        SelfConjugate -> True
481    },
482
483    S[112] == {
484        ClassName     -> I0,
485        Unphysical    -> True,
486        SelfConjugate -> True
487    },
488 
489   
490(* Higgs physical scalars *)
491
492    S[103] == {
493        ClassName     -> G0,
494        SelfConjugate -> True,
495        ParticleName  -> "G0"
496    },
497
498    S[104] == {
499       ClassName      -> H,
500       SelfConjugate  -> True,
501       Indices        -> {Index[Higgs]},
502       FlavorIndex    -> Higgs,
503       ClassMembers   -> {h1, h2, h3},
504       PDG            -> {25, 35, 36}
505       
506    },
507   
508    S[105] == {
509       ClassName      -> HP1,
510       SelfConjugate  -> False,
511       QuantumNumbers -> {Q -> 1},
512       ParticleName   -> "h1+",
513       AntiParticleName -> "h1-",
514       PDG            -> 100004
515       
516    },
517   
518    S[106] == {
519       ClassName      -> HP2,
520       SelfConjugate  -> False,
521       QuantumNumbers -> {Q -> 1},
522       ParticleName   -> "h2+",
523       AntiParticleName -> "h2-",
524       PDG            -> 100005
525    }
526};
527
528
529(* ************************** *)
530(* *****   Parameters   ***** *)
531(* ************************** *)
532M$Parameters = {
533
534(* External parameters *)
535    aEWM1 == {
536        ParameterType    -> External,
537        BlockName        -> SMINPUTS,
538        OrderBlock       -> 1,
539        Value            -> 127.9,
540        InteractionOrder -> {QED,-2},
541        Description      -> "Inverse of the EW coupling constant at the Z pole"
542    },
543 
544    Gf == {
545        ParameterType    -> External,
546        BlockName        -> SMINPUTS,
547        OrderBlock       -> 2,
548        Value            -> 1.16637*^-5,
549        InteractionOrder -> {QED,2},
550        TeX              -> Subscript[G,f],
551        Description      -> "Fermi constant"
552    },
553
554    aS    == {
555        ParameterType    -> External,
556        BlockName        -> SMINPUTS,
557        OrderBlock       -> 3,
558        Value            -> 0.1184,
559        InteractionOrder -> {QCD,2},
560        TeX              -> Subscript[\[Alpha],s],
561        Description      -> "Strong coupling constant at the Z pole"
562    },
563   
564    ymdo == {
565        ParameterType -> External,
566        BlockName     -> YUKAWA,
567        OrderBlock    -> 1,
568        Value         -> 5.04*^-3,
569        Description   -> "Down Yukawa mass"
570    },
571 
572    ymup == {
573        ParameterType -> External,
574        BlockName     -> YUKAWA,
575        OrderBlock    -> 2,
576        Value         -> 2.55*^-3,
577        Description   -> "Up Yukawa mass"
578    },
579
580    yms == {
581        ParameterType -> External,
582        BlockName     -> YUKAWA,
583        OrderBlock    -> 3,
584        Value         -> 0.101,
585        Description   -> "Strange Yukawa mass"
586    },
587   
588    ymc == {
589        ParameterType -> External,
590        BlockName     -> YUKAWA,
591        OrderBlock    -> 4,
592        Value         -> 1.27,
593        Description   -> "Charm Yukawa mass"
594    },
595   
596    ymb == {
597        ParameterType -> External,
598        BlockName     -> YUKAWA,
599        OrderBlock    -> 5,
600        Value         -> 4.7,
601        Description   -> "Bottom Yukawa mass"
602    },
603 
604    ymt == {
605        ParameterType -> External,
606        BlockName     -> YUKAWA,
607        OrderBlock    -> 6,
608        Value         -> 172,
609        Description   -> "Top Yukawa mass"
610    },
611   
612    yme == {
613        ParameterType -> External,
614        BlockName     -> YUKAWA,
615        OrderBlock    -> 11,
616        Value         -> 5.11*^-4,
617        Description   -> "Electron Yukawa mass"
618    },
619   
620    ymm == {
621        ParameterType -> External,
622        BlockName     -> YUKAWA,
623        OrderBlock    -> 13,
624        Value         -> 0.10566,
625        Description   -> "Muon Yukawa mass"
626    },
627
628    ymtau == {
629        ParameterType -> External,
630        BlockName     -> YUKAWA,
631        OrderBlock    -> 15,
632        Value         -> 1.777,
633        Description   -> "Tau Yukawa mass"
634    },
635 
636    cabi == {
637        ParameterType -> External,
638        BlockName     -> CKMBLOCK,
639        OrderBlock    -> 1,
640        Value         -> 0.227736,
641        TeX           -> Subscript[\[Theta], c],
642        Description   -> "Cabibbo angle"
643    },
644
645 (*Adam Modifs: 09/17/12*)
646
647    gw == {
648        ParameterType    -> External,
649        BlockName        -> Gauge,
650        OrderBlock       -> 2,
651        Value            -> 0.663922,   
652        InteractionOrder -> {QED,1}, 
653        TeX              -> Subscript[g,w],
654        Description      -> "Weak coupling constant at the Z pole"
655    },
656 
657    g1 == {
658        ParameterType    -> External,
659        BlockName        -> Gauge,
660        OrderBlock       -> 1,
661        Value            -> 0.355574,   
662        InteractionOrder -> {QED,1}, 
663        TeX              -> Subscript[g,1],
664        Description      -> "U(1)Y coupling constant at the Z pole"
665    },
666
667    vev1 == {
668        ParameterType    -> External,
669        BlockName        -> HMIX,
670        OrderBlock       -> 1,
671        InteractionOrder -> {QED,-1},
672        Description      -> "vacuum expectation value of the first doublet"
673    },
674
675
676
677 (* Internal Parameters *)
678
679    aEW == {
680        ParameterType    -> Internal,
681        Value            -> 1/aEWM1,
682        InteractionOrder -> {QED,2},
683        TeX              -> Subscript[\[Alpha], EW],
684        Description      -> "Electroweak coupling contant"
685    },
686
687    ee == {
688        ParameterType    -> Internal,
689        Value            -> Sqrt[4 Pi aEW],
690        InteractionOrder -> {QED,1},
691        TeX              -> e, 
692        Description      -> "Electric coupling constant"
693    },
694 
695    gs == {
696        ParameterType    -> Internal,
697        Value            -> Sqrt[4*Pi*aS],
698        InteractionOrder -> {QCD,1}, 
699        TeX              -> Subscript[g,s],
700        ParameterName    -> G,
701        Description      -> "Strong coupling constant at the Z pole"
702    },
703
704(*Internal parameters: Yukawa's*)
705
706    yl1 == {
707        ParameterType    -> Internal,
708        Indices          -> {Index[Generation], Index[Generation]},
709        Definitions      -> {yl1[i_?NumericQ, j_?NumericQ] :> 0.  /; (i =!= j)},
710        Value            -> {yl1[1,1] -> Sqrt[2] yme/vev1, yl1[2,2] -> Sqrt[2] ymm/vev1,  yl1[3,3] -> Sqrt[2] ymtau/vev1},
711        InteractionOrder -> {QED, 1},
712        ParameterName    -> {yl1[1,1] -> ye, yl1[2,2] -> ym, yl1[3,3] -> ytau},
713        TeX              -> Superscript[y, l1],
714        Description      -> "Lepton Yukawa couplings"
715    },
716   
717    yu1 == {
718        ParameterType    -> Internal,
719        Indices          -> {Index[Generation], Index[Generation]},
720        Definitions      -> {yu1[i_?NumericQ, j_?NumericQ] :> 0.  /; (i =!= j)},
721        Value            -> {yu1[1,1] -> Sqrt[2] ymup/vev1, yu1[2,2] -> Sqrt[2] ymc/vev1,  yu1[3,3] -> Sqrt[2] ymt/vev1},
722        InteractionOrder -> {QED, 1},
723        ParameterName    -> {yu1[1,1] -> yup, yu1[2,2] -> yc, yu1[3,3] -> yt},
724        TeX              -> Superscript[y, u1],
725        Description      -> "Up-type Yukawa couplings"
726    },
727     
728    yd1 == {
729        ParameterType    -> Internal,
730        Indices          -> {Index[Generation], Index[Generation]},
731        Definitions      -> {yd1[i_?NumericQ, j_?NumericQ] :> 0.  /; (i =!= j)},
732        Value            -> {yd1[1,1] -> Sqrt[2] ymdo/vev1, yd1[2,2] -> Sqrt[2] yms/vev1,  yd1[3,3] -> Sqrt[2] ymb/vev1},
733        InteractionOrder -> {QED, 1},
734        ParameterName    -> {yd1[1,1] -> ydo, yd1[2,2] -> ys, yd1[3,3] -> yb},
735        TeX              -> Superscript[y, d1],
736        Description      -> "Down-type Yukawa couplings"
737    },
738   
739    yl2 == {
740        ParameterType    -> Internal,
741        Indices          -> {Index[Generation], Index[Generation]},
742        Definitions      -> {yl2[i_?NumericQ, j_?NumericQ] :> 0.  /; (i =!= j)},
743        Value            -> {yl2[1,1] -> Sqrt[2] yme/vev1, yl2[2,2] -> Sqrt[2] ymm/vev1,  yl2[3,3] -> Sqrt[2] ymtau/vev1},
744        InteractionOrder -> {QED, 1},
745        ParameterName    -> {yl2[1,1] -> ye, yl2[2,2] -> ym, yl2[3,3] -> ytau},
746        TeX              -> Superscript[y, l2],
747        Description      -> "Lepton Yukawa couplings"
748    },
749   
750    yu2 == {
751        ParameterType    -> Internal,
752        Indices          -> {Index[Generation], Index[Generation]},
753        Definitions      -> {yu2[i_?NumericQ, j_?NumericQ] :> 0.  /; (i =!= j)},
754        Value            -> {yu2[1,1] -> Sqrt[2] ymup/vev1, yu2[2,2] -> Sqrt[2] ymc/vev1,    yu2[3,3] -> Sqrt[2] ymt/vev1},
755        InteractionOrder -> {QED, 1},
756        ParameterName    -> {yu2[1,1] -> yup, yu2[2,2] -> yc, yu2[3,3] -> yt},
757        TeX              -> Superscript[y, u2],
758        Description      -> "Up-type Yukawa couplings"
759    },
760   
761    yd2 == {
762        ParameterType    -> Internal,
763        Indices          -> {Index[Generation], Index[Generation]},
764        Definitions      -> {yd2[i_?NumericQ, j_?NumericQ] :> 0.  /; (i =!= j)},
765        Value            -> {yd2[1,1] -> Sqrt[2] ymdo/vev1, yd2[2,2] -> Sqrt[2] yms/vev1,  yd2[3,3] -> Sqrt[2] ymb/vev1},
766        InteractionOrder -> {QED, 1},
767        ParameterName    -> {yd2[1,1] -> ydo, yd2[2,2] -> ys, yd2[3,3] -> yb},
768        TeX              -> Superscript[y, d2],
769        Description      -> "Down-type Yukawa couplings"
770    },
771
772 
773(* Higgs potential parameters *)
774   
775    lambda1 == {
776        BlockName      -> Higgs,
777        OrderBlock     -> 1,
778        ComplexParameter -> False,
779        Value          -> 1,
780        ParameterType  -> External
781    },
782   
783    lambda2 == {
784        BlockName      -> Higgs,
785        OrderBlock     -> 2,
786        ComplexParameter -> False,
787        Value          -> 1,
788        ParameterType  -> External
789    },
790   
791    lambda3 == {
792        BlockName      -> Higgs,
793        OrderBlock     -> 3,
794        ComplexParameter -> False,
795        Value          -> 1,
796        ParameterType  -> External
797    },
798   
799    lambda4 == {
800        BlockName      -> Higgs,
801        OrderBlock     -> 4,
802        ComplexParameter -> False,
803        Value          -> 1,
804        ParameterType  -> External
805    },
806
807    lambda5 == {
808        ComplexParameter -> False,
809        OrderBlock     -> 5,
810        ParameterType  -> External,
811        BlockName      -> Higgs,
812        Value          -> 1,
813        Description    -> "lambda5"
814    },
815   
816    lambda6R == {
817        BlockName      -> Higgs,
818        OrderBlock     -> 6,
819        ComplexParameter -> False,
820        ParameterType  -> External,
821        Value          -> 1,
822        Description    -> "real part of lambda6"
823    },
824
825    lambda6I == {
826        BlockName      -> Higgs,
827        OrderBlock     -> 7,
828        ComplexParameter -> False,
829        ParameterType  -> External,
830        Value          -> 1,
831        Description    -> "imaginary part of lambda6"
832    },
833   
834    lambda6 == {
835        ComplexParameter -> True,
836        ParameterType  -> Internal,
837        Value          -> lambda6R + I*lambda6I,
838        Description    -> "lambda6"
839    },
840
841    lambda7R == {
842        BlockName      -> Higgs,
843        OrderBlock     -> 8,
844        ComplexParameter -> False,
845        ParameterType  -> External,
846        Value          -> 1,
847        Description    -> "real part of lambda6"
848    },
849   
850    lambda7I == {
851        BlockName      -> Higgs,
852        OrderBlock     -> 9,
853        ComplexParameter -> False,
854        ParameterType  -> External,
855        Value          -> 1,
856        Description    -> "imaginary part of lambda6"
857    },
858   
859    lambda7 == {
860       ParameterType   -> Internal,
861       ComplexParameter -> True,
862       Value           -> lambda7R + I*lambda7I,
863       Description     -> "lambda7"
864    },
865   
866    mu1 == {
867        ComplexParameter -> False,
868        ParameterType -> Internal,
869        Value         -> -lambda1*vev1^2,
870        Description   -> "mu1"
871    },
872
873    mu2 == {
874        BlockName     -> Higgs,
875        OrderBlock    -> 10,
876        ComplexParameter -> False,
877        ParameterType -> External,
878        Value         -> 1,
879        Description   -> "mu2"
880    },
881   
882    mu3 == {
883        ComplexParameter -> True,
884        ParameterType -> Internal,
885        Value         -> -lambda6*vev1^2/2,
886        Description   -> "mu3"
887    },
888
889(* N. B. : only Cabibbo mixing! *)
890  CKM == {
891    ParameterType -> Internal,
892    Indices       -> {Index[Generation], Index[Generation]},
893    Unitary       -> True,
894    Value         -> {CKM[1,1] -> Cos[cabi],  CKM[1,2] -> Sin[cabi], CKM[1,3] -> 0,
895                      CKM[2,1] -> -Sin[cabi], CKM[2,2] -> Cos[cabi], CKM[2,3] -> 0,
896                      CKM[3,1] -> 0,          CKM[3,2] -> 0,         CKM[3,3] -> 1},
897    TeX         -> Superscript[V,CKM],
898    Description -> "CKM-Matrix"}
899
900};
901
902(* ************************** *)
903(* *****   Lagrangian   ***** *)
904(* ************************** *)
905
906
907LGauge := Block[{mu,nu,ii,aa},
908 -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] ];
909
910LFermions := Block[{mu},
911 I*(
912   QLbar.Ga[mu].DC[QL, mu] + LLbar.Ga[mu].DC[LL, mu] + uRbar.Ga[mu].DC[uR, mu] + dRbar.Ga[mu].DC[dR, mu] + lRbar.Ga[mu].DC[lR, mu])];
913
914LYukawa := Block[{sp,ii,jj,cc,ff1,ff2,ff3,yuk},
915
916 yuk  =
917 - yd1[ff2, ff3] CKM[ff1, ff2] QLbar[sp, ii, ff1, cc].dR [sp, ff3, cc] phi1[ii]
918 - yl1[ff1, ff3] LLbar[sp, ii, ff1].lR [sp, ff3] phi1[ii]
919 - yu1[ff1, ff2] QLbar[sp, ii, ff1, cc].uR [sp, ff2, cc] phi1bar[jj] Eps[ii, jj];
920 
921 yuk +=
922 - yd2[ff2, ff3] CKM[ff1, ff2] QLbar[sp, ii, ff1, cc].dR [sp, ff3, cc] phi2[ii]
923 - yl2[ff1, ff3] LLbar[sp, ii, ff1].lR [sp, ff3] phi2[ii]
924 - yu2[ff1, ff2] QLbar[sp, ii, ff1, cc].uR [sp, ff2, cc] phi2bar[jj] Eps[ii, jj];
925 
926 yuk = yuk /. { CKM[a_, b_] Conjugate[CKM[a_, c_]] -> IndexDelta[b, c], CKM[b_, a_] Conjugate[CKM[c_, a_]] -> IndexDelta[b, c]};
927 
928 yuk += HC[yuk]
929];
930
931LGhost := Block[{LGh1,LGhw,LGhs,LGhphi,mu, generators,gh,ghbar,Vectorize,phi1,phi2,togoldstones,doublet,doublet0},
932 (* Pure gauge piece *)
933 LGh1 = -ghBbar.del[DC[ghB,mu],mu];
934 LGhw = -ghWibar.del[DC[ghWi,mu],mu];
935 LGhs = -ghGbar.del[DC[ghG,mu],mu];
936
937 (* Scalar pieces: see Peskin pages 739-742 *)
938 (* phi1 and phi2 are the real degrees of freedom of GP *)
939 (* Vectorize transforms a doublet in a vector in the phi-basis, i.e. the basis of real degrees of freedom *)
940
941 gh    = {ghB, ghWi[1], ghWi[2], ghWi[3]};
942 ghbar = {ghBbar, ghWibar[1], ghWibar[2], ghWibar[3]};
943 generators = {-I/2 g1 IdentityMatrix[2], -I/2 gw PauliSigma[1], -I/2 gw PauliSigma[2], -I/2 gw PauliSigma[3]};
944 doublet = Expand[{(-I phi1 - phi2)/Sqrt[2], phi2} /. MR$Definitions /. vev -> 0];
945 doublet0 = {0, vev/Sqrt[2]};
946 Vectorize[{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}];
947 togoldstones := {phi1 -> (GP + GPbar)/Sqrt[2], phi2 -> (-GP + GPbar)/(I Sqrt[2])};
948 LGhphi=Plus@@Flatten[Table[-ghbar[[kkk]].gh[[lll]] Vectorize[generators[[kkk]].doublet0].Vectorize[generators[[lll]].(doublet+doublet0)],{kkk,4},{lll,4}]] /.togoldstones;
949
950LGhs + If[FeynmanGauge, LGh1 + LGhw + LGhphi,0]];
951
952(* 2HDM potential *)
953
954LHiggsKin := Block[{ii, mu},
955DC[phi1bar[ii], mu] DC[phi1[ii], mu] +
956DC[phi2bar[ii], mu] DC[phi2[ii], mu]
957];
958
959P1 = {phi1[1], phi1[2]};
960P2 = {phi2[1], phi2[2]};
961
962P1bar = HC[P1];
963P2bar = HC[P2];
964
965P11 = HC[P1].P1;
966P12 = HC[P1].P2;
967P21 = HC[P2].P1;
968P22 = HC[P2].P2;
969
970V2HDM := mu1 P11 +mu2 P22 +mu3 P12 +HC[mu3] P21 +
971    lambda1 P11^2 + lambda2 P22^2 + lambda3 P11 P22 +
972    lambda4 P12 P21 + lambda5 P12^2 + Conjugate[lambda5] P21^2 +
973     P11 (lambda6 P12+ Conjugate[lambda6] P21) +  P22 (lambda7 P12+ Conjugate[lambda7]P21);
974
975LHiggs := LHiggsKin - V2HDM;
976
977L2HDM:= LGauge + LFermions + LHiggs + LYukawa + LGhost;