| 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."];
|
|---|