EvtGen 2.2.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
Loading...
Searching...
No Matches
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
22
23#include "EvtGenBase/EvtId.hh"
24#include "EvtGenBase/EvtPDL.hh"
26
27#include <math.h>
28#include <stdlib.h>
29#include <string>
30
31EvtBToVlnuBallFF::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
47void 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
88void 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
96void 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
104void 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
112void 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
120void 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}
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=nullptr)
Definition EvtReport.cpp:32
@ EVTGEN_ERROR
Definition EvtReport.hh:49
void getvectorff(EvtId parent, EvtId daught, double t, double mass, double *a1f, double *a2f, double *vf, double *a0f) override
void getscalarff(EvtId, EvtId, double, double, double *, double *) override
void getbaryonff(EvtId, EvtId, double, double, double *, double *, double *, double *) override
void gettensorff(EvtId, EvtId, double, double, double *, double *, double *, double *) override
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)
void getdiracff(EvtId, EvtId, double, double, double *, double *, double *, double *, double *, double *) override
void getraritaff(EvtId, EvtId, double, double, double *, double *, double *, double *, double *, double *, double *, double *) override
Definition EvtId.hh:27
static double getMeanMass(EvtId i)
Definition EvtPDL.cpp:306
static EvtId getId(const std::string &name)
Definition EvtPDL.cpp:283