Fix for definitions for CINT
[u/mrichter/AliRoot.git] / TEvtGen / EvtGen / EvtGenModels / EvtBToVlnuBallFF.cpp
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: EvtHQETFF.cc
12 //
13 // Description:   B->Xu l nu with the Ball/Zwicky decay model
14 //                Xu is a vector (rho, rho0, omega)
15 //
16 // Modification history:
17 //
18 //    Wells Wulsin      2008 Aug 14         Module created
19 //
20 //------------------------------------------------------------------------
21 // 
22 #include "EvtGenBase/EvtPatches.hh"
23 #include "EvtGenBase/EvtPatches.hh"
24 #include "EvtGenBase/EvtReport.hh"
25 #include "EvtGenModels/EvtBToVlnuBallFF.hh"
26 #include "EvtGenBase/EvtId.hh"
27 #include <string>
28 #include "EvtGenBase/EvtPDL.hh"
29 #include <math.h>
30 #include <stdlib.h>
31
32 EvtBToVlnuBallFF::EvtBToVlnuBallFF(double    r2_A1, 
33                                    double mfit2_A1,
34                                    double    r1_A2,
35                                    double    r2_A2,
36                                    double mfit2_A2,
37                                    double    r1_V,
38                                    double    r2_V,
39                                    double mfit2_V) {
40
41   _r2_A1    = r2_A1;
42   _mfit2_A1 = mfit2_A1;
43   _r1_A2    = r1_A2;
44   _r2_A2    = r2_A2;
45   _mfit2_A2 = mfit2_A2;
46   _r1_V     = r1_V;
47   _r2_V     = r2_V;
48   _mfit2_V  = mfit2_V;
49   
50   return;
51 }
52
53
54 void EvtBToVlnuBallFF::getvectorff(EvtId parent,EvtId /*daught*/,
55                                    double t, double /*mass*/, double *a1f,
56                                    double *a2f, double *vf, double *a0f ){
57   
58   // FF calculations taken from the LCSR calculation of 
59   // P. Ball, R. Zwicky, Phys.~Rev.~{\bf D71} 014029 (2005), hep-ph/0412079.
60
61   //Define mBstar
62   EvtId Bplus = EvtPDL::getId("B+");
63   EvtId Bminus = EvtPDL::getId("B-");
64   double mBstar = EvtPDL::getMeanMass(EvtPDL::getId("B*0"));
65   if (parent==Bplus || parent==Bminus) mBstar = EvtPDL::getMeanMass(EvtPDL::getId("B*+")); 
66   
67   double q2 = t;
68   *a1f = _r2_A1/(1.-q2/_mfit2_A1);
69   *a2f = _r1_A2/(1.-q2/_mfit2_A2) + _r2_A2/pow(1.-q2/_mfit2_A2,2.);
70   *vf  = _r1_V /(1.-q2/mBstar/mBstar) + _r2_V/(1.-q2/_mfit2_V);
71   *a0f = 0.0;
72     
73   return;
74   
75   // OLD STUFF from HQETFF
76
77 //   double mb=EvtPDL::getMeanMass(parent);
78 //   double w = ((mb*mb)+(mass*mass)-t)/(2.0*mb*mass);
79
80 // Form factors have a general form, with parameters passed in
81 // from the arguements.
82
83 //   double rstar = ( 2.0*sqrt(mb*mass))/(mb+mass);
84 //   double ha1 = 1-rho2*(w-1);
85
86 //   *a1f = (1.0 - (t/((mb+mass)*(mb+mass))))*ha1;
87 //   *a1f = (*a1f)/rstar;
88 //   *a2f = (r2/rstar)*ha1;
89 //   *vf = (r1/rstar)*ha1;
90
91 }
92
93
94 void EvtBToVlnuBallFF::getscalarff(EvtId, EvtId, double, double, double*, 
95                                double*){
96   
97   report(ERROR,"EvtGen") << "Not implemented :getvectorff in EvtBToVlnuBallFF.\n";  
98   ::abort();
99
100 }
101
102
103
104 void EvtBToVlnuBallFF::gettensorff(EvtId, EvtId, double, double, double*, 
105                                double*, double*, double*){
106   
107   report(ERROR,"EvtGen") << "Not implemented :gettensorff in EvtBToVlnuBallFF.\n";  
108   ::abort();
109
110 }
111
112
113
114 void EvtBToVlnuBallFF::getbaryonff(EvtId, EvtId, double, double, double*, 
115                                double*, double*, double*){
116   
117   report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtBToVlnuBallFF.\n";  
118   ::abort();
119
120 }
121
122
123 void EvtBToVlnuBallFF::getdiracff(EvtId, EvtId, double, double, double*, double*,
124                                   double*, double*, double*, double*) {
125   
126   report(ERROR,"EvtGen") << "Not implemented :getdiracff in EvtBToVlnuBallFF.\n";
127   ::abort();
128
129 }
130
131 void EvtBToVlnuBallFF::getraritaff(EvtId, EvtId, double, double, double*, double*, 
132                                    double*, double*, double*, double*, double*, double*) {
133   
134   report(ERROR,"EvtGen") << "Not implemented :getraritaff in EvtBToVlnuBallFF.\n";
135   ::abort();
136
137 }