Belle II Software development
EvtHQET3FF.cc
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#include "EvtGenBase/EvtReport.hh"
10#include "EvtGenBase/EvtId.hh"
11#include "EvtGenBase/EvtPDL.hh"
12#include <math.h>
13#include <stdlib.h>
14
15#include "generators/evtgen/models/EvtHQET3FF.h"
16
17
18EvtHQET3FF::EvtHQET3FF(double hqetha1_1, double hqetrho2, double hqetr0_1, double hqetr1_1, double hqetr2_1)
19{
20
21 rho2 = hqetrho2;
22 r0_1 = hqetr0_1;
23 r1_1 = hqetr1_1;
24 r2_1 = hqetr2_1;
25 ha1_1 = hqetha1_1;
26
27 return;
28}
29
30EvtHQET3FF::EvtHQET3FF(double hqetv1_1, double hqetrho2, double hqetdelta)
31{
32
33 v1_1 = hqetv1_1;
34 rho2 = hqetrho2;
35 d1_1 = hqetdelta;
36
37 return;
38}
39
40
41void EvtHQET3FF::getscalarff(EvtId parent, EvtId,
42 double t, double mass, double* fp, double* f0)
43{
44
45
46 double mb = EvtPDL::getMeanMass(parent);
47 double w = ((mb * mb) + (mass * mass) - t) / (2.0 * mb * mass);
48
49 // Form factors have a general form, with parameters passed in
50 // from the arguements.
51
52 // Use dispersion relation parametrization from
53 // I.Caprini, L.Lelluch, M.Neubert, Nucl. Phys. B 530,153(1998)
54 const double z = (sqrt(w + 1) - sqrt(2.)) / (sqrt(w + 1) + sqrt(2.));
55 double v1 = v1_1 * (1. - 8.*rho2 * z + (51.*rho2 - 10.) * z * z - (252.*rho2 - 84.) * z * z * z);
56
57 *fp = 0.5 * (mass + mb) / sqrt(mass * mb) * v1;
58
59 double s1 = (1 + d1_1 * (-0.019 + 0.041 * (w - 1) - 0.015 * pow(w - 1, 2.))) * v1;
60
61 *f0 = sqrt(mass * mb) / (mass + mb) * (w + 1) * s1;
62
63 return;
64}
65
66void EvtHQET3FF::getvectorff(EvtId parent, EvtId,
67 double t, double mass, double* a1f,
68 double* a2f, double* vf, double* a0f)
69{
70
71
72 double mb = EvtPDL::getMeanMass(parent);
73 double w = ((mb * mb) + (mass * mass) - t) / (2.0 * mb * mass);
74
75 // Form factors have a general form, with parameters passed in
76 // from the arguements.
77
78 double rstar = (2.0 * sqrt(mb * mass)) / (mb + mass);
79
80 // Use disparsion relation parametrization from
81 // I.Caprini, L.Lelluch, M.Neubert, Nucl. Phys. B 530,153(1998)
82 const double z = (sqrt(w + 1) - sqrt(2.)) / (sqrt(w + 1) + sqrt(2.));
83 double ha1 = ha1_1 * (1. - 8.*rho2 * z + (53.*rho2 - 15.) * z * z - (231.*rho2 - 91.) * z * z * z);
84 double r0 = r0_1 - 0.11 * (w - 1) + 0.01 * (w - 1) * (w - 1);
85 double r1 = r1_1 - 0.12 * (w - 1) + 0.05 * (w - 1) * (w - 1);
86 double r2 = r2_1 + 0.11 * (w - 1) - 0.06 * (w - 1) * (w - 1);
87
88 *a1f = (1.0 - (t / ((mb + mass) * (mb + mass)))) * ha1;
89 *a1f = (*a1f) / rstar;
90 *a2f = (r2 / rstar) * ha1;
91 *vf = (r1 / rstar) * ha1;
92 *a0f = (r0 / rstar) * ha1;
93
94 return;
95}
96
97void EvtHQET3FF::gettensorff(EvtId, EvtId, double, double, double*,
98 double*, double*, double*)
99{
100
101 EvtGenReport(EVTGEN_ERROR, "EvtGen") << "Not implemented :gettensorff in EvtHQET3FF.\n";
102 ::abort();
103
104}
105
106
107
108void EvtHQET3FF::getbaryonff(EvtId, EvtId, double, double, double*,
109 double*, double*, double*)
110{
111
112 EvtGenReport(EVTGEN_ERROR, "EvtGen") << "Not implemented :getbaryonff in EvtHQET3FF.\n";
113 ::abort();
114
115}
116
117void EvtHQET3FF::getdiracff(EvtId, EvtId, double, double, double*, double*,
118 double*, double*, double*, double*)
119{
120
121 EvtGenReport(EVTGEN_ERROR, "EvtGen") << "Not implemented :getdiracff in EvtHQET3FF.\n";
122 ::abort();
123
124}
125
126void EvtHQET3FF::getraritaff(EvtId, EvtId, double, double, double*, double*,
127 double*, double*, double*, double*, double*, double*)
128{
129
130 EvtGenReport(EVTGEN_ERROR, "EvtGen") << "Not implemented :getraritaff in EvtHQET3FF.\n";
131 ::abort();
132
133}
double r1_1
Normalization of R1(w=1)
Definition: EvtHQET3FF.h:64
double rho2
CLN slope of leading FF.
Definition: EvtHQET3FF.h:58
EvtHQET3FF(double hqetha1_1, double hqetrho2, double hqetr0_1, double hqetr1_1, double hqetr2_1)
Default constructor.
Definition: EvtHQET3FF.cc:18
void getdiracff(EvtId, EvtId, double, double, double *, double *, double *, double *, double *, double *)
Returns dirac ffs.
Definition: EvtHQET3FF.cc:117
void gettensorff(EvtId, EvtId, double, double, double *, double *, double *, double *)
Returns tensor ffs.
Definition: EvtHQET3FF.cc:97
double r0_1
Normalization of R0(w=1)
Definition: EvtHQET3FF.h:61
void getraritaff(EvtId, EvtId, double, double, double *, double *, double *, double *, double *, double *, double *, double *)
Returns tarita ffs.
Definition: EvtHQET3FF.cc:126
double d1_1
Normalization of scalar FF.
Definition: EvtHQET3FF.h:73
double r2_1
Normalization of R2(w=1)
Definition: EvtHQET3FF.h:67
void getvectorff(EvtId parent, EvtId daught, double t, double mass, double *a1f, double *a2f, double *vf, double *a0f)
Returns vector ffs.
Definition: EvtHQET3FF.cc:66
void getscalarff(EvtId parent, EvtId daught, double t, double mass, double *fp, double *f0)
Returns scalar ffs.
Definition: EvtHQET3FF.cc:41
double ha1_1
Normalization of leading FF.
Definition: EvtHQET3FF.h:55
double v1_1
Normalization of leading scalar FF.
Definition: EvtHQET3FF.h:70
void getbaryonff(EvtId, EvtId, double, double, double *, double *, double *, double *)
Returns baryon ffs.
Definition: EvtHQET3FF.cc:108