EvtGen
2.2.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
Toggle main menu visibility
Loading...
Searching...
No Matches
src
EvtGenModels
EvtBToVlnuBallFF.cpp
Go to the documentation of this file.
1
2
/***********************************************************************
3
* Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
4
* *
5
* This file is part of EvtGen. *
6
* *
7
* EvtGen is free software: you can redistribute it and/or modify *
8
* it under the terms of the GNU General Public License as published by *
9
* the Free Software Foundation, either version 3 of the License, or *
10
* (at your option) any later version. *
11
* *
12
* EvtGen is distributed in the hope that it will be useful, *
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15
* GNU General Public License for more details. *
16
* *
17
* You should have received a copy of the GNU General Public License *
18
* along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
19
***********************************************************************/
20
21
#include "
EvtGenModels/EvtBToVlnuBallFF.hh
"
22
23
#include "
EvtGenBase/EvtId.hh
"
24
#include "
EvtGenBase/EvtPDL.hh
"
25
#include "
EvtGenBase/EvtReport.hh
"
26
27
#include <math.h>
28
#include <stdlib.h>
29
#include <string>
30
31
EvtBToVlnuBallFF::EvtBToVlnuBallFF
(
double
r2_A1,
double
mfit2_A1,
double
r1_A2,
32
double
r2_A2,
double
mfit2_A2,
double
r1_V,
33
double
r2_V,
double
mfit2_V )
34
{
35
m_r2_A1
= r2_A1;
36
m_mfit2_A1
= mfit2_A1;
37
m_r1_A2
= r1_A2;
38
m_r2_A2
= r2_A2;
39
m_mfit2_A2
= mfit2_A2;
40
m_r1_V
= r1_V;
41
m_r2_V
= r2_V;
42
m_mfit2_V
= mfit2_V;
43
44
return
;
45
}
46
47
void
EvtBToVlnuBallFF::getvectorff
(
EvtId
parent,
EvtId
/*daught*/
,
double
t,
48
double
/*mass*/
,
double
* a1f,
double
* a2f,
49
double
* vf,
double
* a0f )
50
{
51
// FF calculations taken from the LCSR calculation of
52
// P. Ball, R. Zwicky, Phys.~Rev.~{\bf D71} 014029 (2005), hep-ph/0412079.
53
54
//Define mBstar
55
EvtId
Bplus =
EvtPDL::getId
(
"B+"
);
56
EvtId
Bminus =
EvtPDL::getId
(
"B-"
);
57
double
mBstar =
EvtPDL::getMeanMass
(
EvtPDL::getId
(
"B*0"
) );
58
if
( parent == Bplus || parent == Bminus )
59
mBstar =
EvtPDL::getMeanMass
(
EvtPDL::getId
(
"B*+"
) );
60
61
double
q2 = t;
62
*a1f =
m_r2_A1
/ ( 1. - q2 /
m_mfit2_A1
);
63
*a2f =
m_r1_A2
/ ( 1. - q2 /
m_mfit2_A2
) +
64
m_r2_A2
/ pow( 1. - q2 /
m_mfit2_A2
, 2. );
65
*vf =
m_r1_V
/ ( 1. - q2 / mBstar / mBstar ) +
66
m_r2_V
/ ( 1. - q2 /
m_mfit2_V
);
67
*a0f = 0.0;
68
69
return
;
70
71
// OLD STUFF from HQETFF
72
73
// double mb=EvtPDL::getMeanMass(parent);
74
// double w = ((mb*mb)+(mass*mass)-t)/(2.0*mb*mass);
75
76
// Form factors have a general form, with parameters passed in
77
// from the arguements.
78
79
// double rstar = ( 2.0*sqrt(mb*mass))/(mb+mass);
80
// double ha1 = 1-rho2*(w-1);
81
82
// *a1f = (1.0 - (t/((mb+mass)*(mb+mass))))*ha1;
83
// *a1f = (*a1f)/rstar;
84
// *a2f = (r2/rstar)*ha1;
85
// *vf = (r1/rstar)*ha1;
86
}
87
88
void
EvtBToVlnuBallFF::getscalarff
(
EvtId
,
EvtId
,
double
,
double
,
double
*,
89
double
* )
90
{
91
EvtGenReport
(
EVTGEN_ERROR
,
"EvtGen"
)
92
<<
"Not implemented :getvectorff in EvtBToVlnuBallFF.\n"
;
93
::abort();
94
}
95
96
void
EvtBToVlnuBallFF::gettensorff
(
EvtId
,
EvtId
,
double
,
double
,
double
*,
97
double
*,
double
*,
double
* )
98
{
99
EvtGenReport
(
EVTGEN_ERROR
,
"EvtGen"
)
100
<<
"Not implemented :gettensorff in EvtBToVlnuBallFF.\n"
;
101
::abort();
102
}
103
104
void
EvtBToVlnuBallFF::getbaryonff
(
EvtId
,
EvtId
,
double
,
double
,
double
*,
105
double
*,
double
*,
double
* )
106
{
107
EvtGenReport
(
EVTGEN_ERROR
,
"EvtGen"
)
108
<<
"Not implemented :getbaryonff in EvtBToVlnuBallFF.\n"
;
109
::abort();
110
}
111
112
void
EvtBToVlnuBallFF::getdiracff
(
EvtId
,
EvtId
,
double
,
double
,
double
*,
113
double
*,
double
*,
double
*,
double
*,
double
* )
114
{
115
EvtGenReport
(
EVTGEN_ERROR
,
"EvtGen"
)
116
<<
"Not implemented :getdiracff in EvtBToVlnuBallFF.\n"
;
117
::abort();
118
}
119
120
void
EvtBToVlnuBallFF::getraritaff
(
EvtId
,
EvtId
,
double
,
double
,
double
*,
121
double
*,
double
*,
double
*,
double
*,
double
*,
122
double
*,
double
* )
123
{
124
EvtGenReport
(
EVTGEN_ERROR
,
"EvtGen"
)
125
<<
"Not implemented :getraritaff in EvtBToVlnuBallFF.\n"
;
126
::abort();
127
}
EvtBToVlnuBallFF.hh
EvtId.hh
EvtPDL.hh
EvtReport.hh
EvtGenReport
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=nullptr)
Definition
EvtReport.cpp:32
EVTGEN_ERROR
@ EVTGEN_ERROR
Definition
EvtReport.hh:49
EvtBToVlnuBallFF::m_r2_V
double m_r2_V
Definition
EvtBToVlnuBallFF.hh:61
EvtBToVlnuBallFF::getvectorff
void getvectorff(EvtId parent, EvtId daught, double t, double mass, double *a1f, double *a2f, double *vf, double *a0f) override
Definition
EvtBToVlnuBallFF.cpp:47
EvtBToVlnuBallFF::m_mfit2_A1
double m_mfit2_A1
Definition
EvtBToVlnuBallFF.hh:56
EvtBToVlnuBallFF::m_r1_V
double m_r1_V
Definition
EvtBToVlnuBallFF.hh:60
EvtBToVlnuBallFF::m_mfit2_V
double m_mfit2_V
Definition
EvtBToVlnuBallFF.hh:62
EvtBToVlnuBallFF::getscalarff
void getscalarff(EvtId, EvtId, double, double, double *, double *) override
Definition
EvtBToVlnuBallFF.cpp:88
EvtBToVlnuBallFF::m_r2_A1
double m_r2_A1
Definition
EvtBToVlnuBallFF.hh:55
EvtBToVlnuBallFF::m_mfit2_A2
double m_mfit2_A2
Definition
EvtBToVlnuBallFF.hh:59
EvtBToVlnuBallFF::getbaryonff
void getbaryonff(EvtId, EvtId, double, double, double *, double *, double *, double *) override
Definition
EvtBToVlnuBallFF.cpp:104
EvtBToVlnuBallFF::m_r2_A2
double m_r2_A2
Definition
EvtBToVlnuBallFF.hh:58
EvtBToVlnuBallFF::gettensorff
void gettensorff(EvtId, EvtId, double, double, double *, double *, double *, double *) override
Definition
EvtBToVlnuBallFF.cpp:96
EvtBToVlnuBallFF::m_r1_A2
double m_r1_A2
Definition
EvtBToVlnuBallFF.hh:57
EvtBToVlnuBallFF::EvtBToVlnuBallFF
EvtBToVlnuBallFF(double r2_A1, double mfit2_A1, double r1_A2, double r2_A2, double mfit2_A2, double r1_V, double r2_V, double mfit2_V)
Definition
EvtBToVlnuBallFF.cpp:31
EvtBToVlnuBallFF::getdiracff
void getdiracff(EvtId, EvtId, double, double, double *, double *, double *, double *, double *, double *) override
Definition
EvtBToVlnuBallFF.cpp:112
EvtBToVlnuBallFF::getraritaff
void getraritaff(EvtId, EvtId, double, double, double *, double *, double *, double *, double *, double *, double *, double *) override
Definition
EvtBToVlnuBallFF.cpp:120
EvtId
Definition
EvtId.hh:27
EvtPDL::getMeanMass
static double getMeanMass(EvtId i)
Definition
EvtPDL.cpp:306
EvtPDL::getId
static EvtId getId(const std::string &name)
Definition
EvtPDL.cpp:283
Generated by
1.17.0