ATLAS Offline Software
Loading...
Searching...
No Matches
EvtBSemiTauonicHelicityAmplitudeCalculator.h
Go to the documentation of this file.
1/**************************************************************************
2 * BASF2 (Belle Analysis Framework 2) *
3 * Copyright(C) 2013 - Belle II Collaboration *
4 * *
5 * Author: The Belle II Collaboration *
6 * Contributors: Koji Hara *
7 * *
8 * This software is provided "as is" without any warranty. *
9 **************************************************************************/
10#pragma once
11
12#include "EvtGenBase/EvtComplex.hh"
13
14namespace Belle2 {
27
28 public:
29
34
55 EvtBSemiTauonicHelicityAmplitudeCalculator(const double rho12, const double rhoA12, const double ffR11, const double ffR21,
56 const double AS1, const double AR3,
57 const double bottomMass, const double charmMass,
58 const EvtComplex& CV1, const EvtComplex& CV2, const EvtComplex& CS1, const EvtComplex& CS2, const EvtComplex& CT,
59 const double parentMass, const double DMass, const double DstarMass);
60
63
72 EvtComplex helAmp(double mtau, int tauhel, int Dhel, double w, double costau) const;
73
74 public:
75
89 EvtComplex helAmp(const EvtComplex& CV1, const EvtComplex& CV2, const EvtComplex& CS1, const EvtComplex& CS2, const EvtComplex& CT,
90 double mtau, int tauhel, int Dhel, double w, double costau) const;
91
100 double Lep(const double mtau, int tauhel, int whel, double q2, double costau) const; // Vector
101
109 double Lep(const double mtau, int tauhel, double q2, double costau) const; // Scalar
110
121 double Lep(const double mtau, int tauhel, int whel1, int whel2, double q2, double costau) const; // Tensor
122
128 double HadV1(int Dhel, int whel, double w) const; // V-A
129
136 double HadV2(int Dhel, int whel, double w) const; // V+A
137
144 double HadS1(int Dhel, double w) const; // S+P
145
152 double HadS2(int Dhel, double w) const; // S-P
153
162 double HadT(int Dhel, int whel1, int whel2, double w) const; // Tensor
163
173 double helampSM(double mtau, int tauhel, int Dhel, double w, double costau) const; // SM
174
185 double helampV1(double mtau, int tauhel, int Dhel, double w, double costau) const; // V-A
186
197 double helampV2(double mtau, int tauhel, int Dhel, double w, double costau) const; // V+A
198
209 double helampS1(double mtau, int tauhel, int Dhel, double w, double costau) const; // S+P
210
221 double helampS2(double mtau, int tauhel, int Dhel, double w, double costau) const; // S-P
222
233 double helampT(double mtau, int tauhel, int Dhel, double w, double costau) const; // Tensor
234
239 double eta(int whel) const {return (whel == 2) ? -1 : 1;}
240
241
243
244 // Vector and axial-vector form factors in terms of CLN form factors
245
247 double hp(double w) const;
248
250 double hm(double w) const;
251
253 double hA1(double w) const;
254
256 double hV(double w) const;
257
259 double hA2(double w) const;
260
262 double hA3(double w) const;
263
264 // Scalar form factors in terms of V and A form factors
265
267 double hS(double w) const;
268
270 double hP(double w) const;
271
272 // Tensor form factors in terms of V and A form factors
273
275 double hT(double w) const;
276
278 double hT1(double w) const;
279
281 double hT2(double w) const;
282
284 double hT3(double w) const;
285
290 double z(double w) const;
291
296 double ffV1(double w) const;
297
302 double ffS1(double w) const;
303
308 double ffA1(double w) const;
309
314 double ffR1(double w) const;
315
320 double ffR2(double w) const;
321
326 double ffR3(double w) const;
327
332 double ffV11() const {return 1.;} // cancels in R(D)
333
338 double ffA11() const {return 1.;} // cancels in R(Ds)
339
344 double dS1(double w) const;
345
350 double dR3(double w) const;
351
355 double aS1() const {return getAS1();} // {return 1.;}
356
360 double aR3() const {return getAR3();} // {return 1.;}
361
366 double mD(int Dhel) const;
367
372 double r(int Dhel) const {return mD(Dhel) / m_mB;} // meson mass ratio
373
374
377 double rq() const {return m_mCharm / m_mBottom;} // quark mass ratio
378
384 double v(double mtau, double q2) const;
385
391 double q2(int Dhel, double w) const;
392
398 double qh2(int Dhel, double w) const;
399
400 // range of q2 and w
401
406 double q2min(double mtau) const {return mtau * mtau;}
407
412 double q2max(int Dhel) const {return (m_mB - mD(Dhel)) * (m_mB - mD(Dhel));}
413
419 double wfunc(int Dhel, double q2) const {return (1. + r(Dhel) * r(Dhel) - q2 / m_mB / m_mB) / 2. / r(Dhel);}
420
424 double wmin() const {return 1.;};
425
431 double wmax(double mtau, int Dhel) const {return wfunc(Dhel, q2min(mtau));}
432
434
436 double getRho12() const {return m_rho12;}
437
439 double getRhoA12() const {return m_rhoA12;}
440
442 double getR11() const {return m_ffR11;}
443
445 double getR21() const {return m_ffR21;}
446
448 double getAS1() const {return m_aS1;}
449
451 double getAR3() const {return m_aR3;}
452
454 double getMB() const {return m_mB;}
455
457 double getMD() const {return m_mD;}
458
460 double getMDst() const {return m_mDst;}
461
463 double getMBottom() const {return m_mBottom;}
464
466 double getMCharm() const {return m_mCharm;}
467
469 EvtComplex getCV1() const {return m_CV1;}
470
472 EvtComplex getCV2() const {return m_CV2;}
473
475 EvtComplex getCS1() const {return m_CS1;}
476
478 EvtComplex getCS2() const {return m_CS2;}
479
481 EvtComplex getCT() const {return m_CT;}
482
484 void setRho12(double v) {m_rho12 = v;}
485
487 void setRhoA12(double v) {m_rhoA12 = v;}
488
490 void setR11(double v) {m_ffR11 = v;}
491
493 void setR21(double v) {m_ffR21 = v;}
494
496 void setAS1(double v) {m_aS1 = v;}
497
499 void setAR3(double v) {m_aR3 = v;}
500
502 void setMB(double m) {m_mB = m;}
503
505 void setMD(double m) {m_mD = m;}
506
508 void setMDst(double m) {m_mDst = m;}
509
511 void setMBottom(double m) {m_mBottom = m;}
512
514 void setMCharm(double m) {m_mCharm = m;}
515
517 void setCV1(const EvtComplex& v) {m_CV1 = v;}
518
520 void setCV2(const EvtComplex& v) {m_CV2 = v;}
521
523 void setCS1(const EvtComplex& v) {m_CS1 = v;}
524
526 void setCS2(const EvtComplex& v) {m_CS2 = v;}
527
529 void setCT(const EvtComplex& v) {m_CT = v;}
530
531 private:
532 // Parameters
533
534 // physics constant <-- not affect distributions
535 //double hbar;
536 //double GF;
537 //double Vcb;
538
540 double m_rho12;
541
543 double m_rhoA12;
544
546 double m_ffR11;
547
549 double m_ffR21;
550
552 double m_aS1;
553
555 double m_aR3;
556
558 double m_mB;
559
561 double m_mD;
562
564 double m_mDst;
565
567 double m_mBottom;
568
570 double m_mCharm;
571
573 EvtComplex m_CV1;
574
576 EvtComplex m_CV2;
577
579 EvtComplex m_CS1;
580
582 EvtComplex m_CS2;
583
585 EvtComplex m_CT;
586
588
592 bool chkDhel(int Dhel) const;
593
597 bool chkwhel(int whel) const;
598
602 bool chktauhel(int tauhel) const;
603
607 //bool chkcostau(double costau) const;
608
609 };
610
611} // Belle 2 Namespace
double Lep(const double mtau, int tauhel, double q2, double costau) const
The function to calculate the Leptonic Amplitudes for B->Dtaunu decay of the scalar type contribution...
void setAR3(double v)
Sets the form factor 1/m_Q correction parameter a_R3.
double q2(int Dhel, double w) const
Function to calculate the q^2 of the decay (square of l+nu invariant mass).
double ffR3(double w) const
CLN form factor R3.
void setMD(double m)
Sets the daughter scalar (D) meson mass.
double ffV1(double w) const
CLN form factor V1.
double ffS1(double w) const
CLN form factor S1.
double mD(int Dhel) const
Daughter D(*) meson mass.
double hT(double w) const
D tensor form factor h_T(w) in terms of vector form factors.
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.
bool chkwhel(int whel) const
Function to check if whel is in the valid range.
double rq() const
Ratio of the charm quark mass to the charm quark mass.
bool chktauhel(int tauhel) const
Function to check if tauhel is in the valid range.
double Lep(const double mtau, int tauhel, int whel1, int whel2, double q2, double costau) const
The function to calculate the Leptonic Amplitudes for B->D*taunu decay of the tensor type contributio...
double dS1(double w) const
HQET correction factor for the scalar form factor for B->Dtaunu.
double getRhoA12() const
Returns form factor parameter rho_A1^2.
double z(double w) const
CLN form factor z.
double wmin() const
Minimum value of the velocity transfer variable w.
void setCS2(const EvtComplex &v)
Sets the Wilson coeffcient CS2.
void setRhoA12(double v)
Sets the form factor parameter rho_A1^2.
double hA1(double w) const
HQET D* axial vector form factor h_{A1}(w).
double hA3(double w) const
HQET D* axial vector form factor h_{A3}(w).
double helampSM(double mtau, int tauhel, int Dhel, double w, double costau) const
Helicity Amplitudes of SM (left handed) contribution.
EvtBSemiTauonicHelicityAmplitudeCalculator()
The default constructor.
double helampS2(double mtau, int tauhel, int Dhel, double w, double costau) const
Helicity Amplitudes of scalar (S-P) type contribution.
double wmax(double mtau, int Dhel) const
Maximum value of the velocity transfer variable w.
double helampT(double mtau, int tauhel, int Dhel, double w, double costau) const
Helicity Amplitudes of tensor type contribution.
bool chkDhel(int Dhel) const
sanity checkers
double HadV2(int Dhel, int whel, double w) const
The function to calculate the Hadronic Amplitudes of right handed (V+A) type contribution.
double helampS1(double mtau, int tauhel, int Dhel, double w, double costau) const
Helicity Amplitudes of scalar (S+P) type contribution.
double aS1() const
HQET correction factor for the uncertainty of 1/m_Q correction.
double HadT(int Dhel, int whel1, int whel2, double w) const
The function to calculate the Hadronic Amplitudes of tensor type contribution.
double getMD() const
Returns the daughter scalar (D) meson mass.
double getAS1() const
Returns form factor 1/m_Q correction factor a_S1.
double helampV1(double mtau, int tauhel, int Dhel, double w, double costau) const
Helicity Amplitudes of left handed (V-A) contribution.
double ffV11() const
Form factor normalization factor for B->Dlnu.
double hA2(double w) const
HQET D* axial vector form factor h_{A2}(w).
void setMDst(double m)
Sets the daughter vector (D) meson mass.
void setCV1(const EvtComplex &v)
Sets the Wilson coeffcient CV1.
double hp(double w) const
HQET D vector form factor h_+(w).
void setAS1(double v)
Sets the form factor 1/m_Q correction parameter a_S1.
double hT3(double w) const
D* tensor form factor h_{T3}(w).
double hP(double w) const
D* pseudo scalar form factor h_P(w) in terms of axial vector form factors.
double dR3(double w) const
HQET correction factor for the scalar form factor for B->D*taunu.
void setCV2(const EvtComplex &v)
Sets the Wilson coeffcient CV2.
double helampV2(double mtau, int tauhel, int Dhel, double w, double costau) const
Helicity Amplitudes of right handed (V+A) contribution.
double HadS2(int Dhel, double w) const
The function to calculate the Hadronic Amplitudes of scalar (S-P) type contribution.
double hT1(double w) const
D* tensor form factor h_{T1}(w) in terms of axial vector form factors.
double ffA11() const
Form factor normalization factor for B->D*lnu.
EvtComplex helAmp(const EvtComplex &CV1, const EvtComplex &CV2, const EvtComplex &CS1, const EvtComplex &CS2, const EvtComplex &CT, double mtau, int tauhel, int Dhel, double w, double costau) const
The function calculates helicity amplitudes with given Wilson coefficients.
double hV(double w) const
HQET D* axial vector form factor h_V(w).
double hS(double w) const
D scalar form factor h_S(w) in terms of vector form factors.
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 ffR2(double w) const
CLN form factor R2.
void setRho12(double v)
Sets the form factor parameter rho_1^2.
double hT2(double w) const
D* tensor form factor h_{T2}(w).
EvtComplex helAmp(double mtau, int tauhel, int Dhel, double w, double costau) const
The function calculates the helicity amplitude.
double getMDst() const
Returns the daughter vector (D*) meson mass.
double ffR1(double w) const
CLN form factor R1.
double ffA1(double w) const
CLN form factor A1.
EvtBSemiTauonicHelicityAmplitudeCalculator(const double rho12, const double rhoA12, const double ffR11, const double ffR21, const double AS1, const double AR3, const double bottomMass, const double charmMass, const EvtComplex &CV1, const EvtComplex &CV2, const EvtComplex &CS1, const EvtComplex &CS2, const EvtComplex &CT, const double parentMass, const double DMass, const double DstarMass)
The constructor with HQET form factor parameters, Wilson coefficients of new physics contributions an...
double v(double mtau, double q2) const
Function to calculate the tau velocity.
double wfunc(int Dhel, double q2) const
Calculate the velocity transfer variable w.
double m_mCharm
c 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 m_mBottom
b quark mass (running mass at m_b scale), used for scalar form factor term
double HadS1(int Dhel, double w) const
The function to calculate the Hadronic Amplitudes of scalar (S+P) type contribution.
double hm(double w) const
HQET D vector form factor h_-(w).
double HadV1(int Dhel, int whel, double w) const
The function to calculate the Hadronic Amplitudes of left handed (V-A) type contribution.
void setCT(const EvtComplex &v)
Sets the Wilson coeffcient CT.
double qh2(int Dhel, double w) const
Function to calculate the q^2 divided by the square of parent mass (m_B^2).
void setCS1(const EvtComplex &v)
Sets the Wilson coeffcient CS1.
int r
Definition globals.cxx:22