BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
D0ToKSLKK.cxx
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2//
3// Environment:
4// This software is part of the EvtGen package developed jointly
5// for the BaBar and CLEO collaborations. If you use all or part
6// of it, please give an appropriate acknowledgement.
7//
8// Copyright Information: See EvtGen/COPYRIGHT
9// Copyright (C) 1998 Caltech, UCSB
10//
11// Module: EvtDDalitz.cc
12//
13// Description: Routine to handle three-body decays of D0/D0_bar or D+/D-
14//
15// Modification history:
16//
17// NK September 3, 1997 Module created
18//
19//------------------------------------------------------------------------
20//
21#include "D0ToKSLKK.h"
22#include "TMath.h"
23#include <complex>
24#include <fstream>
25#include <iostream>
26#include <math.h>
27#include <stdlib.h>
28#include <string>
29#include <vector>
30using namespace std;
31
33
34void D0ToKSLKK::init( int Daug0Id, int Uspin ) {
35
36 // std::cout << "D0ToKSLKK ==> Initialization !" << std::endl;
37
38 phi[0] = 0;
39 rho[0] = 1;
40 phi[1] = 3.42566005625144;
41 rho[1] = 0.481320242396153;
42 phi[2] = 3.38836604528211;
43 rho[2] = 0.692817392287617;
44 phi[3] = 2.09747486815378;
45 rho[3] = 0.642052025575875;
46 phi[4] = -1.19528927010597;
47 rho[4] = 0.363639226481389;
48
49 modetype[0] = 23;
50 modetype[1] = 23;
51 modetype[2] = 13;
52 modetype[3] = 13;
53 modetype[4] = 23;
54
55 if ( Uspin == 1 && Daug0Id == 130 )
56 {
57 // std::cout << "D0ToKLKK ==> Initialization !" << std::endl;
58 modetype[0] = 232;
59 modetype[1] = 232;
60 modetype[2] = 13;
61 modetype[3] = 13;
62 modetype[4] = 232;
63 }
64
65 /*for (int i=0; i<5; i++) {
66 cout << i << " rho= " << rho[i] << " phi= " << phi[i] << endl;
67 }*/
68
69 width[0] = 0.272;
70 width[1] = 0.004249;
71 width[2] = 0.272;
72 width[3] = 0.258;
73 width[4] = 0.258;
74
75 mass[0] = 0.919;
76 mass[1] = 1.019461;
77 mass[2] = 0.919;
78 mass[3] = 1.439;
79 mass[4] = 1.439;
80
81 mDM = 1.86484;
82 mK0 = 0.497614;
83 mKa = 0.49368;
84 mPi = 0.13957;
85 mEta = 0.547862;
86 mKa2 = 0.24371994; // 0.49368^2;
87 mPi2 = 0.01947978; // 0.13957^2;
88 mEta2 = 0.30015277; // 0.547862^2;
89 mass_EtaP = 0.95778;
90 mass_Kaon = 0.49368;
91 mass_KS = 0.4976;
92
93 math_pi = 3.1415926;
94 mass_Pion2 = 0.0194797849;
95 mass_2Pion = 0.27914;
96 math_2pi = 6.2831852;
97 rD2 = 25.0; // 5*5
98 rRes2 = 9.0; // 3*3
99 g2 = 0.23; // K*0(1430)
100
101 GS1 = 0.636619783;
102 GS2 = 0.01860182466;
103 GS3 = 0.1591549458; // 1/(2*math_2pi)
104 GS4 = 0.00620060822; // mass_Pion2/math_pi
105
106 rho_omega = 0.00294;
107 phi_omega = -0.02;
108
109 int GG[4][4] = { { 1, 0, 0, 0 }, { 0, -1, 0, 0 }, { 0, 0, -1, 0 }, { 0, 0, 0, -1 } };
110 for ( int i = 0; i < 4; i++ )
111 {
112 for ( int j = 0; j < 4; j++ ) { G[i][j] = GG[i][j]; }
113 }
114}
115
116complex<double> D0ToKSLKK::Amp( vector<double> k0l, vector<double> kp, vector<double> km,
117 int Daug0Id, int Uspin ) {
118
119 double P1[4], P2[4], P3[4];
120 P1[0] = k0l[3];
121 P1[1] = k0l[0];
122 P1[2] = k0l[1];
123 P1[3] = k0l[2];
124 P2[0] = km[3];
125 P2[1] = km[0];
126 P2[2] = km[1];
127 P2[3] = km[2];
128 P3[0] = kp[3];
129 P3[1] = kp[0];
130 P3[2] = kp[1];
131 P3[3] = kp[2];
132
133 if ( Daug0Id == 310 ) SorL = true;
134 else SorL = false;
135 // double value;
136 int spin[5] = { 0, 1, 0, 0, 0 };
137 double PDFD0[2];
138 if ( SorL )
139 {
140 int g0[5] = { 5, 1, 3, 1, 1 };
141 double r0[5] = { 3, 3, 3, 3, 3 };
142 double r1[5] = { 5, 5, 5, 5, 5 };
143 int nstates = 5;
144 // calEva(P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, r0, r1, value, 0,
145 // nstates,charge,SorL);
146 calPDF( P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, r0, r1, 0, nstates, PDFD0 );
147 }
148 else if ( ( !SorL ) && Uspin == 1 )
149 {
150 int g0[5] = { 5, 1, 3, 1, 1 };
151 double r0[5] = { 6.82071036651904, 2.89695915812383, 3, 3, -6.61721570909587 };
152 double r1[5] = { 1.80820371593891, -2.15090641236998, 5, 5, -0.972853397735864 };
153 int nstates = 5;
154 // calEva(P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, r0, r1, value, 0,
155 // nstates,charge,SorL);
156 calPDF( P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, r0, r1, 0, nstates, PDFD0 );
157 }
158 else
159 {
160 int g0[5] = { 5, 1, 3, 1, 1 };
161 double r0[5] = { 3, 3, 3, 3, 3 };
162 double r1[5] = { 5, 5, 5, 5, 5 };
163 int nstates = 5;
164 // calEva(P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, r0, r1, value, 0,
165 // nstates,charge,SorL);
166 calPDF( P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, r0, r1, 0, nstates, PDFD0 );
167 }
168
169 return complex<double>( PDFD0[0], PDFD0[1] );
170}
171
172void D0ToKSLKK::Com_Multi( double a1[2], double a2[2], double res[2] ) {
173 res[0] = a1[0] * a2[0] - a1[1] * a2[1];
174 res[1] = a1[1] * a2[0] + a1[0] * a2[1];
175}
176void D0ToKSLKK::Com_Divide( double a1[2], double a2[2], double res[2] ) {
177 double tmp = a2[0] * a2[0] + a2[1] * a2[1];
178 res[0] = ( a1[0] * a2[0] + a1[1] * a2[1] ) / tmp;
179 res[1] = ( a1[1] * a2[0] - a1[0] * a2[1] ) / tmp;
180}
181//------------base---------------------------------
182double D0ToKSLKK::SCADot( double a1[4], double a2[4] ) {
183 double _cal = a1[0] * a2[0] - a1[1] * a2[1] - a1[2] * a2[2] - a1[3] * a2[3];
184 return _cal;
185}
186double D0ToKSLKK::barrier( int l, double sa, double sb, double sc, double r, double mass ) {
187 double q = ( sa + sb - sc ) * ( sa + sb - sc ) / ( 4 * sa ) - sb;
188 // if(q < 0) q = 1e-16;
189 if ( q < 0 ) q = -q;
190 double z;
191 z = q * r * r;
192 double sa0;
193 sa0 = mass * mass;
194 double q0 = ( sa0 + sb - sc ) * ( sa0 + sb - sc ) / ( 4 * sa0 ) - sb;
195 // if(q0 < 0) q0 = 1e-16;
196 if ( q0 < 0 ) q0 = -q0;
197 double z0 = q0 * r * r;
198 double F = 0.0;
199 if ( l == 0 ) F = 1;
200 if ( l == 1 ) F = sqrt( ( 1 + z0 ) / ( 1 + z ) );
201 if ( l == 2 ) F = sqrt( ( 9 + 3 * z0 + z0 * z0 ) / ( 9 + 3 * z + z * z ) );
202 return F;
203}
204//------------------spin-------------------------------------------
205void D0ToKSLKK::calt1( double daug1[4], double daug2[4], double t1[4] ) {
206 double p, pq, tmp;
207 double pa[4], qa[4];
208 for ( int i = 0; i < 4; i++ )
209 {
210 pa[i] = daug1[i] + daug2[i];
211 qa[i] = daug1[i] - daug2[i];
212 }
213 p = SCADot( pa, pa );
214 pq = SCADot( pa, qa );
215 tmp = pq / p;
216 for ( int i = 0; i < 4; i++ ) { t1[i] = qa[i] - tmp * pa[i]; }
217}
218void D0ToKSLKK::calt2( double daug1[4], double daug2[4], double t2[4][4] ) {
219 double p, r;
220 double pa[4], t1[4];
221 calt1( daug1, daug2, t1 );
222 r = SCADot( t1, t1 ) / 3.0;
223 for ( int i = 0; i < 4; i++ ) { pa[i] = daug1[i] + daug2[i]; }
224 p = SCADot( pa, pa );
225 for ( int i = 0; i < 4; i++ )
226 {
227 for ( int j = 0; j < 4; j++ )
228 { t2[i][j] = t1[i] * t1[j] - r * ( G[i][j] - pa[i] * pa[j] / p ); }
229 }
230}
231//-------------------prop--------------------------------------------
232void D0ToKSLKK::propagatorCBW( double mass, double width, double sx, double prop[2] ) {
233 double a[2], b[2];
234 a[0] = 1;
235 a[1] = 0;
236 b[0] = mass * mass - sx;
237 b[1] = -mass * width;
238 Com_Divide( a, b, prop );
239}
240double D0ToKSLKK::wid( double mass2, double mass, double sa, double sb, double sc, double r2,
241 int l ) {
242 double widm = 0.;
243 double m = sqrt( sa );
244 double tmp = sb - sc;
245 double tmp1 = sa + tmp;
246 double q = 0.25 * tmp1 * tmp1 / sa - sb;
247 // if(q<0) q = 1e-16;
248 if ( q < 0 ) q = -q;
249 double tmp2 = mass2 + tmp;
250 double q0 = 0.25 * tmp2 * tmp2 / mass2 - sb;
251 // if(q0<0) q0 = 1e-16;
252 if ( q0 < 0 ) q0 = -q0;
253 double z = q * r2;
254 double z0 = q0 * r2;
255 double t = q / q0;
256 if ( l == 0 ) { widm = sqrt( t ) * mass / m; }
257 else if ( l == 1 ) { widm = t * sqrt( t ) * mass / m * ( 1 + z0 ) / ( 1 + z ); }
258 else if ( l == 2 )
259 { widm = t * t * sqrt( t ) * mass / m * ( 9 + 3 * z0 + z0 * z0 ) / ( 9 + 3 * z + z * z ); }
260 return widm;
261}
262double D0ToKSLKK::widl1( double mass2, double mass, double sa, double sb, double sc,
263 double r2 ) {
264 double widm = 0.;
265 double m = sqrt( sa );
266 double tmp = sb - sc;
267 double tmp1 = sa + tmp;
268 double q = 0.25 * tmp1 * tmp1 / sa - sb;
269 // if(q<0) q = 1e-16;
270 if ( q < 0 ) q = -q;
271 double tmp2 = mass2 + tmp;
272 double q0 = 0.25 * tmp2 * tmp2 / mass2 - sb;
273 // if(q0<0) q0 = 1e-16;
274 if ( q0 < 0 ) q0 = -q0;
275 double z = q * r2;
276 double z0 = q0 * r2;
277 double F = ( 1 + z0 ) / ( 1 + z );
278 double t = q / q0;
279 widm = t * sqrt( t ) * mass / m * F;
280 return widm;
281}
282void D0ToKSLKK::propagatorRBW( double mass, double width, double sa, double sb, double sc,
283 double r2, int l, double prop[2] ) {
284 double a[2], b[2];
285 double mass2 = mass * mass;
286
287 a[0] = 1;
288 a[1] = 0;
289 b[0] = mass2 - sa;
290 b[1] = -mass * width * wid( mass2, mass, sa, sb, sc, r2, l );
291 Com_Divide( a, b, prop );
292}
293
294void D0ToKSLKK::propagatorFlatte( double mass, double width, double sa, double prop[2] ) {
295
296 double q2_Pi, q2_Ka;
297 double rhoPi[2] = { 0.0, 0.0 }, rhoKa[2] = { 0.0, 0.0 };
298
299 q2_Pi = 0.25 * sa - mPi * mPi;
300 q2_Ka = 0.25 * sa - mKa * mKa;
301
302 if ( q2_Pi > 0 )
303 {
304 rhoPi[0] = 2.0 * sqrt( q2_Pi / sa );
305 rhoPi[1] = 0.0;
306 }
307 if ( q2_Pi <= 0 )
308 {
309 rhoPi[0] = 0.0;
310 rhoPi[1] = 2.0 * sqrt( -q2_Pi / sa );
311 }
312
313 if ( q2_Ka > 0 )
314 {
315 rhoKa[0] = 2.0 * sqrt( q2_Ka / sa );
316 rhoKa[1] = 0.0;
317 }
318 if ( q2_Ka <= 0 )
319 {
320 rhoKa[0] = 0.0;
321 rhoKa[1] = 2.0 * sqrt( -q2_Ka / sa );
322 }
323
324 // from paper PLB 598(2004) 149 : The simga pole in J/psi -> omega pi+ pi-
325 // Double_t g1 = 0.138;
326 // Double_t g2 = 0.6141;// g1*4.45;
327 // M = 0.970
328
329 // PLB 607(2005) 243 : Resonances in J/psi -> phi pi+ pi- and phi K+ K-
330 // M = 0.965
331 // Double_t g1 = 0.165;
332 // Double_t g2 = 0.69465;// g1*4.21;
333
334 // from paper PRD 86 052006 (2012) :LHCb barB^0_s -> J/psi pi+pi-
335 // Double_t g1 = 0.199;
336 // Double_t g2 = 0.5970;// g1*3.0;
337
338 double a[2], b[2];
339 a[0] = 1;
340 a[1] = 0;
341 b[0] = mass * mass - sa + 0.165 * rhoPi[1] + 0.69465 * rhoKa[1];
342 b[1] = -( 0.165 * rhoPi[0] + 0.69465 * rhoKa[0] );
343 Com_Divide( a, b, prop );
344}
345
346//------------GS---used by rho----------------------------
347void D0ToKSLKK::propagatorGS( double mass, double width, double sa, double sb, double sc,
348 double r2, double prop[2] ) {
349 double a[2], b[2];
350 double mass2 = mass * mass;
351 double tmp = sb - sc;
352 double tmp1 = sa + tmp;
353 double q2 = 0.25 * tmp1 * tmp1 / sa - sb;
354 // if(q2<0) q2 = 1e-16;
355 if ( q2 < 0 ) q2 = -q2;
356
357 double tmp2 = mass2 + tmp;
358 double q02 = 0.25 * tmp2 * tmp2 / mass2 - sb;
359 // if(q02<0) q02 = 1e-16;
360 if ( q02 < 0 ) q02 = -q02;
361
362 double q = sqrt( q2 );
363 double q0 = sqrt( q02 );
364 double m = sqrt( sa );
365 double q03 = q0 * q02;
366 double tmp3 = log( mass + 2 * q0 ) + 1.2760418309; // log(mass_2Pion) = 1.2760418309;
367
368 double h = GS1 * q / m * ( log( m + 2 * q ) + 1.2760418309 );
369 double h0 = GS1 * q0 / mass * tmp3;
370 double dh = h0 * ( 0.125 / q02 - 0.5 / mass2 ) + GS3 / mass2;
371 double d = GS2 / q02 * tmp3 + GS3 * mass / q0 - GS4 * mass / q03;
372 double f = mass2 / q03 * ( q2 * ( h - h0 ) + ( mass2 - sa ) * q02 * dh );
373
374 a[0] = 1.0 + d * width / mass;
375 a[1] = 0.0;
376 b[0] = mass2 - sa + width * f;
377 b[1] = -mass * width * widl1( mass2, mass, sa, sb, sc, r2 );
378 Com_Divide( a, b, prop );
379}
380void D0ToKSLKK::KPiSLASS( double sa, double sb, double sc, double prop[2] ) {
381 const double m1430 = 1.441;
382 const double sa0 = 2.076481; // m1430*m1430;
383 const double w1430 = 0.193;
384 const double Lass1 = 0.25 / sa0;
385 double tmp = sb - sc;
386 double tmp1 = sa0 + tmp;
387 double q0 = Lass1 * tmp1 * tmp1 - sb;
388 // if(q0<0) q0 = 1e-16;
389 if ( q0 < 0 ) q0 = -q0;
390 double tmp2 = sa + tmp;
391 double qs = 0.25 * tmp2 * tmp2 / sa - sb;
392 double q = sqrt( qs );
393 double width = w1430 * q * m1430 / sqrt( sa * q0 );
394 double temp_R = atan( m1430 * width / ( sa0 - sa ) );
395 if ( temp_R < 0 ) temp_R += math_pi;
396 double deltaR = -109.7 * math_pi / 180.0 + temp_R;
397 double temp_F =
398 atan( 0.226 * q / ( 2.0 - 3.8194 * qs ) ); // 2.0*0.113 = 0.226; -33.8*0.113 = -3.8194
399 if ( temp_F < 0 ) temp_F += math_pi;
400 double deltaF = 0.1 * math_pi / 180.0 + temp_F;
401 double deltaS = deltaR + 2.0 * deltaF;
402 double t1 = 0.96 * sin( deltaF );
403 double t2 = sin( deltaR );
404 double CF[2], CS[2];
405 CF[0] = cos( deltaF );
406 CF[1] = sin( deltaF );
407 CS[0] = cos( deltaS );
408 CS[1] = sin( deltaS );
409 prop[0] = t1 * CF[0] + t2 * CS[0];
410 prop[1] = t1 * CF[1] + t2 * CS[1];
411}
412
413void D0ToKSLKK::Flatte_rhoab( double sa, double sb, double sc, double rho[2] ) {
414 double q = ( sa + sb - sc ) * ( sa + sb - sc ) / ( 4 * sa ) - sb;
415 if ( q > 0 )
416 {
417 rho[0] = 2 * sqrt( q / sa );
418 rho[1] = 0;
419 }
420 else if ( q < 0 )
421 {
422 rho[0] = 0;
423 rho[1] = 2 * sqrt( -q / sa );
424 }
425}
426
427void D0ToKSLKK::propagatorKstr1430( double mass, double sx, double* sb, double* sc,
428 double prop[2] ) // K*1430 Flatte
429{
430 double unit[2] = { 1.0 };
431 double ci[2] = { 0, 1 };
432 double rho1[2];
433 Flatte_rhoab( sx, sb[0], sc[0], rho1 );
434 double rho2[2];
435 Flatte_rhoab( sx, sb[1], sc[1], rho2 );
436 double gKPi_Kstr1430 = 0.2990, gEtaPK_Kstr1430 = 0.0529;
437 double tmp1[2] = { gKPi_Kstr1430, 0 };
438 double tmp11[2];
439 double tmp2[2] = { gEtaPK_Kstr1430, 0 };
440 double tmp22[2];
441 Com_Multi( tmp1, rho1, tmp11 );
442 Com_Multi( tmp2, rho2, tmp22 );
443 double tmp3[2] = { tmp11[0] + tmp22[0], tmp11[1] + tmp22[1] };
444 double tmp31[2];
445 Com_Multi( tmp3, ci, tmp31 );
446 double tmp4[2] = { mass * mass - sx - tmp31[0], -1.0 * tmp31[1] };
447 Com_Divide( unit, tmp4, prop );
448}
449
450void D0ToKSLKK::propagatora0980p( double mass, double sx, double* sb, double* sc,
451 double prop[2] ) // a0980p Flatte
452{
453 double unit[2] = { 1.0 };
454 double ci[2] = { 0, 1 };
455 double rho1[2];
456 Flatte_rhoab( sx, sb[0], sc[0], rho1 );
457 double rho2[2];
458 Flatte_rhoab( sx, sb[1], sc[1], rho2 );
459 double gKK_a0980p = 0.341 * 0.892, gEtapi_a0980p = 0.341;
460 double tmp1[2] = { gKK_a0980p, 0 };
461 double tmp11[2];
462 double tmp2[2] = { gEtapi_a0980p, 0 };
463 double tmp22[2];
464 Com_Multi( tmp1, rho1, tmp11 );
465 Com_Multi( tmp2, rho2, tmp22 );
466 double tmp3[2] = { tmp11[0] + tmp22[0], tmp11[1] + tmp22[1] };
467 double tmp31[2];
468 Com_Multi( tmp3, ci, tmp31 );
469 double tmp4[2] = { mass * mass - sx - tmp31[0], -1.0 * tmp31[1] };
470 Com_Divide( unit, tmp4, prop );
471}
472
473void D0ToKSLKK::propagatora0980pfloated( double mass, double sx, double* sb, double* sc,
474 double gKK, double prop[2] ) // a0980p Flatte
475{
476 double unit[2] = { 1.0 };
477 double ci[2] = { 0, 1 };
478 double rho1[2];
479 Flatte_rhoab( sx, sb[0], sc[0], rho1 );
480 double rho2[2];
481 Flatte_rhoab( sx, sb[1], sc[1], rho2 );
482 double gKK_a0980p = 0.341 * gKK, gEtapi_a0980p = 0.341;
483 double tmp1[2] = { gKK_a0980p, 0 };
484 double tmp11[2];
485 double tmp2[2] = { gEtapi_a0980p, 0 };
486 double tmp22[2];
487 Com_Multi( tmp1, rho1, tmp11 );
488 Com_Multi( tmp2, rho2, tmp22 );
489 double tmp3[2] = { tmp11[0] + tmp22[0], tmp11[1] + tmp22[1] };
490 double tmp31[2];
491 Com_Multi( tmp3, ci, tmp31 );
492 double tmp4[2] = { mass * mass - sx - tmp31[0], -1.0 * tmp31[1] };
493 Com_Divide( unit, tmp4, prop );
494}
495
496void D0ToKSLKK::propagatora0980wm( double mass, double width, double sx, double sb, double sc,
497 double prop[2] ) // a0980wm Flatte
498{
499 double unit[2] = { 1.0 };
500 double ci[2] = { 0, 1 };
501 double rho1[2];
502 double tmp1[2] = { mass, 0 };
503 double tmp2[2] = { width, 0 };
504 double tmp11[2], tmp22[2];
505 Flatte_rhoab( sx, sb, sc, rho1 );
506 Com_Multi( tmp1, rho1, tmp11 );
507 Com_Multi( tmp11, tmp2, tmp22 );
508 double tmp3[2];
509 Com_Multi( tmp22, ci, tmp3 );
510 double tmp4[2] = { mass * mass - sx - tmp3[0], -1.0 * tmp3[1] };
511 Com_Divide( unit, tmp4, prop );
512}
513
514void D0ToKSLKK::propagatora09800( double mass, double sx, double* sb, double* sc,
515 double prop[2] ) // a09800 Flatte
516{
517 double unit[2] = { 1.0 };
518 double ci[2] = { 0, 1 };
519 double rho1[2];
520 Flatte_rhoab( sx, sb[0], sc[0], rho1 );
521 double rho2[2];
522 Flatte_rhoab( sx, sb[1], sc[1], rho2 );
523 double rho3[2];
524 Flatte_rhoab( sx, sb[2], sc[2], rho3 );
525 double gKK_a09800 = 0.341 * 0.892, gEtapi_a09800 = 0.341, gK0K0_a09800 = 0.341 * 0.892;
526 double tmp1[2] = { gKK_a09800, 0 };
527 double tmp11[2];
528 double tmp2[2] = { gEtapi_a09800, 0 };
529 double tmp22[2];
530 double tmp3[2] = { gK0K0_a09800, 0 };
531 double tmp33[2];
532 Com_Multi( tmp1, rho1, tmp11 );
533 Com_Multi( tmp2, rho2, tmp22 );
534 Com_Multi( tmp3, rho3, tmp33 );
535 double tmp4[2] = { tmp11[0] + tmp22[0] + tmp33[0], tmp11[1] + tmp22[1] + tmp33[1] };
536 double tmp41[2];
537 Com_Multi( tmp4, ci, tmp41 );
538 double tmp5[2] = { mass * mass - sx - tmp41[0], -1.0 * tmp41[1] };
539 Com_Divide( unit, tmp5, prop );
540}
541
542void D0ToKSLKK::propagatora09800floated( double mass, double sx, double* sb, double* sc,
543 double gKK, double prop[2] ) // a09800 Flatte
544{
545 double unit[2] = { 1.0 };
546 double ci[2] = { 0, 1 };
547 double rho1[2];
548 Flatte_rhoab( sx, sb[0], sc[0], rho1 );
549 double rho2[2];
550 Flatte_rhoab( sx, sb[1], sc[1], rho2 );
551 double rho3[2];
552 Flatte_rhoab( sx, sb[2], sc[2], rho3 );
553 double gKK_a09800 = 0.341 * gKK, gEtapi_a09800 = 0.341, gK0K0_a09800 = 0.341 * gKK;
554 double tmp1[2] = { gKK_a09800, 0 };
555 double tmp11[2];
556 double tmp2[2] = { gEtapi_a09800, 0 };
557 double tmp22[2];
558 double tmp3[2] = { gK0K0_a09800, 0 };
559 double tmp33[2];
560 Com_Multi( tmp1, rho1, tmp11 );
561 Com_Multi( tmp2, rho2, tmp22 );
562 Com_Multi( tmp3, rho3, tmp33 );
563 double tmp4[2] = { tmp11[0] + tmp22[0] + tmp33[0], tmp11[1] + tmp22[1] + tmp33[1] };
564 double tmp41[2];
565 Com_Multi( tmp4, ci, tmp41 );
566 double tmp5[2] = { mass * mass - sx - tmp41[0], -1.0 * tmp41[1] };
567 Com_Divide( unit, tmp5, prop );
568}
569
570void D0ToKSLKK::propagatora098002channel( double mass, double sx, double* sb, double* sc,
571 double prop[2] ) // a09800 Flatte
572{
573 double unit[2] = { 1.0 };
574 double ci[2] = { 0, 1 };
575 double rho1[2];
576 Flatte_rhoab( sx, sb[0], sc[0], rho1 );
577 double rho2[2];
578 Flatte_rhoab( sx, sb[1], sc[1], rho2 );
579 double gKK_a09800 = 0.341 * 0.892, gEtapi_a09800 = 0.341;
580 double tmp1[2] = { gKK_a09800, 0 };
581 double tmp11[2];
582 double tmp2[2] = { gEtapi_a09800, 0 };
583 double tmp22[2];
584 Com_Multi( tmp1, rho1, tmp11 );
585 Com_Multi( tmp2, rho2, tmp22 );
586 double tmp4[2] = { tmp11[0] + tmp22[0], tmp11[1] + tmp22[1] };
587 double tmp41[2];
588 Com_Multi( tmp4, ci, tmp41 );
589 double tmp5[2] = { mass * mass - sx - tmp41[0], -1.0 * tmp41[1] };
590 Com_Divide( unit, tmp5, prop );
591}
592
593void D0ToKSLKK::rhoab( double sa, double sb, double sc, double res[2] ) {
594 double tmp = sa + sb - sc;
595 double q = 0.25 * tmp * tmp / sa - sb;
596 if ( q >= 0 )
597 {
598 res[0] = 2.0 * sqrt( q / sa );
599 res[1] = 0.0;
600 }
601 else
602 {
603 res[0] = 0.0;
604 res[1] = 2.0 * sqrt( -q / sa );
605 }
606}
607void D0ToKSLKK::rho4Pi( double sa, double res[2] ) {
608 double temp = 1.0 - 0.3116765584 / sa; // 0.3116765584=0.13957*0.13957*16
609 if ( temp >= 0 )
610 {
611 res[0] = sqrt( temp ) / ( 1.0 + exp( 9.8 - 3.5 * sa ) );
612 res[1] = 0.0;
613 }
614 else
615 {
616 res[0] = 0.0;
617 res[1] = sqrt( -temp ) / ( 1.0 + exp( 9.8 - 3.5 * sa ) ); //?????????????????????
618 }
619}
620
621void D0ToKSLKK::propagatorsigma500( double sa, double sb, double sc,
622 double prop[2] ) { // for pipi_s wave
623 double f = 0.5843 + 1.6663 * sa;
624 const double M = 0.9264;
625 const double mass2 = 0.85821696; // M*M
626 const double mpi2d2 = 0.00973989245;
627 double g1 = f * ( sa - mpi2d2 ) / ( mass2 - mpi2d2 ) * exp( ( mass2 - sa ) / 1.082 );
628 double rho1s[2], rho1M[2], rho2s[2], rho2M[2], rho1[2], rho2[2];
629 rhoab( sa, sb, sc, rho1s );
630 rhoab( mass2, sb, sc, rho1M );
631 rho4Pi( sa, rho2s );
632 rho4Pi( mass2, rho2M );
633 Com_Divide( rho1s, rho1M, rho1 );
634 Com_Divide( rho2s, rho2M, rho2 );
635 double a[2], b[2];
636 a[0] = 1.0;
637 a[1] = 0.0;
638 b[0] = mass2 - sa + M * ( g1 * rho1[1] + 0.0024 * rho2[1] );
639 b[1] = -M * ( g1 * rho1[0] + 0.0024 * rho2[0] );
640 Com_Divide( a, b, prop );
641}
642
643void D0ToKSLKK::getprop( double sa, double sb, double sc, double mass, double width,
644 double prop[2] ) { // rho propagator
645 double prop1[2], prop2[2];
646 propagatorGS( mass, width, sa, sb, sc, 9.0, prop1 );
647 propagatorRBW( 0.783, 0.008, sa, sb, sc, 3.0, 1, prop2 );
648 double coef_omega[2];
649 coef_omega[0] = rho_omega * cos( phi_omega ), coef_omega[1] = rho_omega * sin( phi_omega );
650 double one[2];
651 one[0] = 1;
652 one[1] = 0;
653 double temp[2];
654 Com_Multi( coef_omega, prop2, temp );
655 temp[0] = one[0] + 0.783 * 0.783 * temp[0];
656 temp[1] = one[1] + 0.783 * 0.783 * temp[1];
657 Com_Multi( prop1, temp, prop );
658}
659double D0ToKSLKK::DDalitz( double P1[4], double P2[4], double P3[4], int Ang, double mass ) {
660 double pR[4], pD[4];
661 double temp_PDF, v_re;
662 temp_PDF = 0.0;
663 v_re = 0.0;
664 double B[2], s1, s2, s3, sR, sD;
665 for ( int i = 0; i < 4; i++ )
666 {
667 pR[i] = P1[i] + P2[i];
668 pD[i] = pR[i] + P3[i];
669 }
670 s1 = SCADot( P1, P1 );
671 s2 = SCADot( P2, P2 );
672 s3 = SCADot( P3, P3 );
673 sR = SCADot( pR, pR );
674 sD = SCADot( pD, pD );
675 int G[4][4];
676 for ( int i = 0; i != 4; i++ )
677 {
678 for ( int j = 0; j != 4; j++ )
679 {
680 if ( i == j )
681 {
682 if ( i == 0 ) G[i][j] = 1;
683 else G[i][j] = -1;
684 }
685 else G[i][j] = 0;
686 }
687 }
688 if ( Ang == 0 )
689 {
690 B[0] = 1;
691 B[1] = 1;
692 temp_PDF = 1;
693 }
694 if ( Ang == 1 )
695 {
696 B[0] = barrier( 1, sR, s1, s2, 3.0, mass );
697 B[1] = barrier( 1, sD, sR, s3, 5.0, mDM );
698 // B[0] = Barrier(1,sR,s1,s2,9.0);
699 // B[1] = Barrier(1,sD,sR,s3,25.0);
700 double t1[4], T1[4];
701 calt1( P1, P2, t1 );
702 calt1( pR, P3, T1 );
703 temp_PDF = 0;
704 for ( int i = 0; i < 4; i++ ) { temp_PDF += t1[i] * T1[i] * G[i][i]; }
705 }
706 if ( Ang == 2 )
707 {
708 B[0] = barrier( 2, sR, s1, s2, 3.0, mass );
709 B[1] = barrier( 2, sD, sR, s3, 5.0, mDM );
710 // B[0] = Barrier(2,sR,s1,s2,9.0);
711 // B[1] = Barrier(2,sD,sR,s3,25.0);
712 double t2[4][4], T2[4][4];
713 calt2( P1, P2, t2 );
714 calt2( pR, P3, T2 );
715 temp_PDF = 0;
716 for ( int i = 0; i < 4; i++ )
717 {
718 for ( int j = 0; j < 4; j++ ) { temp_PDF += t2[i][j] * T2[j][i] * G[i][i] * G[j][j]; }
719 }
720 }
721 v_re = temp_PDF * B[0] * B[1];
722 return v_re;
723}
724
725void D0ToKSLKK::calPDF( double* Ks0, double* K1, double* K2, double* mass1, double* width1,
726 double* amp, double* phase, int* g0, int* spin, int* modetype,
727 double* r0, double* r1, int first, int last, double PDF[2] ) {
728 double P12[4], P23[4], P13[4];
729 double cof[2], amp_PDF[2];
730 double s12, s13, s23;
731 for ( int i = 0; i < 4; i++ )
732 {
733 P12[i] = K1[i] + Ks0[i];
734 P13[i] = K2[i] + Ks0[i];
735 P23[i] = K1[i] + K2[i];
736 }
737 s12 = SCADot( P12, P12 );
738 s13 = SCADot( P13, P13 );
739 s23 = SCADot( P23, P23 );
740 double s1, s2, s3;
741 s1 = SCADot( Ks0, Ks0 );
742 s2 = SCADot( K1, K1 );
743 s3 = SCADot( K2, K2 );
744 double pro[2], temp_PDF, amp_tmp[2];
745 double Amp_KPiS[2];
746 // double mass1sq;
747 amp_PDF[0] = 0;
748 amp_PDF[1] = 0;
749 PDF[0] = 0;
750 PDF[1] = 0;
751 amp_tmp[0] = 0;
752 amp_tmp[1] = 0;
753 for ( int i = first; i < last; i++ )
754 {
755 amp_tmp[0] = 0;
756 amp_tmp[1] = 0;
757 // mass1sq = mass1[i]*mass1[i];
758 cof[0] = amp[i] * cos( phase[i] );
759 cof[1] = amp[i] * sin( phase[i] );
760 temp_PDF = 0;
761
762 if ( modetype[i] == 12 )
763 { // a0(980)+ K-
764 temp_PDF = DDalitz( Ks0, K1, K2, spin[i], mass1[i] );
765 if ( g0[i] == 1 )
766 propagatorRBW( mass1[i], width1[i], s12, mass_KS * mass_KS, mKa2, rRes2, spin[i],
767 pro );
768 if ( g0[i] == 2 )
769 { // a0980p Flatte
770 double s11[2] = { mass_KS * mass_KS, mPi * mPi };
771 double s22[2] = { mKa * mKa, mEta * mEta };
772 propagatora0980p( mass1[i], s12, s11, s22, pro );
773 }
774 if ( g0[i] == 3 )
775 propagatora0980wm( mass1[i], width1[i], s12, mass_KS * mass_KS, mKa * mKa, pro );
776 if ( g0[i] == 0 )
777 {
778 pro[0] = 1;
779 pro[1] = 0;
780 }
781 amp_tmp[0] = temp_PDF * pro[0];
782 amp_tmp[1] = temp_PDF * pro[1];
783 }
784
785 if ( modetype[i] == 13 )
786 { // a0(980)- K+
787 temp_PDF = DDalitz( Ks0, K2, K1, spin[i], mass1[i] );
788 if ( g0[i] == 1 )
789 propagatorRBW( mass1[i], width1[i], s13, mass_KS * mass_KS, mKa2, rRes2, spin[i],
790 pro );
791 if ( g0[i] == 2 )
792 { // a0980p Flatte
793 double s11[2] = { mass_KS * mass_KS, mPi * mPi };
794 double s22[2] = { mKa * mKa, mEta * mEta };
795 propagatora0980p( mass1[i], s13, s11, s22, pro );
796 }
797 if ( g0[i] == 3 )
798 propagatora0980wm( mass1[i], width1[i], s13, mass_KS * mass_KS, mKa * mKa, pro );
799 if ( g0[i] == 4 )
800 { // a0980p Flatte
801 double s11[2] = { mass_KS * mass_KS, mPi * mPi };
802 double s22[2] = { mKa * mKa, mEta * mEta };
803 propagatora0980pfloated( mass1[i], s13, s11, s22, r0[i], pro );
804 }
805 if ( g0[i] == 5 )
806 propagatorGS( mass1[i], width1[i], s13, mass_KS * mass_KS, mKa2, rRes2, pro );
807 if ( g0[i] == 0 )
808 {
809 pro[0] = 1;
810 pro[1] = 0;
811 }
812 // printf("%lf, %lf\n",pro[0],pro[1]);
813 amp_tmp[0] = temp_PDF * pro[0];
814 amp_tmp[1] = temp_PDF * pro[1];
815 }
816
817 if ( modetype[i] == 23 )
818 { // a0(980)Ks
819 temp_PDF = DDalitz( K1, K2, Ks0, spin[i], mass1[i] );
820 if ( g0[i] == 0 )
821 {
822 pro[0] = 1;
823 pro[1] = 0;
824 }
825 if ( g0[i] == 1 )
826 propagatorRBW( mass1[i], width1[i], s23, mKa2, mKa2, rRes2, spin[i], pro );
827 if ( g0[i] == 2 )
828 { // a09800 Flatte
829 double s11[3] = { mKa * mKa, mPi * mPi, mass_KS * mass_KS };
830 double s22[3] = { mKa * mKa, mEta * mEta, mass_KS * mass_KS };
831 propagatora09800( mass1[i], s23, s11, s22, pro );
832 }
833 if ( g0[i] == 3 )
834 { // a09800 Flatte 2 channel
835 double s11[3] = { mKa * mKa, mPi * mPi };
836 double s22[3] = { mKa * mKa, mEta * mEta };
837 propagatora098002channel( mass1[i], s23, s11, s22, pro );
838 }
839 if ( g0[i] == 4 )
840 { propagatorFlatte( mass1[i], width1[i], s23, pro ); } // Only for f0(980)
841 if ( g0[i] == 5 )
842 propagatora0980wm( mass1[i], width1[i], s23, mKa * mKa, mKa * mKa, pro );
843 if ( g0[i] == 6 )
844 { // a09800 Flatte
845 double s11[3] = { mKa * mKa, mPi * mPi, mass_KS * mass_KS };
846 double s22[3] = { mKa * mKa, mEta * mEta, mass_KS * mass_KS };
847 propagatora09800floated( mass1[i], s23, s11, s22, r0[i], pro );
848 }
849 amp_tmp[0] = temp_PDF * pro[0];
850 amp_tmp[1] = temp_PDF * pro[1];
851 }
852
853 //------------------------------------KLKK-------------------------------------------------------
854 if ( modetype[i] == 232 )
855 {
856 temp_PDF = DDalitz( K1, K2, Ks0, spin[i], mass1[i] );
857 if ( g0[i] == 0 )
858 {
859 pro[0] = 1;
860 pro[1] = 0;
861 }
862 if ( g0[i] == 1 )
863 propagatorRBW( mass1[i], width1[i], s23, mKa2, mKa2, rRes2, spin[i], pro );
864 if ( g0[i] == 2 )
865 { // a09800 Flatte
866 double s11[3] = { mKa * mKa, mPi * mPi, mass_KS * mass_KS };
867 double s22[3] = { mKa * mKa, mEta * mEta, mass_KS * mass_KS };
868 propagatora09800( mass1[i], s23, s11, s22, pro );
869 }
870 if ( g0[i] == 3 )
871 { // a09800 Flatte 2 channel
872 double s11[3] = { mKa * mKa, mPi * mPi };
873 double s22[3] = { mKa * mKa, mEta * mEta };
874 propagatora098002channel( mass1[i], s23, s11, s22, pro );
875 }
876 if ( g0[i] == 4 )
877 { propagatorFlatte( mass1[i], width1[i], s23, pro ); } // Only for f0(980)
878 if ( g0[i] == 5 )
879 propagatora0980wm( mass1[i], width1[i], s23, mKa * mKa, mKa * mKa, pro );
880 if ( g0[i] == 6 )
881 { // a09800 Flatte
882 double s11[3] = { mKa * mKa, mPi * mPi, mass_KS * mass_KS };
883 double s22[3] = { mKa * mKa, mEta * mEta, mass_KS * mass_KS };
884 propagatora09800floated( mass1[i], s23, s11, s22, r0[i], pro );
885 }
886
887 double uspinbr[2], coff[2];
888 coff[0] = r0[i] * cos( r1[i] );
889 coff[1] = r0[i] * sin( r1[i] );
890 double unit[2];
891 unit[0] = 1.0;
892 unit[1] = 0.0;
893
894 uspinbr[0] =
895 unit[0] - 2 * ( ( 0.22650 * 0.22650 ) / ( 1. - ( 0.22650 * 0.22650 ) ) ) * coff[0];
896 uspinbr[1] =
897 unit[1] - 2 * ( ( 0.22650 * 0.22650 ) / ( 1. - ( 0.22650 * 0.22650 ) ) ) * coff[1];
898
899 double amp_tmpp[2];
900 amp_tmpp[0] = temp_PDF * pro[0];
901 amp_tmpp[1] = temp_PDF * pro[1];
902
903 Com_Multi( uspinbr, amp_tmpp, amp_tmp );
904 }
905
906 if ( modetype[i] == 100 )
907 {
908 amp_tmp[0] = 1.0;
909 amp_tmp[1] = 0.0;
910 }
911
912 // if(modetype[i] == 132){
913 // KPiSLASS(s13,s1,s3,Amp_KPiS);
914 // amp_tmp[0] = Amp_KPiS[0];
915 // amp_tmp[1] = Amp_KPiS[1];
916 // }
917
918 Com_Multi( amp_tmp, cof, amp_PDF );
919 PDF[0] += amp_PDF[0];
920 PDF[1] += amp_PDF[1];
921 }
922}
923
924void D0ToKSLKK::calEva_QC( double* Ks0, double* K1, double* K2, double* mass1, double* width1,
925 double* amp, double* phase, int* g0, int* spin, int* modetype,
926 double* r0, double* r1, double& Result, int first, int last,
927 int charge, bool SorL ) {
928 double PDFD0[2], PDFD0bar[2];
929 if ( charge > 0 )
930 {
931 calPDF( Ks0, K1, K2, mass1, width1, amp, phase, g0, spin, modetype, r0, r1, first, last,
932 PDFD0 );
933 Ks0[0] = Ks0[0];
934 Ks0[1] = ( -1.0 ) * Ks0[1];
935 Ks0[2] = ( -1.0 ) * Ks0[2];
936 Ks0[3] = ( -1.0 ) * Ks0[3];
937 K1[0] = K1[0];
938 K1[1] = ( -1.0 ) * K1[1];
939 K1[2] = ( -1.0 ) * K1[2];
940 K1[3] = ( -1.0 ) * K1[3];
941 K2[0] = K2[0];
942 K2[1] = ( -1.0 ) * K2[1];
943 K2[2] = ( -1.0 ) * K2[2];
944 K2[3] = ( -1.0 ) * K2[3];
945
946 calPDF( Ks0, K1, K2, mass1, width1, amp, phase, g0, spin, modetype, r0, r1, first, last,
947 PDFD0bar );
948 }
949 if ( charge < 0 )
950 {
951 calPDF( Ks0, K1, K2, mass1, width1, amp, phase, g0, spin, modetype, r0, r1, first, last,
952 PDFD0bar );
953 Ks0[0] = Ks0[0];
954 Ks0[1] = ( -1.0 ) * Ks0[1];
955 Ks0[2] = ( -1.0 ) * Ks0[2];
956 Ks0[3] = ( -1.0 ) * Ks0[3];
957 K1[0] = K1[0];
958 K1[1] = ( -1.0 ) * K1[1];
959 K1[2] = ( -1.0 ) * K1[2];
960 K1[3] = ( -1.0 ) * K1[3];
961 K2[0] = K2[0];
962 K2[1] = ( -1.0 ) * K2[1];
963 K2[2] = ( -1.0 ) * K2[2];
964 K2[3] = ( -1.0 ) * K2[3];
965 calPDF( Ks0, K1, K2, mass1, width1, amp, phase, g0, spin, modetype, r0, r1, first, last,
966 PDFD0 );
967 }
968
969 //-----------------------Quantum Correlation Correction---------------------------------
970 double r_tag = 0.0586;
971 double R_tag = 1;
972 double delta_tag = 192.1 / 180.0 * 3.1415926;
973 double qcf[2];
974 qcf[0] = r_tag * R_tag * cos( -1.0 * delta_tag );
975 qcf[1] = r_tag * R_tag * sin( -1.0 * delta_tag );
976 double ampD0_part1[2], qcfampD0bar[2];
977 Com_Multi( qcf, PDFD0bar, qcfampD0bar );
978 if ( SorL )
979 {
980 ampD0_part1[0] = PDFD0[0] - qcfampD0bar[0];
981 ampD0_part1[1] = PDFD0[1] - qcfampD0bar[1];
982 }
983 else
984 {
985 ampD0_part1[0] = PDFD0[0] + qcfampD0bar[0];
986 ampD0_part1[1] = PDFD0[1] + qcfampD0bar[1];
987 }
988 double value = ampD0_part1[0] * ampD0_part1[0] + ampD0_part1[1] * ampD0_part1[1] +
989 r_tag * r_tag * ( 1 - R_tag * R_tag ) *
990 ( PDFD0bar[0] * PDFD0bar[0] + PDFD0bar[1] * PDFD0bar[1] );
991
992 if ( value <= 0 ) value = 1e-20;
993 Result = value;
994}
995
996void D0ToKSLKK::calEva( double* Ks0, double* K1, double* K2, double* mass1, double* width1,
997 double* amp, double* phase, int* g0, int* spin, int* modetype,
998 double* r0, double* r1, double& Result, int first, int last,
999 int charge, bool SorL ) {
1000 double PDFD0[2], PDFD0bar[2];
1001 if ( charge > 0 )
1002 {
1003 calPDF( Ks0, K1, K2, mass1, width1, amp, phase, g0, spin, modetype, r0, r1, first, last,
1004 PDFD0 );
1005 Ks0[0] = Ks0[0];
1006 Ks0[1] = ( -1.0 ) * Ks0[1];
1007 Ks0[2] = ( -1.0 ) * Ks0[2];
1008 Ks0[3] = ( -1.0 ) * Ks0[3];
1009 K1[0] = K1[0];
1010 K1[1] = ( -1.0 ) * K1[1];
1011 K1[2] = ( -1.0 ) * K1[2];
1012 K1[3] = ( -1.0 ) * K1[3];
1013 K2[0] = K2[0];
1014 K2[1] = ( -1.0 ) * K2[1];
1015 K2[2] = ( -1.0 ) * K2[2];
1016 K2[3] = ( -1.0 ) * K2[3];
1017
1018 calPDF( Ks0, K1, K2, mass1, width1, amp, phase, g0, spin, modetype, r0, r1, first, last,
1019 PDFD0bar );
1020 }
1021 if ( charge < 0 )
1022 {
1023 calPDF( Ks0, K1, K2, mass1, width1, amp, phase, g0, spin, modetype, r0, r1, first, last,
1024 PDFD0bar );
1025 Ks0[0] = Ks0[0];
1026 Ks0[1] = ( -1.0 ) * Ks0[1];
1027 Ks0[2] = ( -1.0 ) * Ks0[2];
1028 Ks0[3] = ( -1.0 ) * Ks0[3];
1029 K1[0] = K1[0];
1030 K1[1] = ( -1.0 ) * K1[1];
1031 K1[2] = ( -1.0 ) * K1[2];
1032 K1[3] = ( -1.0 ) * K1[3];
1033 K2[0] = K2[0];
1034 K2[1] = ( -1.0 ) * K2[1];
1035 K2[2] = ( -1.0 ) * K2[2];
1036 K2[3] = ( -1.0 ) * K2[3];
1037 calPDF( Ks0, K1, K2, mass1, width1, amp, phase, g0, spin, modetype, r0, r1, first, last,
1038 PDFD0 );
1039 }
1040
1041 double ampD0_part1[2];
1042 ampD0_part1[0] = PDFD0[0];
1043 ampD0_part1[1] = PDFD0[1];
1044 double value = ampD0_part1[0] * ampD0_part1[0] + ampD0_part1[1] * ampD0_part1[1];
1045
1046 /*//-----------------------Quantum Correlation Correction---------------------------------
1047 double r_tag = 0.0586;
1048double R_tag = 1;
1049double delta_tag = 192.1/180.0*3.1415926;
1050double qcf[2];
1051qcf[0] = r_tag*R_tag*cos(-1.0*delta_tag);
1052qcf[1] = r_tag*R_tag*sin(-1.0*delta_tag);
1053double ampD0_part1[2], qcfampD0bar[2];
1054Com_Multi(qcf,PDFD0bar,qcfampD0bar);
1055if(SorL){
1056ampD0_part1[0] = PDFD0[0] - qcfampD0bar[0];
1057ampD0_part1[1] = PDFD0[1] - qcfampD0bar[1];
1058} else{
1059ampD0_part1[0] = PDFD0[0] + qcfampD0bar[0];
1060ampD0_part1[1] = PDFD0[1] + qcfampD0bar[1];
1061}
1062double value = ampD0_part1[0]*ampD0_part1[0]+ampD0_part1[1]*ampD0_part1[1] +
1063r_tag*r_tag*(1-R_tag*R_tag)*(PDFD0bar[0]*PDFD0bar[0]+PDFD0bar[1]*PDFD0bar[1]);*/
1064
1065 if ( value <= 0 ) value = 1e-20;
1066 Result = value;
1067}
double mass
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")
TF1 * g1
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
Definition FoamA.h:90
const DifNumber one
****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
TCrossPart * CS
Definition Mcgpj.cxx:51
virtual ~D0ToKSLKK()
Definition D0ToKSLKK.cxx:32
void init(int Daug0Id, int Uspin)
Definition D0ToKSLKK.cxx:34
complex< double > Amp(vector< double > k0l, vector< double > kp, vector< double > km, int Daug0Id, int Uspin)
int t()
Definition t.c:1