BOSS 7.1.2
BESIII Offline Software System
Loading...
Searching...
No Matches
D0Topipipi0 Class Reference

#include <D0Topipipi0.h>

Public Member Functions

 D0Topipipi0 ()
 
virtual ~D0Topipipi0 ()
 
void init ()
 
complex< double > Amp (vector< double > Pip, vector< double > Pim, vector< double > Pi0)
 

Detailed Description

Definition at line 29 of file D0Topipipi0.h.

Constructor & Destructor Documentation

◆ D0Topipipi0()

D0Topipipi0::D0Topipipi0 ( )
inline

Definition at line 33 of file D0Topipipi0.h.

33{}

◆ ~D0Topipipi0()

D0Topipipi0::~D0Topipipi0 ( )
virtual

Definition at line 33 of file D0Topipipi0.cxx.

33{}

Member Function Documentation

◆ Amp()

complex< double > D0Topipipi0::Amp ( vector< double > Pip,
vector< double > Pim,
vector< double > Pi0 )

Definition at line 1160 of file D0Topipipi0.cxx.

1161{
1162
1163 if(fitpara.size()!=14) {
1164 cout<<"Error!!! number of para: "<<fitpara.size()<<endl;
1165 exit(0);
1166 }
1167
1168 vector<double> PipPim; PipPim.clear();
1169 vector<double> PipPi0; PipPi0.clear();
1170 vector<double> PimPi0; PimPi0.clear();
1171
1172 PipPim = sum_tensor(Pip, Pim);
1173 PipPi0 = sum_tensor(Pip, Pi0);
1174 PimPi0 = sum_tensor(Pim, Pi0);
1175
1176 vector<double> D0; D0.clear();
1177 D0 = sum_tensor(PipPim, Pi0);
1178
1179 double M2_PipPim = contract_11_0(PipPim, PipPim);
1180 double M2_PipPi0 = contract_11_0(PipPi0, PipPi0);
1181 double M2_PimPi0 = contract_11_0(PimPi0, PimPi0);
1182
1183 double M2_D0 = contract_11_0(D0, D0);
1184
1185 complex<double> GS_rho770_z = GS(M2_PipPim, m0_rho7700, w0_rho7700, m2_Pi, m2_Pi, rRes, 1);
1186 complex<double> GS_rho770_p = GS(M2_PipPi0, m0_rho770p, w0_rho770p, m2_Pi, m2_Pi0, rRes, 1);
1187 complex<double> GS_rho770_m = GS(M2_PimPi0, m0_rho770p, w0_rho770p, m2_Pi, m2_Pi0, rRes, 1);
1188
1189 complex<double> PiPiS_pm_0 = Fvector(M2_PipPim, s0_prod, 0);
1190 complex<double> PiPiS_pm_1 = Fvector(M2_PipPim, s0_prod, 1);
1191 complex<double> PiPiS_pm_2 = Fvector(M2_PipPim, s0_prod, 2);
1192 complex<double> PiPiS_pm_3 = Fvector(M2_PipPim, s0_prod, 3);
1193 complex<double> PiPiS_pm_4 = Fvector(M2_PipPim, s0_prod, 4);
1194 complex<double> PiPiS_pm_5 = Fvector(M2_PipPim, s0_prod, 5);
1195 complex<double> PiPiS_pm_6 = Fvector(M2_PipPim, s0_prod, 6);
1196 complex<double> PiPiS_pm_7 = Fvector(M2_PipPim, s0_prod, 7);
1197 complex<double> PiPiS_pm_8 = Fvector(M2_PipPim, s0_prod, 8);
1198 complex<double> PiPiS_pm_9 = Fvector(M2_PipPim, s0_prod, 9);
1199
1200 complex<double> RBW_f21270 = RBW(M2_PipPim, m0_f21270, w0_f21270, m2_Pi, m2_Pi, rRes, 2);
1201
1202 // X->PP Orbital
1203 vector<double> T1_PipPim; T1_PipPim.clear();
1204 vector<double> T1_PipPi0; T1_PipPi0.clear();
1205 vector<double> T1_PimPi0; T1_PimPi0.clear();
1206
1207 T1_PipPim = OrbitalTensors(PipPim, Pip, Pim, rRes, 1);
1208 T1_PipPi0 = OrbitalTensors(PipPi0, Pip, Pi0, rRes, 1);
1209 T1_PimPi0 = OrbitalTensors(PimPi0, Pim, Pi0, rRes, 1);
1210
1211 vector<double> T2_PipPim; T2_PipPim.clear();
1212
1213 T2_PipPim = OrbitalTensors(PipPim, Pip, Pim, rRes, 2);
1214
1215 // D->XP Orbital
1216 vector<double> T1_PipPimPi0; T1_PipPimPi0.clear();
1217 vector<double> T1_PipPi0Pim; T1_PipPi0Pim.clear();
1218 vector<double> T1_PimPi0Pip; T1_PimPi0Pip.clear();
1219
1220 T1_PipPimPi0 = OrbitalTensors(D0, PipPim, Pi0, rD, 1);
1221 T1_PipPi0Pim = OrbitalTensors(D0, PipPi0, Pim, rD, 1);
1222 T1_PimPi0Pip = OrbitalTensors(D0, PimPi0, Pip, rD, 1);
1223
1224 vector<double> T2_PipPimPi0; T2_PipPimPi0.clear();
1225
1226 T2_PipPimPi0 = OrbitalTensors(D0, PipPim, Pi0, rD, 2);
1227
1228 complex<double> amplitude(0,0);
1229
1230
1231 // D-> VP
1232 double SF_VpPm = contract_11_0(T1_PipPi0Pim, T1_PipPi0);
1233 amplitude += fitpara[0]*(SF_VpPm*GS_rho770_p);
1234
1235 double SF_VmPp = contract_11_0(T1_PimPi0Pip, T1_PimPi0);
1236 amplitude += fitpara[1]*(SF_VmPp*GS_rho770_m);
1237
1238 double SF_VzPz = contract_11_0(T1_PipPimPi0, T1_PipPim);
1239 amplitude += fitpara[2]*(SF_VzPz*GS_rho770_z);
1240
1241 // D-> SP
1242 amplitude += fitpara[3]*(PiPiS_pm_0);
1243 amplitude += fitpara[4]*(PiPiS_pm_1);
1244 amplitude += fitpara[5]*(PiPiS_pm_2);
1245 amplitude += fitpara[6]*(PiPiS_pm_3);
1246 amplitude += fitpara[7]*(PiPiS_pm_4);
1247 amplitude += fitpara[8]*(PiPiS_pm_5);
1248 amplitude += fitpara[9]*(PiPiS_pm_6);
1249 amplitude += fitpara[10]*(PiPiS_pm_7);
1250 amplitude += fitpara[11]*(PiPiS_pm_8);
1251 amplitude += fitpara[12]*(PiPiS_pm_9);
1252
1253 // D0 -> TP
1254 double SF_TzPz = contract_22_0(T2_PipPimPi0, T2_PipPim);
1255 amplitude += fitpara[13]*(SF_TzPz*RBW_f21270);
1256
1257 return amplitude;
1258
1259}

Referenced by QCMCFilter::findD0Decay().

◆ init()

void D0Topipipi0::init ( )

Definition at line 35 of file D0Topipipi0.cxx.

35 {
36 //std::cout << "Initializing D0Topipipi0: charm= "<<charm<<" tagmode= "<<tagmode<<std::endl;
37
38
39 g_uv.clear();
40 for(int i=0; i<4; i++){
41 for(int j=0; j<4; j++){
42 if(i!=j){
43 g_uv.push_back(0.0);
44 }else if(i<3){
45 g_uv.push_back(-1.0);
46 }else if(i==3){
47 g_uv.push_back(1.0);
48 }
49 }
50 }
51
52 epsilon_uvmn.clear();
53 for(int i=0; i<4; i++){
54 for(int j=0; j<4; j++){
55 for(int k=0; k<4; k++){
56 for(int l=0; l<4; l++){
57 if(i==j || i==k || i==l || j==k || j==l || k==l){
58 epsilon_uvmn.push_back(0.0);
59 }else{
60 if(i==0 && j==1 && k==2 && l==3) epsilon_uvmn.push_back(1.0);
61 if(i==0 && j==1 && k==3 && l==2) epsilon_uvmn.push_back(-1.0);
62 if(i==0 && j==2 && k==1 && l==3) epsilon_uvmn.push_back(-1.0);
63 if(i==0 && j==2 && k==3 && l==1) epsilon_uvmn.push_back(1.0);
64 if(i==0 && j==3 && k==1 && l==2) epsilon_uvmn.push_back(1.0);
65 if(i==0 && j==3 && k==2 && l==1) epsilon_uvmn.push_back(-1.0);
66
67 if(i==1 && j==0 && k==2 && l==3) epsilon_uvmn.push_back(-1.0);
68 if(i==1 && j==0 && k==3 && l==2) epsilon_uvmn.push_back(1.0);
69 if(i==1 && j==2 && k==0 && l==3) epsilon_uvmn.push_back(1.0);
70 if(i==1 && j==2 && k==3 && l==0) epsilon_uvmn.push_back(-1.0);
71 if(i==1 && j==3 && k==0 && l==2) epsilon_uvmn.push_back(-1.0);
72 if(i==1 && j==3 && k==2 && l==0) epsilon_uvmn.push_back(1.0);
73
74 if(i==2 && j==0 && k==1 && l==3) epsilon_uvmn.push_back(1.0);
75 if(i==2 && j==0 && k==3 && l==1) epsilon_uvmn.push_back(-1.0);
76 if(i==2 && j==1 && k==0 && l==3) epsilon_uvmn.push_back(-1.0);
77 if(i==2 && j==1 && k==3 && l==0) epsilon_uvmn.push_back(1.0);
78 if(i==2 && j==3 && k==0 && l==1) epsilon_uvmn.push_back(1.0);
79 if(i==2 && j==3 && k==1 && l==0) epsilon_uvmn.push_back(-1.0);
80
81 if(i==3 && j==0 && k==1 && l==2) epsilon_uvmn.push_back(-1.0);
82 if(i==3 && j==0 && k==2 && l==1) epsilon_uvmn.push_back(1.0);
83 if(i==3 && j==1 && k==0 && l==2) epsilon_uvmn.push_back(1.0);
84 if(i==3 && j==1 && k==2 && l==0) epsilon_uvmn.push_back(-1.0);
85 if(i==3 && j==2 && k==0 && l==1) epsilon_uvmn.push_back(-1.0);
86 if(i==3 && j==2 && k==1 && l==0) epsilon_uvmn.push_back(1.0);
87
88 }
89 }
90 }
91 }
92 }
93
94 _nd = 3;
95 math_pi = 3.1415926;
96 mass_Pion = 0.13957;
97
98 rRes = 3.0*0.197321;
99 rD = 5.0*0.197321;
100 m_Pi = mass_Pion;
101 m2_Pi = m_Pi*m_Pi;
102 m_Pi0 = 0.134977;
103 m2_Pi0 = m_Pi0*m_Pi0;
104
105 m0_rho7700 = 0.77526;
106 w0_rho7700 = 0.1478;
107
108 m0_rho770p = 0.77511;
109 w0_rho770p = 0.1491;
110
111 m0_f21270 = 1.2755;
112 w0_f21270 = 0.1867;
113
114 s0_prod = -5.0;
115
116 fitpara.clear();
117 fitpara.push_back(complex<double>(100,0));
118 fitpara.push_back(complex<double>(69.8939*cos(3.14983),69.8939*sin(3.14983)));
119 fitpara.push_back(complex<double>(58.521*cos(-2.90685),58.521*sin(-2.90685)));
120 fitpara.push_back(complex<double>(483.035*cos(-0.679009),483.035*sin(-0.679009)));
121 fitpara.push_back(complex<double>(441.921*cos(-0.879847),441.921*sin(-0.879847)));
122 fitpara.push_back(complex<double>(1356.95*cos(-0.206653),1356.95*sin(-0.206653)));
123 fitpara.push_back(complex<double>(559.218*cos(0.501728),559.218*sin(0.501728)));
124 fitpara.push_back(complex<double>(3165.25*cos(3.39939),3165.25*sin(3.39939)));
125 fitpara.push_back(complex<double>(1422.93*cos(3.05347),1422.93*sin(3.05347)));
126 fitpara.push_back(complex<double>(2399.8*cos(2.24983),2399.8*sin(2.24983)));
127 fitpara.push_back(complex<double>(4601.19*cos(2.74388),4601.19*sin(2.74388)));
128 fitpara.push_back(complex<double>(1684.1*cos(1.99894),1684.1*sin(1.99894)));
129 fitpara.push_back(complex<double>(678.674*cos(-2.510691),678.674*sin(-2.510691)));
130 fitpara.push_back(complex<double>(2.19068*cos(0.991805),2.19068*sin(0.991805)));
131
132
133 return;
134}
double sin(const BesAngle a)
Definition BesAngle.h:210
double cos(const BesAngle a)
Definition BesAngle.h:213

Referenced by QCMCFilter::findD0Decay().


The documentation for this class was generated from the following files: