li_3lj.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2015 HEPfit Collaboration
3  * All rights reserved.
4  *
5  * For the licensing terms see doc/COPYING.
6  */
7 
8 #include "li_3lj.h"
9 #include "StandardModel.h"
10 
11 //li_3lj::li_3lj(const StandardModel& SM_i): ThObservable(SM_i)
12 //{
13 //};
14 //
15 //double li_3lj::computeThValue()
16 //{
17 // return 0.0;
18 //}
19 
21 : ThObservable(SM_i), mySM(SM_i)
22 {}
23 
25 {
26  double alph = mySM.getAle();
28  double mMU = mySM.getLeptons(StandardModel::MU).getMass();
29  double GammaMU = 2.99598e-19;
31 // C_7 = (*(allcoeff_m3e[LO]))(0);
32 // C_7p = (*(allcoeff_m3e[LO]))(1);
33 // C_9 = (*(allcoeff_m3e[LO]))(2);
34 // C_9p = (*(allcoeff_m3e[LO]))(3);
35 // C_10 = (*(allcoeff_m3e[LO]))(4);
36 // C_10p = (*(allcoeff_m3e[LO]))(5);
37 // C_S = (*(allcoeff_m3e[LO]))(6);
38 // C_Sp = (*(allcoeff_m3e[LO]))(7);
39 // C_P = (*(allcoeff_m3e[LO]))(8);
40 // C_Pp = (*(allcoeff_m3e[LO]))(9);
41 // C_T = (*(allcoeff_m3e[LO]))(10);
42 // C_T5 = (*(allcoeff_m3e[LO]))(11);
43 
44 //std::cout<<"0"<< (*(allcoeff_m3e[LO]))(0)<<std::endl;
45 //std::cout<<"1"<< (*(allcoeff_m3e[LO]))(1)<<std::endl;
46 //std::cout<<"2"<< (*(allcoeff_m3e[LO]))(2)<<std::endl;
47 //std::cout<<"3"<< (*(allcoeff_m3e[LO]))(3)<<std::endl;
48 //std::cout<<"4"<< (*(allcoeff_m3e[LO]))(4)<<std::endl;
49 //std::cout<<"5"<< (*(allcoeff_m3e[LO]))(5)<<std::endl;
50 //std::cout<<"6"<< (*(allcoeff_m3e[LO]))(6)<<std::endl;
51 //std::cout<<"7"<< (*(allcoeff_m3e[LO]))(7)<<std::endl;
52 //std::cout<<"8"<< (*(allcoeff_m3e[LO]))(8)<<std::endl;
53 //std::cout<<"9"<< (*(allcoeff_m3e[LO]))(9)<<std::endl;
54 //std::cout<<"10"<< (*(allcoeff_m3e[LO]))(10)<<std::endl;
55 //std::cout<<"11"<< (*(allcoeff_m3e[LO]))(11)<<std::endl;
56 //std::cout<<"12"<< (*(allcoeff_m3e[LO]))(12)<<std::endl;
57 //std::cout<<"13"<< (*(allcoeff_m3e[LO]))(13)<<std::endl;
58 //std::cout<<"14"<< (*(allcoeff_m3e[LO]))(14)<<std::endl;
59 //std::cout<<"15"<< (*(allcoeff_m3e[LO]))(15)<<std::endl;
60 //std::cout<<"16"<< (*(allcoeff_m3e[LO]))(16)<<std::endl;
61 //std::cout<<"17"<< (*(allcoeff_m3e[LO]))(17)<<std::endl;
62 //std::cout<<"18"<< (*(allcoeff_m3e[LO]))(18)<<std::endl;
63 //std::cout<<"19"<< (*(allcoeff_m3e[LO]))(19)<<std::endl;
64 
65 // double Brmu3e = ((*(allcoeff_m3e[LO]))(0)* (*(allcoeff_m3e[LO]))(0).conjugate()).abs();
66  double Brmu3e = alph*alph/(32.0*M_PI) * pow(mMU,5.0)
67  * ((*(allcoeff_m3e[LO]))(1).abs2()+(*(allcoeff_m3e[LO]))(0).abs2()
68  -4.0*((*(allcoeff_m3e[LO]))(1)*(*(allcoeff_m3e[LO]))(2).conjugate()+(*(allcoeff_m3e[LO]))(3)*(*(allcoeff_m3e[LO]))(0).conjugate()).real()
69  +((*(allcoeff_m3e[LO]))(3).abs2()+(*(allcoeff_m3e[LO]))(2).abs2())*(16.0*log(mMU/mE)-22.0)/3.0
70  +((*(allcoeff_m3e[LO]))(5).abs2()+(*(allcoeff_m3e[LO]))(4).abs2())/6.0
71  +(((*(allcoeff_m3e[LO]))(7)+(*(allcoeff_m3e[LO]))(13)).abs2()+((*(allcoeff_m3e[LO]))(6)+(*(allcoeff_m3e[LO]))(12)).abs2())/3.0
72  +(((*(allcoeff_m3e[LO]))(9)+(*(allcoeff_m3e[LO]))(15)).abs2()+((*(allcoeff_m3e[LO]))(8)+(*(allcoeff_m3e[LO]))(14)).abs2())/24.0
73  +((*(allcoeff_m3e[LO]))(11).abs2()+(*(allcoeff_m3e[LO]))(10).abs2())*6.0
74  -(((*(allcoeff_m3e[LO]))(9)+(*(allcoeff_m3e[LO]))(15))*(*(allcoeff_m3e[LO]))(11).conjugate()+((*(allcoeff_m3e[LO]))(8)+(*(allcoeff_m3e[LO]))(14))*(*(allcoeff_m3e[LO]))(10).conjugate()).real()
75  +((*(allcoeff_m3e[LO]))(1)*(*(allcoeff_m3e[LO]))(5).conjugate()+(*(allcoeff_m3e[LO]))(0)*(*(allcoeff_m3e[LO]))(4).conjugate()
76  +(*(allcoeff_m3e[LO]))(1)*((*(allcoeff_m3e[LO]))(7)+(*(allcoeff_m3e[LO]))(13)).conjugate()+(*(allcoeff_m3e[LO]))(0)*((*(allcoeff_m3e[LO]))(6)+(*(allcoeff_m3e[LO]))(12)).conjugate()).real()*2.0/3.0
77  -4.0*((*(allcoeff_m3e[LO]))(2)*(*(allcoeff_m3e[LO]))(5).conjugate()+(*(allcoeff_m3e[LO]))(3)*(*(allcoeff_m3e[LO]))(4).conjugate()
78  +(*(allcoeff_m3e[LO]))(3)*((*(allcoeff_m3e[LO]))(6)+(*(allcoeff_m3e[LO]))(12)).conjugate()+(*(allcoeff_m3e[LO]))(2)*((*(allcoeff_m3e[LO]))(7)+(*(allcoeff_m3e[LO]))(13)).conjugate()).real()/3.0
79  +2.0*((*(allcoeff_m3e[LO]))(19).abs2()+(*(allcoeff_m3e[LO]))(16).abs2())/3.0
80  +((*(allcoeff_m3e[LO]))(18).abs2()+(*(allcoeff_m3e[LO]))(17).abs2())/3.0
81  +((*(allcoeff_m3e[LO]))(5)*(*(allcoeff_m3e[LO]))(19).conjugate()+(*(allcoeff_m3e[LO]))(4)*(*(allcoeff_m3e[LO]))(16).conjugate()
82  +((*(allcoeff_m3e[LO]))(7)+(*(allcoeff_m3e[LO]))(13))*(*(allcoeff_m3e[LO]))(18).conjugate()+((*(allcoeff_m3e[LO]))(6)+(*(allcoeff_m3e[LO]))(12))*(*(allcoeff_m3e[LO]))(17).conjugate()).real()*2.0/3.0
83  +((*(allcoeff_m3e[LO]))(1)*(*(allcoeff_m3e[LO]))(19).conjugate()+(*(allcoeff_m3e[LO]))(0)*(*(allcoeff_m3e[LO]))(16).conjugate()).real()*4.0/3.0
84  +((*(allcoeff_m3e[LO]))(1)*(*(allcoeff_m3e[LO]))(18).conjugate()+(*(allcoeff_m3e[LO]))(0)*(*(allcoeff_m3e[LO]))(17).conjugate()).real()*2.0/3.0
85  -((*(allcoeff_m3e[LO]))(2)*(*(allcoeff_m3e[LO]))(19).conjugate()+(*(allcoeff_m3e[LO]))(3)*(*(allcoeff_m3e[LO]))(16).conjugate()).real()*8.0/3.0
86  -((*(allcoeff_m3e[LO]))(3)*(*(allcoeff_m3e[LO]))(17).conjugate()+(*(allcoeff_m3e[LO]))(2)*(*(allcoeff_m3e[LO]))(18).conjugate()).real()*4.0/3.0) / GammaMU;
87 
88 // double Mu3Erate = (alph*alph/(32.0*M_PI))*(pow(mMU,5.0))*
89 // (VLMuE**2.0 + VRMuE**2.0 - 4.0*(VLMuE*ARMuE + VRMuE*ALMuE)
90 // + (ALMuE**2.0 + ARMuE**2.0)*((16.0/3.0)*log(mMU/(2.0*mE))-14.0/9.0)
91 // + (1.d0/6.0)*(B1LMu3E**2.0 + B1RMu3E**2.0)
92 // + (1.d0/3.0)*(B2LMu3E**2.0 + B2RMu3E**2.0)
93 // + (1.d0/24.0)*(B3LMu3E**2.0 + B3RMu3E**2.0)
94 // + 6.0*(B4LMu3E**2.0 + B4RMu3E**2.0)
95 // - (B3LMu3E*B4LMu3E + B3RMu3E*B4RMu3E)
96 // + (2.0/3.0)*(VLMuE*B1LMu3E + VRMuE*B1RMu3E + VLMuE*B2LMu3E + VRMuE*B2RMu3E)
97 // - (4.0/3.0)*(ARMuE*B1LMu3E + ALMuE*B1RMu3E + ARMuE*B2LMu3E + ALMuE*B2RMu3E)
98 // + (1.0/3.0)*(2.0*(FLLMu3E**2.0 + FRRMu3E**2.0)
99 // + FLRMu3E**2.0 + FRLMu3E**2.0
100 // + 2.0*(B1LMu3E*FLLMu3E + B1RMu3E*FRRMu3E + B2LMu3E*FLRMu3E + B2RMu3E*FRLMu3E)
101 // + 4.0*(VLMuE*FLLMu3E + VRMuE*FRRMu3E)
102 // + 2.0*(VLMuE*FLRMu3E + VRMuE*FRLMu3E)
103 // - 8.0*(ARMuE*FLLMu3E + ALMuE*FRRMu3E)
104 // - 4.0*(ALMuE*FRLMu3E + ARMuE*FLRMu3E)))
105 //
106 // double Brmu3e = Mu3Erate/(3.0*(pow(10.0,-19.0)))
107 
108 
109 //
110 // C_1 = ((*(allcoeff[LO]))(0) + (*(allcoeff[NLO]))(0));
111 // C_2 = ((*(allcoeff[LO]))(1) + (*(allcoeff[NLO]))(1));
112 // C_2L = (*(allcoeff[LO]))(1);
113 // C_3 = ((*(allcoeff[LO]))(2) + (*(allcoeff[NLO]))(2));
114 // C_4 = ((*(allcoeff[LO]))(3) + (*(allcoeff[NLO]))(3));
115 // C_5 = ((*(allcoeff[LO]))(4) + (*(allcoeff[NLO]))(4));
116 // C_6 = ((*(allcoeff[LO]))(5) + (*(allcoeff[NLO]))(5));
117 // C_7 = ((*(allcoeff[LO]))(6) + (*(allcoeff[NLO]))(6));
118 // C_8L = (*(allcoeff[LO]))(7);
119 // C_9 = ((*(allcoeff[LO]))(8) + (*(allcoeff[NLO]))(8));
120 // C_10 = ((*(allcoeff[LO]))(9) + (*(allcoeff[NLO]))(9));
121 // C_S = ((*(allcoeff[LO]))(10) + (*(allcoeff[NLO]))(10));
122 // C_P = ((*(allcoeff[LO]))(11) + (*(allcoeff[NLO]))(11));
123 //
124  return Brmu3e;
125 }
126 
128 : ThObservable(SM_i), mySM(SM_i)
129 {}
130 
131 //double tau_3mu::computeThValue()
132 //{
137 // return 0.0;
138 //}
139 
141 {
142  double alph = mySM.getAle();
143  double mMU = mySM.getLeptons(StandardModel::MU).getMass();
144  double mTAU = mySM.getLeptons(StandardModel::TAU).getMass();
145  double GammaTAU = 2.26735e-12;
146 
148 
149  double Brtau3mu = alph*alph/(32.0*M_PI) * pow(mTAU,5.0)
150  * ((*(allcoeff_t3m[LO]))(1).abs2()+(*(allcoeff_t3m[LO]))(0).abs2()
151  -4.0*((*(allcoeff_t3m[LO]))(1)*(*(allcoeff_t3m[LO]))(2).conjugate()+(*(allcoeff_t3m[LO]))(3)*(*(allcoeff_t3m[LO]))(0).conjugate()).real()
152  +((*(allcoeff_t3m[LO]))(3).abs2()+(*(allcoeff_t3m[LO]))(2).abs2())*(16.0*log(mTAU/mMU)-22.0)/3.0
153  +((*(allcoeff_t3m[LO]))(5).abs2()+(*(allcoeff_t3m[LO]))(4).abs2())/6.0
154  +(((*(allcoeff_t3m[LO]))(7)+(*(allcoeff_t3m[LO]))(13)).abs2()+((*(allcoeff_t3m[LO]))(6)+(*(allcoeff_t3m[LO]))(12)).abs2())/3.0
155  +(((*(allcoeff_t3m[LO]))(9)+(*(allcoeff_t3m[LO]))(15)).abs2()+((*(allcoeff_t3m[LO]))(8)+(*(allcoeff_t3m[LO]))(14)).abs2())/24.0
156  +((*(allcoeff_t3m[LO]))(11).abs2()+(*(allcoeff_t3m[LO]))(10).abs2())*6.0
157  -(((*(allcoeff_t3m[LO]))(9)+(*(allcoeff_t3m[LO]))(15))*(*(allcoeff_t3m[LO]))(11).conjugate()+((*(allcoeff_t3m[LO]))(8)+(*(allcoeff_t3m[LO]))(14))*(*(allcoeff_t3m[LO]))(10).conjugate()).real()
158  +((*(allcoeff_t3m[LO]))(1)*(*(allcoeff_t3m[LO]))(5).conjugate()+(*(allcoeff_t3m[LO]))(0)*(*(allcoeff_t3m[LO]))(4).conjugate()
159  +(*(allcoeff_t3m[LO]))(1)*((*(allcoeff_t3m[LO]))(7)+(*(allcoeff_t3m[LO]))(13)).conjugate()+(*(allcoeff_t3m[LO]))(0)*((*(allcoeff_t3m[LO]))(6)+(*(allcoeff_t3m[LO]))(12)).conjugate()).real()*2.0/3.0
160  -4.0*((*(allcoeff_t3m[LO]))(2)*(*(allcoeff_t3m[LO]))(5).conjugate()+(*(allcoeff_t3m[LO]))(3)*(*(allcoeff_t3m[LO]))(4).conjugate()
161  +(*(allcoeff_t3m[LO]))(3)*((*(allcoeff_t3m[LO]))(6)+(*(allcoeff_t3m[LO]))(12)).conjugate()+(*(allcoeff_t3m[LO]))(2)*((*(allcoeff_t3m[LO]))(7)+(*(allcoeff_t3m[LO]))(13)).conjugate()).real()/3.0
162  +2.0*((*(allcoeff_t3m[LO]))(19).abs2()+(*(allcoeff_t3m[LO]))(16).abs2())/3.0
163  +((*(allcoeff_t3m[LO]))(18).abs2()+(*(allcoeff_t3m[LO]))(17).abs2())/3.0
164  +((*(allcoeff_t3m[LO]))(5)*(*(allcoeff_t3m[LO]))(19).conjugate()+(*(allcoeff_t3m[LO]))(4)*(*(allcoeff_t3m[LO]))(16).conjugate()
165  +((*(allcoeff_t3m[LO]))(7)+(*(allcoeff_t3m[LO]))(13))*(*(allcoeff_t3m[LO]))(18).conjugate()+((*(allcoeff_t3m[LO]))(6)+(*(allcoeff_t3m[LO]))(12))*(*(allcoeff_t3m[LO]))(17).conjugate()).real()*2.0/3.0
166  +((*(allcoeff_t3m[LO]))(1)*(*(allcoeff_t3m[LO]))(19).conjugate()+(*(allcoeff_t3m[LO]))(0)*(*(allcoeff_t3m[LO]))(16).conjugate()).real()*4.0/3.0
167  +((*(allcoeff_t3m[LO]))(1)*(*(allcoeff_t3m[LO]))(18).conjugate()+(*(allcoeff_t3m[LO]))(0)*(*(allcoeff_t3m[LO]))(17).conjugate()).real()*2.0/3.0
168  -((*(allcoeff_t3m[LO]))(2)*(*(allcoeff_t3m[LO]))(19).conjugate()+(*(allcoeff_t3m[LO]))(3)*(*(allcoeff_t3m[LO]))(16).conjugate()).real()*8.0/3.0
169  -((*(allcoeff_t3m[LO]))(3)*(*(allcoeff_t3m[LO]))(17).conjugate()+(*(allcoeff_t3m[LO]))(2)*(*(allcoeff_t3m[LO]))(18).conjugate()).real()*4.0/3.0) / GammaTAU;
170 
171  return Brtau3mu;
172 }
173 
175 : ThObservable(SM_i), mySM(SM_i)
176 {}
177 
178 //double tau_3e::computeThValue()
179 //{
184 // return 0.0;
185 //}
186 
188 {
189  double alph = mySM.getAle();
191  double mTAU = mySM.getLeptons(StandardModel::TAU).getMass();
192  double GammaTAU = 2.26735e-12;
193 
195 
196  double Brtau3e = alph*alph/(32.0*M_PI) * pow(mTAU,5.0)
197  * ((*(allcoeff_t3e[LO]))(1).abs2()+(*(allcoeff_t3e[LO]))(0).abs2()
198  -4.0*((*(allcoeff_t3e[LO]))(1)*(*(allcoeff_t3e[LO]))(2).conjugate()+(*(allcoeff_t3e[LO]))(3)*(*(allcoeff_t3e[LO]))(0).conjugate()).real()
199  +((*(allcoeff_t3e[LO]))(3).abs2()+(*(allcoeff_t3e[LO]))(2).abs2())*(16.0*log(mTAU/mE)-22.0)/3.0
200  +((*(allcoeff_t3e[LO]))(5).abs2()+(*(allcoeff_t3e[LO]))(4).abs2())/6.0
201  +(((*(allcoeff_t3e[LO]))(7)+(*(allcoeff_t3e[LO]))(13)).abs2()+((*(allcoeff_t3e[LO]))(6)+(*(allcoeff_t3e[LO]))(12)).abs2())/3.0
202  +(((*(allcoeff_t3e[LO]))(9)+(*(allcoeff_t3e[LO]))(15)).abs2()+((*(allcoeff_t3e[LO]))(8)+(*(allcoeff_t3e[LO]))(14)).abs2())/24.0
203  +((*(allcoeff_t3e[LO]))(11).abs2()+(*(allcoeff_t3e[LO]))(10).abs2())*6.0
204  -(((*(allcoeff_t3e[LO]))(9)+(*(allcoeff_t3e[LO]))(15))*(*(allcoeff_t3e[LO]))(11).conjugate()+((*(allcoeff_t3e[LO]))(8)+(*(allcoeff_t3e[LO]))(14))*(*(allcoeff_t3e[LO]))(10).conjugate()).real()
205  +((*(allcoeff_t3e[LO]))(1)*(*(allcoeff_t3e[LO]))(5).conjugate()+(*(allcoeff_t3e[LO]))(0)*(*(allcoeff_t3e[LO]))(4).conjugate()
206  +(*(allcoeff_t3e[LO]))(1)*((*(allcoeff_t3e[LO]))(7)+(*(allcoeff_t3e[LO]))(13)).conjugate()+(*(allcoeff_t3e[LO]))(0)*((*(allcoeff_t3e[LO]))(6)+(*(allcoeff_t3e[LO]))(12)).conjugate()).real()*2.0/3.0
207  -4.0*((*(allcoeff_t3e[LO]))(2)*(*(allcoeff_t3e[LO]))(5).conjugate()+(*(allcoeff_t3e[LO]))(3)*(*(allcoeff_t3e[LO]))(4).conjugate()
208  +(*(allcoeff_t3e[LO]))(3)*((*(allcoeff_t3e[LO]))(6)+(*(allcoeff_t3e[LO]))(12)).conjugate()+(*(allcoeff_t3e[LO]))(2)*((*(allcoeff_t3e[LO]))(7)+(*(allcoeff_t3e[LO]))(13)).conjugate()).real()/3.0
209  +2.0*((*(allcoeff_t3e[LO]))(19).abs2()+(*(allcoeff_t3e[LO]))(16).abs2())/3.0
210  +((*(allcoeff_t3e[LO]))(18).abs2()+(*(allcoeff_t3e[LO]))(17).abs2())/3.0
211  +((*(allcoeff_t3e[LO]))(5)*(*(allcoeff_t3e[LO]))(19).conjugate()+(*(allcoeff_t3e[LO]))(4)*(*(allcoeff_t3e[LO]))(16).conjugate()
212  +((*(allcoeff_t3e[LO]))(7)+(*(allcoeff_t3e[LO]))(13))*(*(allcoeff_t3e[LO]))(18).conjugate()+((*(allcoeff_t3e[LO]))(6)+(*(allcoeff_t3e[LO]))(12))*(*(allcoeff_t3e[LO]))(17).conjugate()).real()*2.0/3.0
213  +((*(allcoeff_t3e[LO]))(1)*(*(allcoeff_t3e[LO]))(19).conjugate()+(*(allcoeff_t3e[LO]))(0)*(*(allcoeff_t3e[LO]))(16).conjugate()).real()*4.0/3.0
214  +((*(allcoeff_t3e[LO]))(1)*(*(allcoeff_t3e[LO]))(18).conjugate()+(*(allcoeff_t3e[LO]))(0)*(*(allcoeff_t3e[LO]))(17).conjugate()).real()*2.0/3.0
215  -((*(allcoeff_t3e[LO]))(2)*(*(allcoeff_t3e[LO]))(19).conjugate()+(*(allcoeff_t3e[LO]))(3)*(*(allcoeff_t3e[LO]))(16).conjugate()).real()*8.0/3.0
216  -((*(allcoeff_t3e[LO]))(3)*(*(allcoeff_t3e[LO]))(17).conjugate()+(*(allcoeff_t3e[LO]))(2)*(*(allcoeff_t3e[LO]))(18).conjugate()).real()*4.0/3.0) / GammaTAU;
217 
218  return Brtau3e;
219 }
220 
tau_3mu(const StandardModel &SM_i)
Calculates the value of the process .
Definition: li_3lj.cpp:127
tau_3e(const StandardModel &SM_i)
Calculates the value of the process .
Definition: li_3lj.cpp:174
Particle getLeptons(const StandardModel::lepton p) const
A get method to retrieve the member object of a lepton.
double computeThValue()
Definition: li_3lj.cpp:24
complex pow(const complex &z1, const complex &z2)
A class for a model prediction of an observable.
Definition: ThObservable.h:22
gslpp::vector< gslpp::complex > ** ComputeCoeffli_3lj(int li_lj)
Computes the Wilson coefficient for the process .
Definition: LeptonFlavour.h:77
A model class for the Standard Model.
double computeThValue()
Definition: li_3lj.cpp:187
const StandardModel & mySM
Constructor containing the Wilson coefficient.
Definition: li_3lj.h:62
LeptonFlavour * getMyLeptonFlavour() const
Definition: OrderScheme.h:33
mu_3e(const StandardModel &SM_i)
Calculates the value of the process .
Definition: li_3lj.cpp:20
const StandardModel & mySM
Constructor containing the Wilson coefficient.
Definition: li_3lj.h:122
double getAle() const
A get method to retrieve the fine-structure constant .
const double & getMass() const
A get method to access the particle mass.
Definition: Particle.h:61
complex log(const complex &z)
const StandardModel & mySM
Constructor containing the Wilson coefficient.
Definition: li_3lj.h:92
double computeThValue()
Definition: li_3lj.cpp:140