72 phi[10] = -2.0956e+00;
87 mass1[0] = 9.9000e-01;
88 mass1[1] = 7.7526e-01;
89 mass1[2] = 5.2600e-01;
90 mass1[3] = 9.9000e-01;
91 mass1[4] = 9.9000e-01;
92 mass1[5] = 9.9000e-01;
93 mass1[6] = 9.9000e-01;
94 mass1[7] = 9.6500e-01;
95 mass1[8] = 5.2600e-01;
96 mass1[9] = 9.9000e-01;
97 mass1[10] = 9.9000e-01;
99 mass2[0] = 7.7526e-01;
100 mass2[1] = 1.3462e+00;
101 mass2[2] = 1.3462e+00;
102 mass2[3] = 1.4050e+00;
103 mass2[4] = 1.4050e+00;
104 mass2[5] = 1.8000e+00;
105 mass2[6] = 1.8000e+00;
106 mass2[7] = 1.8000e+00;
107 mass2[8] = 1.8000e+00;
108 mass2[9] = 1.4502e+00;
109 mass2[10] = 1.4502e+00;
111 width1[0] = 7.5000e-02;
112 width1[1] = 1.4910e-01;
113 width1[2] = 5.0000e-01;
114 width1[3] = 7.5000e-02;
115 width1[4] = 7.5000e-02;
116 width1[5] = 7.5000e-02;
117 width1[6] = 7.5000e-02;
118 width1[7] = 7.5000e-02;
119 width1[8] = 5.0000e-01;
120 width1[9] = 7.5000e-02;
121 width1[10] = 7.5000e-02;
123 width2[0] = 1.4910e-01;
124 width2[1] = 3.6900e-01;
125 width2[2] = 3.6900e-01;
126 width2[3] = 5.1000e-02;
127 width2[4] = 5.1000e-02;
128 width2[5] = 3.8600e-01;
129 width2[6] = 3.8600e-01;
130 width2[7] = 3.8600e-01;
131 width2[8] = 3.8600e-01;
132 width2[9] = 5.4000e-02;
133 width2[10] = 5.4000e-02;
149 mass_Pi0 = 0.1349766;
155 int GG[4][4] = { { 1, 0, 0, 0 }, { 0, -1, 0, 0 }, { 0, 0, -1, 0 }, { 0, 0, 0, -1 } };
156 int EE[4][4][4][4] = {
157 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
158 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, -1, 0 } },
159 { { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 1, 0, 0 } },
160 { { 0, 0, 0, 0 }, { 0, 0, 1, 0 }, { 0, -1, 0, 0 }, { 0, 0, 0, 0 } } },
161 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 1, 0 } },
162 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
163 { { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 } },
164 { { 0, 0, -1, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 } } },
165 { { { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, -1, 0, 0 } },
166 { { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 } },
167 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
168 { { 0, 1, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } },
169 { { { 0, 0, 0, 0 }, { 0, 0, -1, 0 }, { 0, 1, 0, 0 }, { 0, 0, 0, 0 } },
170 { { 0, 0, 1, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 } },
171 { { 0, -1, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
172 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } } };
173 for (
int i = 0; i < 4; i++ )
175 for (
int j = 0; j < 4; j++ )
178 for (
int k = 0; k < 4; k++ )
180 for (
int l = 0; l < 4; l++ ) { E[i][j][k][l] = EE[i][j][k][l]; }
222 double Pip1[4], Pip2[4], Pim[4], Eta[4];
223 Pip1[1] = pip1.
get( 1 );
224 Pip1[2] = pip1.
get( 2 );
225 Pip1[3] = pip1.
get( 3 );
226 Pip2[1] = pip2.
get( 1 );
227 Pip2[2] = pip2.
get( 2 );
228 Pip2[3] = pip2.
get( 3 );
229 Pim[1] = pim.
get( 1 );
230 Pim[2] = pim.
get( 2 );
231 Pim[3] = pim.
get( 3 );
232 Eta[1] = eta.
get( 1 );
233 Eta[2] = eta.
get( 2 );
234 Eta[3] = eta.
get( 3 );
237 int g0[11] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
238 int g1[11] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
239 int g2[11] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
242 calEvaMy( Pip1, Pip2, Pim, Eta, mass1, mass2, width1, width2, rho, phi, g0,
g1, g2, modetype,
249void EvtDsToEta3pi::calEvaMy(
double* Pip1,
double* Pip2,
double* Pim,
double* Eta,
250 double* mass1,
double* mass2,
double* width1,
double* width2,
251 double* amp,
double* phase,
int* g0,
int*
g1,
int* g2,
252 int* modetype,
int nstates,
double& Result ) {
253 double prho1[4], prho2[4], pa11[4], pa12[4], pa01[4], pa02[4], pD[4], pf11[4], pf12[4],
254 pa0m[4], peta12951[4], peta12952[4], psigma1[4], psigma2[4];
259 Pim[0] = sqrt(
mass_Pion *
mass_Pion + Pim[1] * Pim[1] + Pim[2] * Pim[2] + Pim[3] * Pim[3] );
260 Eta[0] = sqrt(
meta *
meta + Eta[1] * Eta[1] + Eta[2] * Eta[2] + Eta[3] * Eta[3] );
262 for (
int i = 0; i != 4; i++ )
264 prho1[i] = Pim[i] + Pip1[i];
265 prho2[i] = Pim[i] + Pip2[i];
266 pa11[i] = prho1[i] + Pip2[i];
267 pa12[i] = prho2[i] + Pip1[i];
268 psigma1[i] = Pim[i] + Pip1[i];
269 psigma2[i] = Pim[i] + Pip2[i];
270 pa01[i] = Eta[i] + Pip1[i];
271 pa02[i] = Eta[i] + Pip2[i];
272 pa0m[i] = Eta[i] + Pim[i];
273 pf11[i] = Pim[i] + Pip1[i] + Eta[i];
274 pf12[i] = Pim[i] + Pip2[i] + Eta[i];
275 pD[i] = pa11[i] + Eta[i];
276 peta12951[i] = Pim[i] + Pip1[i] + Eta[i];
277 peta12952[i] = Pim[i] + Pip2[i] + Eta[i];
279 double cof[2], amp_tmp1[2], amp_tmp2[2], amp_tmp[2], amp_PDF[2], PDF[2];
280 double amp_Omg, phs_Omg;
289 double spion1, spion2, spim, seta, sa11, sa12, srho1, srho2, sa01, sa02, sD, sf11, sf12,
290 sa0m, seta12951, seta12952, ssigma1, ssigma2;
291 double t1rho1[4], t2rho1[4][4], t1rho2[4], t2rho2[4][4], t1a01[4], t1a02[4], t2a11[4][4],
292 t2a12[4][4], t1d01[4], t1d02[4], t1f11[4], t2f11[4][4], t1f12[4], t2f12[4][4], t1a11[4],
293 t1a12[4], t1f11_2[4], t1f12_2[4];
294 double temp_PDF, tmp1, tmp2, temp[2], tmp3, tmp4, temp_PDF1;
295 double pro[2], pro0[2], pro1[2], pro2[2], pro3[2], pro4[2];
296 double t1D[4], t2D[4][4],
B[3], t1Tm[4],
A[2], Bc[3];
298 double mass1sq, mass2sq;
300 seta = SCADot( Eta, Eta );
301 spion1 = SCADot( Pip1, Pip1 );
302 spion2 = SCADot( Pip2, Pip2 );
303 spim = SCADot( Pim, Pim );
305 srho1 = SCADot( prho1, prho1 );
306 srho2 = SCADot( prho2, prho2 );
307 sa11 = SCADot( pa11, pa11 );
308 sa12 = SCADot( pa12, pa12 );
310 sa01 = SCADot( pa01, pa01 );
311 sa02 = SCADot( pa02, pa02 );
312 sa0m = SCADot( pa0m, pa0m );
313 sf11 = SCADot( pf11, pf11 );
314 sf12 = SCADot( pf12, pf12 );
315 sD = SCADot( pD, pD );
316 seta12951 = SCADot( peta12951, peta12951 );
317 seta12952 = SCADot( peta12952, peta12952 );
318 ssigma1 = SCADot( psigma1, psigma1 );
319 ssigma2 = SCADot( psigma2, psigma2 );
320 double seta2[2] = { mass_Ks * mass_Ks, seta };
321 double spion12[2] = { mass_Kaon * mass_Kaon, spion1 };
322 double spion22[2] = { mass_Kaon * mass_Kaon, spion2 };
323 double spim2[2] = { mass_Kaon * mass_Kaon, spim };
325 calt1( Pip1, Pim, t1rho1 );
326 calt2( Pip1, Pim, t2rho1 );
327 calt1( Pip2, Pim, t1rho2 );
328 calt2( Pip2, Pim, t2rho2 );
330 calt1( Pip1, Eta, t1a01 );
331 calt1( Pip2, Eta, t1a02 );
333 calt1( pa01, prho2, t1d01 );
334 calt1( pa02, prho1, t1d02 );
336 calt1( pa0m, Pip1, t1f11 );
337 calt1( pa0m, Pip2, t1f12 );
339 calt1( psigma1, Pip2, t1a11 );
340 calt1( psigma2, Pip1, t1a12 );
342 calt1( pa01, Pim, t1f11_2 );
343 calt1( pa02, Pim, t1f12_2 );
345 calt2( prho1, Pip2, t2a11 );
346 calt2( prho2, Pip1, t2a12 );
348 calt2( pa01, Pip1, t2f11 );
349 calt2( pa02, Pip2, t2f12 );
351 for (
int i = 0; i < nstates; i++ )
354 cof[0] = amp[i] *
cos( phase[i] );
355 cof[1] = amp[i] *
sin( phase[i] );
356 mass1sq = mass1[i] * mass1[i];
357 mass2sq = mass2[i] * mass2[i];
371 if ( modetype[i] == 1 )
373 if ( g0[i] == 1 ) propagatora0980( mass1[i], sa01, seta2, spion12, pro0 );
380 propagatorGS( mass2sq, mass2[i], width2[i], srho2, spion2, spim, rRes2, pro1 );
386 Com_Multi( pro0, pro1, pro );
388 for (
int a = 0; a < 4; a++ ) { temp_PDF += G[a][a] * t1d01[a] * t1rho2[a]; }
390 B[1] = Barrier( 1, srho2, spion2, spim, rRes2 );
391 B[2] = Barrier( 1, sD, sa01, srho2, rD2 );
392 tmp1 =
B[1] *
B[2] * temp_PDF;
393 amp_tmp1[0] = tmp1 * pro[0];
394 amp_tmp1[1] = tmp1 * pro[1];
397 if ( g0[i] == 1 ) propagatora0980( mass1[i], sa02, seta2, spion22, pro0 );
404 propagatorGS( mass2sq, mass2[i], width2[i], srho1, spion1, spim, rRes2, pro1 );
410 Com_Multi( pro0, pro1, pro );
412 for (
int a = 0; a < 4; a++ ) { temp_PDF += G[a][a] * t1d02[a] * t1rho1[a]; }
414 B[1] = Barrier( 1, srho1, spion1, spim, rRes2 );
415 B[2] = Barrier( 1, sD, sa02, srho1, rD2 );
416 tmp2 =
B[1] *
B[2] * temp_PDF;
417 amp_tmp2[0] = tmp2 * pro[0];
418 amp_tmp2[1] = tmp2 * pro[1];
420 if ( modetype[i] == 2 )
423 propagatorGS( mass1sq, mass1[i], width1[i], srho1, spion1, spim, rRes2, pro0 );
430 propagatorRBW( mass2sq, mass2[i], width2[i], sa11, srho1, spion2, rRes2, g2[i], pro1 );
436 Com_Multi( pro0, pro1, pro );
437 calt1( pa11, Eta, t1D );
438 B[0] = Barrier( 1, srho1, spion1, spim, rRes2 );
439 B[2] = Barrier( 1, sD, sa11, seta, rD2 );
442 for (
int a = 0; a < 4; a++ )
444 for (
int j = 0; j < 4; j++ )
446 temp_PDF += t1D[a] * ( G[a][j] - pa11[a] * pa11[j] / sa11 ) * t1rho1[j] * G[a][a] *
450 tmp1 =
B[0] *
B[2] * temp_PDF;
464 amp_tmp1[0] = tmp1 * pro[0];
465 amp_tmp1[1] = tmp1 * pro[1];
469 propagatorGS( mass1sq, mass1[i], width1[i], srho2, spion2, spim, rRes2, pro0 );
476 propagatorRBW( mass2sq, mass2[i], width2[i], sa12, srho2, spion1, rRes2, g2[i], pro1 );
482 Com_Multi( pro0, pro1, pro );
483 calt1( pa12, Eta, t1D );
484 B[0] = Barrier( 1, srho2, spion2, spim, rRes2 );
485 B[2] = Barrier( 1, sD, sa12, seta, rD2 );
488 for (
int a = 0; a < 4; a++ )
490 for (
int j = 0; j < 4; j++ )
492 temp_PDF += t1D[a] * ( G[a][j] - pa12[a] * pa12[j] / sa12 ) * t1rho2[j] * G[a][a] *
496 tmp2 =
B[0] *
B[2] * temp_PDF;
510 amp_tmp2[0] = tmp2 * pro[0];
511 amp_tmp2[1] = tmp2 * pro[1];
513 if ( modetype[i] == 3 )
515 if ( g0[i] == 1 ) propagatorsigma500( ssigma1, spion1, spim, pro0 );
522 propagatorRBW( mass2sq, mass2[i], width2[i], sa11, ssigma1, spion2, rRes2, 1, pro1 );
530 Com_Multi( pro0, pro1, pro );
531 calt1( pa11, Eta, t1D );
532 B[2] = Barrier( 1, sD, sa11, seta, rD2 );
533 B[1] = Barrier( 1, sa11, ssigma1, spion2, rRes2 );
534 for (
int a = 0; a < 4; a++ ) { temp_PDF += t1D[a] * t1a11[a] * G[a][a]; }
535 tmp1 =
B[1] *
B[2] * temp_PDF;
536 amp_tmp1[0] = tmp1 * pro[0];
537 amp_tmp1[1] = tmp1 * pro[1];
539 if ( g0[i] == 1 ) propagatorsigma500( ssigma2, spion2, spim, pro0 );
546 propagatorRBW( mass2sq, mass2[i], width2[i], sa12, ssigma2, spion1, rRes2, 1, pro1 );
554 Com_Multi( pro0, pro1, pro );
555 calt1( pa12, Eta, t1D );
556 B[2] = Barrier( 1, sD, sa12, seta, rD2 );
557 B[1] = Barrier( 1, sa12, ssigma2, spion1, rRes2 );
558 for (
int a = 0; a < 4; a++ ) { temp_PDF += t1D[a] * t1a12[a] * G[a][a]; }
559 tmp2 =
B[1] *
B[2] * temp_PDF;
560 amp_tmp2[0] = tmp2 * pro[0];
561 amp_tmp2[1] = tmp2 * pro[1];
563 if ( modetype[i] == 4 )
565 if ( g0[i] == 1 ) propagatora0980( mass1[i], sa0m, spim2, seta2, pro0 );
574 propagatorRBW( mass2sq, mass2[i], width2[i], seta12951, sa0m, spion1, rRes2, 0, pro1 );
582 Com_Multi( pro0, pro1, pro );
583 calt1( pf11, Pip2, t1D );
585 amp_tmp1[0] = tmp1 * pro[0];
586 amp_tmp1[1] = tmp1 * pro[1];
589 if ( g0[i] == 1 ) propagatora0980( mass1[i], sa0m, spim2, seta2, pro0 );
598 propagatorRBW( mass2sq, mass2[i], width2[i], seta12952, sa0m, spion2, rRes2, 0, pro1 );
606 Com_Multi( pro0, pro1, pro );
607 calt1( pf12, Pip1, t1D );
609 amp_tmp2[0] = tmp2 * pro[0];
610 amp_tmp2[1] = tmp2 * pro[1];
612 if ( modetype[i] == 5 )
614 if ( g0[i] == 1 ) propagatora0980( mass1[i], sa01, spion12, seta2, pro2 );
623 propagatorRBW( mass2sq, mass2[i], width2[i], seta12951, sa01, spim, rRes2, 0, pro3 );
631 Com_Multi( pro2, pro3, pro4 );
632 calt1( pf11, Pip2, t1D );
634 amp_tmp1[0] = tmp3 * pro4[0];
635 amp_tmp1[1] = tmp3 * pro4[1];
638 if ( g0[i] == 1 ) propagatora0980( mass1[i], sa02, spion22, seta2, pro2 );
647 propagatorRBW( mass2sq, mass2[i], width2[i], seta12952, sa02, spim, rRes2, 0, pro3 );
655 Com_Multi( pro2, pro3, pro4 );
656 calt1( pf12, Pip1, t1D );
658 amp_tmp2[0] = tmp4 * pro4[0];
659 amp_tmp2[1] = tmp4 * pro4[1];
661 if ( modetype[i] == 6 )
663 if ( g0[i] == 1 ) propagatora0980( mass1[i], sa0m, spim2, seta2, pro0 );
680 Com_Multi( pro0, pro1, pro );
681 calt1( pf11, Pip2, t1D );
683 amp_tmp1[0] = tmp1 * pro[0];
684 amp_tmp1[1] = tmp1 * pro[1];
686 if ( g0[i] == 1 ) propagatora0980( mass1[i], sa0m, spim2, seta2, pro0 );
703 Com_Multi( pro0, pro1, pro );
704 calt1( pf12, Pip1, t1D );
706 amp_tmp2[0] = tmp2 * pro[0];
707 amp_tmp2[1] = tmp2 * pro[1];
709 if ( modetype[i] == 7 )
712 if ( g0[i] == 1 ) propagatora0980( mass1[i], sa01, spion12, seta2, pro2 );
729 Com_Multi( pro2, pro3, pro4 );
730 calt1( pf11, Pip2, t1D );
732 amp_tmp1[0] = tmp3 * pro4[0];
733 amp_tmp1[1] = tmp3 * pro4[1];
735 if ( g0[i] == 1 ) propagatora0980( mass1[i], sa02, spion22, seta2, pro2 );
752 Com_Multi( pro2, pro3, pro4 );
753 calt1( pf12, Pip1, t1D );
755 amp_tmp2[0] = tmp4 * pro4[0];
756 amp_tmp2[1] = tmp4 * pro4[1];
758 if ( modetype[i] == 8 )
760 if ( g0[i] == 1 ) propagator980( mass1[i], srho1, spion12, spim2, pro0 );
773 Com_Multi( pro0, pro1, pro );
778 amp_tmp1[0] = tmp1 * pro[0];
779 amp_tmp1[1] = tmp1 * pro[1];
781 if ( g0[i] == 1 ) propagator980( mass1[i], srho2, spion22, spim2, pro0 );
794 Com_Multi( pro0, pro1, pro );
798 calt1( pf12, Pip1, t1D );
800 amp_tmp2[0] = tmp2 * pro[0];
801 amp_tmp2[1] = tmp2 * pro[1];
803 if ( modetype[i] == 9 )
805 if ( g0[i] == 1 ) propagatorsigma500( ssigma1, spion1, spim, pro0 );
818 Com_Multi( pro0, pro1, pro );
819 calt1( pf11, Pip2, t1D );
821 amp_tmp1[0] = tmp1 * pro[0];
822 amp_tmp1[1] = tmp1 * pro[1];
824 if ( g0[i] == 1 ) propagatorsigma500( ssigma2, spion2, spim, pro0 );
837 Com_Multi( pro0, pro1, pro );
838 calt1( pf12, Pip1, t1D );
840 amp_tmp2[0] = tmp2 * pro[0];
841 amp_tmp2[1] = tmp2 * pro[1];
844 if ( modetype[i] == 10 )
846 if ( g0[i] == 1 ) propagatora0980( mass1[i], sa0m, seta2, spim2, pro0 );
855 propagatorRBW( mass2sq, mass2[i], width2[i], sf11, sa0m, spion1, rRes2, 1, pro1 );
863 Com_Multi( pro0, pro1, pro );
864 calt1( pf11, Pip2, t1D );
865 B[1] = Barrier( 1, sf11, sa0m, spion1, rRes2 );
866 B[2] = Barrier( 1, sD, sf11, spion2, rD2 );
867 for (
int a = 0; a < 4; a++ ) { temp_PDF += t1D[a] * t1f11[a] * G[a][a]; }
868 tmp1 =
B[1] *
B[2] * temp_PDF;
869 amp_tmp1[0] = tmp1 * pro[0];
870 amp_tmp1[1] = tmp1 * pro[1];
873 if ( g0[i] == 1 ) propagatora0980( mass1[i], sa0m, seta2, spim2, pro0 );
882 propagatorRBW( mass2sq, mass2[i], width2[i], sf12, sa0m, spion2, rRes2, 1, pro1 );
890 Com_Multi( pro0, pro1, pro );
891 calt1( pf12, Pip1, t1D );
892 B[1] = Barrier( 1, sf12, sa0m, spion2, rRes2 );
893 B[2] = Barrier( 1, sD, sf12, spion1, rD2 );
894 for (
int a = 0; a < 4; a++ ) { temp_PDF += t1D[a] * t1f12[a] * G[a][a]; }
895 tmp2 =
B[1] *
B[2] * temp_PDF;
896 amp_tmp2[0] = tmp2 * pro[0];
897 amp_tmp2[1] = tmp2 * pro[1];
900 if ( modetype[i] == 11 )
902 if ( g0[i] == 1 ) propagatora0980( mass1[i], sa01, seta2, spion12, pro2 );
911 propagatorRBW( mass2sq, mass2[i], width2[i], sf11, sa01, spim, rRes2, 1, pro3 );
919 Com_Multi( pro2, pro3, pro4 );
920 calt1( pf11, Pip2, t1D );
921 Bc[1] = Barrier( 1, sf11, sa01, spim, rRes2 );
922 Bc[2] = Barrier( 1, sD, sf11, spion2, rD2 );
923 for (
int a = 0; a < 4; a++ ) { temp_PDF1 += t1D[a] * t1f11_2[a] * G[a][a]; }
924 tmp3 = Bc[1] * Bc[2] * temp_PDF1;
925 amp_tmp1[0] = tmp3 * pro4[0];
926 amp_tmp1[1] = tmp3 * pro4[1];
930 if ( g0[i] == 1 ) propagatora0980( mass1[i], sa02, seta2, spion22, pro2 );
939 propagatorRBW( mass2sq, mass2[i], width2[i], sf12, sa02, spim, rRes2, 1, pro3 );
947 Com_Multi( pro2, pro3, pro4 );
948 calt1( pf12, Pip1, t1D );
949 Bc[1] = Barrier( 1, sf12, sa02, spim, rRes2 );
950 Bc[2] = Barrier( 1, sD, sf12, spion1, rD2 );
951 for (
int a = 0; a < 4; a++ ) { temp_PDF1 += t1D[a] * t1f12_2[a] * G[a][a]; }
952 tmp4 = Bc[1] * Bc[2] * temp_PDF1;
953 amp_tmp2[0] = tmp4 * pro4[0];
954 amp_tmp2[1] = tmp4 * pro4[1];
957 amp_tmp[0] = amp_tmp1[0] + amp_tmp2[0];
958 amp_tmp[1] = amp_tmp1[1] + amp_tmp2[1];
959 Com_Multi( amp_tmp, cof, amp_PDF );
960 PDF[0] += amp_PDF[0];
961 PDF[1] += amp_PDF[1];
964 double value = PDF[0] * PDF[0] + PDF[1] * PDF[1];
965 if ( value <= 0 ) { value = 1e-20; }
969void EvtDsToEta3pi::Com_Multi(
double a1[2],
double a2[2],
double res[2] ) {
970 res[0] = a1[0] * a2[0] - a1[1] * a2[1];
971 res[1] = a1[1] * a2[0] + a1[0] * a2[1];
973void EvtDsToEta3pi::Com_Divide(
double a1[2],
double a2[2],
double res[2] ) {
974 double tmp = a2[0] * a2[0] + a2[1] * a2[1];
975 res[0] = ( a1[0] * a2[0] + a1[1] * a2[1] ) / tmp;
976 res[1] = ( a1[1] * a2[0] - a1[0] * a2[1] ) / tmp;
978double EvtDsToEta3pi::SCADot(
double a1[4],
double a2[4] ) {
979 double _cal = a1[0] * a2[0] - a1[1] * a2[1] - a1[2] * a2[2] - a1[3] * a2[3];
982double EvtDsToEta3pi::Barrier(
int l,
double sa,
double sb,
double sc,
double r2 ) {
984 double tmp = sa + sb - sc;
985 double q = 0.25 * tmp * tmp / sa - sb;
986 if (
q < 0 )
q = 1e-16;
988 if ( l == 1 ) { F = sqrt( 2.0 * z / ( 1.0 + z ) ); }
992 F = sqrt( 13.0 * z2 / ( 9.0 + 3.0 * z + z2 ) );
997void EvtDsToEta3pi::calt1(
double daug1[4],
double daug2[4],
double t1[4] ) {
1000 for (
int i = 0; i < 4; i++ )
1002 pa[i] = daug1[i] + daug2[i];
1003 qa[i] = daug1[i] - daug2[i];
1005 p = SCADot( pa, pa );
1006 pq = SCADot( pa, qa );
1008 for (
int i = 0; i < 4; i++ ) { t1[i] = qa[i] - tmp * pa[i]; }
1011void EvtDsToEta3pi::calt2(
double daug1[4],
double daug2[4],
double t2[4][4] ) {
1013 double pa[4], t1[4];
1014 calt1( daug1, daug2, t1 );
1015 r = SCADot( t1, t1 );
1016 for (
int i = 0; i < 4; i++ ) { pa[i] = daug1[i] + daug2[i]; }
1017 p = SCADot( pa, pa );
1018 for (
int i = 0; i < 4; i++ )
1020 for (
int j = 0; j < 4; j++ )
1021 { t2[i][j] = t1[i] * t1[j] - 1.0 / 3 * r * ( G[i][j] - pa[i] * pa[j] / p ); }
1025void EvtDsToEta3pi::propagator(
double mass2,
double mass,
double width,
double sx,
1031 b[1] = -
mass * width;
1032 Com_Divide( a, b, prop );
1034double EvtDsToEta3pi::wid(
double mass2,
double mass,
double sa,
double sb,
double sc,
1035 double r2,
int l ) {
1037 double m = sqrt( sa );
1038 double tmp = sb - sc;
1039 double tmp1 = sa + tmp;
1040 double q = 0.25 * tmp1 * tmp1 / sa - sb;
1041 if (
q < 0 )
q = 1e-16;
1042 double tmp2 = mass2 + tmp;
1043 double q0 = 0.25 * tmp2 * tmp2 / mass2 - sb;
1044 if ( q0 < 0 ) q0 = 1e-16;
1046 double z0 = q0 * r2;
1048 if ( l == 0 ) { widm = sqrt(
t ) *
mass / m; }
1049 else if ( l == 1 ) { widm =
t * sqrt(
t ) *
mass / m * ( 1 + z0 ) / ( 1 + z ); }
1051 { widm =
t *
t * sqrt(
t ) *
mass / m * ( 9 + 3 * z0 + z0 * z0 ) / ( 9 + 3 * z + z * z ); }
1054double EvtDsToEta3pi::widl1(
double mass2,
double mass,
double sa,
double sb,
double sc,
1057 double m = sqrt( sa );
1058 double tmp = sb - sc;
1059 double tmp1 = sa + tmp;
1060 double q = 0.25 * tmp1 * tmp1 / sa - sb;
1061 if (
q < 0 )
q = 1e-16;
1062 double tmp2 = mass2 + tmp;
1063 double q0 = 0.25 * tmp2 * tmp2 / mass2 - sb;
1064 if ( q0 < 0 ) q0 = 1e-16;
1066 double z0 = q0 * r2;
1067 double F = ( 1 + z0 ) / ( 1 + z );
1069 widm =
t * sqrt(
t ) *
mass / m * F;
1072void EvtDsToEta3pi::propagatorRBW(
double mass2,
double mass,
double width,
double sa,
1073 double sb,
double sc,
double r2,
int l,
double prop[2] ) {
1078 b[1] = -
mass * width * wid( mass2,
mass, sa, sb, sc, r2, l );
1079 Com_Divide( a, b, prop );
1082void EvtDsToEta3pi::propagatorGS(
double mass2,
double mass,
double width,
double sa,
1083 double sb,
double sc,
double r2,
double prop[2] ) {
1085 double tmp = sb - sc;
1086 double tmp1 = sa + tmp;
1087 double q2 = 0.25 * tmp1 * tmp1 / sa - sb;
1088 if ( q2 < 0 ) q2 = 1e-16;
1090 double tmp2 = mass2 + tmp;
1091 double q02 = 0.25 * tmp2 * tmp2 / mass2 - sb;
1092 if ( q02 < 0 ) q02 = 1e-16;
1094 double q = sqrt( q2 );
1095 double q0 = sqrt( q02 );
1096 double m = sqrt( sa );
1097 double q03 = q0 * q02;
1098 double tmp3 = log(
mass + 2 * q0 ) + 1.2760418309;
1100 double h = GS1 *
q / m * ( log( m + 2 *
q ) + 1.2760418309 );
1101 double h0 = GS1 * q0 /
mass * tmp3;
1102 double dh = h0 * ( 0.125 / q02 - 0.5 / mass2 ) + GS3 / mass2;
1103 double d = GS2 / q02 * tmp3 + GS3 *
mass / q0 - GS4 *
mass / q03;
1104 double f = mass2 / q03 * ( q2 * ( h - h0 ) + ( mass2 - sa ) * q02 * dh );
1106 a[0] = 1.0 + d * width /
mass;
1108 b[0] = mass2 - sa + width *
f;
1109 b[1] = -
mass * width * widl1( mass2,
mass, sa, sb, sc, r2 );
1110 Com_Divide( a, b, prop );
1112void EvtDsToEta3pi::rhoab(
double sa,
double sb,
double sc,
double res[2] ) {
1113 double tmp = sa + sb - sc;
1114 double q = 0.25 * tmp * tmp / sa - sb;
1117 res[0] = 2.0 * sqrt(
q / sa );
1123 res[1] = 2.0 * sqrt( -
q / sa );
1126void EvtDsToEta3pi::rho4Pi(
double sa,
double res[2] ) {
1127 double temp = 1.0 - 0.3116765584 / sa;
1130 res[0] = sqrt( temp ) / ( 1.0 +
exp( 9.8 - 3.5 * sa ) );
1136 res[1] = sqrt( -temp ) / ( 1.0 +
exp( 9.8 - 3.5 * sa ) );
1139void EvtDsToEta3pi::propagatorsigma500(
double sa,
double sb,
double sc,
double prop[2] ) {
1140 double f = 0.5843 + 1.6663 * sa;
1141 const double M = 0.9264;
1142 const double mass2 = 0.85821696;
1143 const double mpi2d2 = 0.00973989245;
1144 double g1 =
f * ( sa - mpi2d2 ) / ( mass2 - mpi2d2 ) *
exp( ( mass2 - sa ) / 1.082 );
1145 double rho1s[2], rho1M[2], rho2s[2], rho2M[2], rho1[2], rho2[2];
1146 rhoab( sa, sb, sc, rho1s );
1147 rhoab( mass2, sb, sc, rho1M );
1148 rho4Pi( sa, rho2s );
1149 rho4Pi( mass2, rho2M );
1150 Com_Divide( rho1s, rho1M, rho1 );
1151 Com_Divide( rho2s, rho2M, rho2 );
1155 b[0] = mass2 - sa + M * (
g1 * rho1[1] + 0.0024 * rho2[1] );
1156 b[1] = -M * (
g1 * rho1[0] + 0.0024 * rho2[0] );
1157 Com_Divide( a, b, prop );
1159void EvtDsToEta3pi::propagatora0_980(
double mass2,
double mass,
double width,
double sa,
1160 double sb,
double sc,
int charge,
double prop[2] ) {
1162 double rho[2], rhoKsK[2];
1163 rhoab( sa, sb, sc, rho );
1164 if ( charge == 0 ) { qKsK = 0.25 * sa - 0.2437199424; }
1165 else if ( charge == 1 )
1167 double tmp1 = sa + 3.899750596e-03;
1168 qKsK = 0.25 * tmp1 * tmp1 / sa - 0.247619692996;
1172 rhoKsK[0] = 2 * sqrt( qKsK / sa );
1175 else if ( qKsK < 0 )
1178 rhoKsK[1] = 2 * sqrt( -qKsK / sa );
1183 b[0] = mass2 - sa + 0.341 * rho[1] + 0.304172 * rhoKsK[1];
1184 b[1] = -0.341 * rho[0] - 0.304172 * rhoKsK[0];
1185 Com_Divide( a, b, prop );
1187void EvtDsToEta3pi::Flatte_rhoab(
double sa,
double sb,
double sc,
double rho[2] ) {
1188 double q = ( sa + sb - sc ) * ( sa + sb - sc ) / ( 4 * sa ) - sb;
1192 rho[0] = 2 * sqrt(
q / sa );
1198 rho[1] = 2 * sqrt( -
q / sa );
1201void EvtDsToEta3pi::propagator980(
double mass,
double sx,
double* sb,
double* sc,
1203 double unit[2] = { 1.0 };
1204 double ci[2] = { 0, 1 };
1206 Flatte_rhoab( sx, sb[0], sc[0], rho1 );
1208 Flatte_rhoab( sx, sb[1], sc[1], rho2 );
1210 double gK_f980 = 0.69466, gPi_f980 = 0.165;
1211 double tmp1[2] = { gK_f980, 0 };
1213 double tmp2[2] = { gPi_f980, 0 };
1215 Com_Multi( tmp1, rho1, tmp11 );
1216 Com_Multi( tmp2, rho2, tmp22 );
1217 double tmp3[2] = { tmp11[0] + tmp22[0], tmp11[1] + tmp22[1] };
1219 Com_Multi( tmp3, ci, tmp31 );
1220 double tmp4[2] = {
mass *
mass - sx - tmp31[0], -1.0 * tmp31[1] };
1221 Com_Divide(
unit, tmp4, prop );
1224void EvtDsToEta3pi::propagatora0980(
double mass,
double sx,
double* sb,
double* sc,
1226 double unit[2] = { 1.0 };
1227 double ci[2] = { 0, 1 };
1229 Flatte_rhoab( sx, sb[0], sc[0], rho1 );
1231 Flatte_rhoab( sx, sb[1], sc[1], rho2 );
1233 double gKK_a980 = 0.892 * 0.341, gPiEta_a980 = 0.341;
1234 double tmp1[2] = { gKK_a980, 0 };
1236 double tmp2[2] = { gPiEta_a980, 0 };
1238 Com_Multi( tmp1, rho1, tmp11 );
1239 Com_Multi( tmp2, rho2, tmp22 );
1240 double tmp3[2] = { tmp11[0] + tmp22[0], tmp11[1] + tmp22[1] };
1242 Com_Multi( tmp3, ci, tmp31 );
1243 double tmp4[2] = {
mass *
mass - sx - tmp31[0], -1.0 * tmp31[1] };
1244 Com_Divide(
unit, tmp4, prop );
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")
EvtComplex exp(const EvtComplex &c)
*******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
double sin(const BesAngle a)
double cos(const BesAngle a)
****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
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
void setProbMax(double prbmx)
void checkNDaug(int d1, int d2=-1)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
void setProb(double prob)
void getName(std::string &name)
void decay(EvtParticle *p)
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)