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
EvtHQETFF.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
31EvtHQETFF::EvtHQETFF( double hqetrho2, double hqetr1, double hqetr2,
32 double quadTerm )
33{
34 m_rho2 = hqetrho2;
35 m_r1 = hqetr1;
36 m_r2 = hqetr2;
37 m_c = quadTerm;
38
39 return;
40}
41
42EvtHQETFF::EvtHQETFF( double hqetrho2, double quadTerm )
43{
44 m_rho2 = hqetrho2;
45 m_c = quadTerm;
46
47 return;
48}
49
50void EvtHQETFF::getscalarff( EvtId parent, EvtId, double t, double mass,
51 double* f0p, double* f0m )
52{
53 double mb = EvtPDL::getMeanMass( parent );
54 double w = ( ( mb * mb ) + ( mass * mass ) - t ) / ( 2.0 * mb * mass );
55
56 // Form factors have a general form, with parameters passed in
57 // from the arguements.
58
59 double ha1 = 1 - m_rho2 * ( w - 1 ) + m_c * ( w - 1 ) * ( w - 1 );
60
61 *f0p = ha1;
62 *f0m = 0.0;
63
64 return;
65}
66
67void EvtHQETFF::getvectorff( EvtId parent, EvtId, double t, double mass,
68 double* a1f, double* a2f, double* vf, double* a0f )
69{
70 double mb = EvtPDL::getMeanMass( parent );
71 double w = ( ( mb * mb ) + ( mass * mass ) - t ) / ( 2.0 * mb * mass );
72
73 // Form factors have a general form, with parameters passed in
74 // from the arguements.
75
76 double rstar = ( 2.0 * sqrt( mb * mass ) ) / ( mb + mass );
77 double ha1 = 1 - m_rho2 * ( w - 1 );
78
79 *a1f = ( 1.0 - ( t / ( ( mb + mass ) * ( mb + mass ) ) ) ) * ha1;
80 *a1f = ( *a1f ) / rstar;
81 *a2f = ( m_r2 / rstar ) * ha1;
82 *vf = ( m_r1 / rstar ) * ha1;
83 *a0f = 0.0;
84
85 return;
86}
87
88void EvtHQETFF::gettensorff( EvtId, EvtId, double, double, double*, double*,
89 double*, double* )
90{
91 EvtGenReport( EVTGEN_ERROR, "EvtGen" )
92 << "Not implemented :gettensorff in EvtHQETFF.\n";
93 ::abort();
94}
95
96void EvtHQETFF::getbaryonff( EvtId, EvtId, double, double, double*, double*,
97 double*, double* )
98{
99 EvtGenReport( EVTGEN_ERROR, "EvtGen" )
100 << "Not implemented :getbaryonff in EvtHQETFF.\n";
101 ::abort();
102}
103
104void EvtHQETFF::getdiracff( EvtId, EvtId, double, double, double*, double*,
105 double*, double*, double*, double* )
106{
107 EvtGenReport( EVTGEN_ERROR, "EvtGen" )
108 << "Not implemented :getdiracff in EvtHQETFF.\n";
109 ::abort();
110}
111
112void EvtHQETFF::getraritaff( EvtId, EvtId, double, double, double*, double*,
113 double*, double*, double*, double*, double*, double* )
114{
115 EvtGenReport( EVTGEN_ERROR, "EvtGen" )
116 << "Not implemented :getraritaff in EvtHQETFF.\n";
117 ::abort();
118}
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=nullptr)
Definition EvtReport.cpp:32
@ EVTGEN_ERROR
Definition EvtReport.hh:49
EvtHQETFF(double hqetrho2, double hqetr1, double hqetr2, double hqetc=0.)
Definition EvtHQETFF.cpp:31
void getraritaff(EvtId, EvtId, double, double, double *, double *, double *, double *, double *, double *, double *, double *) override
double m_c
Definition EvtHQETFF.hh:55
void getvectorff(EvtId parent, EvtId daught, double t, double mass, double *a1f, double *a2f, double *vf, double *a0f) override
Definition EvtHQETFF.cpp:67
void getdiracff(EvtId, EvtId, double, double, double *, double *, double *, double *, double *, double *) override
void getbaryonff(EvtId, EvtId, double, double, double *, double *, double *, double *) override
Definition EvtHQETFF.cpp:96
double m_r2
Definition EvtHQETFF.hh:54
void gettensorff(EvtId, EvtId, double, double, double *, double *, double *, double *) override
Definition EvtHQETFF.cpp:88
void getscalarff(EvtId parent, EvtId daught, double t, double mass, double *f0p, double *f0m) override
Definition EvtHQETFF.cpp:50
double m_rho2
Definition EvtHQETFF.hh:53
double m_r1
Definition EvtHQETFF.hh:52
Definition EvtId.hh:27
static double getMeanMass(EvtId i)
Definition EvtPDL.cpp:306