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