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
EvtBToPlnuBKFF.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
31EvtBToPlnuBKFF::EvtBToPlnuBKFF( double alpha, double beta )
32{
33 m_alpha = alpha;
34 m_beta = beta;
35
36 return;
37}
38
39void EvtBToPlnuBKFF::getscalarff( EvtId parent, EvtId /*daught*/, double t,
40 double /*mass*/, double* fp, double* f0 )
41{
42 //Define mBstar
43 EvtId Bplus = EvtPDL::getId( "B+" );
44 EvtId Bminus = EvtPDL::getId( "B-" );
45 double mBstar = EvtPDL::getMeanMass( EvtPDL::getId( "B*0" ) );
46 if ( parent == Bplus || parent == Bminus )
47 mBstar = EvtPDL::getMeanMass( EvtPDL::getId( "B*+" ) );
48 double mBstar2 = mBstar * mBstar;
49
50 //Compute BK parametrization (t==q2)
51 double fplus = 1.0 /
52 ( ( 1.0 - t / mBstar2 ) * ( 1.0 - m_alpha * t / mBstar2 ) );
53 double fzero = 1.0 / ( 1.0 - t / ( mBstar2 * m_beta ) );
54
55 *fp = fplus;
56 *f0 = fzero;
57
58 return;
59}
60
61void EvtBToPlnuBKFF::getvectorff( EvtId, EvtId, double, double, double*,
62 double*, double*, double* )
63{
64 EvtGenReport( EVTGEN_ERROR, "EvtGen" )
65 << "Not implemented :getvectorff in EvtBToPlnuBKFF.\n";
66 ::abort();
67}
68
69void EvtBToPlnuBKFF::gettensorff( EvtId, EvtId, double, double, double*,
70 double*, double*, double* )
71{
72 EvtGenReport( EVTGEN_ERROR, "EvtGen" )
73 << "Not implemented :gettensorff in EvtBToPlnuBKFf.\n";
74 ::abort();
75}
76
77void EvtBToPlnuBKFF::getbaryonff( EvtId, EvtId, double, double, double*,
78 double*, double*, double* )
79{
80 EvtGenReport( EVTGEN_ERROR, "EvtGen" )
81 << "Not implemented :getbaryonff in EvtBToPlnuBKFF.\n";
82 ::abort();
83}
84
85void EvtBToPlnuBKFF::getdiracff( EvtId, EvtId, double, double, double*, double*,
86 double*, double*, double*, double* )
87{
88 EvtGenReport( EVTGEN_ERROR, "EvtGen" )
89 << "Not implemented :getdiracff in EvtBToPlnuBKFF.\n";
90 ::abort();
91}
92
93void EvtBToPlnuBKFF::getraritaff( EvtId, EvtId, double, double, double*,
94 double*, double*, double*, double*, double*,
95 double*, double* )
96{
97 EvtGenReport( EVTGEN_ERROR, "EvtGen" )
98 << "Not implemented :getraritaff in EvtBToPlnuBKFF.\n";
99 ::abort();
100}
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=nullptr)
Definition EvtReport.cpp:32
@ EVTGEN_ERROR
Definition EvtReport.hh:49
void gettensorff(EvtId, EvtId, double, double, double *, double *, double *, double *) override
void getraritaff(EvtId, EvtId, double, double, double *, double *, double *, double *, double *, double *, double *, double *) override
void getscalarff(EvtId parent, EvtId daught, double t, double mass, double *fp, double *f0) override
void getvectorff(EvtId, EvtId, double, double, double *, double *, double *, double *) override
void getdiracff(EvtId, EvtId, double, double, double *, double *, double *, double *, double *, double *) override
void getbaryonff(EvtId, EvtId, double, double, double *, double *, double *, double *) override
EvtBToPlnuBKFF(double alpha, double beta)
Definition EvtId.hh:27
static double getMeanMass(EvtId i)
Definition EvtPDL.cpp:306
static EvtId getId(const std::string &name)
Definition EvtPDL.cpp:283