127 m11 = csl::constant_s(
"m_11");
128 m12 = csl::constant_s(
"m_12");
129 m22 = csl::constant_s(
"m_22");
130 lambda1 = csl::constant_s(
"lambda_1");
131 lambda2 = csl::constant_s(
"lambda_2");
132 lambda3 = csl::constant_s(
"lambda_3");
133 lambda4 = csl::constant_s(
"lambda_4");
134 lambda5 = csl::constant_s(
"lambda_5");
136 Particle Phi1 = scalarboson_s(
"Phi1 ; \\Phi_{1}", *
this);
137 Phi1->setSelfConjugate(
false);
138 Phi1->setGroupRep(
"L", 1);
139 Phi1->setGroupRep(
"Y", {1, 2});
140 Particle Phi2 = scalarboson_s(
"Phi2 ; \\Phi_{2}", *
this);
141 Phi2->setSelfConjugate(
false);
142 Phi2->setGroupRep(
"L", 1);
143 Phi2->setGroupRep(
"Y", {1, 2});
144 addParticles({Phi1, Phi2});
146 csl::Index i = GaugeIndex(*
this,
"L", Phi1);
147 csl::Index j = GaugeIndex(*
this,
"L", Phi1);
149 csl::Expr s11 = csl::GetComplexConjugate(Phi1(i)) * Phi1(i);
150 csl::Expr s12 = csl::GetComplexConjugate(Phi1(i)) * Phi2(i);
151 csl::Expr s21 = csl::GetComplexConjugate(Phi2(j)) * Phi1(j);
152 csl::Expr s22 = csl::GetComplexConjugate(Phi2(j)) * Phi2(j);
154 csl::Expr term_m11 = -m11 * m11 * s11;
155 csl::Expr term_m22 = -m22 * m22 * s22;
156 csl::Expr term_m12 = m12 * m12 * (s12 + s21);
158 csl::Expr term_l1 = -lambda1 / 2 * csl::pow_s(s11, 2);
159 csl::Expr term_l2 = -lambda2 / 2 * csl::pow_s(s22, 2);
160 csl::Expr term_l3 = -lambda3 * s11 * s22;
161 csl::Expr term_l4 = -lambda4 * s12 * s21;
163 = -lambda5 / 2 * (csl::pow_s(s12, 2) + csl::pow_s(s21, 2));
179 auto *flavorSpace = getVectorSpace(
"SM_flavor");
180 csl::Tensor Y1u(
"Y1u", {flavorSpace, flavorSpace});
181 csl::Tensor Y1d(
"Y1d", {flavorSpace, flavorSpace});
182 csl::Tensor Y1e(
"Y1e", {flavorSpace, flavorSpace});
183 Y1u->setComplexProperty(csl::ComplexProperty::Complex);
184 Y1d->setComplexProperty(csl::ComplexProperty::Complex);
185 Y1e->setComplexProperty(csl::ComplexProperty::Complex);
186 csl::Tensor Y2u(
"Y2u", {flavorSpace, flavorSpace});
187 csl::Tensor Y2d(
"Y2d", {flavorSpace, flavorSpace});
188 csl::Tensor Y2e(
"Y2e", {flavorSpace, flavorSpace});
189 Y2u->setComplexProperty(csl::ComplexProperty::Complex);
190 Y2d->setComplexProperty(csl::ComplexProperty::Complex);
191 Y2e->setComplexProperty(csl::ComplexProperty::Complex);
192 csl::Tensor eps = getVectorSpace(
"L",
"Q")->getEpsilon();
193 csl::Index
I = flavorSpace->generateIndex();
194 csl::Index J = flavorSpace->generateIndex();
195 csl::Index a = generateIndex(
"C",
"Q");
196 csl::Index i = generateIndex(
"L",
"Q");
197 csl::Index j = generateIndex(
"L",
"Q");
198 csl::Index al = DiracIndex();
200 Particle Q = getParticle(
"Q");
201 Particle U = getParticle(
"U_R");
202 Particle D = getParticle(
"D_R");
203 Particle L = getParticle(
"L");
204 Particle
E = getParticle(
"E_R");
205 Particle Phi1 = getParticle(
"Phi1");
206 Particle Phi2 = getParticle(
"Phi2");
209 Y1u({
I, J}) * csl::GetComplexConjugate(Phi1(i)) * eps({i, j})
210 * csl::GetComplexConjugate(Q({
I, a, j, al})) * U({J, a, al}),
212 addLagrangianTerm(-Y1d({
I, J}) * Phi1(i)
213 * csl::GetComplexConjugate(Q({
I, a, i, al}))
216 addLagrangianTerm(-Y1e({
I, J}) * Phi1(i)
217 * csl::GetComplexConjugate(L({
I, i, al}))
222 Y2u({
I, J}) * csl::GetComplexConjugate(Phi2(i)) * eps({i, j})
223 * csl::GetComplexConjugate(Q({
I, a, j, al})) * U({J, a, al}),
225 addLagrangianTerm(-Y2d({
I, J}) * Phi2(i)
226 * csl::GetComplexConjugate(Q({
I, a, i, al}))
229 addLagrangianTerm(-Y2e({
I, J}) * Phi2(i)
230 * csl::GetComplexConjugate(L({
I, i, al}))
234 addTensorCoupling(Y1e);
235 addTensorCoupling(Y1u);
236 addTensorCoupling(Y1d);
237 addTensorCoupling(Y2e);
238 addTensorCoupling(Y2u);
239 addTensorCoupling(Y2d);
249 v1 = csl::constant_s(
"v1");
250 beta = csl::constant_s(
"beta");
251 tan_beta = csl::tan_s(beta);
252 v = csl::constant_s(
"v");
255 Particle Phi_10 = GetParticle(*
this,
"Phi1_1");
256 Particle Phi_11 = GetParticle(*
this,
"Phi1_2");
257 Particle Phi_20 = GetParticle(*
this,
"Phi2_1");
258 Particle Phi_21 = GetParticle(*
this,
"Phi2_2");
260 Particle phi1_c = scalarboson_s(
"phi_1", *
this);
261 Particle phi2_c = scalarboson_s(
"phi_2", *
this);
262 Particle rho_1 = scalarboson_s(
"rho_1", *
this);
263 Particle rho_2 = scalarboson_s(
"rho_2", *
this);
264 Particle eta_1 = scalarboson_s(
"eta_1", *
this);
265 Particle eta_2 = scalarboson_s(
"eta_2", *
this);
266 SetSelfConjugate(rho_1,
true);
267 SetSelfConjugate(rho_2,
true);
268 SetSelfConjugate(eta_1,
true);
269 SetSelfConjugate(eta_2,
true);
271 Replaced(*
this, Phi_10, phi1_c());
272 Replaced(*
this, Phi_11, (rho_1() + CSL_I * eta_1() + v1) / csl::sqrt_s(2));
274 Replaced(*
this, Phi_20, phi2_c());
275 Replaced(*
this, Phi_21, (rho_2() + CSL_I * eta_2() + v2) / csl::sqrt_s(2));
279 -CSL_HALF * lambda1 * v1 * v1 + v2 / v1 * m12 * m12
280 - v2 * v2 / 2 * lambda3 - v2 * v2 / 2 * lambda4
281 - v2 * v2 / 2 * lambda5);
285 -CSL_HALF * lambda2 * v2 * v2 + v1 / v2 * m12 * m12
286 - v1 * v1 / 2 * lambda3 - v1 * v1 / 2 * lambda4
287 - v1 * v1 / 2 * lambda5);
297 alpha = csl::constant_s(
"alpha");
299 mty::Particle eta_u = getParticle(
"eta_1");
300 mty::Particle eta_d = getParticle(
"eta_2");
301 mty::Particle G0 = scalarboson_s(
"G0; G^0", *
this);
302 mty::Particle
A0 = scalarboson_s(
"A0; A^0", *
this);
303 mty::SetSelfConjugate(G0,
true);
304 mty::SetSelfConjugate(
A0,
true);
305 rotateFields({eta_u, eta_d},
307 {{csl::cos_s(beta), -csl::sin_s(beta)},
308 {csl::sin_s(beta), csl::cos_s(beta)}},
313 mty::Particle phi_u = getParticle(
"phi_1");
314 mty::Particle phi_d = getParticle(
"phi_2");
315 mty::Particle Gp = scalarboson_s(
"Gp; G^+", *
this);
316 mty::Particle Hp = scalarboson_s(
"Hp; H^+", *
this);
317 rotateFields({phi_u, phi_d},
319 {{csl::cos_s(beta), -csl::sin_s(beta)},
320 {csl::sin_s(beta), csl::cos_s(beta)}},
325 mty::Particle rho_u = getParticle(
"rho_1");
326 mty::Particle rho_d = getParticle(
"rho_2");
327 mty::Particle h = scalarboson_s(
"h; h^0", *
this);
328 mty::Particle H = scalarboson_s(
"H0; H^0", *
this);
329 mty::SetSelfConjugate(h,
true);
330 mty::SetSelfConjugate(H,
true);
331 rotateFields({rho_u, rho_d},
333 {{-csl::sin_s(alpha), csl::cos_s(alpha)},
334 {csl::cos_s(alpha), csl::sin_s(alpha)}},
338 DiagonalizeMassMatrices(*
this);
339 Rename(*
this,
"B",
"A");
340 Rename(*
this,
"W_3",
"Z");
342 gY = GetCoupling(*
this,
"g_Y");
343 gL = GetCoupling(*
this,
"g_L");
344 theta_Weinberg = csl::constant_s(
"theta_W");
345 e = csl::constant_s(
"e_em");
349 csl::pow_s(gL / csl::cos_s(theta_Weinberg), csl::int_s(2)));
350 Replaced(*
this, gY, e / csl::cos_s(theta_Weinberg));
351 Replaced(*
this, gL, e / csl::sin_s(theta_Weinberg));
361 csl::Tensor Ye1 = GetYukawa(*
this,
"Y1e");
362 csl::Tensor Yu1 = GetYukawa(*
this,
"Y1u");
363 csl::Tensor Yd1 = GetYukawa(*
this,
"Y1d");
365 csl::Tensor Ye2 = GetYukawa(*
this,
"Y2e");
366 csl::Tensor Yu2 = GetYukawa(*
this,
"Y2u");
367 csl::Tensor Yd2 = GetYukawa(*
this,
"Y2d");
369 csl::Expr m_e = csl::constant_s(
"m_e");
370 csl::Expr m_mu = csl::constant_s(
"m_mu");
371 csl::Expr m_tau = csl::constant_s(
"m_tau");
372 csl::Expr m_u = csl::constant_s(
"m_u");
373 csl::Expr m_c = csl::constant_s(
"m_c");
374 csl::Expr m_t = csl::constant_s(
"m_t");
375 csl::Expr m_d = csl::constant_s(
"m_d");
376 csl::Expr m_s = csl::constant_s(
"m_s");
377 csl::Expr m_b = csl::constant_s(
"m_b");
379 const csl::Space *flavorSpace = GetSpace(Ye1);
380 csl::Tensor M_e = csl::tensor_s(
"M_e",
381 {flavorSpace, flavorSpace},
382 csl::matrix_s({{m_e, CSL_0, CSL_0},
383 {CSL_0, m_mu, CSL_0},
384 {CSL_0, CSL_0, m_tau}}));
386 csl::Tensor M_u = csl::tensor_s(
388 {flavorSpace, flavorSpace},
390 {{m_u, CSL_0, CSL_0}, {CSL_0, m_c, CSL_0}, {CSL_0, CSL_0, m_t}}));
392 csl::Tensor M_d = csl::tensor_s(
394 {flavorSpace, flavorSpace},
396 {{m_d, CSL_0, CSL_0}, {CSL_0, m_s, CSL_0}, {CSL_0, CSL_0, m_b}}));
398 csl::Index f_i = GetIndex(flavorSpace);
399 csl::Index f_j = GetIndex(flavorSpace);
400 csl::Index f_k = GetIndex(flavorSpace);
401 csl::Index f_l = GetIndex(flavorSpace);
402 csl::Tensor delta_flav = Delta(flavorSpace);
404 buildCKM(flavorSpace);
409 Replaced(*
this, Ye1, e_coefs.first * Ye1({f_i, f_j}));
410 Replaced(*
this, Ye2, e_coefs.second * Ye1({f_i, f_j}));
411 Replaced(*
this, Yu1, u_coefs.first * Yu1({f_i, f_j}));
412 Replaced(*
this, Yu2, u_coefs.second * Yu1({f_i, f_j}));
413 Replaced(*
this, Yd1, d_coefs.first * Yd1({f_i, f_j}));
414 Replaced(*
this, Yd2, d_coefs.second * Yd1({f_i, f_j}));
419 Replaced(*
this, Ye1, e_mass_coef * M_e({f_i, f_j}));
420 Replaced(*
this, Yu1, u_mass_coef * M_u({f_i, f_j}));
427 GetHermitianConjugate(V_CKM({f_l, f_j}), flavorSpace)},
430 mty::Particle D_L = GetParticle(*
this,
"D_L");
431 mty::Particle D_R = GetParticle(*
this,
"D_R");
432 csl::Index a1 = DiracIndex();
433 csl::Index A = GaugeIndex(*
this,
"C", D_L);
434 Replaced(*
this, D_L({f_j, A, a1}), V_CKM({f_j, f_k}) * D_L({f_k, A, a1}));
435 Replaced(*
this, D_R({f_i, A, a1}), V_CKM({f_i, f_j}) * D_R({f_j, A, a1}));
436 Replaced(*
this, 1 + csl::pow_s(tan_beta, -2), v * v / (v2 * v2));
446 PromoteGoldstone(*
this,
"Gp",
"W");
447 PromoteGoldstone(*
this,
"G0",
"Z");
453 *
this, tan_beta + 1 / tan_beta, (1 + tan_beta * tan_beta) / tan_beta);
454 Replaced(*
this, v1, v / csl::sqrt_s(1 + tan_beta * tan_beta));
455 Replaced(*
this, v, (2 *
sm_input::M_W * csl::sin_s(theta_Weinberg)) / e);
457 1 / (1 + tan_beta * tan_beta)
458 + tan_beta * tan_beta / (1 + tan_beta * tan_beta),
461 1 + csl::pow_s(tan_beta, -2),
462 1 / csl::pow_s(csl::sin_s(beta), 2));
464 1 + csl::pow_s(tan_beta, 2),
465 1 / csl::pow_s(csl::cos_s(beta), 2));
466 Replaced(*
this, csl::tan_s(beta), csl::sin_s(beta) / csl::cos_s(beta));