518 double tanb=p[0].value;
522 double McH=y, MR=z, MI=w;
531 for(
uint i=0;i<3;i++){
532 Mu[i]=
Mu_[i].Eval(log(y));
533 Md[i]=
Md_[i].Eval(log(z));
536 CD CC7[2],DD7[2],CC8[2],DD8[2];
541 std::array<double,24> ret;
543 fp(&n,&(tanb),&m,&(ret[0]));
544 for(
uint j=0;j<2;j++){
545 const double mbottom=Md[i];
546 const double mstrange=Md[j];
551 for(
uint k=0;k<3;k++){
557 double mmu=std::pow(mup/McH,2);
558 double mmdR=std::pow(mdown/MR,2);
559 double mmdI=std::pow(mdown/MI,2);
560 double A0u=0,A1u=0, A2u=0, A3u=0, A0d=0, A1d=0;
562 if(option==0 || option==1){
568 if(option==0 || option==2){
569 A0d=(
A0(mmdR)+
A0(mmdI));
570 A1d=(
A1(mmdR)-
A1(mmdI));
581 CD f1(ret[j*12+4*k+0],ret[j*12+4*k+1]);
585 CD f2=f1*mstrange*mbottom/mup/mup;
592 CD f4(ret[j*12+4*k+2],ret[j*12+4*k+3]);
599 CD f6=f4*mstrange*mbottom/mdown/mdown;
605 CC7[j]=(QCD1[j]*C7+QCD2[j]*C8)/2.0/conj(
Vud[2][j])/
Vud[2][i];
606 DD7[j]=(QCD1[j]*D7+QCD2[j]*D8)/2.0/conj(
Vud[2][j])/
Vud[2][i];
607 const double QCD3=(3*QCD2[j]/8+QCD1[j]);
608 CC8[j]=QCD3*C8/2.0/conj(
Vud[2][j])/
Vud[2][i];
609 DD8[j]=QCD3*D8/2.0/conj(
Vud[2][j])/
Vud[2][i];
610 const CD epsilon=conj(
Vud[0][j])*
Vud[0][i]/conj(
Vud[2][j])/
Vud[2][i];
611 const double upsilon=norm(conj(
Vud[2][j])*
Vud[2][i]/
Vud[1][i]);
618 res[j]=
a+
aee*norm(epsilon)+
aer*epsilon.real()+
aei*epsilon.imag();
619 res[j]+=
a77*(norm(R7)+norm(R7_))+
a7r*R7.real()+
a7i*R7.imag();
620 res[j]+=
a88*(norm(R8)+norm(R8_))+
a8r*R8.real()+
a8i*R8.imag();
621 res[j]+=
a87r*(R8*conj(R7)+R8_*conj(R7_)).real()+
a7er*(R7*conj(epsilon)).real()+
a8er*(R8*conj(epsilon)).real();
622 res[j]+=
a87i*(R8*conj(R7)+R8_*conj(R7_)).imag()+
a7ei*(R7*conj(epsilon)).imag()+
a8er*(R8*conj(epsilon)).imag();
623 res[j]*=
calN/100*upsilon;
633 double r1=3.15e-4+0.00247*(norm(CC7[1])+norm(DD7[1])-0.706*CC7[1].real());
ROOT::Math::Interpolator inter1
static constexpr double a7ei
static constexpr double aer
double A1(double x) const
static constexpr double a8i
double A0(double x) const
static constexpr double a7r
ROOT::Math::Interpolator inter3
static constexpr double a
static constexpr double aee
ROOT::Math::Interpolator Md_[3]
static constexpr double a7i
static constexpr double a87r
static constexpr double a8er
ROOT::Math::Interpolator Mu_[3]
ROOT::Math::Interpolator inter4
static constexpr double a88
static constexpr double aei
static constexpr double calN
double error(double hipothesis) const
static constexpr double a8r
double A3(double x) const
std::complex< double > CD
const Matrixx Vud(13.04 *M_PI/180, 0.201 *M_PI/180, 2.38 *M_PI/180, 1.2)
ROOT::Math::Interpolator inter2
static constexpr double a87i
static constexpr double a7er
static constexpr double a77
double A2(double x) const