# CHEIDI: HEIDI.fr

File HEIDI.fr, 5.1 KB (added by ChristianSpeckner, 10 years ago) |
---|

Line | |
---|---|

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