evtgen is hosted by Hepforge, IPPP Durham
EvtGen  2.0.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
EvtbTosllBallFF.cpp
Go to the documentation of this file.
1 
2 /***********************************************************************
3 * Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
4 * *
5 * This file is part of EvtGen. *
6 * *
7 * EvtGen is free software: you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation, either version 3 of the License, or *
10 * (at your option) any later version. *
11 * *
12 * EvtGen is distributed in the hope that it will be useful, *
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15 * GNU General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU General Public License *
18 * along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
19 ***********************************************************************/
20 
22 
23 #include "EvtGenBase/EvtPDL.hh"
24 #include "EvtGenBase/EvtPatches.hh"
25 
26 #include <cmath>
27 
29 {
30  _theFFModel = ffmodel;
31 }
32 
33 void EvtbTosllBallFF::getScalarFF( EvtId parent, EvtId daught, double t,
34  double /*mass*/, double& fp, double& f0,
35  double& ft )
36 {
37  int model = _theFFModel;
38 
39  double m = EvtPDL::getMeanMass( parent );
40  double md = EvtPDL::getMeanMass( daught );
41 
42  double shat = t / ( m * m );
43  double shat2 = shat * shat;
44  double shat3 = shat2 * shat;
45 
46  if ( daught == EvtPDL::getId( std::string( "K+" ) ) ||
47  daught == EvtPDL::getId( std::string( "K-" ) ) ||
48  daught == EvtPDL::getId( std::string( "K_S0" ) ) ||
49  daught == EvtPDL::getId( std::string( "K0" ) ) ||
50  daught == EvtPDL::getId( std::string( "anti-K0" ) ) ||
51  daught == EvtPDL::getId( std::string( "K_L0" ) ) ) {
52  // B --> K form factors
53  if ( model == 1 ) {
54  //this is Ali-Ball '01 (or really Ali-Ball'99 minimum allowed)
55  fp = 0.278 * exp( 1.568 * shat + 0.470 * shat2 + 0.885 * shat3 );
56  f0 = 0.278 * exp( 0.740 * shat + 0.080 * shat2 + 0.425 * shat3 );
57  ft = 0.300 * exp( 1.600 * shat + 0.501 * shat2 + 0.796 * shat3 );
58  }
59  if ( model == 2 ) {
60  //this is Ali-Ball '99 (central values)
61  fp = 0.319 * exp( 1.465 * shat + 0.372 * shat2 + 0.782 * shat3 );
62  f0 = 0.319 * exp( 0.633 * shat - 0.095 * shat2 + 0.591 * shat3 );
63  ft = 0.355 * exp( 1.478 * shat + 0.373 * shat2 + 0.700 * shat3 );
64  }
65  if ( model == 3 ) {
66  //QCD sum rules (Colangelo et al)
67  fp = 0.25 / ( 1. - t / ( 5.0 * 5.0 ) );
68  f0 = 0.25 / ( 1. - t / ( 7.0 * 7.0 ) );
69  ft = -0.14 /
70  ( ( 1.0 - t / ( 5.0 * 5.0 ) ) * ( 1.0 - t / ( 7.0 * 7.0 ) ) );
71  }
72  if ( model == 4 ) {
73  // Quark model (Melikhov et al - hep-ph/9711362)
74  fp = 0.36 / ( 1. - 0.048 * t + 0.00063 * t * t );
75  double fm = -0.30 / ( 1. - 0.050 * t + 0.00061 * t * t );
76  f0 = fp + fm * ( t / ( m * m - md * md ) );
77  ft = -( m + md ) * 0.06 / ( 1 - 0.049 * t + 0.00064 * t * t );
78  }
79  if ( model == 5 ) {
80  fp = 0.341 / ( 1. - 1.41 * shat + 0.406 * shat * shat );
81  f0 = 0.341 / ( 1. - 0.41 * shat - 0.361 * shat * shat );
82  ft = 0.374 / ( 1. - 1.42 * shat + 0.434 * shat * shat );
83  }
84  if ( model == 6 ) {
85  // Ball-Zwicky LCSR '05 "set 2" (mb = 4.8)
86  fp = ( 0.1616 / ( 1. - ( t / 29.30 ) ) ) +
87  ( 0.1730 / ( 1. - ( t / 29.30 ) ) / ( 1. - ( t / 29.30 ) ) );
88  f0 = ( 0.3302 / ( 1. - ( t / 37.46 / 37.46 ) ) );
89  ft = ( 0.1614 / ( 1. - ( t / 29.30 ) ) ) +
90  ( 0.1981 / ( 1. - ( t / 29.30 ) ) / ( 1. - ( t / 29.30 ) ) );
91  }
92  if ( model == 7 ) {
93  // Ball-Zwicky LCSR '05 "set 4" (mb = 4.6)
94  fp = ( 0.1903 / ( 1. - ( t / 29.30 ) ) ) +
95  ( 0.1478 / ( 1. - ( t / 29.30 ) ) / ( 1. - ( t / 29.30 ) ) );
96  f0 = ( 0.3338 / ( 1. - ( t / 38.98 / 38.98 ) ) );
97  ft = ( 0.1851 / ( 1. - ( t / 29.30 ) ) ) +
98  ( 0.1905 / ( 1. - ( t / 29.30 ) ) / ( 1. - ( t / 29.30 ) ) );
99  }
100  } else if ( daught == EvtPDL::getId( std::string( "pi+" ) ) ||
101  daught == EvtPDL::getId( std::string( "pi-" ) ) ||
102  daught == EvtPDL::getId( std::string( "pi0" ) ) ) {
103  if ( model == 1 ) {
104  // B --> pi form factors from Ball-Zwicky'01 (tabulated in hep-ph/0306251)
105  fp = 0.261 / ( 1. - 2.03 * shat + 1.293 * shat * shat );
106  f0 = 0.261 / ( 1. - 0.27 * shat - 0.752 * shat * shat );
107  ft = 0.296 / ( 1. - 1.28 * shat + 0.193 * shat * shat );
108  }
109 
110  // The following two (2) and (3) should preferably be replaced with
111  // something better. ft not provided by the papers, and the ft formula
112  // (from Colangelo'96 (hep-ph/9510403v2) equation (5.1)) seem to be no good.
113  // if (model == 2) {
114  // // LatticeQCD: Okamoto'04
115  // // ... with f_T from eq. (5.1) of Colangelo'95
116  // fp = 0.23/((1.-shat)*(1.-0.63*shat));
117  // f0 = 0.23/((1.-shat)/1.18);
118  // ft = ( -(m+md)/(2*m) )/ (fp - (m*m-md*md) * ((f0-fp)/t) );
119  // }
120  // if (model == 3) {
121  // // LatticeQCD: Shigemitsu'04
122  // // ... with f_T from eq. (5.1) of Colangelo'95
123  // fp = 0.42*(1.0-0.41)/((1.-shat)*(1.-0.63*shat));
124  // f0 = 0.42*(1.0-0.41)/((1.-shat)/1.18);
125  // ft = ( -(m+md)/(2*m) )/ (fp - (m*m-md*md) * ((f0-fp)/t) );
126  // }
127 
128  if ( model == 4 ) {
129  // Quark model - B -> pi set 1 (Melikhov-Nikitin'96)
130  fp = 0.29 / pow( ( 1. - t / ( 6.48 * 6.48 ) ), 2.54 );
131  double fm = -0.26 / pow( ( 1. - t / ( 6.34 * 6.34 ) ), 2.49 );
132  f0 = fp + fm * ( t / ( m * m - md * md ) );
133  ft = -( m + md ) * 0.05 / pow( ( 1. - t / ( 6.47 * 6.47 ) ), 2.50 );
134  }
135  if ( model == 5 ) {
136  // Melikhov-Stech '00. (hep-ph/0001113)
137  // relativistic dispersion approach based on constituent quark picture
138  fp = 0.29 / ( ( 1. - shat ) * ( 1. - 0.48 * shat ) );
139  f0 = 0.29 / ( 1. - 0.76 * shat + 0.28 * shat * shat );
140  ft = 0.28 / ( ( 1. - shat ) * ( 1. - 0.48 * shat ) );
141  }
142  if ( model == 6 ) {
143  // Ball-Zwicky LCSR '05 "set 2" (mb = 4.8)
144  fp = ( 0.744 / ( 1. - ( t / ( 5.32 * 5.32 ) ) ) ) +
145  ( -0.486 / ( 1. - ( t / 40.73 ) ) );
146  f0 = ( 0.258 / ( 1. - ( t / 33.81 ) ) );
147  ft = ( 1.387 / ( 1. - ( t / ( 5.32 * 5.32 ) ) ) ) +
148  ( -1.134 / ( 1. - ( t / 32.22 ) ) );
149  }
150  if ( model == 7 ) {
151  // Ball-Zwicky LCSR '05 "set 4" (mb = 4.6)
152  fp = ( 0.944 / ( 1. - ( t / ( 5.32 * 5.32 ) ) ) ) +
153  ( -0.669 / ( 1. - ( t / 34.27 ) ) );
154  f0 = ( 0.270 / ( 1. - ( t / 33.63 ) ) );
155  ft = ( 0.152 / ( 1. - ( t / ( 5.32 * 5.32 ) ) ) ) +
156  ( 0.122 / ( 1. - ( t / 28.40 ) ) / ( 1. - ( t / 28.40 ) ) );
157  }
158  } else if ( daught == EvtPDL::getId( std::string( "eta" ) ) ||
159  daught == EvtPDL::getId( std::string( "eta'" ) ) ) {
160  if ( model == 1 ) {
161  // B --> eta form factors
162  fp = 0.261 / ( 1. - 2.03 * shat + 1.293 * shat * shat );
163  f0 = 0.261 / ( 1. - 0.27 * shat - 0.752 * shat * shat );
164  ft = 0.296 / ( 1. - 1.28 * shat + 0.193 * shat * shat );
165  }
166  if ( model == 6 ) {
167  // Ball-Zwicky LCSR '05 "set 2" (mb = 4.8)
168  fp = ( 0.1220 / ( 1. - ( t / 28.40 ) ) ) +
169  ( 0.1553 / ( 1. - ( t / 28.40 ) ) / ( 1. - ( t / 28.40 ) ) );
170  f0 = ( 0.2734 / ( 1. - ( t / 31.03 / 31.03 ) ) );
171  ft = ( 0.1108 / ( 1. - ( t / 28.40 ) ) ) +
172  ( 0.1752 / ( 1. - ( t / 28.40 ) ) / ( 1. - ( t / 28.40 ) ) );
173  }
174  if ( model == 7 ) {
175  // Ball-Zwicky LCSR '05 "set 2" (mb = 4.8)
176  fp = ( 0.1380 / ( 1. - ( t / 28.40 ) ) ) +
177  ( 0.1462 / ( 1. - ( t / 28.40 ) ) / ( 1. - ( t / 28.40 ) ) );
178  f0 = ( 0.2799 / ( 1. - ( t / 30.46 / 30.46 ) ) );
179  ft = ( 0.1160 / ( 1. - ( t / 28.40 ) ) ) +
180  ( 0.1841 / ( 1. - ( t / 28.40 ) ) / ( 1. - ( t / 28.40 ) ) );
181  }
182  }
183 
184  // cout << "shat "<<shat<<"\t"<<"fp "<<fp<<"\t"<<"f0 "<<f0<<"\t"
185  // <<"ft "<<ft<<endl;
186 }
187 
188 void EvtbTosllBallFF::getVectorFF( EvtId parent, EvtId daught, double t,
189  double /*mass*/, double& a1, double& a2,
190  double& a0, double& v, double& t1,
191  double& t2, double& t3 )
192 {
193  int model = _theFFModel;
194 
195  double m = EvtPDL::getMeanMass( parent );
196  double md = EvtPDL::getMeanMass( daught );
197 
198  double shat = t / ( m * m );
199  double shat2 = shat * shat;
200 
201  if (
202  // B_s decay form factors
203  parent == EvtPDL::getId( std::string( "B_s0" ) ) ||
204  parent == EvtPDL::getId( std::string( "anti-B_s0" ) ) ) {
205  if (
206  // B_s --> K* form factors
207  daught == EvtPDL::getId( std::string( "K*0" ) ) ||
208  daught == EvtPDL::getId( std::string( "anti-K*0" ) ) ) {
209  if ( model == 6 ) {
210  // Ball-Zwicky LCSR '05 (mb = 4.8)
211  a1 = 0.231 / ( 1. - ( t / 32.94 ) );
212  a2 = ( -0.011 / ( 1. - ( t / 40.14 ) ) ) +
213  ( 0.192 / ( 1. - ( t / 40.14 ) ) / ( 1. - ( t / 40.14 ) ) );
214  a0 = ( 2.813 / ( 1. - ( t / ( 5.37 * 5.37 ) ) ) ) +
215  ( -2.509 / ( 1. - ( t / 31.58 ) ) );
216  v = ( 2.351 / ( 1. - ( t / ( 5.42 * 5.42 ) ) ) ) +
217  ( -2.039 / ( 1. - ( t / 33.10 ) ) );
218  t1 = ( 2.047 / ( 1. - ( t / ( 5.42 * 5.42 ) ) ) ) +
219  ( -1.787 / ( 1 - ( t / 32.83 ) ) );
220  t2 = 0.260 / ( 1. - ( t / 33.01 ) );
221  double t3tilde = ( 0.043 / ( 1. - ( t / 39.38 ) ) ) +
222  ( 0.217 / ( 1. - ( t / 39.38 ) ) /
223  ( 1. - ( t / 39.38 ) ) );
224  t3 = 0.0;
225  if ( fabs( t ) > 1e-10 ) {
226  t3 = ( m * m - md * md ) * ( t3tilde - t2 ) / t;
227  }
228  }
229  }
230 
231  else if (
232  // B_s --> phi form factors
233  daught == EvtPDL::getId( std::string( "phi" ) ) ) {
234  if ( model == 6 ) {
235  // Ball-Zwicky LCSR '05 (mb = 4.8)
236  a1 = 0.308 / ( 1. - ( t / 36.54 ) );
237  a2 = ( -0.054 / ( 1. - ( t / 48.94 ) ) ) +
238  ( 0.288 / ( 1. - ( t / 48.94 ) ) / ( 1. - ( t / 48.94 ) ) );
239  a0 = ( 3.310 / ( 1. - ( t / ( 5.28 * 5.28 ) ) ) ) +
240  ( -2.835 / ( 1. - ( t / 31.57 ) ) );
241  v = ( 1.484 / ( 1. - ( t / ( 5.32 * 5.32 ) ) ) ) +
242  ( -1.049 / ( 1. - ( t / 39.52 ) ) );
243  t1 = ( 1.303 / ( 1. - ( t / ( 5.32 * 5.32 ) ) ) ) +
244  ( -0.954 / ( 1 - ( t / 38.28 ) ) );
245  t2 = 0.348 /
246  ( 1. - ( t / 37.21 ) ); //0.349 caused a pole in T3 for q2 -> 0. 0.348 has correct behaviour
247  double t3tilde = ( 0.027 / ( 1. - ( t / 45.56 ) ) ) +
248  ( 0.321 / ( 1. - ( t / 45.56 ) ) /
249  ( 1. - ( t / 45.56 ) ) );
250  t3 = 0.0;
251  if ( fabs( t ) > 1e-10 ) {
252  t3 = ( m * m - md * md ) * ( t3tilde - t2 ) / t;
253  }
254  }
255  }
256  } else if ( daught == EvtPDL::getId( std::string( "K*+" ) ) ||
257  daught == EvtPDL::getId( std::string( "K*-" ) ) ||
258  daught == EvtPDL::getId( std::string( "K*0" ) ) ||
259  daught == EvtPDL::getId( std::string( "anti-K*0" ) ) ||
260  daught == EvtPDL::getId( std::string( "K_1+" ) ) ||
261  daught == EvtPDL::getId( std::string( "K_1-" ) )
262 
263  ) {
264  if ( model == 1 ) {
265  //this is Ali-Ball '01
266  a1 = 0.294 * exp( 0.656 * shat + 0.456 * shat2 );
267  a2 = 0.246 * exp( 1.237 * shat + 0.822 * shat2 );
268  a0 = 0.412 * exp( 1.543 * shat + 0.954 * shat2 );
269  v = 0.399 * exp( 1.537 * shat + 1.123 * shat2 );
270 
271  t1 = 0.334 * exp( 1.575 * shat + 1.140 * shat2 );
272  t2 = 0.334 * exp( 0.562 * shat + 0.481 * shat2 );
273  t3 = 0.234 * exp( 1.230 * shat + 1.089 * shat2 );
274  }
275  if ( model == 2 ) {
276  //this is Ali-Ball '99
277  a1 = 0.337 * exp( 0.602 * shat + 0.258 * shat2 );
278  a2 = 0.282 * exp( 1.172 * shat + 0.567 * shat2 );
279  a0 = 0.471 * exp( 1.505 * shat + 0.710 * shat2 );
280  v = 0.457 * exp( 1.482 * shat + 1.015 * shat2 );
281 
282  t1 = 0.379 * exp( 1.519 * shat + 1.030 * shat2 );
283  t2 = 0.379 * exp( 0.517 * shat + 0.426 * shat2 );
284  t3 = 0.260 * exp( 1.129 * shat + 1.128 * shat2 );
285  }
286  if ( model == 3 ) {
287  //QCD sum rules (Colangelo et al)
288  // JJH - Changed in accordance with erratum (Phys. Rev. D 57, 3186 (1998))
289  a1 = 0.37 * ( 1 - 0.023 * t );
290  a2 = 0.40 * ( 1 + 0.034 * t );
291  a0 = 0.3 / ( 1. - t / ( 4.8 * 4.8 ) );
292  v = 0.47 / ( 1. - t / ( 5.0 * 5.0 ) );
293 
294  t1 = 0.19 / ( 1. - t / ( 5.3 * 5.3 ) );
295  t2 = 0.19 * ( 1. - 0.02 * t );
296  t3 = 0.3 * ( 1. + 0.01 * t );
297  }
298 
299  if ( model == 4 ) {
300  // Quark model (Melikhov et al)
301  a1 = 1.6 / ( 1 - 0.0288 * t + 0.00028 * t * t );
302  a1 = a1 / ( m + md );
303  a2 = ( m + md ) * 0.036 / ( 1. - 0.053 * t + 0.00082 * t * t );
304  double aminus = 0.041 / ( 1. - 0.055 * t + 0.00088 * t * t );
305  double f = 1.60 / ( 1. - 0.0288 * t + 0.00028 * t * t );
306  double aplus = -0.036 / ( 1. - 0.053 * t + 0.00082 * t * t );
307  a0 = ( t * aminus + f + ( m * m - md * md ) * aplus ) / ( 2.0 * md );
308  v = ( m + md ) * 0.048 / ( 1. - 0.057 * t + 0.00085 * t * t );
309 
310  t1 = 0.28 / ( 1. - 0.058 * t + 0.0009 * t * t );
311  double gplus = -0.28 / ( 1. - 0.058 * t + 0.0009 * t * t );
312  double gminus = 0.24 / ( 1. - 0.059 * t + 0.00096 * t * t );
313  t2 = -gplus - ( t * gminus ) / ( m * m - md * md );
314  double h = 0.0037 / ( 1. - 0.075 * t + 0.0016 * t * t );
315  t3 = ( m + md ) * ( m + md ) *
316  ( ( gminus / ( m * m - md * md ) - h / 2. ) );
317  }
318  if ( model == 5 ) {
319  a1 = 0.337 / ( 1. - 0.60 * shat - 0.023 * shat * shat );
320  a2 = 0.283 / ( 1. - 1.18 * shat + 0.281 * shat * shat );
321  a0 = 0.470 / ( 1. - 1.55 * shat + 0.680 * shat * shat );
322  v = 0.458 / ( 1. - 1.55 * shat + 0.575 * shat * shat );
323  t1 = 0.379 / ( 1. - 1.59 * shat + 0.615 * shat * shat );
324  t2 = 0.379 / ( 1. - 0.49 * shat - 0.241 * shat * shat );
325  t3 = 0.261 / ( 1. - 1.20 * shat + 0.098 * shat * shat );
326  }
327  if ( model == 6 ) {
328  // Ball-Zwicky LCSR '05 (mb = 4.8)
329  a1 = 0.290 / ( 1. - ( t / 40.38 ) );
330  a2 = ( -0.084 / ( 1. - ( t / 52.00 ) ) ) +
331  ( 0.342 / ( 1. - ( t / 52.00 ) ) / ( 1. - ( t / 52.00 ) ) );
332  a0 = ( 1.364 / ( 1. - ( t / ( 5.28 * 5.28 ) ) ) ) +
333  ( -0.990 / ( 1. - ( t / 36.78 ) ) );
334  v = ( 0.923 / ( 1. - ( t / ( 5.32 * 5.32 ) ) ) ) +
335  ( -0.511 / ( 1. - ( t / 49.40 ) ) );
336  t1 = ( 0.823 / ( 1. - ( t / ( 5.32 * 5.32 ) ) ) ) +
337  ( -0.491 / ( 1 - ( t / 46.31 ) ) );
338  t2 = 0.332 /
339  ( 1. - ( t / 41.41 ) ); //0.333 caused a pole in T3 for q2 -> 0. 0.332 has correct behaviour
340  double t3tilde = ( -0.036 / ( 1. - ( t / 48.10 ) ) ) +
341  ( 0.368 / ( 1. - ( t / 48.10 ) ) /
342  ( 1. - ( t / 48.10 ) ) );
343  t3 = 0.0;
344  if ( fabs( t ) > 1e-10 ) {
345  t3 = ( m * m - md * md ) * ( t3tilde - t2 ) / t;
346  }
347  }
348  if ( model == 8 ) {
349  // Khodjamirian et al. LCSR '10
350  double taup = ( 5.280 + 0.892 ) * ( 5.280 + 0.892 );
351  double taum = ( 5.280 - 0.892 ) * ( 5.280 - 0.892 );
352  double tau0 = taup - ( sqrt( taup - taum ) * sqrt( taup ) );
353  double z = ( sqrt( taup - t ) - sqrt( taup - tau0 ) ) /
354  ( sqrt( taup - t ) + sqrt( taup - tau0 ) );
355  double z0 = ( sqrt( taup ) - sqrt( taup - tau0 ) ) /
356  ( sqrt( taup ) + sqrt( taup - tau0 ) );
357  a1 = ( 0.25 / ( 1 - ( t / ( 5.829 * 5.829 ) ) ) ) *
358  ( 1 + 0.34 * ( z - z0 + 0.5 * ( ( z * z ) - ( z0 * z0 ) ) ) );
359  a2 = ( 0.23 / ( 1 - ( t / ( 5.829 * 5.829 ) ) ) ) *
360  ( 1 +
361  ( -0.85 ) * ( z - z0 + 0.5 * ( ( z * z ) - ( z0 * z0 ) ) ) );
362  a0 = ( 0.29 / ( 1 - ( t / ( 5.366 * 5.366 ) ) ) ) *
363  ( 1 +
364  ( -18.2 ) * ( z - z0 + 0.5 * ( ( z * z ) - ( z0 * z0 ) ) ) );
365  v = ( 0.36 / ( 1 - ( t / ( 5.412 * 5.412 ) ) ) ) *
366  ( 1 + ( -4.8 ) * ( z - z0 + 0.5 * ( ( z * z ) - ( z0 * z0 ) ) ) );
367  t1 = ( 0.31 / ( 1 - ( t / ( 5.412 * 5.412 ) ) ) ) *
368  ( 1 + ( -4.6 ) * ( z - z0 + 0.5 * ( ( z * z ) - ( z0 * z0 ) ) ) );
369  t2 = ( 0.31 / ( 1 - ( t / ( 5.829 * 5.829 ) ) ) ) *
370  ( 1 + ( -3.2 ) * ( z - z0 + 0.5 * ( ( z * z ) - ( z0 * z0 ) ) ) );
371  t3 = ( 0.22 / ( 1 - ( t / ( 5.829 * 5.829 ) ) ) ) *
372  ( 1 +
373  ( -10.3 ) * ( z - z0 + 0.5 * ( ( z * z ) - ( z0 * z0 ) ) ) );
374  }
375  } else if ( daught == EvtPDL::getId( std::string( "rho+" ) ) ||
376  daught == EvtPDL::getId( std::string( "rho-" ) ) ||
377  daught == EvtPDL::getId( std::string( "rho0" ) ) ) {
378  if ( model == 1 ) {
379  // B --> rho form factors
380  a1 = 0.261 / ( 1. - 0.29 * shat - 0.415 * shat * shat );
381  a2 = 0.223 / ( 1. - 0.93 * shat - 0.092 * shat * shat );
382  a0 = 0.372 / ( 1. - 1.40 * shat + 0.437 * shat * shat );
383  v = 0.338 / ( 1. - 1.37 * shat + 0.315 * shat * shat );
384  t1 = 0.285 / ( 1. - 1.41 * shat + 0.361 * shat * shat );
385  t2 = 0.285 / ( 1. - 0.28 * shat - 0.500 * shat * shat );
386  t3 = 0.202 / ( 1. - 1.06 * shat - 0.076 * shat * shat );
387  }
388  if ( model == 6 ) {
389  // Ball-Zwicky LCSR '05 (mb = 4.8)
390  a1 = 0.240 / ( 1. - ( t / 37.51 ) );
391  a2 = ( 0.009 / ( 1. - ( t / 40.82 ) ) ) +
392  ( 0.212 / ( 1. - ( t / 40.82 ) ) / ( 1. - ( t / 40.82 ) ) );
393  a0 = ( 1.527 / ( 1. - ( t / ( 5.28 * 5.28 ) ) ) ) +
394  ( -1.220 / ( 1. - ( t / 33.36 ) ) );
395  v = ( 1.045 / ( 1. - ( t / ( 5.32 * 5.32 ) ) ) ) +
396  ( -0.721 / ( 1. - ( t / 38.34 ) ) );
397  t1 = ( 0.897 / ( 1. - ( t / ( 5.32 * 5.32 ) ) ) ) +
398  ( -0.629 / ( 1 - ( t / 38.04 ) ) );
399  t2 = 0.268 /
400  ( 1. - ( t / 38.59 ) ); // 0.267 caused pole in T3 for q2 -> 0. 0.268 has correct behaviour
401  double t3tilde = ( 0.022 / ( 1. - ( t / 40.88 ) ) ) +
402  ( 0.246 / ( 1. - ( t / 40.88 ) ) /
403  ( 1. - ( t / 40.88 ) ) );
404  t3 = 0.0;
405  if ( fabs( t ) > 1e-10 ) {
406  t3 = ( m * m - md * md ) * ( t3tilde - t2 ) / t;
407  }
408  }
409  } else if ( daught == EvtPDL::getId( std::string( "omega" ) ) ) {
410  if ( model == 1 ) {
411  // B --> rho form factors
412  a1 = 0.261 / ( 1. - 0.29 * shat - 0.415 * shat * shat );
413  a2 = 0.223 / ( 1. - 0.93 * shat - 0.092 * shat * shat );
414  a0 = 0.372 / ( 1. - 1.40 * shat + 0.437 * shat * shat );
415  v = 0.338 / ( 1. - 1.37 * shat + 0.315 * shat * shat );
416  t1 = 0.285 / ( 1. - 1.41 * shat + 0.361 * shat * shat );
417  t2 = 0.285 / ( 1. - 0.28 * shat - 0.500 * shat * shat );
418  t3 = 0.202 / ( 1. - 1.06 * shat - 0.076 * shat * shat );
419  }
420  if ( model == 6 ) {
421  // Ball-Zwicky LCSR '05 (mb = 4.8)
422  a1 = -0.217 / ( 1. - ( t / 37.01 ) );
423  a2 = ( 0.006 / ( 1. - ( t / 41.24 ) ) ) +
424  ( 0.192 / ( 1. - ( t / 41.24 ) ) / ( 1. - ( t / 41.24 ) ) );
425  a0 = ( 1.321 / ( 1. - ( t / ( 5.28 * 5.28 ) ) ) ) +
426  ( -1.040 / ( 1. - ( t / 34.47 ) ) );
427  v = ( 1.006 / ( 1. - ( t / ( 5.32 * 5.32 ) ) ) ) +
428  ( -0.713 / ( 1. - ( t / 37.45 ) ) );
429  t1 = ( 0.865 / ( 1. - ( t / ( 5.32 * 5.32 ) ) ) ) +
430  ( -0.622 / ( 1 - ( t / 37.19 ) ) );
431  t2 = 0.243 /
432  ( 1. - ( t / 37.95 ) ); // 0.242 caused pole in T3 for q2 -> 0. 0.243 has correct behaviour
433  double t3tilde = ( 0.023 / ( 1. - ( t / 40.87 ) ) ) +
434  ( 0.220 / ( 1. - ( t / 40.87 ) ) /
435  ( 1. - ( t / 40.87 ) ) );
436  t3 = 0.0;
437  if ( fabs( t ) > 1e-10 ) {
438  t3 = ( m * m - md * md ) * ( t3tilde - t2 ) / t;
439  }
440  }
441  }
442 }
const double a2
static double getMeanMass(EvtId i)
Definition: EvtPDL.cpp:314
const double a1
Definition: EvtId.hh:27
void getVectorFF(EvtId parent, EvtId daught, double t, double mass, double &a1, double &a2, double &a0, double &v, double &t1, double &t2, double &t3) override
static EvtId getId(const std::string &name)
Definition: EvtPDL.cpp:287
EvtComplex exp(const EvtComplex &c)
Definition: EvtComplex.hh:240
void getScalarFF(EvtId parent, EvtId daught, double t, double mass, double &fp, double &f0, double &ft) override