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