BOSS 8.0.0
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 32 of file D0Topipipi0.h.

32{}

◆ ~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 1335 of file D0Topipipi0.cxx.

1336 {
1337
1338 if ( fitpara.size() != 14 )
1339 {
1340 cout << "Error!!! number of para: " << fitpara.size() << endl;
1341 exit( 0 );
1342 }
1343
1344 vector<double> PipPim;
1345 PipPim.clear();
1346 vector<double> PipPi0;
1347 PipPi0.clear();
1348 vector<double> PimPi0;
1349 PimPi0.clear();
1350
1351 PipPim = sum_tensor( Pip, Pim );
1352 PipPi0 = sum_tensor( Pip, Pi0 );
1353 PimPi0 = sum_tensor( Pim, Pi0 );
1354
1355 vector<double> D0;
1356 D0.clear();
1357 D0 = sum_tensor( PipPim, Pi0 );
1358
1359 double M2_PipPim = contract_11_0( PipPim, PipPim );
1360 double M2_PipPi0 = contract_11_0( PipPi0, PipPi0 );
1361 double M2_PimPi0 = contract_11_0( PimPi0, PimPi0 );
1362
1363 double M2_D0 = contract_11_0( D0, D0 );
1364
1365 complex<double> GS_rho770_z = GS( M2_PipPim, m0_rho7700, w0_rho7700, m2_Pi, m2_Pi, rRes, 1 );
1366 complex<double> GS_rho770_p =
1367 GS( M2_PipPi0, m0_rho770p, w0_rho770p, m2_Pi, m2_Pi0, rRes, 1 );
1368 complex<double> GS_rho770_m =
1369 GS( M2_PimPi0, m0_rho770p, w0_rho770p, m2_Pi, m2_Pi0, rRes, 1 );
1370
1371 complex<double> PiPiS_pm_0 = Fvector( M2_PipPim, s0_prod, 0 );
1372 complex<double> PiPiS_pm_1 = Fvector( M2_PipPim, s0_prod, 1 );
1373 complex<double> PiPiS_pm_2 = Fvector( M2_PipPim, s0_prod, 2 );
1374 complex<double> PiPiS_pm_3 = Fvector( M2_PipPim, s0_prod, 3 );
1375 complex<double> PiPiS_pm_4 = Fvector( M2_PipPim, s0_prod, 4 );
1376 complex<double> PiPiS_pm_5 = Fvector( M2_PipPim, s0_prod, 5 );
1377 complex<double> PiPiS_pm_6 = Fvector( M2_PipPim, s0_prod, 6 );
1378 complex<double> PiPiS_pm_7 = Fvector( M2_PipPim, s0_prod, 7 );
1379 complex<double> PiPiS_pm_8 = Fvector( M2_PipPim, s0_prod, 8 );
1380 complex<double> PiPiS_pm_9 = Fvector( M2_PipPim, s0_prod, 9 );
1381
1382 complex<double> RBW_f21270 = RBW( M2_PipPim, m0_f21270, w0_f21270, m2_Pi, m2_Pi, rRes, 2 );
1383
1384 // X->PP Orbital
1385 vector<double> T1_PipPim;
1386 T1_PipPim.clear();
1387 vector<double> T1_PipPi0;
1388 T1_PipPi0.clear();
1389 vector<double> T1_PimPi0;
1390 T1_PimPi0.clear();
1391
1392 T1_PipPim = OrbitalTensors( PipPim, Pip, Pim, rRes, 1 );
1393 T1_PipPi0 = OrbitalTensors( PipPi0, Pip, Pi0, rRes, 1 );
1394 T1_PimPi0 = OrbitalTensors( PimPi0, Pim, Pi0, rRes, 1 );
1395
1396 vector<double> T2_PipPim;
1397 T2_PipPim.clear();
1398
1399 T2_PipPim = OrbitalTensors( PipPim, Pip, Pim, rRes, 2 );
1400
1401 // D->XP Orbital
1402 vector<double> T1_PipPimPi0;
1403 T1_PipPimPi0.clear();
1404 vector<double> T1_PipPi0Pim;
1405 T1_PipPi0Pim.clear();
1406 vector<double> T1_PimPi0Pip;
1407 T1_PimPi0Pip.clear();
1408
1409 T1_PipPimPi0 = OrbitalTensors( D0, PipPim, Pi0, rD, 1 );
1410 T1_PipPi0Pim = OrbitalTensors( D0, PipPi0, Pim, rD, 1 );
1411 T1_PimPi0Pip = OrbitalTensors( D0, PimPi0, Pip, rD, 1 );
1412
1413 vector<double> T2_PipPimPi0;
1414 T2_PipPimPi0.clear();
1415
1416 T2_PipPimPi0 = OrbitalTensors( D0, PipPim, Pi0, rD, 2 );
1417
1418 complex<double> amplitude( 0, 0 );
1419
1420 // D-> VP
1421 double SF_VpPm = contract_11_0( T1_PipPi0Pim, T1_PipPi0 );
1422 amplitude += fitpara[0] * ( SF_VpPm * GS_rho770_p );
1423
1424 double SF_VmPp = contract_11_0( T1_PimPi0Pip, T1_PimPi0 );
1425 amplitude += fitpara[1] * ( SF_VmPp * GS_rho770_m );
1426
1427 double SF_VzPz = contract_11_0( T1_PipPimPi0, T1_PipPim );
1428 amplitude += fitpara[2] * ( SF_VzPz * GS_rho770_z );
1429
1430 // D-> SP
1431 amplitude += fitpara[3] * ( PiPiS_pm_0 );
1432 amplitude += fitpara[4] * ( PiPiS_pm_1 );
1433 amplitude += fitpara[5] * ( PiPiS_pm_2 );
1434 amplitude += fitpara[6] * ( PiPiS_pm_3 );
1435 amplitude += fitpara[7] * ( PiPiS_pm_4 );
1436 amplitude += fitpara[8] * ( PiPiS_pm_5 );
1437 amplitude += fitpara[9] * ( PiPiS_pm_6 );
1438 amplitude += fitpara[10] * ( PiPiS_pm_7 );
1439 amplitude += fitpara[11] * ( PiPiS_pm_8 );
1440 amplitude += fitpara[12] * ( PiPiS_pm_9 );
1441
1442 // D0 -> TP
1443 double SF_TzPz = contract_22_0( T2_PipPimPi0, T2_PipPim );
1444 amplitude += fitpara[13] * ( SF_TzPz * RBW_f21270 );
1445
1446 return amplitude;
1447}

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

Referenced by QCMCFilter::findD0Decay().


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