evtgen is hosted by Hepforge, IPPP Durham
EvtGen  2.0.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
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"
25 #include "EvtGenBase/EvtPatches.hh"
26 #include "EvtGenBase/EvtReport.hh"
27 
28 #include <math.h>
29 #include <stdlib.h>
30 #include <string>
31 
32 EvtHQETFF::EvtHQETFF( double hqetrho2, double hqetr1, double hqetr2,
33  double quadTerm )
34 {
35  rho2 = hqetrho2;
36  r1 = hqetr1;
37  r2 = hqetr2;
38  c = quadTerm;
39 
40  return;
41 }
42 
43 EvtHQETFF::EvtHQETFF( double hqetrho2, double quadTerm )
44 {
45  rho2 = hqetrho2;
46  c = quadTerm;
47 
48  return;
49 }
50 
51 void EvtHQETFF::getscalarff( EvtId parent, EvtId, double t, double mass,
52  double* f0p, double* f0m )
53 {
54  double mb = EvtPDL::getMeanMass( parent );
55  double w = ( ( mb * mb ) + ( mass * mass ) - t ) / ( 2.0 * mb * mass );
56 
57  // Form factors have a general form, with parameters passed in
58  // from the arguements.
59 
60  double ha1 = 1 - rho2 * ( w - 1 ) + c * ( w - 1 ) * ( w - 1 );
61 
62  *f0p = ha1;
63  *f0m = 0.0;
64 
65  return;
66 }
67 
68 void EvtHQETFF::getvectorff( EvtId parent, EvtId, double t, double mass,
69  double* a1f, double* a2f, double* vf, double* a0f )
70 {
71  double mb = EvtPDL::getMeanMass( parent );
72  double w = ( ( mb * mb ) + ( mass * mass ) - t ) / ( 2.0 * mb * mass );
73 
74  // Form factors have a general form, with parameters passed in
75  // from the arguements.
76 
77  double rstar = ( 2.0 * sqrt( mb * mass ) ) / ( mb + mass );
78  double ha1 = 1 - rho2 * ( w - 1 );
79 
80  *a1f = ( 1.0 - ( t / ( ( mb + mass ) * ( mb + mass ) ) ) ) * ha1;
81  *a1f = ( *a1f ) / rstar;
82  *a2f = ( r2 / rstar ) * ha1;
83  *vf = ( r1 / rstar ) * ha1;
84  *a0f = 0.0;
85 
86  return;
87 }
88 
89 void EvtHQETFF::gettensorff( EvtId, EvtId, double, double, double*, double*,
90  double*, double* )
91 {
92  EvtGenReport( EVTGEN_ERROR, "EvtGen" )
93  << "Not implemented :gettensorff in EvtHQETFF.\n";
94  ::abort();
95 }
96 
97 void EvtHQETFF::getbaryonff( EvtId, EvtId, double, double, double*, double*,
98  double*, double* )
99 {
100  EvtGenReport( EVTGEN_ERROR, "EvtGen" )
101  << "Not implemented :getbaryonff in EvtHQETFF.\n";
102  ::abort();
103 }
104 
105 void EvtHQETFF::getdiracff( EvtId, EvtId, double, double, double*, double*,
106  double*, double*, double*, double* )
107 {
108  EvtGenReport( EVTGEN_ERROR, "EvtGen" )
109  << "Not implemented :getdiracff in EvtHQETFF.\n";
110  ::abort();
111 }
112 
113 void EvtHQETFF::getraritaff( EvtId, EvtId, double, double, double*, double*,
114  double*, double*, double*, double*, double*, double* )
115 {
116  EvtGenReport( EVTGEN_ERROR, "EvtGen" )
117  << "Not implemented :getraritaff in EvtHQETFF.\n";
118  ::abort();
119 }
double rho2
Definition: EvtHQETFF.hh:53
void getvectorff(EvtId parent, EvtId daught, double t, double mass, double *a1f, double *a2f, double *vf, double *a0f) override
Definition: EvtHQETFF.cpp:68
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=0)
Definition: EvtReport.cpp:33
double r2
Definition: EvtHQETFF.hh:54
static double getMeanMass(EvtId i)
Definition: EvtPDL.cpp:314
Definition: EvtId.hh:27
void getscalarff(EvtId parent, EvtId daught, double t, double mass, double *f0p, double *f0m) override
Definition: EvtHQETFF.cpp:51
double c
Definition: EvtHQETFF.hh:55
void getbaryonff(EvtId, EvtId, double, double, double *, double *, double *, double *) override
Definition: EvtHQETFF.cpp:97
void gettensorff(EvtId, EvtId, double, double, double *, double *, double *, double *) override
Definition: EvtHQETFF.cpp:89
EvtHQETFF(double hqetrho2, double hqetr1, double hqetr2, double hqetc=0.)
Definition: EvtHQETFF.cpp:32
void getraritaff(EvtId, EvtId, double, double, double *, double *, double *, double *, double *, double *, double *, double *) override
Definition: EvtHQETFF.cpp:113
double r1
Definition: EvtHQETFF.hh:52
void getdiracff(EvtId, EvtId, double, double, double *, double *, double *, double *, double *, double *) override
Definition: EvtHQETFF.cpp:105