1 //--------------------------------------------------------------------------
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.
8 // Copyright Information: See EvtGen/COPYRIGHT
9 // Copyright (C) 1998 Caltech, UCSB
11 // Module: EvtISGWFF.cc
13 // Description: Routine to implement semileptonic form factors
14 // according to the model ISGW
16 // Modification history:
18 // DJL April 17, 1998 Module created
20 //------------------------------------------------------------------------
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"
33 void EvtISGWFF::getscalarff(EvtId parent,EvtId daught,
34 double t, double mass, double *fpf,
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-");
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");
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");
53 static EvtId ETA2S=EvtPDL::getId("eta(2S)");
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)-");
59 static EvtId PIP=EvtPDL::getId("pi+");
60 static EvtId PIM=EvtPDL::getId("pi-");
61 static EvtId PI0=EvtPDL::getId("pi0");
63 static EvtId A0P=EvtPDL::getId("a_0+");
64 static EvtId A0M=EvtPDL::getId("a_0-");
65 static EvtId A00=EvtPDL::getId("a_00");
67 static EvtId F0=EvtPDL::getId("f_0");
68 static EvtId F0PR=EvtPDL::getId("f'_0");
70 static EvtId ETA=EvtPDL::getId("eta");
71 static EvtId ETAPR=EvtPDL::getId("eta'");
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");
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");
85 static EvtId DSP=EvtPDL::getId("D_s+");
86 static EvtId DSM=EvtPDL::getId("D_s-");
88 static EvtId D3P0SP=EvtPDL::getId("D_s0*+");
89 static EvtId D3P0SN=EvtPDL::getId("D_s0*-");
92 double mb=EvtPDL::getMeanMass(parent);
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) {
99 EvtISGW1FF1S0(parent,daught,t,mass,fpf,&fmf);
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);
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||
112 EvtISGW1FF3P0(parent,daught,t,mass,fpf,&fmf);
115 *f0f = (fmf/((mb*mb-mass*mass)/t))+(*fpf);
120 void EvtISGWFF::gettensorff(EvtId parent,EvtId daught,
121 double t, double mass, double *hf,
122 double *kf, double *bpf, double *bmf ){
124 //added by Lange Jan4,2000
125 EvtISGW1FF3P2(parent,daught,t,mass,hf,kf,bpf,bmf);
132 void EvtISGWFF::getvectorff(EvtId parent,EvtId daught,
133 double t, double mass, double *a1f,
134 double *a2f, double *vf, double *a0f ){
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*-");
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");
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");
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");
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)");
162 static EvtId RHOP=EvtPDL::getId("rho+");
163 static EvtId RHOM=EvtPDL::getId("rho-");
164 static EvtId RHO0=EvtPDL::getId("rho0");
166 static EvtId A1P=EvtPDL::getId("a_1+");
167 static EvtId A1M=EvtPDL::getId("a_1-");
168 static EvtId A10=EvtPDL::getId("a_10");
170 static EvtId B1P=EvtPDL::getId("b_1+");
171 static EvtId B1M=EvtPDL::getId("b_1-");
172 static EvtId B10=EvtPDL::getId("b_10");
174 static EvtId H1=EvtPDL::getId("h_1");
175 static EvtId H1PR=EvtPDL::getId("h'_1");
177 static EvtId F1=EvtPDL::getId("f_1");
178 static EvtId F1PR=EvtPDL::getId("f'_1");
180 static EvtId OMEG=EvtPDL::getId("omega");
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");
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");
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");
197 static EvtId PHI=EvtPDL::getId("phi");
199 static EvtId D1P1SP=EvtPDL::getId("D_s1+");
200 static EvtId D1P1SN=EvtPDL::getId("D_s1-");
202 static EvtId D3P1SP=EvtPDL::getId("D'_s1*+");
203 static EvtId D3P1SN=EvtPDL::getId("D'_s1*-");
205 static EvtId DSSTP=EvtPDL::getId("D_s*+");
206 static EvtId DSSTM=EvtPDL::getId("D_s*-");
208 double ff,gf,apf,amf;
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);
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||
221 EvtISGW1FF1P1(parent,daught,t,mass,&ff,&gf,&apf,&amf);
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);
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||
232 EvtISGW1FF3P1(parent,daught,t,mass,&ff,&gf,&apf,&amf);
235 // Need to stuff in some factors to make these the ffs that
236 // is used elsewhere...
238 double mb=EvtPDL::getMeanMass(parent);
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);
247 *a0f = a3f - ( (t*amf)/(2.0*mass));
252 void EvtISGWFF::EvtISGW1FF3P2 (EvtId parent,EvtId daugt,
253 double t, double mass,
254 double *hf, double *kf, double *bpf, double *bmf ) {
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");
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");
267 static EvtId A2P=EvtPDL::getId("a_2+");
268 static EvtId A2M=EvtPDL::getId("a_2-");
269 static EvtId A20=EvtPDL::getId("a_20");
271 static EvtId F2=EvtPDL::getId("f_2");
272 static EvtId F2PR=EvtPDL::getId("f'_2");
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;
280 if (parent==BM||parent==BP||parent==B0||parent==B0B) {
284 if (daugt==A20||daugt==A2P||daugt==A2M||daugt==F2||daugt==F2PR) {
289 if (daugt==D3P2P||daugt==D3P2N||daugt==D3P2B||daugt==D3P20) {
294 report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3P1.\n";
299 report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_3P1.\n";
305 mb = EvtPDL::getMeanMass( parent );
308 mup=1.0/(1.0/msq+1.0/msb);
309 mum=1.0/(1.0/msq-1.0/msb);
313 if (t>tm) t = 0.99*tm;
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))));
319 *hf = f5*(msd/(sqrt(8.0*bb2)*mtb))*((1.0/msq)-(msd*bb2/(2.0*mum*
322 *kf = f5*msd*sqrt(2.0/bb2);
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)));
331 void EvtISGWFF::EvtISGW1FF1S0 ( EvtId parent, EvtId daugt,
332 double t, double mass, double *fpf, double *fmf ) {
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");
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-");
345 static EvtId PIP=EvtPDL::getId("pi+");
346 static EvtId PIM=EvtPDL::getId("pi-");
347 static EvtId PI0=EvtPDL::getId("pi0");
349 static EvtId ETA=EvtPDL::getId("eta");
350 static EvtId ETAPR=EvtPDL::getId("eta'");
353 double msd(0.0), mx(0.0), mb(0.0);
354 double msq(0.0), bx2(0.0),mtx;
356 double msb(0.0),bb2(0.0),mup,mum,bbx2,tm;
358 if (parent==BM||parent==BP||parent==B0||parent==B0B) {
362 if (daugt==PIP||daugt==PIM||daugt==PI0||daugt==ETA||daugt==ETAPR) {
367 if (daugt==D0||daugt==DP||daugt==DM||daugt==D0B) {
372 report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_1S0.\n";
377 report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_1S0.\n";
378 report(ERROR,"EvtGen") << "Parent:"<<parent.getId()<<endl;
383 mb = EvtPDL::getMeanMass( parent );
385 mup=1.0/(1.0/msq+1.0/msb);
386 mum=1.0/(1.0/msq-1.0/msb);
389 if ( t>tm ) t=0.99*tm;
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))));
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))));
403 void EvtISGWFF::EvtISGW1FF3S1(EvtId parent,EvtId daugt,double t,
404 double mass, double *f,double *g,double *ap,double *am){
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");
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*-");
417 static EvtId RHOP=EvtPDL::getId("rho+");
418 static EvtId RHOM=EvtPDL::getId("rho-");
419 static EvtId RHO0=EvtPDL::getId("rho0");
421 static EvtId OMEG=EvtPDL::getId("omega");
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;
427 if (parent==BM||parent==BP||parent==B0||parent==B0B) {
431 if (daugt==DSTP||daugt==DSTM||daugt==DSTB||daugt==DST0) {
436 if (daugt==RHOP||daugt==RHOM||daugt==RHO0||daugt==OMEG) {
441 report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3S1.\n";
446 report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_3S1.\n";
454 mum=1.0/(1.0/msq-1.0/msb);
456 mb=EvtPDL::getMeanMass(parent);
459 if ( t > tm ) t = 0.99*tm;
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))));
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)));
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");
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");
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)");
493 double msd(0.0), mx(0.0), mb(0.0);
494 double msq(0.0), bx2(0.0),mtx;
496 double mum,bb2(0.0),bbx2,tm,msb(0.0);
498 if (parent==BM||parent==BP||parent==B0||parent==B0B) {
502 if (daugt==RHO2SP||daugt==RHO2SM||daugt==RHO2S0||daugt==OMEG2S) {
507 if (daugt==D23S1N||daugt==D23S10||daugt==D23S1P||daugt==D23S1B) {
512 report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_23P1.\n";
517 report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_23P1.\n";
522 mb = EvtPDL::getMeanMass( parent );
524 mum=1.0/(1.0/msq-1.0/msb);
527 if (t>tm) t = 0.99*tm;
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))));
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))));
536 *fpf = sqrt(6.0)*f3*mtb*( ((bb2-bx2)/(bb2+bx2)) + ((msd*msd*bx2*
537 (tm-t))/(6.0*mtx*mtb*bbx2*kap*bbx2)));
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)));
544 tt = (msd*msd*bx2*(tm-t))/(mtx*mtb*bb2*kap*bbx2);
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)));
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");
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");
573 static EvtId A1P=EvtPDL::getId("a_1+");
574 static EvtId A1M=EvtPDL::getId("a_1-");
575 static EvtId A10=EvtPDL::getId("a_10");
577 static EvtId F1=EvtPDL::getId("f_1");
578 static EvtId F1PR=EvtPDL::getId("f'_1");
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;
586 if (parent==BM||parent==BP||parent==B0||parent==B0B) {
590 if (daugt==A10||daugt==A1P||daugt==A1M||daugt==F1||daugt==F1PR) {
595 if (daugt==D3P1P||daugt==D3P1N||daugt==D3P1B||daugt==D3P10) {
600 report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3P1.\n";
605 report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_3P1.\n";
611 mb = EvtPDL::getMeanMass( parent );
614 mum=1.0/(1.0/msq-1.0/msb);
617 if (t>tm) t = 0.99*tm;
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))));
623 *qf = (f5*msd)/(2.0*mtx*sqrt(bb2));
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))));
628 *cpf = (f5*msd*msb/(4.0*mtb*sqrt(bb2)*mum))*(1.0-(msd*msq*bb2/(
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");
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");
649 static EvtId A0P=EvtPDL::getId("a_0+");
650 static EvtId A0M=EvtPDL::getId("a_0-");
651 static EvtId A00=EvtPDL::getId("a_00");
653 static EvtId F0=EvtPDL::getId("f_0");
654 static EvtId F0PR=EvtPDL::getId("f'_0");
657 double msd(0.0), mx(0.0), mb(0.0);
658 double msq(0.0), bx2(0.0),mtx;
660 double mum,bb2(0.0),bbx2,msb(0.0),tm;
662 if (parent==BM||parent==BP||parent==B0||parent==B0B) {
666 if (daugt==A00||daugt==A0P||daugt==A0M||daugt==F0||daugt==F0PR) {
671 if (daugt==D3P0P||daugt==D3P0N||daugt==D3P0B||daugt==D3P00) {
676 report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3P0.\n";
681 report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_3P0.\n";
687 mb = EvtPDL::getMeanMass( parent );
690 mum=1.0/(1.0/msq-1.0/msb);
693 if (t>tm) t = 0.99*tm;
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))));
699 *upf = f5*msd*msq*msb/(sqrt(6.0*bb2)*mtx*mum);
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");
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");
720 static EvtId B1P=EvtPDL::getId("b_1+");
721 static EvtId B1M=EvtPDL::getId("b_1-");
722 static EvtId B10=EvtPDL::getId("b_10");
724 static EvtId H1=EvtPDL::getId("h_1");
725 static EvtId H1PR=EvtPDL::getId("h'_1");
728 double msd(0.0), mx(0.0), mb(0.0);
729 double msq(0.0), bx2(0.0),mtx,f5;
731 double msb(0.0),bb2(0.0),bbx2,tm;
733 if (parent==BM||parent==BP||parent==B0||parent==B0B) {
738 if (daugt==H1||daugt==H1PR||daugt==B10||daugt==B1P||daugt==B1M) {
743 if (daugt==D1P1P||daugt==D1P1N||daugt==D1P10||daugt==D1P1B) {
748 report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3P1.\n";
753 report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_3P1.\n";
759 mb = EvtPDL::getMeanMass( parent );
762 mup=1.0/(1.0/msq+1.0/msb);
763 mum=1.0/(1.0/msq-1.0/msb);
766 if (t>tm) t = 0.99*tm;
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))));
772 *vf = f5*(((mtb*sqrt(bb2))/(4.0*sqrt(2.0)*msb*msq*mtx)));
773 *rf = f5*mtb*sqrt(bb2/2)*((1.0/mup));
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)));
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");
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");
797 static EvtId ETA2S=EvtPDL::getId("eta(2S)");
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)-");
804 double msd(0.0), mx(0.0), mb(0.0);
805 double msq(0.0), bx2(0.0),mtx;
808 double mum,mup,tm,bb2(0.0),bbx2;
810 if (parent==BM||parent==BP||parent==B0||parent==B0B) {
814 if (daugt==PI2S0||daugt==PI2SP||daugt==PI2SM||daugt==ETA2S){
819 if (daugt==D21S00||daugt==D21S0P||daugt==D21S0N||daugt==D21S0B) {
824 report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw1_ff_21S0.\n";
829 report(ERROR,"EvtGen") << "Not implemented parent in get_isgw1_ff_21S0.\n";
835 mb = EvtPDL::getMeanMass( parent );
838 mup=1.0/(1.0/msq+1.0/msb);
839 mum=1.0/(1.0/msq-1.0/msb);
842 if (t>tm) t = 0.99*tm;
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))));
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)/
851 (((msd*msd*bx2*(tm-t))/(6.0*mtx*mtb*bbx2*kap*bbx2))*
852 (1.0 - ((msq*msd*bb2)/(2.0*mum*mtx*bbx2)))));
859 void EvtISGWFF::getbaryonff(EvtId, EvtId, double, double, double*,
860 double*, double*, double*){
862 report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtISGWFF.\n";
867 void EvtISGWFF::getdiracff(EvtId, EvtId, double, double, double*, double*,
868 double*, double*, double*, double*) {
870 report(ERROR,"EvtGen") << "Not implemented :getdiracff in EvtISGWFF.\n";
875 void EvtISGWFF::getraritaff(EvtId, EvtId, double, double, double*, double*,
876 double*, double*, double*, double*, double*, double*) {
878 report(ERROR,"EvtGen") << "Not implemented :getraritaff in EvtISGWFF.\n";