Documentation of MARTY
A Modern ARtificial Theoretical phYsicist
SM.h
Go to the documentation of this file.
1 // This file is part of MARTY.
2 //
3 // MARTY is free software: you can redistribute it and/or modify
4 // it under the terms of the GNU General Public License as published by
5 // the Free Software Foundation, either version 3 of the License, or
6 // (at your option) any later version.
7 //
8 // MARTY is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 // GNU General Public License for more details.
12 //
13 // You should have received a copy of the GNU General Public License
14 // along with MARTY. If not, see <https://www.gnu.org/licenses/>.
15 
25 #ifndef SM_H_INCLUDED
26 #define SM_H_INCLUDED
27 
28 #include <csl.h>
29 #include "model.h"
30 
31 namespace mty {
32 
36  class SM_Model: public mty::Model {
37 
38  public:
39  SM_Model(bool init = true);
40 
41  void init();
42 
43  void HiggsVEVExpansion();
44  void diagonalizeSMMassMatrices();
45  void gaugeSymmetryBreaking();
46  void replaceLeptonYukawa();
47  void replaceUpYukawa();
48  void replaceDownYukawa();
49  void flavorSymmetryBreaking();
50  void adjust();
51  void addGaugeFixingTerms();
52  };
53 
54 } // End of namespace mty
55 
62 namespace mty::sm_input {
63 
64 
66  // SMINPUTS block SLHA conventions
68 
69  // alpha_em(0) = 1 / ( 137.035999139(31) )
70  inline
71  csl::Expr alpha_em = csl::constant_s(
72  "alpha_em",
73  1 / csl::float_s(1.37035999139e+02L));
74 
75  inline
76  csl::Expr e_em = csl::constant_s(
77  "e_em",
78  csl::Evaluated(
79  csl::sqrt_s(4 * M_PI * alpha_em),
80  csl::eval::numerical | csl::eval::literal
81  )
82  );
83 
84  // At M_W
85  inline
86  csl::Expr G_F = csl::constant_s(
87  "G_F",
88  csl::float_s(1.1663787e-05L));
89 
90  // At 0
91  inline
92  csl::Expr alpha_s = csl::constant_s(
93  "alpha_s",
94  csl::float_s(1.1890e-01L));
95  inline
96  csl::Expr g_s = csl::constant_s(
97  "g_s",
98  csl::Evaluated(
99  csl::sqrt_s(4 * M_PI * alpha_s),
100  csl::eval::numerical | csl::eval::literal
101  )
102  );
103 
104  inline
105  csl::Expr M_Z = csl::constant_s(
106  "M_Z",
107  csl::float_s(9.11876e+01));
108 
109  inline
110  csl::Expr m_b = csl::constant_s(
111  "m_b",
112  csl::float_s(4.18));
113 
114  inline
115  csl::Expr m_t = csl::constant_s(
116  "m_t",
117  csl::float_s(173));
118 
119  inline
120  csl::Expr m_tau = csl::constant_s(
121  "m_tau",
122  csl::float_s(1.77686));
123 
125  // Other inputs
127 
128  inline
129  csl::Expr M_W = csl::constant_s(
130  "M_W",
131  csl::float_s(80.379)
132  );
133 
134  inline
135  csl::Expr m_h = csl::constant_s(
136  "m_h",
137  csl::float_s(125.18)
138  );
139 
140  inline
141  csl::Expr v = csl::constant_s(
142  "v",
143  246.22
144  );
145 
146  inline
147  csl::Expr m_e = csl::constant_s(
148  "m_e",
149  csl::float_s(5.109989461e-04L)
150  );
151 
152  inline
153  csl::Expr m_mu = csl::constant_s(
154  "m_mu",
155  csl::float_s(105.6583745e-03)
156  );
157 
158  inline
159  csl::Expr m_u = csl::constant_s(
160  "m_u",
161  csl::float_s(2.2e-03));
162 
163  inline
164  csl::Expr m_d = csl::constant_s(
165  "m_d",
166  csl::float_s(4.7e-03));
167 
168  inline
169  csl::Expr m_c = csl::constant_s(
170  "m_c",
171  csl::float_s(1.275));
172 
173  inline
174  csl::Expr m_s = csl::constant_s(
175  "m_s",
176  csl::float_s(0.095));
177  inline
178  csl::Expr Gamma_W = csl::constant_s(
179  "Gamma_W",
180  csl::float_s(2.085)
181  );
182 
183  inline
184  csl::Expr Gamma_Z = csl::constant_s(
185  "Gamma_Z",
186  csl::float_s(2.4952)
187  );
188 
189  // From ATLAS, found in PDG chapter on higgs physics
190  inline
191  csl::Expr Gamma_h = csl::constant_s(
192  "Gamma_h",
193  csl::float_s(4.2e-3)
194  );
195 
196  inline
197  csl::Expr Gamma_t = csl::constant_s(
198  "Gamma_t",
199  csl::float_s(1.41)
200  );
201 
202  // MSbar scheme at mu = 0GeV
203  inline
204  csl::Expr s2_theta_W = csl::constant_s(
205  "s2_thetaW",
206  csl::float_s(0.23057)
207  );
208 
209  inline
210  csl::Expr theta_W = csl::constant_s(
211  "theta_W",
212  csl::Evaluated(
213  csl::asin_s(csl::sqrt_s(s2_theta_W)),
214  csl::eval::numerical | csl::eval::literal
215  )
216  );
217 
219  // CKM Matrix PDG 2020
221 
222  inline
223  csl::Expr V_ud_mod = csl::constant_s(
224  "V_ud_mod",
225  csl::float_s(0.97370)
226  );
227 
228  inline
229  csl::Expr V_us_mod = csl::constant_s(
230  "V_us_mod",
231  csl::float_s(0.2245)
232  );
233 
234  inline
235  csl::Expr V_ub_mod = csl::constant_s(
236  "V_ub_mod",
237  csl::float_s(3.82e-03)
238  );
239 
240  inline
241  csl::Expr V_cb_mod = csl::constant_s(
242  "V_cb_mod",
243  csl::float_s(41.0e-03)
244  );
245 
246  inline
247  csl::Expr V_cd_mod = csl::constant_s(
248  "V_cd_mod",
249  csl::float_s(0.2210)
250  );
251 
252  inline
253  csl::Expr V_cs_mod = csl::constant_s(
254  "V_cs_mod",
255  csl::float_s(0.987)
256  );
257 
258  inline
259  csl::Expr V_td_mod = csl::constant_s(
260  "V_td_mod",
261  csl::float_s(8.0e-03)
262  );
263 
264  inline
265  csl::Expr V_ts_mod = csl::constant_s(
266  "V_ts_mod",
267  csl::float_s(38.8e-03)
268  );
269 
270  inline
271  csl::Expr V_tb_mod = csl::constant_s(
272  "V_tb_mod",
273  csl::float_s(1.013)
274  );
275 
276  inline
277  csl::Expr A_wolf = csl::constant_s(
278  "A_wolf",
279  csl::float_s(0.836)
280  );
281 
282  inline
283  csl::Expr lambda_wolf = csl::constant_s(
284  "lambda_wolf",
285  csl::float_s(0.22453)
286  );
287 
288  inline
289  csl::Expr rho_bar_wolf = csl::constant_s(
290  "rho_bar_wolf",
291  csl::float_s(0.122)
292  );
293 
294  inline
295  csl::Expr eta_bar_wolf = csl::constant_s(
296  "eta_bar_wolf",
297  csl::float_s(0.355)
298  );
299 
300  inline
301  csl::Expr delta_wolf = csl::constant_s(
302  "delta_wolf",
303  csl::Angle(csl::Evaluated(eta_bar_wolf, csl::eval::literal),
304  csl::Evaluated(rho_bar_wolf, csl::eval::literal))
305  .evaluate(csl::eval::numerical).value()
306  );
307 
308  inline
309  csl::Expr V_ud = csl::constant_s(
310  "V_ud",
311  V_ud_mod->getValue(),
312  csl::ComplexProperty::Real
313  );
314 
315  inline
316  csl::Expr V_us = csl::constant_s(
317  "V_us",
318  V_us_mod->getValue(),
319  csl::ComplexProperty::Real
320  );
321 
322  inline
323  csl::Expr V_cb = csl::constant_s(
324  "V_cb",
325  V_cb_mod->getValue(),
326  csl::ComplexProperty::Real
327  );
328 
329  inline
330  csl::Expr V_tb = csl::constant_s(
331  "V_tb",
332  V_tb_mod->getValue(),
333  csl::ComplexProperty::Real
334  );
335 
336  // As PDG says: angles in the first quadrant so cos > 0 and sin > 0
337 
338  inline
339  csl::Expr tan_CKM_12 = V_us / V_ud;
340  inline
341  csl::Expr sin_CKM_12 = csl::Evaluated(
342  csl::sin_s(csl::atan_s(tan_CKM_12)),
343  csl::eval::literal | csl::eval::numerical
344  );
345  inline
346  csl::Expr cos_CKM_12 = csl::Evaluated(
347  csl::cos_s(csl::atan_s(tan_CKM_12)),
348  csl::eval::literal | csl::eval::numerical
349  );
350 
351  inline
352  csl::Expr tan_CKM_23 = V_cb / V_tb;
353  inline
354  csl::Expr sin_CKM_23 = csl::Evaluated(
355  csl::sin_s(csl::atan_s(tan_CKM_23)),
356  csl::eval::literal | csl::eval::numerical
357  );
358  inline
359  csl::Expr cos_CKM_23 = csl::Evaluated(
360  csl::cos_s(csl::atan_s(tan_CKM_23)),
361  csl::eval::literal | csl::eval::numerical
362  );
363 
364  inline
365  csl::Expr cos_CKM_13 = csl::Evaluated(
366  csl::sqrt_s(V_us*V_us + V_ud*V_ud),
367  csl::eval::literal | csl::eval::numerical
368  );
369 
370  inline
371  csl::Expr sin_CKM_13 = csl::Evaluated(
372  csl::sqrt_s(1 - csl::pow_s(cos_CKM_13, 2)),
373  csl::eval::literal | csl::eval::numerical
374  );
375 
376  inline
377  csl::Expr V_ub = V_ub_mod * csl::exp_s(-CSL_I * delta_wolf);
378 
379  inline
380  csl::Expr V_cd = csl::constant_s(
381  "V_cd",
382  csl::Evaluated(
383  - sin_CKM_12*cos_CKM_23
384  - cos_CKM_12*sin_CKM_23*sin_CKM_13*csl::exp_s(CSL_I*delta_wolf),
385  csl::eval::literal | csl::eval::numerical
386  ),
387  csl::ComplexProperty::Complex
388  );
389 
390  inline
391  csl::Expr V_cs = csl::constant_s(
392  "V_cs",
393  csl::Evaluated(
394  cos_CKM_12*cos_CKM_23
395  - sin_CKM_12*sin_CKM_23*sin_CKM_13*csl::exp_s(CSL_I*delta_wolf),
396  csl::eval::literal | csl::eval::numerical
397  ),
398  csl::ComplexProperty::Complex
399  );
400 
401  inline
402  csl::Expr V_td = csl::constant_s(
403  "V_td",
404  csl::Evaluated(
405  sin_CKM_12*sin_CKM_23
406  - cos_CKM_12*cos_CKM_23*sin_CKM_13*csl::exp_s(CSL_I*delta_wolf),
407  csl::eval::literal | csl::eval::numerical
408  ),
409  csl::ComplexProperty::Complex
410  );
411 
412  inline
413  csl::Expr V_ts = csl::constant_s(
414  "V_ts",
415  csl::Evaluated(
416  - cos_CKM_12*sin_CKM_23
417  - sin_CKM_12*cos_CKM_23*sin_CKM_13*csl::exp_s(CSL_I*delta_wolf),
418  csl::eval::literal | csl::eval::numerical
419  ),
420  csl::ComplexProperty::Complex
421  );
422 
423  // Wolfenstein parametrization
424 
425  inline
426  csl::Expr V_ud_wolf = 1 - lambda_wolf*lambda_wolf / 2;
427 
428  inline
429  csl::Expr V_cd_wolf = - lambda_wolf;
430 
431  inline
432  csl::Expr V_td_wolf = rho_bar_wolf - CSL_I * eta_bar_wolf;
433 
434  inline
435  csl::Expr V_us_wolf = lambda_wolf;
436 
437  inline
438  csl::Expr V_cs_wolf = 1 - lambda_wolf*lambda_wolf / 2;
439 
440  inline
441  csl::Expr V_ts_wolf = -A_wolf * lambda_wolf * lambda_wolf;
442 
443  inline
444  csl::Expr V_ub_wolf = rho_bar_wolf + CSL_I * eta_bar_wolf;
445 
446  inline
447  csl::Expr V_cb_wolf = A_wolf * lambda_wolf*lambda_wolf;
448 
449  inline
450  csl::Expr V_tb_wolf = CSL_1;
451 
452 } // End of namespace mty::sm_input
453 
454 #endif
mty::Lagrangian L
Lagrangian of the model.
Definition: modelData.h:1894
Namespace of MARTY.
Definition: 2HDM.h:31
Contains the mty::Model class. It contains all objects in the theory. In particular QuantumField obje...
Standard Model of particle physics.
Definition: SM.h:36
Contains all objects in the theory. In particular QuantumField objects, Gauge, Flavor, Particle...
Definition: model.h:68
Namespace containing SM input parameters, in particular those modifiable with LHA file...
Definition: SM.h:62