]>
Commit | Line | Data |
---|---|---|
0ca57c2f | 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: EvtBCVFF.cc | |
12 | // | |
13 | // Description: form factors for B->Vlnu | |
14 | // | |
15 | // Modification history: | |
16 | // | |
17 | // AVL Jul 6, Module created | |
18 | // | |
19 | //------------------------------------------------------------------------ | |
20 | // | |
21 | #include "EvtGenBase/EvtPatches.hh" | |
22 | #include "EvtGenBase/EvtPatches.hh" | |
23 | #include "EvtGenBase/EvtReport.hh" | |
24 | #include "EvtGenModels/EvtBCVFF.hh" | |
25 | ||
26 | #include "EvtGenBase/EvtId.hh" | |
27 | #include <string> | |
28 | #include <math.h> | |
29 | #include "EvtGenBase/EvtPDL.hh" | |
30 | #include <stdlib.h> | |
31 | #include <iostream> | |
32 | ||
33 | using namespace std; | |
34 | ||
35 | EvtBCVFF::EvtBCVFF(int idV, int fit) { | |
36 | ||
37 | idVector = idV; | |
38 | whichfit = fit; | |
39 | //cout<<"==== EvtBCVFF:: idVector="<<idVector<<" whichfit="<<whichfit<<endl; | |
40 | return; | |
41 | } | |
42 | ||
43 | void EvtBCVFF::getvectorff(EvtId,EvtId, | |
44 | double t, double, double *a1f, | |
45 | double *a2f, double *vf, double *a0f ){ | |
46 | double q2=t; | |
47 | ||
48 | if(whichfit == 0) { | |
49 | *vf = 0; | |
50 | *a0f = 0; | |
51 | *a1f = 1; | |
52 | *a2f=0; | |
53 | ||
54 | return; | |
55 | }; | |
56 | ||
57 | if( idVector == EvtPDL::getId("J/psi").getId() ) { // Bc -> J/psi | |
58 | if(whichfit == 1) { // SR form factor set from [Kiselev, hep-ph/0211021] | |
59 | double Mbc = 6.277, Mpsi=3.0967; // Experimental values | |
60 | double Mpole2 = 4.5*4.5, den = 1./(1.-q2/Mpole2); | |
61 | double FV = 0.11*den, | |
62 | FAp = -0.074*den, | |
63 | FA0 = 5.9*den, | |
64 | FAm = 0.12*den; | |
65 | *vf = (Mbc + Mpsi)*FV; | |
66 | *a2f = -(Mbc+Mpsi)*FAp; | |
67 | *a1f = FA0/(Mbc+Mpsi); | |
68 | *a0f = (q2*FAm + (Mbc+Mpsi)*(*a1f)-(Mbc-Mpsi)*(*a2f))/(2*Mpsi); | |
69 | return; | |
70 | } | |
71 | else if(whichfit == 2) { // form factor set from [Ebert, hep-ph/0306306] | |
72 | *vf = (0.49077824756158533 - 0.0012925655191347828*q2)/(1 - 0.06292520325875656*q2); | |
73 | *a0f = (0.4160345034630221 - 0.0024720095310225023*q2)/(1 - 0.061603451915567785*q2); | |
74 | *a1f = (0.4970212860605933 - 0.0067519730024654745*q2)/(1 - 0.050487026667172176*q2); | |
75 | *a2f = (0.7315284919705497 + 0.0014263826220727142*q2 - 0.0006946090066269195*q2*q2)/(1 - 0.04885587273651653*q2); | |
76 | return; | |
77 | }; | |
78 | } | |
79 | else if(idVector == EvtPDL::getId("psi(2S)").getId()) { // Bc -> psi((2S) | |
80 | if(whichfit == 1) { | |
81 | ////cout<<"BC2:: psi2S, Kiselev, q2="<<q2<<endl; | |
82 | double Mbc = 6.277, Mpsi=3.0967, Mpsi2S = 3.686, kappa = Mpsi/Mpsi2S; // Experimental values | |
83 | double Mpole2 = 4.5*4.5, den=1./(1.-q2/Mpole2); | |
84 | double FV = 0.11*den*kappa/3.1, | |
85 | FAp = -0.074*den*kappa/4.9, | |
86 | FA0 = 5.9*den*kappa/3.5, | |
87 | FAm = 0.12*den*kappa/2.3; | |
88 | *vf = (Mbc + Mpsi2S)*FV; | |
89 | *a2f = -(Mbc+Mpsi2S)*FAp; | |
90 | *a1f = FA0/(Mbc+Mpsi2S); | |
91 | *a0f = (q2*FAm + (Mbc+Mpsi2S)*(*a1f)-(Mbc-Mpsi2S)*(*a2f))/(2*Mpsi2S); | |
92 | return; | |
93 | } | |
94 | else if(whichfit == 2) { | |
95 | ////cout<<"BC2:: psi2S, Ebert, q2="<<q2<<endl; | |
96 | *vf = (0.24177223968739653 - 0.053589051007278135*q2)/(1 - 0.0977848994260899*q2); | |
97 | *a0f = (0.23996026570086615 - 0.03530198514007337*q2)/(1 - 0.09371162519983989*q2); | |
98 | *a1f = (0.17418379258849329 - 0.004129699022085851*q2*q2)/(1 + 0.06607665248402918*q2); | |
99 | *a2f = (0.1352376939112041 - 0.040361722565209444*q2 + 0.003343515369431853*q2*q2)/(1 - 0.1463698128333418*q2); | |
100 | return; | |
101 | }; | |
102 | } | |
103 | else { | |
104 | report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtBCVFF.\n"; | |
105 | ::abort(); | |
106 | }; | |
107 | } | |
108 | ||
109 | ||
110 | void EvtBCVFF::getscalarff(EvtId, EvtId, double, double, double*, | |
111 | double*){ | |
112 | ||
113 | report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtBCVFF.\n"; | |
114 | ::abort(); | |
115 | ||
116 | } | |
117 | ||
118 | ||
119 | ||
120 | void EvtBCVFF::gettensorff(EvtId, EvtId, double, double, double*, | |
121 | double*, double*, double*){ | |
122 | ||
123 | report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtBCVFF.\n"; | |
124 | ::abort(); | |
125 | ||
126 | } | |
127 | ||
128 | ||
129 | ||
130 | void EvtBCVFF::getbaryonff(EvtId, EvtId, double, double, double*, | |
131 | double*, double*, double*){ | |
132 | ||
133 | report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtBCVFF.\n"; | |
134 | ::abort(); | |
135 | ||
136 | } | |
137 | ||
138 | void EvtBCVFF::getdiracff(EvtId, EvtId, double, double, double*, double*, | |
139 | double*, double*, double*, double*) { | |
140 | ||
141 | report(ERROR,"EvtGen") << "Not implemented :getdiracff in EvtBCVFF.\n"; | |
142 | ::abort(); | |
143 | ||
144 | } | |
145 | ||
146 | void EvtBCVFF::getraritaff(EvtId, EvtId, double, double, double*, double*, | |
147 | double*, double*, double*, double*, double*, double*) { | |
148 | ||
149 | report(ERROR,"EvtGen") << "Not implemented :getraritaff in EvtBCVFF.\n"; | |
150 | ::abort(); | |
151 | ||
152 | } | |
153 |