22 class EvtD0Topippim2pi0:
public EvtDecayProb {
26 EvtD0Topippim2pi0() {}
27 virtual ~EvtD0Topippim2pi0();
29 std::string getName();
30 EvtDecayBase* clone();
34 void decay(EvtParticle* p);
38 double AmplitudeSquare(
int charm,
int tagmode);
40 EvtVector4R GetDaugMomLab(
int i) {
return _p4Lab[i];}
41 EvtVector4R GetDaugMomCM(
int i) {
return _p4CM[i];}
42 EvtVector4R GetDaugMomHel(
int i) {
return _p4Hel[i];}
44 EvtVector4R _p4Lab[10], _p4CM[10], _p4Hel[10];
50 void setInput(
double* pip,
double* pim,
double* pi01,
double* pi02);
53 std::complex<double> Get_AmpD0() {
return m_AmpD0;}
54 std::complex<double> Get_AmpDb() {
return m_AmpDb;}
56 double Get_strongPhase();
57 std::complex<double> Amp(std::vector<double> Pip1, std::vector<double> Pim1, std::vector<double> Pip2, std::vector<double> Pim2);
58 double arg(std::complex<double> x);
59 double mag2(std::complex<double> x);
61 std::complex<double> CalD0Amp();
62 std::complex<double> CalDbAmp();
64 std::vector<double> sum_tensor(std::vector<double> pa, std::vector<double> pb);
65 double contract_11_0(std::vector<double> pa, std::vector<double> pb);
66 double contract_22_0(std::vector<double> pa, std::vector<double> pb);
67 std::vector<double> contract_21_1(std::vector<double> pa, std::vector<double> pb);
68 std::vector<double> contract_22_2(std::vector<double> pa, std::vector<double> pb);
69 std::vector<double> contract_31_2(std::vector<double> pa, std::vector<double> pb);
70 std::vector<double> contract_41_3(std::vector<double> pa, std::vector<double> pb);
71 std::vector<double> contract_42_2(std::vector<double> pa, std::vector<double> pb);
73 std::vector<double> OrbitalTensors(std::vector<double> pa, std::vector<double> pb, std::vector<double> pc,
double r,
int rank);
74 std::vector<double> ProjectionTensors(std::vector<double> pa,
int rank);
76 double fundecaymomentum(
double mr2,
double m1_2,
double m2_2);
77 double fundecaymomentum2(
double mr2,
double m1_2,
double m2_2);
78 std::complex<double> breitwigner(
double mx2,
double mr,
double wr);
79 double h(
double m,
double q);
80 double dh(
double m0,
double q0);
81 double f(
double m0,
double sx,
double q0,
double q);
82 double d(
double m0,
double q0);
83 double wid(
double mass,
double sa,
double sb,
double sc,
double r,
int l);
84 double widT1260(
int i,
double g1,
double g2);
85 double widT1300(
int i);
86 double widT1640(
int i);
87 double widT1170(
int i);
88 double anywid1260(
double sc,
double g1,
double g2);
89 double anywid1300(
double sc);
90 double anywid1640(
double sc);
91 double anywid1170(
double sc);
93 std::complex<double> irho(
double mr2,
double m1_2,
double m2_2);
94 std::complex<double> Flatte(
double mx2,
double mr,
double g1,
double g2,
double m1a,
double m1b,
double m2a,
double m2b);
96 std::complex<double> GS(
double mx2,
double mr,
double wr,
double m1_2,
double m2_2,
double r,
int l);
97 std::complex<double> RBW(
double mx2,
double mr,
double wr,
double m1_2,
double m2_2,
double r,
int l);
98 std::complex<double> RBWa1260(
double mx2,
double mr,
double g1,
double g2);
99 std::complex<double> RBWpi1300(
double mx2,
double mr,
double wr);
100 std::complex<double> RBWa1640(
double mx2,
double mr,
double wr);
101 std::complex<double> RBWh11170(
double mx2,
double mr,
double wr);
102 double rho22(
double sc);
103 std::complex<double> rhoMTX(
int i,
int j,
double s);
104 std::complex<double> KMTX(
int i,
int j,
double s);
105 std::complex<double> IMTX(
int i,
int j);
106 std::complex<double> FMTX(
double Kijx,
double Kijy,
double rhojjx,
double rhojjy,
int i,
int j);
107 double FINVMTX(
double s,
double* FINVx,
double* FINVy);
108 std::complex<double> PVTR(
int ID,
double s);
109 std::complex<double> Fvector(
double sa,
double s0,
int l);
111 std::vector<double> m_Pip;
112 std::vector<double> m_Pim;
113 std::vector<double> m_Pi01;
114 std::vector<double> m_Pi02;
116 std::vector<double> g_uv;
117 std::vector<double> epsilon_uvmn;
118 std::vector< std::complex<double> > fitpara;
181 std::complex<double> m_AmpD0;
182 std::complex<double> m_AmpDb;
183 std::complex<double> m_RAmp;