7 #include "TProfile2D.h"
11 #include "Math/Polynomial.h"
12 #include "Math/Interpolator.h"
81 BGL(
int genL=2,
int genQ=2,
int lup=0,
int qup=0,
int mssm=0):
86 Mpip(
"Mpip",0.1396,
"M_{\\pi^+}",domain::real),
87 Mpi0(
"Mpi0",0.1349766,
"M_{\\pi^0}",domain::real),
88 MBp(
"MBp",5.279,
"M_{B^+}",domain::real),
89 MB0(
"MB0",5.2795,
"M_{B^0}",domain::real),
90 MBs0(
"MBs0",5.3663,
"M_{B_s^0}",domain::real),
91 MKp(
"MKp",0.493677,
"MKp",domain::real),
92 MK0(
"MK0",0.497614,
"MK0",domain::real),
93 MDp(
"MDp",1.86957,
"MDp",domain::real),
94 MD0(
"MD0",1.86480,
"MD0",domain::real),
95 MDsp(
"MDsp",1.96845,
"MDsp",domain::real),
97 Fpi(
"Fpi",0.132,
"Fpi",domain::real),
98 FB(
"FB",0.189,
"FB",domain::real),
99 FBs(
"FBs",0.225,
"FBs",domain::real),
100 FK(
"FK",0.159,
"FK",domain::real),
101 FD(
"FD",0.208,
"FD",domain::real),
102 FDs(
"FDs",0.248,
"FDs",domain::real),
105 g(sqrt(
GF*8/sqrt(ex(2)))*
MW),
135 ex vq3=dirac_slash(q3,4);
138 for(
uint i=0;i<2;i++)
139 for(
uint j=0;j<3;j++)
140 for(
uint k=0;k<3;k++){
180 for(
int b=
bosons.size()-1;b>=0;b--){
188 boson.
C[t][i][j][h]=
bosons[b].C[t][j][i][h].conjugate();
265 sb.append(pow(abs(
mixes.
V[0][2][2]),2)==1-pow(abs(
mixes.
V[0][1][2]),2)-pow(abs(
mixes.
V[0][0][2]),2));
266 sb.append(pow(abs(
mixes.
V[0][2][1]),2)==1-pow(abs(
mixes.
V[0][1][1]),2)-pow(abs(
mixes.
V[0][0][1]),2));
272 ex mutoenunu=
decaywidth(muon,neutrino,electron,neutrino);
286 cout<<
"tautomu_tautoe: "<<1/1.0018<<
"ERROR: "<<0.0014/1.0018<<endl;
290 ex mu3e=
decaywidth(muon,electron,electron,electron);
315 ex pierror=picorrection*0.0001/1.2352;
316 cout<<
"PiRatio "<<picorrection-1<<
" +/- "<<pierror<<endl;
317 piratio*=
mesondw(Pip,neutrino,electron)/
mesondw(Pip,neutrino,muon);
318 add(
"piontoenu_munu",piratio,
new gaussobs(1.230e-4,0.003));
319 cout<<
"piontoenu_munu: "<<1.2352e-4/1.230e-4<<
" ERROR: "<<0.003<<endl;
322 add(
"tautopinu_pitomunu",(1+0.16e-2)*
fermiontomeson(tau,neutrino,Pip)/
mesondw(Pip,neutrino,muon),
new gaussobs((10.83e-2/290.6e-15/(0.9998770/2.6033e-8)),0.06/10.83));
325 cout<<
"tautopinu_pitomunu: "<<10.83e-2/290.6e-15/(0.9998770/2.6033e-8)<<
" +/- "<<0.06e-2/290.6e-15/(0.9998770/2.6033e-8)<<endl;
329 cout<<
"tautoKnu/Ktomunu: "<<(7e-3/290.6e-15)/(0.6355/1.238e-8)<<
" +/- "<<(0.1e-3/290.6e-15)/(0.6355/1.238e-8)<<endl;
337 ex Kerror=Kcorrection*0.001/2.477;
338 cout<<
"KRatio "<<Kcorrection-1<<
" +/- "<<Kerror<<endl;
340 add(
"Ktoenu_munu",Kratio,
new gaussobs(2.488e-5,0.005));
341 cout<<
"Ktoenu_munu: "<<2.477e-5/2.488e-5<<
" ERROR: "<<0.005<<endl;
360 ex D0toee=
mesondw(D0,electron,electron);
362 ex D0tomumu=
mesondw(D0,muon,muon);
405 ex B0toee=
mesondw(B0,electron,electron);
407 ex B0totautau=
mesondw(B0,tau,tau);
411 ex Bs0toemu=
mesondw(Bs0,electron,muon)+
mesondw(Bs0,muon,electron);
413 ex Bs0toee=
mesondw(Bs0,electron,electron);
420 cout<<
"Bs0tomumu: "<<
mesondwtest(Bs0,muon,muon)<<endl;
439 Matrix llgammaH0M,llgammaH0E;
456 for(
uint i=0;i<3;i++)
457 for(
uint j=0;j<3;j++){
462 if(j<i){
for(
uint k=0;k<3;k++){
470 llgamma[i][j]=(A*A.conjugate()+B*B.conjugate())*
alpha*pow(mmuon,5)*
GF*
GF/(128*pow(Pi,4));
473 for(
uint k=0;k<3;k++){
479 llgamma[i][j]=-B*
GF*sqrt(1/2)/(8*pow(Pi,2))*2*mmuon;
524 BR_Htotaunu=(
CHdecaycoupling(chiggs,tau,neutrino)+3*
CHdecaycoupling(chiggs,strange,charm))/factor(
CHdecaycoupling(chiggs,
Fermion(
tLepton,
iDown),neutrino)+3*
CHdecaycoupling(chiggs,
Fermion(
tQuark,
iDown),charm)+3*
CHdecaycoupling(chiggs,
Fermion(
tQuark,
iDown),up));
538 ex BtoDtaunu,BtoD2taunu, BtoDtaunuSM, KtoPi;
539 for(
uint i=0; i<3; i++){
545 BtoDtaunuSM+=Wcoup*Wcoup.conjugate();
546 BtoDtaunu+=Wcoup*Wcoup.conjugate()*(1+1.5*chcoup_Wcoup.real_part()+chcoup_Wcoup.conjugate()*chcoup_Wcoup);
547 BtoD2taunu+=Wcoup*Wcoup.conjugate()*(1+0.12*chcoup2_Wcoup.real_part()+0.05*chcoup2_Wcoup.conjugate()*chcoup2_Wcoup);
549 lst r2(pow(
mixes.
V[1][1][2].imag_part(),2)==pow(abs(
mixes.
V[1][1][2]),2)-pow(
mixes.
V[1][1][2].real_part(),2));
550 r2.append(pow(
mixes.
V[0][2][2].imag_part(),2)==pow(abs(
mixes.
V[0][2][2]),2)-pow(
mixes.
V[0][2][2].real_part(),2));
552 r2.append(
mixes.
M[1][0][1][1]==0);
553 r2.append(pow(abs(
mixes.
V[0][2][2]),2)==1-pow(abs(
mixes.
V[0][1][2]),2)-pow(abs(
mixes.
V[0][0][2]),2));
554 r2.append(pow(abs(
mixes.
V[0][2][1]),2)==1-pow(abs(
mixes.
V[0][1][1]),2)-pow(abs(
mixes.
V[0][0][1]),2));
555 r2.append(abs(sqrt(ex(2))*
GF)==sqrt(ex(2))*
GF);
557 BtoDtaunuSM=collect_common_factors(BtoDtaunuSM.subs(
conjtoabs).subs(r2));
558 BtoDtaunu=collect_common_factors(BtoDtaunu.subs(
conjtoabs).subs(r2));
562 BtoD2taunu=BtoD2taunu.subs(
conjtoabs).subs(r2);
568 add(
"BtoDtaunu_BtoDtaunuSM",BtoDtaunu/BtoDtaunuSM,
new gaussobs(440.0/296, 1.4*58.0/440));
572 add(
"BtoD2taunu_BtoD2taunuSM",BtoD2taunu/BtoDtaunuSM,
new gaussobs(332.0/252, 1.4*24.0/332.0));
576 for(
uint j=0; j<2; j++){
577 ex KtoPimunu, KtoPimunuSM;
578 for(
uint i=0; i<3; i++){
584 chcoup_Wcoup=collect_common_factors(expand(chcoup_Wcoup));
585 KtoPimunuSM+=collect_common_factors(expand(Wcoup*Wcoup.conjugate()));
586 KtoPimunu+=collect_common_factors(expand(Wcoup*Wcoup.conjugate()*pow(1+chcoup_Wcoup,2)));
588 KtoPimunuSM=collect_common_factors(expand(KtoPimunuSM.subs(
conjtoabs).subs(r2)));
589 KtoPimunu=collect_common_factors(expand(KtoPimunu.subs(
conjtoabs).subs(r2)));
590 KtoPimunu=expand(KtoPimunu.subs(
replacements).real_part().subs(lst(abs(wild()*pow(
MR,-2))==abs(wild())*pow(
MR,-2))).subs(lst(log(wild()*pow(
MR,-2))==log(wild())-2*log(
MR))));
591 KtoPimunu=expand(KtoPimunu.evalf());
592 KtoPimunuSM=expand(KtoPimunuSM.subs(
replacements).real_part().subs(lst(abs(wild()*pow(
MR,-2))==abs(wild())*pow(
MR,-2))).subs(lst(log(wild()*pow(
MR,-2))==log(wild())-2*log(
MR))));
593 KtoPimunuSM=expand(KtoPimunuSM.evalf());
594 KtoPi+=0.5*log(KtoPimunu/KtoPimunuSM);
604 DDbar=expand(DDbar.subs(
replacements).subs(lst(abs(wild()*pow(
MR,-2))==abs(wild())*pow(
MR,-2))).subs(lst(log(wild()*pow(
MR,-2))==log(wild())-2*log(
MR))));
605 DDbar=expand(DDbar.evalf());
606 ex aDDbar=sqrt(DDbar.real_part()*DDbar.real_part()+DDbar.imag_part()*DDbar.imag_part());
613 KKbar=expand(KKbar.subs(
replacements).subs(lst(abs(wild()*pow(
MR,-2))==abs(wild())*pow(
MR,-2))).subs(lst(log(wild()*pow(
MR,-2))==log(wild())-2*log(
MR))));
614 KKbar=expand(KKbar.evalf());
615 ex aKKbar=sqrt(KKbar.real_part()*KKbar.real_part()+KKbar.imag_part()*KKbar.imag_part());
617 ex eK=0.94*imag_part(KKbar)/3.5e-15/sqrt(2);
620 cout<<abs(KKbar)<<endl;
627 ex BBbar=1+ex(std::pow(fB,2))*
mesonmixing(
MB0,bottom,down)/(3.337e-13*Vtb*Vtd.conjugate());
628 add(
"BBbarimag",imag_part(BBbar),
new gauss2obs(-0.199,0.062));
629 add(
"BBbarreal",real_part(BBbar),
new gauss2obs(0.823,0.143));
631 BBbar=3.337e-13*Vtb*Vtd.conjugate();
632 cout<<
"Bbar "<<(abs(imag_part(BBbar))/abs(BBbar)).subs(
replacements)<<endl;
634 ex BsBsbar=1+ex(std::pow(fBs,2))*
mesonmixing(
MBs0,bottom,strange)/(1.186e-11*Vtb*Vts.conjugate());
635 add(
"BsBsbarimag",imag_part(BsBsbar),
new gauss2obs(0,0.1));
636 add(
"BsBsbarreal",real_part(BsBsbar),
new gauss2obs(0.965,0.133));
638 BsBsbar=1.186e-11*Vtb*Vts.conjugate();
639 cout<<
"Bbar "<<(abs(imag_part(BsBsbar))/abs(BsBsbar)).subs(
replacements)<<endl;
646 cout<<
"cu "<<cu<<endl;
647 ex Zbb=(cu-0.72)/
McH;
649 cout<<
"Zbb "<<Zbb<<endl;
650 cout<<
"SIZE "<<size()<<endl;
661 return 1.0113*x/8/(1-x)*(4-x+3*x*log(x)/(1-x));
665 return (94-x*(179+x*(-55+12*x)))/(36*pow(1-x,3))+x*(16+x*(-32+9*x))*log(x)/(6*pow(1-x,4));
669 return x*(x*((39-14*x)*x-6)+6*x*(3*x-8)*log(x)-19)/(36*pow(x-1,4));
674 return x*((x-1)*(11*x-21)+(16-6*x)*log(x))/(6*pow(x-1,3));
679 return (94-x*(179+x*(-55+12*x)))/(36*pow(1-x,3))+x*(16+x*(-32+9*x))*log(x)/(6*pow(1-x,4));
697 return -2*(3/2+log(x))*x;
701 return x*(2+3*x-6*x*x+ x*x*x+6*x*log(x))/(24*pow(1-x,4));
705 return x*(-3+4*x-x*x-2*log(x))/(4*pow(1-x,3));
709 return x/(6*pow(1-x,3))*((-7+5*x-8*x*x)/6.0+x*log(x)/(1-x)*(-2+3*x));
713 return (-3+8*x-5*x*x+(6*x-4)*log(x))*x/(6*pow(1-x,3));
723 p=collect_common_factors(expand(p.evalf()));
728 for(
uint i=0;i<3;i++){
734 compile_ex(lst(p), l, fp);
744 double mr=p[1].value+p[2].value;
745 if(mr<10 || mr>10000)
return 1;
747 if(mr<10 || mr>10000)
return 1;
751 double mr=p[1].value+p[2].value;
752 if(mr<10 || mr>
mmmax)
return 1;
754 if(mr<10 || mr>mmmax)
return 1;
778 double x=pow(10.0,p[0].value);
784 double z=y+p[2].value;
785 double w=z+p[3].value;
789 pp[2].value+=pp[1].value;
790 pp[3].value+=pp[2].value;
791 pp.
values=vector<double>();
792 for(
uint i=0; i<4; i++) pp.
values.push_back(pp[i].value);
801 p[0].value=pow(10.0,tanb);
808 return cal.
width(p,option);
881 vector<ex> mass(
bosons.size(),0);
882 vector<int> op(
bosons.size(),0);
884 Fermion f1=ff1, f2=ff2,f3=ff3, f4=ff4;
902 a[i][0][0][0]=
bosons[i].couplingdaggerL(f2,f1)*
bosons[i].couplingL(f3,f4);
903 a[i][0][0][1]=
bosons[i].couplingdaggerL(f2,f1)*
bosons[i].couplingR(f3,f4);
904 a[i][0][1][0]=
bosons[i].couplingdaggerR(f2,f1)*
bosons[i].couplingL(f3,f4);
905 a[i][0][1][1]=
bosons[i].couplingdaggerR(f2,f1)*
bosons[i].couplingR(f3,f4);
907 a[i][1][0][0]=
bosons[i].couplingdaggerL(f3,f1)*
bosons[i].couplingL(f2,f4);
908 a[i][1][0][1]=
bosons[i].couplingdaggerL(f3,f1)*
bosons[i].couplingR(f2,f4);
909 a[i][1][1][0]=
bosons[i].couplingdaggerR(f3,f1)*
bosons[i].couplingL(f2,f4);
910 a[i][1][1][1]=
bosons[i].couplingdaggerR(f3,f1)*
bosons[i].couplingR(f2,f4);
917 return collect_common_factors(ret.subs(
conjtoabs));
922 realsymbol s2(
"s2"), s3(
"s3");
923 realsymbol q1(
"q1"), q2(
"q2"), q3(
"q3"), q4(
"q4");
927 ex vq1=dirac_slash(q2,4)+dirac_slash(q3,4)+dirac_slash(q4,4)+m1*dirac_ONE(), vq2=dirac_slash(q2,4);
928 ex vq3=dirac_slash(q3,4), vq4=dirac_slash(q4,4);
932 sp.add(q2, q3, (s4)/2);
933 sp.add(q4, q3, (s2)/2);
934 sp.add(q2, q4, (s3)/2);
941 v[0][0]=dirac_gammaL(); v[0][1]=dirac_gammaR();
942 v[1][0]=dirac_gammaR(); v[1][1]=dirac_gammaL();
945 for(
uint k=0;k<2;k++)
946 for(
uint l=0;l<2;l++)
947 for(
uint m=0;m<2;m++)
948 for(
uint n=0;n<2;n++){
954 traces[k][l][m][n][0]=dirac_trace(vq2*vk*vq1*vl)*dirac_trace(vq3*vm*vq4*vn);
955 traces[k][l][m][n][1]=-dirac_trace(vq2*vk*vq1*vl*vq3*vm*vq4*vn);
958 for(
uint k=0;k<2;k++)
959 for(
uint l=0;l<2;l++)
960 for(
uint m=0;m<2;m++)
961 for(
uint n=0;n<2;n++)
962 for(
uint o=0;o<2;o++)
964 traces[k][l][m][n][o]=(traces[k][l][m][n][o]).simplify_indexed(sp);
967 ex q10=(s2+m1*m1)/(2*sqrt(s2)), lq1l=(m1*m1-s2)/(2*sqrt(s2));
968 ex q30=sqrt(s2)/2, lq3l=q30;
969 ex q20=(m1*m1-s2)/(2*m1), lq2l=q20;
972 for(
uint k=0;k<2;k++)
973 for(
uint l=0;l<2;l++)
974 for(
uint m=0;m<2;m++)
975 for(
uint n=0;n<2;n++)
977 for(
uint s=0;s<2;s++){
978 ex coup=a[
r][k][m]*a[s][l][n].conjugate();
979 ex integrand=traces[k][l][m][n][(
r+s)%2];
980 integrand=expand(integral(s3, 0, m1*m1-s2, integrand).eval_integ()/lq1l/sqrt(s2)*lq2l/m1/m1);
982 ex result=integral(s2,0,m1*m1,integrand).eval_integ()/pow(Pi,3)/512;
983 ex partial=result*coup;
991 symbol gLL(
"g_{LL}"),gLR(
"g_{LR}"),gRL(
"g_{RL}"),gRR(
"g_{RR}"),cLL(
"c_{LL}"),cLR(
"c_{LR}"),cRL(
"c_{RL}"),cRR(
"c_{RR}");
1006 return collect_common_factors(ret.subs(
conjtoabs));
1097 ex x=
bosons[i].couplingdaggerR(f2,f1)*
bosons[i].couplingL(f3,f4)/pow(
bosons[i].mass,2);
1098 ret1+=x*x.conjugate();
1101 ex x=
bosons[i].couplingdaggerL(f2,f1)*
bosons[i].couplingL(f3,f4)/pow(
bosons[i].mass,2);
1102 ret2+=x*x.conjugate();
1108 for(
uint i=0;i<3;i++){
1109 ret1=collect_common_factors(expand(ret1.subs(pow(abs(
mixes.
V[0][2][i]),2)==1-pow(abs(
mixes.
V[0][1][i]),2)-pow(abs(
mixes.
V[0][0][i]),2))));
1110 ret2=collect_common_factors(expand(ret2.subs(pow(abs(
mixes.
V[0][2][i]),2)==1-pow(abs(
mixes.
V[0][1][i]),2)-pow(abs(
mixes.
V[0][0][i]),2))));
1114 return collect_common_factors(ret1/ret2);
1119 ex ret1=0,ret2=0, rety1=0, rety2=0;
1133 ex x1=0, x2=0, y1=0, y2=0;
1136 x1+=
bosons[i].couplingdaggerR(f2,f1)*
bosons[i].couplingL(f31,f4)/pow(
bosons[i].mass,2);
1137 x2+=
bosons[i].couplingdaggerR(f2,f1)*
bosons[i].couplingL(f32,f4)/pow(
bosons[i].mass,2);
1140 y1+=
bosons[i].couplingdaggerL(f2,f1)*
bosons[i].couplingL(f31,f4)/pow(
bosons[i].mass,2);
1141 y2+=
bosons[i].couplingdaggerL(f2,f1)*
bosons[i].couplingL(f32,f4)/pow(
bosons[i].mass,2);
1144 ret1+=(x1*y1.conjugate()).real_part();
1145 ret2+=(x2*y2.conjugate()).real_part();
1146 rety1+=y1*y1.conjugate();
1147 rety2+=y2*y2.conjugate();
1151 for(
uint i=0;i<3;i++){
1152 ret1=collect_common_factors(expand(ret1.subs(pow(abs(
mixes.
V[0][2][i]),2)==1-pow(abs(
mixes.
V[0][1][i]),2)-pow(abs(
mixes.
V[0][0][i]),2))));
1153 ret2=collect_common_factors(expand(ret2.subs(pow(abs(
mixes.
V[0][2][i]),2)==1-pow(abs(
mixes.
V[0][1][i]),2)-pow(abs(
mixes.
V[0][0][i]),2))));
1157 ex F1=1-8*x+8*pow(x,3)-pow(x,4)-12*pow(x,2)*log(x);
1158 ex g1=1+9*x-9*pow(x,2)-pow(x,3)+6*x*(1+x)*log(x);
1159 ex N1=1+
gRR2(f1,f31)/4;
1163 ex F2=1-8*x+8*pow(x,3)-pow(x,4)-12*pow(x,2)*log(x);
1164 ex g2=1+9*x-9*pow(x,2)-pow(x,3)+6*x*(1+x)*log(x);
1165 ex N2=1+
gRR2(f1,f32)/4;
1167 return collect_common_factors(N1*(F1+2/N1*ret1*g1)/N2/(F2+2/N2*ret2*g2)*F2/F1);
1173 ex mesonmass=meson.
mass;
1179 realsymbol q3(
"q3"), q4(
"q4");
1180 ex s2=pow(mesonmass,2);
1190 ex m2q1=mq1*mq1, m2q2=mq2*mq2, m2q3=mq3*mq3, m2q4=mq4*mq4;
1192 sp.add(q4, q3, (s2-m2q4-m2q3)/2);
1193 sp.add(q3, q3, m2q3);
1194 sp.add(q4, q4, m2q4);
1195 ex q10=(s2+mq1*mq1-mq2*mq2)/(2*sqrt(s2)), lq1l=sqrt(q10*q10-mq1*mq1);
1196 ex q30=(s2+mq3*mq3-mq4*mq4)/(2*sqrt(s2)), lq3l=sqrt(q30*q30-mq3*mq3);
1200 ex a=-(
bosons[i].couplingdaggerR(f2,f1)-
bosons[i].couplingdaggerL(f2,f1))*
bosons[i].couplingL(f3,f4)*s2/(mq1+mq2)/pow(
bosons[i].mass,2);
1201 v1=v1+a*dirac_gammaL();
1202 v2=v2+a.conjugate()*dirac_gammaR();
1203 a=-(
bosons[i].couplingdaggerR(f2,f1)-
bosons[i].couplingdaggerL(f2,f1))*
bosons[i].couplingR(f3,f4)*s2/(mq1+mq2)/pow(
bosons[i].mass,2);
1204 v1=v1+a*dirac_gammaR();
1205 v2=v2+a.conjugate()*dirac_gammaL();
1208 ex sl=(dirac_slash(q3,4)+dirac_slash(q4,4));
1209 ex a=(
bosons[i].couplingdaggerR(f2,f1)-
bosons[i].couplingdaggerL(f2,f1))*
bosons[i].couplingL(f3,f4)/pow(
bosons[i].mass,2);
1210 v1=v1+a*sl*dirac_gammaL();
1211 v2=v2+a.conjugate()*sl*dirac_gammaL();
1212 a=(
bosons[i].couplingdaggerR(f2,f1)-
bosons[i].couplingdaggerL(f2,f1))*
bosons[i].couplingR(f3,f4)/pow(
bosons[i].mass,2);
1213 v1=v1+a*sl*dirac_gammaR();
1214 v2=v2+a.conjugate()*sl*dirac_gammaR();
1217 ex vq3=dirac_slash(q3,4)+mq3*dirac_ONE(), vq4=dirac_slash(q4,4)-mq4*dirac_ONE();
1218 ex dt=dirac_trace(vq3*v1*vq4*v2).simplify_indexed(sp);
1219 ex result=expand(dt*4*lq3l/s2/Pi/128);
1233 ex mesonmass=meson.
mass;
1239 realsymbol q3(
"q3"), q4(
"q4");
1240 symbol gL(
"gL"), gR(
"gR"),gVL(
"gVL"), gVR(
"gVR");
1241 symbol gS(
"gS"), gP(
"gP"), gA(
"gA");
1243 ex s2=pow(mesonmass,2);
1253 ex m2q1=mq1*mq1, m2q2=mq2*mq2, m2q3=mq3*mq3, m2q4=mq4*mq4;
1255 sp.add(q4, q3, (s2-m2q4-m2q3)/2);
1256 sp.add(q3, q3, m2q3);
1257 sp.add(q4, q4, m2q4);
1258 ex q10=(s2+mq1*mq1-mq2*mq2)/(2*sqrt(s2)), lq1l=sqrt(q10*q10-mq1*mq1);
1259 ex q30=(s2+mq3*mq3-mq4*mq4)/(2*sqrt(s2)), lq3l=sqrt(q30*q30-mq3*mq3);
1275 v1=v1+a*dirac_ONE();
1276 v2=v2+a.conjugate()*dirac_ONE();
1278 v1=v1+a*dirac_gamma5();
1279 v2=v2-a.conjugate()*dirac_gamma5();
1280 ex sl=(dirac_slash(q3,4)+dirac_slash(q4,4));
1296 ex vq3=dirac_slash(q3,4)+mq3*dirac_ONE(), vq4=dirac_slash(q4,4)-mq4*dirac_ONE();
1297 ex dt=dirac_trace(vq3*v1*vq4*v2).simplify_indexed(sp);
1298 ex result=expand(dt*4*lq3l/s2/Pi/128);
1304 ltest.append(conjugate(gL)==pow(abs(gL),2)/gL);
1305 ltest.append(conjugate(gR)==pow(abs(gR),2)/gR);
1306 ltest.append(conjugate(gS)==pow(abs(gS),2)/gS);
1307 ltest.append(conjugate(gP)==pow(abs(gP),2)/gP);
1308 ltest.append(conjugate(gA)==pow(abs(gA),2)/gA);
1317 ex mesonmass=meson.
mass;
1323 realsymbol q3(
"q3"), q4(
"q4");
1324 ex s2=pow(mesonmass,2);
1334 ex m2q1=mq1*mq1, m2q2=mq2*mq2, m2q3=mq3*mq3, m2q4=mq4*mq4;
1336 sp.add(q4, q3, -(s2-m2q4-m2q3)/2);
1337 sp.add(q3, q3, m2q3);
1338 sp.add(q4, q4, m2q4);
1340 ex q30=(-s2+mq3*mq3+mq4*mq4)/(2*mq4), lq3l=sqrt(q30*q30-mq3*mq3);
1345 ex a=(
bosons[i].couplingdaggerR(f2,f1)-
bosons[i].couplingdaggerL(f2,f1))*
bosons[i].couplingL(f3,f4)*s2/(mq1+mq2)/pow(
bosons[i].mass,2);
1346 v1=v1+a*dirac_gammaL();
1347 v2=v2+a.conjugate()*dirac_gammaR();
1348 a=(
bosons[i].couplingdaggerR(f2,f1)-
bosons[i].couplingdaggerL(f2,f1))*
bosons[i].couplingR(f3,f4)*s2/(mq1+mq2)/pow(
bosons[i].mass,2);
1349 v1=v1+a*dirac_gammaR();
1350 v2=v2+a.conjugate()*dirac_gammaL();
1353 ex sl=(dirac_slash(q3,4)+dirac_slash(q4,4));
1354 ex a=(
bosons[i].couplingdaggerR(f2,f1)-
bosons[i].couplingdaggerL(f2,f1))*
bosons[i].couplingL(f3,f4)/pow(
bosons[i].mass,2);
1355 v1=v1+a*sl*dirac_gammaL();
1356 v2=v2+a.conjugate()*sl*dirac_gammaL();
1357 a=(
bosons[i].couplingdaggerR(f2,f1)-
bosons[i].couplingdaggerL(f2,f1))*
bosons[i].couplingR(f3,f4)/pow(
bosons[i].mass,2);
1358 v1=v1+a*sl*dirac_gammaR();
1359 v2=v2+a.conjugate()*sl*dirac_gammaR();
1362 ex vq3=dirac_slash(q3,4)+mq3*dirac_ONE(), vq4=dirac_slash(q4,4)+mq4*dirac_ONE();
1363 ex dt=dirac_trace(vq3*v1*vq4*v2).simplify_indexed(sp);
1364 ex result=expand(dt*2*lq3l/mq4/mq4/Pi/128);
1379 ex mesonmass=meson.
mass;
1385 realsymbol q3(
"q3"), q4(
"q4");
1387 symbol sL(
"sL"), sR(
"sR"), vL(
"vL"), vR(
"vR");
1388 ex s2=pow(mesonmass,2);
1398 ex m2q1=mq1*mq1, m2q2=mq2*mq2, m2q3=mq3*mq3, m2q4=mq4*mq4;
1400 sp.add(q4, q3, -(s2-m2q4-m2q3)/2);
1401 sp.add(q3, q3, m2q3);
1402 sp.add(q4, q4, m2q4);
1404 ex q30=(-s2+mq3*mq3+mq4*mq4)/(2*mq4), lq3l=sqrt(q30*q30-mq3*mq3);
1409 v1=v1+a*dirac_gammaL();
1410 v2=v2+a.conjugate()*dirac_gammaR();
1412 v1=v1+a*dirac_gammaR();
1413 v2=v2+a.conjugate()*dirac_gammaL();
1415 ex sl=(dirac_slash(q3,4)+dirac_slash(q4,4));
1417 v1=v1+a*sl*dirac_gammaL();
1418 v2=v2+a.conjugate()*sl*dirac_gammaL();
1420 v1=v1+a*sl*dirac_gammaR();
1421 v2=v2+a.conjugate()*sl*dirac_gammaR();
1423 ex vq3=dirac_slash(q3,4)+mq3*dirac_ONE(), vq4=dirac_slash(q4,4)+mq4*dirac_ONE();
1424 ex dt=dirac_trace(vq3*v1*vq4*v2).simplify_indexed(sp);
1425 ex result=expand(dt*2*lq3l/mq4/mq4/Pi/128);
1441 ex m2q1=mq1*mq1, m2q2=mq2*mq2;
1445 ex a=(
bosons[i].couplingdaggerR(f2,f1)-
bosons[i].couplingdaggerL(f2,f1));
1446 v1=v1+pow(a/
bosons[i].mass,2);
1448 ex b=(
bosons[i].couplingdaggerR(f2,f1)+
bosons[i].couplingdaggerL(f2,f1));
1449 v2=v2+pow(b/
bosons[i].mass,2);
1455 ret=2*(-v1*(1+11*fc)+v2*(1+fc))*mesonmass/96;
1457 return collect_common_factors(ret.subs(
conjtoabs));
1473 return collect_common_factors(ret.subs(
conjtoabs));
1478 return ex_to<numeric>(
BR_Htotaunu.subs(
tanb==pow(10.0,xx[0])).evalf()).to_double();
1483 return ex_to<numeric>(
BR_toptoHq.subs(lst(
tanb==pow(10.0,xx[0]),
McH==xx[1])).evalf()).to_double();
1490 const constant
Mpip,
Mpi0,
MBp,
MB0,
MBs0,
MKp,
MK0,
MDp,
MD0,
MDsp,
MDs0;
this class calculates decay widths of one lepton to 3 leptons
calculus of the constraints coming from the b->s gamma decay
double BranchingRatio(double *xx, double *p)
A base class representing an experimental measure.
ex couplingdaggerL(const Fermion &f2, const Fermion &f1) const
ex decaywidthtest2(const Fermion &ff1) const
ex get_integral_symb(const multivector< ex, 3 > &a, ex m1) const
ex tautomu_tautoe() const
BGL(int genL=2, int genQ=2, int lup=0, int qup=0, int mssm=0)
ex mesondw(const Meson &meson, const Fermion &ff3, const Fermion &ff4, BSpin s=sAny) const
ex get_integral_symb(const multivector< ex, 4 > &a, const vector< ex > &mass, const vector< int > &op, ex m1) const
parameters getlist(const parameters &p) const
double topBranchingRatio(double *xx, double *p)
multivector< Matrix, 2 > N
ex fermiontomesontest(const Fermion &ff4, const Fermion &ff3, const Meson &meson, BSpin s=sAny) const
calculus of the constraints coming from the B->mu mu decay
ex decaywidth(const Fermion &ff1, const Fermion &ff2, const Fermion &ff3, const Fermion &ff4, BSpin s=sAny) const
ex couplingL(const Fermion &f2, const Fermion &f1) const
An experimental measure which is an upper limit on a parameter with a given Confidence Level...
double massnum(const Fermion &f) const
multivector< Matrix, 2 > VN
ex fermiontomeson(const Fermion &ff4, const Fermion &ff3, const Meson &meson, BSpin s=sAny) const
ex CHdecaycoupling(Boson higgs, const Fermion &ff3, const Fermion &ff4) const
double width(const parameters &p, int option=0) const
An experimental measure of a parameter which is a mean value and a standard deviation.
multivector< Matrix, 4 > C
ex mesondwtest(const Meson &meson, const Fermion &ff3, const Fermion &ff4, BSpin s=sAny) const
Abstract class for a model.
ex couplingdaggerR(const Fermion &f2, const Fermion &f1) const
void appendtolst(lst &reps) const
ex mass(const Fermion &f) const
parameters generateparameters(int max=0) const
ex coupling(const Fermion &f2, const Fermion &f1, ex mu)
calculus of the constraints coming from the oblique parameters
definition of the couplings for the different BGL models
int veto(const parameters &p, int max=0) const
A parameter which will be fitted in the simulation.
ex gRR2(const Fermion &f1, const Fermion &f3) const
the same as gaussobs but with a different initializer, such that the uncertainty sigma is absolute ...
multivector< Matrix, 2 > M
ex mesonmixing(ex mesonmass, const Fermion &f1, const Fermion &f2) const
void add(const char *s, ex pred, observable *ob, bool sb=0)
theoretical expression for an experimental measure
bool isvalid() const
checks if all the values are between their minimums and maximums
ex couplingR(const Fermion &f2, const Fermion &f1) const
Implementation of the BGL model.
double bsgammawidth(double tanb, double McH, double MR, double MI, int option=0)