Belle II Software development
EvtBSemiTauonicHelicityAmplitudeCalculator.h
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#pragma once
9
10#include "EvtGenBase/EvtComplex.hh"
11
12namespace Belle2 {
29
30 public:
31
36
57 EvtBSemiTauonicHelicityAmplitudeCalculator(const double rho12, const double rhoA12, const double ffR11, const double ffR21,
58 const double AS1, const double AR3,
59 const double bottomMass, const double charmMass,
60 const EvtComplex& CV1, const EvtComplex& CV2, const EvtComplex& CS1, const EvtComplex& CS2, const EvtComplex& CT,
61 const double parentMass, const double DMass, const double DstarMass);
62
65
74 EvtComplex helAmp(double mtau, int tauhel, int Dhel, double w, double costau) const;
75
76 public:
77
91 EvtComplex helAmp(const EvtComplex& CV1, const EvtComplex& CV2, const EvtComplex& CS1, const EvtComplex& CS2, const EvtComplex& CT,
92 double mtau, int tauhel, int Dhel, double w, double costau) const;
93
102 double Lep(const double mtau, int tauhel, int whel, double q2, double costau) const; // Vector
103
111 double Lep(const double mtau, int tauhel, double q2, double costau) const; // Scalar
112
123 double Lep(const double mtau, int tauhel, int whel1, int whel2, double q2, double costau) const; // Tensor
124
131 double HadV1(int Dhel, int whel, double w) const; // V-A
132
139 double HadV2(int Dhel, int whel, double w) const; // V+A
140
146 double HadS1(int Dhel, double w) const; // S+P
147
153 double HadS2(int Dhel, double w) const; // S-P
154
163 double HadT(int Dhel, int whel1, int whel2, double w) const; // Tensor
164
174 double helampSM(double mtau, int tauhel, int Dhel, double w, double costau) const; // SM
175
186 double helampV1(double mtau, int tauhel, int Dhel, double w, double costau) const; // V-A
187
198 double helampV2(double mtau, int tauhel, int Dhel, double w, double costau) const; // V+A
199
210 double helampS1(double mtau, int tauhel, int Dhel, double w, double costau) const; // S+P
211
222 double helampS2(double mtau, int tauhel, int Dhel, double w, double costau) const; // S-P
223
234 double helampT(double mtau, int tauhel, int Dhel, double w, double costau) const; // Tensor
235
240 double eta(int whel) const {return (whel == 2) ? -1 : 1;}
241
242
244
245 // Vector and axial-vector form factors in terms of CLN form factors
246
248 double hp(double w) const;
249
251 double hm(double w) const;
252
254 double hA1(double w) const;
255
257 double hV(double w) const;
258
260 double hA2(double w) const;
261
263 double hA3(double w) const;
264
265 // Scalar form factors in terms of V and A form factors
266
268 double hS(double w) const;
269
271 double hP(double w) const;
272
273 // Tensor form factors in terms of V and A form factors
274
276 double hT(double w) const;
277
279 double hT1(double w) const;
280
282 double hT2(double w) const;
283
285 double hT3(double w) const;
286
291 double z(double w) const;
292
297 double ffV1(double w) const;
298
303 double ffS1(double w) const;
304
309 double ffA1(double w) const;
310
315 double ffR1(double w) const;
316
321 double ffR2(double w) const;
322
327 double ffR3(double w) const;
328
333 double ffV11() const {return 1.;} // cancels in R(D)
334
339 double ffA11() const {return 1.;} // cancels in R(Ds)
340
345 double dS1(double w) const;
346
351 double dR3(double w) const;
352
356 double aS1() const {return getAS1();} // {return 1.;}
357
361 double aR3() const {return getAR3();} // {return 1.;}
362
367 double mD(int Dhel) const;
368
373 double r(int Dhel) const {return mD(Dhel) / m_mB;} // meson mass ratio
374
375
378 double rq() const {return m_mCharm / m_mBottom;} // quark mass ratio
379
385 double v(double mtau, double q2) const;
386
392 double q2(int Dhel, double w) const;
393
399 double qh2(int Dhel, double w) const;
400
401 // range of q2 and w
402
407 double q2min(double mtau) const {return mtau * mtau;}
408
413 double q2max(int Dhel) const {return (m_mB - mD(Dhel)) * (m_mB - mD(Dhel));}
414
420 double wfunc(int Dhel, double q2) const {return (1. + r(Dhel) * r(Dhel) - q2 / m_mB / m_mB) / 2. / r(Dhel);}
421
425 double wmin() const {return 1.;};
426
432 double wmax(double mtau, int Dhel) const {return wfunc(Dhel, q2min(mtau));}
433
437 double getRho12() const {return m_rho12;}
438
440 double getRhoA12() const {return m_rhoA12;}
441
443 double getR11() const {return m_ffR11;}
444
446 double getR21() const {return m_ffR21;}
447
449 double getAS1() const {return m_aS1;}
450
452 double getAR3() const {return m_aR3;}
453
455 double getMB() const {return m_mB;}
456
458 double getMD() const {return m_mD;}
459
461 double getMDst() const {return m_mDst;}
462
464 double getMBottom() const {return m_mBottom;}
465
467 double getMCharm() const {return m_mCharm;}
468
470 EvtComplex getCV1() const {return m_CV1;}
471
473 EvtComplex getCV2() const {return m_CV2;}
474
476 EvtComplex getCS1() const {return m_CS1;}
477
479 EvtComplex getCS2() const {return m_CS2;}
480
482 EvtComplex getCT() const {return m_CT;}
483
485 void setRho12(double v) {m_rho12 = v;}
486
488 void setRhoA12(double v) {m_rhoA12 = v;}
489
491 void setR11(double v) {m_ffR11 = v;}
492
494 void setR21(double v) {m_ffR21 = v;}
495
497 void setAS1(double v) {m_aS1 = v;}
498
500 void setAR3(double v) {m_aR3 = v;}
501
503 void setMB(double m) {m_mB = m;}
504
506 void setMD(double m) {m_mD = m;}
507
509 void setMDst(double m) {m_mDst = m;}
510
512 void setMBottom(double m) {m_mBottom = m;}
513
515 void setMCharm(double m) {m_mCharm = m;}
516
518 void setCV1(const EvtComplex& v) {m_CV1 = v;}
519
521 void setCV2(const EvtComplex& v) {m_CV2 = v;}
522
524 void setCS1(const EvtComplex& v) {m_CS1 = v;}
525
527 void setCS2(const EvtComplex& v) {m_CS2 = v;}
528
530 void setCT(const EvtComplex& v) {m_CT = v;}
531
532 private:
533 // Parameters
534
535 // physics constant <-- not affect distributions
536 //double hbar;
537 //double GF;
538 //double Vcb;
539
541 double m_rho12;
542
544 double m_rhoA12;
545
547 double m_ffR11;
548
550 double m_ffR21;
551
553 double m_aS1;
554
556 double m_aR3;
557
559 double m_mB;
560
562 double m_mD;
563
565 double m_mDst;
566
568 double m_mBottom;
569
571 double m_mCharm;
572
574 EvtComplex m_CV1;
575
577 EvtComplex m_CV2;
578
580 EvtComplex m_CS1;
581
583 EvtComplex m_CS2;
584
586 EvtComplex m_CT;
587
593 bool chkDhel(int Dhel) const;
594
598 bool chkwhel(int whel) const;
599
603 bool chktauhel(int tauhel) const;
604
608 //bool chkcostau(double costau) const;
609
610 };
611
613} // Belle 2 Namespace
The class calculates the helicity amplitude of semi-tauonic B decays including new physics effects ba...
void setCV1(const EvtComplex &v)
Sets the Wilson coeffcient CV1.
double getAS1() const
Returns form factor 1/m_Q correction factor a_S1.
double m_mCharm
c quark mass (running mass at m_b scale), used for scalar form factor term )
EvtComplex getCS1() const
Returns the Wilson coeffcient CS1.
double getMDst() const
Returns the daughter vector (D*) meson mass.
void setCT(const EvtComplex &v)
Sets the Wilson coeffcient CT.
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.
void setAS1(double v)
Sets the form factor 1/m_Q correction parameter a_S1.
void setRhoA12(double v)
Sets the form factor parameter rho_A1^2.
double wmin() const
Minimum value of the velocity transfer variable w.
void setCV2(const EvtComplex &v)
Sets the Wilson coeffcient CV2.
void setCS2(const EvtComplex &v)
Sets the Wilson coeffcient CS2.
void setMDst(double m)
Sets the daughter vector (D) meson mass.
double rq() const
Ratio of the charm quark mass to the charm quark mass.
void setR11(double v)
Sets the form factor parameter R_1(1).
double ffV11() const
Form factor normalization factor for B->Dlnu.
double getRhoA12() const
Returns form factor parameter rho_A1^2.
EvtComplex getCV2() const
Returns the Wilson coeffcient CV2.
double wmax(double mtau, int Dhel) const
Maximum value of the velocity transfer variable w.
double ffA11() const
Form factor normalization factor for B->D*lnu.
void setR21(double v)
Sets the form factor parameter R_2(1).
double wfunc(int Dhel, double q2) const
Calculate the velocity transfer variable w.
void setCS1(const EvtComplex &v)
Sets the Wilson coeffcient CS1.
void setAR3(double v)
Sets the form factor 1/m_Q correction parameter a_R3.
void setMD(double m)
Sets the daughter scalar (D) meson mass.
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 getAR3() const
Returns form factor 1/m_Q correction factor a_R3.
EvtComplex getCV1() const
Returns the Wilson coeffcient CV1.
EvtComplex getCS2() const
Returns the Wilson coeffcient CS2.
void setRho12(double v)
Sets the form factor parameter rho_1^2.
double getMD() const
Returns the daughter scalar (D) meson mass.
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 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 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.