]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TEvtGen/EvtGenModels/EvtMelikhovFF.cxx
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenModels / EvtMelikhovFF.cxx
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 EvtMelikhovFF::EvtMelikhovFF(double arg1) {
32
33   whichfit = int(arg1+0.1);
34   return;
35 }
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   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   }
56   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   }
67   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   }
78   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   }
89
90   double mb=EvtPDL::getMeanMass(parent);
91   //double w = ((mb*mb)+(mass*mass)-t)/(2.0*mb*mass);
92
93   double melr = mass/mb;
94   double mely = t/(mb*mb);
95  
96
97   *a1f = ((1.0+melr*melr-mely)/(1+melr))*ra1/pow(1.0-(t/(ma1*ma1)),na1);
98   *a2f = (1+melr)*((1.0-melr*melr-mely)/((1+melr)*(1+melr)-mely))
99     *ra2/pow(1.0-(t/(ma2*ma2)),na2);
100   *vf = (1+melr)*rv/pow(1.0-(t/(mv*mv)),nv);
101   *a0f = 0.0;
102
103   return;
104  }
105
106
107 void EvtMelikhovFF::getscalarff(EvtId, EvtId, double, double, double*, 
108                                double*){
109   
110   report(ERROR,"EvtGen") << "Not implemented :getvectorff in EvtMelikhovFF.\n";  
111   ::abort();
112
113 }
114
115
116
117 void EvtMelikhovFF::gettensorff(EvtId, EvtId, double, double, double*, 
118                                double*, double*, double*){
119   
120   report(ERROR,"EvtGen") << "Not implemented :gettensorff in EvtMelikhovFF.\n";  
121   ::abort();
122
123 }
124
125
126
127 void EvtMelikhovFF::getbaryonff(EvtId, EvtId, double, double, double*, 
128                                double*, double*, double*){
129   
130   report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtMelikhovFF.\n";  
131   ::abort();
132
133 }
134