]>
Commit | Line | Data |
---|---|---|
da0e9ce3 | 1 | //-------------------------------------------------------------------------- |
2 | // | |
3 | // Environment: | |
4 | // This software is part of the EvtGen package developed jointly | |
5 | // for the BaBar and CLEO collaborations. If you use all or part | |
6 | // of it, please give an appropriate acknowledgement. | |
7 | // | |
8 | // Copyright Information: See EvtGen/COPYRIGHT | |
9 | // Copyright (C) 2000 Caltech, UCSB | |
10 | // | |
11 | // Module: | |
12 | // Description: Form factors for b->sll according to Ali, Ball et al. | |
13 | // hep-ph/9910221v2 | |
14 | // | |
15 | // Modification history: | |
16 | // | |
17 | // Ryd January 5, 2000 Module created | |
18 | // | |
19 | // jjhollar October 7 2005 Add Ball & Zwicky '05 LCSR | |
20 | // ofte August 2006 Add some more pi l l FF models | |
21 | //------------------------------------------------------------------------ | |
22 | #include "EvtGenBase/EvtPatches.hh" | |
23 | ||
24 | #include "EvtGenBase/EvtPatches.hh" | |
25 | #include "EvtGenBase/EvtPDL.hh" | |
26 | #include "EvtGenModels/EvtbTosllBallFF.hh" | |
27 | #include <math.h> | |
28 | ||
29 | EvtbTosllBallFF::EvtbTosllBallFF(int ffmodel) | |
30 | { | |
31 | _theFFModel = ffmodel; | |
32 | } | |
33 | ||
34 | ||
35 | void EvtbTosllBallFF::getScalarFF(EvtId parent, EvtId daught, | |
36 | double t, double /*mass*/, | |
37 | double& fp,double& f0,double& ft){ | |
38 | ||
39 | int model = _theFFModel; | |
40 | ||
41 | double m=EvtPDL::getMeanMass(parent); | |
42 | double md=EvtPDL::getMeanMass(daught); | |
43 | ||
44 | double shat=t/(m*m); | |
45 | double shat2=shat*shat; | |
46 | double shat3=shat2*shat; | |
47 | ||
48 | if (daught == EvtPDL::getId(std::string("K+")) || | |
49 | daught == EvtPDL::getId(std::string("K-")) || | |
50 | daught == EvtPDL::getId(std::string("K_S0")) || | |
51 | daught == EvtPDL::getId(std::string("K0")) || | |
52 | daught == EvtPDL::getId(std::string("anti-K0")) || | |
53 | daught == EvtPDL::getId(std::string("K_L0")) | |
54 | ) | |
55 | { | |
56 | // B --> K form factors | |
57 | if (model == 1) { | |
58 | //this is Ali-Ball '01 (or really Ali-Ball'99 minimum allowed) | |
59 | fp = 0.278*exp(1.568*shat+0.470*shat2+0.885*shat3); | |
60 | f0 = 0.278*exp(0.740*shat+0.080*shat2+0.425*shat3); | |
61 | ft = 0.300*exp(1.600*shat+0.501*shat2+0.796*shat3); | |
62 | } | |
63 | if (model == 2) { | |
64 | //this is Ali-Ball '99 (central values) | |
65 | fp = 0.319*exp(1.465*shat+0.372*shat2+0.782*shat3); | |
66 | f0 = 0.319*exp(0.633*shat-0.095*shat2+0.591*shat3); | |
67 | ft = 0.355*exp(1.478*shat+0.373*shat2+0.700*shat3); | |
68 | } | |
69 | if (model == 3) { | |
70 | //QCD sum rules (Colangelo et al) | |
71 | fp = 0.25/(1.-t/(5.0*5.0)); | |
72 | f0 = 0.25/(1.-t/(7.0*7.0)); | |
73 | ft = - 0.14/((1.0 - t/(5.0*5.0))*(1.0 - t/(7.0*7.0))); | |
74 | } | |
75 | if (model == 4) { | |
76 | // Quark model (Melikhov et al - hep-ph/9711362) | |
77 | fp = 0.36/(1. - 0.048*t + 0.00063*t*t); | |
78 | double fm = -0.30/(1. - 0.050*t + 0.00061*t*t); | |
79 | f0 = fp + fm*(t/(m*m - md*md)); | |
80 | ft = -(m+md)*0.06/(1 -0.049*t + 0.00064*t*t); | |
81 | } | |
82 | if (model == 5) { | |
83 | fp = 0.341/(1. - 1.41*shat + 0.406*shat*shat); | |
84 | f0 = 0.341/(1. - 0.41*shat -0.361*shat*shat); | |
85 | ft = 0.374/(1. - 1.42*shat + 0.434*shat*shat); | |
86 | } | |
87 | if (model == 6) { | |
88 | // Ball-Zwicky LCSR '05 "set 2" (mb = 4.8) | |
89 | fp = (0.1616 / (1. - (t/29.30))) + | |
90 | (0.1730 / (1. - (t/29.30)) / (1. - (t/29.30))); | |
91 | f0 = (0.3302 / (1. - (t/37.46/37.46))); | |
92 | ft = (0.1614 / (1. - (t/29.30))) + | |
93 | (0.1981 / (1. - (t/29.30)) / (1. - (t/29.30))); | |
94 | } | |
95 | if (model == 7){ | |
96 | // Ball-Zwicky LCSR '05 "set 4" (mb = 4.6) | |
97 | fp = (0.1903 / (1. - (t/29.30))) + | |
98 | (0.1478 / (1. - (t/29.30)) / (1. - (t/29.30))); | |
99 | f0 = (0.3338 / (1. - (t/38.98/38.98))); | |
100 | ft = (0.1851 / (1. - (t/29.30))) + | |
101 | (0.1905 / (1. - (t/29.30)) / (1. - (t/29.30))); | |
102 | } | |
103 | } | |
104 | else if (daught == EvtPDL::getId(std::string("pi+")) || | |
105 | daught == EvtPDL::getId(std::string("pi-")) || | |
106 | daught == EvtPDL::getId(std::string("pi0")) | |
107 | ) | |
108 | { | |
109 | if(model == 1){ | |
110 | // B --> pi form factors from Ball-Zwicky'01 (tabulated in hep-ph/0306251) | |
111 | fp = 0.261/(1. - 2.03*shat + 1.293*shat*shat); | |
112 | f0 = 0.261/(1. - 0.27*shat -0.752*shat*shat); | |
113 | ft = 0.296/(1. - 1.28*shat + 0.193*shat*shat); | |
114 | } | |
115 | ||
116 | // The following two (2) and (3) should preferably be replaced with | |
117 | // something better. ft not provided by the papers, and the ft formula | |
118 | // (from Colangelo'96 (hep-ph/9510403v2) equation (5.1)) seem to be no good. | |
119 | // if (model == 2) { | |
120 | // // LatticeQCD: Okamoto'04 | |
121 | // // ... with f_T from eq. (5.1) of Colangelo'95 | |
122 | // fp = 0.23/((1.-shat)*(1.-0.63*shat)); | |
123 | // f0 = 0.23/((1.-shat)/1.18); | |
124 | // ft = ( -(m+md)/(2*m) )/ (fp - (m*m-md*md) * ((f0-fp)/t) ); | |
125 | // } | |
126 | // if (model == 3) { | |
127 | // // LatticeQCD: Shigemitsu'04 | |
128 | // // ... with f_T from eq. (5.1) of Colangelo'95 | |
129 | // fp = 0.42*(1.0-0.41)/((1.-shat)*(1.-0.63*shat)); | |
130 | // f0 = 0.42*(1.0-0.41)/((1.-shat)/1.18); | |
131 | // ft = ( -(m+md)/(2*m) )/ (fp - (m*m-md*md) * ((f0-fp)/t) ); | |
132 | // } | |
133 | ||
134 | if (model == 4) { | |
135 | // Quark model - B -> pi set 1 (Melikhov-Nikitin'96) | |
136 | fp = 0.29/pow((1.-t/(6.48*6.48)),2.54); | |
137 | double fm = -0.26/pow((1.-t/(6.34*6.34)),2.49); | |
138 | f0 = fp + fm*(t/(m*m - md*md)); | |
139 | ft = -(m+md)*0.05/pow((1.-t/(6.47*6.47)),2.50); | |
140 | } | |
141 | if (model == 5) { | |
142 | // Melikhov-Stech '00. (hep-ph/0001113) | |
143 | // relativistic dispersion approach based on constituent quark picture | |
144 | fp = 0.29/((1.-shat)*(1.-0.48*shat)); | |
145 | f0 = 0.29/(1.-0.76*shat +0.28*shat*shat); | |
146 | ft = 0.28/((1.-shat)*(1.-0.48*shat)); | |
147 | } | |
148 | if(model == 6){ | |
149 | // Ball-Zwicky LCSR '05 "set 2" (mb = 4.8) | |
150 | fp = (0.744 / (1. - (t/(5.32*5.32)))) + (-0.486 / (1. - (t/40.73))); | |
151 | f0 = (0.258 / (1. - (t/33.81))); | |
152 | ft = (1.387 / (1. - (t/(5.32*5.32)))) + (-1.134 / (1. - (t/32.22))); | |
153 | } | |
154 | if(model == 7){ | |
155 | // Ball-Zwicky LCSR '05 "set 4" (mb = 4.6) | |
156 | fp = (0.944 / (1. - (t/(5.32*5.32)))) + (-0.669 / (1. - (t/34.27))); | |
157 | f0 = (0.270 / (1. - (t/33.63))); | |
158 | ft = (0.152 / (1. - (t/(5.32*5.32)))) + | |
159 | (0.122 / (1. - (t/28.40)) / (1. - (t/28.40))); | |
160 | } | |
161 | } | |
162 | else if (daught == EvtPDL::getId(std::string("eta")) || | |
163 | daught == EvtPDL::getId(std::string("eta'")) | |
164 | ) | |
165 | { | |
166 | if(model == 1){ | |
167 | // B --> eta form factors | |
168 | fp = 0.261/(1. - 2.03*shat + 1.293*shat*shat); | |
169 | f0 = 0.261/(1. - 0.27*shat -0.752*shat*shat); | |
170 | ft = 0.296/(1. - 1.28*shat + 0.193*shat*shat); | |
171 | } | |
172 | if(model == 6){ | |
173 | // Ball-Zwicky LCSR '05 "set 2" (mb = 4.8) | |
174 | fp = (0.1220 / (1. - (t/28.40))) + | |
175 | (0.1553 / (1. - (t/28.40)) / (1. - (t/28.40))); | |
176 | f0 = (0.2734 / (1. - (t/31.03/31.03))); | |
177 | ft = (0.1108 / (1. - (t/28.40))) + | |
178 | (0.1752 / (1. - (t/28.40)) / (1. - (t/28.40))); | |
179 | } | |
180 | if(model == 7){ | |
181 | // Ball-Zwicky LCSR '05 "set 2" (mb = 4.8) | |
182 | fp = (0.1380 / (1. - (t/28.40))) + | |
183 | (0.1462 / (1. - (t/28.40)) / (1. - (t/28.40))); | |
184 | f0 = (0.2799 / (1. - (t/30.46/30.46))); | |
185 | ft = (0.1160 / (1. - (t/28.40))) + | |
186 | (0.1841 / (1. - (t/28.40)) / (1. - (t/28.40))); | |
187 | } | |
188 | } | |
189 | ||
190 | // cout << "shat "<<shat<<"\t"<<"fp "<<fp<<"\t"<<"f0 "<<f0<<"\t" | |
191 | // <<"ft "<<ft<<endl; | |
192 | ||
193 | } | |
194 | ||
195 | ||
196 | void EvtbTosllBallFF::getVectorFF(EvtId parent, EvtId daught, | |
197 | double t, double /*mass*/, | |
198 | double& a1,double& a2,double& a0, double& v, | |
199 | double& t1, double& t2, double& t3 ){ | |
200 | ||
201 | int model = _theFFModel; | |
202 | ||
203 | double m=EvtPDL::getMeanMass(parent); | |
204 | double md=EvtPDL::getMeanMass(daught); | |
205 | ||
206 | double shat=t/(m*m); | |
207 | double shat2=shat*shat; | |
208 | ||
209 | if ( | |
210 | daught == EvtPDL::getId(std::string("K*+")) || | |
211 | daught == EvtPDL::getId(std::string("K*-")) || | |
212 | daught == EvtPDL::getId(std::string("K*0")) || | |
213 | daught == EvtPDL::getId(std::string("anti-K*0")) | |
214 | ) | |
215 | { | |
216 | if (model == 1) { | |
217 | //this is Ali-Ball '01 | |
218 | a1 = 0.294*exp(0.656*shat+0.456*shat2); | |
219 | a2 = 0.246*exp(1.237*shat+0.822*shat2); | |
220 | a0 = 0.412*exp(1.543*shat+0.954*shat2); | |
221 | v = 0.399*exp(1.537*shat+1.123*shat2); | |
222 | ||
223 | t1 = 0.334*exp(1.575*shat+1.140*shat2); | |
224 | t2 = 0.334*exp(0.562*shat+0.481*shat2); | |
225 | t3 = 0.234*exp(1.230*shat+1.089*shat2); | |
226 | } | |
227 | if (model == 2) { | |
228 | //this is Ali-Ball '99 | |
229 | a1=0.337*exp(0.602*shat+0.258*shat2); | |
230 | a2=0.282*exp(1.172*shat+0.567*shat2); | |
231 | a0=0.471*exp(1.505*shat+0.710*shat2); | |
232 | v=0.457*exp(1.482*shat+1.015*shat2); | |
233 | ||
234 | t1=0.379*exp(1.519*shat+1.030*shat2); | |
235 | t2=0.379*exp(0.517*shat+0.426*shat2); | |
236 | t3=0.260*exp(1.129*shat+1.128*shat2); | |
237 | } | |
238 | if (model == 3) { | |
239 | //QCD sum rules (Colangelo et al) | |
240 | // JJH - Changed in accordance with erratum (Phys. Rev. D 57, 3186 (1998)) | |
241 | a1 = 0.37*(1 - 0.023*t); | |
242 | a2 = 0.40*(1 + 0.034*t); | |
243 | a0 = 0.3/(1.- t/(4.8*4.8)); | |
244 | v = 0.47/(1.- t/(5.0*5.0)); | |
245 | ||
246 | t1 = 0.19/(1.-t/(5.3*5.3)); | |
247 | t2 = 0.19*(1. - 0.02*t); | |
248 | t3 = 0.3*(1. + 0.01*t); | |
249 | } | |
250 | ||
251 | if (model == 4) { | |
252 | // Quark model (Melikhov et al) | |
253 | a1 = 1.6/(1 - 0.0288*t + 0.00028*t*t); a1 = a1/(m+md); | |
254 | a2 = (m+md)*0.036/(1. - 0.053*t + 0.00082*t*t); | |
255 | double aminus = 0.041/(1. - 0.055*t + 0.00088*t*t); | |
256 | double f = 1.60/(1. - 0.0288*t + 0.00028*t*t); | |
257 | double aplus = -0.036/(1. - 0.053*t + 0.00082*t*t); | |
258 | a0 = (t*aminus + f + (m*m-md*md)*aplus)/(2.0*md); | |
259 | v = (m+md)*0.048/(1. - 0.057*t + 0.00085*t*t); | |
260 | ||
261 | t1 = 0.28/(1. - 0.058*t + 0.0009*t*t); | |
262 | double gplus = -0.28/(1. - 0.058*t + 0.0009*t*t); | |
263 | double gminus = 0.24/(1. - 0.059*t + 0.00096*t*t); | |
264 | t2 = -gplus - (t*gminus)/(m*m-md*md); | |
265 | double h = 0.0037/(1. - 0.075*t + 0.0016*t*t); | |
266 | t3 = (m+md)*(m+md)*((gminus/(m*m-md*md) - h/2.)); | |
267 | ||
268 | } | |
269 | if (model == 5) { | |
270 | a1 = 0.337/(1. - 0.60*shat - 0.023*shat*shat); | |
271 | a2 = 0.283/(1. - 1.18*shat + 0.281*shat*shat); | |
272 | a0 = 0.470/(1. - 1.55*shat + 0.680*shat*shat); | |
273 | v = 0.458/(1. - 1.55*shat + 0.575*shat*shat); | |
274 | t1 = 0.379/(1. - 1.59*shat + 0.615*shat*shat); | |
275 | t2 = 0.379/(1. - 0.49*shat - 0.241*shat*shat); | |
276 | t3 = 0.261/(1. - 1.20*shat + 0.098*shat*shat); | |
277 | } | |
278 | if (model == 6) { | |
279 | // Ball-Zwicky LCSR '05 (mb = 4.8) | |
280 | a1 = 0.290 / (1. - (t/40.38)); | |
281 | a2 = (-0.084 / (1. - (t/52.00))) + | |
282 | (0.342 / (1. - (t/52.00))/(1. - (t/52.00))); | |
283 | a0 = (1.364 / (1. - (t/(5.28*5.28)))) + | |
284 | (-0.990 / (1. - (t/36.78))); | |
285 | v = (0.923 / (1. - (t/(5.32*5.32)))) + | |
286 | (-0.511 / (1. - (t/49.40))); | |
287 | t1 = (0.823 / (1. - (t/(5.32*5.32)))) + | |
288 | (-0.491 / (1 - (t/46.31))); | |
289 | t2 = 0.333 / (1. - (t/41.41)); | |
290 | t3 = (-0.036 / (1. - (t/48.10))) + | |
291 | (0.368 / (1. - (t/48.10)) / (1. - (t/48.10))); | |
292 | } | |
293 | } | |
294 | else if (daught == EvtPDL::getId(std::string("rho+")) || | |
295 | daught == EvtPDL::getId(std::string("rho-")) || | |
296 | daught == EvtPDL::getId(std::string("rho0")) | |
297 | ) | |
298 | { | |
299 | if(model == 1){ | |
300 | // B --> rho form factors | |
301 | a1 = 0.261/(1. - 0.29*shat - 0.415*shat*shat); | |
302 | a2 = 0.223/(1. - 0.93*shat - 0.092*shat*shat); | |
303 | a0 = 0.372/(1. - 1.40*shat + 0.437*shat*shat); | |
304 | v = 0.338/(1. - 1.37*shat + 0.315*shat*shat); | |
305 | t1 = 0.285/(1. - 1.41*shat + 0.361*shat*shat); | |
306 | t2 = 0.285/(1. - 0.28*shat - 0.500*shat*shat); | |
307 | t3 = 0.202/(1. - 1.06*shat - 0.076*shat*shat); | |
308 | } | |
309 | if(model == 6){ | |
310 | // Ball-Zwicky LCSR '05 (mb = 4.8) | |
311 | a1 = 0.240 / (1. - (t/37.51)); | |
312 | a2 = (0.009 / (1. - (t/40.82))) + | |
313 | (0.212 / (1. - (t/40.82)) / (1. - (t/40.82))); | |
314 | a0 = (1.527 / (1. - (t/(5.28*5.28)))) + | |
315 | (-1.220 / (1. - (t/33.36))); | |
316 | v = (1.045 / (1. - (t/(5.32*5.32)))) + | |
317 | (-0.721 / (1. - (t/38.34))); | |
318 | t1 = (0.897 / (1. - (t/(5.32*5.32)))) + | |
319 | (-0.629 / (1 - (t/38.04))); | |
320 | t2 = 0.267 / (1. - (t/38.59)); | |
321 | t3 = (0.022 / (1. - (t/40.88))) + | |
322 | (0.246 / (1. - (t/40.88)) / (1. - (t/40.88))); | |
323 | } | |
324 | } | |
325 | else if (daught == EvtPDL::getId(std::string("omega")) | |
326 | ) | |
327 | { | |
328 | if(model == 1){ | |
329 | // B --> rho form factors | |
330 | a1 = 0.261/(1. - 0.29*shat - 0.415*shat*shat); | |
331 | a2 = 0.223/(1. - 0.93*shat - 0.092*shat*shat); | |
332 | a0 = 0.372/(1. - 1.40*shat + 0.437*shat*shat); | |
333 | v = 0.338/(1. - 1.37*shat + 0.315*shat*shat); | |
334 | t1 = 0.285/(1. - 1.41*shat + 0.361*shat*shat); | |
335 | t2 = 0.285/(1. - 0.28*shat - 0.500*shat*shat); | |
336 | t3 = 0.202/(1. - 1.06*shat - 0.076*shat*shat); | |
337 | } | |
338 | if(model == 6){ | |
339 | // Ball-Zwicky LCSR '05 (mb = 4.8) | |
340 | a1 = -0.217 / (1. - (t/37.01)); | |
341 | a2 = (0.006 / (1. - (t/41.24))) + | |
342 | (0.192 / (1. - (t/41.24)) / (1. - (t/41.24))); | |
343 | a0 = (1.321 / (1. - (t/(5.28*5.28)))) + | |
344 | (-1.040 / (1. - (t/34.47))); | |
345 | v = (1.006 / (1. - (t/(5.32*5.32)))) + | |
346 | (-0.713 / (1. - (t/37.45))); | |
347 | t1 = (0.865 / (1. - (t/(5.32*5.32)))) + | |
348 | (-0.622 / (1 - (t/37.19))); | |
349 | t2 = 0.242 / (1. - (t/37.95)); | |
350 | t3 = (0.023 / (1. - (t/40.87))) + | |
351 | (0.220 / (1. - (t/40.87)) / (1. - (t/40.87))); | |
352 | } | |
353 | } | |
354 | else if (daught == EvtPDL::getId(std::string("phi")) | |
355 | ) | |
356 | { | |
357 | if(model == 6){ | |
358 | // Ball-Zwicky LCSR '05 (mb = 4.8) | |
359 | a1 = 0.308 / (1. - (t/36.54)); | |
360 | a2 = (-0.054 / (1. - (t/48.94))) + | |
361 | (0.288 / (1. - (t/48.94)) / (1. - (t/48.94))); | |
362 | a0 = (3.310 / (1. - (t/(5.28*5.28)))) + | |
363 | (-2.835 / (1. - (t/31.57))); | |
364 | v = (1.484 / (1. - (t/(5.32*5.32)))) + | |
365 | (-1.049 / (1. - (t/39.52))); | |
366 | t1 = (1.303 / (1. - (t/(5.32*5.32)))) + | |
367 | (-0.954 / (1 - (t/38.28))); | |
368 | t2 = 0.349 / (1. - (t/37.21)); | |
369 | t3 = (0.027 / (1. - (t/45.56))) + | |
370 | (0.321 / (1. - (t/45.56)) / (1. - (t/45.56))); | |
371 | } | |
372 | } | |
373 | ||
374 | } | |
375 | ||
376 | ||
377 | ||
378 | ||
379 | ||
380 | ||
381 |