Belle II Software development
EvtBSemiTauonicHelicityAmplitudeCalculator.cc
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#include <cassert>
10#include <cmath>
11#include <string>
12#include "framework/logging/Logger.h"
13#include "generators/evtgen/models/EvtBSemiTauonicHelicityAmplitudeCalculator.h"
14
15namespace Belle2 {
23 m_CV1(0), m_CV2(0), m_CS1(0), m_CS2(0), m_CT(0)
24 {
25 m_mB = 5.279; // value used in PRD87,034028
26 m_mD = 1.866; // value used in PRD87,034028
27 m_mDst = 2.009; // value used in PRD87,034028
28
29 m_rho12 = 1.186; // HFAG end of year 2011
30 m_rhoA12 = 1.207; // HFAG end of year 2011
31
32 m_ffR11 = 1.403; // HFAG end of year 2011
33 m_ffR21 = 0.854; // HFAG end of year 2011
34
35 m_aS1 = 1.;
36 m_aR3 = 1.;
37
38 m_mBottom = 4.20; // PRD77,113016
39 m_mCharm = 0.901; // PRD77,113016 running mass at m_b scale
40
41 B2INFO("EvtBSemiTauonicHelicityAmplitudeCalculator initialized with the default values.");
42 B2INFO("rho_1^2 : " << m_rho12);
43 B2INFO("rho_A1^22 : " << m_rhoA12);
44 B2INFO("R_1(1) : " << m_ffR11);
45 B2INFO("R_2(1) : " << m_ffR21);
46 B2INFO("a_S1: " << m_aS1);
47 B2INFO("a_R3: " << m_aR3);
48 B2INFO("bottom quark mass: " << m_mBottom);
49 B2INFO("charm quark mass: " << m_mCharm);
50 B2INFO("CV1 : " << m_CV1);
51 B2INFO("CV2 : " << m_CV2);
52 B2INFO("CS1 : " << m_CS1);
53 B2INFO("CS2 : " << m_CS2);
54 B2INFO("CT : " << m_CT);
55 B2INFO("B meson mass: " << m_mB);
56 B2INFO("D meson mass: " << m_mD);
57 B2INFO("D* meson mass: " << m_mDst);
58 }
59
61 const double ffR11, const double ffR21, const double aS1, const double aR3,
62 const double bottomMass, const double charmMass,
63 const EvtComplex& CV1, const EvtComplex& CV2, const EvtComplex& CS1, const EvtComplex& CS2, const EvtComplex& CT,
64 const double parentMass, const double DMass, const double DstarMass):
65 m_CV1(CV1), m_CV2(CV2), m_CS1(CS1), m_CS2(CS2), m_CT(CT)
66 {
67 m_mB = parentMass;
68 m_mD = DMass;
69 m_mDst = DstarMass;
70 m_mBottom = bottomMass;
71 m_mCharm = charmMass;
72
73 m_rho12 = rho12;
74 m_rhoA12 = rhoA12;
75
76 m_ffR11 = ffR11;
77 m_ffR21 = ffR21;
78
79 m_aS1 = aS1;
80 m_aR3 = aR3;
81
82 B2INFO("EvtBSemiTauonicHelicityAmplitudeCalculator initialized.");
83 B2INFO("rho_1^2 : " << rho12);
84 B2INFO("rho_A1^2 : " << rhoA12);
85 B2INFO("R_1(1) : " << ffR11);
86 B2INFO("R_2(1) : " << ffR21);
87 B2INFO("a_S1: " << m_aS1);
88 B2INFO("a_R3: " << m_aR3);
89 B2INFO("bottom quark mass: " << m_mBottom);
90 B2INFO("charm quark mass: " << m_mCharm);
91 B2INFO("CV1 : " << m_CV1);
92 B2INFO("CV2 : " << m_CV2);
93 B2INFO("CS1 : " << m_CS1);
94 B2INFO("CS2 : " << m_CS2);
95 B2INFO("CT : " << m_CT);
96 B2INFO("Parent meson mass: " << m_mB);
97 B2INFO("D meson mass: " << m_mD);
98 B2INFO("D* meson mass: " << m_mDst);
99 }
100
101// Total amplitude
102 EvtComplex EvtBSemiTauonicHelicityAmplitudeCalculator::helAmp(double mtau, int tauhel, int Dhel, double w, double costau) const
103 {
104 return helAmp(m_CV1, m_CV2, m_CS1, m_CS2, m_CT,
105 mtau, tauhel, Dhel, w, costau);
106 }
107
108// Total amplitude
109 EvtComplex EvtBSemiTauonicHelicityAmplitudeCalculator::helAmp(const EvtComplex& CV1, const EvtComplex& CV2, const EvtComplex& CS1,
110 const EvtComplex& CS2, const EvtComplex& CT,
111 double mtau, int tauhel, int Dhel, double w, double costau) const
112 {
113 // sanity check
114 assert(chktauhel(tauhel) && chkDhel(Dhel));
115
116 return //(GF/sqrt(2))*Vcb* // <-- constants which does not affect the distribution omitted
117 (1.*helampSM(mtau, tauhel, Dhel, w, costau)
118 + CV1 * helampV1(mtau, tauhel, Dhel, w, costau)
119 + CV2 * helampV2(mtau, tauhel, Dhel, w, costau)
120 + CS1 * helampS1(mtau, tauhel, Dhel, w, costau)
121 + CS2 * helampS2(mtau, tauhel, Dhel, w, costau)
122 + CT * helampT(mtau, tauhel, Dhel, w, costau));
123 }
124
125// Leptonic Amplitudes //
126
127// vector
128 double EvtBSemiTauonicHelicityAmplitudeCalculator::Lep(const double mtau, int tauhel,
129 int whel,
130 double q2, double costau) const
131 {
132 // sanity check
133 assert(chktauhel(tauhel) && chkwhel(whel));
134
135 if (tauhel == -1 && whel == -1)return sqrt(2.*q2) * v(mtau, q2) * (1. - costau);
136 if (tauhel == -1 && whel == 0) return -2.*sqrt(q2) * v(mtau, q2) * sqrt(1 - costau * costau);
137 if (tauhel == -1 && whel == +1)return sqrt(2.*q2) * v(mtau, q2) * (1. + costau);
138 if (tauhel == -1 && whel == 2) return 0.;
139
140 if (tauhel == +1 && whel == -1)return -sqrt(2.) * mtau * v(mtau, q2) * sqrt(1. - costau * costau);
141 if (tauhel == +1 && whel == 0) return 2.*mtau * v(mtau, q2) * costau;
142 if (tauhel == +1 && whel == +1)return sqrt(2.) * mtau * v(mtau, q2) * sqrt(1 - costau * costau);
143 if (tauhel == +1 && whel == 2) return -2.*mtau * v(mtau, q2);
144
145 // should never reach here ...
146 assert(0);
147 return 0.;
148 }
149
150// Scalar
151 double EvtBSemiTauonicHelicityAmplitudeCalculator::Lep(const double mtau, int tauhel,
152 double q2, double /*costau*/) const
153 {
154 // sanity check
155 assert(chktauhel(tauhel));
156
157 if (tauhel == -1)return 0.;
158 if (tauhel == +1)return -2.*sqrt(q2) * v(mtau, q2);
159
160 // should never reach here ...
161 assert(0);
162 return 0.;
163 }
164
165// Tensor
166 double EvtBSemiTauonicHelicityAmplitudeCalculator::Lep(const double mtau, int tauhel,
167 int whel1, int whel2,
168 double q2, double costau) const
169 {
170 // sanity check
171 assert(chktauhel(tauhel) && chkwhel(whel1) && chkwhel(whel2));
172
173 if (whel1 == whel2)return 0;
174 if (whel1 > whel2)return -Lep(mtau, tauhel, whel2, whel1, q2, costau);
175
176 if (tauhel == -1 && whel1 == -1 && whel2 == 0) return -sqrt(2.) * mtau * v(mtau, q2) * (1. - costau);
177 if (tauhel == -1 && whel1 == -1 && whel2 == +1) return 2 * mtau * v(mtau, q2) * sqrt(1. - costau * costau);
178 if (tauhel == -1 && whel1 == -1 && whel2 == 2) return Lep(mtau, -1, -1, 0, q2, costau);
179 if (tauhel == -1 && whel1 == 0 && whel2 == +1) return -sqrt(2.) * mtau * v(mtau, q2) * (1. + costau);
180 if (tauhel == -1 && whel1 == 0 && whel2 == 2) return Lep(mtau, -1, -1, +1, q2, costau);
181 if (tauhel == -1 && whel1 == +1 && whel2 == 2) return Lep(mtau, -1, 0, +1, q2, costau);
182
183 if (tauhel == +1 && whel1 == -1 && whel2 == 0) return sqrt(2.*q2) * v(mtau, q2) * sqrt(1. - costau * costau);
184 if (tauhel == +1 && whel1 == -1 && whel2 == +1) return -2.*sqrt(q2) * v(mtau, q2) * costau;
185 if (tauhel == +1 && whel1 == -1 && whel2 == 2) return Lep(mtau, +1, -1, 0, q2, costau);
186 if (tauhel == +1 && whel1 == 0 && whel2 == +1) return -Lep(mtau, +1, -1, 0, q2, costau);
187 if (tauhel == +1 && whel1 == 0 && whel2 == 2) return Lep(mtau, +1, -1, +1, q2, costau);
188 if (tauhel == +1 && whel1 == +1 && whel2 == 2) return -Lep(mtau, +1, -1, 0, q2, costau);
189
190 // should never reach here ...
191 assert(0);
192 return 0.;
193 }
194
195// Hadronic Amplitudes //
196
197// V-A
198 double EvtBSemiTauonicHelicityAmplitudeCalculator::HadV1(int Dhel, int whel, double w) const
199 {
200 // sanity check
201 assert(chkDhel(Dhel) && chkwhel(whel));
202
203 const double r0 = r(Dhel);
204 if (Dhel == 2 && whel == 0) {
205 return m_mB * sqrt(r0 * (w * w - 1.) / qh2(2, w)) * ((1 + r0) * hp(w) - (1 - r0) * hm(w));
206 }
207 if (Dhel == 2 && whel == 2) {
208 return m_mB * sqrt(r0 / qh2(2, w)) * ((1 - r0) * (w + 1) * hp(w) - (1 + r0) * (w - 1) * hm(w));
209 }
210 if (Dhel == +1 && whel == +1) {
211 return m_mB * sqrt(r0) * ((w + 1) * hA1(w) - sqrt(w * w - 1) * hV(w));
212 }
213 if (Dhel == -1 && whel == -1) {
214 return m_mB * sqrt(r0) * ((w + 1) * hA1(w) + sqrt(w * w - 1) * hV(w));
215 }
216 if (Dhel == 0 && whel == 0) {
217 return m_mB * sqrt(r0 / qh2(0, w)) * (w + 1) *
218 (-(w - r0) * hA1(w) + (w - 1) * (r0 * hA2(w) + hA3(w)));
219 }
220 if (Dhel == 0 && whel == 2) {
221 return m_mB * sqrt(r0 * (w * w - 1) / qh2(0, w)) * (-(w + 1) * hA1(w) + (1 - r0 * w) * hA2(w) + (w - r0) * hA3(w));
222 }
223
224 // other cases
225 return 0.;
226
227 }
228
229// V+A
230 double EvtBSemiTauonicHelicityAmplitudeCalculator::HadV2(int Dhel, int whel, double w) const
231 {
232 // sanity check
233 assert(chkDhel(Dhel) && chkwhel(whel));
234
235 if (Dhel == 2) return HadV1(2, whel, w);
236 if (Dhel == +1 && whel == +1)return -HadV1(-1, -1, w);
237 if (Dhel == -1 && whel == -1)return -HadV1(+1, +1, w);
238 if (Dhel == 0) return -HadV1(0, whel, w);
239 return 0;
240 }
241
242//S+P
244 {
245 // sanity check
246 assert(chkDhel(Dhel));
247
248 if (Dhel == 2) return m_mB * sqrt(r(2)) * (w + 1) * hS(w);
249 if (Dhel == 0) return -m_mB * sqrt(r(0)) * sqrt(w * w - 1) * hP(w);
250 return 0.;
251
252 }
253
254// S-P
256 {
257 // sanity check
258 assert(chkDhel(Dhel));
259
260 if (Dhel == 2) return HadS1(2, w);
261 else return -HadS1(Dhel, w);
262 }
263
264// Tensor
265 double EvtBSemiTauonicHelicityAmplitudeCalculator::HadT(int Dhel, int whel1, int whel2, double w) const
266 {
267 // sanity check
268 assert(chkDhel(Dhel) && chkwhel(whel1) && chkwhel(whel2));
269
270 if (whel1 == whel2)return 0.;
271 if (whel1 > whel2)return -HadT(Dhel, whel2, whel1, w);
272
273 const double r0 = r(Dhel);
274 if (Dhel == 2 && whel1 == -1 && whel2 == +1)return m_mB * sqrt(r(2)) * sqrt(w * w - 1) * hT(w);
275 if (Dhel == 2 && whel1 == 0 && whel2 == 2) return -HadT(2, -1, +1, w);
276 if (Dhel == -1 && whel1 == -1 && whel2 == 0)
277 return -m_mB * sqrt(r0 / qh2(-1, w)) * (1 - r0 * (w + sqrt(w * w - 1))) *
278 (hT1(w) + hT2(w) + (w - sqrt(w * w - 1)) * (hT1(w) - hT2(w)));
279 if (Dhel == -1 && whel1 == -1 && whel2 == 2) return -HadT(-1, -1, 0, w);
280 if (Dhel == 0 && whel1 == -1 && whel2 == +1)
281 return m_mB * sqrt(r0) * ((w + 1) * hT1(w) + (w - 1) * hT2(w) + 2 * (w * w - 1) * hT3(w));
282 if (Dhel == 0 && whel1 == 0 && whel2 == 2) return -HadT(0, -1, +1, w);
283 if (Dhel == +1 && whel1 == 0 && whel2 == +1)
284 return -m_mB * sqrt(r0 / qh2(+1, w)) * (1 - r0 * (w - sqrt(w * w - 1))) *
285 (hT1(w) + hT2(w) + (w + sqrt(w * w - 1)) * (hT1(w) - hT2(w)));
286
287 if (Dhel == +1 && whel1 == +1 && whel2 == 2) return -HadT(+1, 0, +1, w);
288
289 // other cases
290 return 0.;
291 }
292
293// Helicity Amplitudes
294// overall factor GF/sqrt(2) Vcb omitted
295// Wilson coefficients cXX ommited
296
297// SM
298 double EvtBSemiTauonicHelicityAmplitudeCalculator::helampSM(double mtau, int tauhel, int Dhel, double w, double costau) const
299 {
300 double amp(0.);
301 for (int whel = -1; whel <= 2; whel++) {
302 amp += eta(whel) * Lep(mtau, tauhel, whel, q2(Dhel, w), costau)
303 * HadV1(Dhel, whel, w);
304 }
305 return amp;
306 }
307
308// V-A
309 double EvtBSemiTauonicHelicityAmplitudeCalculator::helampV1(double mtau, int tauhel, int Dhel, double w, double costau) const
310 {
311 return helampSM(mtau, tauhel, Dhel, w, costau);
312 }
313
314// V+A
315 double EvtBSemiTauonicHelicityAmplitudeCalculator::helampV2(double mtau, int tauhel, int Dhel, double w, double costau) const
316 {
317 double amp(0.);
318 for (int whel = -1; whel <= 2; whel++) {
319 amp += eta(whel) * Lep(mtau, tauhel, whel, q2(Dhel, w), costau)
320 * HadV2(Dhel, whel, w);
321 }
322 return amp;
323 }
324
325// S+P
326 double EvtBSemiTauonicHelicityAmplitudeCalculator::helampS1(double mtau, int tauhel, int Dhel, double w, double costau) const
327 {
328 return -Lep(mtau, tauhel, q2(Dhel, w), costau) * HadS1(Dhel, w);
329 }
330
331// S-P
332 double EvtBSemiTauonicHelicityAmplitudeCalculator::helampS2(double mtau, int tauhel, int Dhel, double w, double costau) const
333 {
334 return -Lep(mtau, tauhel, q2(Dhel, w), costau) * HadS2(Dhel, w);
335 }
336
337// Tensor
338 double EvtBSemiTauonicHelicityAmplitudeCalculator::helampT(double mtau, int tauhel, int Dhel, double w, double costau) const
339 {
340 double amp(0.);
341 for (int whel1 = -1; whel1 <= 2; whel1++) {
342 for (int whel2 = -1; whel2 <= 2; whel2++) {
343 amp += -1 * eta(whel1) * eta(whel2) * Lep(mtau, tauhel, whel1, whel2, q2(Dhel, w), costau)
344 * HadT(Dhel, whel1, whel2, w);
345 }
346 }
347 return amp;
348 }
349
350
351// HQET form factors
352
353// Vector and axial-vector form factors in terms of CLN form factors
354// D vector form factor h_+(w)
356 {
357 const double r0 = r(2);
358 return -((1 + r0) * (1 + r0) * (w - 1) * ffV1(w)
359 - (1 - r0) * (1 - r0) * (w + 1) * ffS1(w)) / (2 * qh2(2, w));
360 }
361// D vector form factor h_-(w)
363 {
364 return - (1 - r(2) * r(2)) * (w + 1) * (ffV1(w) - ffS1(w)) / (2 * qh2(2, w));
365 }
366
367// D* axial vector form factor h_{A1}(w)
369 {
370 return ffA1(w);
371 }
372
373// D* axial vector form factor h_V(w)
375 {
376 return ffR1(w) * ffA1(w);
377 }
378
379// D* axial vector form factor h_{A2}(w)
381 {
382 return (ffR2(w) - ffR3(w)) * ffA1(w) / (2 * r(1));
383 }
384
385// D* axial vector form factor h_{A3}(w)
387 {
388 return (ffR2(w) + ffR3(w)) * ffA1(w) / 2;
389 }
390
391// Scalar and pseudo-scalar form factors in terms of V and A form factors
392// D scalar form factor h_S(w)
394 {
395 // M. Tanaka, private communication, without approximating quark masses to the meson mass
396 const double r0 = r(2);
397 return m_mB / m_mBottom * ((1 - r0) / (1 - rq()) * hp(w)
398 - (1 + r0) / (1 - rq()) * (w - 1) / (w + 1) * hm(w));
399
400 // when quark masses are approximated to the meson masses
401 //return ffS1(w);
402 }
403
404// D* pseudo scalar form factor h_P(w)
406 {
407 // M. Tanaka, private communication, without approximating quark masses to the meson mass
408 const double r0 = r(1);
409 return m_mB / m_mBottom * ((w + 1) * hA1(w) - (1 - r0 * w) * hA2(w) - (w - r0) * hA3(w)) / (1 + rq());
410
411 // when quark masses are approximated to the meson masses
412 //return ( (w+1) * hA1(w) - (1-r0*w) * hA2(w) - (w-r0) * hA3(w) ) / (1+r0); // no Lambda/mQ
413 }
414
415// Tensor form factors in terms of V and A form factors
416// D tensor form factor h_T(w)
418 {
419 const double r0 = r(2);
420 return hp(w) - (1 + r0) * hm(w) / (1 - r0);
421 }
422
423// D* tensor form factor h_{T1}(w)
425 {
426 const double r0 = r(1);
427 return -((1 + r0) * (1 + r0) * (w - 1) * hV(w)
428 - (1 - r0) * (1 - r0) * (w + 1) * hA1(w))
429 / (2 * qh2(1, w));
430 }
431
432// D* tensor form factor h_{T2}(w)
434 {
435 const double r0 = r(1);
436 return -(1 - r0 * r0) * (w + 1) * (hV(w) - hA1(w))
437 / (2 * qh2(1, w));
438 }
439
440// D* tensor form factor h_{T3}(w)
442 {
443 const double r0 = r(1);
444 return ((1 + r0) * (1 + r0) * hV(w) - 2 * r0 * (w + 1) * hA1(w)
445 + qh2(1, w) * (r0 * hA2(w) - hA3(w)))
446 / (2 * qh2(1, w) * (1 + r0));
447 }
448
449// CLN form factors
451 {
452 return (sqrt(w + 1) - sqrt(2)) / (sqrt(w + 1) + sqrt(2));
453 }
454
456 {
457 return ffV11() * (1 - 8 * m_rho12 * z(w)
458 + (51 * m_rho12 - 10) * z(w) * z(w)
459 - (252 * m_rho12 - 84) * z(w) * z(w) * z(w));
460 }
461
463 {
464 return (1 + aS1() * dS1(w)) * ffV1(w);
465 }
466
468 {
469 return ffA11() * (1 - 8 * m_rhoA12 * z(w)
470 + (53 * m_rhoA12 - 15) * z(w) * z(w)
471 - (231 * m_rhoA12 - 91) * z(w) * z(w) * z(w));
472 }
473
475 {
476 return m_ffR11 - 0.12 * (w - 1) + 0.05 * (w - 1) * (w - 1);
477 }
478
480 {
481 return m_ffR21 + 0.11 * (w - 1) - 0.06 * (w - 1) * (w - 1);
482 }
483
485 {
486 return 1 + aR3() * dR3(w);
487 }
488
490 {
491 return -0.019 + 0.041 * (w - 1.) - 0.015 * (w - 1.) * (w - 1.);
492 }
493
495 {
496 return 0.22 - 0.052 * (w - 1.) + 0.026 * (w - 1.) * (w - 1.);
497 }
498
501 {
502 assert(chkDhel(Dhel));
503 double mesonMass = m_mDst;
504 if (Dhel == 2) mesonMass = m_mD;
505 assert(mesonMass >= 0.);
506 return mesonMass;
507 }
508
509// tau velocity
510 double EvtBSemiTauonicHelicityAmplitudeCalculator::v(double mtau, double q2) const
511 {
512 return sqrt(1 - mtau * mtau / q2);
513 }
514
515// q^2/mB^2
516 double EvtBSemiTauonicHelicityAmplitudeCalculator::qh2(int Dhel, double w) const
517 {
518 return 1 - 2 * r(Dhel) * w + r(Dhel) * r(Dhel);
519 }
520
521// q^2
522 double EvtBSemiTauonicHelicityAmplitudeCalculator::q2(int Dhel, double w) const
523 {
524 return m_mB * m_mB * qh2(Dhel, w);
525 }
526
527// sanity checker
529 {
530 if (Dhel == -1 || Dhel == 0 || Dhel == 1 || Dhel == 2)return true;
531 else return false;
532 }
533
535 {
536 if (whel == -1 || whel == 0 || whel == 1 || whel == 2)return true;
537 else return false;
538 }
539
541 {
542 if (tauhel == -1 || tauhel == 1)return true;
543 else return false;
544 }
545
546//bool EvtBSemiTauonicHelicityAmplitudeCalculator::chkcostau(double costau) const
547//{
548// if (costau >= -1.0 && costau <= 1.0)return true;
549// else return false;
550//}
552} // Belle 2 Namespace
double m_mCharm
c quark mass (running mass at m_b scale), used for scalar form factor term )
double m_mBottom
b quark mass (running mass at m_b scale), used for scalar form factor term
double aR3() const
HQET correction factor for the uncertainty of 1/m_Q correction.
double rq() const
Ratio of the charm quark mass to the charm quark mass.
double ffV11() const
Form factor normalization factor for B->Dlnu.
double ffA11() const
Form factor normalization factor for B->D*lnu.
double aS1() const
HQET correction factor for the uncertainty of 1/m_Q correction.
double r(int Dhel) const
Ratio of the daughter meson mass to the parent meson.
double hV(double w) const
HQET D* axial vector form factor h_V(w).
double HadV2(int Dhel, int whel, double w) const
The function to calculate the Hadronic Amplitudes of right handed (V+A) type contribution.
double qh2(int Dhel, double w) const
Function to calculate the q^2 divided by the square of parent mass (m_B^2).
double hT1(double w) const
D* tensor form factor h_{T1}(w) in terms of axial vector form factors.
double hm(double w) const
HQET D vector form factor h_-(w).
bool chkwhel(int whel) const
Function to check if whel is in the valid range.
EvtComplex helAmp(double mtau, int tauhel, int Dhel, double w, double costau) const
The function calculates the helicity amplitude.
double dR3(double w) const
HQET correction factor for the scalar form factor for B->D*taunu.
double v(double mtau, double q2) const
Function to calculate the tau velocity.
double helampT(double mtau, int tauhel, int Dhel, double w, double costau) const
Helicity Amplitudes of tensor type contribution.
double helampV1(double mtau, int tauhel, int Dhel, double w, double costau) const
Helicity Amplitudes of left handed (V-A) contribution.
double Lep(const double mtau, int tauhel, int whel, double q2, double costau) const
The function to calculate the Leptonic Amplitudes for B->D*taunu decay of the vector type contributio...
double hA1(double w) const
HQET D* axial vector form factor h_{A1}(w).
double hS(double w) const
D scalar form factor h_S(w) in terms of vector form factors.
bool chktauhel(int tauhel) const
Function to check if tauhel is in the valid range.
double HadT(int Dhel, int whel1, int whel2, double w) const
The function to calculate the Hadronic Amplitudes of tensor type contribution.
double hT3(double w) const
D* tensor form factor h_{T3}(w).
double HadS1(int Dhel, double w) const
The function to calculate the Hadronic Amplitudes of scalar (S+P) type contribution.
double hT(double w) const
D tensor form factor h_T(w) in terms of vector form factors.
double helampS1(double mtau, int tauhel, int Dhel, double w, double costau) const
Helicity Amplitudes of scalar (S+P) type contribution.
double hA2(double w) const
HQET D* axial vector form factor h_{A2}(w).
double helampSM(double mtau, int tauhel, int Dhel, double w, double costau) const
Helicity Amplitudes of SM (left handed) contribution.
double hp(double w) const
HQET D vector form factor h_+(w).
double hP(double w) const
D* pseudo scalar form factor h_P(w) in terms of axial vector form factors.
double HadS2(int Dhel, double w) const
The function to calculate the Hadronic Amplitudes of scalar (S-P) type contribution.
double helampV2(double mtau, int tauhel, int Dhel, double w, double costau) const
Helicity Amplitudes of right handed (V+A) contribution.
double sqrt(double a)
sqrt for double
Definition: beamHelpers.h:28
double hA3(double w) const
HQET D* axial vector form factor h_{A3}(w).
double helampS2(double mtau, int tauhel, int Dhel, double w, double costau) const
Helicity Amplitudes of scalar (S-P) type contribution.
double HadV1(int Dhel, int whel, double w) const
The function to calculate the Hadronic Amplitudes of left handed (V-A) type contribution.
double q2(int Dhel, double w) const
Function to calculate the q^2 of the decay (square of l+nu invariant mass).
double hT2(double w) const
D* tensor form factor h_{T2}(w).
double dS1(double w) const
HQET correction factor for the scalar form factor for B->Dtaunu.
Abstract base class for different kinds of events.