]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TEvtGen/EvtGen/EvtGenModels/EvtISGWFF.cpp
Converting TEvtGen to native cmake
[u/mrichter/AliRoot.git] / TEvtGen / EvtGen / EvtGenModels / EvtISGWFF.cpp
CommitLineData
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>
31using std::endl;
32
33void 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
252void 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
331void 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
403void 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
473void 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
559void 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
636void 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
706void 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
784void 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
859void 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
867void 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
875void 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}