38 void getName( std::string& name );
69 double tripleDiff(
double pp,
double pl,
double pm );
70 double SFNorm(
const std::vector<double>& coeffs );
71 static double integrand(
double omega,
const std::vector<double>& coeffs );
72 double F10(
const std::vector<double>& coeffs );
73 static double F1Int(
double omega,
const std::vector<double>& coeffs );
74 double F20(
const std::vector<double>& coeffs );
75 static double F2Int(
double omega,
const std::vector<double>& coeffs );
76 double F30(
const std::vector<double>& coeffs );
77 static double F3Int(
double omega,
const std::vector<double>& coeffs );
78 static double g1(
double y,
double z );
79 static double g2(
double y,
double z );
80 static double g3(
double y,
double z );
82 static double Gamma(
double z );
83 static double dgamma(
double t,
const std::vector<double>& c ) {
84 return pow(
t, c[0] - 1 ) *
exp( -
t );
86 static double Gamma(
double z,
double tmax );
89 inline double mu_i() {
return _mui; }
90 inline double mu_bar() {
return _mui; }
91 inline double mu_h() {
return _mb / sqrt( 2.0 ); }
92 inline double lambda1() {
return -_mupi2; }
95 static double beta0(
int nf = 4 ) {
return 11. - 2. / 3. * nf; }
96 static double beta1(
int nf = 4 ) {
return 34. * 3. - 38. / 3. * nf; }
97 static double beta2(
int nf = 4 ) {
98 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 ) {
103 return 64. / 3. * ( 55.07242 - 8.58691 * nf - nf * nf / 27. );
105 static double gammap0() {
return -20. / 3.; }
106 static double gammap1(
int nf = 4 ) {
107 return -32. / 3. * ( 6.92653 - 0.9899 * nf );
112 static double alphas(
double mu );
113 static double C_F(
double mu ) {
return ( 4.0 / 3.0 ) * alphas( mu ) / 4. /
EvtConst::pi; }
117 inline double lambda_SF() {
return _lambdaSF; }
118 double lambda_bar(
double omega0 );
119 inline double lambda2() {
return 0.12; }
120 double mu_pi2(
double omega0 );
121 inline double lambda(
double mu = 0 ) {
return _mB - _mb; }
124 static double cGaus(
double b ) {
125 return pow( Gamma( 1 + b / 2. ) / Gamma( ( 1 + b ) / 2. ), 2 );
128 double M0(
double mui,
double omega0 );
129 static double shapeFunction(
double omega,
const std::vector<double>& coeffs );
130 static double expShapeFunction(
double omega,
const std::vector<double>& coeffs );
131 static double gausShapeFunction(
double omega,
const std::vector<double>& coeffs );
133 double subS(
const std::vector<double>& coeffs );
134 double subT(
const std::vector<double>& coeffs );
135 double subU(
const std::vector<double>& coeffs );
136 double subV(
const std::vector<double>& coeffs );
140 inline double S0(
double a,
double r ) {
141 return -gamma0() / 4 / a / pow( beta0(), 2 ) * ( 1 / r - 1 + log( r ) );
143 inline double S1(
double a,
double r ) {
144 return gamma0() / 4. / pow( beta0(), 2 ) *
145 ( pow( log( r ), 2 ) * beta1() / 2. / beta0() +
146 ( gamma1() / gamma0() - beta1() / beta0() ) * ( 1. - r + log( r ) ) );
148 inline double S2(
double a,
double r ) {
149 return gamma0() * a / 4. / pow( beta0(), 2 ) *
150 ( -0.5 * pow( ( 1 - r ), 2 ) *
151 ( pow( beta1() / beta0(), 2 ) - beta2() / beta0() -
152 beta1() / beta0() * gamma1() / gamma0() + gamma2() / gamma0() ) +
153 ( pow( beta1() / beta0(), 2 ) - beta2() / beta0() ) * ( 1 - r ) * log( r ) +
154 ( beta1() / beta0() * gamma1() / gamma0() - beta2() / beta0() ) *
155 ( 1 - r + r * log( r ) ) );
157 inline double dSudakovdepsi(
double mu1,
double mu2 ) {
158 return S2( alphas( mu1 ) / ( 4 *
EvtConst::pi ), alphas(
mu2 ) / alphas( mu1 ) );
160 inline double Sudakov(
double mu1,
double mu2,
double epsi = 0 ) {
162 return S0( alphas( mu1 ) / fp, alphas(
mu2 ) / alphas( mu1 ) ) +
163 S1( alphas( mu1 ) / fp, alphas(
mu2 ) / alphas( mu1 ) ) +
164 epsi * dSudakovdepsi( mu1,
mu2 );
168 inline double dGdepsi(
double mu1,
double mu2 ) {
170 ( gamma1() / beta0() - beta1() * gamma0() / pow( beta0(), 2 ) );
172 inline double aGamma(
double mu1,
double mu2,
double epsi = 0 ) {
173 return gamma0() / 2 / beta0() * log( alphas(
mu2 ) / alphas( mu1 ) ) +
174 epsi * dGdepsi( mu1,
mu2 );
176 inline double dgpdepsi(
double mu1,
double mu2 ) {
178 ( gammap1() / beta0() - beta1() * gammap0() / pow( beta0(), 2 ) );
180 inline double agammap(
double mu1,
double mu2,
double epsi = 0 ) {
181 return gammap0() / 2 / beta0() * log( alphas(
mu2 ) / alphas( mu1 ) ) +
182 epsi * dgpdepsi( mu1,
mu2 );
184 inline double U1(
double mu1,
double mu2,
double epsi = 0 ) {
185 return exp( 2 * ( Sudakov( mu1,
mu2, epsi ) - agammap( mu1,
mu2, epsi ) -
186 aGamma( mu1,
mu2, epsi ) * log( _mb / mu1 ) ) );
188 inline double U1lo(
double mu1,
double mu2 ) {
return U1( mu1,
mu2 ); }
189 inline double U1nlo(
double mu1,
double mu2 ) {
190 return U1( mu1,
mu2 ) * ( 1 + 2 * ( dSudakovdepsi( mu1,
mu2 ) - dgpdepsi( mu1,
mu2 ) -
191 log( _mb / mu1 ) * dGdepsi( mu1,
mu2 ) ) );
193 inline double alo(
double mu1,
double mu2 ) {
return -2 * aGamma( mu1,
mu2 ); }
194 inline double anlo(
double mu1,
double mu2 ) {
return -2 * dGdepsi( mu1,
mu2 ); }