]>
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: | |
9 | // Copyright (C) 1998 Caltech, UCSB | |
10 | // | |
11 | // Module: EvtBaryonVminusAFF.cc | |
12 | // | |
13 | // Description: Routine to implement semileptonic form factors | |
14 | // according to the model BaryonVminusA | |
15 | // | |
16 | // Modification history: | |
17 | // | |
18 | // R.J. Tesarek May 28, 2004 Module created | |
19 | // Karen Gibson 1/20/2006 Module updated for 1/2+->1/2+, | |
20 | // 1/2+->1/2-, 1/2+->3/2- Lambda decays | |
21 | // | |
22 | //-------------------------------------------------------------------------- | |
23 | #include "EvtGenBase/EvtPatches.hh" | |
24 | #include "EvtGenBase/EvtReport.hh" | |
25 | #include "EvtGenModels/EvtBaryonPCRFF.hh" | |
26 | #include "EvtGenBase/EvtPDL.hh" | |
27 | #include "EvtGenBase/EvtId.hh" | |
28 | #include "EvtGenBase/EvtIdSet.hh" | |
29 | #include "EvtGenBase/EvtConst.hh" | |
30 | #include <string> | |
31 | #include <math.h> | |
32 | #include <stdlib.h> | |
33 | using std::endl; | |
34 | ||
35 | void EvtBaryonPCRFF::getdiracff(EvtId parent, EvtId daught, | |
36 | double q2, double /* mass */ , | |
37 | double *f1, double *f2, double *f3, | |
38 | double *g1, double *g2, double *g3 ) { | |
39 | ||
40 | // Baryons (partial list 5/28/04) | |
41 | static EvtId LAMCP=EvtPDL::getId("Lambda_c+"); | |
42 | static EvtId LAMCM=EvtPDL::getId("anti-Lambda_c-"); | |
43 | static EvtId LAMC1P=EvtPDL::getId("Lambda_c(2593)+"); | |
44 | static EvtId LAMC1M=EvtPDL::getId("anti-Lambda_c(2593)-"); | |
45 | static EvtId LAMB=EvtPDL::getId("Lambda_b0"); | |
46 | static EvtId LAMBB=EvtPDL::getId("anti-Lambda_b0"); | |
47 | ||
48 | double F1, F2, F3, G1, G2, G3; | |
49 | ||
50 | if( parent==LAMB || parent==LAMBB ) { | |
51 | // Implement constituent quark model form factors predicted | |
52 | // by M. Pervin, W. Roberst, and S. Capstick, Phys. Rev. C72, 035201 (2005) | |
53 | ||
54 | if( daught==LAMCP|| daught==LAMCM ) { | |
55 | ||
56 | // Parameters needed in the calculation; | |
57 | double mQ = 5.28; | |
58 | double mq = 1.89; | |
59 | double md = 0.40; | |
60 | double MLamB = EvtPDL::getMass(parent); | |
61 | double MLamC = EvtPDL::getMass(daught); | |
62 | ||
63 | double aL = 0.59; | |
64 | double aLp = 0.55; | |
65 | ||
66 | double aL2 = aL*aL; | |
67 | double aLp2 = aLp*aLp; | |
68 | double aLLp2 = 0.5*(aL2+aLp2); | |
69 | ||
70 | // relativistic correction factor | |
71 | double k2 = 1.0; | |
72 | double rho2 = 3.*md*md/(2.*k2*aLLp2); | |
73 | ||
74 | // w = scalar product of the 4 velocities of the Lb and Lc. | |
75 | double w = 0.5*(MLamB*MLamB + MLamC*MLamC - q2)/MLamB/MLamC; | |
76 | ||
77 | double I = pow(aL*aLp/aLLp2, 1.5)*exp(-rho2*(w*w-1.)); | |
78 | ||
79 | // Calculate the form factors | |
80 | F1 = I*( 1.0 + (md/aLLp2)*( (aLp2/mq)+(aL2/mQ) ) ); | |
81 | F2 = -I*( (md/mq)*(aLp2/aLLp2) - aL2*aLp2/(4.*aLLp2*mq*mQ) ); | |
82 | F3 = -I*md*aL2/(mQ*aLLp2); | |
83 | ||
84 | G1 = I*( 1.0 - (aL2*aLp2)/(12.*aLLp2*mq*mQ) ); | |
85 | G2 = -I*( md*aLp2/(mq*aLLp2) | |
86 | + (aL2*aLp2)/(12.*aLLp2*mq*mQ)*(1.+12.*md*md/aLLp2) ); | |
87 | G3 = I*( md*aL2/(mQ*aLLp2) + md*md*aL2*aLp2/(mq*mQ*aLLp2*aLLp2) ); | |
88 | ||
89 | // Set form factors to be passed to the amplitude calc. | |
90 | *f1 = F1; | |
91 | *f2 = F2; | |
92 | *f3 = F3; | |
93 | *g1 = G1; | |
94 | *g2 = G2; | |
95 | *g3 = G3; | |
96 | ||
97 | } | |
98 | ||
99 | else if( daught==LAMC1P || daught==LAMC1M ) { | |
100 | ||
101 | double mQ = 5.28; | |
102 | double mq = 1.89; | |
103 | double md = 0.40; | |
104 | double MLamB = EvtPDL::getMass(parent); | |
105 | double MLamC = EvtPDL::getMass(daught); | |
106 | ||
107 | double aL = 0.59; | |
108 | double aLp = 0.47; | |
109 | ||
110 | double aL2 = aL*aL; | |
111 | double aLp2 = aLp*aLp; | |
112 | double aLLp2 = 0.5*(aL2+aLp2); | |
113 | ||
114 | // relativistic correction factor | |
115 | double k2 = 1.0; | |
116 | double rho2 = 3.*md*md/(2.*k2*aLLp2); | |
117 | ||
118 | // w = scalar product of the 4 velocities of the Lb and Lc. | |
119 | double w = 0.5*(MLamB*MLamB + MLamC*MLamC - q2)/MLamB/MLamC; | |
120 | ||
121 | double I = pow(aL*aLp/aLLp2, 2.5)*exp(-rho2*(w*w-1.)); | |
122 | ||
123 | // Calculate the form factors | |
124 | F1 = I*aL/6.0*( 3.0/mq - 1.0/mQ ); | |
125 | F2 = -I*( 2.0*md/aL - aL/(2.0*mq) + 2.*md*md*aL/(mQ*aLLp2) | |
126 | - (md*aL/(6.*mq*mQ*aLLp2))*( 3.*aL2 - 2.*aLp2)); | |
127 | F3 = I*2.*md*md*aL/(mQ*aLLp2); | |
128 | ||
129 | G1 = I*( 2.0*md/aL - aL/(6.*mQ) | |
130 | + (md*aL/(6.*mq*mQ*aLLp2))*( 3.*aL2 - 2.*aLp2)); | |
131 | G2 = I*( -2.*md/aL + aL/(2.*mq) + aL/(3.*mQ) ); | |
132 | G3 = I*aL/(3.*mQ)*( 1.0 - (md/(2.*mq*aLLp2))*( 3.*aL2 - 2.*aLp2)); | |
133 | ||
134 | // Set form factors to be passed to the amplitude calc. | |
135 | *f1 = F1; | |
136 | *f2 = F2; | |
137 | *f3 = F3; | |
138 | *g1 = G1; | |
139 | *g2 = G2; | |
140 | *g3 = G3; | |
141 | } | |
142 | } | |
143 | ||
144 | else { | |
145 | *f1 = 1.0; | |
146 | *f2 = 1.0; | |
147 | *f3 = 0.0; | |
148 | *g1 = 1.0; | |
149 | *g2 = 1.0; | |
150 | *g3 = 0.0; | |
151 | } | |
152 | ||
153 | return ; | |
154 | } | |
155 | ||
156 | ||
157 | void EvtBaryonPCRFF::getraritaff( EvtId parent, EvtId daught, | |
158 | double q2, double /* mass */, | |
159 | double *f1, double *f2, double *f3, double *f4, | |
160 | double *g1, double *g2, double *g3, double *g4 ) { | |
161 | ||
162 | // Baryons (partial list 5/28/04) | |
163 | static EvtId LAMB=EvtPDL::getId("Lambda_b0"); | |
164 | static EvtId LAMBB=EvtPDL::getId("anti-Lambda_b0"); | |
165 | static EvtId LAMC2P=EvtPDL::getId("Lambda_c(2625)+"); | |
166 | static EvtId LAMC2M=EvtPDL::getId("anti-Lambda_c(2625)-"); | |
167 | ||
168 | double F1, F2, F3, F4, G1, G2, G3, G4; | |
169 | ||
170 | if( parent==LAMB || parent==LAMBB ) { | |
171 | // Implement constituent quark model form factors predicted | |
172 | // by M. Pervin, W. Roberst, and S. Capstick, Phys. Rev. C72, 035201 (2005) | |
173 | ||
174 | if( daught==LAMC2P|| daught==LAMC2M ) { | |
175 | ||
176 | double mQ = 5.28; | |
177 | double mq = 1.89; | |
178 | double md = 0.40; | |
179 | double MLamB = EvtPDL::getMass(parent); | |
180 | double MLamC = EvtPDL::getMass(daught); | |
181 | ||
182 | double aL = 0.59; | |
183 | double aLp = 0.47; | |
184 | ||
185 | double aL2 = aL*aL; | |
186 | double aLp2 = aLp*aLp; | |
187 | double aLLp2 = 0.5*(aL2+aLp2); | |
188 | ||
189 | // relativistic correction factor | |
190 | double k2 = 1.0; | |
191 | double rho2 = 3.*md*md/(2.*k2*aLLp2); | |
192 | ||
193 | // w = scalar product of the 4 velocities of the Lb and Lc. | |
194 | double w = 0.5*(MLamB*MLamB + MLamC*MLamC - q2)/MLamB/MLamC; | |
195 | ||
196 | double I = -(1./sqrt(3.))*pow(aL*aLp/aLLp2, 2.5)*exp(-rho2*(w*w-1.)); | |
197 | ||
198 | // Calculate the form factors | |
199 | F1 = I*3.0*md/aL*( 1.0 + (md/aLLp2)*( (aLp2/mq)+(aL2/mQ) ) ); | |
200 | F2 = -I*( (3.*md*md/mq)*(aLp2/(aLLp2*aL2)) - 5.*aL*aLp2*md/(4.*aLLp2*mq*mQ) ); | |
201 | F3 = -I*( 3.*md*md*aL/(mQ*aLLp2) + aL/(2.*mQ) ); | |
202 | F4 = I*aL/mQ; | |
203 | ||
204 | G1 = I*( 3.0*md/aL - (aL/(2.*mQ))*(1. + 3.*md*aLp2/(2.*aLLp2*mq) ) ); | |
205 | G2 = -I*( (3.*md*md/mq)*(aLp2/(aLLp2*aL)) + aL*aLp2*md/(4.*aLLp2*aLLp2*mq*mQ)*(aLLp2+12.*md*md) ); | |
206 | G3 = I*aL/(mQ*aLLp2)*( aLLp2/2. + 3.*md*md + aLp2*md/(mq*aLLp2)*(aLLp2+6.*md*md) ); | |
207 | G4 = -I*( aL/mQ + md/(mq*mQ)*aLp2*aL/aLLp2 ); | |
208 | ||
209 | // Set form factors to be passed to the amplitude calc. | |
210 | *f1 = F1; | |
211 | *f2 = F2; | |
212 | *f3 = F3; | |
213 | *f4 = F4; | |
214 | *g1 = G1; | |
215 | *g2 = G2; | |
216 | *g3 = G3; | |
217 | *g4 = G4; | |
218 | } | |
219 | } | |
220 | ||
221 | else { | |
222 | *f1 = 1.0; | |
223 | *f2 = 1.0; | |
224 | *f3 = 0.0; | |
225 | *f4 = 0.0; | |
226 | *g1 = 1.0; | |
227 | *g2 = 1.0; | |
228 | *g3 = 0.0; | |
229 | *g4 = 0.0; | |
230 | ||
231 | } | |
232 | ||
233 | return ; | |
234 | ||
235 | ||
236 | } | |
237 | ||
238 | void EvtBaryonPCRFF::getscalarff(EvtId, EvtId, double, double, double*, double*) { | |
239 | ||
240 | report(ERROR,"EvtGen") << "Not implemented :getscalarff in EvtBaryonPCRFF.\n"; | |
241 | ::abort(); | |
242 | ||
243 | } | |
244 | ||
245 | void EvtBaryonPCRFF::getvectorff(EvtId, EvtId, double, double, double*, double*, | |
246 | double*, double*) { | |
247 | ||
248 | report(ERROR,"EvtGen") << "Not implemented :getvectorff in EvtBaryonPCRFF.\n"; | |
249 | ::abort(); | |
250 | ||
251 | } | |
252 | ||
253 | void EvtBaryonPCRFF::gettensorff(EvtId, EvtId, double, double, double*, double*, | |
254 | double*, double*) { | |
255 | ||
256 | report(ERROR,"EvtGen") << "Not implemented :gettensorff in EvtBaryonPCRFF.\n"; | |
257 | ::abort(); | |
258 | ||
259 | } | |
260 | ||
261 | void EvtBaryonPCRFF::getbaryonff(EvtId, EvtId, double, double, double*, | |
262 | double*, double*, double*){ | |
263 | ||
264 | report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtBaryonPCRFF.\n"; | |
265 | ::abort(); | |
266 | ||
267 | } |