10#include "CLHEP/Random/RandFlat.h"
11#include "CLHEP/Matrix/Vector.h"
12#include "CLHEP/Matrix/Matrix.h"
13#include "CLHEP/Matrix/SymMatrix.h"
14#include "CLHEP/Vector/ThreeVector.h"
15#include "CLHEP/Vector/LorentzVector.h"
16#include "CLHEP/Vector/TwoVector.h"
17using CLHEP::HepVector;
18using CLHEP::Hep3Vector;
19using CLHEP::Hep2Vector;
20using CLHEP::HepLorentzVector;
30 tan2thetaC = (0.22650*0.22650)/(1.-(0.22650*0.22650)) ;
31 pi180inv = 1.0*3.1415926/180;
33 double Pi = 3.1415926;
35 mass_R[0]= 0.77155; width_R[0]= 0.13469; spin_R[0]= 1; ar[0]= 1; phir[0]= 0;
36 mass_R[1]= 0.78265; width_R[1]= 0.00849; spin_R[1]= 1; ar[1]= 0.038791; phir[1]= (180./Pi)*2.1073;
37 mass_R[2]= 1.27510; width_R[2]= 0.18420; spin_R[2]= 2; ar[2]= 1.42887; phir[2]= (180./Pi)*-0.633296;
38 mass_R[3]= 1.46500; width_R[3]= 0.40000; spin_R[3]= 1; ar[3]= 2.85131; phir[3]= (180./Pi)*1.7820801;
39 mass_R[4]= 0.89371; width_R[4]= 0.04719; spin_R[4]= 1; ar[4]= 1.72044; phir[4]= (180./Pi)*2.38835877;
40 mass_R[5]= 1.42560; width_R[5]= 0.09850; spin_R[5]= 2; ar[5]= 1.27268; phir[5]= (180./Pi)*-0.769095;
41 mass_R[6]= 1.71700; width_R[6]= 0.3220; spin_R[6]= 1; ar[6]= 3.307642; phir[6]= (180./Pi)*-2.062227;
42 mass_R[7]= 1.41400; width_R[7]= 0.2320; spin_R[7]= 1; ar[7]= 0.286927; phir[7]= (180./Pi)*1.7346186;
43 mass_R[8]= 0.89371; width_R[8]= 0.04719; spin_R[8]= 1; ar[8]= 0.1641792;phir[8]= (180./Pi)*-0.735903;
44 mass_R[9]= 1.42560; width_R[9]= 0.0985; spin_R[9]= 2; ar[9]= 0.1025736;phir[9]= (180./Pi)*-1.56397;
45 mass_R[10]= 1.41400; width_R[10]= 0.2320; spin_R[10]= 1; ar[10]= 0.2090326;phir[10]= (180./Pi)*2.6208986;
47 mass_R[11]= 1.42500; width_R[11]= 0.2700; spin_R[11]= 1; ar[11]= 2.36; phir[11]= 99.4;
69 ma[0]= 0.651; g[0][0]= 0.22889; g[0][1]= -0.55377; g[0][2]= 0; g[0][3]= -0.39899; g[0][4]= -0.34639;
70 ma[1]= 1.20360; g[1][0]= 0.94128; g[1][1]= 0.55095; g[1][2]= 0; g[1][3]= 0.39065; g[1][4]= 0.31503;
71 ma[2]= 1.55817; g[2][0]= 0.36856; g[2][1]= 0.23888; g[2][2]= 0.55639; g[2][3]= 0.18340; g[2][4]= 0.18681;
72 ma[3]= 1.21000; g[3][0]= 0.33650; g[3][1]= 0.40907; g[3][2]= 0.85679; g[3][3]= 0.19906; g[3][4]= -0.00984;
73 ma[4]= 1.82206; g[4][0]= 0.18171; g[4][1]= -0.17558; g[4][2]= -0.79658; g[4][3]= -0.00355; g[4][4]= 0.22358;
81 deltad[1] = 194.7*pi180inv;
82 deltad[2] = 196.0*pi180inv;
83 deltad[3] = 167.0*pi180inv;
94 vector<double> pD;pD.clear();
95 if(k0l.size()!=4||pip.size()!=4||pim.size()!=4)cout<<
"ERROR in KSPIPI daughter 4 momentum"<<endl;
96 for(
int i=0;i<k0l.size();i++){
97 pD.push_back(k0l[i] + pip[i] + pim[i]);
111 complex<double> DK2piRes0 = Resonance2(pD, pip, pim, ar[0], phir[0], width_R[0], mass_R[0], spin_R[0]);
112 complex<double> DK2piRes1 = Resonance2(pD, pip, pim, ar[1], phir[1], width_R[1], mass_R[1], spin_R[1]);
113 complex<double> DK2piRes2 = Resonance2(pD, pip, pim, ar[2], phir[2], width_R[2], mass_R[2], spin_R[2]);
114 complex<double> DK2piRes3 = Resonance2(pD, pip, pim, ar[3], phir[3], width_R[3], mass_R[3], spin_R[3]);
115 complex<double> DK2piRes4 = Resonance2(pD, k0l, pim, ar[4], phir[4], width_R[4], mass_R[4], spin_R[4]);
116 complex<double> DK2piRes5 = Resonance2(pD, k0l, pim, ar[5], phir[5], width_R[5], mass_R[5], spin_R[5]);
117 complex<double> DK2piRes6 = Resonance2(pD, k0l, pim, ar[6], phir[6], width_R[6], mass_R[6], spin_R[6]);
118 complex<double> DK2piRes7 = Resonance2(pD, k0l, pim, ar[7], phir[7], width_R[7], mass_R[7], spin_R[7]);
119 complex<double> DK2piRes8 = Resonance2(pD, k0l, pip, ar[8], phir[8], width_R[8], mass_R[8], spin_R[8]);
120 complex<double> DK2piRes9 = Resonance2(pD, k0l, pip, ar[9], phir[9], width_R[9], mass_R[9], spin_R[9]);
121 complex<double> DK2piRes10 = Resonance2(pD, k0l, pip, ar[10], phir[10], width_R[10], mass_R[10], spin_R[10]);
126 complex<double> kpi_s_wave = amplitude_LASS(k0l, pip, pim,
"k0lpim", ar[11], phir[11]*pi180inv) ;
130 + DK2piRes1 * CP_mult[1]
131 + DK2piRes2 * CP_mult[2]
132 + DK2piRes3 * CP_mult[3]
140 + pipi_s_wave * CP_mult[4]
148complex<double> D0ToKLpipi2018::Resonance2(vector<double> p4_p, vector<double> p4_d1, vector<double> p4_d2,
double mag,
double theta,
double gamma,
double bwm,
int spin) {
153 HepLorentzVector _p4_p;_p4_p.setX(p4_p[0]);_p4_p.setY(p4_p[1]);_p4_p.setZ(p4_p[2]);_p4_p.setT(p4_p[3]);
154 HepLorentzVector _p4_d1;_p4_d1.setX(p4_d1[0]);_p4_d1.setY(p4_d1[1]);_p4_d1.setZ(p4_d1[2]);_p4_d1.setT(p4_d1[3]);
155 HepLorentzVector _p4_d2;_p4_d2.setX(p4_d2[0]);_p4_d2.setY(p4_d2[1]);_p4_d2.setZ(p4_d2[2]);_p4_d2.setT(p4_d2[3]);
156 HepLorentzVector _p4_d3=_p4_p-_p4_d1-_p4_d2;
159 double mAB= (_p4_d1 + _p4_d2).invariantMass();
160 double mBC= (_p4_d2 + _p4_d3).invariantMass();
161 double mAC= (_p4_d1 + _p4_d3).invariantMass();
162 double mA = _p4_d1.invariantMass();
163 double mB = _p4_d2.invariantMass();
164 double mD = _p4_p.invariantMass();
165 double mC = _p4_d3.invariantMass();
169 double gammaR = gamma;
170 double pAB = sqrt( (((mAB*mAB-mA*mA-mB*mB)*(mAB*mAB-mA*mA-mB*mB)/4.0) - mA*mA*mB*mB)/(mAB*mAB));
171 double pR = sqrt( (((mR*mR-mA*mA-mB*mB)*(mR*mR-mA*mA-mB*mB)/4.0) - mA*mA*mB*mB)/(mR*mR));
173 double pD= (((mD*mD-mR*mR-mC*mC)*(mD*mD-mR*mR-mC*mC)/4.0) - mR*mR*mC*mC)/(mD*mD);
174 if ( pD>0 ) { pD = sqrt(pD); }
176 double pDAB=sqrt( (((mD*mD-mAB*mAB-mC*mC)*(mD*mD-mAB*mAB-mC*mC)/4.0) - mAB*mAB*mC*mC)/(mD*mD));
187 fR = sqrt(1.0+1.5*1.5*pR*pR)/sqrt(1.0+1.5*1.5*pAB*pAB);
188 fD = sqrt(1.0+5.0*5.0*pD*pD)/sqrt(1.0+5.0*5.0*pDAB*pDAB);
192 fR = sqrt( (9+3*pow((1.5*pR),2)+pow((1.5*pR),4))/(9+3*pow((1.5*pAB),2) +pow((1.5*pAB) ,4)) );
193 fD = sqrt( (9+3*pow((5.0*pD),2)+pow((5.0*pD),4))/(9+3*pow((5.0*pDAB),2)+pow((5.0*pDAB),4)) );
197 cout <<
"Incorrect spin in D0ToKLpipi2018::EvtResonance2.cc\n" <<endl;
200 double gammaAB= gammaR*pow(pAB/pR,power)*(mR/mAB)*fR*fR;
203 ampl=mag*complex<double>(
cos(theta*pi180inv),
sin(theta*pi180inv))*fR*fD/(mR*mR-mAB*mAB-complex<double>(0.0,mR*gammaAB));
206 ampl=mag*complex<double>(
cos(theta*pi180inv),
sin(theta*pi180inv))*
207 (fR*fD*(mAC*mAC-mBC*mBC+((mD*mD-mC*mC)*(mB*mB-mA*mA)/(mAB*mAB)))/(mR*mR-mAB*mAB-complex<double>(0.0,mR*gammaAB)));
210 ampl=mag*complex<double>(
cos(theta*pi180inv),
sin(theta*pi180inv))*
211 (fR*fD/(mR*mR-mAB*mAB-complex<double>(0.0,mR*gammaAB)))*
212 (pow((mBC*mBC-mAC*mAC+(mD*mD-mC*mC)*(mA*mA-mB*mB)/(mAB*mAB)),2)-
213 (1.0/3.0)*(mAB*mAB-2*mD*mD-2*mC*mC+pow((mD*mD- mC*mC)/mAB, 2))*
214 (mAB*mAB-2*mA*mA-2*mB*mB+pow((mA*mA-mB*mB)/mAB,2)));
217 cout <<
"Incorrect spin in D0ToKSpipi::Resonance2.cc\n" <<endl;
223complex<double> D0ToKLpipi2018::K_matrix(vector<double> p_pip, vector<double> p_pim) {
228 const double mD0 = 1.86483;
229 const double mKl = 0.49761;
230 const double mPi = 0.13957;
232 HepLorentzVector _p_pip(p_pip[0],p_pip[1],p_pip[2],p_pip[3]);
233 HepLorentzVector _p_pim(p_pim[0],p_pim[1],p_pim[2],p_pim[3]);
235 double mAB = (_p_pip + _p_pim).m() ;
287 complex<double> n11,n12,n13,n14,n15,n21,n22,n23,n24,n25,n31,n32,n33,n34,n35,n41,n42,n43,n44,n45,n51,n52,n53,n54,n55;
288 double rho1sq,rho2sq,rho4sq,rho5sq;
289 complex<double> rho1,rho2,rho3,rho4,rho5;
290 complex<double> rho[5];
291 complex<double> pole,SVT,Adler;
293 complex<double> i[5][5];
300 double metap=0.95778;
303 complex<double> K[5][5];
304 for(Int_t k=0;k<5;k++) {
305 for(Int_t l=0;l<5;l++) {
306 i[k][l]=complex<double>(0.,0.);
307 K[k][l]=complex<double>(0.,0.);
314 Double_t s_scatt=-3.92637;
331 rho1sq=(1.0-(pow((
mpi+
mpi),2)/
s));
333 rho1=complex<double>(sqrt(rho1sq),0.);
336 rho1=complex<double>(0.,sqrt(-rho1sq));
340 rho2sq=(1.0-(pow((mK+mK),2)/
s));
342 rho2=complex<double>(sqrt(rho2sq),0.);
345 rho2=complex<double>(0.,sqrt(-rho2sq));
350 rho3=complex<double>(0.,0.);
353 Double_t
real = 1.2274+0.00370909/(
s*
s) - (0.111203)/(
s) - 6.39017*
s +16.8358*
s*
s - 21.8845*
s*
s*
s + 11.3153*
s*
s*
s*
s;
354 Double_t cont32=sqrt(1.0-(16.0*
mpi*
mpi));
355 rho3=complex<double>(cont32*
real,0.);
358 rho3=complex<double>(sqrt(1.0-(16.0*
mpi*
mpi/
s)),0.);
364 rho4=complex<double>(sqrt(rho4sq),0.);
367 rho4=complex<double>(0.,sqrt(-rho4sq));
371 rho5sq=(1.0-(pow((
meta+metap),2)/
s));
373 rho5=complex<double>(sqrt(rho5sq),0.);
376 rho5=complex<double>(0.,sqrt(-rho5sq));
381 for(Int_t k=0;k<5;k++) {
382 for(Int_t l=0;l<5;l++) {
383 for (Int_t pole_index=0;pole_index<5;pole_index++) {
384 Double_t
A=g[pole_index][k]*g[pole_index][l];
385 Double_t
B=ma[pole_index]*ma[pole_index]-
s;
386 K[k][l]=K[k][l]+complex<double>(A/B,0.);
391 for(Int_t k=0;k<5;k++) {
392 for(Int_t l=0;l<5;l++) {
393 Double_t
C=
f[k][l]*(1.0-s_scatt);
394 Double_t D=(
s-s_scatt);
395 K[k][l]=K[k][l]+complex<double>(
C/D,0.);
399 for(Int_t k=0;k<5;k++) {
400 for(Int_t l=0;l<5;l++) {
401 Double_t E=(
s-(sa*
mpi*
mpi*0.5))*(1.0-sa_0);
403 K[k][l]=K[k][l]*complex<double>(E/F,0.);
407 n11=complex<double>(1.,0.)-complex<double>(0.,1.)*K[0][0]*rho[0];
408 n12=complex<double>(0.,0.)-complex<double>(0.,1.)*K[0][1]*rho[1];
409 n13=complex<double>(0.,0.)-complex<double>(0.,1.)*K[0][2]*rho[2];
410 n14=complex<double>(0.,0.)-complex<double>(0.,1.)*K[0][3]*rho[3];
411 n15=complex<double>(0.,0.)-complex<double>(0.,1.)*K[0][4]*rho[4];
413 n21=complex<double>(0.,0.)-complex<double>(0.,1.)*K[1][0]*rho[0];
414 n22=complex<double>(1.,0.)-complex<double>(0.,1.)*K[1][1]*rho[1];
415 n23=complex<double>(0.,0.)-complex<double>(0.,1.)*K[1][2]*rho[2];
416 n24=complex<double>(0.,0.)-complex<double>(0.,1.)*K[1][3]*rho[3];
417 n25=complex<double>(0.,0.)-complex<double>(0.,1.)*K[1][4]*rho[4];
419 n31=complex<double>(0.,0.)-complex<double>(0.,1.)*K[2][0]*rho[0];
420 n32=complex<double>(0.,0.)-complex<double>(0.,1.)*K[2][1]*rho[1];
421 n33=complex<double>(1.,0.)-complex<double>(0.,1.)*K[2][2]*rho[2];
422 n34=complex<double>(0.,0.)-complex<double>(0.,1.)*K[2][3]*rho[3];
423 n35=complex<double>(0.,0.)-complex<double>(0.,1.)*K[2][4]*rho[4];
425 n41=complex<double>(0.,0.)-complex<double>(0.,1.)*K[3][0]*rho[0];
426 n42=complex<double>(0.,0.)-complex<double>(0.,1.)*K[3][1]*rho[1];
427 n43=complex<double>(0.,0.)-complex<double>(0.,1.)*K[3][2]*rho[2];
428 n44=complex<double>(1.,0.)-complex<double>(0.,1.)*K[3][3]*rho[3];
429 n45=complex<double>(0.,0.)-complex<double>(0.,1.)*K[3][4]*rho[4];
431 n51=complex<double>(0.,0.)-complex<double>(0.,1.)*K[4][0]*rho[0];
432 n52=complex<double>(0.,0.)-complex<double>(0.,1.)*K[4][1]*rho[1];
433 n53=complex<double>(0.,0.)-complex<double>(0.,1.)*K[4][2]*rho[2];
434 n54=complex<double>(0.,0.)-complex<double>(0.,1.)*K[4][3]*rho[3];
435 n55=complex<double>(1.,0.)-complex<double>(0.,1.)*K[4][4]*rho[4];
438 det = (n15*n24*n33*n42*n51 - n14*n25*n33*n42*n51 - n15*n23*n34*n42*n51 +
439 n13*n25*n34*n42*n51 + n14*n23*n35*n42*n51 - n13*n24*n35*n42*n51 -
440 n15*n24*n32*n43*n51 + n14*n25*n32*n43*n51 + n15*n22*n34*n43*n51 -
441 n12*n25*n34*n43*n51 - n14*n22*n35*n43*n51 + n12*n24*n35*n43*n51 +
442 n15*n23*n32*n44*n51 - n13*n25*n32*n44*n51 - n15*n22*n33*n44*n51 +
443 n12*n25*n33*n44*n51 + n13*n22*n35*n44*n51 - n12*n23*n35*n44*n51 -
444 n14*n23*n32*n45*n51 + n13*n24*n32*n45*n51 + n14*n22*n33*n45*n51 -
445 n12*n24*n33*n45*n51 - n13*n22*n34*n45*n51 + n12*n23*n34*n45*n51 -
446 n15*n24*n33*n41*n52 + n14*n25*n33*n41*n52 + n15*n23*n34*n41*n52 -
447 n13*n25*n34*n41*n52 - n14*n23*n35*n41*n52 + n13*n24*n35*n41*n52 +
448 n15*n24*n31*n43*n52 - n14*n25*n31*n43*n52 - n15*n21*n34*n43*n52 +
449 n11*n25*n34*n43*n52 + n14*n21*n35*n43*n52 - n11*n24*n35*n43*n52 -
450 n15*n23*n31*n44*n52 + n13*n25*n31*n44*n52 + n15*n21*n33*n44*n52 -
451 n11*n25*n33*n44*n52 - n13*n21*n35*n44*n52 + n11*n23*n35*n44*n52 +
452 n14*n23*n31*n45*n52 - n13*n24*n31*n45*n52 - n14*n21*n33*n45*n52 +
453 n11*n24*n33*n45*n52 + n13*n21*n34*n45*n52 - n11*n23*n34*n45*n52 +
454 n15*n24*n32*n41*n53 - n14*n25*n32*n41*n53 - n15*n22*n34*n41*n53 +
455 n12*n25*n34*n41*n53 + n14*n22*n35*n41*n53 - n12*n24*n35*n41*n53 -
456 n15*n24*n31*n42*n53 + n14*n25*n31*n42*n53 + n15*n21*n34*n42*n53 -
457 n11*n25*n34*n42*n53 - n14*n21*n35*n42*n53 + n11*n24*n35*n42*n53 +
458 n15*n22*n31*n44*n53 - n12*n25*n31*n44*n53 - n15*n21*n32*n44*n53 +
459 n11*n25*n32*n44*n53 + n12*n21*n35*n44*n53 - n11*n22*n35*n44*n53 -
460 n14*n22*n31*n45*n53 + n12*n24*n31*n45*n53 + n14*n21*n32*n45*n53 -
461 n11*n24*n32*n45*n53 - n12*n21*n34*n45*n53 + n11*n22*n34*n45*n53 -
462 n15*n23*n32*n41*n54 + n13*n25*n32*n41*n54 + n15*n22*n33*n41*n54 -
463 n12*n25*n33*n41*n54 - n13*n22*n35*n41*n54 + n12*n23*n35*n41*n54 +
464 n15*n23*n31*n42*n54 - n13*n25*n31*n42*n54 - n15*n21*n33*n42*n54 +
465 n11*n25*n33*n42*n54 + n13*n21*n35*n42*n54 - n11*n23*n35*n42*n54 -
466 n15*n22*n31*n43*n54 + n12*n25*n31*n43*n54 + n15*n21*n32*n43*n54 -
467 n11*n25*n32*n43*n54 - n12*n21*n35*n43*n54 + n11*n22*n35*n43*n54 +
468 n13*n22*n31*n45*n54 - n12*n23*n31*n45*n54 - n13*n21*n32*n45*n54 +
469 n11*n23*n32*n45*n54 + n12*n21*n33*n45*n54 - n11*n22*n33*n45*n54 +
470 n14*n23*n32*n41*n55 - n13*n24*n32*n41*n55 - n14*n22*n33*n41*n55 +
471 n12*n24*n33*n41*n55 + n13*n22*n34*n41*n55 - n12*n23*n34*n41*n55 -
472 n14*n23*n31*n42*n55 + n13*n24*n31*n42*n55 + n14*n21*n33*n42*n55 -
473 n11*n24*n33*n42*n55 - n13*n21*n34*n42*n55 + n11*n23*n34*n42*n55 +
474 n14*n22*n31*n43*n55 - n12*n24*n31*n43*n55 - n14*n21*n32*n43*n55 +
475 n11*n24*n32*n43*n55 + n12*n21*n34*n43*n55 - n11*n22*n34*n43*n55 -
476 n13*n22*n31*n44*n55 + n12*n23*n31*n44*n55 + n13*n21*n32*n44*n55 -
477 n11*n23*n32*n44*n55 - n12*n21*n33*n44*n55 + n11*n22*n33*n44*n55);
479 if(det == complex<double>(0., 0.)) reject=
true;
482 i[0][0] = (n25*n34*n43*n52 -
483 n24*n35*n43*n52 - n25*n33*n44*n52 + n23*n35*n44*n52 +
484 n24*n33*n45*n52 - n23*n34*n45*n52 - n25*n34*n42*n53 +
485 n24*n35*n42*n53 + n25*n32*n44*n53 - n22*n35*n44*n53 -
486 n24*n32*n45*n53 + n22*n34*n45*n53 + n25*n33*n42*n54 -
487 n23*n35*n42*n54 - n25*n32*n43*n54 + n22*n35*n43*n54 +
488 n23*n32*n45*n54 - n22*n33*n45*n54 - n24*n33*n42*n55 +
489 n23*n34*n42*n55 + n24*n32*n43*n55 - n22*n34*n43*n55 -
490 n23*n32*n44*n55 + n22*n33*n44*n55)/det;
492 i[0][1] = (-n15*n34*n43*n52 +
493 n14*n35*n43*n52 + n15*n33*n44*n52 - n13*n35*n44*n52 -
494 n14*n33*n45*n52 + n13*n34*n45*n52 + n15*n34*n42*n53 -
495 n14*n35*n42*n53 - n15*n32*n44*n53 + n12*n35*n44*n53 +
496 n14*n32*n45*n53 - n12*n34*n45*n53 - n15*n33*n42*n54 +
497 n13*n35*n42*n54 + n15*n32*n43*n54 - n12*n35*n43*n54 -
498 n13*n32*n45*n54 + n12*n33*n45*n54 + n14*n33*n42*n55 -
499 n13*n34*n42*n55 - n14*n32*n43*n55 + n12*n34*n43*n55 +
500 n13*n32*n44*n55 - n12*n33*n44*n55)/det;
502 i[0][2] = (n15*n24*n43*n52 -
503 n14*n25*n43*n52 - n15*n23*n44*n52 + n13*n25*n44*n52 +
504 n14*n23*n45*n52 - n13*n24*n45*n52 - n15*n24*n42*n53 +
505 n14*n25*n42*n53 + n15*n22*n44*n53 - n12*n25*n44*n53 -
506 n14*n22*n45*n53 + n12*n24*n45*n53 + n15*n23*n42*n54 -
507 n13*n25*n42*n54 - n15*n22*n43*n54 + n12*n25*n43*n54 +
508 n13*n22*n45*n54 - n12*n23*n45*n54 - n14*n23*n42*n55 +
509 n13*n24*n42*n55 + n14*n22*n43*n55 - n12*n24*n43*n55 -
510 n13*n22*n44*n55 + n12*n23*n44*n55)/det;
512 i[0][3] = (-n15*n24*n33*n52 +
513 n14*n25*n33*n52 + n15*n23*n34*n52 - n13*n25*n34*n52 -
514 n14*n23*n35*n52 + n13*n24*n35*n52 + n15*n24*n32*n53 -
515 n14*n25*n32*n53 - n15*n22*n34*n53 + n12*n25*n34*n53 +
516 n14*n22*n35*n53 - n12*n24*n35*n53 - n15*n23*n32*n54 +
517 n13*n25*n32*n54 + n15*n22*n33*n54 - n12*n25*n33*n54 -
518 n13*n22*n35*n54 + n12*n23*n35*n54 + n14*n23*n32*n55 -
519 n13*n24*n32*n55 - n14*n22*n33*n55 + n12*n24*n33*n55 +
520 n13*n22*n34*n55 - n12*n23*n34*n55)/det;
522 i[0][4] = (n15*n24*n33*n42 -
523 n14*n25*n33*n42 - n15*n23*n34*n42 + n13*n25*n34*n42 +
524 n14*n23*n35*n42 - n13*n24*n35*n42 - n15*n24*n32*n43 +
525 n14*n25*n32*n43 + n15*n22*n34*n43 - n12*n25*n34*n43 -
526 n14*n22*n35*n43 + n12*n24*n35*n43 + n15*n23*n32*n44 -
527 n13*n25*n32*n44 - n15*n22*n33*n44 + n12*n25*n33*n44 +
528 n13*n22*n35*n44 - n12*n23*n35*n44 - n14*n23*n32*n45 +
529 n13*n24*n32*n45 + n14*n22*n33*n45 - n12*n24*n33*n45 -
530 n13*n22*n34*n45 + n12*n23*n34*n45)/det;
534 double s0_prod = -0.07;
536 double u1j_re_limit[5][2], u1j_im_limit[5][2] ;
537 u1j_re_limit[0][0] = 0. ; u1j_re_limit[0][1] = 1. ;
538 u1j_re_limit[1][0] = -0.29 ; u1j_re_limit[1][1] = 0.12 ;
539 u1j_re_limit[2][0] = -0.17 ; u1j_re_limit[2][1] = 0.065 ;
540 u1j_re_limit[3][0] = -0.66 ; u1j_re_limit[3][1] = 0.1 ;
541 u1j_re_limit[4][0] = -1.36 ; u1j_re_limit[4][1] = 0.18 ;
543 u1j_im_limit[0][0] = -0.58 ; u1j_im_limit[0][1] = 0.58 ;
544 u1j_im_limit[1][0] = 0.00 ; u1j_im_limit[1][1] = 0.28 ;
545 u1j_im_limit[2][0] = -0.135 ; u1j_im_limit[2][1] = 0.10 ;
546 u1j_im_limit[3][0] = -0.13 ; u1j_im_limit[3][1] = 0.40 ;
547 u1j_im_limit[4][0] = -0.36 ; u1j_im_limit[4][1] = 0.80 ;
555 complex<double> value0(0., 0.) ;
556 complex<double> value1(0., 0.) ;
560 double u1j_re =
real(i[0][l]) ;
561 double u1j_im =
imag(i[0][l]) ;
562 if(u1j_re==0. || u1j_im==0.) reject=
true;
563 if(u1j_re < u1j_re_limit[l][0] || u1j_re > u1j_re_limit[l][1] || u1j_im < u1j_im_limit[l][0] || u1j_im > u1j_im_limit[l][1]) reject=
true;
565 for(
int pole_index=0;pole_index<5;pole_index++)
567 complex<double>
A = beta[pole_index]*g[pole_index][l];
568 value0 += (i[0][l]*
A)/(ma[pole_index]*ma[pole_index]-
s) ;
573 value1 += i[0][0]*fprod[0];
574 value1 += i[0][1]*fprod[1];
575 value1 += i[0][2]*fprod[2];
576 value1 += i[0][3]*fprod[3];
577 value1 += i[0][4]*fprod[4];
578 value1 *= (1.-s0_prod)/(
s-s0_prod) ;
581 if(reject==
true)
return complex<double>(9999., 9999.) ;
582 else return (value0+value1) ;
587complex<double> D0ToKLpipi2018::amplitude_LASS(vector<double> p_k0l, vector<double> p_pip, vector<double> p_pim,
string reso,
double A_r,
double Phi_r) {
590 double gammaR = 0.27 ;
592 HepLorentzVector _p_k0l(p_k0l[0],p_k0l[1],p_k0l[2],p_k0l[3]);
593 HepLorentzVector _p_pip(p_pip[0],p_pip[1],p_pip[2],p_pip[3]);
594 HepLorentzVector _p_pim(p_pim[0],p_pim[1],p_pim[2],p_pim[3]);
595 if (reso ==
"k0lpim") mab2 = pow((_p_k0l + _p_pim).m(),2);
596 else if(reso ==
"k0lpip") mab2 = pow((_p_k0l + _p_pip).m(),2);
600 const double mD0 = 1.86483;
601 const double mKl = 0.49761;
602 const double mPi = 0.13957;
608 double _phiR = -1.9146 ;
609 double _phiF = 0.0017 ;
614 double mAB = sqrt(mab2) ;
621 double pAB=sqrt( (((mAB*mAB-mA*mA-mB*mB)*(mAB*mAB-mA*mA-mB*mB)/4.0) - mA*mA*mB*mB)/(mAB*mAB));
624 double pR=sqrt( (((mR*mR-mA*mA-mB*mB)*(mR*mR-mA*mA-mB*mB)/4.0) - mA*mA*mB*mB)/(mR*mR));
628 double g = gammaR*pow(
q/q0,power)*(mR/mAB)*fR*fR;
630 complex<double> propagator_relativistic_BreitWigner = 1./(mR*mR - mAB*mAB - complex<double>(0.,mR*g));
633 double cot_deltaF = 1.0/(_a*
q) + 0.5*_r*
q;
634 double qcot_deltaF = 1.0/_a + 0.5*_r*
q*
q;
637 complex<double> expi2deltaF = complex<double>(qcot_deltaF,
q)/ complex<double>(qcot_deltaF, -
q);
639 complex<double> resonant_term_T = _R * complex<double>(
cos(_phiR + 2 * _phiF),
sin(_phiR + 2 * _phiF)) * propagator_relativistic_BreitWigner * mR * gammaR * mR / q0 * expi2deltaF;
642 complex<double> non_resonant_term_F = _F * complex<double>(
cos(_phiF),
sin(_phiF)) * (
cos(_phiF) + cot_deltaF *
sin(_phiF)) * sqrt(
s) / complex<double>(qcot_deltaF, -
q);
645 complex<double> LASS_contribution = non_resonant_term_F + resonant_term_T;
647 return complex<double>(A_r*
cos(Phi_r), A_r*
sin(Phi_r)) * LASS_contribution;
double sin(const BesAngle a)
double cos(const BesAngle a)
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")
double imag(const EvtComplex &c)
****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
***************************************************************************************Pseudo Class RRes *****************************************************************************************Parameters and physical constants **Maarten sept ************************************************************************DOUBLE PRECISION xsmu **************************************************************************PARTICLE DATA all others are from PDG *Only resonances with known widths into electron pairs are sept ************************************************************************C Declarations C
complex< double > Amp_PFT(vector< double > k0l, vector< double > pip, vector< double > pim)
virtual ~D0ToKLpipi2018()