]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TEvtGen/EvtGenModels/EvtbTosllBallFF.cxx
Not needed.
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenModels / EvtbTosllBallFF.cxx
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