Line data Source code
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: EvtISGW2FF.cc
12 : //
13 : // Description: Routine to implement semileptonic form factors
14 : // according to the model ISGW2
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/EvtISGW2FF.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 EvtISGW2FF::getscalarff(EvtId parent,EvtId daught,
36 : double t, double mass, double *fpf,
37 : double *f0f ) {
38 :
39 : //added by Lange Jan4,2000
40 0 : static EvtId D0=EvtPDL::getId("D0");
41 0 : static EvtId D0B=EvtPDL::getId("anti-D0");
42 0 : static EvtId DP=EvtPDL::getId("D+");
43 0 : static EvtId DM=EvtPDL::getId("D-");
44 :
45 0 : static EvtId D3P0P=EvtPDL::getId("D_0*+");
46 0 : static EvtId D3P0N=EvtPDL::getId("D_0*-");
47 0 : static EvtId D3P00=EvtPDL::getId("D_0*0");
48 0 : static EvtId D3P0B=EvtPDL::getId("anti-D_0*0");
49 :
50 0 : static EvtId D21S0P=EvtPDL::getId("D(2S)+");
51 0 : static EvtId D21S0N=EvtPDL::getId("D(2S)-");
52 0 : static EvtId D21S00=EvtPDL::getId("D(2S)0");
53 0 : static EvtId D21S0B=EvtPDL::getId("anti-D(2S)0");
54 :
55 0 : static EvtId ETA2S=EvtPDL::getId("eta(2S)");
56 :
57 0 : static EvtId PI2S0=EvtPDL::getId("pi(2S)0");
58 0 : static EvtId PI2SP=EvtPDL::getId("pi(2S)+");
59 0 : static EvtId PI2SM=EvtPDL::getId("pi(2S)-");
60 :
61 0 : static EvtId PIP=EvtPDL::getId("pi+");
62 0 : static EvtId PIM=EvtPDL::getId("pi-");
63 0 : static EvtId PI0=EvtPDL::getId("pi0");
64 :
65 :
66 0 : static EvtId A0P=EvtPDL::getId("a_0+");
67 0 : static EvtId A0M=EvtPDL::getId("a_0-");
68 0 : static EvtId A00=EvtPDL::getId("a_00");
69 :
70 0 : static EvtId F0=EvtPDL::getId("f_0");
71 0 : static EvtId F0PR=EvtPDL::getId("f'_0");
72 :
73 0 : static EvtId ETA=EvtPDL::getId("eta");
74 0 : static EvtId ETAPR=EvtPDL::getId("eta'");
75 :
76 0 : static EvtId KP=EvtPDL::getId("K+");
77 0 : static EvtId KM=EvtPDL::getId("K-");
78 0 : static EvtId K0=EvtPDL::getId("K0");
79 0 : static EvtId KB=EvtPDL::getId("anti-K0");
80 0 : static EvtId K0S=EvtPDL::getId("K_S0");
81 0 : static EvtId K0L=EvtPDL::getId("K_L0");
82 :
83 0 : static EvtId K0STP=EvtPDL::getId("K_0*+");
84 0 : static EvtId K0STM=EvtPDL::getId("K_0*-");
85 0 : static EvtId K0ST0=EvtPDL::getId("K_0*0");
86 0 : static EvtId K0STB=EvtPDL::getId("anti-K_0*0");
87 :
88 0 : static EvtId DSP=EvtPDL::getId("D_s+");
89 0 : static EvtId DSM=EvtPDL::getId("D_s-");
90 :
91 0 : static EvtId D3P0SP=EvtPDL::getId("D_s0*+");
92 0 : static EvtId D3P0SN=EvtPDL::getId("D_s0*-");
93 :
94 0 : double fmf;
95 0 : double mb=EvtPDL::getMeanMass(parent);
96 :
97 0 : if (daught==PI0||daught==PIP||daught==PIM||daught==ETA||
98 0 : daught==ETAPR||daught==D0||daught==D0B||daught==DP||
99 0 : daught==DM||daught==KP||daught==KM||daught==K0||daught==K0S||
100 0 : daught==K0L||daught==KB||daught==DSP||daught==DSM) {
101 :
102 0 : EvtISGW2FF1S0(parent,daught,t,mass,fpf,&fmf);
103 0 : }
104 :
105 0 : if (daught==PI2S0||daught==PI2SP||daught==PI2SM||daught==ETA2S||
106 0 : daught==D21S0P||daught==D21S0B||daught==D21S0N||daught==D21S00){
107 0 : EvtISGW2FF21S0(parent,daught,t,mass,fpf,&fmf);
108 0 : }
109 :
110 0 : if (daught==A00||daught==A0P||daught==A0M||daught==F0||
111 0 : daught==F0PR||daught==D3P0P||daught==D3P00||daught==D3P0B||
112 0 : daught==D3P0N||daught==K0STM||daught==K0STB||daught==K0STP||
113 0 : daught==D3P0SP||daught==D3P0SN||
114 0 : daught==K0ST0) {
115 0 : EvtISGW2FF3P0(parent,daught,t,mass,fpf,&fmf);
116 0 : }
117 :
118 0 : *f0f = (fmf/((mb*mb-mass*mass)/t))+(*fpf);
119 :
120 : return ;
121 0 : }
122 :
123 : void EvtISGW2FF::gettensorff(EvtId parent,EvtId daught,
124 : double t, double mass, double *hf,
125 : double *kf, double *bpf, double *bmf ){
126 :
127 : //added by Lange Jan4,2000
128 0 : EvtISGW2FF3P2(parent,daught,t,mass,hf,kf,bpf,bmf);
129 :
130 0 : return;
131 :
132 : }
133 :
134 :
135 : void EvtISGW2FF::getvectorff(EvtId parent,EvtId daught,
136 : double t, double mass, double *a1f,
137 : double *a2f, double *vf, double *a0f ){
138 0 : double ff,gf,apf,amf;
139 :
140 : //added by Lange Jan4,2000
141 :
142 0 : static EvtId DST0=EvtPDL::getId("D*0");
143 0 : static EvtId DSTB=EvtPDL::getId("anti-D*0");
144 0 : static EvtId DSTP=EvtPDL::getId("D*+");
145 0 : static EvtId DSTM=EvtPDL::getId("D*-");
146 :
147 :
148 0 : static EvtId D1P1P=EvtPDL::getId("D_1+");
149 0 : static EvtId D1P1N=EvtPDL::getId("D_1-");
150 0 : static EvtId D1P10=EvtPDL::getId("D_10");
151 0 : static EvtId D1P1B=EvtPDL::getId("anti-D_10");
152 :
153 0 : static EvtId D3P1P=EvtPDL::getId("D'_1+");
154 0 : static EvtId D3P1N=EvtPDL::getId("D'_1-");
155 0 : static EvtId D3P10=EvtPDL::getId("D'_10");
156 0 : static EvtId D3P1B=EvtPDL::getId("anti-D'_10");
157 :
158 0 : static EvtId D23S1P=EvtPDL::getId("D*(2S)+");
159 0 : static EvtId D23S1N=EvtPDL::getId("D*(2S)-");
160 0 : static EvtId D23S10=EvtPDL::getId("D*(2S)0");
161 0 : static EvtId D23S1B=EvtPDL::getId("anti-D*(2S)0");
162 :
163 0 : static EvtId RHO2S0=EvtPDL::getId("rho(2S)0");
164 0 : static EvtId RHO2SP=EvtPDL::getId("rho(2S)+");
165 0 : static EvtId RHO2SM=EvtPDL::getId("rho(2S)-");
166 0 : static EvtId OMEG2S=EvtPDL::getId("omega(2S)");
167 :
168 0 : static EvtId RHOP=EvtPDL::getId("rho+");
169 0 : static EvtId RHOM=EvtPDL::getId("rho-");
170 0 : static EvtId RHO0=EvtPDL::getId("rho0");
171 :
172 0 : static EvtId A1P=EvtPDL::getId("a_1+");
173 0 : static EvtId A1M=EvtPDL::getId("a_1-");
174 0 : static EvtId A10=EvtPDL::getId("a_10");
175 :
176 0 : static EvtId B1P=EvtPDL::getId("b_1+");
177 0 : static EvtId B1M=EvtPDL::getId("b_1-");
178 0 : static EvtId B10=EvtPDL::getId("b_10");
179 :
180 0 : static EvtId H1=EvtPDL::getId("h_1");
181 0 : static EvtId H1PR=EvtPDL::getId("h'_1");
182 :
183 0 : static EvtId F1=EvtPDL::getId("f_1");
184 0 : static EvtId F1PR=EvtPDL::getId("f'_1");
185 :
186 0 : static EvtId OMEG=EvtPDL::getId("omega");
187 0 : static EvtId KSTP=EvtPDL::getId("K*+");
188 0 : static EvtId KSTM=EvtPDL::getId("K*-");
189 0 : static EvtId KST0=EvtPDL::getId("K*0");
190 0 : static EvtId KSTB=EvtPDL::getId("anti-K*0");
191 :
192 0 : static EvtId K1P=EvtPDL::getId("K_1+");
193 0 : static EvtId K1M=EvtPDL::getId("K_1-");
194 0 : static EvtId K10=EvtPDL::getId("K_10");
195 0 : static EvtId K1B=EvtPDL::getId("anti-K_10");
196 :
197 0 : static EvtId K1STP=EvtPDL::getId("K'_1+");
198 0 : static EvtId K1STM=EvtPDL::getId("K'_1-");
199 0 : static EvtId K1ST0=EvtPDL::getId("K'_10");
200 0 : static EvtId K1STB=EvtPDL::getId("anti-K'_10");
201 :
202 0 : static EvtId PHI=EvtPDL::getId("phi");
203 :
204 0 : static EvtId D1P1SP=EvtPDL::getId("D_s1+");
205 0 : static EvtId D1P1SN=EvtPDL::getId("D_s1-");
206 :
207 0 : static EvtId D3P1SP=EvtPDL::getId("D'_s1+");
208 0 : static EvtId D3P1SN=EvtPDL::getId("D'_s1-");
209 :
210 0 : static EvtId DSSTP=EvtPDL::getId("D_s*+");
211 0 : static EvtId DSSTM=EvtPDL::getId("D_s*-");
212 :
213 0 : if (daught==DST0||daught==DSTP||daught==DSTM||daught==DSTB||
214 0 : daught==OMEG||daught==RHO0||daught==RHOM||daught==RHOP||
215 0 : daught==KSTP||daught==KSTM||daught==KST0||daught==KSTB||
216 0 : daught==PHI||daught==DSSTP||daught==DSSTM) {
217 0 : EvtISGW2FF3S1(parent,daught,t,mass,&ff,&gf,&apf,&amf);
218 0 : }
219 0 : if (daught==B10||daught==B1P||daught==B1M||daught==H1||
220 0 : daught==H1PR||daught==D1P1P||daught==D1P10||daught==D1P1B||
221 0 : daught==D1P1SP||daught==D1P1SN||
222 0 : daught==D1P1N||daught==K10||daught==K1B||daught==K1P||
223 0 : daught==K1M) {
224 0 : EvtISGW2FF1P1(parent,daught,t,mass,&ff,&gf,&apf,&amf);
225 0 : }
226 0 : if (daught==RHO2S0||daught==RHO2SP||daught==RHO2SM||daught==OMEG2S||
227 0 : daught==D23S1P||daught==D23S1B||daught==D23S1N||daught==D23S10){
228 0 : EvtISGW2FF23S1(parent,daught,t,mass,&ff,&gf,&apf,&amf);
229 0 : }
230 0 : if (daught==A10||daught==A1P||daught==A1M||daught==F1||
231 0 : daught==F1PR||daught==D3P1P||daught==D3P10||daught==D3P1B||
232 0 : daught==D3P1N||daught==K1STM||daught==K1STB||daught==K1STP||
233 0 : daught==D3P1SP||daught==D3P1SN||
234 0 : daught==K1ST0) {
235 0 : EvtISGW2FF3P1(parent,daught,t,mass,&ff,&gf,&apf,&amf);
236 0 : }
237 :
238 : // Need to stuff in some factors to make these the ffs that
239 : // is used elsewhere...
240 :
241 0 : double mb=EvtPDL::getMeanMass(parent);
242 :
243 :
244 0 : *vf = (gf)*(mb+mass);
245 0 : *a1f = (ff)/(mb+mass);
246 0 : *a2f = -1.0*(apf)*(mb+mass);
247 :
248 0 : double a3f = ((mb+mass)/(2.0*mass))*(*a1f) -
249 0 : ((mb-mass)/(2.0*mass))*(*a2f);
250 :
251 0 : *a0f = a3f + ( (t*amf)/(2.0*mass));
252 :
253 : return;
254 0 : }
255 :
256 :
257 :
258 : void EvtISGW2FF::EvtISGW2FF1S0 (EvtId parent,EvtId daugt,
259 : double t, double mass, double *fpf, double *fmf ) {
260 :
261 : double mtb, mbb(0.0);
262 : double msd(0.0), mx,mb,nf(0.0),nfp(0.0);
263 : double msq(0.0),bx2(0.0),mbx(0.0),mtx;
264 : double zji,cji,gammaji,chiji,betaji_fppfm;
265 : double rfppfm,rfpmfm,f3fppfm,f3fpmfm,fppfm,fpmfm,ai,f3;
266 : double mqm,msb(0.0),bb2(0.0),mup,bbx2,tm,r2,betaji_fpmfm;
267 :
268 0 : EvtId prnt=parent;
269 0 : EvtId dgt=daugt;
270 :
271 : //added by Lange Jan4,2000
272 0 : static EvtIdSet theB("B+","B-","B0","anti-B0");
273 :
274 0 : static EvtId D0=EvtPDL::getId("D0");
275 0 : static EvtId D0B=EvtPDL::getId("anti-D0");
276 0 : static EvtId DP=EvtPDL::getId("D+");
277 0 : static EvtId DM=EvtPDL::getId("D-");
278 :
279 0 : static EvtId PIP=EvtPDL::getId("pi+");
280 0 : static EvtId PIM=EvtPDL::getId("pi-");
281 0 : static EvtId PI0=EvtPDL::getId("pi0");
282 :
283 0 : static EvtId ETA=EvtPDL::getId("eta");
284 0 : static EvtId ETAPR=EvtPDL::getId("eta'");
285 :
286 0 : static EvtId KP=EvtPDL::getId("K+");
287 0 : static EvtId KM=EvtPDL::getId("K-");
288 0 : static EvtId K0=EvtPDL::getId("K0");
289 0 : static EvtId KB=EvtPDL::getId("anti-K0");
290 0 : static EvtId K0S=EvtPDL::getId("K_S0");
291 0 : static EvtId K0L=EvtPDL::getId("K_L0");
292 :
293 0 : static EvtId DSP=EvtPDL::getId("D_s+");
294 0 : static EvtId DSM=EvtPDL::getId("D_s-");
295 :
296 0 : static EvtId BSB=EvtPDL::getId("anti-B_s0");
297 0 : static EvtId BS0=EvtPDL::getId("B_s0");
298 :
299 0 : if (theB.contains(prnt)) {
300 :
301 : msb=5.2;
302 : msd=0.33;
303 : bb2=0.431*0.431;
304 : mbb=5.31;
305 : nf = 4.0;
306 :
307 0 : if (dgt==PI0||dgt==PIP||dgt==PIM||dgt==ETA||dgt==ETAPR) {
308 :
309 : msq=0.33;
310 : bx2=0.406*0.406;
311 : mbx=0.75*0.770+0.25*0.14;
312 : nfp = 0.0;
313 0 : }
314 : else{
315 0 : if (dgt==D0||dgt==D0B||dgt==DP||dgt==DM) {
316 : msq=1.82;
317 : bx2=0.45*0.45;
318 : mbx=0.75*2.01+0.25*1.87;
319 : nfp = 3.0;
320 0 : }
321 : else{
322 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_1S0.\n";
323 : }
324 : }
325 : }
326 : else{
327 0 : if (prnt==D0||prnt==D0B||prnt==DP||prnt==DM) {
328 : msb=1.82;
329 : msd=0.33;
330 : bb2=0.45*0.45;
331 : mbb=1.963;
332 : nf = 3.0;
333 :
334 0 : if (dgt==PIP||dgt==PIM||dgt==PI0||dgt==ETA||dgt==ETAPR) {
335 : msq=0.33;
336 : bx2=0.406*0.406;
337 : mbx=0.75*0.770+0.25*0.14;
338 : nfp = 0.0;
339 0 : }
340 : else{
341 0 : if (dgt==K0||dgt==K0S||dgt==K0L||dgt==KB||dgt==KP||dgt==KM) {
342 : msq=0.55;
343 : bx2=0.44*0.44;
344 : mbx=0.75*0.892+0.25*0.49767;
345 : nfp = 2.0;
346 0 : }
347 : else{
348 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_1S0.\n";
349 : }
350 : }
351 : }
352 : else{
353 0 : if (prnt==DSP||prnt==DSM){
354 : msb=1.82;
355 : msd=0.55;
356 : bb2=0.56*0.56;
357 : mbb=1.968;
358 : nf = 3.0;
359 :
360 0 : if (dgt==K0||dgt==K0S||dgt==K0L||dgt==KB) {
361 :
362 : msq=0.33;
363 : bx2=0.44*0.44;
364 : mbx=0.75*0.770+0.25*0.14;
365 : nfp = 0.0;
366 0 : }
367 : else{
368 0 : if (dgt==PI0||dgt==ETA||dgt==ETAPR) {
369 : msq=0.33;
370 : bx2=0.53*0.53;
371 : mbx=0.75*0.892+0.25*0.49767;
372 : nfp = 0.0;
373 0 : }
374 : else{
375 :
376 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_1S0.\n";
377 : }
378 : }
379 : }
380 : else{
381 : //BS -> cs constants added by djl on Jan. 21,1998
382 0 : if (prnt==BS0||prnt==BSB){
383 :
384 : msb=5.2;
385 : msd=0.55;
386 : bb2=0.54*0.54;
387 : mbb=5.38;
388 : nf = 4.0;
389 :
390 0 : if (dgt==DSP||dgt==DSM) {
391 :
392 : msq=1.82;
393 : bx2=0.56*0.56;
394 : mbx=0.75*2.11+0.25*1.97;
395 : nfp = 3.0;
396 0 : }
397 0 : else if (dgt==KP||dgt==KM) {
398 :
399 : msq=0.55;
400 : bx2=0.44*0.44;
401 : mbx=0.75*0.892+0.25*0.49767;
402 : nfp = 2.0;
403 0 : }
404 : else{
405 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_1S0.\n";
406 : }
407 : }
408 :
409 : else{
410 0 : report(Severity::Error,"EvtGen") << "Not implemented parent in get_isgw_ff_1S0.\n";
411 0 : report(Severity::Error,"EvtGen") << "Parent:"<<parent.getId()<<endl;
412 : }
413 : }
414 : }
415 : }
416 :
417 0 : mtb = msb + msd;
418 0 : mtx = msq + msd;
419 0 : mb=EvtPDL::getMeanMass(parent);
420 : mx=mass;
421 :
422 0 : mup=1.0/(1.0/msq+1.0/msb);
423 0 : bbx2=0.5*(bb2+bx2);
424 0 : tm=(mb-mx)*(mb-mx);
425 0 : if ( t>tm ) t=0.99*tm;
426 :
427 : mqm = 0.1;
428 0 : r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2) +
429 0 : (16.0/(mbb*mbx*(33.0-2.0*nfp)))*
430 0 : log(EvtGetas(mqm,mqm)/EvtGetas(msq,msq));
431 :
432 0 : f3 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,1.5) /
433 0 : ((1.0+r2*(tm-t)/12.0)*(1.0+r2*(tm-t)/12.0));
434 :
435 : // for w use wt def with physical masses.
436 : // report(Severity::Error,"EvtGen") << "before w\n";
437 :
438 0 : ai = -1.0* ( 6.0/( 33.0 - 2.0*nf));
439 0 : cji = pow(( EvtGetas( msb,msb ) / EvtGetas( msq,msq ) ),ai);
440 :
441 0 : zji = msq / msb;
442 :
443 0 : gammaji = EvtGetGammaji( zji );
444 0 : chiji = -1.0 - ( gammaji / ( 1- zji ));
445 0 : betaji_fppfm = gammaji - (2.0/3.0)*chiji;
446 0 : betaji_fpmfm = gammaji + (2.0/3.0)*chiji;
447 0 : rfppfm = cji *(1.0 + betaji_fppfm*EvtGetas( msq,sqrt(msb*msq) )/EvtConst::pi);
448 0 : rfpmfm = cji *(1.0 + betaji_fpmfm*EvtGetas( msq,sqrt(msb*msq) )/EvtConst::pi);
449 0 : f3fppfm = f3*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),0.5);
450 0 : f3fpmfm = f3*pow(( mbb / mtb ),0.5)*pow((mbx/mtx),-0.5);
451 0 : fppfm = f3fppfm* rfppfm * ( 2.0 - ( ( mtx/msq)*(1- ( (msd*msq*bb2)
452 0 : /(2.0*mup*mtx*bbx2)))));
453 0 : fpmfm = f3fpmfm* rfpmfm * ( mtb/msq) * ( 1 - ( ( msd*msq*bb2)/
454 : ( 2.0*mup*mtx*bbx2)));
455 :
456 0 : *fpf = (fppfm + fpmfm)/2.0;
457 0 : *fmf = (fppfm - fpmfm)/2.0;
458 :
459 : return;
460 0 : } //get_ff_isgw_1s0
461 :
462 :
463 :
464 :
465 :
466 : void EvtISGW2FF::EvtISGW2FF3S1(EvtId parent,EvtId daugt,double t,double mass,
467 : double *f,double *g,double *ap,double *am){
468 :
469 : //added by Lange Jan4,2000
470 0 : static EvtId BP=EvtPDL::getId("B+");
471 0 : static EvtId BM=EvtPDL::getId("B-");
472 0 : static EvtId B0=EvtPDL::getId("B0");
473 0 : static EvtId B0B=EvtPDL::getId("anti-B0");
474 :
475 0 : static EvtId DST0=EvtPDL::getId("D*0");
476 0 : static EvtId DSTB=EvtPDL::getId("anti-D*0");
477 0 : static EvtId DSTP=EvtPDL::getId("D*+");
478 0 : static EvtId DSTM=EvtPDL::getId("D*-");
479 0 : static EvtId D0=EvtPDL::getId("D0");
480 0 : static EvtId D0B=EvtPDL::getId("anti-D0");
481 0 : static EvtId DP=EvtPDL::getId("D+");
482 0 : static EvtId DM=EvtPDL::getId("D-");
483 :
484 0 : static EvtId RHOP=EvtPDL::getId("rho+");
485 0 : static EvtId RHOM=EvtPDL::getId("rho-");
486 0 : static EvtId RHO0=EvtPDL::getId("rho0");
487 0 : static EvtId OMEG=EvtPDL::getId("omega");
488 :
489 0 : static EvtId KSTP=EvtPDL::getId("K*+");
490 0 : static EvtId KSTM=EvtPDL::getId("K*-");
491 0 : static EvtId KST0=EvtPDL::getId("K*0");
492 0 : static EvtId KSTB=EvtPDL::getId("anti-K*0");
493 :
494 0 : static EvtId PHI=EvtPDL::getId("phi");
495 0 : static EvtId DSP=EvtPDL::getId("D_s+");
496 0 : static EvtId DSM=EvtPDL::getId("D_s-");
497 :
498 0 : static EvtId DSSTP=EvtPDL::getId("D_s*+");
499 0 : static EvtId DSSTM=EvtPDL::getId("D_s*-");
500 :
501 0 : static EvtId BSB=EvtPDL::getId("anti-B_s0");
502 0 : static EvtId BS0=EvtPDL::getId("B_s0");
503 :
504 : double cf(0.0),mtb,wt,msd(0.0),mup,f3f,msq(0.0),bb2(0.0),mum,mtx,bbx2,f3g;
505 : double cji,bx2(0.0),f3appam,msb(0.0),tm,mbb(0.0),mbx(0.0);
506 : double f3apmam,appam,apmam,mb,mx,f3;
507 : double r_f,r_g,r_apmam, betaji_f,betaji_g;
508 : double betaji_appam, betaji_apmam;
509 : double mqm,r2,chiji,zji,ai,nf(0.0),nfp(0.0),gammaji;
510 :
511 0 : EvtId prnt=parent;
512 0 : EvtId dgt=daugt;
513 :
514 0 : if (parent==B0||parent==B0B||parent==BP||parent==BM) {
515 :
516 : msb=5.2;
517 : msd=0.33;
518 : bb2=0.431*0.431;
519 : mbb=5.31;
520 : nf = 4.0;
521 :
522 0 : if (dgt==DST0||dgt==DSTP||dgt==DSTM||dgt==DSTB) {
523 :
524 : cf=0.989;
525 : msq=1.82;
526 : bx2=0.38*0.38;
527 : mbx=0.75*2.01+0.25*1.87;
528 : nfp = 3.0;
529 0 : }
530 : else{
531 0 : if (dgt==OMEG||dgt==RHO0||dgt==RHOM||dgt==RHOP) {
532 :
533 : cf=0.905;
534 : msq=0.33;
535 : bx2=0.299*0.299;
536 : mbx=0.75*0.770+0.25*0.14;
537 : nfp = 0.0;
538 0 : }
539 : else{
540 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_3S1.\n";
541 : }
542 : }
543 : }
544 : else{
545 0 : if (prnt==D0||prnt==D0B||prnt==DP||prnt==DM) {
546 :
547 : msb=1.82;
548 : msd=0.33;
549 : bb2=0.45*0.45;
550 : mbb=1.963;
551 : nf = 3.0;
552 :
553 0 : if (dgt==KSTP||dgt==KSTM||dgt==KST0||dgt==KSTB) {
554 :
555 : cf=0.928;
556 : msq=0.55;
557 : bx2=0.33*0.33;
558 : mbx=0.75*0.892+0.25*0.494;
559 : nfp = 2.0;
560 0 : }
561 : else{
562 0 : if (dgt==RHO0||dgt==OMEG||dgt==RHOM||dgt==RHOP) {
563 : cf=0.889;
564 : msq=0.33;
565 : bx2=0.299*0.299;
566 : mbx=0.75*0.770+0.25*0.14;
567 : nfp = 0.0;
568 0 : }
569 : else{
570 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_3S1.\n";
571 : }
572 : }
573 : }
574 : else{
575 0 : if (prnt==DSP||prnt==DSM){
576 :
577 : msb=1.82;
578 : msd=0.55;
579 : bb2=0.56*0.56;
580 : mbb=1.968;
581 : nf = 3.0;
582 :
583 0 : if (dgt==KSTB||dgt==KST0) {
584 :
585 : cf=0.8731;
586 : msq=0.55;
587 : bx2=0.33*0.33;
588 : mbx=0.87;
589 : nfp = 2.0;
590 0 : }
591 : else{
592 0 : if(dgt==PHI){
593 : cf=0.911;
594 : msq=0.55;
595 : bx2=0.37*0.37;
596 : mbx=0.97;
597 : nfp = 2.0;
598 0 : }
599 : else{
600 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_3S1.\n";
601 : }
602 : }
603 : }
604 : else{
605 : //BS -> cs constants added by djl on Jan. 21,1998
606 0 : if (prnt==BS0||prnt==BSB){
607 :
608 : msb=5.2;
609 : msd=0.55;
610 : bb2=0.54*0.54;
611 : mbb=5.38;
612 : nf = 4.0;
613 :
614 0 : if (dgt==DSSTP||dgt==DSSTM) {
615 :
616 : cf=0.984;
617 : msq=1.82;
618 : bx2=0.49*0.49;
619 : mbx=0.75*2.11+0.25*1.97;
620 : nfp = 3.0;
621 0 : }
622 0 : else if (dgt==KSTP||dgt==KSTM||dgt==KST0||dgt==KSTB) {
623 :
624 : cf=0.928;
625 : msq=0.55;
626 : bx2=0.33*0.33;
627 : mbx=0.75*0.892+0.25*0.494;
628 : nfp = 2.0;
629 0 : }
630 : else{
631 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_1S0.\n";
632 : }
633 : }
634 :
635 : else{
636 0 : report(Severity::Error,"EvtGen") << "Not implemented parent in get_isgw2_ff_3S1.\n";
637 : }
638 : }
639 : }
640 : }
641 :
642 :
643 0 : mtb=msb+msd;
644 0 : mtx=msq+msd;
645 :
646 0 : mup=1.0/(1.0/msq+1.0/msb);
647 0 : mum=1.0/(1.0/msq-1.0/msb);
648 0 : bbx2=0.5*(bb2+bx2);
649 0 : mb=EvtPDL::getMeanMass(parent);
650 : mx=mass;
651 0 : tm=(mb-mx)*(mb-mx);
652 0 : if ( t > tm ) t = 0.99*tm;
653 :
654 0 : wt=1.0+(tm-t)/(2.0*mbb*mbx);
655 : mqm = 0.1;
656 :
657 0 : r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2) +
658 0 : (16.0/(mbb*mbx*(33.0-2.0*nfp)))*
659 0 : log(EvtGetas(mqm,mqm)/EvtGetas(msq,msq));
660 :
661 0 : ai = -1.0* ( 6.0/( 33.0 - 2.0*nf));
662 :
663 0 : cji = pow(( EvtGetas( msb,msb ) / EvtGetas( msq,msq ) ),ai);
664 0 : zji = msq / msb;
665 :
666 0 : gammaji = EvtGetGammaji( zji );
667 :
668 0 : chiji = -1.0 - ( gammaji / ( 1- zji ));
669 :
670 0 : betaji_g = (2.0/3.0)+gammaji;
671 0 : betaji_f = (-2.0/3.0)+gammaji;
672 0 : betaji_appam = -1.0-chiji+(4.0/(3.0*(1.0-zji)))+
673 0 : (2.0*(1+zji)*gammaji/(3.0*(1.0-zji)*(1.0-zji)));
674 :
675 0 : betaji_apmam = (1.0/3.0)-chiji-(4.0/(3.0*(1.0-zji)))-
676 0 : (2.0*(1+zji)*gammaji/(3.0*(1.0-zji)*(1.0-zji)))+
677 : gammaji;
678 :
679 0 : r_g = cji*(1+(betaji_g*EvtGetas( msq,sqrt(mb*msq) )/(EvtConst::pi)));
680 0 : r_f = cji*(1+(betaji_f*EvtGetas( msq,sqrt(mb*msq) )/(EvtConst::pi)));
681 0 : r_apmam = cji*(1+(betaji_apmam*EvtGetas( msq,sqrt(mb*msq) )/(EvtConst::pi)));
682 :
683 :
684 0 : f3=sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,1.5)/
685 0 : ((1.0+r2*(tm-t)/12.0)*(1.0+r2*(tm-t)/12.0));
686 :
687 0 : f3f=sqrt(mbx*mbb/(mtx*mtb))*f3;
688 0 : f3g=sqrt(mtx*mtb/(mbx*mbb))*f3;
689 0 : f3appam=sqrt(mtb*mtb*mtb*mbx/(mbb*mbb*mbb*mtx))*f3;
690 : f3apmam=sqrt(mtx*mtb/(mbx*mbb))*f3;
691 0 : *f=cf*mtb*(1+wt+msd*(wt-1)/(2*mup))*f3f*r_f;
692 0 : *g=0.5*(1/msq-msd*bb2/(2*mum*mtx*bbx2))*f3g*r_g;
693 :
694 0 : appam=cji*(msd*bx2*(1-msd*bx2/(2*mtb*bbx2))/
695 0 : ((1+wt)*msq*msb*bbx2)-
696 0 : betaji_appam*EvtGetas( msq,sqrt(msq*mb) )/
697 0 : (mtb*EvtConst::pi))*f3appam;
698 :
699 0 : apmam=-1.0*(mtb/msb-msd*bx2/(2*mup*bbx2)+wt*msd*mtb*bx2*
700 0 : (1-msd*bx2/(2*mtb*bbx2))/((wt+1)*msq*msb*bbx2))*
701 0 : f3apmam*r_apmam/mtx;
702 :
703 0 : *ap=0.5*(appam+apmam);
704 0 : *am=0.5*(appam-apmam);
705 : return;
706 0 : }
707 :
708 :
709 : void EvtISGW2FF::EvtISGW2FF21S0 (EvtId parent,EvtId daugt,
710 : double t, double mass, double *fppf, double *fpmf ) {
711 :
712 : //added by Lange Jan4,2000
713 0 : static EvtId BP=EvtPDL::getId("B+");
714 0 : static EvtId BM=EvtPDL::getId("B-");
715 0 : static EvtId B0=EvtPDL::getId("B0");
716 0 : static EvtId B0B=EvtPDL::getId("anti-B0");
717 :
718 0 : static EvtId D0=EvtPDL::getId("D0");
719 0 : static EvtId D0B=EvtPDL::getId("anti-D0");
720 0 : static EvtId DP=EvtPDL::getId("D+");
721 0 : static EvtId DM=EvtPDL::getId("D-");
722 :
723 0 : static EvtId D21S0P=EvtPDL::getId("D(2S)+");
724 0 : static EvtId D21S0N=EvtPDL::getId("D(2S)-");
725 0 : static EvtId D21S00=EvtPDL::getId("D(2S)0");
726 0 : static EvtId D21S0B=EvtPDL::getId("anti-D(2S)0");
727 :
728 0 : static EvtId ETA2S=EvtPDL::getId("eta(2S)");
729 :
730 0 : static EvtId PI2S0=EvtPDL::getId("pi(2S)0");
731 0 : static EvtId PI2SP=EvtPDL::getId("pi(2S)+");
732 0 : static EvtId PI2SM=EvtPDL::getId("pi(2S)-");
733 :
734 : double mtb, mbb(0.0);
735 : double msd(0.0), mx,mb,nfp(0.0);
736 : double msq(0.0),bx2(0.0),mbx(0.0),mtx;
737 : double f3fppfm,f3fpmfm,fppfm,fpmfm,f3;
738 : double mqm,msb(0.0);
739 : double r2,wt,tm,bb2(0.0),bbx2;
740 : double tau,udef,vdef;
741 :
742 0 : EvtId prnt=parent;
743 0 : EvtId dgt=daugt;
744 :
745 0 : if (prnt==B0||prnt==B0B||prnt==BP||prnt==BM) {
746 :
747 : msb=5.2;
748 : msd=0.33;
749 : bb2=0.431*0.431;
750 : mbb=0.75*5.325+0.25*5.279;
751 :
752 0 : if (dgt==PI2S0||dgt==PI2SP||dgt==PI2SM||dgt==ETA2S) {
753 :
754 : msq=0.33;
755 : bx2=0.406*0.406;
756 : mbx=0.75*1.45+0.25*1.300;
757 : nfp = 0.0;
758 0 : }
759 : else{
760 0 : if (dgt==D21S0P||dgt==D21S0B||dgt==D21S0N||dgt==D21S00) {
761 : msq=1.82;
762 : bx2=0.45*0.45;
763 : mbx=0.75*2.64+0.25*2.58;
764 : nfp=3.0;
765 0 : }
766 : else{
767 :
768 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt in get_EvtISGW2_ff_21S0.\n";
769 : }
770 : }
771 : }
772 : else{
773 0 : if (prnt==D0||prnt==D0B||prnt==DP||prnt==DM) {
774 : msb=1.82;
775 : msd=0.33;
776 : bb2=0.45*0.45;
777 : mbb=1.963;
778 0 : if (dgt==PI2SP||dgt==PI2SM||dgt==PI2S0||dgt==ETA2S) {
779 : msq=0.33;
780 : bx2=0.406*0.406;
781 : mbx=0.75*1.45+0.25*1.300;
782 : nfp = 0.0;
783 0 : }
784 : else{
785 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt in get_EvtISGW2_ff_21S0.\n";
786 : }
787 : }
788 : else{
789 0 : report(Severity::Error,"EvtGen") << "Not implemented parent in get_EvtISGW2_ff_21S0.\n";
790 : }
791 : }
792 :
793 0 : mtb = msb + msd;
794 0 : mtx = msq + msd;
795 :
796 0 : mb = EvtPDL::getMeanMass( parent );
797 : mx = mass;
798 :
799 0 : bbx2=0.5*(bb2+bx2);
800 0 : tm=(mb-mx)*(mb-mx);
801 0 : if (t>tm) t = 0.99*tm;
802 0 : wt=1.0+(tm-t)/(2.0*mbb*mbx);
803 :
804 : mqm = 0.1;
805 0 : r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2) +
806 0 : (16.0/(mbb*mbx*(33.0-2.0*nfp)))*
807 0 : log(EvtGetas(mqm)/EvtGetas(msq));
808 :
809 0 : f3 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,3.0/2.0) /
810 0 : (pow((1.0+r2*(tm-t)/24.0),4.0));
811 :
812 0 : f3fppfm = f3*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),0.5);
813 0 : f3fpmfm = f3*pow(( mbb / mtb ),0.5)*pow((mbx/mtx),-0.5);
814 :
815 0 : tau = msd*msd*bx2*(wt-1)/(bb2*bbx2);
816 0 : udef = (( bb2-bx2)/(2.0*bbx2)) + ((bb2*tau)/(3.0*bbx2));
817 0 : vdef = (bb2*(1.0+(msq/msb))/(6.0*bbx2))*(7.0 - ((bb2/bbx2)*(5+tau)));
818 :
819 0 : fppfm = f3fppfm*sqrt(1.5)*((1.0-(msd/msq))*udef-(msd*vdef/msq));
820 0 : fpmfm = f3fpmfm*sqrt(1.5)*(mtb/msq)*(udef+(msd*vdef/mtx));
821 :
822 0 : *fppf = (fppfm + fpmfm) /2.0;
823 0 : *fpmf = (fppfm - fpmfm) /2.0;
824 : return;
825 :
826 0 : } //get_ff_isgw_21s0
827 :
828 :
829 : void EvtISGW2FF::EvtISGW2FF23S1 (EvtId parent,EvtId daugt,
830 : double t, double mass, double *fpf, double *gpf,
831 : double *appf, double *apmf ) {
832 :
833 : //added by Lange Jan4,2000
834 0 : static EvtId BP=EvtPDL::getId("B+");
835 0 : static EvtId BM=EvtPDL::getId("B-");
836 0 : static EvtId B0=EvtPDL::getId("B0");
837 0 : static EvtId B0B=EvtPDL::getId("anti-B0");
838 :
839 0 : static EvtId D0=EvtPDL::getId("D0");
840 0 : static EvtId D0B=EvtPDL::getId("anti-D0");
841 0 : static EvtId DP=EvtPDL::getId("D+");
842 0 : static EvtId DM=EvtPDL::getId("D-");
843 :
844 0 : static EvtId D23S1P=EvtPDL::getId("D*(2S)+");
845 0 : static EvtId D23S1N=EvtPDL::getId("D*(2S)-");
846 0 : static EvtId D23S10=EvtPDL::getId("D*(2S)0");
847 0 : static EvtId D23S1B=EvtPDL::getId("anti-D*(2S)0");
848 :
849 0 : static EvtId RHO2S0=EvtPDL::getId("rho(2S)0");
850 0 : static EvtId RHO2SP=EvtPDL::getId("rho(2S)+");
851 0 : static EvtId RHO2SM=EvtPDL::getId("rho(2S)-");
852 0 : static EvtId OMEG2S=EvtPDL::getId("omega(2S)");
853 :
854 : double mtb, mbb(0.0);
855 : double msd(0.0), mx,mb,nfp(0.0);
856 : double msq(0.0),bx2(0.0),mbx(0.0),mtx;
857 : double f3appam,f3apmam,f3,appam,apmam,f3fp,f3gp;
858 : double udef,tau,mum,bb2(0.0),bbx2,tm,wt,mqm,r2,msb(0.0);
859 : double cfp(0.0);
860 :
861 0 : EvtId prnt=parent;
862 0 : EvtId dgt=daugt;
863 :
864 0 : if (prnt==B0||prnt==B0B||prnt==BP||prnt==BM) {
865 :
866 : msb=5.2;
867 : msd=0.33;
868 : bb2=0.431*0.431;
869 : mbb=0.75*5.325+0.25*5.279;
870 :
871 0 : if (dgt==RHO2S0||dgt==RHO2SP||dgt==RHO2SM||dgt==OMEG2S) {
872 :
873 : cfp=0.776;
874 : msq=0.33;
875 : bx2=0.299*0.299;
876 : mbx=0.75*1.45+0.25*1.300;
877 : nfp = 0.0;
878 :
879 0 : }
880 : else{
881 0 : if (dgt==D23S1N||dgt==D23S1P||dgt==D23S1B||dgt==D23S10) {
882 : cfp=0.929;
883 : msq=1.82;
884 : bx2=0.38*0.38;
885 : mbx=0.75*2.64+0.25*2.58;
886 : nfp=3.0;
887 0 : }
888 : else{
889 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt in get_isgw_ff_23P1.\n";
890 : }
891 : }
892 : }
893 : else{
894 0 : if (prnt==D0||prnt==D0B||prnt==DP||prnt==DM) {
895 : msb=1.82;
896 : msd=0.33;
897 : bb2=0.45*0.45;
898 : mbb=1.963;
899 :
900 0 : if (dgt==RHO2S0||dgt==RHO2SP||dgt==RHO2SM||dgt==OMEG2S) {
901 : cfp=0.74;
902 : msq=0.33;
903 : bx2=0.299*0.299;
904 : mbx=0.75*1.45+0.25*1.300;
905 : nfp = 0.0;
906 0 : }
907 : else{
908 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt in get_isgw_ff_23P1.\n";
909 : }
910 : }
911 : else{
912 0 : report(Severity::Error,"EvtGen") << "Not implemented parent in get_isgw_ff_23P1.\n";
913 : }
914 : }
915 :
916 0 : mtb = msb + msd;
917 0 : mtx = msq + msd;
918 0 : mb = EvtPDL::getMeanMass( parent );
919 : mx = mass;
920 :
921 0 : mum=1.0/(1.0/msq-1.0/msb);
922 0 : bbx2=0.5*(bb2+bx2);
923 0 : tm=(mb-mx)*(mb-mx);
924 :
925 0 : if (t>tm) t = 0.99*tm;
926 0 : wt=1.0+(tm-t)/(2.0*mbb*mbx);
927 :
928 : mqm = 0.1;
929 0 : r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2) +
930 0 : (16.0/(mbb*mbx*(33.0-2.0*nfp)))*
931 0 : log(EvtGetas(mqm)/EvtGetas(msq));
932 :
933 0 : f3 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,3.0/2.0) /
934 0 : (pow((1.0+r2*(tm-t)/24.0),4.0));
935 :
936 0 : f3fp = f3*pow(( mbb / mtb ),0.5)*pow((mbx/mtx),0.5);
937 0 : f3gp = f3*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),-0.5);
938 0 : f3appam = f3*pow(( mbb / mtb ),-1.5)*pow((mbx/mtx),0.5);
939 : f3apmam = f3*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),-0.5);
940 :
941 0 : tau = msd*msd*bx2*(wt-1.0)/(bb2*bbx2);
942 0 : udef = (( bb2-bx2)/(2.0*bbx2));
943 0 : udef = udef + ((bb2*tau)/(3.0*bbx2));
944 :
945 0 : *fpf = cfp*sqrt(1.5)*mtb*(1.0+wt)*udef*f3fp;
946 :
947 0 : *gpf = sqrt(3.0/8.0)*f3gp*(((1.0/msq)-((msd*bb2)/(2.0*mum*mtx*bbx2)))*
948 0 : udef + ( (msd*bb2*bx2)/(3.0*mum*mtx*bbx2*bbx2)));
949 :
950 0 : appam = f3appam*sqrt(2.0/3.0)*(bb2/(msq*msb*bbx2))*((-7.0*msd*msd*bx2*
951 0 : bx2*(1.0+(tau/7.0))/(8.0*mtb*bbx2*bbx2))+(5.0*msd*bx2*(1.0+
952 0 : (tau/5.0))/(4.0*bbx2))+(3.0*msd*msd*bx2*bx2/(8.0*mtb*bb2*bbx2))-
953 0 : (3.0*msd*bx2/(4.0*bb2)));
954 :
955 0 : apmam = f3apmam*sqrt(3.0/2.0)*(mtb/(msb*mtx))*(1.0-(bb2*(1.0+(tau/7.0))/
956 0 : bbx2)-(msd*bx2*(1.0-(5.0*bb2*(1.0+(tau/5.0))/(3.0*bbx2)))
957 0 : /(2.0*mtb*bbx2))-(7.0*msd*msd*bb2*bx2/(12.0*msq*mtb*bbx2*bbx2))*
958 0 : (1.0-(bx2/bbx2)+(bb2*tau/(7.0*bbx2))));
959 :
960 0 : *appf = (appam + apmam) /2.0;
961 0 : *apmf = (appam - apmam) /2.0;
962 : return;
963 0 : } //get_ff_isgw_23s1
964 :
965 : void EvtISGW2FF::EvtISGW2FF1P1 (EvtId parent,EvtId daugt,
966 : double t, double mass, double *rf, double *vf,
967 : double *spf, double *smf ) {
968 : //added by Lange Jan4,2000
969 0 : static EvtId BP=EvtPDL::getId("B+");
970 0 : static EvtId BM=EvtPDL::getId("B-");
971 0 : static EvtId B0=EvtPDL::getId("B0");
972 0 : static EvtId B0B=EvtPDL::getId("anti-B0");
973 :
974 0 : static EvtId D0=EvtPDL::getId("D0");
975 0 : static EvtId D0B=EvtPDL::getId("anti-D0");
976 0 : static EvtId DP=EvtPDL::getId("D+");
977 0 : static EvtId DM=EvtPDL::getId("D-");
978 :
979 0 : static EvtId D1P1P=EvtPDL::getId("D_1+");
980 0 : static EvtId D1P1N=EvtPDL::getId("D_1-");
981 0 : static EvtId D1P10=EvtPDL::getId("D_10");
982 0 : static EvtId D1P1B=EvtPDL::getId("anti-D_10");
983 :
984 0 : static EvtId B1P=EvtPDL::getId("b_1+");
985 0 : static EvtId B1M=EvtPDL::getId("b_1-");
986 0 : static EvtId B10=EvtPDL::getId("b_10");
987 :
988 0 : static EvtId H1=EvtPDL::getId("h_1");
989 0 : static EvtId H1PR=EvtPDL::getId("h'_1");
990 :
991 0 : static EvtId K1P=EvtPDL::getId("K_1+");
992 0 : static EvtId K1M=EvtPDL::getId("K_1-");
993 0 : static EvtId K10=EvtPDL::getId("K_10");
994 0 : static EvtId K1B=EvtPDL::getId("anti-K_10");
995 :
996 0 : static EvtId D1P1SP=EvtPDL::getId("D_s1+");
997 0 : static EvtId D1P1SN=EvtPDL::getId("D_s1-");
998 :
999 0 : static EvtId BSB=EvtPDL::getId("anti-B_s0");
1000 0 : static EvtId BS0=EvtPDL::getId("B_s0");
1001 :
1002 : double mtb, mbb(0.0);
1003 : double msd(0.0), mx,mb,nfp(0.0);
1004 : double msq(0.0),bx2(0.0),mbx(0.0),mtx,f5;
1005 : double f5sppsm,f5spmsm;
1006 : double f5v,f5r,mup,mum,vv,rr,spmsm,sppsm;
1007 : double mqm,msb(0.0),bb2(0.0),bbx2,tm,wt,r2;
1008 0 : EvtId prnt=parent;
1009 0 : EvtId dgt=daugt;
1010 0 : if (prnt==B0||prnt==B0B||prnt==BP||prnt==BM) {
1011 : msb=5.2;
1012 : msd=0.33;
1013 : bb2=0.431*0.431;
1014 : mbb=5.31;
1015 0 : if (dgt==B10||dgt==B1P||dgt==B1M||dgt==H1||dgt==H1PR) {
1016 : msq=0.33;
1017 : bx2=0.275*0.275;
1018 : mbx=(3.0*1.123+0.98+5.0*1.32+3.0*1.26)/12.0;
1019 : nfp = 0.0;
1020 0 : }
1021 : else{
1022 0 : if (dgt==D1P1P||dgt==D1P10||dgt==D1P1B||dgt==D1P1N) {
1023 : msq=1.82;
1024 : bx2=0.33*0.33;
1025 : mbx=(5.0*2.46+3.0*2.42)/8.0;
1026 : nfp = 3.0;
1027 0 : }
1028 : else{
1029 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt in get_isgw_ff_1P1.\n";
1030 : }
1031 : }
1032 : }
1033 : else{
1034 0 : if (prnt==DM||prnt==DP||prnt==D0B||prnt==D0) {
1035 : msb=1.82;
1036 : msd=0.33;
1037 : bb2=0.45*0.45;
1038 : mbb=1.963;
1039 0 : if (dgt==B10||dgt==B1P||dgt==B1M||dgt==H1||dgt==H1PR) {
1040 : msq=0.33;
1041 : bx2=0.275*0.275;
1042 : mbx=(3.0*1.123+0.98+5.0*1.32+3.0*1.26)/12.0;
1043 : nfp = 0.0;
1044 0 : }
1045 : else{
1046 0 : if (dgt==K10||dgt==K1B||dgt==K1P||dgt==K1M) {
1047 : msq=0.55;
1048 : bx2=0.30*0.30;
1049 : mbx=(3.0*1.27+1.43+5.0*1.43+3.0*1.4)/12.0;
1050 : nfp = 2.0;
1051 0 : }
1052 : else{
1053 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt in get_isgw_ff_1P1.\n";
1054 : }
1055 : }
1056 : }
1057 : else{
1058 : //BS -> cs constants added by djl on Jan. 21,1998
1059 0 : if (prnt==BS0||prnt==BSB){
1060 :
1061 : msb=5.2;
1062 : msd=0.55;
1063 : bb2=0.54*0.54;
1064 : mbb=5.38;
1065 :
1066 0 : if (dgt==D1P1SP||dgt==D1P1SN) {
1067 :
1068 : msq=1.82;
1069 : bx2=0.41*0.41;
1070 : mbx=(5.0*2.61+3.0*2.54)/8.0;
1071 : nfp = 3.0;
1072 0 : }
1073 0 : else if (dgt==K10||dgt==K1B||dgt==K1P||dgt==K1M) {
1074 : msq=0.55;
1075 : bx2=0.30*0.30;
1076 : mbx=(3.0*1.27+1.43+5.0*1.43+3.0*1.4)/12.0;
1077 : nfp = 2.0;
1078 0 : }
1079 : else{
1080 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt:"
1081 0 : <<daugt.getId()<<" in get_isgw_ff_1S0.\n";
1082 : }
1083 : }
1084 :
1085 : else{
1086 0 : report(Severity::Error,"EvtGen") << "Not implemented parent in get_isgw_ff_1P1.\n";
1087 : }
1088 : }
1089 : }
1090 :
1091 :
1092 0 : mtb = msb + msd;
1093 0 : mtx = msq + msd;
1094 :
1095 0 : mb = EvtPDL::getMeanMass( parent );
1096 : mx = mass;
1097 :
1098 0 : mup=1.0/(1.0/msq+1.0/msb);
1099 0 : mum=1.0/(1.0/msq-1.0/msb);
1100 0 : bbx2=0.5*(bb2+bx2);
1101 0 : tm=(mb-mx)*(mb-mx);
1102 0 : if (t>tm) t = 0.99*tm;
1103 0 : wt=1.0+(tm-t)/(2.0*mbb*mbx);
1104 :
1105 : mqm = 0.1;
1106 0 : r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2)+
1107 0 : (16.0/(mbb*mbx*(33.0-2.0*nfp)))*
1108 0 : log(EvtGetas(mqm,mqm)/EvtGetas(msq,msq));
1109 :
1110 0 : f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0) /
1111 0 : (pow((1.0+r2*(tm-t)/18.0),3.0));
1112 :
1113 0 : f5v = f5*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),-0.5);
1114 0 : f5r = f5*pow(( mbb / mtb ),0.5)*pow((mbx/mtx),0.5);
1115 0 : f5sppsm = f5*pow(( mbb / mtb ),-1.5)*pow((mbx/mtx),0.5);
1116 : f5spmsm = f5*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),-0.5);
1117 :
1118 0 : if (msq == msd) {
1119 0 : vv = f5v*(((mtb*sqrt(bb2))/(4.0*sqrt(2.0)*msb*msq*mtx)) +
1120 0 : (((wt-1)*msd)/(6.0*sqrt(2.0*bb2)*mtx)));
1121 :
1122 0 : rr = f5r*mtb*sqrt(bb2/2)*((1.0/mup)+((msd*mtx*(wt-1)*(wt-1))/
1123 0 : (3.0*msq*bb2)));
1124 :
1125 0 : sppsm = msd*f5sppsm/(sqrt(2.0*bb2)*mtb)*(1.0-(msd/msq)+((msd*bb2)/
1126 0 : (2.0*mup*bbx2)));
1127 :
1128 0 : spmsm = msd*f5spmsm/(sqrt(2.0*bb2)*msq)*(((4-wt)/3.0)- ( (msd*msq*bb2)/
1129 0 : (2.0*mtx*mup*bbx2)));
1130 :
1131 0 : } else {
1132 0 : vv = -1.0*msd*f5v/(2.0*sqrt(3.0*bb2)*mtx)*
1133 0 : ((wt+1)/2.0+bb2*mtb/(2.0*msd*msq*msb));
1134 :
1135 0 : rr = -2.0*mtb*sqrt(bb2/3.0)*f5r*(1.0/msq + mtx*msd*(wt-1)/(2.0*bb2)*
1136 0 : ((wt+1)/(2.0*msq)-msd*bb2/(2.0*mum*mtx*bbx2)));
1137 :
1138 0 : sppsm = -1.0*sqrt(3.0)*msd*f5sppsm/(2.0*sqrt(bb2)*mtb)*(1 - msd/(3.0*msq) -
1139 0 : msd*bb2/(3.0*bbx2)*(1.0/(2.0*mum)-1.0/mup));
1140 :
1141 0 : spmsm = -1.0*msd*f5spmsm/(2.0*sqrt(3.0*bb2)*mtx)*((2-wt)*mtx/msq +
1142 0 : msd*bb2/bbx2*(1.0/(2.0*mum)-1.0/mup));
1143 :
1144 : }
1145 :
1146 : //smooth out the mass(meson) dependence a little
1147 0 : double parMass=EvtPDL::getMeanMass(prnt);
1148 0 : double q2max = parMass*parMass + mass*mass - 2.0*parMass*mass;
1149 0 : double massNom= EvtPDL::getMeanMass(dgt);
1150 0 : double q2maxNom = parMass*parMass + massNom*massNom - 2.0*parMass*massNom;
1151 0 : double q2maxin=sqrt(q2maxNom/q2max);
1152 0 : if ( q2maxin > 1000. ) q2maxin=1000.;
1153 :
1154 0 : vv*=q2maxin;
1155 0 : rr*=q2maxin;
1156 0 : sppsm*=q2maxin;
1157 0 : spmsm*=q2maxin;
1158 :
1159 0 : *vf = vv;
1160 0 : *rf = rr;
1161 0 : *spf = (sppsm + spmsm)/2.0;
1162 0 : *smf = (sppsm - spmsm)/2.0;
1163 : return;
1164 0 : } //get_ff_isgw_1p1
1165 :
1166 :
1167 : void EvtISGW2FF::EvtISGW2FF3P1 (EvtId parent,EvtId daugt,
1168 : double t, double mass, double *lf, double *qf,
1169 : double *cpf, double *cmf ) {
1170 :
1171 : //added by Lange Jan4,2000
1172 0 : static EvtId BP=EvtPDL::getId("B+");
1173 0 : static EvtId BM=EvtPDL::getId("B-");
1174 0 : static EvtId B0=EvtPDL::getId("B0");
1175 0 : static EvtId B0B=EvtPDL::getId("anti-B0");
1176 :
1177 0 : static EvtId D0=EvtPDL::getId("D0");
1178 0 : static EvtId D0B=EvtPDL::getId("anti-D0");
1179 0 : static EvtId DP=EvtPDL::getId("D+");
1180 0 : static EvtId DM=EvtPDL::getId("D-");
1181 :
1182 0 : static EvtId D3P1P=EvtPDL::getId("D'_1+");
1183 0 : static EvtId D3P1N=EvtPDL::getId("D'_1-");
1184 0 : static EvtId D3P10=EvtPDL::getId("D'_10");
1185 0 : static EvtId D3P1B=EvtPDL::getId("anti-D'_10");
1186 :
1187 0 : static EvtId A1P=EvtPDL::getId("a_1+");
1188 0 : static EvtId A1M=EvtPDL::getId("a_1-");
1189 0 : static EvtId A10=EvtPDL::getId("a_10");
1190 :
1191 0 : static EvtId F1=EvtPDL::getId("f_1");
1192 0 : static EvtId F1PR=EvtPDL::getId("f'_1");
1193 :
1194 0 : static EvtId K1STP=EvtPDL::getId("K'_1+");
1195 0 : static EvtId K1STM=EvtPDL::getId("K'_1-");
1196 0 : static EvtId K1ST0=EvtPDL::getId("K'_10");
1197 0 : static EvtId K1STB=EvtPDL::getId("anti-K'_10");
1198 :
1199 0 : static EvtId D3P1SP=EvtPDL::getId("D'_s1+");
1200 0 : static EvtId D3P1SN=EvtPDL::getId("D'_s1-");
1201 :
1202 0 : static EvtId BSB=EvtPDL::getId("anti-B_s0");
1203 0 : static EvtId BS0=EvtPDL::getId("B_s0");
1204 :
1205 : double mtb, mbb(0.0);
1206 : double msd(0.0), mx,mb,nfp(0.0);
1207 : double msq(0.0),bx2(0.0),mbx(0.0),mtx;
1208 : double f5cppcm,f5cpmcm,f5,ql,ll,cppcm,cpmcm,f5q,f5l;
1209 : double mqm,msb(0.0),bb2(0.0),mum,bbx2,tm,wt,r2;
1210 0 : EvtId prnt=parent;
1211 0 : EvtId dgt=daugt;
1212 :
1213 0 : if (prnt==B0||prnt==B0B||prnt==BP||prnt==BM) {
1214 :
1215 : msb=5.2;
1216 : msd=0.33;
1217 : bb2=0.431*0.431;
1218 : mbb=5.31;
1219 :
1220 0 : if (dgt==A10||dgt==A1P||dgt==A1M||dgt==F1||dgt==F1PR) {
1221 :
1222 : msq=0.33;
1223 : bx2=0.275*0.275;
1224 : mbx=(3.0*1.23+0.98+5.0*1.32+3.0*1.26)/12.0;
1225 : nfp = 0.0;
1226 0 : }
1227 : else{
1228 0 : if (dgt==D3P1P||dgt==D3P1N||dgt==D3P10||dgt==D3P1B) {
1229 : msq=1.82;
1230 : bx2=0.33*0.33;
1231 : mbx=(3.0*2.49+2.40)/4.0;
1232 : nfp = 3.0;
1233 0 : }
1234 : else{
1235 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_3P1.\n";
1236 : }
1237 : }
1238 : }
1239 : else{
1240 0 : if (prnt==D0||prnt==D0B||prnt==DP||prnt==DM) {
1241 :
1242 : msb=1.82;
1243 : msd=0.33;
1244 : bb2=0.45*0.45;
1245 : mbb=1.963;
1246 :
1247 0 : if (dgt==F1||dgt==F1PR||dgt==A10||dgt==A1P||dgt==A1M) {
1248 :
1249 : msq=0.33;
1250 : bx2=0.275*0.275;
1251 : mbx=(3.0*1.23+0.98+5.0*1.32+3.0*1.26)/12.0;
1252 : nfp = 0.0;
1253 0 : }
1254 : else{
1255 0 : if (dgt==K1STM||dgt==K1STB||dgt==K1STP||dgt==K1ST0) {
1256 : msq=0.55;
1257 : bx2=0.30*0.30;
1258 : mbx=(3.0*1.40+1.43+5.0*1.43+3.0*1.27)/12.0;
1259 : nfp = 2.0;
1260 0 : }
1261 : else{
1262 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_3P1.\n";
1263 : }
1264 : }
1265 : }
1266 : else{
1267 : //BS -> cs constants added by djl on Jan. 21,1998
1268 0 : if (prnt==BS0||prnt==BSB){
1269 :
1270 : msb=5.2;
1271 : msd=0.55;
1272 : bb2=0.54*0.54;
1273 : mbb=5.38;
1274 :
1275 0 : if (dgt==D3P1SP||dgt==D3P1SN) {
1276 :
1277 : msq=1.82;
1278 : bx2=0.41*0.41;
1279 : mbx=(3.0*2.54+2.46)/4.0;
1280 : nfp = 3.0;
1281 0 : }
1282 0 : else if (dgt==K1STM||dgt==K1STB||dgt==K1STP||dgt==K1ST0) {
1283 : msq=0.55;
1284 : bx2=0.30*0.30;
1285 : mbx=(3.0*1.40+1.43+5.0*1.43+3.0*1.27)/12.0;
1286 : nfp = 2.0;
1287 0 : }
1288 : else{
1289 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_1S0.\n";
1290 : }
1291 : }
1292 :
1293 : else{
1294 0 : report(Severity::Error,"EvtGen") << "Not implemented parent in get_isgw_ff_3P1.\n";
1295 : }
1296 : }
1297 : }
1298 :
1299 :
1300 :
1301 0 : mtb = msb + msd;
1302 0 : mtx = msq + msd;
1303 :
1304 0 : mb = EvtPDL::getMeanMass( parent );
1305 : mx = mass;
1306 :
1307 0 : mum=1.0/(1.0/msq-1.0/msb);
1308 0 : bbx2=0.5*(bb2+bx2);
1309 0 : tm=(mb-mx)*(mb-mx);
1310 0 : if (t>tm) t = 0.99*tm;
1311 0 : wt=1.0+(tm-t)/(2.0*mbb*mbx);
1312 :
1313 : mqm = 0.1;
1314 0 : r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2) +
1315 0 : (16.0/(mbb*mbx*(33.0-2.0*nfp)))*
1316 0 : log(EvtGetas(mqm)/EvtGetas(msq));
1317 :
1318 0 : f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0) /
1319 0 : (pow((1.0+r2*(tm-t)/18.0),3.0));
1320 :
1321 0 : f5q = f5*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),-0.5);
1322 0 : f5l = f5*pow(( mbb / mtb ),0.5)*pow((mbx/mtx),0.5);
1323 0 : f5cppcm = f5*pow(( mbb / mtb ),-1.5)*pow((mbx/mtx),0.5);
1324 : f5cpmcm = f5*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),-0.5);
1325 :
1326 0 : if (msq == msd) {
1327 :
1328 0 : ql = -1.0*(msd*(5.0+wt)*f5q/(2.0*mtx*sqrt(bb2)*6.0));
1329 :
1330 0 : ll = -1.0*mtb*sqrt(bb2)*f5l*(1/mum+ ( (msd*mtx*(wt-1)/bb2)*
1331 0 : ( (5.0+wt)/(6.0*msq)-(msd*bb2)/(2.0*mum*mtx*bbx2))));
1332 :
1333 0 : cppcm = (-1.0*(msd*mtx*f5cppcm/(2.0*msq*mtb*sqrt(bb2)))*
1334 0 : (1-(msd*msq*bb2)/(2.0*mtx*mum*bbx2)));
1335 :
1336 0 : cpmcm = 1.0*(msd*mtx*f5cpmcm/(2.0*msq*mtb*sqrt(bb2)))*
1337 0 : (((wt+2.0)/3.0)-(msd*msq*bb2)/(2.0*mtx*mum*bbx2))
1338 0 : *(mtb/mtx);
1339 0 : } else {
1340 :
1341 0 : ql = f5q*sqrt(1.0/6.0)*msd/(sqrt(bb2)*mtx)*
1342 0 : (1.0-bb2*mtb/(4.0*msd*msq*msb));
1343 0 : ll = f5l*sqrt(2.0/3.0)*mtb*sqrt(bb2)*(1.0/(2.0*msq) - 3.0/(2.0*msb) +
1344 0 : msd*mtx*(wt-1)/bb2*(1.0/msq-msd*bb2/(2.0*mum*mtx*bbx2)));
1345 0 : cppcm = msd*msd*bx2*f5cppcm/(sqrt(6.0)*mtb*msq*sqrt(bb2)*bbx2);
1346 0 : cpmcm = -sqrt(2.0/3.0)*msd*f5cpmcm/(sqrt(bb2)*mtx)*
1347 0 : (1+msd*bx2/(2.0*msq*bbx2));
1348 : }
1349 :
1350 : //smooth out the mass(meson) dependence a little
1351 0 : double parMass=EvtPDL::getMeanMass(prnt);
1352 0 : double q2max = parMass*parMass + mass*mass - 2.0*parMass*mass;
1353 0 : double massNom= EvtPDL::getMeanMass(dgt);
1354 0 : double q2maxNom = parMass*parMass + massNom*massNom - 2.0*parMass*massNom;
1355 0 : double q2maxin=sqrt(q2maxNom/q2max);
1356 0 : if ( q2maxin > 1000. ) q2maxin=1000.;
1357 0 : ql*=q2maxin;
1358 0 : ll*=q2maxin;
1359 0 : cppcm*=q2maxin;
1360 0 : cpmcm*=q2maxin;
1361 :
1362 0 : *qf = ql;
1363 0 : *lf = ll;
1364 0 : *cpf = (cppcm + cpmcm)/2.0;
1365 0 : *cmf = (cppcm - cpmcm)/2.0;
1366 : return;
1367 0 : } //get_ff_isgw_3p1
1368 :
1369 :
1370 : void EvtISGW2FF::EvtISGW2FF3P0 (EvtId parent,EvtId daugt,
1371 : double t, double mass, double *upf, double *umf ) {
1372 :
1373 : //added by Lange Jan4,2000
1374 0 : static EvtId BP=EvtPDL::getId("B+");
1375 0 : static EvtId BM=EvtPDL::getId("B-");
1376 0 : static EvtId B0=EvtPDL::getId("B0");
1377 0 : static EvtId B0B=EvtPDL::getId("anti-B0");
1378 :
1379 0 : static EvtId D0=EvtPDL::getId("D0");
1380 0 : static EvtId D0B=EvtPDL::getId("anti-D0");
1381 0 : static EvtId DP=EvtPDL::getId("D+");
1382 0 : static EvtId DM=EvtPDL::getId("D-");
1383 :
1384 0 : static EvtId D3P0P=EvtPDL::getId("D_0*+");
1385 0 : static EvtId D3P0N=EvtPDL::getId("D_0*-");
1386 0 : static EvtId D3P00=EvtPDL::getId("D_0*0");
1387 0 : static EvtId D3P0B=EvtPDL::getId("anti-D_0*0");
1388 :
1389 0 : static EvtId D3P0SP=EvtPDL::getId("D_s0*+");
1390 0 : static EvtId D3P0SN=EvtPDL::getId("D_s0*-");
1391 :
1392 0 : static EvtId A0P=EvtPDL::getId("a_0+");
1393 0 : static EvtId A0M=EvtPDL::getId("a_0-");
1394 0 : static EvtId A00=EvtPDL::getId("a_00");
1395 :
1396 0 : static EvtId F0=EvtPDL::getId("f_0");
1397 0 : static EvtId F0PR=EvtPDL::getId("f'_0");
1398 :
1399 0 : static EvtId K0STP=EvtPDL::getId("K_0*+");
1400 0 : static EvtId K0STM=EvtPDL::getId("K_0*-");
1401 0 : static EvtId K0ST0=EvtPDL::getId("K_0*0");
1402 0 : static EvtId K0STB=EvtPDL::getId("anti-K_0*0");
1403 :
1404 0 : static EvtId DSP=EvtPDL::getId("D_s+");
1405 0 : static EvtId DSM=EvtPDL::getId("D_s-");
1406 :
1407 0 : static EvtId BSB=EvtPDL::getId("anti-B_s0");
1408 0 : static EvtId BS0=EvtPDL::getId("B_s0");
1409 :
1410 : double mtb, mbb(0.0);
1411 : double msd(0.0), mx,mb,nfp(0.0);
1412 : double msq(0.0),bx2(0.0),mbx(0.0),mtx;
1413 : double f5uppum,f5upmum,uppum,upmum,f5;
1414 : double mqm,r2,bb2(0.0),bbx2,msb(0.0),tm;
1415 :
1416 0 : EvtId prnt=parent;
1417 0 : EvtId dgt=daugt;
1418 :
1419 0 : if (prnt==B0||prnt==B0B||prnt==BP||prnt==BM) {
1420 :
1421 : msb=5.2;
1422 : msd=0.33;
1423 : bb2=0.431*0.431;
1424 : mbb=5.31;
1425 0 : if (dgt==A00||dgt==A0P||dgt==A0M||dgt==F0||dgt==F0PR) {
1426 :
1427 : msq=0.33;
1428 : bx2=0.275*0.275;
1429 : mbx=(3.0*1.23+0.98+5.0*1.32+3.0*1.26)/12.0;
1430 : nfp = 0.0;
1431 0 : }
1432 : else{
1433 0 : if (dgt==D3P0P||dgt==D3P0N||dgt==D3P00||dgt==D3P0B) {
1434 : msq=1.82;
1435 : bx2=0.33*0.33;
1436 : mbx=(3.0*2.49+2.40)/4.0;
1437 : nfp = 3.0;
1438 0 : }
1439 : else{
1440 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt in get_EvtISGW2_ff_3P0.\n";
1441 : }
1442 : }
1443 : }
1444 : else{
1445 0 : if (prnt==D0||prnt==D0B||prnt==DP||prnt==DM) {
1446 :
1447 : msb=1.82;
1448 : msd=0.33;
1449 : bb2=0.45*0.45;
1450 : mbb=1.963;
1451 0 : if (dgt==F0||dgt==F0PR||dgt==A00||dgt==A0P||dgt==A0M) {
1452 : msq=0.33;
1453 : bx2=0.275*0.275;
1454 : mbx=(3.0*1.23+0.98+5.0*1.32+3.0*1.26)/12.0;
1455 : nfp = 0.0;
1456 0 : }
1457 : else{
1458 0 : if (dgt==K0STM||dgt==K0STB||dgt==K0STP||dgt==K0ST0) {
1459 : msq=0.55;
1460 : bx2=0.30*0.30;
1461 : mbx=(3.0*1.40+1.43+5.0*1.43+3.0*1.27)/12.0;
1462 : nfp = 2.0;
1463 0 : }
1464 : else{
1465 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt in get_EvtISGW2_ff_3P0.\n";
1466 : }
1467 : }
1468 : }
1469 : else{
1470 0 : if (prnt==DSP||prnt==DSM){
1471 : msb=1.82;
1472 : msd=0.55;
1473 : bb2=0.56*0.56;
1474 : mbb=1.968;
1475 :
1476 0 : if (dgt==F0||dgt==F0PR||dgt==A00||dgt==A0P||dgt==A0M) {
1477 : msq=0.55;
1478 : bx2=0.33*0.33;
1479 : mbx=(3.0*1.40+1.43+5.0*1.43+3.0*1.27)/12.0;
1480 : nfp = 2.0;
1481 0 : }
1482 : else{
1483 0 : if (dgt==K0STM||dgt==K0STB||dgt==K0STP||dgt==K0ST0) {
1484 : msq=0.33;
1485 : bx2=0.30*0.30;
1486 : mbx=(3.0*1.23+0.98+5.0*1.32+3.0*1.26)/12.0;
1487 : nfp = 0.0;
1488 0 : }
1489 : else{
1490 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt in get_EvtISGW2_ff_3P0.\n";
1491 : }
1492 : }
1493 : }
1494 : else{
1495 : //BS -> cs constants added by djl on Jan. 21,1998
1496 0 : if (prnt==BS0||prnt==BSB){
1497 :
1498 : msb=5.2;
1499 : msd=0.55;
1500 : bb2=0.54*0.54;
1501 : mbb=5.38;
1502 :
1503 0 : if (dgt==D3P0SP||dgt==D3P0SN) {
1504 :
1505 : msq=1.82;
1506 : bx2=0.41*0.41;
1507 : mbx=(3.0*2.54+2.46)/4.0;
1508 : nfp = 3.0;
1509 0 : }
1510 0 : else if (dgt==K0STM||dgt==K0STB||dgt==K0STP||dgt==K0ST0) {
1511 : msq=0.55;
1512 : bx2=0.30*0.30;
1513 : mbx=(3.0*1.40+1.43+5.0*1.43+3.0*1.27)/12.0;
1514 : nfp = 2.0;
1515 0 : }
1516 : else{
1517 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_1S0.\n";
1518 : }
1519 : }
1520 : else{
1521 0 : report(Severity::Error,"EvtGen") << "Not implemented parent in get_EvtISGW2_ff_3P0.\n";
1522 : }
1523 : }
1524 : }
1525 : }
1526 :
1527 :
1528 0 : mtb = msb + msd;
1529 0 : mtx = msq + msd;
1530 :
1531 0 : mb = EvtPDL::getMeanMass( parent );
1532 : mx = mass;
1533 :
1534 0 : bbx2=0.5*(bb2+bx2);
1535 0 : tm=(mb-mx)*(mb-mx);
1536 0 : if (t>tm) t = 0.99*tm;
1537 :
1538 : mqm = 0.1;
1539 0 : r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2) +
1540 0 : (16.0/(mbb*mbx*(33.0-2.0*nfp)))*
1541 0 : log(EvtGetas(mqm)/EvtGetas(msq));
1542 :
1543 0 : f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0) /
1544 0 : (pow((1.0+r2*(tm-t)/18.0),3.0));
1545 :
1546 0 : f5uppum = f5*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),0.5);
1547 0 : f5upmum = f5*pow(( mbb / mtb ),0.5)*pow((mbx/mtx),-0.5);
1548 :
1549 0 : uppum = -1.0*f5uppum*sqrt(2.0/(3.0*bb2))*msd;
1550 0 : upmum = 1.0*f5upmum*sqrt(2.0/(3.0*bb2))*msd*mtb/mtx;
1551 :
1552 0 : *upf = (uppum + upmum)/2.0;
1553 0 : *umf = (uppum - upmum)/2.0;
1554 :
1555 : return;
1556 :
1557 0 : }
1558 :
1559 :
1560 : void EvtISGW2FF::EvtISGW2FF3P2 (EvtId parent,EvtId daugt,
1561 : double t, double mass, double *hf, double *kf,
1562 : double *bpf, double *bmf ) {
1563 :
1564 : //added by Lange Jan4,2000
1565 0 : static EvtId BP=EvtPDL::getId("B+");
1566 0 : static EvtId BM=EvtPDL::getId("B-");
1567 0 : static EvtId B0=EvtPDL::getId("B0");
1568 0 : static EvtId B0B=EvtPDL::getId("anti-B0");
1569 :
1570 0 : static EvtId D0=EvtPDL::getId("D0");
1571 0 : static EvtId D0B=EvtPDL::getId("anti-D0");
1572 0 : static EvtId DP=EvtPDL::getId("D+");
1573 0 : static EvtId DM=EvtPDL::getId("D-");
1574 :
1575 0 : static EvtId D3P2P=EvtPDL::getId("D_2*+");
1576 0 : static EvtId D3P2N=EvtPDL::getId("D_2*-");
1577 0 : static EvtId D3P20=EvtPDL::getId("D_2*0");
1578 0 : static EvtId D3P2B=EvtPDL::getId("anti-D_2*0");
1579 :
1580 0 : static EvtId A2P=EvtPDL::getId("a_2+");
1581 0 : static EvtId A2M=EvtPDL::getId("a_2-");
1582 0 : static EvtId A20=EvtPDL::getId("a_20");
1583 :
1584 0 : static EvtId F2=EvtPDL::getId("f_2");
1585 0 : static EvtId F2PR=EvtPDL::getId("f'_2");
1586 :
1587 0 : static EvtId K2STP=EvtPDL::getId("K_2*+");
1588 0 : static EvtId K2STM=EvtPDL::getId("K_2*-");
1589 0 : static EvtId K2ST0=EvtPDL::getId("K_2*0");
1590 0 : static EvtId K2STB=EvtPDL::getId("anti-K_2*0");
1591 :
1592 0 : static EvtId D3P2SP=EvtPDL::getId("D_s2*+");
1593 0 : static EvtId D3P2SN=EvtPDL::getId("D_s2*-");
1594 :
1595 0 : static EvtId BSB=EvtPDL::getId("anti-B_s0");
1596 0 : static EvtId BS0=EvtPDL::getId("B_s0");
1597 :
1598 :
1599 : double mtb, mbb(0.0);
1600 : double msd(0.0), mx,mb,nfp(0.0);
1601 : double msq(0.0),bx2(0.0),mbx(0.0),mtx,f5;
1602 : double f5h,f5k,f5bppbm,f5bpmbm,bppbm,bpmbm;
1603 : double mqm,mum,mup,tm,wt,r2,bb2(0.0),bbx2;
1604 : double msb(0.0);
1605 0 : EvtId prnt=parent;
1606 0 : EvtId dgt=daugt;
1607 :
1608 0 : if (prnt==B0||prnt==B0B||prnt==BP||prnt==BM) {
1609 :
1610 : msb=5.2;
1611 : msd=0.33;
1612 : bb2=0.431*0.431;
1613 : mbb=5.31;
1614 :
1615 0 : if (dgt==A20||dgt==A2P||dgt==A2M||dgt==F2||dgt==F2PR) {
1616 :
1617 : msq=0.33;
1618 : bx2=0.275*0.275;
1619 : mbx=(3.0*1.23+0.98+5.0*1.32+3.0*1.26)/12.0;
1620 : nfp = 0.0;
1621 :
1622 0 : }
1623 :
1624 : else{
1625 0 : if (dgt==D3P2P||dgt==D3P2N||dgt==D3P20||dgt==D3P2B) {
1626 :
1627 : msq=1.82;
1628 : bx2=0.33*0.33;
1629 : mbx=(5.0*2.46+3.0*2.42)/8.0;
1630 : nfp = 3.0;
1631 0 : }
1632 : else{
1633 :
1634 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt in get_isgw_ff_3P2.\n";
1635 : }
1636 : }
1637 : }
1638 : else{
1639 0 : if (prnt==D0||prnt==D0B||prnt==DP||prnt==DM) {
1640 :
1641 : msb=1.82;
1642 : msd=0.33;
1643 : bb2=0.45*0.45;
1644 : mbb=1.963;
1645 0 : if (dgt==F2||dgt==F2PR||dgt==A20||dgt==A2P||dgt==A2M) {
1646 : msq=0.33;
1647 : bx2=0.275*0.275;
1648 : mbx=(3.0*1.23+0.98+5.0*1.32+3.0*1.26)/12.0;
1649 : nfp = 0.0;
1650 0 : }
1651 : else{
1652 0 : if (dgt==K2STM||dgt==K2STB||dgt==K2STP||dgt==K2ST0) {
1653 : msq=0.55;
1654 : bx2=0.30*0.30;
1655 : mbx=(3.0*1.40+1.43+5.0*1.43+3.0*1.27)/12.0;
1656 : nfp = 2.0;
1657 0 : }
1658 : else{
1659 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt in get_isgw_ff_3P2.\n";
1660 : }
1661 : }
1662 : }
1663 : else{
1664 : //BS -> cs constants added by djl on Jan. 21,1998
1665 0 : if (prnt==BS0||prnt==BSB){
1666 :
1667 : msb=5.2;
1668 : msd=0.55;
1669 : bb2=0.54*0.54;
1670 : mbb=5.38;
1671 :
1672 0 : if (dgt==D3P2SP||dgt==D3P2SN) {
1673 :
1674 : msq=1.82;
1675 : bx2=0.41*0.41;
1676 : mbx=(5.0*2.61+3.0*2.54)/8.0;
1677 : nfp = 3.0;
1678 0 : }
1679 0 : else if (dgt==K2STM||dgt==K2STB||dgt==K2STP||dgt==K2ST0) {
1680 : msq=0.55;
1681 : bx2=0.30*0.30;
1682 : mbx=(3.0*1.40+1.43+5.0*1.43+3.0*1.27)/12.0;
1683 : nfp = 2.0;
1684 0 : }
1685 : else{
1686 0 : report(Severity::Error,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_1S0.\n";
1687 : }
1688 : }
1689 :
1690 : else{
1691 0 : report(Severity::Error,"EvtGen") << "Not implemented parent in get_isgw_ff_3P2.\n";
1692 : }
1693 : }
1694 : }
1695 0 : mtb = msb + msd;
1696 0 : mtx = msq + msd;
1697 :
1698 0 : mb = EvtPDL::getMeanMass( parent );
1699 : mx = mass;
1700 0 : mup=1.0/(1.0/msq+1.0/msb);
1701 0 : mum=1.0/(1.0/msq-1.0/msb);
1702 0 : bbx2=0.5*(bb2+bx2);
1703 0 : tm=(mb-mx)*(mb-mx);
1704 0 : if (t>tm) t = 0.99*tm;
1705 0 : wt=1.0+(tm-t)/(2.0*mbb*mbx);
1706 :
1707 : mqm = 0.1;
1708 0 : r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2)+
1709 0 : (16.0/(mbb*mbx*(33.0-2.0*nfp)))*
1710 0 : log(EvtGetas(mqm)/EvtGetas(msq));
1711 :
1712 0 : f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0) /
1713 0 : (pow((1.0+r2*(tm-t)/18.0),3.0));
1714 :
1715 0 : f5h = f5*pow(( mbb / mtb ),-1.5)*pow((mbx/mtx),-0.5);
1716 0 : f5k = f5*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),0.5);
1717 0 : f5bppbm = f5*pow(( mbb / mtb ),-2.5)*pow((mbx/mtx),0.5);
1718 : f5bpmbm = f5*pow(( mbb / mtb ),-1.5)*pow((mbx/mtx),-0.5);
1719 :
1720 0 : *hf = f5h*(msd/(sqrt(8.0*bb2)*mtb))*((1.0/msq)-(msd*bb2/(2.0*mum*
1721 0 : mtx*bbx2)));
1722 :
1723 0 : *kf = f5k*(msd/(sqrt(2.0*bb2)))*(1.0+wt);
1724 :
1725 0 : bppbm = ((msd*msd*f5bppbm*bx2)/(sqrt(32.0*bb2)*msq*msb*mtb*bbx2))*
1726 0 : (1.0-(msd*bx2/(2.0*mtb*bbx2)));
1727 :
1728 0 : bpmbm = -1.0*(msd*f5bpmbm/(sqrt(2.0*bb2)*msb*mtx))*(1.0-
1729 0 : ((msd*msb*bx2)/(2.0*mup*mtb*bbx2))+((msd*bx2*(1.0-
1730 0 : ((msd*bx2)/(2.0*mtb*bbx2))))/(4.0*msq*bbx2)));
1731 :
1732 0 : *bpf = (bppbm + bpmbm)/2.0;
1733 0 : *bmf = (bppbm - bpmbm)/2.0;
1734 : return;
1735 0 : } //get_ff_isgw_1p1
1736 :
1737 :
1738 : double EvtISGW2FF::EvtGetGammaji ( double z )
1739 :
1740 : {
1741 : double temp;
1742 :
1743 0 : temp = 2+((2.0*z)/(1-z))*log(z);
1744 0 : temp = -1.0*temp;
1745 :
1746 0 : return temp;
1747 :
1748 : } //EvtGetGammaji
1749 :
1750 :
1751 :
1752 : double EvtISGW2FF::EvtGetas ( double massq, double massx )
1753 : {
1754 : double lqcd2 = 0.04;
1755 : double nflav = 4;
1756 : double temp = 0.6;
1757 :
1758 0 : if ( massx > 0.6 ) {
1759 0 : if ( massq < 1.85 ) {
1760 0 : nflav = 3.0;}
1761 :
1762 0 : temp = 12.0*EvtConst::pi / ( 33.0 - 2.0*nflav) /
1763 0 : log( massx*massx/lqcd2);
1764 0 : }
1765 0 : return temp;
1766 :
1767 : } //EvtGetas
1768 :
1769 : double EvtISGW2FF::EvtGetas ( double mass )
1770 :
1771 : {
1772 : double lqcd2 = 0.04;
1773 : double nflav = 4;
1774 : double temp = 0.6;
1775 :
1776 0 : if ( mass > 0.6 ) {
1777 0 : if ( mass < 1.85 ) {
1778 0 : nflav = 3.0;}
1779 :
1780 0 : temp = 12.0*EvtConst::pi / ( 33.0 - 2.0*nflav) /
1781 0 : log( mass*mass/lqcd2);
1782 0 : }
1783 0 : return temp;
1784 :
1785 : } //EvtGetas
1786 :
1787 :
1788 : void EvtISGW2FF::getbaryonff(EvtId, EvtId, double, double, double*,
1789 : double*, double*, double*){
1790 :
1791 0 : report(Severity::Error,"EvtGen") << "Not implemented :getbaryonff in EvtISGW2FF.\n";
1792 :
1793 0 : ::abort();
1794 :
1795 : }
1796 :
1797 : void EvtISGW2FF::getdiracff(EvtId, EvtId, double, double, double*, double*,
1798 : double*, double*, double*, double*) {
1799 :
1800 0 : report(Severity::Error,"EvtGen") << "Not implemented :getdiracff in EvtISGW2FF.\n";
1801 0 : ::abort();
1802 :
1803 : }
1804 :
1805 : void EvtISGW2FF::getraritaff(EvtId, EvtId, double, double, double*, double*,
1806 : double*, double*, double*, double*, double*, double*) {
1807 :
1808 0 : report(Severity::Error,"EvtGen") << "Not implemented :getraritaff in EvtISGW2FF.\n";
1809 0 : ::abort();
1810 :
1811 : }
|