BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtDsTopipi0pi0.cc
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2// Environment:
3// This software is part of the EvtGen package developed jointly
4// for the BaBar and CLEO collaborations. If you use all or part
5// of it, please give an appropriate acknowledgement.
6//
7// Copyright Information: See EvtGen/COPYRIGHT
8// Copyright (C) 1998 Caltech, UCSB
9//
10// Module: EvtDsTopipi0pi0.cc
11//
12// Description: Routine to handle three-body decays of Ds+/Ds-
13//
14// Modification history:
15// Liaoyuan Dong Sun Jun 02 01:23:25 2024 Module created
16//------------------------------------------------------------------------
17#include "EvtDsTopipi0pi0.hh"
27#include <fstream>
28#include <stdlib.h>
29#include <string>
30using std::endl;
31
33
34void EvtDsTopipi0pi0::getName( std::string& model_name ) { model_name = "DsTopipi0pi0"; }
35
37
39 // check that there are 0 arguments
40 checkNArg( 0 );
41 checkNDaug( 3 );
46
47 phi[0] = 0;
48 rho[0] = 1.0;
49 phi[1] = 0;
50 rho[1] = 0;
51 phi[2] = 0;
52 rho[2] = 0;
53 phi[3] = 0;
54 rho[3] = 0;
55 phi[4] = 0;
56 rho[4] = 0;
57
58 phi[0] = 0.0;
59 phi[1] = -7.3409e-01;
60 phi[2] = -9.4467e-01;
61 phi[3] = -4.3801e+00;
62 phi[4] = -2.3138e+00;
63
64 rho[0] = 1.0000e+00;
65 rho[1] = 8.5416e-01;
66 rho[2] = 6.8573e-01;
67 rho[3] = 1.7286e+00;
68 rho[4] = 7.5781e-01;
69
70 modetype[0] = 23;
71 modetype[1] = 23;
72 modetype[2] = 23;
73 modetype[3] = 23;
74 modetype[4] = 12;
75
76 // cout << "DsTopipi0pi0 :" << endl;
77 // for (int i=0; i<5; i++) {
78 // cout << i << " rho= " << rho[i] << " phi= " << phi[i] << endl;
79 // }
80
81 width[0] = 6.7400e-02;
82 width[1] = 2.6500e-01;
83 width[2] = 1.8500e-01;
84 width[3] = 1.7400e-01;
85 width[4] = 1.7400e-01;
86
87 mass[0] = 9.5500e-01;
88 mass[1] = 1.3500e+00;
89 mass[2] = 1.2755e+00;
90 mass[3] = 1.0000e+00;
91 mass[4] = 1.0000e+00;
92
93 mD = 1.86486;
94 mDs = 1.9683;
95 rRes = 9.0;
96 rD = 5.0;
97 metap = 0.95778;
98 mkstr = 0.89594;
99 mk0 = 0.497614;
100 mass_Kaon = 0.49368;
101 mass_Pion = 0.13957;
102 mass_Pi0 = 0.1349766;
103 math_pi = 3.1415926;
104 ma0 = 0.99;
105 Ga0 = 0.0756;
106 meta = 0.547862;
107
108 GS1 = 0.636619783;
109 GS2 = 0.01860182466;
110 GS3 = 0.1591549458; // 1/(2*math_2pi)
111 GS4 = 0.00620060822; // mass_Pion2/math_pi
112
113 int GG[4][4] = { { 1, 0, 0, 0 }, { 0, -1, 0, 0 }, { 0, 0, -1, 0 }, { 0, 0, 0, -1 } };
114 for ( int i = 0; i < 4; i++ )
115 {
116 for ( int j = 0; j < 4; j++ ) { G[i][j] = GG[i][j]; }
117 }
118}
119
121
123 /*
124 double maxprob = 0.0;
125 for(int ir=0;ir<=60000000;ir++){
126 p->initializePhaseSpace(getNDaug(),getDaugs());
127 EvtVector4R D1 = p->getDaug(0)->getP4();
128 EvtVector4R D2 = p->getDaug(1)->getP4();
129 EvtVector4R D3 = p->getDaug(2)->getP4();
130
131 double P1[4], P2[4], P3[4];
132 P1[0] = D1.get(0); P1[1] = D1.get(1); P1[2] = D1.get(2); P1[3] = D1.get(3);
133 P2[0] = D2.get(0); P2[1] = D2.get(1); P2[2] = D2.get(2); P2[3] = D2.get(3);
134 P3[0] = D3.get(0); P3[1] = D3.get(1); P3[2] = D3.get(2); P3[3] = D3.get(3);
135
136 //P1[0] = 0.420940262140625; P1[1] = 0.186467651715440; P1[2] =-0.006370318623730;P1[3]
137 =0.350571109833864;
138 //P2[0] = 0.882122776747018; P2[1] =0.132998408143823; P2[2] =-0.666777627124688; P2[3]
139 =-0.545566661456526;
140 //P3[0] = 0.712403566511058; P3[1] =-0.587918056029798; P3[2] =0.378201754131628; P3[3]
141 =0.024818375264997;
142
143 double value;
144 //value = calDalEva(P1, P2, P3);
145 int g0[5]={3,1,1,0,0};
146 int spin[5]={0,0,2,2,2};
147 int nstates=5;
148 calEva(P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, nstates, value);
149 if (value<0) continue;
150 if(value>maxprob) {
151 maxprob=value;
152 cout << "ir= " << ir << endl;
153 // cout << "double P1[4] = {" << P1[0] <<","<< P1[1] <<","<< P1[2] <<","<< P1[3] <<"};"<<
154 endl;
155 // cout << "double P2[4] = {" << P2[0] <<","<< P2[1] <<","<< P2[2] <<","<< P2[3] <<"};"<<
156 endl;
157 // cout << "double P3[4] = {" << P3[0] <<","<< P3[1] <<","<< P3[2] <<","<< P3[3] <<"};"<<
158 endl; cout << "MAX====> " << maxprob << endl;
159 }
160 }
161 printf("MAXprob = %.10f\n",maxprob);
162 */
164 EvtVector4R D1 = p->getDaug( 0 )->getP4();
165 EvtVector4R D2 = p->getDaug( 1 )->getP4();
166 EvtVector4R D3 = p->getDaug( 2 )->getP4();
167
168 double P1[4], P2[4], P3[4];
169 P1[0] = D1.get( 0 );
170 P1[1] = D1.get( 1 );
171 P1[2] = D1.get( 2 );
172 P1[3] = D1.get( 3 );
173 P2[0] = D2.get( 0 );
174 P2[1] = D2.get( 1 );
175 P2[2] = D2.get( 2 );
176 P2[3] = D2.get( 3 );
177 P3[0] = D3.get( 0 );
178 P3[1] = D3.get( 1 );
179 P3[2] = D3.get( 2 );
180 P3[3] = D3.get( 3 );
181
182 // P1[0] = 0.420940262140625; P1[1] = 0.186467651715440; P1[2] =-0.006370318623730;P1[3]
183 // =0.350571109833864; P2[0] = 0.882122776747018; P2[1] =0.132998408143823; P2[2]
184 // =-0.666777627124688; P2[3] =-0.545566661456526; P3[0] = 0.712403566511058; P3[1]
185 // =-0.587918056029798; P3[2] =0.378201754131628; P3[3] =0.024818375264997;
186
187 double value;
188 int g0[5] = { 3, 1, 1, 0, 0 };
189 int spin[5] = { 0, 0, 2, 2, 2 };
190 int nstates = 5;
191
192 calEva( P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, nstates, value );
193
194 setProb( value );
195 return;
196}
197
198void EvtDsTopipi0pi0::Com_Multi( double a1[2], double a2[2], double res[2] ) {
199 res[0] = a1[0] * a2[0] - a1[1] * a2[1];
200 res[1] = a1[1] * a2[0] + a1[0] * a2[1];
201}
202void EvtDsTopipi0pi0::Com_Divide( double a1[2], double a2[2], double res[2] ) {
203 double tmp = a2[0] * a2[0] + a2[1] * a2[1];
204 res[0] = ( a1[0] * a2[0] + a1[1] * a2[1] ) / tmp;
205 res[1] = ( a1[1] * a2[0] - a1[0] * a2[1] ) / tmp;
206}
207//------------base---------------------------------
208double EvtDsTopipi0pi0::SCADot( double a1[4], double a2[4] ) {
209 double _cal = a1[0] * a2[0] - a1[1] * a2[1] - a1[2] * a2[2] - a1[3] * a2[3];
210 return _cal;
211}
212double EvtDsTopipi0pi0::barrier( int l, double sa, double sb, double sc, double r,
213 double mass ) {
214 double q = ( sa + sb - sc ) * ( sa + sb - sc ) / ( 4 * sa ) - sb;
215 if ( q < 0 ) q = 1e-16;
216 double z;
217 z = q * r * r;
218 double sa0;
219 sa0 = mass * mass;
220 double q0 = ( sa0 + sb - sc ) * ( sa0 + sb - sc ) / ( 4 * sa0 ) - sb;
221 if ( q0 < 0 ) q0 = 1e-16;
222 double z0 = q0 * r * r;
223 double F = 0.0;
224 if ( l == 0 ) F = 1;
225 if ( l == 1 ) F = sqrt( ( 1 + z0 ) / ( 1 + z ) );
226 if ( l == 2 ) F = sqrt( ( 9 + 3 * z0 + z0 * z0 ) / ( 9 + 3 * z + z * z ) );
227 return F;
228}
229
230void EvtDsTopipi0pi0::calt1( double daug1[4], double daug2[4], double t1[4] ) {
231 double p, pq, tmp;
232 double pa[4], qa[4];
233 for ( int i = 0; i < 4; i++ )
234 {
235 pa[i] = daug1[i] + daug2[i];
236 qa[i] = daug1[i] - daug2[i];
237 }
238 p = SCADot( pa, pa );
239 pq = SCADot( pa, qa );
240 tmp = pq / p;
241 for ( int i = 0; i < 4; i++ ) { t1[i] = qa[i] - tmp * pa[i]; }
242}
243void EvtDsTopipi0pi0::calt2( double daug1[4], double daug2[4], double t2[4][4] ) {
244 double p, r;
245 double pa[4], t1[4];
246 calt1( daug1, daug2, t1 );
247 r = SCADot( t1, t1 ) / 3.0;
248 for ( int i = 0; i < 4; i++ ) { pa[i] = daug1[i] + daug2[i]; }
249 p = SCADot( pa, pa );
250 for ( int i = 0; i < 4; i++ )
251 {
252 for ( int j = 0; j < 4; j++ )
253 { t2[i][j] = t1[i] * t1[j] - r * ( G[i][j] - pa[i] * pa[j] / p ); }
254 }
255}
256//-------------------prop--------------------------------------------
257
258double EvtDsTopipi0pi0::wid( double mass2, double mass, double sa, double sb, double sc,
259 double r2, int l ) {
260 double widm = 0.;
261 double m = sqrt( sa );
262 double tmp = sb - sc;
263 double tmp1 = sa + tmp;
264 double q = 0.25 * tmp1 * tmp1 / sa - sb;
265 if ( q < 0 ) q = 1e-16;
266 double tmp2 = mass2 + tmp;
267 double q0 = 0.25 * tmp2 * tmp2 / mass2 - sb;
268 if ( q0 < 0 ) q0 = 1e-16;
269 double z = q * r2;
270 double z0 = q0 * r2;
271 double t = q / q0;
272 if ( l == 0 ) { widm = sqrt( t ) * mass / m; }
273 else if ( l == 1 ) { widm = t * sqrt( t ) * mass / m * ( 1 + z0 ) / ( 1 + z ); }
274 else if ( l == 2 )
275 { widm = t * t * sqrt( t ) * mass / m * ( 9 + 3 * z0 + z0 * z0 ) / ( 9 + 3 * z + z * z ); }
276 return widm;
277}
278double EvtDsTopipi0pi0::widl1( double mass2, double mass, double sa, double sb, double sc,
279 double r2 ) {
280 double widm = 0.;
281 double m = sqrt( sa );
282 double tmp = sb - sc;
283 double tmp1 = sa + tmp;
284 double q = 0.25 * tmp1 * tmp1 / sa - sb;
285 if ( q < 0 ) q = 1e-16;
286 double tmp2 = mass2 + tmp;
287 double q0 = 0.25 * tmp2 * tmp2 / mass2 - sb;
288 if ( q0 < 0 ) q0 = 1e-16;
289 double z = q * r2;
290 double z0 = q0 * r2;
291 double F = ( 1 + z0 ) / ( 1 + z );
292 double t = q / q0;
293 widm = t * sqrt( t ) * mass / m * F;
294 return widm;
295}
296void EvtDsTopipi0pi0::propagatorRBW( double mass2, double mass, double width, double sa,
297 double sb, double sc, double r2, int l, double prop[2] ) {
298 double a[2], b[2];
299 a[0] = 1;
300 a[1] = 0;
301 b[0] = mass2 - sa;
302 b[1] = -mass * width * wid( mass2, mass, sa, sb, sc, r2, l );
303 Com_Divide( a, b, prop );
304}
305
306void EvtDsTopipi0pi0::propagatorGS( double mass2, double mass, double width, double sa,
307 double sb, double sc, double r2, double prop[2] ) {
308 double a[2], b[2];
309 double tmp = sb - sc;
310 double tmp1 = sa + tmp;
311 double q2 = 0.25 * tmp1 * tmp1 / sa - sb;
312 if ( q2 < 0 ) q2 = 1e-16;
313
314 double tmp2 = mass2 + tmp;
315 double q02 = 0.25 * tmp2 * tmp2 / mass2 - sb;
316 if ( q02 < 0 ) q02 = 1e-16;
317
318 double q = sqrt( q2 );
319 double q0 = sqrt( q02 );
320 double m = sqrt( sa );
321 double q03 = q0 * q02;
322 double tmp3 = log( mass + 2 * q0 ) + 1.2926305904; // log(mpi0+mpip) = -1.2926305904;
323
324 double h = GS1 * q / m * ( log( m + 2 * q ) + 1.2926305904 );
325 double h0 = GS1 * q0 / mass * tmp3;
326 double dh = h0 * ( 0.125 / q02 - 0.5 / mass2 ) + GS3 / mass2;
327 double d = GS2 / q02 * tmp3 + GS3 * mass / q0 - GS4 * mass / q03;
328 double f = mass2 / q03 * ( q2 * ( h - h0 ) + ( mass2 - sa ) * q02 * dh );
329
330 a[0] = 1.0 + d * width / mass;
331 a[1] = 0.0;
332 b[0] = mass2 - sa + width * f;
333 b[1] = -mass * width * widl1( mass2, mass, sa, sb, sc, r2 );
334 Com_Divide( a, b, prop );
335}
336
337void EvtDsTopipi0pi0::PiPiSWASS( double sa, double sb, double sc, double prop[2] ) {
338 prop[0] = 1;
339 prop[1] = 0;
340}
341
342void EvtDsTopipi0pi0::Flatte_rhoab( double sa, double sb, double rho[2] ) {
343 double q = 1.0 - ( 4 * sb / sa );
344
345 if ( q > 0 )
346 {
347 rho[0] = sqrt( q );
348 rho[1] = 0;
349 }
350 else if ( q < 0 )
351 {
352 rho[0] = 0;
353 rho[1] = sqrt( -q );
354 }
355}
356
357void EvtDsTopipi0pi0::propagator980( double mass, double sx, double* sb, double prop[2] ) {
358
359 double gpipi1 = 2.0 / 3.0 * 0.165;
360 double gpipi2 = 1.0 / 3.0 * 0.165;
361 double gKK1 = 0.5 * 0.69465;
362 double gKK2 = 0.5 * 0.69465;
363
364 double unit[2] = { 1.0 };
365 double ci[2] = { 0, 1 };
366 double rho1[2];
367 Flatte_rhoab( sx, sb[0], rho1 );
368 double rho2[2];
369 Flatte_rhoab( sx, sb[1], rho2 );
370 double rho3[2];
371 Flatte_rhoab( sx, sb[2], rho3 );
372 double rho4[2];
373 Flatte_rhoab( sx, sb[3], rho4 );
374
375 double tmp1[2] = { gpipi1, 0 };
376 double tmp11[2];
377 double tmp2[2] = { gpipi2, 0 };
378 double tmp22[2];
379 double tmp3[2] = { gKK1, 0 };
380 double tmp33[2];
381 double tmp4[2] = { gKK2, 0 };
382 double tmp44[2];
383
384 Com_Multi( tmp1, rho1, tmp11 );
385 Com_Multi( tmp2, rho2, tmp22 );
386 Com_Multi( tmp3, rho3, tmp33 );
387 Com_Multi( tmp4, rho4, tmp44 );
388
389 double tmp5[2] = { tmp11[0] + tmp22[0] + tmp33[0] + tmp44[0],
390 tmp11[1] + tmp22[1] + tmp33[1] + tmp44[1] };
391 double tmp51[2];
392 Com_Multi( tmp5, ci, tmp51 );
393 // double tmp6[2]={mass*mass-sx-mass*tmp51[0], -1.0*mass*tmp51[1]};
394 double tmp6[2] = { mass * mass - sx - tmp51[0], -1.0 * tmp51[1] };
395 Com_Divide( unit, tmp6, prop );
396}
397
398double EvtDsTopipi0pi0::DDalitz( double P1[4], double P2[4], double P3[4], int Ang,
399 double mass ) {
400 double pR[4], pD[4];
401 double temp_PDF, v_re;
402 temp_PDF = 0.0;
403 v_re = 0.0;
404 double B[2], s1, s2, s3, sR, sD;
405 for ( int i = 0; i < 4; i++ )
406 {
407 pR[i] = P1[i] + P2[i];
408 pD[i] = pR[i] + P3[i];
409 }
410 s1 = SCADot( P1, P1 );
411 s2 = SCADot( P2, P2 );
412 s3 = SCADot( P3, P3 );
413 sR = SCADot( pR, pR );
414 sD = SCADot( pD, pD );
415 // int G[4][4];
416 // for(int i=0; i!=4; i++){
417 // for(int j=0; j!=4; j++){
418 // if(i==j){
419 // if(i==0) G[i][j] = 1;
420 // else G[i][j] = -1;
421 // }
422 // else G[i][j] = 0;
423 // }
424 // }
425 if ( Ang == 0 )
426 {
427 B[0] = 1;
428 B[1] = 1;
429 temp_PDF = 1;
430 }
431 if ( Ang == 1 )
432 {
433 B[0] = barrier( 1, sR, s1, s2, 3.0, mass );
434 B[1] = barrier( 1, sD, sR, s3, 5.0, 1.9683 );
435 double t1[4], T1[4];
436 calt1( P1, P2, t1 );
437 calt1( pR, P3, T1 );
438 temp_PDF = 0;
439 for ( int i = 0; i < 4; i++ ) { temp_PDF += t1[i] * T1[i] * G[i][i]; }
440 }
441 if ( Ang == 2 )
442 {
443 B[0] = barrier( 2, sR, s1, s2, 3.0, mass );
444 B[1] = barrier( 2, sD, sR, s3, 5.0, 1.9683 );
445 double t2[4][4], T2[4][4];
446 calt2( P1, P2, t2 );
447 calt2( pR, P3, T2 );
448 temp_PDF = 0;
449 for ( int i = 0; i < 4; i++ )
450 {
451 for ( int j = 0; j < 4; j++ ) { temp_PDF += t2[i][j] * T2[j][i] * G[i][i] * G[j][j]; }
452 }
453 }
454 v_re = temp_PDF * B[0] * B[1];
455 return v_re;
456}
457
458void EvtDsTopipi0pi0::calEva( double* Pic, double* Pi01, double* Pi02, double* mass1,
459 double* width1, double* amp, double* phase, int* g0, int* spin,
460 int* modetype, int nstates, double& Result ) {
461 double P12[4], P23[4], P13[4];
462 double cof[2], amp_PDF[2], PDF[2];
463 double scpi, spi01, spi02;
464 double s12, s13, s23;
465 for ( int i = 0; i < 4; i++ )
466 {
467 P23[i] = Pi01[i] + Pi02[i];
468 P12[i] = Pic[i] + Pi01[i];
469 P13[i] = Pic[i] + Pi02[i];
470 }
471 scpi = SCADot( Pic, Pic );
472 spi01 = SCADot( Pi01, Pi01 );
473 spi02 = SCADot( Pi02, Pi02 );
474 s12 = SCADot( P12, P12 );
475 s13 = SCADot( P13, P13 );
476 s23 = SCADot( P23, P23 );
477 double spi012[4] = { mass_Pion * mass_Pion, spi02, mass_Kaon * mass_Kaon, mk0 * mk0 };
478
479 double pro[2], temp_PDF, amp_tmp[2], temp_PDF1, temp_PDF2, pro1[2], pro2[2];
480 double mass1sq;
481 amp_PDF[0] = 0;
482 amp_PDF[1] = 0;
483 PDF[0] = 0;
484 PDF[1] = 0;
485 amp_tmp[0] = 0;
486 amp_tmp[1] = 0;
487 for ( int i = 0; i < nstates; i++ )
488 {
489 amp_tmp[0] = 0;
490 amp_tmp[1] = 0;
491 mass1sq = mass1[i] * mass1[i];
492 cof[0] = amp[i] * cos( phase[i] );
493 cof[1] = amp[i] * sin( phase[i] );
494 temp_PDF = 0;
495
496 if ( modetype[i] == 23 )
497 { // pi0pi0
498 temp_PDF = DDalitz( Pi01, Pi02, Pic, spin[i], mass1[i] );
499 if ( g0[i] == 1 )
500 propagatorRBW( mass1sq, mass1[i], width1[i], s23, spi01, spi02, rRes, spin[i], pro );
501 if ( g0[i] == 12 ) PiPiSWASS( s23, spi01, spi02, pro );
502 if ( g0[i] == 3 ) propagator980( mass1[i], s23, spi012, pro );
503 if ( g0[i] == 0 )
504 {
505 pro[0] = 1;
506 pro[1] = 0;
507 }
508 // printf("cof1 = %.15f \n",cof[1]);
509
510 amp_tmp[0] = temp_PDF * pro[0];
511 amp_tmp[1] = temp_PDF * pro[1];
512 }
513 if ( modetype[i] == 12 )
514 { // pipi0
515 temp_PDF1 = DDalitz( Pic, Pi01, Pi02, spin[i], mass1[i] );
516 if ( g0[i] == 1 )
517 propagatorRBW( mass1sq, mass1[i], width1[i], s12, scpi, spi01, rRes, spin[i], pro1 );
518 if ( g0[i] == 12 ) PiPiSWASS( s12, scpi, spi01, pro1 );
519 if ( g0[i] == 0 )
520 {
521 pro1[0] = 1;
522 pro1[1] = 0;
523 }
524
525 temp_PDF2 = DDalitz( Pic, Pi02, Pi01, spin[i], mass1[i] );
526 if ( g0[i] == 1 )
527 propagatorRBW( mass1sq, mass1[i], width1[i], s13, scpi, spi02, rRes, spin[i], pro2 );
528 if ( g0[i] == 12 ) PiPiSWASS( s13, scpi, spi02, pro2 );
529 if ( g0[i] == 0 )
530 {
531 pro2[0] = 1;
532 pro2[1] = 0;
533 }
534 amp_tmp[0] = temp_PDF1 * pro1[0] + temp_PDF2 * pro2[0];
535 amp_tmp[1] = temp_PDF1 * pro1[1] + temp_PDF2 * pro2[1];
536 }
537 Com_Multi( amp_tmp, cof, amp_PDF );
538 PDF[0] += amp_PDF[0];
539 PDF[1] += amp_PDF[1];
540 }
541
542 double value = PDF[0] * PDF[0] + PDF[1] * PDF[1];
543 // printf("value = %.15f\n",value);
544 Result = value;
545}
double mass
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")
*******INTEGER m_nBinMax INTEGER m_NdiMax !No of bins in histogram for cell exploration division $ !Last vertex $ !Last active cell $ !Last cell in buffer $ !No of sampling when dividing cell $ !No of function total $ !Flag for random ceel for $ !Flag for type of for WtMax $ !Flag which decides whether vertices are included in the sampling $ entire domain is hyp !Maximum effective eevents per saves r n generator level $ !Flag for chat level in !Latex Output unit
Definition FoamA.h:90
****INTEGER imax DOUBLE PRECISION m_pi *DOUBLE PRECISION m_amfin DOUBLE PRECISION m_Chfin DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_sinw2 DOUBLE PRECISION m_GFermi DOUBLE PRECISION m_MfinMin DOUBLE PRECISION m_ta2 INTEGER m_out INTEGER m_KeyFSR INTEGER m_KeyQCD *COMMON c_Semalib $ !copy of input $ !CMS energy $ !beam mass $ !final mass $ !beam charge $ !final charge $ !smallest final mass $ !Z mass $ !Z width $ !EW mixing angle $ !Gmu Fermi $ alphaQED at q
Definition KKsem.h:33
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
void setProbMax(double prbmx)
void checkNDaug(int d1, int d2=-1)
EvtId * getDaugs()
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
void setProb(double prob)
virtual ~EvtDsTopipi0pi0()
void decay(EvtParticle *p)
void getName(std::string &name)
EvtDecayBase * clone()
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
double get(int i) const
int t()
Definition t.c:1