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