1 | (* *************************************************************************************
|
---|
2 | HEIDI Higgs with a compact extra dimension.
|
---|
3 |
|
---|
4 | The model is intended for use on top of the Standard Model where it replaces the
|
---|
5 | Higgs sector. As the theory contains a variable number of modes below the cutoff
|
---|
6 | (the masses of which cannot be expressed analytically), the HEIDI parameters have to
|
---|
7 | be set before creating the Feynman rules and model files. Those parameters are:
|
---|
8 |
|
---|
9 | Heidi$v : higgs VeV. Optional, default is the value.
|
---|
10 | Heidi$mh : higgs Mass. Optional, default is the SM value
|
---|
11 | Heidi$cs : compactification scale
|
---|
12 | Heidi$mb : bulk mass
|
---|
13 | Heidi$g2 : 5D trilinear coupling squared
|
---|
14 | Heidi$cutoff : cutoff scale
|
---|
15 | Heidi$nmodes : if Heidi$cutoff is undefined, Heidi$nmodes determines the number of
|
---|
16 | modes in the spectrum (starting from index 0)
|
---|
17 |
|
---|
18 | Masses, widths and couplings are calculated statically. DO NOT CHANGE THOSE OR THE
|
---|
19 | ELECTROWEAK PARAMETERS AFTER CREATING THE MODEL.
|
---|
20 |
|
---|
21 | This model file is a descendant of Claude Duhr's SMScalars model.
|
---|
22 |
|
---|
23 | *)
|
---|
24 |
|
---|
25 |
|
---|
26 | (* Make sure everything we need is at our disposal *)
|
---|
27 | Needs["Heidi`"];
|
---|
28 | Block[{error},
|
---|
29 | error[s_] := (Print["HEIDI error: please set " <> s]; Throw[Null]);
|
---|
30 | If[!NumericQ[Heidi$v], error["Heidi$v"]];
|
---|
31 | If[!NumericQ[Heidi$mh], error["Heidi$mh"]];
|
---|
32 | If[!NumericQ[Heidi$cs], error["Heidi$cs"]];
|
---|
33 | If[!NumericQ[Heidi$mb], error["Heidi$mb"]];
|
---|
34 | If[!NumericQ[Heidi$g2], error["Heidi$g2"]];
|
---|
35 | If[FeynmanGauge,
|
---|
36 | Print["HEIDI error: the model currently only supports unitarity gauge"
|
---|
37 | <> "; please set FeynmanGauge = False."];
|
---|
38 | Throw[Null];
|
---|
39 | ];
|
---|
40 | ];
|
---|
41 |
|
---|
42 | (* Init HEIDI *)
|
---|
43 | InitHeidi[Heidi$v, Heidi$mh, Heidi$cs, Heidi$mb, Heidi$g2];
|
---|
44 |
|
---|
45 | (* Determine the number of modes we have been requested to include *)
|
---|
46 | If[NumericQ[Heidi$cutoff],
|
---|
47 | Heidi$nmodes = FixedPoint[If[HeidiMass[#] < Heidi$cutoff, # + 1, #]&, 0];
|
---|
48 | ];
|
---|
49 | If[!NumericQ[Heidi$nmodes],
|
---|
50 | Print["HEIDI error: please set either Heidi$cutoff or Heidi$nmodes"];
|
---|
51 | Throw[Null];
|
---|
52 | ];
|
---|
53 |
|
---|
54 | (* Model metadata *)
|
---|
55 | M$ModelName = "HEIDI";
|
---|
56 | M$Information = {Authors -> "C. Speckner",
|
---|
57 | Institutions -> "Universitaet Freiburg",
|
---|
58 | Emails -> "Christian.Speckner@physik.uni-freiburg.de",
|
---|
59 | Date -> "30.07.2010",
|
---|
60 | Version -> "0.1",
|
---|
61 | URLs -> "None",
|
---|
62 | References -> (
|
---|
63 | ""
|
---|
64 | <> "\"Exploring the golden channel for HEIDI models using an "
|
---|
65 | <> "interface between WHIZARD and FeynRules\", "
|
---|
66 | <> "N. D. Christensen, C. Duhr, B. Fuks, J. Reuter, C. Speckner, "
|
---|
67 | <> "arXiv:1010.3251")
|
---|
68 | };
|
---|
69 |
|
---|
70 | (* The flavor index for the HEIDI modes *)
|
---|
71 | IndexRange[Index[Heidi]] = Range[Heidi$nmodes];
|
---|
72 | IndexStyle[Heidi, k];
|
---|
73 |
|
---|
74 | M$Parameters = {
|
---|
75 | (* The Higgs wavefunction is a tensor parameter, the entries of which are *
|
---|
76 | * stored numerically as external parameters. *)
|
---|
77 | xi == {
|
---|
78 | Indices -> {Index[Heidi]},
|
---|
79 | ComplexParameter -> False,
|
---|
80 | Value -> Table[Rule[xi[n], HeidiWavefunction[n - 1, 0]],
|
---|
81 | {n, 1, Heidi$nmodes}],
|
---|
82 | Description -> "Higgs wave function",
|
---|
83 | ParameterType -> External,
|
---|
84 | AllowSummation -> True
|
---|
85 | },
|
---|
86 | (* K factor for the effective ggh coupling *)
|
---|
87 | kggh == {
|
---|
88 | Value -> 1,
|
---|
89 | ParamterType -> External,
|
---|
90 | Description -> "ggh K factor"
|
---|
91 | }
|
---|
92 | };
|
---|
93 |
|
---|
94 |
|
---|
95 | (* Enter the HEIDI scalars *)
|
---|
96 | M$ClassesDescription = {
|
---|
97 | S[4] == {
|
---|
98 | ClassName -> Hh,
|
---|
99 | ClassMembers -> Table[Symbol["Hh" <> ToString[n]], {n, 1, Heidi$nmodes}],
|
---|
100 | SelfConjugate -> True,
|
---|
101 | Indices -> {Index[Heidi]},
|
---|
102 | FlavorIndex -> Heidi,
|
---|
103 | Mass -> Table[{Symbol["mhh" <> ToString[n]], HeidiMass[n - 1]}, {n, 1, Heidi$nmodes}],
|
---|
104 | Width -> Table[{Symbol["whh" <> ToString[n]], HeidiWidth[n - 1]}, {n, 1, Heidi$nmodes}],
|
---|
105 | PDG -> Table[990000 + n, {n, 1, Heidi$nmodes}]
|
---|
106 | }
|
---|
107 | }
|
---|
108 |
|
---|
109 | (* Construct HEIDI Lagrangian *)
|
---|
110 | LHEIDI := (LSM /. {muH -> 0, \[Lambda] -> 0}) /. H -> (Hh[n]*xi[n]);
|
---|
111 | LHEIDI::usage = "LHEIDI: HEIDI lagrangian";
|
---|
112 |
|
---|
113 | (* Optional: the effective ggh_i lagrangian *)
|
---|
114 | LHEIDIgg[mode_] := Block[{fun, piece, tt, mm, hh},
|
---|
115 | Print["adding effective scalar-gluon-gluon vertices " <> If[mode == "heavytop",
|
---|
116 | "in heavy top limit", "with dynamical loop factor"]];
|
---|
117 | tt[m_] := 4*MT^2 / m^2;
|
---|
118 | fun[tau_] := If[mode == "heavytop", 2/3,
|
---|
119 | tau * (1 + (1 - tau)* If[NumericalValue[tau] > 1,
|
---|
120 | ArcSin[Sqrt[1 / tau]]^2
|
---|
121 | ,
|
---|
122 | -1/4 * (Log[(1 + Sqrt[1 + tau])/(1 - Sqrt[1 - tau])]
|
---|
123 | - I*Pi)^2
|
---|
124 | ])
|
---|
125 | ];
|
---|
126 | mm[n_] := Symbol["mhh" <> ToString[n]];
|
---|
127 | hh[n_] := Symbol["Hh" <> ToString[n]];
|
---|
128 | piece[n_] :=
|
---|
129 | Sqrt[kggh] * gs^2/32/Pi^2/v * fun[tt[mm[n]]] * xi[n] *
|
---|
130 | hh[n] * (del[G[mu, a], nu] - del[G[nu, a], mu])^2;
|
---|
131 | Plus @@ (piece /@ Range[Heidi$nmodes])
|
---|
132 | ];
|
---|
133 | LHEIDIgg[] := LHEIDIgg[""];
|
---|
134 | LHEIDIgg::usage = "LHEIDIgg [mode]: HEIDI effective scalar-gluon-gluon couplings
|
---|
135 | mode : optional, set to \"heavytop\" to use heavy top limit";
|
---|
136 |
|
---|
137 | (* Protect our symbols. *)
|
---|
138 | Protect[LHEIDI, LHEIDIgg];
|
---|
139 |
|
---|
140 | (* Spit out final warnings. *)
|
---|
141 | Print["HEIDI initialized. Please doublecheck that the runtime parametrization of "
|
---|
142 | <> "the electroweak sector is consistent with the parameters you used for HEIDI "
|
---|
143 | <> "before running any code."];
|
---|