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