]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TEvtGen/EvtGenModels/EvtHQET2FF.cxx
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenModels / EvtHQET2FF.cxx
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 }