]>
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: EvtISGWFF.cc | |
12 | // | |
13 | // Description: Routine to implement semileptonic form factors | |
14 | // according to the model ISGW | |
15 | // | |
16 | // Modification history: | |
17 | // | |
18 | // DJL April 17, 1998 Module created | |
19 | // | |
20 | //------------------------------------------------------------------------ | |
21 | // | |
22 | #include "EvtGenBase/EvtPatches.hh" | |
23 | #include "EvtGenBase/EvtPatches.hh" | |
24 | #include "EvtGenBase/EvtReport.hh" | |
25 | #include "EvtGenModels/EvtISGWFF.hh" | |
26 | #include "EvtGenBase/EvtPDL.hh" | |
27 | #include "EvtGenBase/EvtId.hh" | |
28 | #include <string> | |
29 | #include <math.h> | |
30 | #include <stdlib.h> | |
31 | using std::endl; | |
32 | ||
33 | void EvtISGWFF::getscalarff(EvtId parent,EvtId daught, | |
34 | double t, double mass, double *fpf, | |
35 | double *f0f ) { | |
36 | ||
37 | //added by Lange Jan4,2000 | |
38 | static EvtId D0=EvtPDL::getId("D0"); | |
39 | static EvtId D0B=EvtPDL::getId("anti-D0"); | |
40 | static EvtId DP=EvtPDL::getId("D+"); | |
41 | static EvtId DM=EvtPDL::getId("D-"); | |
42 | ||
43 | static EvtId D3P0P=EvtPDL::getId("D_0*+"); | |
44 | static EvtId D3P0N=EvtPDL::getId("D_0*-"); | |
45 | static EvtId D3P00=EvtPDL::getId("D_0*0"); | |
46 | static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); | |
47 | ||
48 | static EvtId D21S0P=EvtPDL::getId("hi"); | |
49 | static EvtId D21S0N=EvtPDL::getId("hi"); | |
50 | static EvtId D21S00=EvtPDL::getId("hi"); | |
51 | static EvtId D21S0B=EvtPDL::getId("hi"); | |
52 | ||
53 | static EvtId ETA2S=EvtPDL::getId("eta(2S)"); | |
54 | ||
55 | static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); | |
56 | static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); | |
57 | static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); | |
58 | ||
59 | static EvtId PIP=EvtPDL::getId("pi+"); | |
60 | static EvtId PIM=EvtPDL::getId("pi-"); | |
61 | static EvtId PI0=EvtPDL::getId("pi0"); | |
62 | ||
63 | static EvtId A0P=EvtPDL::getId("a_0+"); | |
64 | static EvtId A0M=EvtPDL::getId("a_0-"); | |
65 | static EvtId A00=EvtPDL::getId("a_00"); | |
66 | ||
67 | static EvtId F0=EvtPDL::getId("f_0"); | |
68 | static EvtId F0PR=EvtPDL::getId("f'_0"); | |
69 | ||
70 | static EvtId ETA=EvtPDL::getId("eta"); | |
71 | static EvtId ETAPR=EvtPDL::getId("eta'"); | |
72 | ||
73 | static EvtId KP=EvtPDL::getId("K+"); | |
74 | static EvtId KM=EvtPDL::getId("K-"); | |
75 | static EvtId K0=EvtPDL::getId("K0"); | |
76 | static EvtId KB=EvtPDL::getId("anti-K0"); | |
77 | static EvtId K0S=EvtPDL::getId("K_S0"); | |
78 | static EvtId K0L=EvtPDL::getId("K_L0"); | |
79 | ||
80 | static EvtId K0STP=EvtPDL::getId("K_0*+"); | |
81 | static EvtId K0STM=EvtPDL::getId("K_0*-"); | |
82 | static EvtId K0ST0=EvtPDL::getId("K_0*0"); | |
83 | static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); | |
84 | ||
85 | static EvtId DSP=EvtPDL::getId("D_s+"); | |
86 | static EvtId DSM=EvtPDL::getId("D_s-"); | |
87 | ||
88 | static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); | |
89 | static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); | |
90 | ||
91 | double fmf; | |
92 | double mb=EvtPDL::getMeanMass(parent); | |
93 | ||
94 | if (daught==PI0||daught==PIP||daught==PIM||daught==ETA|| | |
95 | daught==ETAPR||daught==D0||daught==D0B||daught==DP|| | |
96 | daught==DM||daught==KP||daught==KM||daught==K0||daught==K0L|| | |
97 | daught==KB||daught==DSP||daught==DSM||daught==K0S) { | |
98 | ||
99 | EvtISGW1FF1S0(parent,daught,t,mass,fpf,&fmf); | |
100 | } | |
101 | ||
102 | if (daught==PI2S0||daught==PI2SP||daught==PI2SM||daught==ETA2S|| | |
103 | daught==D21S0P||daught==D21S0B||daught==D21S0N||daught==D21S00){ | |
104 | EvtISGW1FF21S0(parent,daught,t,mass,fpf,&fmf); | |
105 | } | |
106 | ||
107 | if (daught==A00||daught==A0P||daught==A0M||daught==F0|| | |
108 | daught==F0PR||daught==D3P0P||daught==D3P00||daught==D3P0B|| | |
109 | daught==D3P0N||daught==K0STM||daught==K0STB||daught==K0STP|| | |
110 | daught==D3P0SP||daught==D3P0SN|| | |
111 | daught==K0ST0) { | |
112 | EvtISGW1FF3P0(parent,daught,t,mass,fpf,&fmf); | |
113 | } | |
114 | ||
115 | *f0f = (fmf/((mb*mb-mass*mass)/t))+(*fpf); | |
116 | ||
117 | return ; | |
118 | } | |
119 | ||
120 | void EvtISGWFF::gettensorff(EvtId parent,EvtId daught, | |
121 | double t, double mass, double *hf, | |
122 | double *kf, double *bpf, double *bmf ){ | |
123 | ||
124 | //added by Lange Jan4,2000 | |
125 | EvtISGW1FF3P2(parent,daught,t,mass,hf,kf,bpf,bmf); | |
126 | ||
127 | return; | |
128 | ||
129 | } | |
130 | ||
131 | ||
132 | void EvtISGWFF::getvectorff(EvtId parent,EvtId daught, | |
133 | double t, double mass, double *a1f, | |
134 | double *a2f, double *vf, double *a0f ){ | |
135 | ||
136 | //added by Lange Jan4,2000 | |
137 | static EvtId DST0=EvtPDL::getId("D*0"); | |
138 | static EvtId DSTB=EvtPDL::getId("anti-D*0"); | |
139 | static EvtId DSTP=EvtPDL::getId("D*+"); | |
140 | static EvtId DSTM=EvtPDL::getId("D*-"); | |
141 | ||
142 | static EvtId D1P1P=EvtPDL::getId("D_1+"); | |
143 | static EvtId D1P1N=EvtPDL::getId("D_1-"); | |
144 | static EvtId D1P10=EvtPDL::getId("D_10"); | |
145 | static EvtId D1P1B=EvtPDL::getId("anti-D_10"); | |
146 | ||
147 | static EvtId D3P1P=EvtPDL::getId("D'_1+"); | |
148 | static EvtId D3P1N=EvtPDL::getId("D'_1-"); | |
149 | static EvtId D3P10=EvtPDL::getId("D'_10"); | |
150 | static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); | |
151 | ||
152 | static EvtId D23S1P=EvtPDL::getId("hi"); | |
153 | static EvtId D23S1N=EvtPDL::getId("hi"); | |
154 | static EvtId D23S10=EvtPDL::getId("hi"); | |
155 | static EvtId D23S1B=EvtPDL::getId("hi"); | |
156 | ||
157 | static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); | |
158 | static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); | |
159 | static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); | |
160 | static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); | |
161 | ||
162 | static EvtId RHOP=EvtPDL::getId("rho+"); | |
163 | static EvtId RHOM=EvtPDL::getId("rho-"); | |
164 | static EvtId RHO0=EvtPDL::getId("rho0"); | |
165 | ||
166 | static EvtId A1P=EvtPDL::getId("a_1+"); | |
167 | static EvtId A1M=EvtPDL::getId("a_1-"); | |
168 | static EvtId A10=EvtPDL::getId("a_10"); | |
169 | ||
170 | static EvtId B1P=EvtPDL::getId("b_1+"); | |
171 | static EvtId B1M=EvtPDL::getId("b_1-"); | |
172 | static EvtId B10=EvtPDL::getId("b_10"); | |
173 | ||
174 | static EvtId H1=EvtPDL::getId("h_1"); | |
175 | static EvtId H1PR=EvtPDL::getId("h'_1"); | |
176 | ||
177 | static EvtId F1=EvtPDL::getId("f_1"); | |
178 | static EvtId F1PR=EvtPDL::getId("f'_1"); | |
179 | ||
180 | static EvtId OMEG=EvtPDL::getId("omega"); | |
181 | ||
182 | static EvtId KSTP=EvtPDL::getId("K*+"); | |
183 | static EvtId KSTM=EvtPDL::getId("K*-"); | |
184 | static EvtId KST0=EvtPDL::getId("K*0"); | |
185 | static EvtId KSTB=EvtPDL::getId("anti-K*0"); | |
186 | ||
187 | static EvtId K1P=EvtPDL::getId("K_1+"); | |
188 | static EvtId K1M=EvtPDL::getId("K_1-"); | |
189 | static EvtId K10=EvtPDL::getId("K_10"); | |
190 | static EvtId K1B=EvtPDL::getId("anti-K_10"); | |
191 | ||
192 | static EvtId K1STP=EvtPDL::getId("K'_1+"); | |
193 | static EvtId K1STM=EvtPDL::getId("K'_1-"); | |
194 | static EvtId K1ST0=EvtPDL::getId("K'_10"); | |
195 | static EvtId K1STB=EvtPDL::getId("anti-K'_10"); | |
196 | ||
197 | static EvtId PHI=EvtPDL::getId("phi"); | |
198 | ||
199 | static EvtId D1P1SP=EvtPDL::getId("D_s1+"); | |
200 | static EvtId D1P1SN=EvtPDL::getId("D_s1-"); | |
201 | ||
202 | static EvtId D3P1SP=EvtPDL::getId("D'_s1*+"); | |
203 | static EvtId D3P1SN=EvtPDL::getId("D'_s1*-"); | |
204 | ||
205 | static EvtId DSSTP=EvtPDL::getId("D_s*+"); | |
206 | static EvtId DSSTM=EvtPDL::getId("D_s*-"); | |
207 | ||
208 | double ff,gf,apf,amf; | |
209 | ||
210 | if (daught==DST0||daught==DSTP||daught==DSTM||daught==DSTB|| | |
211 | daught==OMEG||daught==RHO0||daught==RHOM||daught==RHOP|| | |
212 | daught==KSTP||daught==KSTM||daught==KST0||daught==KSTB|| | |
213 | daught==PHI||daught==DSSTP||daught==DSSTM) { | |
214 | EvtISGW1FF3S1(parent,daught,t,mass,&ff,&gf,&apf,&amf); | |
215 | } | |
216 | if (daught==B10||daught==B1P||daught==B1M||daught==H1|| | |
217 | daught==H1PR||daught==D1P1P||daught==D1P10||daught==D1P1B|| | |
218 | daught==D1P1SP||daught==D1P1SN|| | |
219 | daught==D1P1N||daught==K10||daught==K1B||daught==K1P|| | |
220 | daught==K1M) { | |
221 | EvtISGW1FF1P1(parent,daught,t,mass,&ff,&gf,&apf,&amf); | |
222 | } | |
223 | if (daught==RHO2S0||daught==RHO2SP||daught==RHO2SM||daught==OMEG2S|| | |
224 | daught==D23S1P||daught==D23S1B||daught==D23S1N||daught==D23S10){ | |
225 | EvtISGW1FF23S1(parent,daught,t,mass,&ff,&gf,&apf,&amf); | |
226 | } | |
227 | if (daught==A10||daught==A1P||daught==A1M||daught==F1|| | |
228 | daught==F1PR||daught==D3P1P||daught==D3P10||daught==D3P1B|| | |
229 | daught==D3P1N||daught==K1STM||daught==K1STB||daught==K1STP|| | |
230 | daught==D3P1SP||daught==D3P1SN|| | |
231 | daught==K1ST0) { | |
232 | EvtISGW1FF3P1(parent,daught,t,mass,&ff,&gf,&apf,&amf); | |
233 | } | |
234 | ||
235 | // Need to stuff in some factors to make these the ffs that | |
236 | // is used elsewhere... | |
237 | ||
238 | double mb=EvtPDL::getMeanMass(parent); | |
239 | ||
240 | ||
241 | *vf = (gf)*(mb+mass); | |
242 | *a1f = (ff)/(mb+mass); | |
243 | *a2f = -1.0*(apf)*(mb+mass); | |
244 | double a3f = ((mb+mass)/(2.0*mass))*(*a1f) - | |
245 | ((mb-mass)/(2.0*mass))*(*a2f); | |
246 | ||
247 | *a0f = a3f - ( (t*amf)/(2.0*mass)); | |
248 | ||
249 | return; | |
250 | } | |
251 | ||
252 | void EvtISGWFF::EvtISGW1FF3P2 (EvtId parent,EvtId daugt, | |
253 | double t, double mass, | |
254 | double *hf, double *kf, double *bpf, double *bmf ) { | |
255 | ||
256 | //added by Lange Jan4,2000 | |
257 | static EvtId BP=EvtPDL::getId("B+"); | |
258 | static EvtId BM=EvtPDL::getId("B-"); | |
259 | static EvtId B0=EvtPDL::getId("B0"); | |
260 | static EvtId B0B=EvtPDL::getId("anti-B0"); | |
261 | ||
262 | static EvtId D3P2P=EvtPDL::getId("D_2*+"); | |
263 | static EvtId D3P2N=EvtPDL::getId("D_2*-"); | |
264 | static EvtId D3P20=EvtPDL::getId("D_2*0"); | |
265 | static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); | |
266 | ||
267 | static EvtId A2P=EvtPDL::getId("a_2+"); | |
268 | static EvtId A2M=EvtPDL::getId("a_2-"); | |
269 | static EvtId A20=EvtPDL::getId("a_20"); | |
270 | ||
271 | static EvtId F2=EvtPDL::getId("f_2"); | |
272 | static EvtId F2PR=EvtPDL::getId("f'_2"); | |
273 | ||
274 | double mtb; | |
275 | double msd(0.0), mx(0.0), mb(0.0); | |
276 | double msq(0.0), bx2(0.0),mtx,f5; | |
277 | double mum,mup,tm,bb2(0.0),bbx2; | |
278 | double msb(0.0), kap; | |
279 | ||
280 | if (parent==BM||parent==BP||parent==B0||parent==B0B) { | |
281 | msb=5.2; | |
282 | msd=0.33; | |
283 | bb2=0.41*0.41; | |
284 | if (daugt==A20||daugt==A2P||daugt==A2M||daugt==F2||daugt==F2PR) { | |
285 | msq=0.33; | |
286 | bx2=0.27*0.27; | |
287 | } | |
288 | else{ | |
289 | if (daugt==D3P2P||daugt==D3P2N||daugt==D3P2B||daugt==D3P20) { | |
290 | msq=1.82; | |
291 | bx2=0.34*0.34; | |
292 | } | |
293 | else{ | |
294 | report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3P1.\n"; | |
295 | } | |
296 | } | |
297 | } | |
298 | else{ | |
299 | report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_3P1.\n"; | |
300 | } | |
301 | ||
302 | mtb = msb + msd; | |
303 | mtx = msq + msd; | |
304 | ||
305 | mb = EvtPDL::getMeanMass( parent ); | |
306 | mx = mass; | |
307 | ||
308 | mup=1.0/(1.0/msq+1.0/msb); | |
309 | mum=1.0/(1.0/msq-1.0/msb); | |
310 | bbx2=0.5*(bb2+bx2); | |
311 | ||
312 | tm=(mb-mx)*(mb-mx); | |
313 | if (t>tm) t = 0.99*tm; | |
314 | kap = 0.7*0.7; | |
315 | ||
316 | f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0)* | |
317 | exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2)))); | |
318 | ||
319 | *hf = f5*(msd/(sqrt(8.0*bb2)*mtb))*((1.0/msq)-(msd*bb2/(2.0*mum* | |
320 | mtx*bbx2))); | |
321 | ||
322 | *kf = f5*msd*sqrt(2.0/bb2); | |
323 | ||
324 | *bpf = (-1.0*f5*msd/(sqrt(8.0*bb2)*msb*mtx))*(1.0-(msd*msb*bx2/( | |
325 | 2.0*mup*mtb*bbx2))+(msd*msb*bx2*(1.0-(msd*bx2/(2.0*mtb*bbx2)))/ | |
326 | (4.0*mtb*mum*bbx2))); | |
327 | *bmf = 0.0; | |
328 | return; | |
329 | } //get_ff_isgw_1p1 | |
330 | ||
331 | void EvtISGWFF::EvtISGW1FF1S0 ( EvtId parent, EvtId daugt, | |
332 | double t, double mass, double *fpf, double *fmf ) { | |
333 | ||
334 | //added by Lange Jan4,2000 | |
335 | static EvtId BP=EvtPDL::getId("B+"); | |
336 | static EvtId BM=EvtPDL::getId("B-"); | |
337 | static EvtId B0=EvtPDL::getId("B0"); | |
338 | static EvtId B0B=EvtPDL::getId("anti-B0"); | |
339 | ||
340 | static EvtId D0=EvtPDL::getId("D0"); | |
341 | static EvtId D0B=EvtPDL::getId("anti-D0"); | |
342 | static EvtId DP=EvtPDL::getId("D+"); | |
343 | static EvtId DM=EvtPDL::getId("D-"); | |
344 | ||
345 | static EvtId PIP=EvtPDL::getId("pi+"); | |
346 | static EvtId PIM=EvtPDL::getId("pi-"); | |
347 | static EvtId PI0=EvtPDL::getId("pi0"); | |
348 | ||
349 | static EvtId ETA=EvtPDL::getId("eta"); | |
350 | static EvtId ETAPR=EvtPDL::getId("eta'"); | |
351 | ||
352 | double mtb; | |
353 | double msd(0.0), mx(0.0), mb(0.0); | |
354 | double msq(0.0), bx2(0.0),mtx; | |
355 | double f3,kap; | |
356 | double msb(0.0),bb2(0.0),mup,mum,bbx2,tm; | |
357 | ||
358 | if (parent==BM||parent==BP||parent==B0||parent==B0B) { | |
359 | msb=5.2; | |
360 | msd=0.33; | |
361 | bb2=0.41*0.41; | |
362 | if (daugt==PIP||daugt==PIM||daugt==PI0||daugt==ETA||daugt==ETAPR) { | |
363 | msq=0.33; | |
364 | bx2=0.31*0.31; | |
365 | } | |
366 | else{ | |
367 | if (daugt==D0||daugt==DP||daugt==DM||daugt==D0B) { | |
368 | msq=1.82; | |
369 | bx2=0.39*0.39; | |
370 | } | |
371 | else{ | |
372 | report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_1S0.\n"; | |
373 | } | |
374 | } | |
375 | } | |
376 | else{ | |
377 | report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_1S0.\n"; | |
378 | report(ERROR,"EvtGen") << "Parent:"<<parent.getId()<<endl; | |
379 | } | |
380 | ||
381 | mtb = msb + msd; | |
382 | mtx = msq + msd; | |
383 | mb = EvtPDL::getMeanMass( parent ); | |
384 | mx = mass; | |
385 | mup=1.0/(1.0/msq+1.0/msb); | |
386 | mum=1.0/(1.0/msq-1.0/msb); | |
387 | bbx2=0.5*(bb2+bx2); | |
388 | tm=(mb-mx)*(mb-mx); | |
389 | if ( t>tm ) t=0.99*tm; | |
390 | ||
391 | kap = 0.7*0.7; | |
392 | f3 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,3.0/2.0)* | |
393 | exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2)))); | |
394 | ||
395 | *fpf = f3*(1+(msb/(2.0*mum))-(msb*msq*msd*bb2/(4.0*mup*mum*mtx*bbx2))); | |
396 | *fmf = f3*(1.0-(mtb+mtx)*(0.5/msq-(msd*bb2/(4.0*mup*mtx*bbx2)))); | |
397 | ||
398 | return; | |
399 | } //get_ff_isgw_1s0 | |
400 | ||
401 | ||
402 | ||
403 | void EvtISGWFF::EvtISGW1FF3S1(EvtId parent,EvtId daugt,double t, | |
404 | double mass, double *f,double *g,double *ap,double *am){ | |
405 | ||
406 | //added by Lange Jan4,2000 | |
407 | static EvtId BP=EvtPDL::getId("B+"); | |
408 | static EvtId BM=EvtPDL::getId("B-"); | |
409 | static EvtId B0=EvtPDL::getId("B0"); | |
410 | static EvtId B0B=EvtPDL::getId("anti-B0"); | |
411 | ||
412 | static EvtId DST0=EvtPDL::getId("D*0"); | |
413 | static EvtId DSTB=EvtPDL::getId("anti-D*0"); | |
414 | static EvtId DSTP=EvtPDL::getId("D*+"); | |
415 | static EvtId DSTM=EvtPDL::getId("D*-"); | |
416 | ||
417 | static EvtId RHOP=EvtPDL::getId("rho+"); | |
418 | static EvtId RHOM=EvtPDL::getId("rho-"); | |
419 | static EvtId RHO0=EvtPDL::getId("rho0"); | |
420 | ||
421 | static EvtId OMEG=EvtPDL::getId("omega"); | |
422 | ||
423 | double msd(0.0),msq(0.0),bb2(0.0),mum,mtx,bbx2; | |
424 | double bx2(0.0),msb(0.0),tm; | |
425 | double mb,mx,f3, kap; | |
426 | ||
427 | if (parent==BM||parent==BP||parent==B0||parent==B0B) { | |
428 | msb=5.2; | |
429 | msd=0.33; | |
430 | bb2=0.41*0.41; | |
431 | if (daugt==DSTP||daugt==DSTM||daugt==DSTB||daugt==DST0) { | |
432 | msq=1.82; | |
433 | bx2=0.39*0.39; | |
434 | } | |
435 | else{ | |
436 | if (daugt==RHOP||daugt==RHOM||daugt==RHO0||daugt==OMEG) { | |
437 | msq=0.33; | |
438 | bx2=0.31*0.31; | |
439 | } | |
440 | else{ | |
441 | report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3S1.\n"; | |
442 | } | |
443 | } | |
444 | } | |
445 | else{ | |
446 | report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_3S1.\n"; | |
447 | } | |
448 | ||
449 | double mtb; | |
450 | ||
451 | mtb=msb+msd; | |
452 | mtx=msq+msd; | |
453 | ||
454 | mum=1.0/(1.0/msq-1.0/msb); | |
455 | bbx2=0.5*(bb2+bx2); | |
456 | mb=EvtPDL::getMeanMass(parent); | |
457 | mx=mass; | |
458 | tm=(mb-mx)*(mb-mx); | |
459 | if ( t > tm ) t = 0.99*tm; | |
460 | ||
461 | kap = 0.7*0.7; | |
462 | f3 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,3.0/2.0)* | |
463 | exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2)))); | |
464 | ||
465 | *f=2.0*mtb*f3; | |
466 | *g=0.5*f3*((1/msq)-(msd*bb2/(2.0*mum*mtx*bbx2))); | |
467 | *ap=(-1.0*f3/(2.0*mtx))*(1.0+(msd*(bb2-bx2)/(msb | |
468 | *(bb2+bx2)))-(msd*msd*bx2*bx2/(4.0*mum*mtb*bbx2*bbx2))); | |
469 | *am=0.0; | |
470 | ||
471 | } | |
472 | ||
473 | void EvtISGWFF::EvtISGW1FF23S1 (EvtId parent,EvtId daugt, | |
474 | double t, double mass, double *fpf, double *gpf, | |
475 | double *appf, double *apmf ) { | |
476 | //added by Lange Jan4,2000 | |
477 | static EvtId BP=EvtPDL::getId("B+"); | |
478 | static EvtId BM=EvtPDL::getId("B-"); | |
479 | static EvtId B0=EvtPDL::getId("B0"); | |
480 | static EvtId B0B=EvtPDL::getId("anti-B0"); | |
481 | ||
482 | static EvtId D23S1P=EvtPDL::getId("hi"); | |
483 | static EvtId D23S1N=EvtPDL::getId("hi"); | |
484 | static EvtId D23S10=EvtPDL::getId("hi"); | |
485 | static EvtId D23S1B=EvtPDL::getId("hi"); | |
486 | ||
487 | static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); | |
488 | static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); | |
489 | static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); | |
490 | static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); | |
491 | ||
492 | double mtb; | |
493 | double msd(0.0), mx(0.0), mb(0.0); | |
494 | double msq(0.0), bx2(0.0),mtx; | |
495 | double f3,f5,tt; | |
496 | double mum,bb2(0.0),bbx2,tm,msb(0.0); | |
497 | ||
498 | if (parent==BM||parent==BP||parent==B0||parent==B0B) { | |
499 | msb=5.2; | |
500 | msd=0.33; | |
501 | bb2=0.41*0.41; | |
502 | if (daugt==RHO2SP||daugt==RHO2SM||daugt==RHO2S0||daugt==OMEG2S) { | |
503 | msq=0.33; | |
504 | bx2=0.31*0.31; | |
505 | } | |
506 | else{ | |
507 | if (daugt==D23S1N||daugt==D23S10||daugt==D23S1P||daugt==D23S1B) { | |
508 | msq=1.82; | |
509 | bx2=0.39*0.39; | |
510 | } | |
511 | else{ | |
512 | report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_23P1.\n"; | |
513 | } | |
514 | } | |
515 | } | |
516 | else{ | |
517 | report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_23P1.\n"; | |
518 | } | |
519 | ||
520 | mtb = msb + msd; | |
521 | mtx = msq + msd; | |
522 | mb = EvtPDL::getMeanMass( parent ); | |
523 | mx = mass; | |
524 | mum=1.0/(1.0/msq-1.0/msb); | |
525 | bbx2=0.5*(bb2+bx2); | |
526 | tm=(mb-mx)*(mb-mx); | |
527 | if (t>tm) t = 0.99*tm; | |
528 | ||
529 | double kap = 0.7*0.7; | |
530 | f3 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,3.0/2.0)* | |
531 | exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2)))); | |
532 | ||
533 | f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0)* | |
534 | exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2)))); | |
535 | ||
536 | *fpf = sqrt(6.0)*f3*mtb*( ((bb2-bx2)/(bb2+bx2)) + ((msd*msd*bx2* | |
537 | (tm-t))/(6.0*mtx*mtb*bbx2*kap*bbx2))); | |
538 | ||
539 | *gpf = sqrt(3.0/8.0)*f3*( ((((bb2-bx2)/(bb2+bx2)) + ((msd*msd*bx2* | |
540 | (tm-t))/(6.0*mtx*mtb*bbx2*kap*bbx2)))* | |
541 | ((1.0/msq)-((msd*bb2)/(2.0*mum*mtx*bbx2)))) + | |
542 | ((msd*bb2*bx2)/(3.0*mum*mtx*bbx2*bbx2))); | |
543 | ||
544 | tt = (msd*msd*bx2*(tm-t))/(mtx*mtb*bb2*kap*bbx2); | |
545 | ||
546 | *appf = (f5/(sqrt(6.0)*mtx))* ( ((3.0*mtb*bbx2/(2.0*msb*sqrt(bb2*bx2)))* | |
547 | (1.0 - ( (msd*msd*msb*bx2*bx2)/(4.0*mtb*mtb*mum*bbx2*bbx2)))) - | |
548 | ( (3.0*msd*sqrt(bx2/bb2))/(2.0*msb)) + | |
549 | ( (5.0*msd*sqrt(bx2*bb2)*(1.0 + 0.1*tt))/(2.0*msb*bbx2)) - | |
550 | ( (3.0*mtb*sqrt(bb2/bx2)*(1.0 + (tt/6.0)))/(2.0*msb)) + | |
551 | ( (7.0*msd*msd*sqrt(bb2/bx2)*bx2*bx2*(1.0 + (tt/14.0))) / | |
552 | (8.0*mtb*mum*bbx2*bbx2))); | |
553 | ||
554 | *apmf = 0.0; | |
555 | return; | |
556 | } //get_ff_isgw_23s1 | |
557 | ||
558 | ||
559 | void EvtISGWFF::EvtISGW1FF3P1 (EvtId parent,EvtId daugt, | |
560 | double t, double mass, | |
561 | double *lf, double *qf, double *cpf, double *cmf ) { | |
562 | //added by Lange Jan4,2000 | |
563 | static EvtId BP=EvtPDL::getId("B+"); | |
564 | static EvtId BM=EvtPDL::getId("B-"); | |
565 | static EvtId B0=EvtPDL::getId("B0"); | |
566 | static EvtId B0B=EvtPDL::getId("anti-B0"); | |
567 | ||
568 | static EvtId D3P1P=EvtPDL::getId("D'_1+"); | |
569 | static EvtId D3P1N=EvtPDL::getId("D'_1-"); | |
570 | static EvtId D3P10=EvtPDL::getId("D'_10"); | |
571 | static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); | |
572 | ||
573 | static EvtId A1P=EvtPDL::getId("a_1+"); | |
574 | static EvtId A1M=EvtPDL::getId("a_1-"); | |
575 | static EvtId A10=EvtPDL::getId("a_10"); | |
576 | ||
577 | static EvtId F1=EvtPDL::getId("f_1"); | |
578 | static EvtId F1PR=EvtPDL::getId("f'_1"); | |
579 | ||
580 | double mtb; | |
581 | double msd(0.0), mx(0.0), mb(0.0); | |
582 | double msq(0.0), bx2(0.0),mtx,f5; | |
583 | double msb(0.0),bb2(0.0),mum,bbx2,tm; | |
584 | double kap; | |
585 | ||
586 | if (parent==BM||parent==BP||parent==B0||parent==B0B) { | |
587 | msb=5.2; | |
588 | msd=0.33; | |
589 | bb2=0.41*0.41; | |
590 | if (daugt==A10||daugt==A1P||daugt==A1M||daugt==F1||daugt==F1PR) { | |
591 | msq=0.33; | |
592 | bx2=0.27*0.27; | |
593 | } | |
594 | else{ | |
595 | if (daugt==D3P1P||daugt==D3P1N||daugt==D3P1B||daugt==D3P10) { | |
596 | msq=1.82; | |
597 | bx2=0.34*0.34; | |
598 | } | |
599 | else{ | |
600 | report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3P1.\n"; | |
601 | } | |
602 | } | |
603 | } | |
604 | else{ | |
605 | report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_3P1.\n"; | |
606 | } | |
607 | ||
608 | mtb = msb + msd; | |
609 | mtx = msq + msd; | |
610 | ||
611 | mb = EvtPDL::getMeanMass( parent ); | |
612 | mx = mass; | |
613 | ||
614 | mum=1.0/(1.0/msq-1.0/msb); | |
615 | bbx2=0.5*(bb2+bx2); | |
616 | tm=(mb-mx)*(mb-mx); | |
617 | if (t>tm) t = 0.99*tm; | |
618 | ||
619 | kap = 0.7*0.7; | |
620 | f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0)* | |
621 | exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2)))); | |
622 | ||
623 | *qf = (f5*msd)/(2.0*mtx*sqrt(bb2)); | |
624 | ||
625 | *lf = -1.0*mtb*sqrt(bb2)*f5*(1/mum+(msd*(tm-t)/(2.0*mtb* | |
626 | kap*bb2))*((1.0/msq)-(1.0*msd*bb2/(2.0*mum*mtx*bbx2)))); | |
627 | ||
628 | *cpf = (f5*msd*msb/(4.0*mtb*sqrt(bb2)*mum))*(1.0-(msd*msq*bb2/( | |
629 | 2.0*mtx*mum*bbx2))); | |
630 | *cmf = 0.0; | |
631 | return; | |
632 | } //get_ff_isgw_3p1 | |
633 | ||
634 | ||
635 | ||
636 | void EvtISGWFF::EvtISGW1FF3P0 (EvtId parent,EvtId daugt, | |
637 | double t, double mass, double *upf, double *umf ) { | |
638 | //added by Lange Jan4,2000 | |
639 | static EvtId BP=EvtPDL::getId("B+"); | |
640 | static EvtId BM=EvtPDL::getId("B-"); | |
641 | static EvtId B0=EvtPDL::getId("B0"); | |
642 | static EvtId B0B=EvtPDL::getId("anti-B0"); | |
643 | ||
644 | static EvtId D3P0P=EvtPDL::getId("D_0*+"); | |
645 | static EvtId D3P0N=EvtPDL::getId("D_0*-"); | |
646 | static EvtId D3P00=EvtPDL::getId("D_0*0"); | |
647 | static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); | |
648 | ||
649 | static EvtId A0P=EvtPDL::getId("a_0+"); | |
650 | static EvtId A0M=EvtPDL::getId("a_0-"); | |
651 | static EvtId A00=EvtPDL::getId("a_00"); | |
652 | ||
653 | static EvtId F0=EvtPDL::getId("f_0"); | |
654 | static EvtId F0PR=EvtPDL::getId("f'_0"); | |
655 | ||
656 | double mtb; | |
657 | double msd(0.0), mx(0.0), mb(0.0); | |
658 | double msq(0.0), bx2(0.0),mtx; | |
659 | double f5; | |
660 | double mum,bb2(0.0),bbx2,msb(0.0),tm; | |
661 | ||
662 | if (parent==BM||parent==BP||parent==B0||parent==B0B) { | |
663 | msb=5.2; | |
664 | msd=0.33; | |
665 | bb2=0.41*0.41; | |
666 | if (daugt==A00||daugt==A0P||daugt==A0M||daugt==F0||daugt==F0PR) { | |
667 | msq=0.33; | |
668 | bx2=0.27*0.27; | |
669 | } | |
670 | else{ | |
671 | if (daugt==D3P0P||daugt==D3P0N||daugt==D3P0B||daugt==D3P00) { | |
672 | msq=1.82; | |
673 | bx2=0.34*0.34; | |
674 | } | |
675 | else{ | |
676 | report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3P0.\n"; | |
677 | } | |
678 | } | |
679 | } | |
680 | else{ | |
681 | report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_3P0.\n"; | |
682 | } | |
683 | ||
684 | mtb = msb + msd; | |
685 | mtx = msq + msd; | |
686 | ||
687 | mb = EvtPDL::getMeanMass( parent ); | |
688 | mx = mass; | |
689 | ||
690 | mum=1.0/(1.0/msq-1.0/msb); | |
691 | bbx2=0.5*(bb2+bx2); | |
692 | tm=(mb-mx)*(mb-mx); | |
693 | if (t>tm) t = 0.99*tm; | |
694 | ||
695 | double kap = 0.7*0.7; | |
696 | f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0)* | |
697 | exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2)))); | |
698 | ||
699 | *upf = f5*msd*msq*msb/(sqrt(6.0*bb2)*mtx*mum); | |
700 | *umf = 0.0; | |
701 | return; | |
702 | } //get_ff_isgw_3p0 | |
703 | ||
704 | ||
705 | ||
706 | void EvtISGWFF::EvtISGW1FF1P1 (EvtId parent,EvtId daugt, | |
707 | double t, double mass, | |
708 | double *vf, double *rf, double *spf, double *smf ) { | |
709 | //added by Lange Jan4,2000 | |
710 | static EvtId BP=EvtPDL::getId("B+"); | |
711 | static EvtId BM=EvtPDL::getId("B-"); | |
712 | static EvtId B0=EvtPDL::getId("B0"); | |
713 | static EvtId B0B=EvtPDL::getId("anti-B0"); | |
714 | ||
715 | static EvtId D1P1P=EvtPDL::getId("D_1+"); | |
716 | static EvtId D1P1N=EvtPDL::getId("D_1-"); | |
717 | static EvtId D1P10=EvtPDL::getId("D_10"); | |
718 | static EvtId D1P1B=EvtPDL::getId("anti-D_10"); | |
719 | ||
720 | static EvtId B1P=EvtPDL::getId("b_1+"); | |
721 | static EvtId B1M=EvtPDL::getId("b_1-"); | |
722 | static EvtId B10=EvtPDL::getId("b_10"); | |
723 | ||
724 | static EvtId H1=EvtPDL::getId("h_1"); | |
725 | static EvtId H1PR=EvtPDL::getId("h'_1"); | |
726 | ||
727 | double mtb; | |
728 | double msd(0.0), mx(0.0), mb(0.0); | |
729 | double msq(0.0), bx2(0.0),mtx,f5; | |
730 | double mup,mum,kap; | |
731 | double msb(0.0),bb2(0.0),bbx2,tm; | |
732 | ||
733 | if (parent==BM||parent==BP||parent==B0||parent==B0B) { | |
734 | ||
735 | msb=5.2; | |
736 | msd=0.33; | |
737 | bb2=0.41*0.41; | |
738 | if (daugt==H1||daugt==H1PR||daugt==B10||daugt==B1P||daugt==B1M) { | |
739 | msq=0.33; | |
740 | bx2=0.27*0.27; | |
741 | } | |
742 | else{ | |
743 | if (daugt==D1P1P||daugt==D1P1N||daugt==D1P10||daugt==D1P1B) { | |
744 | msq=1.82; | |
745 | bx2=0.34*0.34; | |
746 | } | |
747 | else{ | |
748 | report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3P1.\n"; | |
749 | } | |
750 | } | |
751 | } | |
752 | else{ | |
753 | report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_3P1.\n"; | |
754 | } | |
755 | ||
756 | mtb = msb + msd; | |
757 | mtx = msq + msd; | |
758 | ||
759 | mb = EvtPDL::getMeanMass( parent ); | |
760 | mx = mass; | |
761 | ||
762 | mup=1.0/(1.0/msq+1.0/msb); | |
763 | mum=1.0/(1.0/msq-1.0/msb); | |
764 | bbx2=0.5*(bb2+bx2); | |
765 | tm=(mb-mx)*(mb-mx); | |
766 | if (t>tm) t = 0.99*tm; | |
767 | ||
768 | kap = 0.7*0.7; | |
769 | f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0)* | |
770 | exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2)))); | |
771 | ||
772 | *vf = f5*(((mtb*sqrt(bb2))/(4.0*sqrt(2.0)*msb*msq*mtx))); | |
773 | *rf = f5*mtb*sqrt(bb2/2)*((1.0/mup)); | |
774 | ||
775 | *spf = (f5*msd/(sqrt(2.0*bb2)*mtb))*(1.0+(msb/(2.0*mum))- | |
776 | (msb*msq*msd*bb2/(4.0*mup*mum*mtx*bbx2))); | |
777 | *smf = 0.0; | |
778 | ||
779 | return; | |
780 | //get_ff_isgw_1p1 | |
781 | ||
782 | } | |
783 | ||
784 | void EvtISGWFF::EvtISGW1FF21S0 (EvtId parent,EvtId daugt, | |
785 | double t, double mass, double *fppf, double *fpmf ) { | |
786 | //added by Lange Jan4,2000 | |
787 | static EvtId BP=EvtPDL::getId("B+"); | |
788 | static EvtId BM=EvtPDL::getId("B-"); | |
789 | static EvtId B0=EvtPDL::getId("B0"); | |
790 | static EvtId B0B=EvtPDL::getId("anti-B0"); | |
791 | ||
792 | static EvtId D21S0P=EvtPDL::getId("hi"); | |
793 | static EvtId D21S0N=EvtPDL::getId("hi"); | |
794 | static EvtId D21S00=EvtPDL::getId("hi"); | |
795 | static EvtId D21S0B=EvtPDL::getId("hi"); | |
796 | ||
797 | static EvtId ETA2S=EvtPDL::getId("eta(2S)"); | |
798 | ||
799 | static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); | |
800 | static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); | |
801 | static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); | |
802 | ||
803 | double mtb; | |
804 | double msd(0.0), mx(0.0), mb(0.0); | |
805 | double msq(0.0), bx2(0.0),mtx; | |
806 | double f3; | |
807 | double msb(0.0); | |
808 | double mum,mup,tm,bb2(0.0),bbx2; | |
809 | ||
810 | if (parent==BM||parent==BP||parent==B0||parent==B0B) { | |
811 | msb=5.2; | |
812 | msd=0.33; | |
813 | bb2=0.41*0.41; | |
814 | if (daugt==PI2S0||daugt==PI2SP||daugt==PI2SM||daugt==ETA2S){ | |
815 | msq=0.33; | |
816 | bx2=0.31*0.31; | |
817 | } | |
818 | else{ | |
819 | if (daugt==D21S00||daugt==D21S0P||daugt==D21S0N||daugt==D21S0B) { | |
820 | msq=1.82; | |
821 | bx2=0.39*0.39; | |
822 | } | |
823 | else{ | |
824 | report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw1_ff_21S0.\n"; | |
825 | } | |
826 | } | |
827 | } | |
828 | else{ | |
829 | report(ERROR,"EvtGen") << "Not implemented parent in get_isgw1_ff_21S0.\n"; | |
830 | } | |
831 | ||
832 | mtb = msb + msd; | |
833 | mtx = msq + msd; | |
834 | ||
835 | mb = EvtPDL::getMeanMass( parent ); | |
836 | mx = mass; | |
837 | ||
838 | mup=1.0/(1.0/msq+1.0/msb); | |
839 | mum=1.0/(1.0/msq-1.0/msb); | |
840 | bbx2=0.5*(bb2+bx2); | |
841 | tm=(mb-mx)*(mb-mx); | |
842 | if (t>tm) t = 0.99*tm; | |
843 | ||
844 | double kap = 0.7*0.7; | |
845 | f3 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,3.0/2.0)* | |
846 | exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2)))); | |
847 | ||
848 | *fppf = f3*sqrt(3.0/8.0)*(msb/mup)*( ((bb2-bx2)/(bb2+bx2)) + | |
849 | (((msq*msd*bb2)/(3.0*mum*mtx*bbx2))*((7.0*bx2-3.0*bb2)/ | |
850 | (4.0*bbx2))) + | |
851 | (((msd*msd*bx2*(tm-t))/(6.0*mtx*mtb*bbx2*kap*bbx2))* | |
852 | (1.0 - ((msq*msd*bb2)/(2.0*mum*mtx*bbx2))))); | |
853 | ||
854 | *fpmf = 0.0; | |
855 | return; | |
856 | } //get_ff_isgw_21s0 | |
857 | ||
858 | ||
859 | void EvtISGWFF::getbaryonff(EvtId, EvtId, double, double, double*, | |
860 | double*, double*, double*){ | |
861 | ||
862 | report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtISGWFF.\n"; | |
863 | ::abort(); | |
864 | ||
865 | } | |
866 | ||
867 | void EvtISGWFF::getdiracff(EvtId, EvtId, double, double, double*, double*, | |
868 | double*, double*, double*, double*) { | |
869 | ||
870 | report(ERROR,"EvtGen") << "Not implemented :getdiracff in EvtISGWFF.\n"; | |
871 | ::abort(); | |
872 | ||
873 | } | |
874 | ||
875 | void EvtISGWFF::getraritaff(EvtId, EvtId, double, double, double*, double*, | |
876 | double*, double*, double*, double*, double*, double*) { | |
877 | ||
878 | report(ERROR,"EvtGen") << "Not implemented :getraritaff in EvtISGWFF.\n"; | |
879 | ::abort(); | |
880 | ||
881 | } |