Belle II Software  release-06-01-15
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 
12 namespace 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 
147  double HadS1(int Dhel, double w) const; // S+P
148 
155  double HadS2(int Dhel, double w) const; // S-P
156 
165  double HadT(int Dhel, int whel1, int whel2, double w) const; // Tensor
166 
176  double helampSM(double mtau, int tauhel, int Dhel, double w, double costau) const; // SM
177 
188  double helampV1(double mtau, int tauhel, int Dhel, double w, double costau) const; // V-A
189 
200  double helampV2(double mtau, int tauhel, int Dhel, double w, double costau) const; // V+A
201 
212  double helampS1(double mtau, int tauhel, int Dhel, double w, double costau) const; // S+P
213 
224  double helampS2(double mtau, int tauhel, int Dhel, double w, double costau) const; // S-P
225 
236  double helampT(double mtau, int tauhel, int Dhel, double w, double costau) const; // Tensor
237 
242  double eta(int whel) const {return (whel == 2) ? -1 : 1;}
243 
244 
246 
247  // Vector and axial-vector form factors in terms of CLN form factors
248 
250  double hp(double w) const;
251 
253  double hm(double w) const;
254 
256  double hA1(double w) const;
257 
259  double hV(double w) const;
260 
262  double hA2(double w) const;
263 
265  double hA3(double w) const;
266 
267  // Scalar form factors in terms of V and A form factors
268 
270  double hS(double w) const;
271 
273  double hP(double w) const;
274 
275  // Tensor form factors in terms of V and A form factors
276 
278  double hT(double w) const;
279 
281  double hT1(double w) const;
282 
284  double hT2(double w) const;
285 
287  double hT3(double w) const;
288 
293  double z(double w) const;
294 
299  double ffV1(double w) const;
300 
305  double ffS1(double w) const;
306 
311  double ffA1(double w) const;
312 
317  double ffR1(double w) const;
318 
323  double ffR2(double w) const;
324 
329  double ffR3(double w) const;
330 
335  double ffV11() const {return 1.;} // cancels in R(D)
336 
341  double ffA11() const {return 1.;} // cancels in R(Ds)
342 
347  double dS1(double w) const;
348 
353  double dR3(double w) const;
354 
358  double aS1() const {return getAS1();} // {return 1.;}
359 
363  double aR3() const {return getAR3();} // {return 1.;}
364 
369  double mD(int Dhel) const;
370 
375  double r(int Dhel) const {return mD(Dhel) / m_mB;} // meson mass ratio
376 
377 
380  double rq() const {return m_mCharm / m_mBottom;} // quark mass ratio
381 
387  double v(double mtau, double q2) const;
388 
394  double q2(int Dhel, double w) const;
395 
401  double qh2(int Dhel, double w) const;
402 
403  // range of q2 and w
404 
409  double q2min(double mtau) const {return mtau * mtau;}
410 
415  double q2max(int Dhel) const {return (m_mB - mD(Dhel)) * (m_mB - mD(Dhel));}
416 
422  double wfunc(int Dhel, double q2) const {return (1. + r(Dhel) * r(Dhel) - q2 / m_mB / m_mB) / 2. / r(Dhel);}
423 
427  double wmin() const {return 1.;};
428 
434  double wmax(double mtau, int Dhel) const {return wfunc(Dhel, q2min(mtau));}
435 
439  double getRho12() const {return m_rho12;}
440 
442  double getRhoA12() const {return m_rhoA12;}
443 
445  double getR11() const {return m_ffR11;}
446 
448  double getR21() const {return m_ffR21;}
449 
451  double getAS1() const {return m_aS1;}
452 
454  double getAR3() const {return m_aR3;}
455 
457  double getMB() const {return m_mB;}
458 
460  double getMD() const {return m_mD;}
461 
463  double getMDst() const {return m_mDst;}
464 
466  double getMBottom() const {return m_mBottom;}
467 
469  double getMCharm() const {return m_mCharm;}
470 
472  EvtComplex getCV1() const {return m_CV1;}
473 
475  EvtComplex getCV2() const {return m_CV2;}
476 
478  EvtComplex getCS1() const {return m_CS1;}
479 
481  EvtComplex getCS2() const {return m_CS2;}
482 
484  EvtComplex getCT() const {return m_CT;}
485 
487  void setRho12(double v) {m_rho12 = v;}
488 
490  void setRhoA12(double v) {m_rhoA12 = v;}
491 
493  void setR11(double v) {m_ffR11 = v;}
494 
496  void setR21(double v) {m_ffR21 = v;}
497 
499  void setAS1(double v) {m_aS1 = v;}
500 
502  void setAR3(double v) {m_aR3 = v;}
503 
505  void setMB(double m) {m_mB = m;}
506 
508  void setMD(double m) {m_mD = m;}
509 
511  void setMDst(double m) {m_mDst = m;}
512 
514  void setMBottom(double m) {m_mBottom = m;}
515 
517  void setMCharm(double m) {m_mCharm = m;}
518 
520  void setCV1(const EvtComplex& v) {m_CV1 = v;}
521 
523  void setCV2(const EvtComplex& v) {m_CV2 = v;}
524 
526  void setCS1(const EvtComplex& v) {m_CS1 = v;}
527 
529  void setCS2(const EvtComplex& v) {m_CS2 = v;}
530 
532  void setCT(const EvtComplex& v) {m_CT = v;}
533 
534  private:
535  // Parameters
536 
537  // physics constant <-- not affect distributions
538  //double hbar;
539  //double GF;
540  //double Vcb;
541 
543  double m_rho12;
544 
546  double m_rhoA12;
547 
549  double m_ffR11;
550 
552  double m_ffR21;
553 
555  double m_aS1;
556 
558  double m_aR3;
559 
561  double m_mB;
562 
564  double m_mD;
565 
567  double m_mDst;
568 
570  double m_mBottom;
571 
573  double m_mCharm;
574 
576  EvtComplex m_CV1;
577 
579  EvtComplex m_CV2;
580 
582  EvtComplex m_CS1;
583 
585  EvtComplex m_CS2;
586 
588  EvtComplex m_CT;
589 
595  bool chkDhel(int Dhel) const;
596 
600  bool chkwhel(int whel) const;
601 
605  bool chktauhel(int tauhel) const;
606 
610  //bool chkcostau(double costau) const;
611 
612  };
613 
615 } // 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 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.