]>
Commit | Line | Data |
---|---|---|
da0e9ce3 | 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 | EvtHQET2FF::EvtHQET2FF(double hqetrho2, double hqetha1_1 , double hqetr1_1, double hqetr2_1) { | |
26 | ||
27 | rho2 = hqetrho2; | |
28 | r1_1 = hqetr1_1; | |
29 | r2_1 = hqetr2_1; | |
30 | ha1_1 = hqetha1_1; | |
31 | ||
32 | return; | |
33 | } | |
34 | ||
35 | EvtHQET2FF::EvtHQET2FF(double hqetrho2, double hqetv1_1) { | |
36 | ||
37 | rho2 = hqetrho2; | |
38 | v1_1 = hqetv1_1; | |
39 | ||
40 | return; | |
41 | } | |
42 | ||
43 | ||
44 | void EvtHQET2FF::getscalarff(EvtId parent,EvtId, | |
45 | double t, double mass, double *f0p, double *f0m) { | |
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 disparsion 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 | ||
60 | *f0p=v1; | |
61 | *f0m = 0.0; | |
62 | ||
63 | return; | |
64 | } | |
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 | 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 | ||
79 | // Use disparsion relation parametrization from | |
80 | // I.Caprini, L.Lelluch, M.Neubert, Nucl. Phys. B 530,153(1998) | |
81 | const double z = (sqrt(w+1)-sqrt(2.))/(sqrt(w+1)+sqrt(2.)); | |
82 | double ha1 =ha1_1*(1.- 8.*rho2*z + (53.*rho2-15.)*z*z - (231.*rho2-91.)*z*z*z); | |
83 | double r1 = r1_1-0.12*(w-1)+0.05*(w-1)*(w-1); | |
84 | double r2 = r2_1+0.11*(w-1)-0.06*(w-1)*(w-1); | |
85 | ; | |
86 | ||
87 | *a1f = (1.0 - (t/((mb+mass)*(mb+mass))))*ha1; | |
88 | *a1f = (*a1f)/rstar; | |
89 | *a2f = (r2/rstar)*ha1; | |
90 | *vf = (r1/rstar)*ha1; | |
91 | *a0f = 0.0; | |
92 | ||
93 | return; | |
94 | } | |
95 | ||
96 | void EvtHQET2FF::gettensorff(EvtId, EvtId, double, double, double*, | |
97 | double*, double*, double*){ | |
98 | ||
99 | report(ERROR,"EvtGen") << "Not implemented :gettensorff in EvtHQET2FF.\n"; | |
100 | ::abort(); | |
101 | ||
102 | } | |
103 | ||
104 | ||
105 | ||
106 | void EvtHQET2FF::getbaryonff(EvtId, EvtId, double, double, double*, | |
107 | double*, double*, double*){ | |
108 | ||
109 | report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtHQET2FF.\n"; | |
110 | ::abort(); | |
111 | ||
112 | } |