]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TEvtGen/EvtGenModels/EvtISGWFF.cxx
An effective FD corretion
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenModels / EvtISGWFF.cxx
1 //--------------------------------------------------------------------------
2 //
3 // Environment:
4 //      This software is part of the EvtGen package developed jointly
5 //      for the BaBar and CLEO collaborations.  If you use all or part
6 //      of it, please give an appropriate acknowledgement.
7 //
8 // Copyright Information: See EvtGen/COPYRIGHT
9 //      Copyright (C) 1998      Caltech, UCSB
10 //
11 // Module: EvtISGWFF.cc
12 //
13 // Description: Routine to implement semileptonic form factors
14 //              according to the model ISGW
15 //
16 // Modification history:
17 //
18 //    DJL     April 17, 1998        Module created
19 //
20 //------------------------------------------------------------------------
21 // 
22 #include "EvtGenBase/EvtPatches.hh"
23 #include "EvtGenBase/EvtPatches.hh"
24 #include "EvtGenBase/EvtReport.hh"
25 #include "EvtGenModels/EvtISGWFF.hh"
26 #include "EvtGenBase/EvtPDL.hh"
27 #include "EvtGenBase/EvtId.hh"
28 #include <string>
29 #include <math.h>
30 #include <stdlib.h>
31 using std::endl;
32
33 void EvtISGWFF::getscalarff(EvtId parent,EvtId daught,
34                        double t, double mass, double *fpf,
35                             double *f0f ) {
36
37   //added by Lange Jan4,2000
38   static EvtId EM=EvtPDL::getId("e-");
39   static EvtId EP=EvtPDL::getId("e+");
40   static EvtId MUM=EvtPDL::getId("mu-");
41   static EvtId MUP=EvtPDL::getId("mu+");
42   static EvtId TAUM=EvtPDL::getId("tau-");
43   static EvtId TAUP=EvtPDL::getId("tau+");
44
45   static EvtId BP=EvtPDL::getId("B+");
46   static EvtId BM=EvtPDL::getId("B-");
47   static EvtId B0=EvtPDL::getId("B0");
48   static EvtId B0B=EvtPDL::getId("anti-B0");
49
50   static EvtId DST0=EvtPDL::getId("D*0");
51   static EvtId DSTB=EvtPDL::getId("anti-D*0");
52   static EvtId DSTP=EvtPDL::getId("D*+");
53   static EvtId DSTM=EvtPDL::getId("D*-");
54   static EvtId D0=EvtPDL::getId("D0");
55   static EvtId D0B=EvtPDL::getId("anti-D0");
56   static EvtId DP=EvtPDL::getId("D+");
57   static EvtId DM=EvtPDL::getId("D-");
58
59   static EvtId D1P1P=EvtPDL::getId("D_1+");
60   static EvtId D1P1N=EvtPDL::getId("D_1-");
61   static EvtId D1P10=EvtPDL::getId("D_10");
62   static EvtId D1P1B=EvtPDL::getId("anti-D_10");
63
64   static EvtId D3P2P=EvtPDL::getId("D_2*+");
65   static EvtId D3P2N=EvtPDL::getId("D_2*-");
66   static EvtId D3P20=EvtPDL::getId("D_2*0");
67   static EvtId D3P2B=EvtPDL::getId("anti-D_2*0");
68
69   static EvtId D3P1P=EvtPDL::getId("D'_1+");
70   static EvtId D3P1N=EvtPDL::getId("D'_1-");
71   static EvtId D3P10=EvtPDL::getId("D'_10");
72   static EvtId D3P1B=EvtPDL::getId("anti-D'_10");
73
74   static EvtId D3P0P=EvtPDL::getId("D_0*+");
75   static EvtId D3P0N=EvtPDL::getId("D_0*-");
76   static EvtId D3P00=EvtPDL::getId("D_0*0");
77   static EvtId D3P0B=EvtPDL::getId("anti-D_0*0");
78
79   static EvtId D21S0P=EvtPDL::getId("hi");
80   static EvtId D21S0N=EvtPDL::getId("hi");
81   static EvtId D21S00=EvtPDL::getId("hi");
82   static EvtId D21S0B=EvtPDL::getId("hi");
83
84   static EvtId D23S1P=EvtPDL::getId("hi");
85   static EvtId D23S1N=EvtPDL::getId("hi");
86   static EvtId D23S10=EvtPDL::getId("hi");
87   static EvtId D23S1B=EvtPDL::getId("hi");
88
89   static EvtId RHO2S0=EvtPDL::getId("rho(2S)0");
90   static EvtId RHO2SP=EvtPDL::getId("rho(2S)+");
91   static EvtId RHO2SM=EvtPDL::getId("rho(2S)-");
92   static EvtId OMEG2S=EvtPDL::getId("omega(2S)");
93   static EvtId ETA2S=EvtPDL::getId("eta(2S)");
94
95   static EvtId PI2S0=EvtPDL::getId("pi(2S)0");
96   static EvtId PI2SP=EvtPDL::getId("pi(2S)+");
97   static EvtId PI2SM=EvtPDL::getId("pi(2S)-");
98
99   static EvtId PIP=EvtPDL::getId("pi+");
100   static EvtId PIM=EvtPDL::getId("pi-");
101   static EvtId PI0=EvtPDL::getId("pi0");
102
103   static EvtId RHOP=EvtPDL::getId("rho+");
104   static EvtId RHOM=EvtPDL::getId("rho-");
105   static EvtId RHO0=EvtPDL::getId("rho0");
106
107   static EvtId A2P=EvtPDL::getId("a_2+");
108   static EvtId A2M=EvtPDL::getId("a_2-");
109   static EvtId A20=EvtPDL::getId("a_20");
110
111   static EvtId A1P=EvtPDL::getId("a_1+");
112   static EvtId A1M=EvtPDL::getId("a_1-");
113   static EvtId A10=EvtPDL::getId("a_10");
114
115   static EvtId A0P=EvtPDL::getId("a_0+");
116   static EvtId A0M=EvtPDL::getId("a_0-");
117   static EvtId A00=EvtPDL::getId("a_00");
118
119   static EvtId B1P=EvtPDL::getId("b_1+");
120   static EvtId B1M=EvtPDL::getId("b_1-");
121   static EvtId B10=EvtPDL::getId("b_10");
122
123   static EvtId H1=EvtPDL::getId("h_1");
124   static EvtId H1PR=EvtPDL::getId("h'_1");
125
126   static EvtId F1=EvtPDL::getId("f_1");
127   static EvtId F1PR=EvtPDL::getId("f'_1");
128   static EvtId F0=EvtPDL::getId("f_0");
129   static EvtId F0PR=EvtPDL::getId("f'_0");
130   static EvtId F2=EvtPDL::getId("f_2");
131   static EvtId F2PR=EvtPDL::getId("f'_2");
132
133   static EvtId ETA=EvtPDL::getId("eta");
134   static EvtId ETAPR=EvtPDL::getId("eta'");
135   static EvtId OMEG=EvtPDL::getId("omega");
136
137   static EvtId KP=EvtPDL::getId("K+");
138   static EvtId KM=EvtPDL::getId("K-");
139   static EvtId K0=EvtPDL::getId("K0");
140   static EvtId KB=EvtPDL::getId("anti-K0");
141   static EvtId K0S=EvtPDL::getId("K_S0");
142   static EvtId K0L=EvtPDL::getId("K_L0");
143
144   static EvtId KSTP=EvtPDL::getId("K*+");
145   static EvtId KSTM=EvtPDL::getId("K*-");
146   static EvtId KST0=EvtPDL::getId("K*0");
147   static EvtId KSTB=EvtPDL::getId("anti-K*0");
148
149   static EvtId K1P=EvtPDL::getId("K_1+");
150   static EvtId K1M=EvtPDL::getId("K_1-");
151   static EvtId K10=EvtPDL::getId("K_10");
152   static EvtId K1B=EvtPDL::getId("anti-K_10");
153
154   static EvtId K1STP=EvtPDL::getId("K'_1+");
155   static EvtId K1STM=EvtPDL::getId("K'_1-");
156   static EvtId K1ST0=EvtPDL::getId("K'_10");
157   static EvtId K1STB=EvtPDL::getId("anti-K'_10");
158
159   static EvtId K2STP=EvtPDL::getId("K_2*+");
160   static EvtId K2STM=EvtPDL::getId("K_2*-");
161   static EvtId K2ST0=EvtPDL::getId("K_2*0");
162   static EvtId K2STB=EvtPDL::getId("anti-K_2*0");
163
164   static EvtId K0STP=EvtPDL::getId("K_0*+");
165   static EvtId K0STM=EvtPDL::getId("K_0*-");
166   static EvtId K0ST0=EvtPDL::getId("K_0*0");
167   static EvtId K0STB=EvtPDL::getId("anti-K_0*0");
168
169   static EvtId PHI=EvtPDL::getId("phi");
170   static EvtId DSP=EvtPDL::getId("D_s+");
171   static EvtId DSM=EvtPDL::getId("D_s-");
172
173   static EvtId D1P1SP=EvtPDL::getId("D_s1+");
174   static EvtId D1P1SN=EvtPDL::getId("D_s1-");
175
176   static EvtId D3P0SP=EvtPDL::getId("D_s0*+");
177   static EvtId D3P0SN=EvtPDL::getId("D_s0*-");
178
179   static EvtId D3P1SP=EvtPDL::getId("D'_s1*+");
180   static EvtId D3P1SN=EvtPDL::getId("D'_s1*-");
181
182   static EvtId D3P2SP=EvtPDL::getId("D_s2*+");
183   static EvtId D3P2SN=EvtPDL::getId("D_s2*-");
184
185   static EvtId DSSTP=EvtPDL::getId("D_s*+");
186   static EvtId DSSTM=EvtPDL::getId("D_s*-");
187
188   static EvtId BSB=EvtPDL::getId("anti-B_s0");
189   static EvtId BS0=EvtPDL::getId("B_s0");
190   double fmf;
191   double mb=EvtPDL::getMeanMass(parent);
192
193   if (daught==PI0||daught==PIP||daught==PIM||daught==ETA||
194       daught==ETAPR||daught==D0||daught==D0B||daught==DP||
195       daught==DM||daught==KP||daught==KM||daught==K0||daught==K0L||
196       daught==KB||daught==DSP||daught==DSM||daught==K0S) {
197
198       EvtISGW1FF1S0(parent,daught,t,mass,fpf,&fmf);
199   }
200       
201   if (daught==PI2S0||daught==PI2SP||daught==PI2SM||daught==ETA2S||
202       daught==D21S0P||daught==D21S0B||daught==D21S0N||daught==D21S00){
203       EvtISGW1FF21S0(parent,daught,t,mass,fpf,&fmf);
204   }
205   
206   if (daught==A00||daught==A0P||daught==A0M||daught==F0||
207       daught==F0PR||daught==D3P0P||daught==D3P00||daught==D3P0B||
208       daught==D3P0N||daught==K0STM||daught==K0STB||daught==K0STP||
209       daught==D3P0SP||daught==D3P0SN||
210       daught==K0ST0) {
211     EvtISGW1FF3P0(parent,daught,t,mass,fpf,&fmf);
212   }
213
214   *f0f = (fmf/((mb*mb-mass*mass)/t))+(*fpf);
215
216   return ;
217 }
218
219  void EvtISGWFF::gettensorff(EvtId parent,EvtId daught,
220                        double t, double mass, double *hf,
221                              double *kf, double *bpf, double *bmf ){
222
223   //added by Lange Jan4,2000
224   static EvtId EM=EvtPDL::getId("e-");
225   static EvtId EP=EvtPDL::getId("e+");
226   static EvtId MUM=EvtPDL::getId("mu-");
227   static EvtId MUP=EvtPDL::getId("mu+");
228   static EvtId TAUM=EvtPDL::getId("tau-");
229   static EvtId TAUP=EvtPDL::getId("tau+");
230
231   static EvtId BP=EvtPDL::getId("B+");
232   static EvtId BM=EvtPDL::getId("B-");
233   static EvtId B0=EvtPDL::getId("B0");
234   static EvtId B0B=EvtPDL::getId("anti-B0");
235
236   static EvtId DST0=EvtPDL::getId("D*0");
237   static EvtId DSTB=EvtPDL::getId("anti-D*0");
238   static EvtId DSTP=EvtPDL::getId("D*+");
239   static EvtId DSTM=EvtPDL::getId("D*-");
240   static EvtId D0=EvtPDL::getId("D0");
241   static EvtId D0B=EvtPDL::getId("anti-D0");
242   static EvtId DP=EvtPDL::getId("D+");
243   static EvtId DM=EvtPDL::getId("D-");
244
245   static EvtId D1P1P=EvtPDL::getId("D_1+");
246   static EvtId D1P1N=EvtPDL::getId("D_1-");
247   static EvtId D1P10=EvtPDL::getId("D_10");
248   static EvtId D1P1B=EvtPDL::getId("anti-D_10");
249
250   static EvtId D3P2P=EvtPDL::getId("D_2*+");
251   static EvtId D3P2N=EvtPDL::getId("D_2*-");
252   static EvtId D3P20=EvtPDL::getId("D_2*0");
253   static EvtId D3P2B=EvtPDL::getId("anti-D_2*0");
254
255   static EvtId D3P1P=EvtPDL::getId("D'_1+");
256   static EvtId D3P1N=EvtPDL::getId("D'_1-");
257   static EvtId D3P10=EvtPDL::getId("D'_10");
258   static EvtId D3P1B=EvtPDL::getId("anti-D'_10");
259
260   static EvtId D3P0P=EvtPDL::getId("D_0*+");
261   static EvtId D3P0N=EvtPDL::getId("D_0*-");
262   static EvtId D3P00=EvtPDL::getId("D_0*0");
263   static EvtId D3P0B=EvtPDL::getId("anti-D_0*0");
264
265   static EvtId D21S0P=EvtPDL::getId("hi");
266   static EvtId D21S0N=EvtPDL::getId("hi");
267   static EvtId D21S00=EvtPDL::getId("hi");
268   static EvtId D21S0B=EvtPDL::getId("hi");
269
270   static EvtId D23S1P=EvtPDL::getId("hi");
271   static EvtId D23S1N=EvtPDL::getId("hi");
272   static EvtId D23S10=EvtPDL::getId("hi");
273   static EvtId D23S1B=EvtPDL::getId("hi");
274
275   static EvtId RHO2S0=EvtPDL::getId("rho(2S)0");
276   static EvtId RHO2SP=EvtPDL::getId("rho(2S)+");
277   static EvtId RHO2SM=EvtPDL::getId("rho(2S)-");
278   static EvtId OMEG2S=EvtPDL::getId("omega(2S)");
279   static EvtId ETA2S=EvtPDL::getId("eta(2S)");
280
281   static EvtId PI2S0=EvtPDL::getId("pi(2S)0");
282   static EvtId PI2SP=EvtPDL::getId("pi(2S)+");
283   static EvtId PI2SM=EvtPDL::getId("pi(2S)-");
284
285   static EvtId PIP=EvtPDL::getId("pi+");
286   static EvtId PIM=EvtPDL::getId("pi-");
287   static EvtId PI0=EvtPDL::getId("pi0");
288
289   static EvtId RHOP=EvtPDL::getId("rho+");
290   static EvtId RHOM=EvtPDL::getId("rho-");
291   static EvtId RHO0=EvtPDL::getId("rho0");
292
293   static EvtId A2P=EvtPDL::getId("a_2+");
294   static EvtId A2M=EvtPDL::getId("a_2-");
295   static EvtId A20=EvtPDL::getId("a_20");
296
297   static EvtId A1P=EvtPDL::getId("a_1+");
298   static EvtId A1M=EvtPDL::getId("a_1-");
299   static EvtId A10=EvtPDL::getId("a_10");
300
301   static EvtId A0P=EvtPDL::getId("a_0+");
302   static EvtId A0M=EvtPDL::getId("a_0-");
303   static EvtId A00=EvtPDL::getId("a_00");
304
305   static EvtId B1P=EvtPDL::getId("b_1+");
306   static EvtId B1M=EvtPDL::getId("b_1-");
307   static EvtId B10=EvtPDL::getId("b_10");
308
309   static EvtId H1=EvtPDL::getId("h_1");
310   static EvtId H1PR=EvtPDL::getId("h'_1");
311
312   static EvtId F1=EvtPDL::getId("f_1");
313   static EvtId F1PR=EvtPDL::getId("f'_1");
314   static EvtId F0=EvtPDL::getId("f_0");
315   static EvtId F0PR=EvtPDL::getId("f'_0");
316   static EvtId F2=EvtPDL::getId("f_2");
317   static EvtId F2PR=EvtPDL::getId("f'_2");
318
319   static EvtId ETA=EvtPDL::getId("eta");
320   static EvtId ETAPR=EvtPDL::getId("eta'");
321   static EvtId OMEG=EvtPDL::getId("omega");
322
323   static EvtId KP=EvtPDL::getId("K+");
324   static EvtId KM=EvtPDL::getId("K-");
325   static EvtId K0=EvtPDL::getId("K0");
326   static EvtId KB=EvtPDL::getId("anti-K0");
327   static EvtId K0S=EvtPDL::getId("K_S0");
328   static EvtId K0L=EvtPDL::getId("K_L0");
329
330   static EvtId KSTP=EvtPDL::getId("K*+");
331   static EvtId KSTM=EvtPDL::getId("K*-");
332   static EvtId KST0=EvtPDL::getId("K*0");
333   static EvtId KSTB=EvtPDL::getId("anti-K*0");
334
335   static EvtId K1P=EvtPDL::getId("K_1+");
336   static EvtId K1M=EvtPDL::getId("K_1-");
337   static EvtId K10=EvtPDL::getId("K_10");
338   static EvtId K1B=EvtPDL::getId("anti-K_10");
339
340   static EvtId K1STP=EvtPDL::getId("K'_1+");
341   static EvtId K1STM=EvtPDL::getId("K'_1-");
342   static EvtId K1ST0=EvtPDL::getId("K'_10");
343   static EvtId K1STB=EvtPDL::getId("anti-K'_10");
344
345   static EvtId K2STP=EvtPDL::getId("K_2*+");
346   static EvtId K2STM=EvtPDL::getId("K_2*-");
347   static EvtId K2ST0=EvtPDL::getId("K_2*0");
348   static EvtId K2STB=EvtPDL::getId("anti-K_2*0");
349
350   static EvtId K0STP=EvtPDL::getId("K_0*+");
351   static EvtId K0STM=EvtPDL::getId("K_0*-");
352   static EvtId K0ST0=EvtPDL::getId("K_0*0");
353   static EvtId K0STB=EvtPDL::getId("anti-K_0*0");
354
355   static EvtId PHI=EvtPDL::getId("phi");
356   static EvtId DSP=EvtPDL::getId("D_s+");
357   static EvtId DSM=EvtPDL::getId("D_s-");
358
359   static EvtId D1P1SP=EvtPDL::getId("D_s1+");
360   static EvtId D1P1SN=EvtPDL::getId("D_s1-");
361
362   static EvtId D3P0SP=EvtPDL::getId("D_s0*+");
363   static EvtId D3P0SN=EvtPDL::getId("D_s0*-");
364
365   static EvtId D3P1SP=EvtPDL::getId("D'_s1*+");
366   static EvtId D3P1SN=EvtPDL::getId("D'_s1*-");
367
368   static EvtId D3P2SP=EvtPDL::getId("D_s2*+");
369   static EvtId D3P2SN=EvtPDL::getId("D_s2*-");
370
371   static EvtId DSSTP=EvtPDL::getId("D_s*+");
372   static EvtId DSSTM=EvtPDL::getId("D_s*-");
373
374   static EvtId BSB=EvtPDL::getId("anti-B_s0");
375   static EvtId BS0=EvtPDL::getId("B_s0");
376
377     EvtISGW1FF3P2(parent,daught,t,mass,hf,kf,bpf,bmf);
378
379     return;
380
381  }
382
383
384  void EvtISGWFF::getvectorff(EvtId parent,EvtId daught,
385                        double t, double mass, double *a1f,
386                              double *a2f, double *vf, double *a0f ){
387  
388   //added by Lange Jan4,2000
389   static EvtId EM=EvtPDL::getId("e-");
390   static EvtId EP=EvtPDL::getId("e+");
391   static EvtId MUM=EvtPDL::getId("mu-");
392   static EvtId MUP=EvtPDL::getId("mu+");
393   static EvtId TAUM=EvtPDL::getId("tau-");
394   static EvtId TAUP=EvtPDL::getId("tau+");
395
396   static EvtId BP=EvtPDL::getId("B+");
397   static EvtId BM=EvtPDL::getId("B-");
398   static EvtId B0=EvtPDL::getId("B0");
399   static EvtId B0B=EvtPDL::getId("anti-B0");
400
401   static EvtId DST0=EvtPDL::getId("D*0");
402   static EvtId DSTB=EvtPDL::getId("anti-D*0");
403   static EvtId DSTP=EvtPDL::getId("D*+");
404   static EvtId DSTM=EvtPDL::getId("D*-");
405   static EvtId D0=EvtPDL::getId("D0");
406   static EvtId D0B=EvtPDL::getId("anti-D0");
407   static EvtId DP=EvtPDL::getId("D+");
408   static EvtId DM=EvtPDL::getId("D-");
409
410   static EvtId D1P1P=EvtPDL::getId("D_1+");
411   static EvtId D1P1N=EvtPDL::getId("D_1-");
412   static EvtId D1P10=EvtPDL::getId("D_10");
413   static EvtId D1P1B=EvtPDL::getId("anti-D_10");
414
415   static EvtId D3P2P=EvtPDL::getId("D_2*+");
416   static EvtId D3P2N=EvtPDL::getId("D_2*-");
417   static EvtId D3P20=EvtPDL::getId("D_2*0");
418   static EvtId D3P2B=EvtPDL::getId("anti-D_2*0");
419
420   static EvtId D3P1P=EvtPDL::getId("D'_1+");
421   static EvtId D3P1N=EvtPDL::getId("D'_1-");
422   static EvtId D3P10=EvtPDL::getId("D'_10");
423   static EvtId D3P1B=EvtPDL::getId("anti-D'_10");
424
425   static EvtId D3P0P=EvtPDL::getId("D_0*+");
426   static EvtId D3P0N=EvtPDL::getId("D_0*-");
427   static EvtId D3P00=EvtPDL::getId("D_0*0");
428   static EvtId D3P0B=EvtPDL::getId("anti-D_0*0");
429
430   static EvtId D21S0P=EvtPDL::getId("hi");
431   static EvtId D21S0N=EvtPDL::getId("hi");
432   static EvtId D21S00=EvtPDL::getId("hi");
433   static EvtId D21S0B=EvtPDL::getId("hi");
434
435   static EvtId D23S1P=EvtPDL::getId("hi");
436   static EvtId D23S1N=EvtPDL::getId("hi");
437   static EvtId D23S10=EvtPDL::getId("hi");
438   static EvtId D23S1B=EvtPDL::getId("hi");
439
440   static EvtId RHO2S0=EvtPDL::getId("rho(2S)0");
441   static EvtId RHO2SP=EvtPDL::getId("rho(2S)+");
442   static EvtId RHO2SM=EvtPDL::getId("rho(2S)-");
443   static EvtId OMEG2S=EvtPDL::getId("omega(2S)");
444   static EvtId ETA2S=EvtPDL::getId("eta(2S)");
445
446   static EvtId PI2S0=EvtPDL::getId("pi(2S)0");
447   static EvtId PI2SP=EvtPDL::getId("pi(2S)+");
448   static EvtId PI2SM=EvtPDL::getId("pi(2S)-");
449
450   static EvtId PIP=EvtPDL::getId("pi+");
451   static EvtId PIM=EvtPDL::getId("pi-");
452   static EvtId PI0=EvtPDL::getId("pi0");
453
454   static EvtId RHOP=EvtPDL::getId("rho+");
455   static EvtId RHOM=EvtPDL::getId("rho-");
456   static EvtId RHO0=EvtPDL::getId("rho0");
457
458   static EvtId A2P=EvtPDL::getId("a_2+");
459   static EvtId A2M=EvtPDL::getId("a_2-");
460   static EvtId A20=EvtPDL::getId("a_20");
461
462   static EvtId A1P=EvtPDL::getId("a_1+");
463   static EvtId A1M=EvtPDL::getId("a_1-");
464   static EvtId A10=EvtPDL::getId("a_10");
465
466   static EvtId A0P=EvtPDL::getId("a_0+");
467   static EvtId A0M=EvtPDL::getId("a_0-");
468   static EvtId A00=EvtPDL::getId("a_00");
469
470   static EvtId B1P=EvtPDL::getId("b_1+");
471   static EvtId B1M=EvtPDL::getId("b_1-");
472   static EvtId B10=EvtPDL::getId("b_10");
473
474   static EvtId H1=EvtPDL::getId("h_1");
475   static EvtId H1PR=EvtPDL::getId("h'_1");
476
477   static EvtId F1=EvtPDL::getId("f_1");
478   static EvtId F1PR=EvtPDL::getId("f'_1");
479   static EvtId F0=EvtPDL::getId("f_0");
480   static EvtId F0PR=EvtPDL::getId("f'_0");
481   static EvtId F2=EvtPDL::getId("f_2");
482   static EvtId F2PR=EvtPDL::getId("f'_2");
483
484   static EvtId ETA=EvtPDL::getId("eta");
485   static EvtId ETAPR=EvtPDL::getId("eta'");
486   static EvtId OMEG=EvtPDL::getId("omega");
487
488   static EvtId KP=EvtPDL::getId("K+");
489   static EvtId KM=EvtPDL::getId("K-");
490   static EvtId K0=EvtPDL::getId("K0");
491   static EvtId KB=EvtPDL::getId("anti-K0");
492   static EvtId K0S=EvtPDL::getId("K_S0");
493   static EvtId K0L=EvtPDL::getId("K_L0");
494
495   static EvtId KSTP=EvtPDL::getId("K*+");
496   static EvtId KSTM=EvtPDL::getId("K*-");
497   static EvtId KST0=EvtPDL::getId("K*0");
498   static EvtId KSTB=EvtPDL::getId("anti-K*0");
499
500   static EvtId K1P=EvtPDL::getId("K_1+");
501   static EvtId K1M=EvtPDL::getId("K_1-");
502   static EvtId K10=EvtPDL::getId("K_10");
503   static EvtId K1B=EvtPDL::getId("anti-K_10");
504
505   static EvtId K1STP=EvtPDL::getId("K'_1+");
506   static EvtId K1STM=EvtPDL::getId("K'_1-");
507   static EvtId K1ST0=EvtPDL::getId("K'_10");
508   static EvtId K1STB=EvtPDL::getId("anti-K'_10");
509
510   static EvtId K2STP=EvtPDL::getId("K_2*+");
511   static EvtId K2STM=EvtPDL::getId("K_2*-");
512   static EvtId K2ST0=EvtPDL::getId("K_2*0");
513   static EvtId K2STB=EvtPDL::getId("anti-K_2*0");
514
515   static EvtId K0STP=EvtPDL::getId("K_0*+");
516   static EvtId K0STM=EvtPDL::getId("K_0*-");
517   static EvtId K0ST0=EvtPDL::getId("K_0*0");
518   static EvtId K0STB=EvtPDL::getId("anti-K_0*0");
519
520   static EvtId PHI=EvtPDL::getId("phi");
521   static EvtId DSP=EvtPDL::getId("D_s+");
522   static EvtId DSM=EvtPDL::getId("D_s-");
523
524   static EvtId D1P1SP=EvtPDL::getId("D_s1+");
525   static EvtId D1P1SN=EvtPDL::getId("D_s1-");
526
527   static EvtId D3P0SP=EvtPDL::getId("D_s0*+");
528   static EvtId D3P0SN=EvtPDL::getId("D_s0*-");
529
530   static EvtId D3P1SP=EvtPDL::getId("D'_s1*+");
531   static EvtId D3P1SN=EvtPDL::getId("D'_s1*-");
532
533   static EvtId D3P2SP=EvtPDL::getId("D_s2*+");
534   static EvtId D3P2SN=EvtPDL::getId("D_s2*-");
535
536   static EvtId DSSTP=EvtPDL::getId("D_s*+");
537   static EvtId DSSTM=EvtPDL::getId("D_s*-");
538
539   static EvtId BSB=EvtPDL::getId("anti-B_s0");
540   static EvtId BS0=EvtPDL::getId("B_s0");
541
542    double ff,gf,apf,amf;
543
544    if (daught==DST0||daught==DSTP||daught==DSTM||daught==DSTB||
545        daught==OMEG||daught==RHO0||daught==RHOM||daught==RHOP||
546        daught==KSTP||daught==KSTM||daught==KST0||daught==KSTB||
547        daught==PHI||daught==DSSTP||daught==DSSTM) {
548      EvtISGW1FF3S1(parent,daught,t,mass,&ff,&gf,&apf,&amf);
549    }
550    if (daught==B10||daught==B1P||daught==B1M||daught==H1||
551        daught==H1PR||daught==D1P1P||daught==D1P10||daught==D1P1B||
552        daught==D1P1SP||daught==D1P1SN||
553        daught==D1P1N||daught==K10||daught==K1B||daught==K1P||
554        daught==K1M) {
555      EvtISGW1FF1P1(parent,daught,t,mass,&ff,&gf,&apf,&amf);
556    }
557    if (daught==RHO2S0||daught==RHO2SP||daught==RHO2SM||daught==OMEG2S||
558        daught==D23S1P||daught==D23S1B||daught==D23S1N||daught==D23S10){
559      EvtISGW1FF23S1(parent,daught,t,mass,&ff,&gf,&apf,&amf);
560    }
561    if (daught==A10||daught==A1P||daught==A1M||daught==F1||
562                   daught==F1PR||daught==D3P1P||daught==D3P10||daught==D3P1B||
563        daught==D3P1N||daught==K1STM||daught==K1STB||daught==K1STP||
564        daught==D3P1SP||daught==D3P1SN||
565        daught==K1ST0) {
566      EvtISGW1FF3P1(parent,daught,t,mass,&ff,&gf,&apf,&amf);
567    }
568
569    // Need to stuff in some factors to make these the ffs that
570    // is used elsewhere...
571
572    double mb=EvtPDL::getMeanMass(parent);
573   
574
575    *vf = (gf)*(mb+mass);
576    *a1f = (ff)/(mb+mass);
577    *a2f = -1.0*(apf)*(mb+mass);
578    double a3f = ((mb+mass)/(2.0*mass))*(*a1f) -
579         ((mb-mass)/(2.0*mass))*(*a2f);
580    
581    *a0f = a3f - ( (t*amf)/(2.0*mass));
582
583
584
585    return;
586  }
587
588
589
590 void EvtISGWFF::EvtISGW1FF3P2 (EvtId parent,EvtId daugt,
591        double t, double mass,
592        double *hf, double *kf, double *bpf, double *bmf ) {
593
594   //added by Lange Jan4,2000
595   static EvtId EM=EvtPDL::getId("e-");
596   static EvtId EP=EvtPDL::getId("e+");
597   static EvtId MUM=EvtPDL::getId("mu-");
598   static EvtId MUP=EvtPDL::getId("mu+");
599   static EvtId TAUM=EvtPDL::getId("tau-");
600   static EvtId TAUP=EvtPDL::getId("tau+");
601
602   static EvtId BP=EvtPDL::getId("B+");
603   static EvtId BM=EvtPDL::getId("B-");
604   static EvtId B0=EvtPDL::getId("B0");
605   static EvtId B0B=EvtPDL::getId("anti-B0");
606
607   static EvtId DST0=EvtPDL::getId("D*0");
608   static EvtId DSTB=EvtPDL::getId("anti-D*0");
609   static EvtId DSTP=EvtPDL::getId("D*+");
610   static EvtId DSTM=EvtPDL::getId("D*-");
611   static EvtId D0=EvtPDL::getId("D0");
612   static EvtId D0B=EvtPDL::getId("anti-D0");
613   static EvtId DP=EvtPDL::getId("D+");
614   static EvtId DM=EvtPDL::getId("D-");
615
616   static EvtId D1P1P=EvtPDL::getId("D_1+");
617   static EvtId D1P1N=EvtPDL::getId("D_1-");
618   static EvtId D1P10=EvtPDL::getId("D_10");
619   static EvtId D1P1B=EvtPDL::getId("anti-D_10");
620
621   static EvtId D3P2P=EvtPDL::getId("D_2*+");
622   static EvtId D3P2N=EvtPDL::getId("D_2*-");
623   static EvtId D3P20=EvtPDL::getId("D_2*0");
624   static EvtId D3P2B=EvtPDL::getId("anti-D_2*0");
625
626   static EvtId D3P1P=EvtPDL::getId("D'_1+");
627   static EvtId D3P1N=EvtPDL::getId("D'_1-");
628   static EvtId D3P10=EvtPDL::getId("D'_10");
629   static EvtId D3P1B=EvtPDL::getId("anti-D'_10");
630
631   static EvtId D3P0P=EvtPDL::getId("D_0*+");
632   static EvtId D3P0N=EvtPDL::getId("D_0*-");
633   static EvtId D3P00=EvtPDL::getId("D_0*0");
634   static EvtId D3P0B=EvtPDL::getId("anti-D_0*0");
635
636   static EvtId D21S0P=EvtPDL::getId("hi");
637   static EvtId D21S0N=EvtPDL::getId("hi");
638   static EvtId D21S00=EvtPDL::getId("hi");
639   static EvtId D21S0B=EvtPDL::getId("hi");
640
641   static EvtId D23S1P=EvtPDL::getId("hi");
642   static EvtId D23S1N=EvtPDL::getId("hi");
643   static EvtId D23S10=EvtPDL::getId("hi");
644   static EvtId D23S1B=EvtPDL::getId("hi");
645
646   static EvtId RHO2S0=EvtPDL::getId("rho(2S)0");
647   static EvtId RHO2SP=EvtPDL::getId("rho(2S)+");
648   static EvtId RHO2SM=EvtPDL::getId("rho(2S)-");
649   static EvtId OMEG2S=EvtPDL::getId("omega(2S)");
650   static EvtId ETA2S=EvtPDL::getId("eta(2S)");
651
652   static EvtId PI2S0=EvtPDL::getId("pi(2S)0");
653   static EvtId PI2SP=EvtPDL::getId("pi(2S)+");
654   static EvtId PI2SM=EvtPDL::getId("pi(2S)-");
655
656   static EvtId PIP=EvtPDL::getId("pi+");
657   static EvtId PIM=EvtPDL::getId("pi-");
658   static EvtId PI0=EvtPDL::getId("pi0");
659
660   static EvtId RHOP=EvtPDL::getId("rho+");
661   static EvtId RHOM=EvtPDL::getId("rho-");
662   static EvtId RHO0=EvtPDL::getId("rho0");
663
664   static EvtId A2P=EvtPDL::getId("a_2+");
665   static EvtId A2M=EvtPDL::getId("a_2-");
666   static EvtId A20=EvtPDL::getId("a_20");
667
668   static EvtId A1P=EvtPDL::getId("a_1+");
669   static EvtId A1M=EvtPDL::getId("a_1-");
670   static EvtId A10=EvtPDL::getId("a_10");
671
672   static EvtId A0P=EvtPDL::getId("a_0+");
673   static EvtId A0M=EvtPDL::getId("a_0-");
674   static EvtId A00=EvtPDL::getId("a_00");
675
676   static EvtId B1P=EvtPDL::getId("b_1+");
677   static EvtId B1M=EvtPDL::getId("b_1-");
678   static EvtId B10=EvtPDL::getId("b_10");
679
680   static EvtId H1=EvtPDL::getId("h_1");
681   static EvtId H1PR=EvtPDL::getId("h'_1");
682
683   static EvtId F1=EvtPDL::getId("f_1");
684   static EvtId F1PR=EvtPDL::getId("f'_1");
685   static EvtId F0=EvtPDL::getId("f_0");
686   static EvtId F0PR=EvtPDL::getId("f'_0");
687   static EvtId F2=EvtPDL::getId("f_2");
688   static EvtId F2PR=EvtPDL::getId("f'_2");
689
690   static EvtId ETA=EvtPDL::getId("eta");
691   static EvtId ETAPR=EvtPDL::getId("eta'");
692   static EvtId OMEG=EvtPDL::getId("omega");
693
694   static EvtId KP=EvtPDL::getId("K+");
695   static EvtId KM=EvtPDL::getId("K-");
696   static EvtId K0=EvtPDL::getId("K0");
697   static EvtId KB=EvtPDL::getId("anti-K0");
698   static EvtId K0S=EvtPDL::getId("K_S0");
699   static EvtId K0L=EvtPDL::getId("K_L0");
700
701   static EvtId KSTP=EvtPDL::getId("K*+");
702   static EvtId KSTM=EvtPDL::getId("K*-");
703   static EvtId KST0=EvtPDL::getId("K*0");
704   static EvtId KSTB=EvtPDL::getId("anti-K*0");
705
706   static EvtId K1P=EvtPDL::getId("K_1+");
707   static EvtId K1M=EvtPDL::getId("K_1-");
708   static EvtId K10=EvtPDL::getId("K_10");
709   static EvtId K1B=EvtPDL::getId("anti-K_10");
710
711   static EvtId K1STP=EvtPDL::getId("K'_1+");
712   static EvtId K1STM=EvtPDL::getId("K'_1-");
713   static EvtId K1ST0=EvtPDL::getId("K'_10");
714   static EvtId K1STB=EvtPDL::getId("anti-K'_10");
715
716   static EvtId K2STP=EvtPDL::getId("K_2*+");
717   static EvtId K2STM=EvtPDL::getId("K_2*-");
718   static EvtId K2ST0=EvtPDL::getId("K_2*0");
719   static EvtId K2STB=EvtPDL::getId("anti-K_2*0");
720
721   static EvtId K0STP=EvtPDL::getId("K_0*+");
722   static EvtId K0STM=EvtPDL::getId("K_0*-");
723   static EvtId K0ST0=EvtPDL::getId("K_0*0");
724   static EvtId K0STB=EvtPDL::getId("anti-K_0*0");
725
726   static EvtId PHI=EvtPDL::getId("phi");
727   static EvtId DSP=EvtPDL::getId("D_s+");
728   static EvtId DSM=EvtPDL::getId("D_s-");
729
730   static EvtId D1P1SP=EvtPDL::getId("D_s1+");
731   static EvtId D1P1SN=EvtPDL::getId("D_s1-");
732
733   static EvtId D3P0SP=EvtPDL::getId("D_s0*+");
734   static EvtId D3P0SN=EvtPDL::getId("D_s0*-");
735
736   static EvtId D3P1SP=EvtPDL::getId("D'_s1*+");
737   static EvtId D3P1SN=EvtPDL::getId("D'_s1*-");
738
739   static EvtId D3P2SP=EvtPDL::getId("D_s2*+");
740   static EvtId D3P2SN=EvtPDL::getId("D_s2*-");
741
742   static EvtId DSSTP=EvtPDL::getId("D_s*+");
743   static EvtId DSSTM=EvtPDL::getId("D_s*-");
744
745   static EvtId BSB=EvtPDL::getId("anti-B_s0");
746   static EvtId BS0=EvtPDL::getId("B_s0");
747
748   double mtb;
749   double msd(0.0), mx(0.0), mb(0.0); 
750   double msq(0.0), bx2(0.0),mtx,f5;
751   double mum,mup,tm,bb2(0.0),bbx2;
752   double msb(0.0), kap;
753
754   if (parent==BM||parent==BP||parent==B0||parent==B0B) { 
755     msb=5.2;
756     msd=0.33;
757     bb2=0.41*0.41;
758     if (daugt==A20||daugt==A2P||daugt==A2M||daugt==F2||daugt==F2PR) {
759       msq=0.33;
760       bx2=0.27*0.27;
761     }
762     else{
763       if (daugt==D3P2P||daugt==D3P2N||daugt==D3P2B||daugt==D3P20) {
764         msq=1.82;
765         bx2=0.34*0.34;
766       }
767       else{
768         report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3P1.\n";
769       }
770     }
771   }
772   else{
773     report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_3P1.\n";
774   }
775   
776   mtb = msb + msd;
777   mtx = msq + msd;
778
779   mb = EvtPDL::getMeanMass( parent );
780   mx = mass;
781
782   mup=1.0/(1.0/msq+1.0/msb);
783   mum=1.0/(1.0/msq-1.0/msb);
784   bbx2=0.5*(bb2+bx2);
785
786   tm=(mb-mx)*(mb-mx);
787   if (t>tm) t = 0.99*tm;
788   kap = 0.7*0.7;
789
790   f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0)*
791        exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2))));
792
793   *hf = f5*(msd/(sqrt(8.0*bb2)*mtb))*((1.0/msq)-(msd*bb2/(2.0*mum*
794         mtx*bbx2)));
795   
796   *kf = f5*msd*sqrt(2.0/bb2);
797
798   *bpf = (-1.0*f5*msd/(sqrt(8.0*bb2)*msb*mtx))*(1.0-(msd*msb*bx2/(
799          2.0*mup*mtb*bbx2))+(msd*msb*bx2*(1.0-(msd*bx2/(2.0*mtb*bbx2)))/
800          (4.0*mtb*mum*bbx2)));
801   *bmf = 0.0;
802   return;
803 } //get_ff_isgw_1p1
804
805 void EvtISGWFF::EvtISGW1FF1S0 ( EvtId parent, EvtId daugt,
806        double t, double mass, double *fpf, double *fmf ) {
807   
808   //added by Lange Jan4,2000
809   static EvtId EM=EvtPDL::getId("e-");
810   static EvtId EP=EvtPDL::getId("e+");
811   static EvtId MUM=EvtPDL::getId("mu-");
812   static EvtId MUP=EvtPDL::getId("mu+");
813   static EvtId TAUM=EvtPDL::getId("tau-");
814   static EvtId TAUP=EvtPDL::getId("tau+");
815
816   static EvtId BP=EvtPDL::getId("B+");
817   static EvtId BM=EvtPDL::getId("B-");
818   static EvtId B0=EvtPDL::getId("B0");
819   static EvtId B0B=EvtPDL::getId("anti-B0");
820
821   static EvtId DST0=EvtPDL::getId("D*0");
822   static EvtId DSTB=EvtPDL::getId("anti-D*0");
823   static EvtId DSTP=EvtPDL::getId("D*+");
824   static EvtId DSTM=EvtPDL::getId("D*-");
825   static EvtId D0=EvtPDL::getId("D0");
826   static EvtId D0B=EvtPDL::getId("anti-D0");
827   static EvtId DP=EvtPDL::getId("D+");
828   static EvtId DM=EvtPDL::getId("D-");
829
830   static EvtId D1P1P=EvtPDL::getId("D_1+");
831   static EvtId D1P1N=EvtPDL::getId("D_1-");
832   static EvtId D1P10=EvtPDL::getId("D_10");
833   static EvtId D1P1B=EvtPDL::getId("anti-D_10");
834
835   static EvtId D3P2P=EvtPDL::getId("D_2*+");
836   static EvtId D3P2N=EvtPDL::getId("D_2*-");
837   static EvtId D3P20=EvtPDL::getId("D_2*0");
838   static EvtId D3P2B=EvtPDL::getId("anti-D_2*0");
839
840   static EvtId D3P1P=EvtPDL::getId("D'_1+");
841   static EvtId D3P1N=EvtPDL::getId("D'_1-");
842   static EvtId D3P10=EvtPDL::getId("D'_10");
843   static EvtId D3P1B=EvtPDL::getId("anti-D'_10");
844
845   static EvtId D3P0P=EvtPDL::getId("D_0*+");
846   static EvtId D3P0N=EvtPDL::getId("D_0*-");
847   static EvtId D3P00=EvtPDL::getId("D_0*0");
848   static EvtId D3P0B=EvtPDL::getId("anti-D_0*0");
849
850   static EvtId D21S0P=EvtPDL::getId("hi");
851   static EvtId D21S0N=EvtPDL::getId("hi");
852   static EvtId D21S00=EvtPDL::getId("hi");
853   static EvtId D21S0B=EvtPDL::getId("hi");
854
855   static EvtId D23S1P=EvtPDL::getId("hi");
856   static EvtId D23S1N=EvtPDL::getId("hi");
857   static EvtId D23S10=EvtPDL::getId("hi");
858   static EvtId D23S1B=EvtPDL::getId("hi");
859
860   static EvtId RHO2S0=EvtPDL::getId("rho(2S)0");
861   static EvtId RHO2SP=EvtPDL::getId("rho(2S)+");
862   static EvtId RHO2SM=EvtPDL::getId("rho(2S)-");
863   static EvtId OMEG2S=EvtPDL::getId("omega(2S)");
864   static EvtId ETA2S=EvtPDL::getId("eta(2S)");
865
866   static EvtId PI2S0=EvtPDL::getId("pi(2S)0");
867   static EvtId PI2SP=EvtPDL::getId("pi(2S)+");
868   static EvtId PI2SM=EvtPDL::getId("pi(2S)-");
869
870   static EvtId PIP=EvtPDL::getId("pi+");
871   static EvtId PIM=EvtPDL::getId("pi-");
872   static EvtId PI0=EvtPDL::getId("pi0");
873
874   static EvtId RHOP=EvtPDL::getId("rho+");
875   static EvtId RHOM=EvtPDL::getId("rho-");
876   static EvtId RHO0=EvtPDL::getId("rho0");
877
878   static EvtId A2P=EvtPDL::getId("a_2+");
879   static EvtId A2M=EvtPDL::getId("a_2-");
880   static EvtId A20=EvtPDL::getId("a_20");
881
882   static EvtId A1P=EvtPDL::getId("a_1+");
883   static EvtId A1M=EvtPDL::getId("a_1-");
884   static EvtId A10=EvtPDL::getId("a_10");
885
886   static EvtId A0P=EvtPDL::getId("a_0+");
887   static EvtId A0M=EvtPDL::getId("a_0-");
888   static EvtId A00=EvtPDL::getId("a_00");
889
890   static EvtId B1P=EvtPDL::getId("b_1+");
891   static EvtId B1M=EvtPDL::getId("b_1-");
892   static EvtId B10=EvtPDL::getId("b_10");
893
894   static EvtId H1=EvtPDL::getId("h_1");
895   static EvtId H1PR=EvtPDL::getId("h'_1");
896
897   static EvtId F1=EvtPDL::getId("f_1");
898   static EvtId F1PR=EvtPDL::getId("f'_1");
899   static EvtId F0=EvtPDL::getId("f_0");
900   static EvtId F0PR=EvtPDL::getId("f'_0");
901   static EvtId F2=EvtPDL::getId("f_2");
902   static EvtId F2PR=EvtPDL::getId("f'_2");
903
904   static EvtId ETA=EvtPDL::getId("eta");
905   static EvtId ETAPR=EvtPDL::getId("eta'");
906   static EvtId OMEG=EvtPDL::getId("omega");
907
908   static EvtId KP=EvtPDL::getId("K+");
909   static EvtId KM=EvtPDL::getId("K-");
910   static EvtId K0=EvtPDL::getId("K0");
911   static EvtId KB=EvtPDL::getId("anti-K0");
912   static EvtId K0S=EvtPDL::getId("K_S0");
913   static EvtId K0L=EvtPDL::getId("K_L0");
914
915   static EvtId KSTP=EvtPDL::getId("K*+");
916   static EvtId KSTM=EvtPDL::getId("K*-");
917   static EvtId KST0=EvtPDL::getId("K*0");
918   static EvtId KSTB=EvtPDL::getId("anti-K*0");
919
920   static EvtId K1P=EvtPDL::getId("K_1+");
921   static EvtId K1M=EvtPDL::getId("K_1-");
922   static EvtId K10=EvtPDL::getId("K_10");
923   static EvtId K1B=EvtPDL::getId("anti-K_10");
924
925   static EvtId K1STP=EvtPDL::getId("K'_1+");
926   static EvtId K1STM=EvtPDL::getId("K'_1-");
927   static EvtId K1ST0=EvtPDL::getId("K'_10");
928   static EvtId K1STB=EvtPDL::getId("anti-K'_10");
929
930   static EvtId K2STP=EvtPDL::getId("K_2*+");
931   static EvtId K2STM=EvtPDL::getId("K_2*-");
932   static EvtId K2ST0=EvtPDL::getId("K_2*0");
933   static EvtId K2STB=EvtPDL::getId("anti-K_2*0");
934
935   static EvtId K0STP=EvtPDL::getId("K_0*+");
936   static EvtId K0STM=EvtPDL::getId("K_0*-");
937   static EvtId K0ST0=EvtPDL::getId("K_0*0");
938   static EvtId K0STB=EvtPDL::getId("anti-K_0*0");
939
940   static EvtId PHI=EvtPDL::getId("phi");
941   static EvtId DSP=EvtPDL::getId("D_s+");
942   static EvtId DSM=EvtPDL::getId("D_s-");
943
944   static EvtId D1P1SP=EvtPDL::getId("D_s1+");
945   static EvtId D1P1SN=EvtPDL::getId("D_s1-");
946
947   static EvtId D3P0SP=EvtPDL::getId("D_s0*+");
948   static EvtId D3P0SN=EvtPDL::getId("D_s0*-");
949
950   static EvtId D3P1SP=EvtPDL::getId("D'_s1*+");
951   static EvtId D3P1SN=EvtPDL::getId("D'_s1*-");
952
953   static EvtId D3P2SP=EvtPDL::getId("D_s2*+");
954   static EvtId D3P2SN=EvtPDL::getId("D_s2*-");
955
956   static EvtId DSSTP=EvtPDL::getId("D_s*+");
957   static EvtId DSSTM=EvtPDL::getId("D_s*-");
958
959   static EvtId BSB=EvtPDL::getId("anti-B_s0");
960   static EvtId BS0=EvtPDL::getId("B_s0");
961
962   double mtb;
963   double msd(0.0), mx(0.0), mb(0.0); 
964   double msq(0.0), bx2(0.0),mtx;
965   double f3,kap; 
966   double msb(0.0),bb2(0.0),mup,mum,bbx2,tm;
967
968   if (parent==BM||parent==BP||parent==B0||parent==B0B) {
969     msb=5.2;
970     msd=0.33;
971     bb2=0.41*0.41;
972     if (daugt==PIP||daugt==PIM||daugt==PI0||daugt==ETA||daugt==ETAPR) {
973       msq=0.33;
974       bx2=0.31*0.31;
975     }
976     else{
977       if (daugt==D0||daugt==DP||daugt==DM||daugt==D0B) {      
978         msq=1.82;
979         bx2=0.39*0.39;
980       }      
981       else{
982         report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_1S0.\n";
983       }
984     }
985   }
986   else{
987     report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_1S0.\n";
988     report(ERROR,"EvtGen") << "Parent:"<<parent.getId()<<endl;
989   }
990   
991   mtb = msb + msd;
992   mtx = msq + msd;
993   mb = EvtPDL::getMeanMass( parent );
994   mx = mass;
995   mup=1.0/(1.0/msq+1.0/msb);
996   mum=1.0/(1.0/msq-1.0/msb);
997   bbx2=0.5*(bb2+bx2);
998   tm=(mb-mx)*(mb-mx);
999   if ( t>tm ) t=0.99*tm;
1000   
1001   kap = 0.7*0.7;
1002   f3 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,3.0/2.0)*
1003     exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2))));
1004
1005   *fpf = f3*(1+(msb/(2.0*mum))-(msb*msq*msd*bb2/(4.0*mup*mum*mtx*bbx2)));
1006   *fmf = f3*(1.0-(mtb+mtx)*(0.5/msq-(msd*bb2/(4.0*mup*mtx*bbx2))));
1007
1008   return;
1009 } //get_ff_isgw_1s0
1010
1011
1012
1013 void  EvtISGWFF::EvtISGW1FF3S1(EvtId parent,EvtId daugt,double t,
1014       double mass, double *f,double *g,double *ap,double *am){
1015  
1016   //added by Lange Jan4,2000
1017   static EvtId EM=EvtPDL::getId("e-");
1018   static EvtId EP=EvtPDL::getId("e+");
1019   static EvtId MUM=EvtPDL::getId("mu-");
1020   static EvtId MUP=EvtPDL::getId("mu+");
1021   static EvtId TAUM=EvtPDL::getId("tau-");
1022   static EvtId TAUP=EvtPDL::getId("tau+");
1023
1024   static EvtId BP=EvtPDL::getId("B+");
1025   static EvtId BM=EvtPDL::getId("B-");
1026   static EvtId B0=EvtPDL::getId("B0");
1027   static EvtId B0B=EvtPDL::getId("anti-B0");
1028
1029   static EvtId DST0=EvtPDL::getId("D*0");
1030   static EvtId DSTB=EvtPDL::getId("anti-D*0");
1031   static EvtId DSTP=EvtPDL::getId("D*+");
1032   static EvtId DSTM=EvtPDL::getId("D*-");
1033   static EvtId D0=EvtPDL::getId("D0");
1034   static EvtId D0B=EvtPDL::getId("anti-D0");
1035   static EvtId DP=EvtPDL::getId("D+");
1036   static EvtId DM=EvtPDL::getId("D-");
1037
1038   static EvtId D1P1P=EvtPDL::getId("D_1+");
1039   static EvtId D1P1N=EvtPDL::getId("D_1-");
1040   static EvtId D1P10=EvtPDL::getId("D_10");
1041   static EvtId D1P1B=EvtPDL::getId("anti-D_10");
1042
1043   static EvtId D3P2P=EvtPDL::getId("D_2*+");
1044   static EvtId D3P2N=EvtPDL::getId("D_2*-");
1045   static EvtId D3P20=EvtPDL::getId("D_2*0");
1046   static EvtId D3P2B=EvtPDL::getId("anti-D_2*0");
1047
1048   static EvtId D3P1P=EvtPDL::getId("D'_1+");
1049   static EvtId D3P1N=EvtPDL::getId("D'_1-");
1050   static EvtId D3P10=EvtPDL::getId("D'_10");
1051   static EvtId D3P1B=EvtPDL::getId("anti-D'_10");
1052
1053   static EvtId D3P0P=EvtPDL::getId("D_0*+");
1054   static EvtId D3P0N=EvtPDL::getId("D_0*-");
1055   static EvtId D3P00=EvtPDL::getId("D_0*0");
1056   static EvtId D3P0B=EvtPDL::getId("anti-D_0*0");
1057
1058   static EvtId D21S0P=EvtPDL::getId("hi");
1059   static EvtId D21S0N=EvtPDL::getId("hi");
1060   static EvtId D21S00=EvtPDL::getId("hi");
1061   static EvtId D21S0B=EvtPDL::getId("hi");
1062
1063   static EvtId D23S1P=EvtPDL::getId("hi");
1064   static EvtId D23S1N=EvtPDL::getId("hi");
1065   static EvtId D23S10=EvtPDL::getId("hi");
1066   static EvtId D23S1B=EvtPDL::getId("hi");
1067
1068   static EvtId RHO2S0=EvtPDL::getId("rho(2S)0");
1069   static EvtId RHO2SP=EvtPDL::getId("rho(2S)+");
1070   static EvtId RHO2SM=EvtPDL::getId("rho(2S)-");
1071   static EvtId OMEG2S=EvtPDL::getId("omega(2S)");
1072   static EvtId ETA2S=EvtPDL::getId("eta(2S)");
1073
1074   static EvtId PI2S0=EvtPDL::getId("pi(2S)0");
1075   static EvtId PI2SP=EvtPDL::getId("pi(2S)+");
1076   static EvtId PI2SM=EvtPDL::getId("pi(2S)-");
1077
1078   static EvtId PIP=EvtPDL::getId("pi+");
1079   static EvtId PIM=EvtPDL::getId("pi-");
1080   static EvtId PI0=EvtPDL::getId("pi0");
1081
1082   static EvtId RHOP=EvtPDL::getId("rho+");
1083   static EvtId RHOM=EvtPDL::getId("rho-");
1084   static EvtId RHO0=EvtPDL::getId("rho0");
1085
1086   static EvtId A2P=EvtPDL::getId("a_2+");
1087   static EvtId A2M=EvtPDL::getId("a_2-");
1088   static EvtId A20=EvtPDL::getId("a_20");
1089
1090   static EvtId A1P=EvtPDL::getId("a_1+");
1091   static EvtId A1M=EvtPDL::getId("a_1-");
1092   static EvtId A10=EvtPDL::getId("a_10");
1093
1094   static EvtId A0P=EvtPDL::getId("a_0+");
1095   static EvtId A0M=EvtPDL::getId("a_0-");
1096   static EvtId A00=EvtPDL::getId("a_00");
1097
1098   static EvtId B1P=EvtPDL::getId("b_1+");
1099   static EvtId B1M=EvtPDL::getId("b_1-");
1100   static EvtId B10=EvtPDL::getId("b_10");
1101
1102   static EvtId H1=EvtPDL::getId("h_1");
1103   static EvtId H1PR=EvtPDL::getId("h'_1");
1104
1105   static EvtId F1=EvtPDL::getId("f_1");
1106   static EvtId F1PR=EvtPDL::getId("f'_1");
1107   static EvtId F0=EvtPDL::getId("f_0");
1108   static EvtId F0PR=EvtPDL::getId("f'_0");
1109   static EvtId F2=EvtPDL::getId("f_2");
1110   static EvtId F2PR=EvtPDL::getId("f'_2");
1111
1112   static EvtId ETA=EvtPDL::getId("eta");
1113   static EvtId ETAPR=EvtPDL::getId("eta'");
1114   static EvtId OMEG=EvtPDL::getId("omega");
1115
1116   static EvtId KP=EvtPDL::getId("K+");
1117   static EvtId KM=EvtPDL::getId("K-");
1118   static EvtId K0=EvtPDL::getId("K0");
1119   static EvtId KB=EvtPDL::getId("anti-K0");
1120   static EvtId K0S=EvtPDL::getId("K_S0");
1121   static EvtId K0L=EvtPDL::getId("K_L0");
1122
1123   static EvtId KSTP=EvtPDL::getId("K*+");
1124   static EvtId KSTM=EvtPDL::getId("K*-");
1125   static EvtId KST0=EvtPDL::getId("K*0");
1126   static EvtId KSTB=EvtPDL::getId("anti-K*0");
1127
1128   static EvtId K1P=EvtPDL::getId("K_1+");
1129   static EvtId K1M=EvtPDL::getId("K_1-");
1130   static EvtId K10=EvtPDL::getId("K_10");
1131   static EvtId K1B=EvtPDL::getId("anti-K_10");
1132
1133   static EvtId K1STP=EvtPDL::getId("K'_1+");
1134   static EvtId K1STM=EvtPDL::getId("K'_1-");
1135   static EvtId K1ST0=EvtPDL::getId("K'_10");
1136   static EvtId K1STB=EvtPDL::getId("anti-K'_10");
1137
1138   static EvtId K2STP=EvtPDL::getId("K_2*+");
1139   static EvtId K2STM=EvtPDL::getId("K_2*-");
1140   static EvtId K2ST0=EvtPDL::getId("K_2*0");
1141   static EvtId K2STB=EvtPDL::getId("anti-K_2*0");
1142
1143   static EvtId K0STP=EvtPDL::getId("K_0*+");
1144   static EvtId K0STM=EvtPDL::getId("K_0*-");
1145   static EvtId K0ST0=EvtPDL::getId("K_0*0");
1146   static EvtId K0STB=EvtPDL::getId("anti-K_0*0");
1147
1148   static EvtId PHI=EvtPDL::getId("phi");
1149   static EvtId DSP=EvtPDL::getId("D_s+");
1150   static EvtId DSM=EvtPDL::getId("D_s-");
1151
1152   static EvtId D1P1SP=EvtPDL::getId("D_s1+");
1153   static EvtId D1P1SN=EvtPDL::getId("D_s1-");
1154
1155   static EvtId D3P0SP=EvtPDL::getId("D_s0*+");
1156   static EvtId D3P0SN=EvtPDL::getId("D_s0*-");
1157
1158   static EvtId D3P1SP=EvtPDL::getId("D'_s1*+");
1159   static EvtId D3P1SN=EvtPDL::getId("D'_s1*-");
1160
1161   static EvtId D3P2SP=EvtPDL::getId("D_s2*+");
1162   static EvtId D3P2SN=EvtPDL::getId("D_s2*-");
1163
1164   static EvtId DSSTP=EvtPDL::getId("D_s*+");
1165   static EvtId DSSTM=EvtPDL::getId("D_s*-");
1166
1167   static EvtId BSB=EvtPDL::getId("anti-B_s0");
1168   static EvtId BS0=EvtPDL::getId("B_s0");
1169  
1170   double msd(0.0),mup,msq(0.0),bb2(0.0),mum,mtx,bbx2;
1171   double bx2(0.0),msb(0.0),tm;
1172   double mb,mx,f3, kap;
1173
1174   if (parent==BM||parent==BP||parent==B0||parent==B0B) { 
1175     msb=5.2;
1176     msd=0.33;
1177     bb2=0.41*0.41;
1178     if (daugt==DSTP||daugt==DSTM||daugt==DSTB||daugt==DST0) {
1179       msq=1.82;
1180       bx2=0.39*0.39;
1181     }
1182     else{
1183       if (daugt==RHOP||daugt==RHOM||daugt==RHO0||daugt==OMEG) {
1184         msq=0.33;
1185         bx2=0.31*0.31;
1186       }
1187       else{
1188         report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3S1.\n";
1189       }
1190     }
1191   }
1192   else{
1193     report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_3S1.\n";
1194   }
1195   
1196   double mtb;
1197
1198   mtb=msb+msd;
1199   mtx=msq+msd;
1200   
1201   mup=1.0/(1.0/msq+1.0/msb);
1202   mum=1.0/(1.0/msq-1.0/msb);
1203   bbx2=0.5*(bb2+bx2);
1204   mb=EvtPDL::getMeanMass(parent);
1205   mx=mass;
1206   tm=(mb-mx)*(mb-mx);
1207   if ( t > tm ) t = 0.99*tm;
1208
1209   kap = 0.7*0.7;
1210   f3 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,3.0/2.0)*
1211        exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2))));
1212   
1213   *f=2.0*mtb*f3;
1214   *g=0.5*f3*((1/msq)-(msd*bb2/(2.0*mum*mtx*bbx2)));
1215   *ap=(-1.0*f3/(2.0*mtx))*(1.0+(msd*(bb2-bx2)/(msb
1216       *(bb2+bx2)))-(msd*msd*bx2*bx2/(4.0*mum*mtb*bbx2*bbx2)));
1217   *am=0.0;
1218
1219 }
1220
1221 void EvtISGWFF::EvtISGW1FF23S1 (EvtId parent,EvtId daugt,
1222        double t, double mass, double *fpf, double *gpf, 
1223        double *appf, double *apmf ) {
1224   //added by Lange Jan4,2000
1225   static EvtId EM=EvtPDL::getId("e-");
1226   static EvtId EP=EvtPDL::getId("e+");
1227   static EvtId MUM=EvtPDL::getId("mu-");
1228   static EvtId MUP=EvtPDL::getId("mu+");
1229   static EvtId TAUM=EvtPDL::getId("tau-");
1230   static EvtId TAUP=EvtPDL::getId("tau+");
1231
1232   static EvtId BP=EvtPDL::getId("B+");
1233   static EvtId BM=EvtPDL::getId("B-");
1234   static EvtId B0=EvtPDL::getId("B0");
1235   static EvtId B0B=EvtPDL::getId("anti-B0");
1236
1237   static EvtId DST0=EvtPDL::getId("D*0");
1238   static EvtId DSTB=EvtPDL::getId("anti-D*0");
1239   static EvtId DSTP=EvtPDL::getId("D*+");
1240   static EvtId DSTM=EvtPDL::getId("D*-");
1241   static EvtId D0=EvtPDL::getId("D0");
1242   static EvtId D0B=EvtPDL::getId("anti-D0");
1243   static EvtId DP=EvtPDL::getId("D+");
1244   static EvtId DM=EvtPDL::getId("D-");
1245
1246   static EvtId D1P1P=EvtPDL::getId("D_1+");
1247   static EvtId D1P1N=EvtPDL::getId("D_1-");
1248   static EvtId D1P10=EvtPDL::getId("D_10");
1249   static EvtId D1P1B=EvtPDL::getId("anti-D_10");
1250
1251   static EvtId D3P2P=EvtPDL::getId("D_2*+");
1252   static EvtId D3P2N=EvtPDL::getId("D_2*-");
1253   static EvtId D3P20=EvtPDL::getId("D_2*0");
1254   static EvtId D3P2B=EvtPDL::getId("anti-D_2*0");
1255
1256   static EvtId D3P1P=EvtPDL::getId("D'_1+");
1257   static EvtId D3P1N=EvtPDL::getId("D'_1-");
1258   static EvtId D3P10=EvtPDL::getId("D'_10");
1259   static EvtId D3P1B=EvtPDL::getId("anti-D'_10");
1260
1261   static EvtId D3P0P=EvtPDL::getId("D_0*+");
1262   static EvtId D3P0N=EvtPDL::getId("D_0*-");
1263   static EvtId D3P00=EvtPDL::getId("D_0*0");
1264   static EvtId D3P0B=EvtPDL::getId("anti-D_0*0");
1265
1266   static EvtId D21S0P=EvtPDL::getId("hi");
1267   static EvtId D21S0N=EvtPDL::getId("hi");
1268   static EvtId D21S00=EvtPDL::getId("hi");
1269   static EvtId D21S0B=EvtPDL::getId("hi");
1270
1271   static EvtId D23S1P=EvtPDL::getId("hi");
1272   static EvtId D23S1N=EvtPDL::getId("hi");
1273   static EvtId D23S10=EvtPDL::getId("hi");
1274   static EvtId D23S1B=EvtPDL::getId("hi");
1275
1276   static EvtId RHO2S0=EvtPDL::getId("rho(2S)0");
1277   static EvtId RHO2SP=EvtPDL::getId("rho(2S)+");
1278   static EvtId RHO2SM=EvtPDL::getId("rho(2S)-");
1279   static EvtId OMEG2S=EvtPDL::getId("omega(2S)");
1280   static EvtId ETA2S=EvtPDL::getId("eta(2S)");
1281
1282   static EvtId PI2S0=EvtPDL::getId("pi(2S)0");
1283   static EvtId PI2SP=EvtPDL::getId("pi(2S)+");
1284   static EvtId PI2SM=EvtPDL::getId("pi(2S)-");
1285
1286   static EvtId PIP=EvtPDL::getId("pi+");
1287   static EvtId PIM=EvtPDL::getId("pi-");
1288   static EvtId PI0=EvtPDL::getId("pi0");
1289
1290   static EvtId RHOP=EvtPDL::getId("rho+");
1291   static EvtId RHOM=EvtPDL::getId("rho-");
1292   static EvtId RHO0=EvtPDL::getId("rho0");
1293
1294   static EvtId A2P=EvtPDL::getId("a_2+");
1295   static EvtId A2M=EvtPDL::getId("a_2-");
1296   static EvtId A20=EvtPDL::getId("a_20");
1297
1298   static EvtId A1P=EvtPDL::getId("a_1+");
1299   static EvtId A1M=EvtPDL::getId("a_1-");
1300   static EvtId A10=EvtPDL::getId("a_10");
1301
1302   static EvtId A0P=EvtPDL::getId("a_0+");
1303   static EvtId A0M=EvtPDL::getId("a_0-");
1304   static EvtId A00=EvtPDL::getId("a_00");
1305
1306   static EvtId B1P=EvtPDL::getId("b_1+");
1307   static EvtId B1M=EvtPDL::getId("b_1-");
1308   static EvtId B10=EvtPDL::getId("b_10");
1309
1310   static EvtId H1=EvtPDL::getId("h_1");
1311   static EvtId H1PR=EvtPDL::getId("h'_1");
1312
1313   static EvtId F1=EvtPDL::getId("f_1");
1314   static EvtId F1PR=EvtPDL::getId("f'_1");
1315   static EvtId F0=EvtPDL::getId("f_0");
1316   static EvtId F0PR=EvtPDL::getId("f'_0");
1317   static EvtId F2=EvtPDL::getId("f_2");
1318   static EvtId F2PR=EvtPDL::getId("f'_2");
1319
1320   static EvtId ETA=EvtPDL::getId("eta");
1321   static EvtId ETAPR=EvtPDL::getId("eta'");
1322   static EvtId OMEG=EvtPDL::getId("omega");
1323
1324   static EvtId KP=EvtPDL::getId("K+");
1325   static EvtId KM=EvtPDL::getId("K-");
1326   static EvtId K0=EvtPDL::getId("K0");
1327   static EvtId KB=EvtPDL::getId("anti-K0");
1328   static EvtId K0S=EvtPDL::getId("K_S0");
1329   static EvtId K0L=EvtPDL::getId("K_L0");
1330
1331   static EvtId KSTP=EvtPDL::getId("K*+");
1332   static EvtId KSTM=EvtPDL::getId("K*-");
1333   static EvtId KST0=EvtPDL::getId("K*0");
1334   static EvtId KSTB=EvtPDL::getId("anti-K*0");
1335
1336   static EvtId K1P=EvtPDL::getId("K_1+");
1337   static EvtId K1M=EvtPDL::getId("K_1-");
1338   static EvtId K10=EvtPDL::getId("K_10");
1339   static EvtId K1B=EvtPDL::getId("anti-K_10");
1340
1341   static EvtId K1STP=EvtPDL::getId("K'_1+");
1342   static EvtId K1STM=EvtPDL::getId("K'_1-");
1343   static EvtId K1ST0=EvtPDL::getId("K'_10");
1344   static EvtId K1STB=EvtPDL::getId("anti-K'_10");
1345
1346   static EvtId K2STP=EvtPDL::getId("K_2*+");
1347   static EvtId K2STM=EvtPDL::getId("K_2*-");
1348   static EvtId K2ST0=EvtPDL::getId("K_2*0");
1349   static EvtId K2STB=EvtPDL::getId("anti-K_2*0");
1350
1351   static EvtId K0STP=EvtPDL::getId("K_0*+");
1352   static EvtId K0STM=EvtPDL::getId("K_0*-");
1353   static EvtId K0ST0=EvtPDL::getId("K_0*0");
1354   static EvtId K0STB=EvtPDL::getId("anti-K_0*0");
1355
1356   static EvtId PHI=EvtPDL::getId("phi");
1357   static EvtId DSP=EvtPDL::getId("D_s+");
1358   static EvtId DSM=EvtPDL::getId("D_s-");
1359
1360   static EvtId D1P1SP=EvtPDL::getId("D_s1+");
1361   static EvtId D1P1SN=EvtPDL::getId("D_s1-");
1362
1363   static EvtId D3P0SP=EvtPDL::getId("D_s0*+");
1364   static EvtId D3P0SN=EvtPDL::getId("D_s0*-");
1365
1366   static EvtId D3P1SP=EvtPDL::getId("D'_s1*+");
1367   static EvtId D3P1SN=EvtPDL::getId("D'_s1*-");
1368
1369   static EvtId D3P2SP=EvtPDL::getId("D_s2*+");
1370   static EvtId D3P2SN=EvtPDL::getId("D_s2*-");
1371
1372   static EvtId DSSTP=EvtPDL::getId("D_s*+");
1373   static EvtId DSSTM=EvtPDL::getId("D_s*-");
1374
1375   static EvtId BSB=EvtPDL::getId("anti-B_s0");
1376   static EvtId BS0=EvtPDL::getId("B_s0");
1377
1378   double mtb;
1379   double msd(0.0), mx(0.0), mb(0.0); 
1380   double msq(0.0), bx2(0.0),mtx;
1381   double f3,f5,tt;
1382   double mum,mup,bb2(0.0),bbx2,tm,msb(0.0);
1383     
1384   if (parent==BM||parent==BP||parent==B0||parent==B0B) {
1385     msb=5.2;
1386     msd=0.33;
1387     bb2=0.41*0.41;
1388     if (daugt==RHO2SP||daugt==RHO2SM||daugt==RHO2S0||daugt==OMEG2S) {
1389       msq=0.33;
1390       bx2=0.31*0.31;
1391     }
1392     else{
1393       if (daugt==D23S1N||daugt==D23S10||daugt==D23S1P||daugt==D23S1B) {
1394       msq=1.82;
1395       bx2=0.39*0.39;
1396       }
1397       else{
1398         report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_23P1.\n";
1399       }
1400     }
1401   }
1402   else{
1403     report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_23P1.\n";
1404   }
1405   
1406   mtb = msb + msd;
1407   mtx = msq + msd;
1408   mb = EvtPDL::getMeanMass( parent );
1409   mx = mass;
1410   mup=1.0/(1.0/msq+1.0/msb);
1411   mum=1.0/(1.0/msq-1.0/msb);
1412   bbx2=0.5*(bb2+bx2);
1413   tm=(mb-mx)*(mb-mx);
1414   if (t>tm) t = 0.99*tm;
1415   
1416   double kap = 0.7*0.7;
1417   f3 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,3.0/2.0)*
1418     exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2))));
1419   
1420   f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0)*
1421     exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2))));
1422   
1423   *fpf = sqrt(6.0)*f3*mtb*( ((bb2-bx2)/(bb2+bx2)) + ((msd*msd*bx2*
1424          (tm-t))/(6.0*mtx*mtb*bbx2*kap*bbx2)));
1425        
1426   *gpf = sqrt(3.0/8.0)*f3*( ((((bb2-bx2)/(bb2+bx2)) + ((msd*msd*bx2*
1427          (tm-t))/(6.0*mtx*mtb*bbx2*kap*bbx2)))*
1428          ((1.0/msq)-((msd*bb2)/(2.0*mum*mtx*bbx2)))) +
1429          ((msd*bb2*bx2)/(3.0*mum*mtx*bbx2*bbx2)));
1430
1431   tt = (msd*msd*bx2*(tm-t))/(mtx*mtb*bb2*kap*bbx2);
1432
1433   *appf = (f5/(sqrt(6.0)*mtx))* ( ((3.0*mtb*bbx2/(2.0*msb*sqrt(bb2*bx2)))*
1434           (1.0 - ( (msd*msd*msb*bx2*bx2)/(4.0*mtb*mtb*mum*bbx2*bbx2)))) -
1435           ( (3.0*msd*sqrt(bx2/bb2))/(2.0*msb)) + 
1436           ( (5.0*msd*sqrt(bx2*bb2)*(1.0 + 0.1*tt))/(2.0*msb*bbx2)) -
1437           ( (3.0*mtb*sqrt(bb2/bx2)*(1.0 + (tt/6.0)))/(2.0*msb)) +
1438           ( (7.0*msd*msd*sqrt(bb2/bx2)*bx2*bx2*(1.0 + (tt/14.0))) /
1439             (8.0*mtb*mum*bbx2*bbx2))); 
1440
1441   *apmf = 0.0;
1442   return;
1443 } //get_ff_isgw_23s1
1444
1445
1446 void EvtISGWFF::EvtISGW1FF3P1 (EvtId parent,EvtId daugt,
1447        double t, double mass,
1448        double *lf, double *qf, double *cpf, double *cmf ) {
1449   //added by Lange Jan4,2000
1450   static EvtId EM=EvtPDL::getId("e-");
1451   static EvtId EP=EvtPDL::getId("e+");
1452   static EvtId MUM=EvtPDL::getId("mu-");
1453   static EvtId MUP=EvtPDL::getId("mu+");
1454   static EvtId TAUM=EvtPDL::getId("tau-");
1455   static EvtId TAUP=EvtPDL::getId("tau+");
1456
1457   static EvtId BP=EvtPDL::getId("B+");
1458   static EvtId BM=EvtPDL::getId("B-");
1459   static EvtId B0=EvtPDL::getId("B0");
1460   static EvtId B0B=EvtPDL::getId("anti-B0");
1461
1462   static EvtId DST0=EvtPDL::getId("D*0");
1463   static EvtId DSTB=EvtPDL::getId("anti-D*0");
1464   static EvtId DSTP=EvtPDL::getId("D*+");
1465   static EvtId DSTM=EvtPDL::getId("D*-");
1466   static EvtId D0=EvtPDL::getId("D0");
1467   static EvtId D0B=EvtPDL::getId("anti-D0");
1468   static EvtId DP=EvtPDL::getId("D+");
1469   static EvtId DM=EvtPDL::getId("D-");
1470
1471   static EvtId D1P1P=EvtPDL::getId("D_1+");
1472   static EvtId D1P1N=EvtPDL::getId("D_1-");
1473   static EvtId D1P10=EvtPDL::getId("D_10");
1474   static EvtId D1P1B=EvtPDL::getId("anti-D_10");
1475
1476   static EvtId D3P2P=EvtPDL::getId("D_2*+");
1477   static EvtId D3P2N=EvtPDL::getId("D_2*-");
1478   static EvtId D3P20=EvtPDL::getId("D_2*0");
1479   static EvtId D3P2B=EvtPDL::getId("anti-D_2*0");
1480
1481   static EvtId D3P1P=EvtPDL::getId("D'_1+");
1482   static EvtId D3P1N=EvtPDL::getId("D'_1-");
1483   static EvtId D3P10=EvtPDL::getId("D'_10");
1484   static EvtId D3P1B=EvtPDL::getId("anti-D'_10");
1485
1486   static EvtId D3P0P=EvtPDL::getId("D_0*+");
1487   static EvtId D3P0N=EvtPDL::getId("D_0*-");
1488   static EvtId D3P00=EvtPDL::getId("D_0*0");
1489   static EvtId D3P0B=EvtPDL::getId("anti-D_0*0");
1490
1491   static EvtId D21S0P=EvtPDL::getId("hi");
1492   static EvtId D21S0N=EvtPDL::getId("hi");
1493   static EvtId D21S00=EvtPDL::getId("hi");
1494   static EvtId D21S0B=EvtPDL::getId("hi");
1495
1496   static EvtId D23S1P=EvtPDL::getId("hi");
1497   static EvtId D23S1N=EvtPDL::getId("hi");
1498   static EvtId D23S10=EvtPDL::getId("hi");
1499   static EvtId D23S1B=EvtPDL::getId("hi");
1500
1501   static EvtId RHO2S0=EvtPDL::getId("rho(2S)0");
1502   static EvtId RHO2SP=EvtPDL::getId("rho(2S)+");
1503   static EvtId RHO2SM=EvtPDL::getId("rho(2S)-");
1504   static EvtId OMEG2S=EvtPDL::getId("omega(2S)");
1505   static EvtId ETA2S=EvtPDL::getId("eta(2S)");
1506
1507   static EvtId PI2S0=EvtPDL::getId("pi(2S)0");
1508   static EvtId PI2SP=EvtPDL::getId("pi(2S)+");
1509   static EvtId PI2SM=EvtPDL::getId("pi(2S)-");
1510
1511   static EvtId PIP=EvtPDL::getId("pi+");
1512   static EvtId PIM=EvtPDL::getId("pi-");
1513   static EvtId PI0=EvtPDL::getId("pi0");
1514
1515   static EvtId RHOP=EvtPDL::getId("rho+");
1516   static EvtId RHOM=EvtPDL::getId("rho-");
1517   static EvtId RHO0=EvtPDL::getId("rho0");
1518
1519   static EvtId A2P=EvtPDL::getId("a_2+");
1520   static EvtId A2M=EvtPDL::getId("a_2-");
1521   static EvtId A20=EvtPDL::getId("a_20");
1522
1523   static EvtId A1P=EvtPDL::getId("a_1+");
1524   static EvtId A1M=EvtPDL::getId("a_1-");
1525   static EvtId A10=EvtPDL::getId("a_10");
1526
1527   static EvtId A0P=EvtPDL::getId("a_0+");
1528   static EvtId A0M=EvtPDL::getId("a_0-");
1529   static EvtId A00=EvtPDL::getId("a_00");
1530
1531   static EvtId B1P=EvtPDL::getId("b_1+");
1532   static EvtId B1M=EvtPDL::getId("b_1-");
1533   static EvtId B10=EvtPDL::getId("b_10");
1534
1535   static EvtId H1=EvtPDL::getId("h_1");
1536   static EvtId H1PR=EvtPDL::getId("h'_1");
1537
1538   static EvtId F1=EvtPDL::getId("f_1");
1539   static EvtId F1PR=EvtPDL::getId("f'_1");
1540   static EvtId F0=EvtPDL::getId("f_0");
1541   static EvtId F0PR=EvtPDL::getId("f'_0");
1542   static EvtId F2=EvtPDL::getId("f_2");
1543   static EvtId F2PR=EvtPDL::getId("f'_2");
1544
1545   static EvtId ETA=EvtPDL::getId("eta");
1546   static EvtId ETAPR=EvtPDL::getId("eta'");
1547   static EvtId OMEG=EvtPDL::getId("omega");
1548
1549   static EvtId KP=EvtPDL::getId("K+");
1550   static EvtId KM=EvtPDL::getId("K-");
1551   static EvtId K0=EvtPDL::getId("K0");
1552   static EvtId KB=EvtPDL::getId("anti-K0");
1553   static EvtId K0S=EvtPDL::getId("K_S0");
1554   static EvtId K0L=EvtPDL::getId("K_L0");
1555
1556   static EvtId KSTP=EvtPDL::getId("K*+");
1557   static EvtId KSTM=EvtPDL::getId("K*-");
1558   static EvtId KST0=EvtPDL::getId("K*0");
1559   static EvtId KSTB=EvtPDL::getId("anti-K*0");
1560
1561   static EvtId K1P=EvtPDL::getId("K_1+");
1562   static EvtId K1M=EvtPDL::getId("K_1-");
1563   static EvtId K10=EvtPDL::getId("K_10");
1564   static EvtId K1B=EvtPDL::getId("anti-K_10");
1565
1566   static EvtId K1STP=EvtPDL::getId("K'_1+");
1567   static EvtId K1STM=EvtPDL::getId("K'_1-");
1568   static EvtId K1ST0=EvtPDL::getId("K'_10");
1569   static EvtId K1STB=EvtPDL::getId("anti-K'_10");
1570
1571   static EvtId K2STP=EvtPDL::getId("K_2*+");
1572   static EvtId K2STM=EvtPDL::getId("K_2*-");
1573   static EvtId K2ST0=EvtPDL::getId("K_2*0");
1574   static EvtId K2STB=EvtPDL::getId("anti-K_2*0");
1575
1576   static EvtId K0STP=EvtPDL::getId("K_0*+");
1577   static EvtId K0STM=EvtPDL::getId("K_0*-");
1578   static EvtId K0ST0=EvtPDL::getId("K_0*0");
1579   static EvtId K0STB=EvtPDL::getId("anti-K_0*0");
1580
1581   static EvtId PHI=EvtPDL::getId("phi");
1582   static EvtId DSP=EvtPDL::getId("D_s+");
1583   static EvtId DSM=EvtPDL::getId("D_s-");
1584
1585   static EvtId D1P1SP=EvtPDL::getId("D_s1+");
1586   static EvtId D1P1SN=EvtPDL::getId("D_s1-");
1587
1588   static EvtId D3P0SP=EvtPDL::getId("D_s0*+");
1589   static EvtId D3P0SN=EvtPDL::getId("D_s0*-");
1590
1591   static EvtId D3P1SP=EvtPDL::getId("D'_s1*+");
1592   static EvtId D3P1SN=EvtPDL::getId("D'_s1*-");
1593
1594   static EvtId D3P2SP=EvtPDL::getId("D_s2*+");
1595   static EvtId D3P2SN=EvtPDL::getId("D_s2*-");
1596
1597   static EvtId DSSTP=EvtPDL::getId("D_s*+");
1598   static EvtId DSSTM=EvtPDL::getId("D_s*-");
1599
1600   static EvtId BSB=EvtPDL::getId("anti-B_s0");
1601   static EvtId BS0=EvtPDL::getId("B_s0");
1602
1603   double mtb;
1604   double msd(0.0), mx(0.0), mb(0.0); 
1605   double msq(0.0), bx2(0.0),mtx,f5;
1606   double msb(0.0),bb2(0.0),mup,mum,bbx2,tm;
1607   double kap;
1608
1609   if (parent==BM||parent==BP||parent==B0||parent==B0B) {  
1610     msb=5.2;
1611     msd=0.33;
1612     bb2=0.41*0.41;
1613     if (daugt==A10||daugt==A1P||daugt==A1M||daugt==F1||daugt==F1PR) {
1614       msq=0.33;
1615       bx2=0.27*0.27;
1616     }
1617     else{
1618       if (daugt==D3P1P||daugt==D3P1N||daugt==D3P1B||daugt==D3P10) {
1619       msq=1.82;
1620       bx2=0.34*0.34;
1621       }
1622       else{
1623         report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3P1.\n";
1624       }
1625     }
1626   }
1627   else{
1628     report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_3P1.\n";
1629   }
1630   
1631   mtb = msb + msd;
1632   mtx = msq + msd;
1633   
1634   mb = EvtPDL::getMeanMass( parent );
1635   mx = mass;
1636   
1637   mup=1.0/(1.0/msq+1.0/msb);
1638   mum=1.0/(1.0/msq-1.0/msb);
1639   bbx2=0.5*(bb2+bx2);
1640   tm=(mb-mx)*(mb-mx);
1641   if (t>tm) t = 0.99*tm;
1642   
1643   kap = 0.7*0.7;
1644   f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0)*
1645        exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2))));
1646
1647   *qf = (f5*msd)/(2.0*mtx*sqrt(bb2));
1648   
1649   *lf = -1.0*mtb*sqrt(bb2)*f5*(1/mum+(msd*(tm-t)/(2.0*mtb*
1650         kap*bb2))*((1.0/msq)-(1.0*msd*bb2/(2.0*mum*mtx*bbx2)))); 
1651
1652   *cpf = (f5*msd*msb/(4.0*mtb*sqrt(bb2)*mum))*(1.0-(msd*msq*bb2/(
1653          2.0*mtx*mum*bbx2)));
1654   *cmf = 0.0;
1655   return;
1656 } //get_ff_isgw_3p1
1657
1658
1659
1660 void EvtISGWFF::EvtISGW1FF3P0 (EvtId parent,EvtId daugt,
1661        double t, double mass, double *upf, double *umf ) {
1662   //added by Lange Jan4,2000
1663   static EvtId EM=EvtPDL::getId("e-");
1664   static EvtId EP=EvtPDL::getId("e+");
1665   static EvtId MUM=EvtPDL::getId("mu-");
1666   static EvtId MUP=EvtPDL::getId("mu+");
1667   static EvtId TAUM=EvtPDL::getId("tau-");
1668   static EvtId TAUP=EvtPDL::getId("tau+");
1669
1670   static EvtId BP=EvtPDL::getId("B+");
1671   static EvtId BM=EvtPDL::getId("B-");
1672   static EvtId B0=EvtPDL::getId("B0");
1673   static EvtId B0B=EvtPDL::getId("anti-B0");
1674
1675   static EvtId DST0=EvtPDL::getId("D*0");
1676   static EvtId DSTB=EvtPDL::getId("anti-D*0");
1677   static EvtId DSTP=EvtPDL::getId("D*+");
1678   static EvtId DSTM=EvtPDL::getId("D*-");
1679   static EvtId D0=EvtPDL::getId("D0");
1680   static EvtId D0B=EvtPDL::getId("anti-D0");
1681   static EvtId DP=EvtPDL::getId("D+");
1682   static EvtId DM=EvtPDL::getId("D-");
1683
1684   static EvtId D1P1P=EvtPDL::getId("D_1+");
1685   static EvtId D1P1N=EvtPDL::getId("D_1-");
1686   static EvtId D1P10=EvtPDL::getId("D_10");
1687   static EvtId D1P1B=EvtPDL::getId("anti-D_10");
1688
1689   static EvtId D3P2P=EvtPDL::getId("D_2*+");
1690   static EvtId D3P2N=EvtPDL::getId("D_2*-");
1691   static EvtId D3P20=EvtPDL::getId("D_2*0");
1692   static EvtId D3P2B=EvtPDL::getId("anti-D_2*0");
1693
1694   static EvtId D3P1P=EvtPDL::getId("D'_1+");
1695   static EvtId D3P1N=EvtPDL::getId("D'_1-");
1696   static EvtId D3P10=EvtPDL::getId("D'_10");
1697   static EvtId D3P1B=EvtPDL::getId("anti-D'_10");
1698
1699   static EvtId D3P0P=EvtPDL::getId("D_0*+");
1700   static EvtId D3P0N=EvtPDL::getId("D_0*-");
1701   static EvtId D3P00=EvtPDL::getId("D_0*0");
1702   static EvtId D3P0B=EvtPDL::getId("anti-D_0*0");
1703
1704   static EvtId D21S0P=EvtPDL::getId("hi");
1705   static EvtId D21S0N=EvtPDL::getId("hi");
1706   static EvtId D21S00=EvtPDL::getId("hi");
1707   static EvtId D21S0B=EvtPDL::getId("hi");
1708
1709   static EvtId D23S1P=EvtPDL::getId("hi");
1710   static EvtId D23S1N=EvtPDL::getId("hi");
1711   static EvtId D23S10=EvtPDL::getId("hi");
1712   static EvtId D23S1B=EvtPDL::getId("hi");
1713
1714   static EvtId RHO2S0=EvtPDL::getId("rho(2S)0");
1715   static EvtId RHO2SP=EvtPDL::getId("rho(2S)+");
1716   static EvtId RHO2SM=EvtPDL::getId("rho(2S)-");
1717   static EvtId OMEG2S=EvtPDL::getId("omega(2S)");
1718   static EvtId ETA2S=EvtPDL::getId("eta(2S)");
1719
1720   static EvtId PI2S0=EvtPDL::getId("pi(2S)0");
1721   static EvtId PI2SP=EvtPDL::getId("pi(2S)+");
1722   static EvtId PI2SM=EvtPDL::getId("pi(2S)-");
1723
1724   static EvtId PIP=EvtPDL::getId("pi+");
1725   static EvtId PIM=EvtPDL::getId("pi-");
1726   static EvtId PI0=EvtPDL::getId("pi0");
1727
1728   static EvtId RHOP=EvtPDL::getId("rho+");
1729   static EvtId RHOM=EvtPDL::getId("rho-");
1730   static EvtId RHO0=EvtPDL::getId("rho0");
1731
1732   static EvtId A2P=EvtPDL::getId("a_2+");
1733   static EvtId A2M=EvtPDL::getId("a_2-");
1734   static EvtId A20=EvtPDL::getId("a_20");
1735
1736   static EvtId A1P=EvtPDL::getId("a_1+");
1737   static EvtId A1M=EvtPDL::getId("a_1-");
1738   static EvtId A10=EvtPDL::getId("a_10");
1739
1740   static EvtId A0P=EvtPDL::getId("a_0+");
1741   static EvtId A0M=EvtPDL::getId("a_0-");
1742   static EvtId A00=EvtPDL::getId("a_00");
1743
1744   static EvtId B1P=EvtPDL::getId("b_1+");
1745   static EvtId B1M=EvtPDL::getId("b_1-");
1746   static EvtId B10=EvtPDL::getId("b_10");
1747
1748   static EvtId H1=EvtPDL::getId("h_1");
1749   static EvtId H1PR=EvtPDL::getId("h'_1");
1750
1751   static EvtId F1=EvtPDL::getId("f_1");
1752   static EvtId F1PR=EvtPDL::getId("f'_1");
1753   static EvtId F0=EvtPDL::getId("f_0");
1754   static EvtId F0PR=EvtPDL::getId("f'_0");
1755   static EvtId F2=EvtPDL::getId("f_2");
1756   static EvtId F2PR=EvtPDL::getId("f'_2");
1757
1758   static EvtId ETA=EvtPDL::getId("eta");
1759   static EvtId ETAPR=EvtPDL::getId("eta'");
1760   static EvtId OMEG=EvtPDL::getId("omega");
1761
1762   static EvtId KP=EvtPDL::getId("K+");
1763   static EvtId KM=EvtPDL::getId("K-");
1764   static EvtId K0=EvtPDL::getId("K0");
1765   static EvtId KB=EvtPDL::getId("anti-K0");
1766   static EvtId K0S=EvtPDL::getId("K_S0");
1767   static EvtId K0L=EvtPDL::getId("K_L0");
1768
1769   static EvtId KSTP=EvtPDL::getId("K*+");
1770   static EvtId KSTM=EvtPDL::getId("K*-");
1771   static EvtId KST0=EvtPDL::getId("K*0");
1772   static EvtId KSTB=EvtPDL::getId("anti-K*0");
1773
1774   static EvtId K1P=EvtPDL::getId("K_1+");
1775   static EvtId K1M=EvtPDL::getId("K_1-");
1776   static EvtId K10=EvtPDL::getId("K_10");
1777   static EvtId K1B=EvtPDL::getId("anti-K_10");
1778
1779   static EvtId K1STP=EvtPDL::getId("K'_1+");
1780   static EvtId K1STM=EvtPDL::getId("K'_1-");
1781   static EvtId K1ST0=EvtPDL::getId("K'_10");
1782   static EvtId K1STB=EvtPDL::getId("anti-K'_10");
1783
1784   static EvtId K2STP=EvtPDL::getId("K_2*+");
1785   static EvtId K2STM=EvtPDL::getId("K_2*-");
1786   static EvtId K2ST0=EvtPDL::getId("K_2*0");
1787   static EvtId K2STB=EvtPDL::getId("anti-K_2*0");
1788
1789   static EvtId K0STP=EvtPDL::getId("K_0*+");
1790   static EvtId K0STM=EvtPDL::getId("K_0*-");
1791   static EvtId K0ST0=EvtPDL::getId("K_0*0");
1792   static EvtId K0STB=EvtPDL::getId("anti-K_0*0");
1793
1794   static EvtId PHI=EvtPDL::getId("phi");
1795   static EvtId DSP=EvtPDL::getId("D_s+");
1796   static EvtId DSM=EvtPDL::getId("D_s-");
1797
1798   static EvtId D1P1SP=EvtPDL::getId("D_s1+");
1799   static EvtId D1P1SN=EvtPDL::getId("D_s1-");
1800
1801   static EvtId D3P0SP=EvtPDL::getId("D_s0*+");
1802   static EvtId D3P0SN=EvtPDL::getId("D_s0*-");
1803
1804   static EvtId D3P1SP=EvtPDL::getId("D'_s1*+");
1805   static EvtId D3P1SN=EvtPDL::getId("D'_s1*-");
1806
1807   static EvtId D3P2SP=EvtPDL::getId("D_s2*+");
1808   static EvtId D3P2SN=EvtPDL::getId("D_s2*-");
1809
1810   static EvtId DSSTP=EvtPDL::getId("D_s*+");
1811   static EvtId DSSTM=EvtPDL::getId("D_s*-");
1812
1813   static EvtId BSB=EvtPDL::getId("anti-B_s0");
1814   static EvtId BS0=EvtPDL::getId("B_s0");
1815
1816   double mtb;
1817   double msd(0.0), mx(0.0), mb(0.0); 
1818   double msq(0.0), bx2(0.0),mtx;
1819   double f5;
1820   double mum,mup,bb2(0.0),bbx2,msb(0.0),tm;
1821
1822   if (parent==BM||parent==BP||parent==B0||parent==B0B) {    
1823     msb=5.2;
1824     msd=0.33;
1825     bb2=0.41*0.41;
1826     if (daugt==A00||daugt==A0P||daugt==A0M||daugt==F0||daugt==F0PR) {
1827       msq=0.33;
1828       bx2=0.27*0.27;
1829     }
1830     else{
1831       if (daugt==D3P0P||daugt==D3P0N||daugt==D3P0B||daugt==D3P00) {
1832         msq=1.82;
1833         bx2=0.34*0.34;
1834       }
1835       else{
1836         report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3P0.\n";
1837       }
1838     }
1839   }
1840   else{
1841     report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_3P0.\n";
1842   }
1843   
1844   mtb = msb + msd;
1845   mtx = msq + msd;
1846   
1847   mb = EvtPDL::getMeanMass( parent );
1848   mx = mass;
1849   
1850   mup=1.0/(1.0/msq+1.0/msb);
1851   mum=1.0/(1.0/msq-1.0/msb);
1852   bbx2=0.5*(bb2+bx2);
1853   tm=(mb-mx)*(mb-mx);
1854   if (t>tm) t = 0.99*tm;
1855   
1856   double kap = 0.7*0.7;
1857   f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0)*
1858        exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2))));
1859
1860   *upf = f5*msd*msq*msb/(sqrt(6.0*bb2)*mtx*mum);
1861   *umf = 0.0;
1862   return;
1863 } //get_ff_isgw_3p0
1864
1865
1866
1867 void EvtISGWFF::EvtISGW1FF1P1 (EvtId parent,EvtId daugt,
1868        double t, double mass,
1869        double *vf, double *rf, double *spf, double *smf ) {
1870     //added by Lange Jan4,2000
1871   static EvtId EM=EvtPDL::getId("e-");
1872   static EvtId EP=EvtPDL::getId("e+");
1873   static EvtId MUM=EvtPDL::getId("mu-");
1874   static EvtId MUP=EvtPDL::getId("mu+");
1875   static EvtId TAUM=EvtPDL::getId("tau-");
1876   static EvtId TAUP=EvtPDL::getId("tau+");
1877
1878   static EvtId BP=EvtPDL::getId("B+");
1879   static EvtId BM=EvtPDL::getId("B-");
1880   static EvtId B0=EvtPDL::getId("B0");
1881   static EvtId B0B=EvtPDL::getId("anti-B0");
1882
1883   static EvtId DST0=EvtPDL::getId("D*0");
1884   static EvtId DSTB=EvtPDL::getId("anti-D*0");
1885   static EvtId DSTP=EvtPDL::getId("D*+");
1886   static EvtId DSTM=EvtPDL::getId("D*-");
1887   static EvtId D0=EvtPDL::getId("D0");
1888   static EvtId D0B=EvtPDL::getId("anti-D0");
1889   static EvtId DP=EvtPDL::getId("D+");
1890   static EvtId DM=EvtPDL::getId("D-");
1891
1892   static EvtId D1P1P=EvtPDL::getId("D_1+");
1893   static EvtId D1P1N=EvtPDL::getId("D_1-");
1894   static EvtId D1P10=EvtPDL::getId("D_10");
1895   static EvtId D1P1B=EvtPDL::getId("anti-D_10");
1896
1897   static EvtId D3P2P=EvtPDL::getId("D_2*+");
1898   static EvtId D3P2N=EvtPDL::getId("D_2*-");
1899   static EvtId D3P20=EvtPDL::getId("D_2*0");
1900   static EvtId D3P2B=EvtPDL::getId("anti-D_2*0");
1901
1902   static EvtId D3P1P=EvtPDL::getId("D'_1+");
1903   static EvtId D3P1N=EvtPDL::getId("D'_1-");
1904   static EvtId D3P10=EvtPDL::getId("D'_10");
1905   static EvtId D3P1B=EvtPDL::getId("anti-D'_10");
1906
1907   static EvtId D3P0P=EvtPDL::getId("D_0*+");
1908   static EvtId D3P0N=EvtPDL::getId("D_0*-");
1909   static EvtId D3P00=EvtPDL::getId("D_0*0");
1910   static EvtId D3P0B=EvtPDL::getId("anti-D_0*0");
1911
1912   static EvtId D21S0P=EvtPDL::getId("hi");
1913   static EvtId D21S0N=EvtPDL::getId("hi");
1914   static EvtId D21S00=EvtPDL::getId("hi");
1915   static EvtId D21S0B=EvtPDL::getId("hi");
1916
1917   static EvtId D23S1P=EvtPDL::getId("hi");
1918   static EvtId D23S1N=EvtPDL::getId("hi");
1919   static EvtId D23S10=EvtPDL::getId("hi");
1920   static EvtId D23S1B=EvtPDL::getId("hi");
1921
1922   static EvtId RHO2S0=EvtPDL::getId("rho(2S)0");
1923   static EvtId RHO2SP=EvtPDL::getId("rho(2S)+");
1924   static EvtId RHO2SM=EvtPDL::getId("rho(2S)-");
1925   static EvtId OMEG2S=EvtPDL::getId("omega(2S)");
1926   static EvtId ETA2S=EvtPDL::getId("eta(2S)");
1927
1928   static EvtId PI2S0=EvtPDL::getId("pi(2S)0");
1929   static EvtId PI2SP=EvtPDL::getId("pi(2S)+");
1930   static EvtId PI2SM=EvtPDL::getId("pi(2S)-");
1931
1932   static EvtId PIP=EvtPDL::getId("pi+");
1933   static EvtId PIM=EvtPDL::getId("pi-");
1934   static EvtId PI0=EvtPDL::getId("pi0");
1935
1936   static EvtId RHOP=EvtPDL::getId("rho+");
1937   static EvtId RHOM=EvtPDL::getId("rho-");
1938   static EvtId RHO0=EvtPDL::getId("rho0");
1939
1940   static EvtId A2P=EvtPDL::getId("a_2+");
1941   static EvtId A2M=EvtPDL::getId("a_2-");
1942   static EvtId A20=EvtPDL::getId("a_20");
1943
1944   static EvtId A1P=EvtPDL::getId("a_1+");
1945   static EvtId A1M=EvtPDL::getId("a_1-");
1946   static EvtId A10=EvtPDL::getId("a_10");
1947
1948   static EvtId A0P=EvtPDL::getId("a_0+");
1949   static EvtId A0M=EvtPDL::getId("a_0-");
1950   static EvtId A00=EvtPDL::getId("a_00");
1951
1952   static EvtId B1P=EvtPDL::getId("b_1+");
1953   static EvtId B1M=EvtPDL::getId("b_1-");
1954   static EvtId B10=EvtPDL::getId("b_10");
1955
1956   static EvtId H1=EvtPDL::getId("h_1");
1957   static EvtId H1PR=EvtPDL::getId("h'_1");
1958
1959   static EvtId F1=EvtPDL::getId("f_1");
1960   static EvtId F1PR=EvtPDL::getId("f'_1");
1961   static EvtId F0=EvtPDL::getId("f_0");
1962   static EvtId F0PR=EvtPDL::getId("f'_0");
1963   static EvtId F2=EvtPDL::getId("f_2");
1964   static EvtId F2PR=EvtPDL::getId("f'_2");
1965
1966   static EvtId ETA=EvtPDL::getId("eta");
1967   static EvtId ETAPR=EvtPDL::getId("eta'");
1968   static EvtId OMEG=EvtPDL::getId("omega");
1969
1970   static EvtId KP=EvtPDL::getId("K+");
1971   static EvtId KM=EvtPDL::getId("K-");
1972   static EvtId K0=EvtPDL::getId("K0");
1973   static EvtId KB=EvtPDL::getId("anti-K0");
1974   static EvtId K0S=EvtPDL::getId("K_S0");
1975   static EvtId K0L=EvtPDL::getId("K_L0");
1976
1977   static EvtId KSTP=EvtPDL::getId("K*+");
1978   static EvtId KSTM=EvtPDL::getId("K*-");
1979   static EvtId KST0=EvtPDL::getId("K*0");
1980   static EvtId KSTB=EvtPDL::getId("anti-K*0");
1981
1982   static EvtId K1P=EvtPDL::getId("K_1+");
1983   static EvtId K1M=EvtPDL::getId("K_1-");
1984   static EvtId K10=EvtPDL::getId("K_10");
1985   static EvtId K1B=EvtPDL::getId("anti-K_10");
1986
1987   static EvtId K1STP=EvtPDL::getId("K'_1+");
1988   static EvtId K1STM=EvtPDL::getId("K'_1-");
1989   static EvtId K1ST0=EvtPDL::getId("K'_10");
1990   static EvtId K1STB=EvtPDL::getId("anti-K'_10");
1991
1992   static EvtId K2STP=EvtPDL::getId("K_2*+");
1993   static EvtId K2STM=EvtPDL::getId("K_2*-");
1994   static EvtId K2ST0=EvtPDL::getId("K_2*0");
1995   static EvtId K2STB=EvtPDL::getId("anti-K_2*0");
1996
1997   static EvtId K0STP=EvtPDL::getId("K_0*+");
1998   static EvtId K0STM=EvtPDL::getId("K_0*-");
1999   static EvtId K0ST0=EvtPDL::getId("K_0*0");
2000   static EvtId K0STB=EvtPDL::getId("anti-K_0*0");
2001
2002   static EvtId PHI=EvtPDL::getId("phi");
2003   static EvtId DSP=EvtPDL::getId("D_s+");
2004   static EvtId DSM=EvtPDL::getId("D_s-");
2005
2006   static EvtId D1P1SP=EvtPDL::getId("D_s1+");
2007   static EvtId D1P1SN=EvtPDL::getId("D_s1-");
2008
2009   static EvtId D3P0SP=EvtPDL::getId("D_s0*+");
2010   static EvtId D3P0SN=EvtPDL::getId("D_s0*-");
2011
2012   static EvtId D3P1SP=EvtPDL::getId("D'_s1*+");
2013   static EvtId D3P1SN=EvtPDL::getId("D'_s1*-");
2014
2015   static EvtId D3P2SP=EvtPDL::getId("D_s2*+");
2016   static EvtId D3P2SN=EvtPDL::getId("D_s2*-");
2017
2018   static EvtId DSSTP=EvtPDL::getId("D_s*+");
2019   static EvtId DSSTM=EvtPDL::getId("D_s*-");
2020
2021   static EvtId BSB=EvtPDL::getId("anti-B_s0");
2022   static EvtId BS0=EvtPDL::getId("B_s0");
2023
2024   double mtb;
2025   double msd(0.0), mx(0.0), mb(0.0); 
2026   double msq(0.0), bx2(0.0),mtx,f5;
2027   double mup,mum,kap;
2028   double msb(0.0),bb2(0.0),bbx2,tm;
2029
2030   if (parent==BM||parent==BP||parent==B0||parent==B0B) {
2031
2032     msb=5.2;
2033     msd=0.33;
2034     bb2=0.41*0.41;
2035     if (daugt==H1||daugt==H1PR||daugt==B10||daugt==B1P||daugt==B1M) {
2036       msq=0.33;
2037       bx2=0.27*0.27;
2038     }
2039     else{
2040       if (daugt==D1P1P||daugt==D1P1N||daugt==D1P10||daugt==D1P1B) {
2041         msq=1.82;
2042         bx2=0.34*0.34;
2043       }
2044       else{
2045         report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3P1.\n";
2046       }
2047     }
2048   }
2049   else{
2050     report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_3P1.\n";
2051   }
2052   
2053   mtb = msb + msd;
2054   mtx = msq + msd;
2055
2056   mb = EvtPDL::getMeanMass( parent );
2057   mx = mass;
2058
2059   mup=1.0/(1.0/msq+1.0/msb);
2060   mum=1.0/(1.0/msq-1.0/msb);
2061   bbx2=0.5*(bb2+bx2);
2062   tm=(mb-mx)*(mb-mx);
2063   if (t>tm) t = 0.99*tm;
2064
2065   kap = 0.7*0.7;
2066   f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0)*
2067        exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2))));
2068
2069   *vf = f5*(((mtb*sqrt(bb2))/(4.0*sqrt(2.0)*msb*msq*mtx))); 
2070   *rf = f5*mtb*sqrt(bb2/2)*((1.0/mup));
2071
2072   *spf = (f5*msd/(sqrt(2.0*bb2)*mtb))*(1.0+(msb/(2.0*mum))-
2073          (msb*msq*msd*bb2/(4.0*mup*mum*mtx*bbx2)));
2074   *smf = 0.0;
2075
2076   return;
2077 //get_ff_isgw_1p1
2078
2079 }
2080
2081 void EvtISGWFF::EvtISGW1FF21S0 (EvtId parent,EvtId daugt,
2082        double t, double mass, double *fppf, double *fpmf ) {
2083   //added by Lange Jan4,2000
2084   static EvtId EM=EvtPDL::getId("e-");
2085   static EvtId EP=EvtPDL::getId("e+");
2086   static EvtId MUM=EvtPDL::getId("mu-");
2087   static EvtId MUP=EvtPDL::getId("mu+");
2088   static EvtId TAUM=EvtPDL::getId("tau-");
2089   static EvtId TAUP=EvtPDL::getId("tau+");
2090
2091   static EvtId BP=EvtPDL::getId("B+");
2092   static EvtId BM=EvtPDL::getId("B-");
2093   static EvtId B0=EvtPDL::getId("B0");
2094   static EvtId B0B=EvtPDL::getId("anti-B0");
2095
2096   static EvtId DST0=EvtPDL::getId("D*0");
2097   static EvtId DSTB=EvtPDL::getId("anti-D*0");
2098   static EvtId DSTP=EvtPDL::getId("D*+");
2099   static EvtId DSTM=EvtPDL::getId("D*-");
2100   static EvtId D0=EvtPDL::getId("D0");
2101   static EvtId D0B=EvtPDL::getId("anti-D0");
2102   static EvtId DP=EvtPDL::getId("D+");
2103   static EvtId DM=EvtPDL::getId("D-");
2104
2105   static EvtId D1P1P=EvtPDL::getId("D_1+");
2106   static EvtId D1P1N=EvtPDL::getId("D_1-");
2107   static EvtId D1P10=EvtPDL::getId("D_10");
2108   static EvtId D1P1B=EvtPDL::getId("anti-D_10");
2109
2110   static EvtId D3P2P=EvtPDL::getId("D_2*+");
2111   static EvtId D3P2N=EvtPDL::getId("D_2*-");
2112   static EvtId D3P20=EvtPDL::getId("D_2*0");
2113   static EvtId D3P2B=EvtPDL::getId("anti-D_2*0");
2114
2115   static EvtId D3P1P=EvtPDL::getId("D'_1+");
2116   static EvtId D3P1N=EvtPDL::getId("D'_1-");
2117   static EvtId D3P10=EvtPDL::getId("D'_10");
2118   static EvtId D3P1B=EvtPDL::getId("anti-D'_10");
2119
2120   static EvtId D3P0P=EvtPDL::getId("D_0*+");
2121   static EvtId D3P0N=EvtPDL::getId("D_0*-");
2122   static EvtId D3P00=EvtPDL::getId("D_0*0");
2123   static EvtId D3P0B=EvtPDL::getId("anti-D_0*0");
2124
2125   static EvtId D21S0P=EvtPDL::getId("hi");
2126   static EvtId D21S0N=EvtPDL::getId("hi");
2127   static EvtId D21S00=EvtPDL::getId("hi");
2128   static EvtId D21S0B=EvtPDL::getId("hi");
2129
2130   static EvtId D23S1P=EvtPDL::getId("hi");
2131   static EvtId D23S1N=EvtPDL::getId("hi");
2132   static EvtId D23S10=EvtPDL::getId("hi");
2133   static EvtId D23S1B=EvtPDL::getId("hi");
2134
2135   static EvtId RHO2S0=EvtPDL::getId("rho(2S)0");
2136   static EvtId RHO2SP=EvtPDL::getId("rho(2S)+");
2137   static EvtId RHO2SM=EvtPDL::getId("rho(2S)-");
2138   static EvtId OMEG2S=EvtPDL::getId("omega(2S)");
2139   static EvtId ETA2S=EvtPDL::getId("eta(2S)");
2140
2141   static EvtId PI2S0=EvtPDL::getId("pi(2S)0");
2142   static EvtId PI2SP=EvtPDL::getId("pi(2S)+");
2143   static EvtId PI2SM=EvtPDL::getId("pi(2S)-");
2144
2145   static EvtId PIP=EvtPDL::getId("pi+");
2146   static EvtId PIM=EvtPDL::getId("pi-");
2147   static EvtId PI0=EvtPDL::getId("pi0");
2148
2149   static EvtId RHOP=EvtPDL::getId("rho+");
2150   static EvtId RHOM=EvtPDL::getId("rho-");
2151   static EvtId RHO0=EvtPDL::getId("rho0");
2152
2153   static EvtId A2P=EvtPDL::getId("a_2+");
2154   static EvtId A2M=EvtPDL::getId("a_2-");
2155   static EvtId A20=EvtPDL::getId("a_20");
2156
2157   static EvtId A1P=EvtPDL::getId("a_1+");
2158   static EvtId A1M=EvtPDL::getId("a_1-");
2159   static EvtId A10=EvtPDL::getId("a_10");
2160
2161   static EvtId A0P=EvtPDL::getId("a_0+");
2162   static EvtId A0M=EvtPDL::getId("a_0-");
2163   static EvtId A00=EvtPDL::getId("a_00");
2164
2165   static EvtId B1P=EvtPDL::getId("b_1+");
2166   static EvtId B1M=EvtPDL::getId("b_1-");
2167   static EvtId B10=EvtPDL::getId("b_10");
2168
2169   static EvtId H1=EvtPDL::getId("h_1");
2170   static EvtId H1PR=EvtPDL::getId("h'_1");
2171
2172   static EvtId F1=EvtPDL::getId("f_1");
2173   static EvtId F1PR=EvtPDL::getId("f'_1");
2174   static EvtId F0=EvtPDL::getId("f_0");
2175   static EvtId F0PR=EvtPDL::getId("f'_0");
2176   static EvtId F2=EvtPDL::getId("f_2");
2177   static EvtId F2PR=EvtPDL::getId("f'_2");
2178
2179   static EvtId ETA=EvtPDL::getId("eta");
2180   static EvtId ETAPR=EvtPDL::getId("eta'");
2181   static EvtId OMEG=EvtPDL::getId("omega");
2182
2183   static EvtId KP=EvtPDL::getId("K+");
2184   static EvtId KM=EvtPDL::getId("K-");
2185   static EvtId K0=EvtPDL::getId("K0");
2186   static EvtId KB=EvtPDL::getId("anti-K0");
2187   static EvtId K0S=EvtPDL::getId("K_S0");
2188   static EvtId K0L=EvtPDL::getId("K_L0");
2189
2190   static EvtId KSTP=EvtPDL::getId("K*+");
2191   static EvtId KSTM=EvtPDL::getId("K*-");
2192   static EvtId KST0=EvtPDL::getId("K*0");
2193   static EvtId KSTB=EvtPDL::getId("anti-K*0");
2194
2195   static EvtId K1P=EvtPDL::getId("K_1+");
2196   static EvtId K1M=EvtPDL::getId("K_1-");
2197   static EvtId K10=EvtPDL::getId("K_10");
2198   static EvtId K1B=EvtPDL::getId("anti-K_10");
2199
2200   static EvtId K1STP=EvtPDL::getId("K'_1+");
2201   static EvtId K1STM=EvtPDL::getId("K'_1-");
2202   static EvtId K1ST0=EvtPDL::getId("K'_10");
2203   static EvtId K1STB=EvtPDL::getId("anti-K'_10");
2204
2205   static EvtId K2STP=EvtPDL::getId("K_2*+");
2206   static EvtId K2STM=EvtPDL::getId("K_2*-");
2207   static EvtId K2ST0=EvtPDL::getId("K_2*0");
2208   static EvtId K2STB=EvtPDL::getId("anti-K_2*0");
2209
2210   static EvtId K0STP=EvtPDL::getId("K_0*+");
2211   static EvtId K0STM=EvtPDL::getId("K_0*-");
2212   static EvtId K0ST0=EvtPDL::getId("K_0*0");
2213   static EvtId K0STB=EvtPDL::getId("anti-K_0*0");
2214
2215   static EvtId PHI=EvtPDL::getId("phi");
2216   static EvtId DSP=EvtPDL::getId("D_s+");
2217   static EvtId DSM=EvtPDL::getId("D_s-");
2218
2219   static EvtId D1P1SP=EvtPDL::getId("D_s1+");
2220   static EvtId D1P1SN=EvtPDL::getId("D_s1-");
2221
2222   static EvtId D3P0SP=EvtPDL::getId("D_s0*+");
2223   static EvtId D3P0SN=EvtPDL::getId("D_s0*-");
2224
2225   static EvtId D3P1SP=EvtPDL::getId("D'_s1*+");
2226   static EvtId D3P1SN=EvtPDL::getId("D'_s1*-");
2227
2228   static EvtId D3P2SP=EvtPDL::getId("D_s2*+");
2229   static EvtId D3P2SN=EvtPDL::getId("D_s2*-");
2230
2231   static EvtId DSSTP=EvtPDL::getId("D_s*+");
2232   static EvtId DSSTM=EvtPDL::getId("D_s*-");
2233
2234   static EvtId BSB=EvtPDL::getId("anti-B_s0");
2235   static EvtId BS0=EvtPDL::getId("B_s0");
2236
2237   double mtb;
2238   double msd(0.0), mx(0.0), mb(0.0); 
2239   double msq(0.0), bx2(0.0),mtx;
2240   double f3;
2241   double msb(0.0);
2242   double mum,mup,tm,bb2(0.0),bbx2;
2243   
2244   if (parent==BM||parent==BP||parent==B0||parent==B0B) {
2245     msb=5.2;
2246     msd=0.33;
2247     bb2=0.41*0.41;
2248     if (daugt==PI2S0||daugt==PI2SP||daugt==PI2SM||daugt==ETA2S){
2249       msq=0.33;
2250       bx2=0.31*0.31;
2251     }
2252     else{
2253       if (daugt==D21S00||daugt==D21S0P||daugt==D21S0N||daugt==D21S0B) {
2254         msq=1.82;
2255         bx2=0.39*0.39;
2256       }
2257       else{  
2258         report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw1_ff_21S0.\n";
2259       }
2260     }
2261   }
2262   else{
2263     report(ERROR,"EvtGen") << "Not implemented parent in get_isgw1_ff_21S0.\n";
2264   }
2265
2266   mtb = msb + msd;
2267   mtx = msq + msd;
2268   
2269   mb = EvtPDL::getMeanMass( parent );
2270   mx = mass;
2271   
2272   mup=1.0/(1.0/msq+1.0/msb);
2273   mum=1.0/(1.0/msq-1.0/msb);
2274   bbx2=0.5*(bb2+bx2);
2275   tm=(mb-mx)*(mb-mx);
2276   if (t>tm) t = 0.99*tm;
2277
2278   double kap = 0.7*0.7;
2279   f3 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,3.0/2.0)*
2280        exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2))));
2281   
2282   *fppf = f3*sqrt(3.0/8.0)*(msb/mup)*( ((bb2-bx2)/(bb2+bx2)) +
2283           (((msq*msd*bb2)/(3.0*mum*mtx*bbx2))*((7.0*bx2-3.0*bb2)/
2284           (4.0*bbx2))) + 
2285           (((msd*msd*bx2*(tm-t))/(6.0*mtx*mtb*bbx2*kap*bbx2))*
2286           (1.0 - ((msq*msd*bb2)/(2.0*mum*mtx*bbx2)))));
2287
2288   *fpmf = 0.0;
2289   return;
2290 } //get_ff_isgw_21s0
2291
2292
2293 void EvtISGWFF::getbaryonff(EvtId, EvtId, double, double, double*, 
2294                                double*, double*, double*){
2295   
2296   report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtISGWFF.\n";  
2297   ::abort();
2298
2299 }
2300