64 phi[10] = -2.8735e+00;
108 mass_Pion_N = 0.134977;
110 mass_Kaon = 0.493677;
122 int GG[4][4] = { { 1, 0, 0, 0 }, { 0, -1, 0, 0 }, { 0, 0, -1, 0 }, { 0, 0, 0, -1 } };
123 int EE[4][4][4][4] = {
124 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
125 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, -1, 0 } },
126 { { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 1, 0, 0 } },
127 { { 0, 0, 0, 0 }, { 0, 0, 1, 0 }, { 0, -1, 0, 0 }, { 0, 0, 0, 0 } } },
128 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 1, 0 } },
129 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
130 { { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 } },
131 { { 0, 0, -1, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 } } },
132 { { { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, -1, 0, 0 } },
133 { { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 } },
134 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
135 { { 0, 1, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } },
136 { { { 0, 0, 0, 0 }, { 0, 0, -1, 0 }, { 0, 1, 0, 0 }, { 0, 0, 0, 0 } },
137 { { 0, 0, 1, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 } },
138 { { 0, -1, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
139 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } } };
140 for (
int i = 0; i < 4; i++ )
142 for (
int j = 0; j < 4; j++ )
145 for (
int k = 0; k < 4; k++ )
147 for (
int l = 0; l < 4; l++ ) { E[i][j][k][l] = EE[i][j][k][l]; }
210 double Pip[4], Pim[4], Kp[4],
Pi0[4];
214 Pip[0] = pip.
get( 0 );
215 Pim[0] = pim.
get( 0 );
218 Pip[1] = pip.
get( 1 );
219 Pim[1] = pim.
get( 1 );
222 Pip[2] = pip.
get( 2 );
223 Pim[2] = pim.
get( 2 );
226 Pip[3] = pip.
get( 3 );
227 Pim[3] = pim.
get( 3 );
232 int modetype[11] = { 1, 1, 2, 10, 12, 11, 16, 17, 14, 2, 15 };
233 int g0[11] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0 };
234 int g1[11] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 };
235 int g2[11] = { 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0 };
236 double mass1[11] = { mKst0, mKst0, mKstp, mK1270, mKstp, mKst0,
237 mA1, mA1, mOmega, mKst0, mKst0 };
238 double mass2[11] = { mrho, mrho, mrho0, mrho, mK1400, mK1400, mrho, mrho, mrho, mrho, mrho };
239 double width1[11] = { GKst0, GKst0, GKstp, GK1270, GKstp, GKst0,
240 GA1, GA1, GOmega, GKst0, GKst0 };
241 double width2[11] = { Grho, Grho, Grho0, Grho, GK1400, GK1400,
242 Grho, Grho, Grho, mrho, mrho };
244 calEvaMy( Kp, Pip, Pim,
Pi0, mass1, mass2, width1, width2, rho, phi, g0,
g1, g2, modetype,
245 nstates, value, q1270 );
250double EvtDsToKpPipPimPi0::CalRho4pi(
double s ) {
271TComplex EvtDsToKpPipPimPi0::ResonanceSkm(
double&
m2 ) {
272 double g11 = 0.22889, g12 = -0.55377, g13 = 0.00, g14 = -0.39899, g15 = -0.34639;
273 double g21 = 0.94128, g22 = 0.55095, g23 = 0.00, g24 = 0.39065, g25 = 0.31503;
274 double g31 = 0.36856, g32 = 0.23888, g33 = 0.55639, g34 = 0.18340, g35 = 0.18681;
275 double g41 = 0.33650, g42 = 0.40907, g43 = 0.85679, g44 = 0.19906, g45 = -0.00984;
276 double g51 = 0.18171, g52 = -0.17558, g53 = -0.79658, g54 = -0.00355, g55 = 0.22358;
277 double fs11 = 0.23399, fs12 = 0.15044, fs13 = -0.20545, fs14 = 0.32825, fs15 = 0.35412;
278 double m_1 = 0.65100, m_2 = 1.20360, m_3 = 1.55817, m_4 = 1.21000, m_5 = 1.82206;
279 double ss0 = -3.92637;
283 const double mass_Eta = 0.547862;
284 const double mass_Etap = 0.95778;
286 double km11 = ( g11 * g11 / ( m_1 * m_1 -
m2 ) + g21 * g21 / ( m_2 * m_2 -
m2 ) +
287 g31 * g31 / ( m_3 * m_3 -
m2 ) + g41 * g41 / ( m_4 * m_4 -
m2 ) +
288 g51 * g51 / ( m_5 * m_5 -
m2 ) + fs11 * ( 1 - ss0 ) / (
m2 - ss0 ) ) *
289 ( 1 - sA0 ) / (
m2 - sA0 ) * (
m2 - sA * mass_Pion * mass_Pion * 0.5 );
290 double km12 = ( g11 * g12 / ( m_1 * m_1 -
m2 ) + g21 * g22 / ( m_2 * m_2 -
m2 ) +
291 g31 * g32 / ( m_3 * m_3 -
m2 ) + g41 * g42 / ( m_4 * m_4 -
m2 ) +
292 g51 * g52 / ( m_5 * m_5 -
m2 ) + fs12 * ( 1 - ss0 ) / (
m2 - ss0 ) ) *
293 ( 1 - sA0 ) / (
m2 - sA0 ) * (
m2 - sA * mass_Pion * mass_Pion * 0.5 );
294 double km13 = ( g11 * g13 / ( m_1 * m_1 -
m2 ) + g21 * g23 / ( m_2 * m_2 -
m2 ) +
295 g31 * g33 / ( m_3 * m_3 -
m2 ) + g41 * g43 / ( m_4 * m_4 -
m2 ) +
296 g51 * g53 / ( m_5 * m_5 -
m2 ) + fs13 * ( 1 - ss0 ) / (
m2 - ss0 ) ) *
297 ( 1 - sA0 ) / (
m2 - sA0 ) * (
m2 - sA * mass_Pion * mass_Pion * 0.5 );
298 double km14 = ( g11 * g14 / ( m_1 * m_1 -
m2 ) + g21 * g24 / ( m_2 * m_2 -
m2 ) +
299 g31 * g34 / ( m_3 * m_3 -
m2 ) + g41 * g44 / ( m_4 * m_4 -
m2 ) +
300 g51 * g54 / ( m_5 * m_5 -
m2 ) + fs14 * ( 1 - ss0 ) / (
m2 - ss0 ) ) *
301 ( 1 - sA0 ) / (
m2 - sA0 ) * (
m2 - sA * mass_Pion * mass_Pion * 0.5 );
302 double km15 = ( g11 * g15 / ( m_1 * m_1 -
m2 ) + g21 * g25 / ( m_2 * m_2 -
m2 ) +
303 g31 * g35 / ( m_3 * m_3 -
m2 ) + g41 * g45 / ( m_4 * m_4 -
m2 ) +
304 g51 * g55 / ( m_5 * m_5 -
m2 ) + fs15 * ( 1 - ss0 ) / (
m2 - ss0 ) ) *
305 ( 1 - sA0 ) / (
m2 - sA0 ) * (
m2 - sA * mass_Pion * mass_Pion * 0.5 );
306 double km21 = km12, km31 = km13, km41 = km14, km51 = km15;
307 double km23 = ( g12 * g13 / ( m_1 * m_1 -
m2 ) + g22 * g23 / ( m_2 * m_2 -
m2 ) +
308 g32 * g33 / ( m_3 * m_3 -
m2 ) + g42 * g43 / ( m_4 * m_4 -
m2 ) +
309 g52 * g53 / ( m_5 * m_5 -
m2 ) ) *
310 ( 1 - sA0 ) / (
m2 - sA0 ) * (
m2 - sA * mass_Pion * mass_Pion * 0.5 );
311 double km24 = ( g12 * g14 / ( m_1 * m_1 -
m2 ) + g22 * g24 / ( m_2 * m_2 -
m2 ) +
312 g32 * g34 / ( m_3 * m_3 -
m2 ) + g42 * g44 / ( m_4 * m_4 -
m2 ) +
313 g52 * g54 / ( m_5 * m_5 -
m2 ) ) *
314 ( 1 - sA0 ) / (
m2 - sA0 ) * (
m2 - sA * mass_Pion * mass_Pion * 0.5 );
315 double km25 = ( g12 * g15 / ( m_1 * m_1 -
m2 ) + g22 * g25 / ( m_2 * m_2 -
m2 ) +
316 g32 * g35 / ( m_3 * m_3 -
m2 ) + g42 * g45 / ( m_4 * m_4 -
m2 ) +
317 g52 * g55 / ( m_5 * m_5 -
m2 ) ) *
318 ( 1 - sA0 ) / (
m2 - sA0 ) * (
m2 - sA * mass_Pion * mass_Pion * 0.5 );
319 double km32 = km23, km42 = km24, km52 = km25;
320 double km34 = ( g13 * g14 / ( m_1 * m_1 -
m2 ) + g23 * g24 / ( m_2 * m_2 -
m2 ) +
321 g33 * g34 / ( m_3 * m_3 -
m2 ) + g43 * g44 / ( m_4 * m_4 -
m2 ) +
322 g53 * g54 / ( m_5 * m_5 -
m2 ) ) *
323 ( 1 - sA0 ) / (
m2 - sA0 ) * (
m2 - sA * mass_Pion * mass_Pion * 0.5 );
324 double km35 = ( g13 * g15 / ( m_1 * m_1 -
m2 ) + g23 * g25 / ( m_2 * m_2 -
m2 ) +
325 g33 * g35 / ( m_3 * m_3 -
m2 ) + g43 * g45 / ( m_4 * m_4 -
m2 ) +
326 g53 * g55 / ( m_5 * m_5 -
m2 ) ) *
327 ( 1 - sA0 ) / (
m2 - sA0 ) * (
m2 - sA * mass_Pion * mass_Pion * 0.5 );
328 double km43 = km34, km53 = km35;
329 double km45 = ( g14 * g15 / ( m_1 * m_1 -
m2 ) + g24 * g25 / ( m_2 * m_2 -
m2 ) +
330 g34 * g35 / ( m_3 * m_3 -
m2 ) + g44 * g45 / ( m_4 * m_4 -
m2 ) +
331 g54 * g55 / ( m_5 * m_5 -
m2 ) ) *
332 ( 1 - sA0 ) / (
m2 - sA0 ) * (
m2 - sA * mass_Pion * mass_Pion * 0.5 );
334 double km22 = ( g12 * g12 / ( m_1 * m_1 -
m2 ) + g22 * g22 / ( m_2 * m_2 -
m2 ) +
335 g32 * g32 / ( m_3 * m_3 -
m2 ) + g42 * g42 / ( m_4 * m_4 -
m2 ) +
336 g52 * g52 / ( m_5 * m_5 -
m2 ) ) *
337 ( 1 - sA0 ) / (
m2 - sA0 ) * (
m2 - sA * mass_Pion * mass_Pion * 0.5 );
338 double km33 = ( g13 * g13 / ( m_1 * m_1 -
m2 ) + g23 * g23 / ( m_2 * m_2 -
m2 ) +
339 g33 * g33 / ( m_3 * m_3 -
m2 ) + g43 * g43 / ( m_4 * m_4 -
m2 ) +
340 g53 * g53 / ( m_5 * m_5 -
m2 ) ) *
341 ( 1 - sA0 ) / (
m2 - sA0 ) * (
m2 - sA * mass_Pion * mass_Pion * 0.5 );
342 double km44 = ( g14 * g14 / ( m_1 * m_1 -
m2 ) + g24 * g24 / ( m_2 * m_2 -
m2 ) +
343 g34 * g34 / ( m_3 * m_3 -
m2 ) + g44 * g44 / ( m_4 * m_4 -
m2 ) +
344 g54 * g54 / ( m_5 * m_5 -
m2 ) ) *
345 ( 1 - sA0 ) / (
m2 - sA0 ) * (
m2 - sA * mass_Pion * mass_Pion * 0.5 );
346 double km55 = ( g15 * g15 / ( m_1 * m_1 -
m2 ) + g25 * g25 / ( m_2 * m_2 -
m2 ) +
347 g35 * g35 / ( m_3 * m_3 -
m2 ) + g45 * g45 / ( m_4 * m_4 -
m2 ) +
348 g55 * g55 / ( m_5 * m_5 -
m2 ) ) *
349 ( 1 - sA0 ) / (
m2 - sA0 ) * (
m2 - sA * mass_Pion * mass_Pion * 0.5 );
360 TComplex P1 = fp11 * ( 1 - sp0 ) / (
m2 - sp0 ) + beta1 * g11 / ( m_1 * m_1 -
m2 ) +
361 beta2 * g21 / ( m_2 * m_2 -
m2 ) + beta3 * g31 / ( m_3 * m_3 -
m2 ) +
362 beta4 * g41 / ( m_4 * m_4 -
m2 ) + beta5 * g51 / ( m_5 * m_5 -
m2 );
363 TComplex P2 = fp12 * ( 1 - sp0 ) / (
m2 - sp0 ) + beta1 * g12 / ( m_1 * m_1 -
m2 ) +
364 beta2 * g22 / ( m_2 * m_2 -
m2 ) + beta3 * g32 / ( m_3 * m_3 -
m2 ) +
365 beta4 * g42 / ( m_4 * m_4 -
m2 ) + beta5 * g52 / ( m_5 * m_5 -
m2 );
366 TComplex P3 = fp13 * ( 1 - sp0 ) / (
m2 - sp0 ) + beta1 * g13 / ( m_1 * m_1 -
m2 ) +
367 beta2 * g23 / ( m_2 * m_2 -
m2 ) + beta3 * g33 / ( m_3 * m_3 -
m2 ) +
368 beta4 * g43 / ( m_4 * m_4 -
m2 ) + beta5 * g53 / ( m_5 * m_5 -
m2 );
369 TComplex P4 = fp14 * ( 1 - sp0 ) / (
m2 - sp0 ) + beta1 * g14 / ( m_1 * m_1 -
m2 ) +
370 beta2 * g24 / ( m_2 * m_2 -
m2 ) + beta3 * g34 / ( m_3 * m_3 -
m2 ) +
371 beta4 * g44 / ( m_4 * m_4 -
m2 ) + beta5 * g54 / ( m_5 * m_5 -
m2 );
372 TComplex P5 = fp15 * ( 1 - sp0 ) / (
m2 - sp0 ) + beta1 * g15 / ( m_1 * m_1 -
m2 ) +
373 beta2 * g25 / ( m_2 * m_2 -
m2 ) + beta3 * g35 / ( m_3 * m_3 -
m2 ) +
374 beta4 * g45 / ( m_4 * m_4 -
m2 ) + beta5 * g55 / ( m_5 * m_5 -
m2 );
376 TMatrixD MI( 5, 5 ), MA( 5, 5 ), MA_invt( 5, 5 ), MB( 5, 5 ), KM( 5, 5 ), RhoA( 5, 5 ),
377 RhoB( 5, 5 ), MRe( 5, 5 ), MIm( 5, 5 );
382 TMatrixDRow( KM, 0 )( 0 ) = km11;
383 TMatrixDRow( KM, 1 )( 0 ) = km21;
384 TMatrixDRow( KM, 2 )( 0 ) = km31;
385 TMatrixDRow( KM, 3 )( 0 ) = km41;
386 TMatrixDRow( KM, 4 )( 0 ) = km51;
387 TMatrixDRow( KM, 0 )( 1 ) = km12;
388 TMatrixDRow( KM, 1 )( 1 ) = km22;
389 TMatrixDRow( KM, 2 )( 1 ) = km32;
390 TMatrixDRow( KM, 3 )( 1 ) = km42;
391 TMatrixDRow( KM, 4 )( 1 ) = km52;
392 TMatrixDRow( KM, 0 )( 2 ) = km13;
393 TMatrixDRow( KM, 1 )( 2 ) = km23;
394 TMatrixDRow( KM, 2 )( 2 ) = km33;
395 TMatrixDRow( KM, 3 )( 2 ) = km43;
396 TMatrixDRow( KM, 4 )( 2 ) = km53;
397 TMatrixDRow( KM, 0 )( 3 ) = km14;
398 TMatrixDRow( KM, 1 )( 3 ) = km24;
399 TMatrixDRow( KM, 2 )( 3 ) = km34;
400 TMatrixDRow( KM, 3 )( 3 ) = km44;
401 TMatrixDRow( KM, 4 )( 3 ) = km54;
402 TMatrixDRow( KM, 0 )( 4 ) = km15;
403 TMatrixDRow( KM, 1 )( 4 ) = km25;
404 TMatrixDRow( KM, 2 )( 4 ) = km35;
405 TMatrixDRow( KM, 3 )( 4 ) = km45;
406 TMatrixDRow( KM, 4 )( 4 ) = km55;
408 TMatrixDRow( RhoA, 0 )( 0 ) = sqrt( 1.0 - 4.0 * mass_Pion * mass_Pion /
m2 );
409 TMatrixDRow( RhoB, 0 )( 0 ) = 0.0;
410 if ( ( 1.0 - 4.0 * mass_Kaon * mass_Kaon /
m2 ) > 0 )
412 TMatrixDRow( RhoA, 1 )( 1 ) = sqrt( 1.0 - 4.0 * mass_Kaon * mass_Kaon /
m2 );
413 TMatrixDRow( RhoB, 1 )( 1 ) = 0.0;
417 TMatrixDRow( RhoA, 1 )( 1 ) = 0.0;
418 TMatrixDRow( RhoB, 1 )( 1 ) = sqrt( 4.0 * mass_Kaon * mass_Kaon /
m2 - 1.0 );
420 TMatrixDRow( RhoA, 2 )( 2 ) = CalRho4pi(
m2 );
421 TMatrixDRow( RhoB, 2 )( 2 ) = 0.0;
422 if ( ( 1.0 - 4.0 * mass_Eta * mass_Eta /
m2 ) > 0 )
424 TMatrixDRow( RhoA, 3 )( 3 ) = sqrt( 1.0 - 4.0 * mass_Eta * mass_Eta /
m2 );
425 TMatrixDRow( RhoB, 3 )( 3 ) = 0.0;
429 TMatrixDRow( RhoA, 3 )( 3 ) = 0.0;
430 TMatrixDRow( RhoB, 3 )( 3 ) = sqrt( 4.0 * mass_Eta * mass_Eta /
m2 - 1.0 );
432 TMatrixDRow( RhoA, 4 )( 4 ) = 0.0;
433 TMatrixDRow( RhoB, 4 )( 4 ) =
434 sqrt( ( mass_Eta + mass_Etap ) * ( mass_Eta + mass_Etap ) /
m2 - 1.0 );
437 MB = -1.0 * KM * RhoA;
440 MRe = MA + MB * MA_invt * MB;
442 MIm = MA_invt * MB * MRe;
446 amp = ( ciR * TMatrixDRow( MRe, 0 )( 0 ) - ciM * TMatrixDRow( MIm, 0 )( 0 ) ) * P1 +
447 ( ciR * TMatrixDRow( MRe, 0 )( 1 ) - ciM * TMatrixDRow( MIm, 0 )( 1 ) ) * P2 +
448 ( ciR * TMatrixDRow( MRe, 0 )( 2 ) - ciM * TMatrixDRow( MIm, 0 )( 2 ) ) * P3 +
449 ( ciR * TMatrixDRow( MRe, 0 )( 3 ) - ciM * TMatrixDRow( MIm, 0 )( 3 ) ) * P4 +
450 ( ciR * TMatrixDRow( MRe, 0 )( 4 ) - ciM * TMatrixDRow( MIm, 0 )( 4 ) ) * P5;
453void EvtDsToKpPipPimPi0::KPiSLASS(
double sa,
double sb,
double sc,
double prop[2] ) {
454 const double m1430 = 1.463;
455 const double sa0 = 2.140369;
456 const double w1430 = 0.233;
457 const double Lass1 = 0.25 / sa0;
458 double tmp = sb - sc;
459 double tmp1 = sa0 + tmp;
460 double q0 = Lass1 * tmp1 * tmp1 - sb;
461 if ( q0 < 0 ) q0 = 1e-16;
462 double tmp2 = sa + tmp;
463 double qs = 0.25 * tmp2 * tmp2 / sa - sb;
464 double q = sqrt( qs );
465 double width = w1430 *
q * m1430 / sqrt( sa * q0 );
466 double temp_R = atan( m1430 * width / ( sa0 - sa ) );
467 if ( temp_R < 0 ) temp_R += math_pi;
468 double deltaR = -5.31 + temp_R;
469 double temp_F = atan( 2.14 *
q / ( 2.0 - 1.926 * qs ) );
470 if ( temp_F < 0 ) temp_F += math_pi;
471 double deltaF = 2.33 + temp_F;
472 double deltaS = deltaR + 2.0 * deltaF;
473 double t1 = 0.8 *
sin( deltaF );
474 double t2 =
sin( deltaR );
476 CF[0] =
cos( deltaF );
477 CF[1] =
sin( deltaF );
478 CS[0] =
cos( deltaS );
479 CS[1] =
sin( deltaS );
480 prop[0] = t1 * CF[0] + t2 *
CS[0];
481 prop[1] = t1 * CF[1] + t2 *
CS[1];
484void EvtDsToKpPipPimPi0::Com_Multi(
double a1[2],
double a2[2],
double res[2] ) {
485 res[0] = a1[0] * a2[0] - a1[1] * a2[1];
486 res[1] = a1[1] * a2[0] + a1[0] * a2[1];
488void EvtDsToKpPipPimPi0::Com_Divide(
double a1[2],
double a2[2],
double res[2] ) {
489 res[0] = ( a1[0] * a2[0] + a1[1] * a2[1] ) / ( a2[0] * a2[0] + a2[1] * a2[1] );
490 res[1] = ( a1[1] * a2[0] - a1[0] * a2[1] ) / ( a2[0] * a2[0] + a2[1] * a2[1] );
492double EvtDsToKpPipPimPi0::SCADot(
double a1[4],
double a2[4] ) {
494 _cal = a1[0] * a2[0] - a1[1] * a2[1] - a1[2] * a2[2] - a1[3] * a2[3];
497double EvtDsToKpPipPimPi0::barrier(
int l,
double sa,
double sb,
double sc,
double r,
499 double q = ( sa + sb - sc ) * ( sa + sb - sc ) / ( 4 * sa ) - sb;
507 double q0 = ( sa0 + sb - sc ) * ( sa0 + sb - sc ) / ( 4 * sa0 ) - sb;
509 if ( q0 < 0 ) q0 = -q0;
510 double z0 = q0 * r * r;
513 if ( l == 1 ) F = sqrt( ( 1 + z0 ) / ( 1 + z ) );
514 if ( l == 2 ) F = sqrt( ( 9 + 3 * z0 + z0 * z0 ) / ( 9 + 3 * z + z * z ) );
519void EvtDsToKpPipPimPi0::calt1(
double daug1[4],
double daug0[4],
double t1[4] ) {
522 for (
int i = 0; i < 4; i++ )
524 pa[i] = daug1[i] + daug0[i];
525 qa[i] = daug1[i] - daug0[i];
527 p = SCADot( pa, pa );
528 pq = SCADot( pa, qa );
529 for (
int i = 0; i < 4; i++ ) { t1[i] = qa[i] - pq / p * pa[i]; }
531void EvtDsToKpPipPimPi0::calt2(
double daug1[4],
double daug0[4],
double t2[4][4] ) {
534 calt1( daug1, daug0, t1 );
535 r = SCADot( t1, t1 ) / 3.0;
536 for (
int i = 0; i < 4; i++ ) { pa[i] = daug1[i] + daug0[i]; }
537 p = SCADot( pa, pa );
538 for (
int i = 0; i < 4; i++ )
540 for (
int j = 0; j < 4; j++ )
541 { t2[i][j] = t1[i] * t1[j] - r * ( G[i][j] - pa[i] * pa[j] / p ); }
545double EvtDsToKpPipPimPi0::wid(
double mass2,
double mass,
double sa,
double sb,
double sc,
548 double m = sqrt( sa );
549 double tmp = sb - sc;
550 double tmp1 = sa + tmp;
551 double q = 0.25 * tmp1 * tmp1 / sa - sb;
554 double tmp2 = mass2 + tmp;
555 double q0 = 0.25 * tmp2 * tmp2 / mass2 - sb;
557 if ( q0 < 0 ) q0 = -q0;
558 double z =
q * r * r;
559 double z0 = q0 * r * r;
561 if ( l == 0 ) { widm = sqrt(
t ) *
mass / m; }
562 else if ( l == 1 ) { widm =
t * sqrt(
t ) *
mass / m * ( 1 + z0 ) / ( 1 + z ); }
564 { widm =
t *
t * sqrt(
t ) *
mass / m * ( 9 + 3 * z0 + z0 * z0 ) / ( 9 + 3 * z + z * z ); }
567double EvtDsToKpPipPimPi0::widl1(
double mass2,
double mass,
double sa,
double sb,
double sc,
570 double m = sqrt( sa );
571 double tmp = sb - sc;
572 double tmp1 = sa + tmp;
573 double q = 0.25 * tmp1 * tmp1 / sa - sb;
576 double tmp2 = mass2 + tmp;
577 double q0 = 0.25 * tmp2 * tmp2 / mass2 - sb;
579 if ( q0 < 0 ) q0 = -q0;
580 double z =
q * r * r;
581 double z0 = q0 * r * r;
582 double F = ( 1 + z0 ) / ( 1 + z );
584 widm =
t * sqrt(
t ) *
mass / m * F;
587void EvtDsToKpPipPimPi0::propagatorNBW(
double mass2,
double mass,
double width,
double sa,
588 double sb,
double sc,
double r,
int l,
594 b[1] = -
mass * width;
595 Com_Divide( a, b, prop );
598void EvtDsToKpPipPimPi0::propagatorRBW(
double mass2,
double mass,
double width,
double sa,
599 double sb,
double sc,
double r,
int l,
605 b[1] = -
mass * width * wid( mass2,
mass, sa, sb, sc, r, l );
606 Com_Divide( a, b, prop );
608void EvtDsToKpPipPimPi0::propagatorRBWl1(
double mass2,
double mass,
double width,
double sa,
609 double sb,
double sc,
double r,
double prop[2] )
617 b[1] = -
mass * width * widl1( mass2,
mass, sa, sb, sc, r );
618 Com_Divide( a, b, prop );
621void EvtDsToKpPipPimPi0::propagatorGS(
double mass2,
double mass,
double width,
double sa,
622 double sb,
double sc,
double r,
double prop[2] ) {
624 double tmp = sb - sc;
625 double tmp1 = sa + tmp;
626 double q2 = 0.25 * tmp1 * tmp1 / sa - sb;
628 if ( q2 < 0 ) q2 = -q2;
630 double tmp2 = mass2 + tmp;
631 double q02 = 0.25 * tmp2 * tmp2 / mass2 - sb;
633 if ( q02 < 0 ) q02 = -q02;
635 double q = sqrt( q2 );
636 double q0 = sqrt( q02 );
637 double m = sqrt( sa );
638 double q03 = q0 * q02;
639 double tmp3 = log(
mass + 2 * q0 ) + 1.2760418309;
641 double h = GS1 *
q / m * ( log( m + 2 *
q ) + 1.2760418309 );
642 double h0 = GS1 * q0 /
mass * tmp3;
643 double dh = h0 * ( 0.125 / q02 - 0.5 / mass2 ) + GS3 / mass2;
644 double d = GS2 / q02 * tmp3 + GS3 *
mass / q0 - GS4 *
mass / q03;
645 double f = mass2 / q03 * ( q2 * ( h - h0 ) + ( mass2 - sa ) * q02 * dh );
647 a[0] = 1.0 + d * width /
mass;
649 b[0] = mass2 - sa + width *
f;
650 b[1] = -
mass * width * widl1( mass2,
mass, sa, sb, sc, r );
651 Com_Divide( a, b, prop );
653void EvtDsToKpPipPimPi0::calEvaMy(
double* Kp,
double* Pip,
double* Pim,
double*
Pi0,
654 double* mass1,
double* mass2,
double* width1,
655 double* width2,
double* amp,
double* phase,
int* g0,
656 int*
g1,
int* g2,
int* modetype,
int nstates,
657 double& Result,
double& q1270 )
665 ( Pip[0] + Pim[0] ) * ( Pip[0] + Pim[0] ) - ( Pip[1] + Pim[1] ) * ( Pip[1] + Pim[1] ) -
666 ( Pip[2] + Pim[2] ) * ( Pip[2] + Pim[2] ) - ( Pip[3] + Pim[3] ) * ( Pip[3] + Pim[3] );
667 tmpswave = ResonanceSkm( spipi );
668 double realpipis = tmpswave.Re();
669 double imagpipis = tmpswave.Im();
671 double pKstr0[4], pKstrp[4], prhop[4], prhom[4], prho0[4], pK11[4], pK12[4], pK13[4], pA1[4],
673 for (
int i = 0; i != 4; i++ )
675 prhop[i] = Pip[i] + Pi0[i];
676 prhom[i] = Pim[i] + Pi0[i];
677 prho0[i] = Pim[i] + Pip[i];
678 pKstr0[i] = Kp[i] + Pim[i];
679 pKstrp[i] = Kp[i] + Pi0[i];
680 pK11[i] = pKstr0[i] + Pi0[i];
681 pK12[i] = Kp[i] + Pim[i];
682 pK13[i] = pKstr0[i] + Pip[i];
683 pA1[i] = prhop[i] + Pim[i];
684 pomega[i] = Pim[i] + Pip[i] + Pi0[i];
685 pD[i] = pKstr0[i] + prhop[i];
687 double spi0, spionp, spionm, skaon, srhop, srhom, srho0, sKst0, sKstp, sk11, sk12, sk13, sa1,
690 skaon = SCADot( Kp, Kp );
691 spionp = SCADot( Pip, Pip );
692 spionm = SCADot( Pim, Pim );
693 spi0 = SCADot( Pi0, Pi0 );
695 srhop = SCADot( prhop, prhop );
696 srhom = SCADot( prhom, prhom );
697 srho0 = SCADot( prho0, prho0 );
698 somega = SCADot( pomega, pomega );
700 sKst0 = SCADot( pKstr0, pKstr0 );
701 sKstp = SCADot( pKstrp, pKstrp );
702 sk11 = SCADot( pK11, pK11 );
703 sk12 = SCADot( pK12, pK12 );
704 sk13 = SCADot( pK13, pK13 );
705 sa1 = SCADot( pA1, pA1 );
706 sD = SCADot( pD, pD );
708 double t2A1[4][4], t2A2[4][4], t2A3[4][4], t1rhom[4], t1rhop[4], t1rho0[4], t1Kst0[4],
709 t1Kstp[4], t2k11[4][4], t2k12[4][4];
710 double t1K1_KPi[4], t2k21[4][4], t2k22[4][4], t1A3[4];
711 calt1( Pip, Pi0, t1rhop );
712 calt1( Pim, Pi0, t1rhom );
713 calt1( Pim, Pip, t1rho0 );
715 calt1( Kp, Pim, t1Kst0 );
716 calt1( Kp, Pi0, t1Kstp );
717 calt1( Kp, Pim, t1K1_KPi );
719 calt1( prho0, Pi0, t1A3 );
721 calt2( prhop, Pim, t2A1 );
722 calt2( prhom, Pip, t2A2 );
723 calt2( prho0, Pi0, t2A3 );
725 calt2( pKstr0, Pi0, t2k11 );
726 calt2( pKstrp, Pim, t2k12 );
728 calt2( prhom, Kp, t2k21 );
729 calt2( prho0, Kp, t2k22 );
731 double B_rhop = -1.0, B_rhom = -1.0, B_Kst0rhop1 = -1.0, B_Kst0rhop2 = -1.0;
732 double B_Kst0 = -1.0, B_K1_KPi = -1.0, B_K1rhop1 = -1.0, B_K1rhop2 = -1.0;
733 double B_Kstp = -1.0, B_K1rho = -1.0, B_D_K1rho = -1.0, B_RhopKs1 = -1.0;
734 double B_K1_Kst0pi0 = -1.0, B_D_K1Pi = -1.0, B_K1_Kstppim = -1.0, B_K1Kstp2 = -1.0;
735 double B_D_A1 = -1.0, B_D_A2 = -1.0, B_rho0 = -1.0, B_Rho0Ks1 = -1.0;
736 double B_K1PiPi = -1.0, B_K14_1 = -1.0, B_K14_2 = -1.0;
737 double B_Kstprho01 = -1.0, B_Kstprho02 = -1.0;
739 double cof[2], amp_tmp[2], amp_PDF[2], PDF[2];
742 double mass1sq, mass2sq, tt1, tt2, tt21, tt22, tt23, tt3, qqq = 10, qqq0 = 10, nq = 0;
743 double temp_PDF, tmp1, tmp3, temp_PDF1;
744 double pro[2], pro0[2], pro1[2], pro2[2], pro3[2], pro4[2];
745 double t1D[4], t2D[4][4], t1Ds_omega[4], B1_Ds_omega, B1_1V23;
746 int isKstp = 0.0, isKst0 = 0.0, isRhop = 0.0, isRhom = 0.0, isRho0 = 0.0, isKpPim_S = 0.0,
747 isPipPi0_S = 0.0, isf0 = 0.0, isPipPim_S = 0.0;
748 double proRhop[2], proRhom[2], proRho0[2], proKstp[2], proKst0[2], proKPi_S[2], proPiPi_S[2],
750 double temp_PDF11, temp_PDF12, temp_PDF13;
751 double pro0_11[2], pro0_12[2], pro0_13[2];
752 double pro_11[2], pro_12[2], pro_13[2];
754 for (
int i = 0; i < nstates; i++ )
761 cof[0] = amp[i] *
cos( phase[i] );
762 cof[1] = amp[i] *
sin( phase[i] );
763 mass1sq = mass1[i] * mass1[i];
764 mass2sq = mass2[i] * mass2[i];
766 if ( modetype[i] == 1 )
768 if ( B_Kst0 < 0.0 ) B_Kst0 = barrier( 1, sKst0, skaon, spionm, rRes1, mass1[i] );
769 if ( B_rhop < 0.0 ) B_rhop = barrier( 1, srhop, spionp, spi0, rRes1, mass2[i] );
772 for (
int w = 0;
w < 4;
w++ ) { temp_PDF += G[
w][
w] * t1Kst0[
w] * t1rhop[
w]; }
773 tmp1 = B_Kst0 * B_rhop * temp_PDF;
775 else if ( g2[i] == 1 )
777 calt1( pKstr0, prhop, t1D );
778 for (
int w = 0;
w < 4;
w++ )
780 tt1 = pD[
w] * G[
w][
w];
781 for (
int j = 0; j < 4; j++ )
783 tt2 = t1D[j] * G[j][j];
784 for (
int k = 0; k < 4; k++ )
786 tt3 = t1Kst0[k] * G[k][k];
787 for (
int l = 0; l < 4; l++ )
788 { temp_PDF += E[
w][j][k][l] * tt1 * tt2 * tt3 * t1rhop[l] * G[l][l]; }
792 if ( B_Kst0rhop1 < 0.0 )
794 B_Kst0rhop1 = barrier( 1, sD, sKst0, srhop, rD2, mDsM );
795 tmp1 = B_Kst0 * B_rhop * B_Kst0rhop1 * temp_PDF;
798 else if ( g2[i] == 2 )
800 calt2( pKstr0, prhop, t2D );
801 for (
int w = 0;
w < 4;
w++ )
803 tt1 = t1Kst0[
w] * G[
w][
w];
804 for (
int j = 0; j < 4; j++ ) { temp_PDF += t2D[
w][j] * t1rhop[j] * G[j][j] * tt1; }
806 if ( B_Kst0rhop2 < 0.0 )
808 B_Kst0rhop2 = barrier( 2, sD, sKst0, srhop, rD2, mDsM );
809 tmp1 = B_Kst0 * B_rhop * B_Kst0rhop2 * temp_PDF;
814 propagatorGS( mass2sq, mass2[i], width2[i], srhop, spionp, spi0, rRes1,
819 { propagatorRBWl1( mass1sq, mass1[i], width1[i], sKst0, skaon, spionm, rRes1, pro0 ); }
820 else if ( g0[i] == 0 )
827 pro1[0] = proRhop[0];
828 pro1[1] = proRhop[1];
830 else if (
g1[i] == 0 )
835 Com_Multi( pro0, pro1, pro );
836 amp_tmp[0] = tmp1 * pro[0];
837 amp_tmp[1] = tmp1 * pro[1];
839 if ( modetype[i] == 2 )
841 if ( B_Kstp < 0.0 ) B_Kstp = barrier( 1, sKstp, skaon, spi0, rRes1, mass1[i] );
842 if ( B_rho0 < 0.0 ) B_rho0 = barrier( 1, srho0, spionp, spionm, rRes1, mass2[i] );
845 for (
int w = 0;
w < 4;
w++ ) { temp_PDF += G[
w][
w] * t1Kstp[
w] * t1rho0[
w]; }
846 tmp1 = B_Kstp * B_rho0 * temp_PDF;
848 else if ( g2[i] == 1 )
850 calt1( pKstrp, prho0, t1D );
851 for (
int w = 0;
w < 4;
w++ )
853 tt1 = pD[
w] * G[
w][
w];
854 for (
int j = 0; j < 4; j++ )
856 tt2 = t1D[j] * G[j][j];
857 for (
int k = 0; k < 4; k++ )
859 tt3 = t1Kstp[k] * G[k][k];
860 for (
int l = 0; l < 4; l++ )
861 { temp_PDF += E[
w][j][k][l] * tt1 * tt2 * tt3 * t1rho0[l] * G[l][l]; }
865 if ( B_Kstprho01 < 0.0 )
867 B_Kstprho01 = barrier( 1, sD, sKstp, srho0, rD2, mDsM );
868 tmp1 = B_Kstp * B_rho0 * B_Kstprho01 * temp_PDF;
871 else if ( g2[i] == 2 )
873 calt2( pKstrp, prho0, t2D );
874 for (
int w = 0;
w < 4;
w++ )
876 tt1 = t1Kstp[
w] * G[
w][
w];
877 for (
int j = 0; j < 4; j++ ) { temp_PDF += t2D[
w][j] * t1rho0[j] * G[j][j] * tt1; }
879 if ( B_Kstprho02 < 0.0 )
881 B_Kstprho02 = barrier( 2, sD, sKstp, srho0, rD2, mDsM );
882 tmp1 = B_Kstp * B_rho0 * B_Kstprho02 * temp_PDF;
887 propagatorGS( mass2sq, mass2[i], width2[i], srho0, spionp, spionm, rRes1,
892 { propagatorRBWl1( mass1sq, mass1[i], width1[i], sKstp, skaon, spi0, rRes1, pro0 ); }
893 else if ( g0[i] == 0 )
900 pro1[0] = proRho0[0];
901 pro1[1] = proRho0[1];
903 else if (
g1[i] == 0 )
908 Com_Multi( pro0, pro1, pro );
909 amp_tmp[0] = tmp1 * pro[0];
910 amp_tmp[1] = tmp1 * pro[1];
912 else if ( modetype[i] == 6 )
914 if ( B_D_A1 < 0.0 ) B_D_A1 = barrier( 1, sD, sa1, skaon, rD2, mDsM );
915 if ( B_rhop < 0.0 ) B_rhop = barrier( 1, srhop, spionp, spi0, rRes1, mass2[i] );
916 calt1( pA1, Kp, t1D );
919 for (
int w = 0;
w < 4;
w++ )
921 tt1 = t1D[
w] * G[
w][
w];
922 for (
int j = 0; j < 4; j++ )
923 { temp_PDF += tt1 * ( G[
w][j] - pA1[
w] * pA1[j] / sa1 ) * t1rhop[j] * G[j][j]; }
925 tmp1 = B_rhop * B_D_A1 * temp_PDF;
927 else if ( g2[i] == 2 )
929 for (
int w = 0;
w < 4;
w++ )
931 tt1 = t1D[
w] * G[
w][
w];
932 for (
int j = 0; j < 4; j++ ) { temp_PDF += tt1 * t2A1[
w][j] * t1rhop[j] * G[j][j]; }
934 if ( B_D_A2 < 0.0 ) B_D_A2 = barrier( 2, sa1, srhop, spionm, rRes1, mass1[i] );
935 tmp1 = B_rhop * B_D_A2 * B_D_A1 * temp_PDF;
939 propagatorGS( mass2sq, mass2[i], width2[i], srhop, spionp, spi0, rRes1, proRhop );
943 propagatorRBW( mass1sq, mass1[i], width1[i], sa1, srhop, spionm, rRes1, g2[i], pro0 );
944 else if ( g0[i] == 0 )
951 pro1[0] = proRhop[0];
952 pro1[1] = proRhop[1];
954 else if (
g1[i] == 0 )
959 Com_Multi( pro0, pro1, pro );
960 amp_tmp[0] = tmp1 * pro[0];
961 amp_tmp[1] = tmp1 * pro[1];
963 else if ( modetype[i] == 7 )
965 if ( B_D_A1 < 0.0 ) B_D_A1 = barrier( 1, sD, sa1, skaon, rD2, mDsM );
966 if ( B_rhom < 0.0 ) B_rhom = barrier( 1, srhom, spionm, spi0, rRes1, mass2[i] );
967 calt1( pA1, Kp, t1D );
970 for (
int w = 0;
w < 4;
w++ )
972 tt1 = t1D[
w] * G[
w][
w];
973 for (
int j = 0; j < 4; j++ )
974 { temp_PDF += tt1 * ( G[
w][j] - pA1[
w] * pA1[j] / sa1 ) * t1rhom[j] * G[j][j]; }
976 tmp1 = B_rhom * B_D_A1 * temp_PDF;
978 else if ( g2[i] == 2 )
980 for (
int w = 0;
w < 4;
w++ )
982 tt1 = t1D[
w] * G[
w][
w];
983 for (
int j = 0; j < 4; j++ ) { temp_PDF += tt1 * t2A2[
w][j] * t1rhom[j] * G[j][j]; }
985 if ( B_D_A2 < 0.0 ) B_D_A2 = barrier( 2, sa1, srhom, spionp, rRes1, mass1[i] );
986 tmp1 = B_rhom * B_D_A2 * B_D_A1 * temp_PDF;
990 propagatorGS( mass2sq, mass2[i], width2[i], srhom, spionm, spi0, rRes1, proRhom );
994 propagatorRBW( mass1sq, mass1[i], width1[i], sa1, srhom, spionp, rRes1, g2[i], pro0 );
995 else if ( g0[i] == 0 )
1002 pro1[0] = proRhom[0];
1003 pro1[1] = proRhom[1];
1005 else if (
g1[i] == 0 )
1010 Com_Multi( pro0, pro1, pro );
1011 amp_tmp[0] = -tmp1 * pro[0];
1012 amp_tmp[1] = -tmp1 * pro[1];
1015 else if ( modetype[i] == 10 )
1017 if ( B_rhom < 0.0 ) B_rhom = barrier( 1, srhom, spionm, spi0, rRes1, mass2[i] );
1019 if ( B_D_K1rho < 0.0 ) B_D_K1rho = barrier( 1, sD, sk11, spionp, rD2, mDsM );
1021 calt1( pK11, Pip, t1D );
1024 for (
int w = 0;
w < 4;
w++ )
1026 tt1 = t1D[
w] * G[
w][
w];
1027 for (
int j = 0; j < 4; j++ )
1028 { temp_PDF += tt1 * ( G[
w][j] - pK11[
w] * pK11[j] / sk11 ) * t1rhom[j] * G[j][j]; }
1030 tmp1 = B_rhom * B_D_K1rho * temp_PDF;
1032 else if ( g2[i] == 2 )
1034 for (
int w = 0;
w < 4;
w++ )
1036 tt1 = t1D[
w] * G[
w][
w];
1037 for (
int j = 0; j < 4; j++ )
1038 { temp_PDF += tt1 * t2k21[
w][j] * t1rhom[j] * G[j][j]; }
1040 if ( B_K1rho < 0.0 )
1042 B_K1rho = barrier( 2, sk11, srhom, skaon, rRes1, mass1[i] );
1043 tmp1 = B_rhom * B_K1rho * B_D_K1rho * temp_PDF;
1048 propagatorGS( mass2sq, mass2[i], width2[i], srhom, spionm, spi0, rRes1,
1053 qqq = 0.25 * ( sk11 + srhom - skaon ) * ( sk11 + srhom - skaon ) / sk11 - srhom;
1054 qqq0 = 0.25 * ( mK1270 + srhom - skaon ) * ( mK1270 + srhom - skaon ) / mK1270 - srhom;
1055 if ( qqq < 2e-4 )
continue;
1057 propagatorRBW( mass1sq, mass1[i], width1[i], sk11, srhom, skaon, rRes1, g2[i],
1060 else if ( g0[i] == 0 )
1067 pro1[0] = proRhom[0];
1068 pro1[1] = proRhom[1];
1070 else if (
g1[i] == 0 )
1075 Com_Multi( pro0, pro1, pro );
1076 amp_tmp[0] = tmp1 * pro[0];
1077 amp_tmp[1] = tmp1 * pro[1];
1079 else if ( modetype[i] == 11 )
1081 if ( B_D_K1Pi < 0.0 ) B_D_K1Pi = barrier( 1, sD, sk11, spionp, rD2, mDsM );
1082 if ( B_Kst0 < 0.0 ) B_Kst0 = barrier( 1, sKst0, skaon, spionm, rRes1, mass1[i] );
1083 calt1( pK11, Pip, t1D );
1086 for (
int w = 0;
w < 4;
w++ )
1088 tt1 = t1D[
w] * G[
w][
w];
1089 for (
int j = 0; j < 4; j++ )
1090 { temp_PDF += tt1 * ( G[
w][j] - pK11[
w] * pK11[j] / sk11 ) * t1Kst0[j] * G[j][j]; }
1092 tmp1 = B_Kst0 * B_D_K1Pi * temp_PDF;
1094 else if ( g2[i] == 2 )
1096 for (
int w = 0;
w < 4;
w++ )
1098 tt1 = t1D[
w] * G[
w][
w];
1099 for (
int j = 0; j < 4; j++ )
1100 { temp_PDF += tt1 * t2k11[
w][j] * t1Kst0[j] * G[j][j]; }
1102 if ( B_K1rhop2 < 0.0 ) B_K1rhop2 = barrier( 2, sk11, sKst0, spi0, rRes1, mass2[i] );
1103 tmp1 = B_Kst0 * B_K1rhop2 * B_D_K1Pi * temp_PDF;
1107 propagatorRBWl1( mass1sq, mass1[i], width1[i], sKst0, skaon, spionm, rRes1,
1113 pro0[0] = proKst0[0];
1114 pro0[1] = proKst0[1];
1116 else if ( g0[i] == 0 )
1123 propagatorRBW( mass2sq, mass2[i], width2[i], sk11, sKst0, spi0, rRes1, g2[i],
1126 else if (
g1[i] == 0 )
1131 Com_Multi( pro0, pro1, pro );
1132 amp_tmp[0] = tmp1 * pro[0];
1133 amp_tmp[1] = tmp1 * pro[1];
1135 else if ( modetype[i] == 12 )
1137 if ( B_D_K1Pi < 0.0 ) B_D_K1Pi = barrier( 1, sD, sk11, spionp, rD2, mDsM );
1138 if ( B_Kstp < 0.0 ) B_Kstp = barrier( 1, sKstp, skaon, spi0, rRes1, mass1[i] );
1139 calt1( pK11, Pip, t1D );
1142 for (
int w = 0;
w < 4;
w++ )
1144 tt1 = t1D[
w] * G[
w][
w];
1145 for (
int j = 0; j < 4; j++ )
1146 { temp_PDF1 += tt1 * ( G[
w][j] - pK11[
w] * pK11[j] / sk11 ) * t1Kstp[j] * G[j][j]; }
1148 tmp1 = B_Kstp * B_D_K1Pi * temp_PDF1;
1150 else if ( g2[i] == 2 )
1152 for (
int w = 0;
w < 4;
w++ )
1154 tt1 = t1D[
w] * G[
w][
w];
1155 for (
int j = 0; j < 4; j++ )
1156 { temp_PDF1 += tt1 * t2k12[
w][j] * t1Kstp[j] * G[j][j]; }
1158 if ( B_K1Kstp2 < 0.0 ) B_K1Kstp2 = barrier( 2, sk11, sKstp, spionm, rRes1, mass2[i] );
1159 tmp1 = B_Kstp * B_K1Kstp2 * B_D_K1Pi * temp_PDF1;
1163 propagatorRBWl1( mass1sq, mass1[i], width1[i], sKstp, skaon, spi0, rRes1,
1169 pro0[0] = proKstp[0];
1170 pro0[1] = proKstp[1];
1172 else if ( g0[i] == 0 )
1179 propagatorRBW( mass2sq, mass2[i], width2[i], sk11, sKstp, spionm, rRes1, g2[i],
1182 else if (
g1[i] == 0 )
1187 Com_Multi( pro0, pro1, pro );
1188 amp_tmp[0] = -tmp1 * pro[0];
1189 amp_tmp[1] = -tmp1 * pro[1];
1191 else if ( modetype[i] == 14 )
1193 double B1_omega1 = barrier( 1, somega, srhop, spionm, rRes1, mass1[i] );
1194 double B1_omega2 = barrier( 1, somega, srho0, spi0, rRes1, mass1[i] );
1195 double B1_omega3 = barrier( 1, somega, srhom, spionp, rRes1, mass1[i] );
1196 calt1( pomega, Kp, t1Ds_omega );
1197 double B1_1V11 = barrier( 1, srhop, spionp, spi0, rRes1, mrho );
1198 double B1_1V12 = barrier( 1, srho0, spionp, spionm, rRes1, mrho0 );
1199 double B1_1V13 = barrier( 1, srhom, spi0, spionm, rRes1, mrho );
1200 double B1_Ds_omega = barrier( 1, sD, somega, skaon, rD2, mDsM );
1201 for (
int w = 0;
w < 4;
w++ )
1203 tt1 = pomega[
w] * G[
w][
w];
1204 for (
int j = 0; j < 4; j++ )
1206 tt21 = ( prhop[j] - Pim[j] ) * G[j][j];
1207 tt22 = ( prho0[j] - Pi0[j] ) * G[j][j];
1208 tt23 = ( prhom[j] - Pip[j] ) * G[j][j];
1209 for (
int k = 0; k < 4; k++ )
1211 tt3 = Kp[k] * G[k][k];
1212 for (
int l = 0; l < 4; l++ )
1214 temp_PDF11 += E[
w][j][k][l] * tt1 * tt21 * tt3 * ( Pip[l] - Pi0[l] ) * G[l][l];
1215 temp_PDF12 += E[
w][j][k][l] * tt1 * tt22 * tt3 * ( Pip[l] - Pim[l] ) * G[l][l];
1216 temp_PDF13 += E[
w][j][k][l] * tt1 * tt23 * tt3 * ( Pim[l] - Pi0[l] ) * G[l][l];
1221 temp_PDF11 = temp_PDF11 * B1_Ds_omega * B1_omega1 * B1_1V11;
1222 temp_PDF12 = temp_PDF12 * B1_Ds_omega * B1_omega2 * B1_1V12;
1223 temp_PDF13 = temp_PDF13 * B1_Ds_omega * B1_omega3 * B1_1V13;
1224 double pro1V11[2], pro1V12[2], pro1V13[2];
1225 propagatorGS( mass2sq, mass2[i], width2[i], srhop, spionp, spi0, rRes1, pro1V11 );
1226 propagatorGS( mass2sq, mass2[i], width2[i], srho0, spionp, spionm, rRes1, pro1V12 );
1227 propagatorGS( mass2sq, mass2[i], width2[i], srhom, spi0, spionm, rRes1, pro1V13 );
1230 propagatorRBW( mass1sq, mass1[i], width1[i], somega, srhop, spionm, rRes1, 1,
1232 propagatorRBW( mass1sq, mass1[i], width1[i], somega, srho0, spi0, rRes1, 1, pro0_12 );
1233 propagatorRBW( mass1sq, mass1[i], width1[i], somega, srhom, spionp, rRes1, 1,
1236 else if ( g0[i] == 0 )
1245 Com_Multi( pro0_11, pro1V11, pro_11 );
1246 Com_Multi( pro0_12, pro1V12, pro_12 );
1247 Com_Multi( pro0_13, pro1V13, pro_13 );
1249 ( temp_PDF11 * pro_11[0] + temp_PDF12 * pro_12[0] + temp_PDF13 * pro_13[0] );
1251 ( temp_PDF11 * pro_11[1] + temp_PDF12 * pro_12[1] + temp_PDF13 * pro_13[1] );
1253 if ( modetype[i] == 15 )
1256 if ( isPipPi0_S == 0 )
1258 proPiPi_S[0] = realpipis;
1259 proPiPi_S[1] = imagpipis;
1262 if ( isKpPim_S == 0 )
1264 KPiSLASS( sKstp, skaon, spi0, proKPi_S );
1267 Com_Multi( proKPi_S, proPiPi_S, amp_tmp );
1269 else if ( modetype[i] == 16 )
1271 if ( B_D_A1 < 0.0 ) B_D_A1 = barrier( 1, sD, sa1, skaon, rD2, mDsM );
1272 if ( B_rhop < 0.0 ) B_rhop = barrier( 1, srhop, spionp, spi0, rRes1, mass2[i] );
1273 calt1( pA1, Kp, t1D );
1276 for (
int w = 0;
w < 4;
w++ )
1278 tt1 = t1D[
w] * G[
w][
w];
1279 for (
int j = 0; j < 4; j++ )
1280 { temp_PDF += tt1 * ( G[
w][j] - pA1[
w] * pA1[j] / sa1 ) * t1rhop[j] * G[j][j]; }
1282 tmp1 = B_rhop * B_D_A1 * temp_PDF;
1284 else if ( g2[i] == 2 )
1286 for (
int w = 0;
w < 4;
w++ )
1288 tt1 = t1D[
w] * G[
w][
w];
1289 for (
int j = 0; j < 4; j++ ) { temp_PDF += tt1 * t2A1[
w][j] * t1rhop[j] * G[j][j]; }
1291 if ( B_D_A2 < 0.0 ) B_D_A2 = barrier( 2, sa1, srhop, spionm, rRes1, mass1[i] );
1292 tmp1 = B_rhop * B_D_A2 * B_D_A1 * temp_PDF;
1296 propagatorGS( mass2sq, mass2[i], width2[i], srhop, spionp, spi0, rRes1, proRhop );
1300 propagatorRBW( mass1sq, mass1[i], width1[i], sa1, srhop, spionm, rRes1, g2[i], pro0 );
1301 else if ( g0[i] == 0 )
1308 pro1[0] = proRhop[0];
1309 pro1[1] = proRhop[1];
1311 else if (
g1[i] == 0 )
1316 Com_Multi( pro0, pro1, pro );
1317 amp_tmp[0] = tmp1 * pro[0];
1318 amp_tmp[1] = tmp1 * pro[1];
1320 else if ( modetype[i] == 17 )
1322 if ( B_D_A1 < 0.0 ) B_D_A1 = barrier( 1, sD, sa1, skaon, rD2, mDsM );
1323 if ( B_rhom < 0.0 ) B_rhom = barrier( 1, srhom, spionm, spi0, rRes1, mass2[i] );
1324 calt1( pA1, Kp, t1D );
1327 for (
int w = 0;
w < 4;
w++ )
1329 tt1 = t1D[
w] * G[
w][
w];
1330 for (
int j = 0; j < 4; j++ )
1331 { temp_PDF += tt1 * ( G[
w][j] - pA1[
w] * pA1[j] / sa1 ) * t1rhom[j] * G[j][j]; }
1333 tmp1 = B_rhom * B_D_A1 * temp_PDF;
1335 else if ( g2[i] == 2 )
1337 for (
int w = 0;
w < 4;
w++ )
1339 tt1 = t1D[
w] * G[
w][
w];
1340 for (
int j = 0; j < 4; j++ ) { temp_PDF += tt1 * t2A2[
w][j] * t1rhom[j] * G[j][j]; }
1342 if ( B_D_A2 < 0.0 ) B_D_A2 = barrier( 2, sa1, srhom, spionp, rRes1, mass1[i] );
1343 tmp1 = B_rhom * B_D_A2 * B_D_A1 * temp_PDF;
1347 propagatorGS( mass2sq, mass2[i], width2[i], srhom, spionm, spi0, rRes1, proRhom );
1351 propagatorRBW( mass1sq, mass1[i], width1[i], sa1, srhom, spionp, rRes1, g2[i], pro0 );
1352 else if ( g0[i] == 0 )
1359 pro1[0] = proRhom[0];
1360 pro1[1] = proRhom[1];
1362 else if (
g1[i] == 0 )
1367 Com_Multi( pro0, pro1, pro );
1368 amp_tmp[0] = -tmp1 * pro[0];
1369 amp_tmp[1] = -tmp1 * pro[1];
1371 Com_Multi( amp_tmp, cof, amp_PDF );
1372 PDF[0] += amp_PDF[0];
1373 PDF[1] += amp_PDF[1];
1374 double value = PDF[0] * PDF[0] + PDF[1] * PDF[1];
1375 if ( value <= 0 ) { value = 1e-20; }
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")
complex< double > TComplex
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 decay(EvtParticle *p)
virtual ~EvtDsToKpPipPimPi0()
void getName(std::string &name)
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)