]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TEvtGen/EvtGenModels/EvtISGW2.cpp
Updates EvtGen Code
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenModels / EvtISGW2.cpp
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: EvtISGW2.cc
12 //
13 // Description: Routine to implement semileptonic decays according
14 //              to the model ISGW2
15 //
16 // Modification history:
17 //
18 //    DJL/RYD     September 25, 1996         Module created
19 //
20 //------------------------------------------------------------------------
21 // 
22 #include "EvtGenBase/EvtPatches.hh"
23 #include <stdlib.h>
24 #include "EvtGenBase/EvtParticle.hh"
25 #include "EvtGenBase/EvtGenKine.hh"
26 #include "EvtGenBase/EvtPDL.hh"
27 #include "EvtGenBase/EvtReport.hh"
28 #include "EvtGenModels/EvtISGW2.hh"
29 #include "EvtGenBase/EvtConst.hh"
30 #include "EvtGenBase/EvtIdSet.hh"
31 #include <string>
32 #include "EvtGenModels/EvtISGW2FF.hh"
33 #include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh"
34 #include "EvtGenBase/EvtSemiLeptonicVectorAmp.hh"
35 #include "EvtGenBase/EvtSemiLeptonicTensorAmp.hh"
36
37 EvtISGW2::EvtISGW2():
38    isgw2ffmodel(0)
39   ,calcamp(0)
40 {}
41
42
43 EvtISGW2::~EvtISGW2() {
44   delete isgw2ffmodel;
45   isgw2ffmodel=0;
46   delete calcamp;
47   calcamp=0;
48 }
49
50 std::string EvtISGW2::getName(){
51
52   return "ISGW2";     
53
54 }
55
56
57
58 EvtDecayBase* EvtISGW2::clone(){
59
60   return new EvtISGW2;
61
62 }
63
64 void EvtISGW2::decay( EvtParticle *p ){
65
66   p->initializePhaseSpace(getNDaug(),getDaugs());
67
68   calcamp->CalcAmp(p,_amp2,isgw2ffmodel);
69
70 }
71
72 void EvtISGW2::initProbMax() {
73
74   //added by Lange Jan4,2000
75   static EvtId EM=EvtPDL::getId("e-");
76   static EvtId EP=EvtPDL::getId("e+");
77   static EvtId MUM=EvtPDL::getId("mu-");
78   static EvtId MUP=EvtPDL::getId("mu+");
79   static EvtId TAUM=EvtPDL::getId("tau-");
80   static EvtId TAUP=EvtPDL::getId("tau+");
81
82   static EvtId BP=EvtPDL::getId("B+");
83   static EvtId BM=EvtPDL::getId("B-");
84   static EvtId B0=EvtPDL::getId("B0");
85   static EvtId B0B=EvtPDL::getId("anti-B0");
86   static EvtId BS0=EvtPDL::getId("B_s0");
87   static EvtId BSB=EvtPDL::getId("anti-B_s0");
88   static EvtId BCP=EvtPDL::getId("B_c+");
89   static EvtId BCM=EvtPDL::getId("B_c-");
90
91   static EvtId DST0=EvtPDL::getId("D*0");
92   static EvtId DSTB=EvtPDL::getId("anti-D*0");
93   static EvtId DSTP=EvtPDL::getId("D*+");
94   static EvtId DSTM=EvtPDL::getId("D*-");
95   static EvtId D0=EvtPDL::getId("D0");
96   static EvtId D0B=EvtPDL::getId("anti-D0");
97   static EvtId DP=EvtPDL::getId("D+");
98   static EvtId DM=EvtPDL::getId("D-");
99
100   static EvtId D1P1P=EvtPDL::getId("D_1+");
101   static EvtId D1P1N=EvtPDL::getId("D_1-");
102   static EvtId D1P10=EvtPDL::getId("D_10");
103   static EvtId D1P1B=EvtPDL::getId("anti-D_10");
104
105   static EvtId D3P2P=EvtPDL::getId("D_2*+");
106   static EvtId D3P2N=EvtPDL::getId("D_2*-");
107   static EvtId D3P20=EvtPDL::getId("D_2*0");
108   static EvtId D3P2B=EvtPDL::getId("anti-D_2*0");
109
110   static EvtId D3P1P=EvtPDL::getId("D'_1+");
111   static EvtId D3P1N=EvtPDL::getId("D'_1-");
112   static EvtId D3P10=EvtPDL::getId("D'_10");
113   static EvtId D3P1B=EvtPDL::getId("anti-D'_10");
114
115   static EvtId D3P0P=EvtPDL::getId("D_0*+");
116   static EvtId D3P0N=EvtPDL::getId("D_0*-");
117   static EvtId D3P00=EvtPDL::getId("D_0*0");
118   static EvtId D3P0B=EvtPDL::getId("anti-D_0*0");
119
120   static EvtId D21S0P=EvtPDL::getId("D(2S)+");
121   static EvtId D21S0N=EvtPDL::getId("D(2S)-");
122   static EvtId D21S00=EvtPDL::getId("D(2S)0");
123   static EvtId D21S0B=EvtPDL::getId("anti-D(2S)0");
124
125   static EvtId D23S1P=EvtPDL::getId("D*(2S)+");
126   static EvtId D23S1N=EvtPDL::getId("D*(2S)-");
127   static EvtId D23S10=EvtPDL::getId("D*(2S)0");
128   static EvtId D23S1B=EvtPDL::getId("anti-D*(2S)0");
129
130   static EvtId RHO2S0=EvtPDL::getId("rho(2S)0");
131   static EvtId RHO2SP=EvtPDL::getId("rho(2S)+");
132   static EvtId RHO2SM=EvtPDL::getId("rho(2S)-");
133   static EvtId OMEG2S=EvtPDL::getId("omega(2S)");
134   static EvtId ETA2S=EvtPDL::getId("eta(2S)");
135
136   static EvtId PI2S0=EvtPDL::getId("pi(2S)0");
137   static EvtId PI2SP=EvtPDL::getId("pi(2S)+");
138   static EvtId PI2SM=EvtPDL::getId("pi(2S)-");
139
140   static EvtId PIP=EvtPDL::getId("pi+");
141   static EvtId PIM=EvtPDL::getId("pi-");
142   static EvtId PI0=EvtPDL::getId("pi0");
143
144   static EvtId RHOP=EvtPDL::getId("rho+");
145   static EvtId RHOM=EvtPDL::getId("rho-");
146   static EvtId RHO0=EvtPDL::getId("rho0");
147
148   static EvtId A2P=EvtPDL::getId("a_2+");
149   static EvtId A2M=EvtPDL::getId("a_2-");
150   static EvtId A20=EvtPDL::getId("a_20");
151
152   static EvtId A1P=EvtPDL::getId("a_1+");
153   static EvtId A1M=EvtPDL::getId("a_1-");
154   static EvtId A10=EvtPDL::getId("a_10");
155
156   static EvtId A0P=EvtPDL::getId("a_0+");
157   static EvtId A0M=EvtPDL::getId("a_0-");
158   static EvtId A00=EvtPDL::getId("a_00");
159
160   static EvtId B1P=EvtPDL::getId("b_1+");
161   static EvtId B1M=EvtPDL::getId("b_1-");
162   static EvtId B10=EvtPDL::getId("b_10");
163
164   static EvtId H1=EvtPDL::getId("h_1");
165   static EvtId H1PR=EvtPDL::getId("h'_1");
166
167   static EvtId F1=EvtPDL::getId("f_1");
168   static EvtId F1PR=EvtPDL::getId("f'_1");
169   static EvtId F0=EvtPDL::getId("f_0");
170   static EvtId F0PR=EvtPDL::getId("f'_0");
171   static EvtId F2=EvtPDL::getId("f_2");
172   static EvtId F2PR=EvtPDL::getId("f'_2");
173
174   static EvtId ETA=EvtPDL::getId("eta");
175   static EvtId ETAPR=EvtPDL::getId("eta'");
176   static EvtId OMEG=EvtPDL::getId("omega");
177
178   static EvtId KP=EvtPDL::getId("K+");
179   static EvtId KM=EvtPDL::getId("K-");
180   static EvtId K0=EvtPDL::getId("K0");
181   static EvtId KB=EvtPDL::getId("anti-K0");
182   static EvtId K0S=EvtPDL::getId("K_S0");
183   static EvtId K0L=EvtPDL::getId("K_L0");
184
185   static EvtId KSTP=EvtPDL::getId("K*+");
186   static EvtId KSTM=EvtPDL::getId("K*-");
187   static EvtId KST0=EvtPDL::getId("K*0");
188   static EvtId KSTB=EvtPDL::getId("anti-K*0");
189
190   static EvtId K1P=EvtPDL::getId("K_1+");
191   static EvtId K1M=EvtPDL::getId("K_1-");
192   static EvtId K10=EvtPDL::getId("K_10");
193   static EvtId K1B=EvtPDL::getId("anti-K_10");
194
195   static EvtId K1STP=EvtPDL::getId("K'_1+");
196   static EvtId K1STM=EvtPDL::getId("K'_1-");
197   static EvtId K1ST0=EvtPDL::getId("K'_10");
198   static EvtId K1STB=EvtPDL::getId("anti-K'_10");
199
200   static EvtId K2STP=EvtPDL::getId("K_2*+");
201   static EvtId K2STM=EvtPDL::getId("K_2*-");
202   static EvtId K2ST0=EvtPDL::getId("K_2*0");
203   static EvtId K2STB=EvtPDL::getId("anti-K_2*0");
204
205   static EvtId PHI=EvtPDL::getId("phi");
206   static EvtId DSP=EvtPDL::getId("D_s+");
207   static EvtId DSM=EvtPDL::getId("D_s-");
208
209   static EvtId DSSTP=EvtPDL::getId("D_s*+");
210   static EvtId DSSTM=EvtPDL::getId("D_s*-");
211   static EvtId DS1P=EvtPDL::getId("D_s1+");
212   static EvtId DS1M=EvtPDL::getId("D_s1-");
213   static EvtId DS0STP=EvtPDL::getId("D_s0*+");
214   static EvtId DS0STM=EvtPDL::getId("D_s0*-");
215   static EvtId DPS1P=EvtPDL::getId("D'_s1+");
216   static EvtId DPS1M=EvtPDL::getId("D'_s1-");
217   static EvtId DS2STP=EvtPDL::getId("D_s2*+");
218   static EvtId DS2STM=EvtPDL::getId("D_s2*-");
219
220
221 EvtId parnum,mesnum,lnum;
222
223 parnum = getParentId();
224 mesnum = getDaug(0);
225 lnum = getDaug(1);
226
227
228 if ( parnum==BP||parnum==BM||parnum==B0||parnum==B0B||parnum==BS0||parnum==BSB ) {
229
230   if ( mesnum==DST0||mesnum==DSTP||mesnum==DSTB||mesnum==DSTM||mesnum==DSSTP||mesnum==DSSTM) {
231
232     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
233        setProbMax(10000.0);
234        return;
235     }
236     if ( lnum==TAUP||lnum==TAUM ) {
237        setProbMax(7000.0);
238        return;
239     }
240   }
241
242
243   if ( mesnum==D0||mesnum==DP||mesnum==D0B||mesnum==DM||mesnum==DSP||mesnum==DSM) {
244
245     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
246        setProbMax(4000.0);
247        return;
248     }
249     if ( lnum==TAUP||lnum==TAUM ) {
250        setProbMax(3500.0);
251        return;
252     }
253   }
254
255
256   if ( mesnum==D1P1P||mesnum==D1P1N||mesnum==D1P10||mesnum==D1P1B||mesnum==DS1P||mesnum==DS1M) {
257
258     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
259        setProbMax(1300.0);
260        return;
261     }
262     if ( lnum==TAUP||lnum==TAUM ) {
263        setProbMax(480.0);
264        return;
265     }
266   }
267
268   if ( mesnum==D3P1P||mesnum==D3P1N||mesnum==D3P10||mesnum==D3P1B||mesnum==DS0STP||mesnum==DS0STM) {
269
270     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
271        setProbMax(450.0);
272        return;
273     }
274     if ( lnum==TAUP||lnum==TAUM ) {
275       setProbMax(73.0);//???
276        return;
277     }
278   }
279
280   if ( mesnum==D3P0P||mesnum==D3P0N||mesnum==D3P00||mesnum==D3P0B||mesnum==DPS1P||mesnum==DPS1M) {
281
282     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
283        setProbMax(200.0);
284        return;
285     }
286     if ( lnum==TAUP||lnum==TAUM ) {
287        setProbMax(90.0);
288        return;
289     }
290   }
291   if ( mesnum==D3P2P||mesnum==D3P2N||mesnum==D3P20||mesnum==D3P2B||mesnum==DS2STP||mesnum==DS2STM) {
292
293     if ( mesnum==DS2STP|| mesnum==DS2STM) {
294       setProbMax(550.0);
295       return;
296     }
297     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
298        setProbMax(400.0);
299        return;
300     }
301     if ( lnum==TAUP||lnum==TAUM ) {
302        setProbMax(220.0);
303        return;
304     }
305   }
306
307   if ( mesnum==D21S0P||mesnum==D21S0N||mesnum==D21S00||mesnum==D21S0B) {
308
309     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
310        setProbMax(16.0);
311        return;
312     }
313     if ( lnum==TAUP||lnum==TAUM ) {
314        setProbMax(3.0);
315        return;
316     }
317   }
318
319   if ( mesnum==D23S1P||mesnum==D23S1N||mesnum==D23S10||mesnum==D23S1B) {
320
321     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
322        setProbMax(500.0);
323        return;
324     }
325     if ( lnum==TAUP||lnum==TAUM ) {
326        setProbMax(250.0);
327        return;
328     }
329   }
330
331   if ( mesnum==RHOP||mesnum==RHOM||mesnum==RHO0) {
332
333     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
334        setProbMax(6500.0);
335        return;
336     }
337     if ( lnum==TAUP||lnum==TAUM ) {
338        setProbMax(6000.0);
339        return;
340     }
341   }
342
343   if ( mesnum==OMEG) {
344
345     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
346        setProbMax(6800.0);
347        return;
348     }
349     if ( lnum==TAUP||lnum==TAUM ) {
350        setProbMax(6000.0);
351        return;
352     }
353   }
354
355   if ( mesnum==PIP||mesnum==PIM||mesnum==PI0) {
356
357     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
358        setProbMax(1200.0);
359        return;
360     }
361     if ( lnum==TAUP||lnum==TAUM ) {
362        setProbMax(1150.0);
363        return;
364     }
365   }
366
367   if ( mesnum==ETA) {
368
369     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
370        setProbMax(1800.0);
371        return;
372     }
373     if ( lnum==TAUP||lnum==TAUM ) {
374        setProbMax(1900.0);
375        return;
376     }
377   }
378
379   if ( mesnum==ETAPR) {
380
381     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
382        setProbMax(3000.0);
383        return;
384     } 
385     if ( lnum==TAUP||lnum==TAUM ) {
386        setProbMax(3000.0);
387        return;
388     }
389   }
390
391
392   if ( mesnum==B1P||mesnum==B1M||mesnum==B10) {
393
394     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
395        setProbMax(2500.0);
396        return;
397     }
398     if ( lnum==TAUP||lnum==TAUM ) {
399        setProbMax(1700.0);
400        return;
401     }
402   }
403
404   if ( mesnum==A0P||mesnum==A0M||mesnum==A00) {
405
406     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
407        setProbMax(80.0);
408        return;
409     }
410     if ( lnum==TAUP||lnum==TAUM ) {
411        setProbMax(62.0);
412        return;
413     }
414   }
415
416   if ( mesnum==A1P||mesnum==A1M||mesnum==A10) {
417
418     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
419        setProbMax(4500.0);
420        return;
421     }
422     if ( lnum==TAUP||lnum==TAUM ) {
423        setProbMax(3500.0);
424        return;
425     }
426   }
427
428   if ( mesnum==A2P||mesnum==A2M||mesnum==A20) {
429
430     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
431        setProbMax(1200.0);
432        return;
433     }
434     if ( lnum==TAUP||lnum==TAUM ) {
435        setProbMax(1000.0);
436        return;
437     }
438   }
439
440   if ( mesnum==H1) {
441
442     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
443        setProbMax(2600.0);
444        return;
445     }
446     if ( lnum==TAUP||lnum==TAUM ) {
447        setProbMax(2900.0);
448        return;
449     }
450   }
451
452   if ( mesnum==H1PR) {
453
454     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
455        setProbMax(1400.0);
456        return;
457     }
458     if ( lnum==TAUP||lnum==TAUM ) {
459        setProbMax(1500.0);
460        return;
461     }
462   }
463
464   if ( mesnum==F2) {
465
466     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
467        setProbMax(1100.0);
468        return;
469     }
470     if ( lnum==TAUP||lnum==TAUM ) {
471        setProbMax(1100.0);
472        return;
473     }
474   }
475
476   if ( mesnum==F2PR) {
477
478     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
479        setProbMax(804.0);
480        return;
481     }
482     if ( lnum==TAUP||lnum==TAUM ) {
483        setProbMax(600.0);
484        return;
485     }
486   }
487
488   if ( mesnum==F1) {
489
490     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
491        setProbMax(2500.0);
492        return;
493     }
494     if ( lnum==TAUP||lnum==TAUM ) {
495        setProbMax(2000.0) ;
496        return;
497     }
498   }
499
500   if ( mesnum==F1PR) {
501
502     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
503        setProbMax(2400.0);
504        return;
505     }
506     if ( lnum==TAUP||lnum==TAUM ) {
507        setProbMax(1700.0);
508        return;
509     }
510   }
511
512   if ( mesnum==F0) {
513
514     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
515        setProbMax( 80.0);
516        return;
517     }
518     if ( lnum==TAUP||lnum==TAUM ) {
519        setProbMax(63.0);
520        return;
521     }
522   }
523
524   if ( mesnum==F0PR) {
525
526     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
527        setProbMax(120.0);
528        return;
529     }
530     if ( lnum==TAUP||lnum==TAUM ) {
531        setProbMax(120.0);
532        return;
533     }
534   }
535
536
537   if ( mesnum==RHO2SP||mesnum==RHO2SM||mesnum==RHO2S0) {
538
539     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
540        setProbMax( 2400.0);
541        return;
542     }
543     if ( lnum==TAUP||lnum==TAUM ) {
544        setProbMax(2000.0);
545        return;
546     }
547   }
548
549   if ( mesnum==OMEG2S) {
550
551     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
552        setProbMax(1600.0);
553        return;
554     }
555     if ( lnum==TAUP||lnum==TAUM ) {
556        setProbMax(1400.0) ;
557        return;
558     }
559   }
560
561   if ( mesnum==PI2SP||mesnum==PI2SM||mesnum==PI2S0) {
562
563     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
564        setProbMax( 500.0);
565        return;
566     }
567     if ( lnum==TAUP||lnum==TAUM ) {
568        setProbMax(300.0);
569        return;
570     }
571   }
572
573   if ( mesnum==ETA2S) {
574
575     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
576        setProbMax(344.0);
577        return;
578     }
579     if ( lnum==TAUP||lnum==TAUM ) {
580        setProbMax(300.0);
581        return;
582     }
583   }
584
585    if ( mesnum==KP||mesnum==KM||
586         mesnum==K1P||mesnum==K1M||mesnum==K1STP||mesnum==K1STM) {
587
588      if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
589         setProbMax(2000.0);
590         return;
591      }
592      if ( lnum==TAUP||lnum==TAUM ) {
593         setProbMax(1000.0);
594         return;
595      }
596    }
597
598    if ( mesnum==KSTP||mesnum==KSTM ) {
599
600      if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
601         setProbMax(10000.0);
602         return;
603      }
604      if ( lnum==TAUP||lnum==TAUM ) {
605         setProbMax(7000.0);
606         return;
607      }
608    }
609
610
611 }
612
613 if ( parnum==D0||parnum==DP||parnum==DM||parnum==D0B ) {
614
615
616   if ( mesnum==RHOP||mesnum==RHOM||mesnum==RHO0) {
617
618     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
619        setProbMax(110.0);
620        return;
621     }
622   }
623
624   if ( mesnum==OMEG) {
625
626     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
627        setProbMax(75.0);
628        return;
629     }
630   }
631
632   if ( mesnum==PIP||mesnum==PIM||mesnum==PI0) {
633
634     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
635        setProbMax(40.0);
636        return;
637     }
638   }
639
640   if ( mesnum==ETA) {
641
642     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
643        setProbMax( 65.0);
644        return;
645     }
646   }
647
648   if ( mesnum==ETAPR) {
649
650     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
651        setProbMax( 60.0);
652        return;
653     }
654   }
655
656   if ( mesnum==KP||mesnum==KM||mesnum==K0||
657        mesnum==K0S||mesnum==K0L||mesnum==KB) {
658
659     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
660        setProbMax( 70.0);
661        return;
662     }
663   }
664
665   if ( mesnum==K1STP||mesnum==K1STM||mesnum==K1ST0||mesnum==K1STB) {
666
667     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
668        setProbMax( 3.3);
669        return;
670     }
671   }
672
673   if ( mesnum==K1P||mesnum==K1M||mesnum==K10||mesnum==K1B) {
674
675     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
676        setProbMax( 100.0);
677        return;
678     }
679   }
680
681   if ( mesnum==KSTP||mesnum==KSTM||mesnum==KST0||mesnum==KSTB) {
682
683     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
684        setProbMax( 135.0);
685        return;
686     }
687   }
688
689   if ( mesnum==K2STP||mesnum==K2STM||mesnum==K2ST0||mesnum==K2STB) {
690
691     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
692       //Lange - Oct 26,2001 - increasing from 0.75 to 
693       //accomodate
694       setProbMax( 9.0);
695       // setProbMax( 0.75);
696        return;
697     }
698   }
699
700   if ( mesnum==F0) {
701     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
702        setProbMax(1.0);
703        return;
704     }
705   }
706
707
708 }
709
710 if ( parnum==DSP||parnum==DSM ) {
711
712
713   if ( mesnum==PHI ) {
714
715     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
716        setProbMax( 90.0 );
717        return;
718     }
719   }
720
721   if ( mesnum==ETA ) {
722
723     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
724        setProbMax( 75.0 );
725        return;
726     }
727   }
728
729   if ( mesnum==ETAPR ) {
730
731     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
732        setProbMax( 80.0) ;
733        return;
734     }
735   }
736
737   if ( mesnum==KST0||mesnum==KSTB ) {
738
739     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
740       setProbMax( 100.0) ;
741        return;  
742     }
743   }
744
745
746   if ( mesnum==K0 || mesnum==KB || mesnum==K0S || mesnum==K0L ) {
747
748     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
749        setProbMax( 45.0 );
750        return;
751     }
752   }
753
754   if ( mesnum==F0) {
755     if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) {
756       setProbMax(1.0);
757       return;
758     }
759   }
760
761
762 }
763
764 if ( parnum==BCP||parnum==BCM ) {
765    setProbMax(1000.0 );
766    return;
767 }
768
769
770
771 //This is a real cludge.. (ryd)
772  setProbMax(0.0);
773
774 }
775
776 void EvtISGW2::init(){
777
778   checkNArg(0);
779   checkNDaug(3);
780
781   //We expect the parent to be a scalar 
782   //and the daughters to be X lepton neutrino
783
784   checkSpinParent(EvtSpinType::SCALAR);
785   checkSpinDaughter(1,EvtSpinType::DIRAC);
786   checkSpinDaughter(2,EvtSpinType::NEUTRINO);
787
788   EvtSpinType::spintype mesontype=EvtPDL::getSpinType(getDaug(0));
789
790   isgw2ffmodel = new EvtISGW2FF;
791   
792   if ( mesontype==EvtSpinType::SCALAR ) { 
793     calcamp = new EvtSemiLeptonicScalarAmp; 
794   }
795   if ( mesontype==EvtSpinType::VECTOR ) { 
796     calcamp = new EvtSemiLeptonicVectorAmp; 
797   }
798   if ( mesontype==EvtSpinType::TENSOR ) { 
799     calcamp = new EvtSemiLeptonicTensorAmp; 
800   }
801   
802 }
803
804
805
806
807
808
809