Manipulating The Results

1.1 Simplifications (1)

In [1]:
#The first thing to do is to make the Toolbox available
import sys
#pretty printing
%load_ext sympy.interactive.ipythonprinting
sys.path.append('Source/Output')
from Toolbox import * 
In [2]:
#Now we can load a result which will serve as an example. For that purpose use the load function of the Toolbox
RGEs,info = loadmodel('SM-BL.pickle')
info
Out[2]:
Generated by [email protected] for SM.
In [3]:
#Print all the results available in the dictionary
RGEs.keys()
Out[3]:
[\lambda_1, SU3c, \mu_1, SU2L, U1, \lambda_3, U1BL, m_H, Y_l, Y_H, \lambda_2, 
Y_e, Y_d, Y_u]
In [4]:
#Let's have a look at the lambda_1 coupling and we use the getoneloop function to get rid of the 4pi factors
Lambda1 = getoneloop(RGEs['\\lambda_1'])
Lambda1
Out[4]:
$$\frac{3}{8} g_{1}^{4} + \frac{3}{4} g_{1}^{2} g_{SU2L}^{2} - 3 g_{1}^{2} \lambda_{1} + \frac{9}{8} g_{SU2L}^{4} - 9 g_{SU2L}^{2} \lambda_{1} + 24 \lambda_{1}^{2} + 12 \lambda_{1} \operatorname{trace}{\left (Y_{d}^{\dagger},Y_{d} \right )} + 4 \lambda_{1} \operatorname{trace}{\left (Y_{e}^{\dagger},Y_{e} \right )} + 4 \lambda_{1} \operatorname{trace}{\left (Y_{l}^{\dagger},Y_{l} \right )} + 12 \lambda_{1} \operatorname{trace}{\left (Y_{u}^{\dagger},Y_{u} \right )} + \lambda_{3}^{2} - 6 \operatorname{trace}{\left (Y_{d},Y_{d}^{\dagger},Y_{d},Y_{d}^{\dagger} \right )} - 2 \operatorname{trace}{\left (Y_{e},Y_{e}^{\dagger},Y_{e},Y_{e}^{\dagger} \right )} - 2 \operatorname{trace}{\left (Y_{l},Y_{l}^{\dagger},Y_{l},Y_{l}^{\dagger} \right )} - 6 \operatorname{trace}{\left (Y_{u},Y_{u}^{\dagger},Y_{u},Y_{u}^{\dagger} \right )}$$

Let's now imagine that we want to neglect all yukawas but the top quark. Then Yukawa matrix Yu is then a scalar. traces and MatMul are our own declared classes and that therefore they need to be loaded before being able to do any matching with it.

In [5]:
#Let's declare symbols for each yukawas
yl = Symbol('Y_l',commutative=False)
ye= Symbol('Y_e',commutative=False)
yu= Symbol('Y_u',commutative=False)
yd= Symbol('Y_d',commutative=False)
yt=Symbol('yt',real=True)
#List of substitutions
Subs = ((yl,0),(yd,0),(yl,0),(ye,0),(yu,yt))
Lambda1 = Lambda1.subs(Subs)
Lambda1
Out[5]:
$$\frac{3}{8} g_{1}^{4} + \frac{3}{4} g_{1}^{2} g_{SU2L}^{2} - 3 g_{1}^{2} \lambda_{1} + \frac{9}{8} g_{SU2L}^{4} - 9 g_{SU2L}^{2} \lambda_{1} + 24 \lambda_{1}^{2} + 20 \lambda_{1} \operatorname{trace}{\left (0,0 \right )} + 12 \lambda_{1} \operatorname{trace}{\left (yt,yt \right )} + \lambda_{3}^{2} - 10 \operatorname{trace}{\left (0,0,0,0 \right )} - 6 \operatorname{trace}{\left (yt,yt,yt,yt \right )}$$
In [43]:
#load the trace and MatMul classes
from RGEsmathModule import trace,MatM
#declare some wild cards for the mapping
p,q,r,s,t,u,v,w = map(Wild,['p','q','r','s','t','u','v','w'])
#Remove the 0 traces
Lambda1 =Lambda1.replace(trace(p,q),p*q).replace(trace(p,q,r,s),p*q*r*s)
Lambda1
Out[43]:
$$\frac{3}{8} g_{1}^{4} + \frac{3}{4} g_{1}^{2} g_{SU2L}^{2} - 3 g_{1}^{2} \lambda_{1} + \frac{9}{8} g_{SU2L}^{4} - 9 g_{SU2L}^{2} \lambda_{1} + 24 \lambda_{1}^{2} + 12 \lambda_{1} yt^{2} + \lambda_{3}^{2} - 6 yt^{4}$$
In [44]:
#Now Let's try to obtain the beta function for the parameter lambda_1 - lambda_3 in the same approximation
#We first filter the rges for the lambda3 result
yh = Symbol('Y_H',real=True)
YH = Symbol('Y_H',commutative=False)
Lambda3=getoneloop(RGEs['\\lambda_3']).subs(Subs).replace(trace(p,q),p*q).replace(trace(p,q,r,s),p*q*r*s).subs(YH,yh)
Lambda3
Out[44]:
$$4 Y_{H}^{2} \lambda_{3} - \frac{3}{2} g_{1}^{2} \lambda_{3} - \frac{9}{2} g_{SU2L}^{2} \lambda_{3} - 24 g_{U1BL}^{2} \lambda_{3} + 12 \lambda_{1} \lambda_{3} + 8 \lambda_{2} \lambda_{3} + 4 \lambda_{3}^{2} + 6 \lambda_{3} yt^{2}$$
In [45]:
#We can now do the difference
Diff = (Lambda3 - Lambda1).expand()
Diff
Out[45]:
$$4 Y_{H}^{2} \lambda_{3} - \frac{3}{8} g_{1}^{4} - \frac{3}{4} g_{1}^{2} g_{SU2L}^{2} + 3 g_{1}^{2} \lambda_{1} - \frac{3}{2} g_{1}^{2} \lambda_{3} - \frac{9}{8} g_{SU2L}^{4} + 9 g_{SU2L}^{2} \lambda_{1} - \frac{9}{2} g_{SU2L}^{2} \lambda_{3} - 24 g_{U1BL}^{2} \lambda_{3} - 24 \lambda_{1}^{2} + 12 \lambda_{1} \lambda_{3} - 12 \lambda_{1} yt^{2} + 8 \lambda_{2} \lambda_{3} + 3 \lambda_{3}^{2} + 6 \lambda_{3} yt^{2} + 6 yt^{4}$$

Note that if one wants to export those results into latex it suffices to right click on the result and then onto Show Math As--> TeX Command

1.2 Simplifications (2)

Let's now have a look at the Yukawa rge and try to do some simplification. The goal is to see how to match the Yukawa Matrices that are not inside the traces

In [14]:
bYl = getoneloop(RGEs['Y_l'])
bYl
Out[14]:
$$- \frac{3}{4} g_{1}^{2} \operatorname{Y\_l}{\left (Lbar_{f},nuR_{f} \right )} - \frac{9}{4} g_{SU2L}^{2} \operatorname{Y\_l}{\left (Lbar_{f},nuR_{f} \right )} - 6 g_{U1BL}^{2} \operatorname{Y\_l}{\left (Lbar_{f},nuR_{f} \right )} + 3 \operatorname{Y\_l}{\left (Lbar_{f},nuR_{f} \right )} \operatorname{trace}{\left (Y_{d}^{\dagger},Y_{d} \right )} + \operatorname{Y\_l}{\left (Lbar_{f},nuR_{f} \right )} \operatorname{trace}{\left (Y_{e}^{\dagger},Y_{e} \right )} + \operatorname{Y\_l}{\left (Lbar_{f},nuR_{f} \right )} \operatorname{trace}{\left (Y_{l}^{\dagger},Y_{l} \right )} + 3 \operatorname{Y\_l}{\left (Lbar_{f},nuR_{f} \right )} \operatorname{trace}{\left (Y_{u}^{\dagger},Y_{u} \right )} - \frac{3}{2} \operatorname{MatM}{\left (\begin{pmatrix}Y_{e}, & Y_{e}^{\dagger}, & Y_{l}\end{pmatrix},Lbar_{f},nuR_{f} \right )} + 2 \operatorname{MatM}{\left (\begin{pmatrix}Y_{l}, & Y_{H}^{\dagger}, & Y_{H}\end{pmatrix},Lbar_{f},nuR_{f} \right )} + \frac{3}{2} \operatorname{MatM}{\left (\begin{pmatrix}Y_{l}, & Y_{l}^{\dagger}, & Y_{l}\end{pmatrix},Lbar_{f},nuR_{f} \right )}$$
In [23]:
#If we want to match the object representing the Yukawa with indices i.e. outside of the traces we need to use functions
FYl = Function('Y_l')
#Let's get rid of the indices and translate Y_l into the Symbol Yl that we have introduced above
bYl = bYl.replace(FYl(p,q),yl)
bYl
Out[23]:
$$- \frac{3}{4} g_{1}^{2} Y_{l} - \frac{9}{4} g_{SU2L}^{2} Y_{l} - 6 g_{U1BL}^{2} Y_{l} + 3 \operatorname{trace}{\left (Y_{d}^{\dagger},Y_{d} \right )} Y_{l} + \operatorname{trace}{\left (Y_{e}^{\dagger},Y_{e} \right )} Y_{l} + \operatorname{trace}{\left (Y_{l}^{\dagger},Y_{l} \right )} Y_{l} + 3 \operatorname{trace}{\left (Y_{u}^{\dagger},Y_{u} \right )} Y_{l} - \frac{3}{2} \operatorname{MatM}{\left (\begin{pmatrix}Y_{e}, & Y_{e}^{\dagger}, & Y_{l}\end{pmatrix},Lbar_{f},nuR_{f} \right )} + 2 \operatorname{MatM}{\left (\begin{pmatrix}Y_{l}, & Y_{H}^{\dagger}, & Y_{H}\end{pmatrix},Lbar_{f},nuR_{f} \right )} + \frac{3}{2} \operatorname{MatM}{\left (\begin{pmatrix}Y_{l}, & Y_{l}^{\dagger}, & Y_{l}\end{pmatrix},Lbar_{f},nuR_{f} \right )}$$
In [30]:
#Now to be consistent we should remove the indices in the MatM function and also transforms all the Yukawa as scalars
bYl.replace(MatM((p,q,r),u,v),MatM((p,q,r)))
Out[30]:
$$- \frac{3}{4} g_{1}^{2} Y_{l} - \frac{9}{4} g_{SU2L}^{2} Y_{l} - 6 g_{U1BL}^{2} Y_{l} + 3 \operatorname{trace}{\left (Y_{d}^{\dagger},Y_{d} \right )} Y_{l} + \operatorname{trace}{\left (Y_{e}^{\dagger},Y_{e} \right )} Y_{l} + \operatorname{trace}{\left (Y_{l}^{\dagger},Y_{l} \right )} Y_{l} + 3 \operatorname{trace}{\left (Y_{u}^{\dagger},Y_{u} \right )} Y_{l} - \frac{3}{2} \operatorname{MatM}{\left (\begin{pmatrix}Y_{e}, & Y_{e}^{\dagger}, & Y_{l}\end{pmatrix} \right )} + 2 \operatorname{MatM}{\left (\begin{pmatrix}Y_{l}, & Y_{H}^{\dagger}, & Y_{H}\end{pmatrix} \right )} + \frac{3}{2} \operatorname{MatM}{\left (\begin{pmatrix}Y_{l}, & Y_{l}^{\dagger}, & Y_{l}\end{pmatrix} \right )}$$