Line data Source code
1 : //--------------------------------------------------------------------------
2 : //
3 : // Environment:
4 : // This software is part of the EvtGen package developed jointly
5 : // for the BaBar and CLEO collaborations. If you use all or part
6 : // of it, please give an appropriate acknowledgement.
7 : //
8 : // Copyright Information: See EvtGen/COPYRIGHT
9 : // Copyright (C) 1998 Caltech, UCSB
10 : //
11 : // Module: EvtMelikhovFF.cc
12 : //
13 : // Description: form factors for B->D*lnu according to HQET
14 : //
15 : // Modification history:
16 : //
17 : // DJL April 17, 1998 Module created
18 : //
19 : //------------------------------------------------------------------------
20 : //
21 : #include "EvtGenBase/EvtPatches.hh"
22 : #include "EvtGenBase/EvtPatches.hh"
23 : #include "EvtGenBase/EvtReport.hh"
24 : #include "EvtGenModels/EvtMelikhovFF.hh"
25 : #include "EvtGenBase/EvtId.hh"
26 : #include <string>
27 : #include <math.h>
28 : #include "EvtGenBase/EvtPDL.hh"
29 : #include <stdlib.h>
30 :
31 0 : EvtMelikhovFF::EvtMelikhovFF(double arg1) {
32 :
33 0 : whichfit = int(arg1+0.1);
34 0 : return;
35 0 : }
36 :
37 : void EvtMelikhovFF::getvectorff(EvtId parent,EvtId,
38 : double t, double mass, double *a1f,
39 : double *a2f, double *vf, double *a0f ){
40 :
41 : double ma1(0.0),ra1(0.0),na1(0.0);
42 : double ma2(0.0),ra2(0.0),na2(0.0);
43 : double mv(0.0),rv(0.0),nv(0.0);
44 :
45 0 : if ( whichfit==1) {
46 : ma1 = 7.07;
47 : ra1 = 0.27;
48 : na1 = 2.65;
49 : ma2 = 6.13;
50 : ra2 = 0.25;
51 : na2 = 2.17;
52 : mv = 6.28;
53 : rv = 0.30;
54 : nv = 2.36;
55 0 : }
56 0 : if ( whichfit==2) {
57 : ma1 = 6.78;
58 : ra1 = 0.20;
59 : na1 = 2.65;
60 : ma2 = 6.00;
61 : ra2 = 0.19;
62 : na2 = 2.34;
63 : mv = 6.22;
64 : rv = 0.20;
65 : nv = 2.46;
66 0 : }
67 0 : if ( whichfit==3) {
68 : ma1 = 6.50;
69 : ra1 = 0.21;
70 : na1 = 2.70;
71 : ma2 = 5.90;
72 : ra2 = 0.20;
73 : na2 = 2.45;
74 : mv = 5.90;
75 : rv = 0.21;
76 : nv = 2.35;
77 0 : }
78 0 : if ( whichfit==4) {
79 : ma1 = 5.68;
80 : ra1 = 0.29;
81 : na1 = 1.67;
82 : ma2 = 5.36;
83 : ra2 = 0.28;
84 : na2 = 1.67;
85 : mv = 5.46;
86 : rv = 0.29;
87 : nv = 1.73;
88 0 : }
89 :
90 0 : double mb=EvtPDL::getMeanMass(parent);
91 : //double w = ((mb*mb)+(mass*mass)-t)/(2.0*mb*mass);
92 :
93 0 : double melr = mass/mb;
94 0 : double mely = t/(mb*mb);
95 :
96 :
97 0 : *a1f = ((1.0+melr*melr-mely)/(1+melr))*ra1/pow(1.0-(t/(ma1*ma1)),na1);
98 0 : *a2f = (1+melr)*((1.0-melr*melr-mely)/((1+melr)*(1+melr)-mely))
99 0 : *ra2/pow(1.0-(t/(ma2*ma2)),na2);
100 0 : *vf = (1+melr)*rv/pow(1.0-(t/(mv*mv)),nv);
101 0 : *a0f = 0.0;
102 :
103 : return;
104 0 : }
105 :
106 :
107 : void EvtMelikhovFF::getscalarff(EvtId, EvtId, double, double, double*,
108 : double*){
109 :
110 0 : report(Severity::Error,"EvtGen") << "Not implemented :getvectorff in EvtMelikhovFF.\n";
111 0 : ::abort();
112 :
113 : }
114 :
115 :
116 :
117 : void EvtMelikhovFF::gettensorff(EvtId, EvtId, double, double, double*,
118 : double*, double*, double*){
119 :
120 0 : report(Severity::Error,"EvtGen") << "Not implemented :gettensorff in EvtMelikhovFF.\n";
121 0 : ::abort();
122 :
123 : }
124 :
125 :
126 :
127 : void EvtMelikhovFF::getbaryonff(EvtId, EvtId, double, double, double*,
128 : double*, double*, double*){
129 :
130 0 : report(Severity::Error,"EvtGen") << "Not implemented :getbaryonff in EvtMelikhovFF.\n";
131 0 : ::abort();
132 :
133 : }
134 :
135 : void EvtMelikhovFF::getdiracff(EvtId, EvtId, double, double, double*, double*,
136 : double*, double*, double*, double*) {
137 :
138 0 : report(Severity::Error,"EvtGen") << "Not implemented :getdiracff in EvtMelikhovFF.\n";
139 0 : ::abort();
140 :
141 : }
142 :
143 : void EvtMelikhovFF::getraritaff(EvtId, EvtId, double, double, double*, double*,
144 : double*, double*, double*, double*, double*, double*) {
145 :
146 0 : report(Severity::Error,"EvtGen") << "Not implemented :getraritaff in EvtMelikhovFF.\n";
147 0 : ::abort();
148 :
149 : }
150 :
|