 |
Belle II Software
release-05-01-25
|
11 #include "EvtGenBase/EvtComplex.hh"
12 #include "generators/evtgen/EvtBSemiTauonicDecayRateCalculator.h"
13 #include "generators/evtgen/models/EvtBSemiTauonicHelicityAmplitudeCalculator.h"
19 #include "Math/WrappedTF1.h"
20 #include "Math/WrappedMultiTF1.h"
22 #include "Math/GaussIntegrator.h"
23 #include "Math/AdaptiveIntegratorMultiDim.h"
34 double mtau,
int tauhel,
int Dhel,
double w,
double costau)
36 EvtComplex temp = BSTD.
helAmp(mtau, tauhel, Dhel, w, costau);
37 std::complex<double> amp(real(temp), imag(temp));
39 return std::norm(amp) *
pf(BSTD, mtau, Dhel, w);
44 double mtau,
int tauhel,
int Dhel,
double w)
48 "EvtBSemiTauonicDecayRateCalculator",
"EvaluateByCostau");
49 f1.SetParameter(0, mtau);
50 f1.SetParameter(1, tauhel);
51 f1.SetParameter(2, Dhel);
52 f1.SetParameter(3, w);
53 ROOT::Math::WrappedTF1 wf1(f1);
55 ROOT::Math::GaussIntegrator ig;
57 return ig.Integral(-1, 1);
62 int tauhel,
int Dhel,
double costau)
66 "EvtBSemiTauonicDecayRateCalculator",
"EvaluateByW");
67 f1.SetParameter(0, mtau);
68 f1.SetParameter(1, tauhel);
69 f1.SetParameter(2, Dhel);
70 f1.SetParameter(3, costau);
71 ROOT::Math::WrappedTF1 wf1(f1);
73 ROOT::Math::GaussIntegrator ig;
75 return ig.Integral(BSTD.
wmin(), BSTD.
wmax(mtau, Dhel));
80 double mtau,
int tauhel,
int Dhel)
84 BSTD.
wmin(), BSTD.
wmax(mtau, Dhel), -1, 1, 3,
85 "EvtBSemiTauonicDecayRateCalculator",
"EvaluateBy2D");
86 f1.SetParameter(0, mtau);
87 f1.SetParameter(1, tauhel);
88 f1.SetParameter(2, Dhel);
89 ROOT::Math::WrappedMultiTF1 wf1(f1);
92 ROOT::Math::AdaptiveIntegratorMultiDim ig;
94 double xmin[] = {BSTD.
wmin(), -1};
95 double xmax[] = {BSTD.
wmax(mtau, Dhel), 1};
96 return ig.Integral(xmin, xmax);
103 sum +=
Gamma(BSTD, mtau, -1, 2);
104 sum +=
Gamma(BSTD, mtau, +1, 2);
111 for (
int Dhel = -1; Dhel <= 1; Dhel++) {
112 sum +=
Gamma(BSTD, mtau, -1, Dhel);
113 sum +=
Gamma(BSTD, mtau, +1, Dhel);
129 sum +=
Gamma(SM, mlep, -1, 2);
130 sum +=
Gamma(SM, mlep, +1, 2);
143 for (
int Dhel = -1; Dhel <= 1; Dhel++) {
144 sum +=
Gamma(SM, mlep, -1, Dhel);
145 sum +=
Gamma(SM, mlep, +1, Dhel);
155 sum +=
Gamma(BSTD, mtau, -1, 2);
156 sum +=
Gamma(BSTD, mtau, +1, 2);
164 for (
int Dhel = -1; Dhel <= 1; Dhel++) {
165 sum +=
Gamma(BSTD, mtau, -1, Dhel);
166 sum +=
Gamma(BSTD, mtau, +1, Dhel);
174 double left(0), right(0);
175 left +=
Gamma(BSTD, mtau, -1, 2);
176 right +=
Gamma(BSTD, mtau, +1, 2);
177 return (right - left) / (right + left);
181 double left(0), right(0);
182 for (
int Dhel = -1; Dhel <= 1; Dhel++) {
183 left +=
Gamma(BSTD, mtau, -1, Dhel);
184 right +=
Gamma(BSTD, mtau, +1, Dhel);
186 return (right - left) / (right + left);
191 double transverse(0), longitudinal(0);
192 transverse +=
Gamma(BSTD, mtau, -1, -1);
193 transverse +=
Gamma(BSTD, mtau, +1, -1);
194 transverse +=
Gamma(BSTD, mtau, -1, +1);
195 transverse +=
Gamma(BSTD, mtau, +1, +1);
196 longitudinal +=
Gamma(BSTD, mtau, -1, 0);
197 longitudinal +=
Gamma(BSTD, mtau, +1, 0);
198 return longitudinal / (longitudinal + transverse);
204 return 1. / (2 * BSTD.
getMB()) * BSTD.
getMB() * BSTD.
getMB() * BSTD.
r(Dhel) * BSTD.
r(Dhel)
205 * BSTD.
v(mtau, BSTD.
q2(Dhel, w)) * BSTD.
v(mtau, BSTD.
q2(Dhel, w))
206 * sqrt(w * w - 1) / (64 * M_PI * M_PI * M_PI);
void setCT(const EvtComplex &v)
Sets the Wilson coeffcient CT.
double PtauD(const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, const double mtau)
Function calculates the polarization of tau, (RH - LH)/(LH + RH), in B->Dtaunu decay.
void setCV2(const EvtComplex &v)
Sets the Wilson coeffcient CV2.
double RGammaD(const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, const double mtau, const double mlep=0.0005110)
Function calculates the ratio of Br(B->Dtaunu)/Br(B->Dlnu), R(D).
double q2(int Dhel, double w) const
Function to calculate the q^2 of the decay (square of l+nu invariant mass).
double GammaDstar(const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, double mtau)
Function calculates the differential decay rate Gamma for D*taunu decay, integrated for w and costau ...
double v(double mtau, double q2) const
Function to calculate the tau velocity.
double GammaSMD(const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, const double mlep=0.0005110)
Function calculates the SM decay rate Gamma for Dlnu decay, integrated for w and costau and summed fo...
double dGammadw(const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, double mtau, int tauhel, int Dhel, double w)
Function calculates the differential decay rate dGamma/dw, integrated for costau.
double PtauDstar(const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, const double mtau)
Function calculates the polarization of tau, (RH - LH)/(LH + RH), in B->D*taunu decay.
double dGammadwdcostau(const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, double mtau, int tauhel, int Dhel, double w, double costau)
Function calculates the differential decay rate dGamma/dw/dcostau.
const EvtBSemiTauonicHelicityAmplitudeCalculator * m_BSTD
temporal pointer to the helicity amplitude calculator for EvaluateBy* functions
double RGammaDstar(const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, const double mtau, const double mlep=0.0005110)
Function calculates the ratio of Br(B->Dtaunu)/Br(B->Dlnu), R(D*).
void setCV1(const EvtComplex &v)
Sets the Wilson coeffcient CV1.
double EvaluateBy2D(double *x, double *param)
Function used internally for numerical integration.
double r(int Dhel) const
Ratio of the daughter meson mass to the parent meson.
double EvaluateByW(double *x, double *param)
Function used internally for numerical integration.
double wmax(double mtau, int Dhel) const
Maximum value of the velocity transfer variable w.
double getMB() const
Returns the parent (B) meson mass.
double GammaD(const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, double mtau)
Function calculates the decay rate Gamma for Dtaunu decay, integrated for w and costau and summed for...
Abstract base class for different kinds of events.
double PDstar(const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, const double mtau)
Function calculates the polarization of D*, longitudinal/(longitudinal + transverse),...
double wmin() const
Minimum value of the velocity transfer variable w.
double dGammadcostau(const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, double mtau, int tauhel, int Dhel, double costau)
Function calculates the differential decay rate dGamma/dcostau, integrated for w.
double pf(const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, double mtau, int Dhel, double w)
Phase space factor, which is multiplied to the helicity amplitude to calculate the decay rate.
void setCS1(const EvtComplex &v)
Sets the Wilson coeffcient CS1.
void setCS2(const EvtComplex &v)
Sets the Wilson coeffcient CS2.
double Gamma(const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, double mtau, int tauhel, int Dhel)
Function calculates the helicity dependent decay rate Gamma, integrated for w and costau.
double EvaluateByCostau(double *x, double *param)
Function used internally for numerical integration.
EvtComplex helAmp(double mtau, int tauhel, int Dhel, double w, double costau) const
The function calculates the helicity amplitude.
double GammaSMDstar(const EvtBSemiTauonicHelicityAmplitudeCalculator &BSTD, const double mlep=0.0005110)
Function calculates the SM decay rate Gamma for D*lnu decay, integrated for w and costau and summed f...
The class calculates the helicity amplitude of semi-tauonic B decays including new physics effects ba...