27 #include "EvtGenBase/EvtDecayIncoherent.hh"
39 std::string getName();
73 double tripleDiff(
double pp,
double pl,
double pm);
74 double SFNorm(
const std::vector<double> &coeffs);
75 static double integrand(
double omega,
const std::vector<double> &coeffs);
76 double F10(
const std::vector<double> &coeffs);
77 static double F1Int(
double omega,
const std::vector<double> &coeffs);
78 double F20(
const std::vector<double> &coeffs);
79 static double F2Int(
double omega,
const std::vector<double> &coeffs);
80 double F30(
const std::vector<double> &coeffs);
81 static double F3Int(
double omega,
const std::vector<double> &coeffs);
82 static double g1(
double y,
double z);
83 static double g2(
double y,
double z);
84 static double g3(
double y,
double z);
86 static double Gamma(
double z);
87 static double dgamma(
double t,
const std::vector<double> &c){
return pow(t,c[0]-1)*exp(-t);}
88 static double Gamma(
double z,
double tmax);
91 inline double mu_i(){
return _mui;}
92 inline double mu_bar(){
return _mui;}
93 inline double mu_h(){
return _mb/sqrt(2.0);}
94 inline double lambda1(){
return -_mupi2;}
97 static double beta0(
int nf=4){
return 11.-2./3.*nf;}
98 static double beta1(
int nf=4){
return 34.*3.-38./3.*nf;}
99 static double beta2(
int nf=4){
return 1428.5-5033./18.*nf+325./54.*nf*nf;}
100 static double gamma0(){
return 16./3.;}
101 static double gamma1(
int nf=4){
return 4./3.*(49.85498-40./9.*nf);}
102 static double gamma2(
int nf=4){
return 64./3.*(55.07242-8.58691*nf-nf*nf/27.);}
103 static double gammap0(){
return -20./3.;}
104 static double gammap1(
int nf=4){
return -32./3.*(6.92653-0.9899*nf);}
109 static double alphas(
double mu) ;
110 static double C_F(
double mu){
return (4.0/3.0)*alphas(mu)/4./EvtConst::pi;}
114 inline double lambda_SF(){
return _lambdaSF;}
115 double lambda_bar(
double omega0);
116 inline double lambda2(){
return 0.12;}
117 double mu_pi2(
double omega0);
118 inline double lambda(
double){
return _mB-_mb;}
121 static double cGaus(
double b){
return pow(Gamma(1+b/2.)/Gamma((1+b)/2.),2);}
123 double M0(
double mui,
double omega0);
124 static double shapeFunction(
double omega,
const std::vector<double> &coeffs);
125 static double expShapeFunction(
double omega,
const std::vector<double> &coeffs);
126 static double gausShapeFunction(
double omega,
const std::vector<double> &coeffs);
128 double subS(
const std::vector<double> &coeffs );
129 double subT(
const std::vector<double> &coeffs);
130 double subU(
const std::vector<double> &coeffs);
131 double subV(
const std::vector<double> &coeffs);
136 inline double S0(
double a,
double r){
return -gamma0()/4/a/pow(beta0(),2)*(1/r-1+log(r));}
137 inline double S1(
double ,
double r){
return gamma0()/4./pow(beta0(),2)*(
138 pow(log(r),2)*beta1()/2./beta0()+(gamma1()/gamma0()-beta1()/beta0())*(1.-r+log(r))
140 inline double S2(
double a,
double r){
return gamma0()*a/4./pow(beta0(),2)*(
142 pow(beta1()/beta0(),2)-beta2()/beta0()-beta1()/beta0()*gamma1()/gamma0()+gamma2()/gamma0()
144 +(pow(beta1()/beta0(),2)-beta2()/beta0())*(1-r)*log(r)
145 +(beta1()/beta0()*gamma1()/gamma0()-beta2()/beta0())*(1-r+r*log(r))
147 inline double dSudakovdepsi(
double mu1,
double mu2){
return S2(alphas(mu1)/(4*EvtConst::pi),alphas(mu2)/alphas(mu1));}
148 inline double Sudakov(
double mu1,
double mu2,
double epsi=0){
double fp(4*EvtConst::pi);
return S0(alphas(mu1)/fp,alphas(mu2)/alphas(mu1))+S1(alphas(mu1)/fp,alphas(mu2)/alphas(mu1))+epsi*dSudakovdepsi(mu1,mu2);}
151 inline double dGdepsi(
double mu1,
double mu2){
return 1./8./EvtConst::pi*(alphas(mu2)-alphas(mu1))*(gamma1()/beta0()-beta1()*gamma0()/pow(beta0(),2));}
152 inline double aGamma(
double mu1,
double mu2,
double epsi=0){
return gamma0()/2/beta0()*log(alphas(mu2)/alphas(mu1))+epsi*dGdepsi( mu1, mu2);}
153 inline double dgpdepsi(
double mu1,
double mu2){
return 1./8./EvtConst::pi*(alphas(mu2)-alphas(mu1))*(gammap1()/beta0()-beta1()*gammap0()/pow(beta0(),2));}
154 inline double agammap(
double mu1,
double mu2,
double epsi=0){
return gammap0()/2/beta0()*log(alphas(mu2)/alphas(mu1))+epsi*dgpdepsi( mu1, mu2);}
155 inline double U1(
double mu1,
double mu2,
double epsi=0){
return exp(2*(Sudakov(mu1,mu2,epsi)-agammap(mu1,mu2,epsi)-aGamma(mu1,mu2,epsi)*log(_mb/mu1)));}
156 inline double U1lo(
double mu1,
double mu2){
return U1(mu1,mu2);}
157 inline double U1nlo(
double mu1,
double mu2){
return U1(mu1,mu2)*(1+2*(dSudakovdepsi(mu1,mu2)-dgpdepsi( mu1, mu2)-log(_mb/mu1)*dGdepsi( mu1, mu2)));}
158 inline double alo(
double mu1,
double mu2){
return -2*aGamma(mu1,mu2);}
159 inline double anlo(
double mu1,
double mu2){
return -2*dGdepsi(mu1,mu2);}