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