Line data Source code
1 : //--------------------------------------------------------------------------
2 : //
3 : // Module: EvtHQET2FF.cc
4 : //
5 : // Description: form factors for B->D*lnu & B->Dlnu according to HQET
6 : // with dispersive FF
7 : //
8 : // Modification history:
9 : //
10 : // Marco Bomben March 10, 2003 Module created
11 : //
12 : //------------------------------------------------------------------------
13 : //
14 : #include "EvtGenBase/EvtPatches.hh"
15 : #include "EvtGenBase/EvtPatches.hh"
16 : #include "EvtGenBase/EvtReport.hh"
17 : #include "EvtGenModels/EvtHQET2FF.hh"
18 : #include "EvtGenBase/EvtId.hh"
19 : #include <string>
20 : #include "EvtGenBase/EvtPDL.hh"
21 : #include <math.h>
22 : #include <stdlib.h>
23 :
24 :
25 0 : EvtHQET2FF::EvtHQET2FF(double hqetrho2, double hqetha1_1 , double hqetr1_1, double hqetr2_1) {
26 :
27 0 : rho2 = hqetrho2;
28 0 : r1_1 = hqetr1_1;
29 0 : r2_1 = hqetr2_1;
30 0 : ha1_1 = hqetha1_1;
31 :
32 0 : return;
33 0 : }
34 :
35 0 : EvtHQET2FF::EvtHQET2FF(double hqetrho2, double hqetv1_1) {
36 :
37 0 : rho2 = hqetrho2;
38 0 : v1_1 = hqetv1_1;
39 :
40 0 : return;
41 0 : }
42 :
43 :
44 : void EvtHQET2FF::getscalarff(EvtId parent,EvtId,
45 : double t, double mass, double *f0p, double *f0m) {
46 :
47 :
48 0 : double mb=EvtPDL::getMeanMass(parent);
49 0 : 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 disparsion relation parametrization from
55 : // I.Caprini, L.Lelluch, M.Neubert, Nucl. Phys. B 530,153(1998)
56 0 : const double z = (sqrt(w+1)-sqrt(2.))/(sqrt(w+1)+sqrt(2.));
57 0 : double v1 = v1_1*(1.- 8.*rho2*z + (51.*rho2-10.)*z*z - (252.*rho2-84.)*z*z*z)
58 : ;
59 :
60 0 : *f0p=v1;
61 0 : *f0m = 0.0;
62 :
63 : return;
64 0 : }
65 :
66 : void EvtHQET2FF::getvectorff(EvtId parent,EvtId,
67 : double t, double mass, double *a1f,
68 : double *a2f, double *vf, double *a0f ){
69 :
70 :
71 0 : double mb=EvtPDL::getMeanMass(parent);
72 0 : 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 0 : double rstar = ( 2.0*sqrt(mb*mass))/(mb+mass);
78 :
79 : // Use disparsion relation parametrization from
80 : // I.Caprini, L.Lelluch, M.Neubert, Nucl. Phys. B 530,153(1998)
81 0 : const double z = (sqrt(w+1)-sqrt(2.))/(sqrt(w+1)+sqrt(2.));
82 0 : double ha1 =ha1_1*(1.- 8.*rho2*z + (53.*rho2-15.)*z*z - (231.*rho2-91.)*z*z*z);
83 0 : double r1 = r1_1-0.12*(w-1)+0.05*(w-1)*(w-1);
84 0 : double r2 = r2_1+0.11*(w-1)-0.06*(w-1)*(w-1);
85 : ;
86 :
87 0 : *a1f = (1.0 - (t/((mb+mass)*(mb+mass))))*ha1;
88 0 : *a1f = (*a1f)/rstar;
89 0 : *a2f = (r2/rstar)*ha1;
90 0 : *vf = (r1/rstar)*ha1;
91 0 : *a0f = 0.0;
92 :
93 : return;
94 0 : }
95 :
96 : void EvtHQET2FF::gettensorff(EvtId, EvtId, double, double, double*,
97 : double*, double*, double*){
98 :
99 0 : report(Severity::Error,"EvtGen") << "Not implemented :gettensorff in EvtHQET2FF.\n";
100 0 : ::abort();
101 :
102 : }
103 :
104 :
105 :
106 : void EvtHQET2FF::getbaryonff(EvtId, EvtId, double, double, double*,
107 : double*, double*, double*){
108 :
109 0 : report(Severity::Error,"EvtGen") << "Not implemented :getbaryonff in EvtHQET2FF.\n";
110 0 : ::abort();
111 :
112 : }
113 :
114 : void EvtHQET2FF::getdiracff(EvtId, EvtId, double, double, double*, double*,
115 : double*, double*, double*, double*) {
116 :
117 0 : report(Severity::Error,"EvtGen") << "Not implemented :getdiracff in EvtHQET2FF.\n";
118 0 : ::abort();
119 :
120 : }
121 :
122 : void EvtHQET2FF::getraritaff(EvtId, EvtId, double, double, double*, double*,
123 : double*, double*, double*, double*, double*, double*) {
124 :
125 0 : report(Severity::Error,"EvtGen") << "Not implemented :getraritaff in EvtHQET2FF.\n";
126 0 : ::abort();
127 :
128 : }
|