]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TEvtGen/EvtGenModels/EvtBToPlnuBKFF.cpp
Updates EvtGen Code
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenModels / EvtBToPlnuBKFF.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: EvtGenModels/EvtBToPlnuBK.cc
12 //
13 // Description: B->Xu l nu with BK (Becirevic-Kaidalov) parametrization
14 //              Xu is a pseudoscalar (pi_plus,pi0,eta or eta_prime)
15 //
16 // Modification history:
17 //
18 //    Martin Simard, U. de Montreal, 08/01/2007    Module created
19 //
20 //------------------------------------------------------------------------
21 //
22 #include "EvtGenBase/EvtPatches.hh"
23 #include "EvtGenBase/EvtPatches.hh"
24 #include "EvtGenBase/EvtReport.hh"
25 #include "EvtGenModels/EvtBToPlnuBKFF.hh"
26 #include "EvtGenBase/EvtId.hh"
27 #include <string>
28 #include "EvtGenBase/EvtPDL.hh"
29 #include <math.h>
30 #include <stdlib.h>
31
32 EvtBToPlnuBKFF::EvtBToPlnuBKFF(double alpha, double beta) {
33
34   _alpha = alpha;
35   _beta = beta;
36   
37   return;
38 }
39
40
41 void EvtBToPlnuBKFF::getscalarff(EvtId parent,EvtId /*daught*/,
42                             double t, double /*mass*/, double *fp, double *f0) {
43
44   //Define mBstar
45   EvtId Bplus = EvtPDL::getId("B+");
46   EvtId Bminus = EvtPDL::getId("B-");
47   double mBstar = EvtPDL::getMeanMass(EvtPDL::getId("B*0"));
48   if(parent==Bplus || parent==Bminus) mBstar = EvtPDL::getMeanMass(EvtPDL::getId("B*+")); 
49   double mBstar2=mBstar*mBstar;
50   
51   //Compute BK parametrization (t==q2)
52   double fplus=1.0/((1.0-t/mBstar2)*(1.0-_alpha*t/mBstar2));
53   double fzero=1.0/(1.0-t/(mBstar2*_beta));
54
55   *fp=fplus;
56   *f0=fzero;
57   
58   return;
59 }
60
61
62 void EvtBToPlnuBKFF::getvectorff(EvtId, EvtId, double, double, double*, 
63                                double*, double*, double*){
64   
65   report(ERROR,"EvtGen") << "Not implemented :getvectorff in EvtBToPlnuBKFF.\n";  
66   ::abort();
67
68 }
69
70
71
72 void EvtBToPlnuBKFF::gettensorff(EvtId, EvtId, double, double, double*, 
73                                double*, double*, double*){
74   
75   report(ERROR,"EvtGen") << "Not implemented :gettensorff in EvtBToPlnuBKFf.\n";  
76   ::abort();
77
78 }
79
80
81
82 void EvtBToPlnuBKFF::getbaryonff(EvtId, EvtId, double, double, double*, 
83                                double*, double*, double*){
84   
85   report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtBToPlnuBKFF.\n";  
86   ::abort();
87
88 }
89
90 void EvtBToPlnuBKFF::getdiracff(EvtId, EvtId, double, double, double*, double*,
91                                 double*, double*, double*, double*) {
92   
93   report(ERROR,"EvtGen") << "Not implemented :getdiracff in EvtBToPlnuBKFF.\n";
94   ::abort();
95
96 }
97
98 void EvtBToPlnuBKFF::getraritaff(EvtId, EvtId, double, double, double*, double*, 
99                                  double*, double*, double*, double*, double*, double*) {
100   
101   report(ERROR,"EvtGen") << "Not implemented :getraritaff in EvtBToPlnuBKFF.\n";
102   ::abort();
103
104 }
105