502 for (
int i = 0;
i < 6;
i++)
510 Ai[0] = C[4] * C[4] - C[2] * C[5];
511 Ai[1] = C[1] * C[5] - C[3] * C[4];
512 Ai[3] = C[2] * C[3] - C[1] * C[4];
513 fvec det = 1. / (C[0] * Ai[0] + C[1] * Ai[1] + C[3] * Ai[3]);
517 Ai[2] = (C[3] * C[3] - C[0] * C[5]) * det;
518 Ai[4] = (C[0] * C[4] - C[1] * C[3]) * det;
519 Ai[5] = (C[1] * C[1] - C[0] * C[2]) * det;
523 B[0][0] = C[6] * Ai[0] + C[7] * Ai[1] + C[8] * Ai[3];
524 B[0][1] = C[6] * Ai[1] + C[7] * Ai[2] + C[8] * Ai[4];
525 B[0][2] = C[6] * Ai[3] + C[7] * Ai[4] + C[8] * Ai[5];
527 B[1][0] = C[10] * Ai[0] + C[11] * Ai[1] + C[12] * Ai[3];
528 B[1][1] = C[10] * Ai[1] + C[11] * Ai[2] + C[12] * Ai[4];
529 B[1][2] = C[10] * Ai[3] + C[11] * Ai[4] + C[12] * Ai[5];
531 B[2][0] = C[15] * Ai[0] + C[16] * Ai[1] + C[17] * Ai[3];
532 B[2][1] = C[15] * Ai[1] + C[16] * Ai[2] + C[17] * Ai[4];
533 B[2][2] = C[15] * Ai[3] + C[16] * Ai[4] + C[17] * Ai[5];
535 B[3][0] = C[21] * Ai[0] + C[22] * Ai[1] + C[23] * Ai[3];
536 B[3][1] = C[21] * Ai[1] + C[22] * Ai[2] + C[23] * Ai[4];
537 B[3][2] = C[21] * Ai[3] + C[22] * Ai[4] + C[23] * Ai[5];
539 B[4][0] = C[28] * Ai[0] + C[29] * Ai[1] + C[30] * Ai[3];
540 B[4][1] = C[28] * Ai[1] + C[29] * Ai[2] + C[30] * Ai[4];
541 B[4][2] = C[28] * Ai[3] + C[29] * Ai[4] + C[30] * Ai[5];
543 fvec z[3] = {
m[0] - r[0],
m[1] - r[1],
m[2] - r[2]};
546 fvec AV[6] = {C[0] - V[0], C[1] - V[1], C[2] - V[2], C[3] - V[3], C[4] - V[4], C[5] - V[5]};
548 AVi[0] = AV[4] * AV[4] - AV[2] * AV[5];
549 AVi[1] = AV[1] * AV[5] - AV[3] * AV[4];
550 AVi[2] = AV[3] * AV[3] - AV[0] * AV[5];
551 AVi[3] = AV[2] * AV[3] - AV[1] * AV[4];
552 AVi[4] = AV[0] * AV[4] - AV[1] * AV[3];
553 AVi[5] = AV[1] * AV[1] - AV[0] * AV[2];
555 det = 1. / (AV[0] * AVi[0] + AV[1] * AVi[1] + AV[3] * AVi[3]);
558 Particle->Chi2 += (+(AVi[0] * z[0] + AVi[1] * z[1] + AVi[3] * z[2]) * z[0]
559 + (AVi[1] * z[0] + AVi[2] * z[1] + AVi[4] * z[2]) * z[1]
560 + (AVi[3] * z[0] + AVi[4] * z[1] + AVi[5] * z[2]) * z[2])
567 r[3] += B[0][0] * z[0] + B[0][1] * z[1] + B[0][2] * z[2];
568 r[4] += B[1][0] * z[0] + B[1][1] * z[1] + B[1][2] * z[2];
569 r[5] += B[2][0] * z[0] + B[2][1] * z[1] + B[2][2] * z[2];
570 r[6] += B[3][0] * z[0] + B[3][1] * z[1] + B[3][2] * z[2];
571 r[7] += B[4][0] * z[0] + B[4][1] * z[1] + B[4][2] * z[2];
582 d0 = B[0][0] * V[0] + B[0][1] * V[1] + B[0][2] * V[3] - C[6];
583 d1 = B[0][0] * V[1] + B[0][1] * V[2] + B[0][2] * V[4] - C[7];
584 d2 = B[0][0] * V[3] + B[0][1] * V[4] + B[0][2] * V[5] - C[8];
589 C[9] += d0 * B[0][0] + d1 * B[0][1] + d2 * B[0][2];
591 d0 = B[1][0] * V[0] + B[1][1] * V[1] + B[1][2] * V[3] - C[10];
592 d1 = B[1][0] * V[1] + B[1][1] * V[2] + B[1][2] * V[4] - C[11];
593 d2 = B[1][0] * V[3] + B[1][1] * V[4] + B[1][2] * V[5] - C[12];
598 C[13] += d0 * B[0][0] + d1 * B[0][1] + d2 * B[0][2];
599 C[14] += d0 * B[1][0] + d1 * B[1][1] + d2 * B[1][2];
601 d0 = B[2][0] * V[0] + B[2][1] * V[1] + B[2][2] * V[3] - C[15];
602 d1 = B[2][0] * V[1] + B[2][1] * V[2] + B[2][2] * V[4] - C[16];
603 d2 = B[2][0] * V[3] + B[2][1] * V[4] + B[2][2] * V[5] - C[17];
608 C[18] += d0 * B[0][0] + d1 * B[0][1] + d2 * B[0][2];
609 C[19] += d0 * B[1][0] + d1 * B[1][1] + d2 * B[1][2];
610 C[20] += d0 * B[2][0] + d1 * B[2][1] + d2 * B[2][2];
612 d0 = B[3][0] * V[0] + B[3][1] * V[1] + B[3][2] * V[3] - C[21];
613 d1 = B[3][0] * V[1] + B[3][1] * V[2] + B[3][2] * V[4] - C[22];
614 d2 = B[3][0] * V[3] + B[3][1] * V[4] + B[3][2] * V[5] - C[23];
619 C[24] += d0 * B[0][0] + d1 * B[0][1] + d2 * B[0][2];
620 C[25] += d0 * B[1][0] + d1 * B[1][1] + d2 * B[1][2];
621 C[26] += d0 * B[2][0] + d1 * B[2][1] + d2 * B[2][2];
622 C[27] += d0 * B[3][0] + d1 * B[3][1] + d2 * B[3][2];
624 d0 = B[4][0] * V[0] + B[4][1] * V[1] + B[4][2] * V[3] - C[28];
625 d1 = B[4][0] * V[1] + B[4][1] * V[2] + B[4][2] * V[4] - C[29];
626 d2 = B[4][0] * V[3] + B[4][1] * V[4] + B[4][2] * V[5] - C[30];
631 C[31] += d0 * B[0][0] + d1 * B[0][1] + d2 * B[0][2];
632 C[32] += d0 * B[1][0] + d1 * B[1][1] + d2 * B[1][2];
633 C[33] += d0 * B[2][0] + d1 * B[2][1] + d2 * B[2][2];
634 C[34] += d0 * B[3][0] + d1 * B[3][1] + d2 * B[3][2];
635 C[35] += d0 * B[4][0] + d1 * B[4][1] + d2 * B[4][2];
1208 vector<float>& ChiToPrimVtx,
1209 vector<L1FieldRegion>& vField,
1210 vector<CbmKFParticle>& Particles,
1212 const vector<int>& vTrackPDG,
1213 const float cuts[2][3])
1217 static const int NTrackTypes = 8;
1219 int pdgPos[NTrackTypes] = {-11, -13, 211, 321, 2212, 211, 321, 2212};
1220 int pdgNeg[NTrackTypes] = {11, 13, -211, -321, -2212, -211, -321, -2212};
1222 vector<short> idPosSec[NTrackTypes];
1223 vector<short> idNegSec[NTrackTypes];
1225 vector<short> idPosPrim[NTrackTypes];
1226 vector<short> idNegPrim[NTrackTypes];
1228 for (
unsigned short iTr = 0; iTr < vRTracks.size(); iTr++) {
1231 for (
unsigned short iT = 0; iT < 5; iT++)
1232 ok = ok && finite(kfTrack.
GetTrack()[iT]);
1233 for (
unsigned short iC = 0; iC < 15; iC++)
1244 const int pdg =
abs(vTrackPDG[iTr]);
1246 short pdgIndex = -1;
1266 short pdgIndexMax = pdgIndex + incr;
1270 pdgIndexMax = pdgIndex;
1279 if (ChiToPrimVtx[iTr] < cuts[0][0]) {
1281 for (
int ipdg = pdgIndex; ipdg <= pdgIndexMax; ipdg += incr)
1282 idPosPrim[ipdg].push_back(iTr);
1285 for (
int ipdg = pdgIndex; ipdg <= pdgIndexMax; ipdg += incr)
1286 idNegPrim[ipdg].push_back(iTr);
1289 for (
int ipdg = pdgIndex; ipdg <= pdgIndexMax; ipdg += incr)
1290 idPosSec[ipdg].push_back(iTr);
1292 for (
int ipdg = pdgIndex; ipdg <= pdgIndexMax; ipdg += incr)
1293 idNegSec[ipdg].push_back(iTr);
1297 const int nPart = idPosSec[5].size() * idNegSec[5].size() + idPosSec[5].size() * idNegSec[7].size()
1298 + idPosSec[7].size() * idNegSec[5].size() + idPosPrim[2].size() * idNegPrim[3].size()
1299 + idPosPrim[3].size() * idNegPrim[2].size() + idPosPrim[3].size() * idNegPrim[3].size()
1300 + idPosPrim[4].size() * idNegPrim[3].size() + idPosPrim[3].size() * idNegPrim[4].size()
1301 + idPosPrim[0].size() * idNegPrim[0].size() + idPosPrim[1].size() * idNegPrim[1].size();
1304 Particles.reserve(vRTracks.size() + nPart);
1306 const float massLambdaPDG = 1.115683;
1307 const float massK0sPDG = 0.497614;
1308 const float massKsiPDG = 1.32171;
1310 for (
unsigned short iTr = 0; iTr < vRTracks.size(); iTr++) {
1315 tmp.
SetId(Particles.size());
1316 Particles.push_back(tmp);
1319 vector<float> vLambdaTopoChi2Ndf;
1320 vector<CbmKFParticle> vLambdaSec;
1321 vector<CbmKFParticle> vLambdaPrim;
1323 vector<float> vLambdaBarTopoChi2Ndf;
1324 vector<CbmKFParticle> vLambdaBarSec;
1325 vector<CbmKFParticle> vLambdaBarPrim;
1327 vector<float> vK0sTopoChi2Ndf;
1328 vector<CbmKFParticle> vK0sPrim;
1330 vector<CbmKFParticle> vXiPrim;
1331 vector<CbmKFParticle> vXiSec;
1332 vector<CbmKFParticle> vXiBarPrim;
1334 vector<CbmKFParticle> vXiStarPrim;
1335 vector<CbmKFParticle> vXiStarBarPrim;
1337 const float SecCuts[3] = {3.f, 5.f, 4.f};
1339 Find2DaughterDecay(vRTracks, vField, Particles, pdgNeg[5], pdgPos[5], 310, idNegSec[5], idPosSec[5], PrimVtx,
1340 cuts[0], 0, &vK0sTopoChi2Ndf, SecCuts, massK0sPDG, 0.0022, &vK0sPrim, 0);
1342 Find2DaughterDecay(vRTracks, vField, Particles, pdgNeg[5], pdgPos[7], 3122, idNegSec[5], idPosSec[7], PrimVtx,
1343 cuts[1], 0, &vLambdaTopoChi2Ndf, SecCuts, massLambdaPDG, 0.0012, &vLambdaPrim, &vLambdaSec);
1345 Find2DaughterDecay(vRTracks, vField, Particles, pdgPos[5], pdgNeg[4], -3122, idPosSec[5], idNegSec[4], PrimVtx,
1346 cuts[1], 0, &vLambdaBarTopoChi2Ndf, SecCuts, massLambdaPDG, 0.0012, &vLambdaBarPrim,
1349 Find2DaughterDecay(vRTracks, vField, Particles, pdgPos[3], pdgNeg[2], 313, idPosPrim[3], idNegPrim[2], PrimVtx,
1352 Find2DaughterDecay(vRTracks, vField, Particles, pdgNeg[3], pdgPos[2], -313, idNegPrim[3], idPosPrim[2], PrimVtx,
1355 Find2DaughterDecay(vRTracks, vField, Particles, pdgNeg[3], pdgPos[4], 3124, idNegPrim[3], idPosPrim[4], PrimVtx,
1358 Find2DaughterDecay(vRTracks, vField, Particles, pdgNeg[4], pdgPos[3], -3124, idNegPrim[4], idPosPrim[3], PrimVtx,
1361 Find2DaughterDecay(vRTracks, vField, Particles, pdgNeg[3], pdgPos[3], 333, idNegPrim[3], idPosPrim[3], PrimVtx,
1368 Find2DaughterDecay(vRTracks, vField, Particles, pdgNeg[0], pdgPos[0], 22, idNegPrim[0], idPosPrim[0], PrimVtx,
1370 Find2DaughterDecay(vRTracks, vField, Particles, pdgNeg[0], pdgPos[0], 22, idNegSec[0], idPosSec[0], PrimVtx,
1372 Find2DaughterDecay(vRTracks, vField, Particles, pdgNeg[0], pdgPos[0], 22, idNegSec[0], idPosPrim[0], PrimVtx,
1374 Find2DaughterDecay(vRTracks, vField, Particles, pdgNeg[0], pdgPos[0], 22, idNegPrim[0], idPosSec[0], PrimVtx,
1377 Find2DaughterDecay(vRTracks, vField, Particles, pdgNeg[0], pdgPos[0], 443, idNegPrim[0], idPosPrim[0], PrimVtx,
1380 Find2DaughterDecay(vRTracks, vField, Particles, pdgNeg[1], pdgPos[1], 100443, idNegPrim[1], idPosPrim[1], PrimVtx,
1383 Find2DaughterDecay(vRTracks, vField, Particles, pdgNeg[0], pdgPos[0], 100113, idNegPrim[0], idPosPrim[0], PrimVtx,
1386 const float PCut = 1.f;
1387 Find2DaughterDecay(vRTracks, vField, Particles, pdgNeg[1], pdgPos[1], 200113, idNegPrim[1], idPosPrim[1], PrimVtx,
1388 cuts[1], 1, 0.2f, -100, 0, &PCut);
1395 float cutXi[3] = {3., 5., 6.};
1396 FindTrackV0Decay(3312, Particles, vLambdaSec, vRTracks, vField, pdgNeg[5], idNegSec[5], PrimVtx, cutXi, 0, 0,
1397 &vXiPrim, massKsiPDG, 0.002);
1399 float cutLL[3] = {6., 10000000., 3.};
1400 float cutLL2[3] = {6., 3., 3.};
1401 vector<CbmKFParticle> vLL;
1402 FindTrackV0Decay(3002, vLL, vLambdaSec, vRTracks, vField, pdgNeg[5], idNegSec[5], PrimVtx, cutLL, 0, &ChiToPrimVtx);
1405 FindTrackV0Decay(3001, Particles, vLL, vRTracks, vField, pdgPos[4], idPosSec[4], PrimVtx, cutLL2, 0, &ChiToPrimVtx);
1407 float cutXiPlus[3] = {3., 5., 6.};
1408 FindTrackV0Decay(-3312, Particles, vLambdaBarSec, vRTracks, vField, pdgPos[5], idPosSec[5], PrimVtx, cutXiPlus, 0,
1409 0, &vXiBarPrim, massKsiPDG, 0.002);
1411 float cutOmega[3] = {3., 3., 3.};
1412 FindTrackV0Decay(3334, Particles, vLambdaSec, vRTracks, vField, pdgNeg[6], idNegSec[6], PrimVtx, cutOmega, 0,
1415 float cutOmegaPlus[3] = {3., 3., 3.};
1416 FindTrackV0Decay(-3334, Particles, vLambdaBarSec, vRTracks, vField, pdgPos[6], idPosSec[6], PrimVtx, cutOmegaPlus,
1419 float cutXiStarMinus[3] = {-100., 10000., 3.};
1420 FindTrackV0Decay(1003314, Particles, vLambdaPrim, vRTracks, vField, pdgNeg[3], idNegPrim[3], PrimVtx,
1423 float cutXiStarPlus[3] = {-100., 10000., 3.};
1424 FindTrackV0Decay(-1003314, Particles, vLambdaBarPrim, vRTracks, vField, pdgPos[3], idPosPrim[3], PrimVtx,
1431 float cutXiStar0[3] = {-100., 10000., 3.};
1432 FindTrackV0Decay(3324, Particles, vXiPrim, vRTracks, vField, pdgPos[5], idPosPrim[5], PrimVtx, cutXiStar0, 1, 0,
1435 float cutXiBarStar0[3] = {-100., 10000., 3.};
1436 FindTrackV0Decay(-3324, Particles, vXiBarPrim, vRTracks, vField, pdgNeg[5], idNegPrim[5], PrimVtx, cutXiBarStar0, 1,
1437 0, &vXiStarBarPrim);
1439 const float cutOmegaStar[2] = {-100., 3.};
1440 for (
unsigned int iPart = 0; iPart < vXiStarPrim.size(); iPart++)
1441 CombineTrackPart(vRTracks, vField, Particles, vXiStarPrim[iPart], pdgNeg[3], 1003334, idNegPrim[3],
1444 for (
unsigned int iPart = 0; iPart < vXiStarBarPrim.size(); iPart++)
1445 CombineTrackPart(vRTracks, vField, Particles, vXiStarBarPrim[iPart], pdgPos[3], -1003334, idPosPrim[3],
1448 float cutKStarPlus[3] = {-100., 10000., 3.};
1449 FindTrackV0Decay(323, Particles, vK0sPrim, vRTracks, vField, pdgPos[5], idPosPrim[5], PrimVtx, cutKStarPlus, 1, 0);
1451 float cutKStarMinus[3] = {-100., 10000., 3.};
1452 FindTrackV0Decay(-323, Particles, vK0sPrim, vRTracks, vField, pdgNeg[5], idNegPrim[5], PrimVtx, cutKStarMinus, 1,
1455 float cutSigmaStarPlus[3] = {-100., 10000., 3.};
1456 FindTrackV0Decay(3224, Particles, vLambdaPrim, vRTracks, vField, pdgPos[5], idPosPrim[5], PrimVtx, cutSigmaStarPlus,
1459 float cutSigmaStarPlusBar[3] = {-100., 10000., 3.};
1460 FindTrackV0Decay(-3114, Particles, vLambdaBarPrim, vRTracks, vField, pdgPos[5], idPosPrim[5], PrimVtx,
1461 cutSigmaStarPlusBar, 1, 0);
1463 float cutSigmaStarMinus[3] = {-100., 10000., 3.};
1464 FindTrackV0Decay(3114, Particles, vLambdaPrim, vRTracks, vField, pdgNeg[5], idNegPrim[5], PrimVtx,
1465 cutSigmaStarMinus, 1, 0);
1467 float cutSigmaStarMinusBar[3] = {-100., 10000., 3.};
1468 FindTrackV0Decay(-3224, Particles, vLambdaBarPrim, vRTracks, vField, pdgNeg[5], idNegPrim[5], PrimVtx,
1469 cutSigmaStarMinusBar, 1, 0);
1471 vector<CbmKFParticle> vHdibarion;
1472 float cutHdb[3] = {3., 3., 3.};
1473 for (
unsigned short iL = 0; iL < vLambdaSec.size(); iL++) {
1476 vector<int> daughterIds;
1477 for (
unsigned int iD = 0; iD < vLambdaSec[iL].DaughterIds().size(); iD++)
1478 daughterIds.push_back(vLambdaSec[iL].DaughterIds()[iD]);
1479 FindHyperons(3000, vDaughters, daughterIds, vLambdaSec, vHdibarion, PrimVtx, cutHdb, iL + 1);
1482 for (
unsigned int iH = 0; iH < vHdibarion.size(); iH++) {
1483 vHdibarion[iH].SetId(Particles.size());
1484 Particles.push_back(vHdibarion[iH]);
1487 const float cutsD[8][8] = {{6., 3., 0.04, 0.3, 3.},
1488 {6., 3., 0.04, 0.3, 3.},
1489 {6., 3., 0.04, 0.3, 3.},
1490 {6., 3., 0.04, 0.3, 3.},
1491 {6., 3., 0.04, 0.3, 3.},
1492 {6., 3., -100., 0.3, -100.},
1493 {6., 3., -100., 0.3, -100.},
1494 {6., 3., -100., 0.3, -100.}};
1496 const int DMesLambdcDaughterPDG[5] = {211, -321, -211, 321, 2212};
1497 const int DMesLambdcMotherPDG[8] = {421, 411, 100421, 431, 4122, 10421, 10411, 20411};
1498 vector<short>* DMesLambdcIdTrack[5] = {&idPosSec[5], &idNegSec[3], &idNegSec[5], &idPosSec[3], &idPosSec[4]};
1499 FindDMesLambdac(vRTracks, vField, Particles, DMesLambdcDaughterPDG, DMesLambdcMotherPDG, DMesLambdcIdTrack, PrimVtx,
1500 cutsD, ChiToPrimVtx);
1502 const int DMesLambdcBarDaughterPDG[5] = {-211, 321, 211, -321, -2212};
1503 const int DMesLambdcBarMotherPDG[8] = {-421, -411, -100421, -431, -4122, -10421, -10411, -20411};
1504 vector<short>* DMesLambdcBarIdTrack[5] = {&idNegSec[5], &idPosSec[3], &idPosSec[5], &idNegSec[3], &idNegSec[4]};
1505 FindDMesLambdac(vRTracks, vField, Particles, DMesLambdcBarDaughterPDG, DMesLambdcBarMotherPDG, DMesLambdcBarIdTrack,
1506 PrimVtx, cutsD, ChiToPrimVtx);
1939 const vector<L1FieldRegion>& vField,
1940 vector<CbmKFParticle>& Particles,
1941 const int DaughterPDG[5],
1942 const int MotherPDG[8],
1943 vector<short>* idTrack[5],
1945 const float cuts[8][8],
1946 vector<float> ChiToPrimVtx)
1948 vector<short>
id[5];
1949 for (
int iId = 0; iId < 5; iId++) {
1950 for (
unsigned int iTr = 0; iTr < idTrack[iId]->size(); iTr++) {
1951 CbmKFTrack& kfTrack = vTracks[idTrack[iId]->at(iTr)];
1952 const float tx = kfTrack.
GetTrack()[2];
1953 const float ty = kfTrack.
GetTrack()[3];
1955 const float t2 = tx * tx + ty * ty;
1956 float pt = p * (
sqrt(t2 / (1 + t2)));
1957 if (pt < cuts[0][3])
1959 if (ChiToPrimVtx[idTrack[iId]->at(iTr)] < cuts[0][0])
1961 id[iId].push_back(idTrack[iId]->at(iTr));
1965 vector<CbmKFParticle> kpi;
1966 vector<CbmKFParticle> kpipi;
1967 vector<CbmKFParticle> kpipipi;
1968 vector<CbmKFParticle> kpik;
1969 vector<CbmKFParticle> kpip;
1971 const float cutskpi[3] = {3., 3., -100.};
1972 Find2DaughterDecay(vTracks, vField, kpi, DaughterPDG[0], DaughterPDG[1], MotherPDG[0],
id[0],
id[1], PrimVtx,
1975 for (
unsigned int iKPi = 0; iKPi < kpi.size(); iKPi++) {
1976 unsigned short startPiIndex = kpi[iKPi].DaughterIds()[0] + 1;
1978 CombineTrackPart(vTracks, vField, kpipi, kpi[iKPi], DaughterPDG[0], MotherPDG[1],
id[0], cuts[1], startPiIndex,
1980 CombineTrackPart(vTracks, vField, kpik, kpi[iKPi], DaughterPDG[3], MotherPDG[3],
id[3], cuts[3], 0, 1);
1981 CombineTrackPart(vTracks, vField, kpip, kpi[iKPi], DaughterPDG[4], MotherPDG[4],
id[4], cuts[4], 0, 1);
1983 for (
unsigned int iKPiPi = 0; iKPiPi < kpipi.size(); iKPiPi++)
1984 CombineTrackPart(vTracks, vField, kpipipi, kpipi[iKPiPi], DaughterPDG[2], MotherPDG[2],
id[2], cuts[2], 0, 1);
1992 vector<CbmKFParticle> d0pi;
1993 vector<CbmKFParticle> d2pi;
1994 vector<CbmKFParticle> d4pi;
1996 for (
unsigned int iKPiPi = 0; iKPiPi < kpipi.size(); iKPiPi++)
1997 CombineTrackPart(vTracks, vField, d0pi, kpipi[iKPiPi], DaughterPDG[2], MotherPDG[5],
id[2], cuts[5], 0, 0);
1999 for (
unsigned int iKPi = 0; iKPi < kpi.size(); iKPi++)
2000 CombineTrackPart(vTracks, vField, d2pi, kpi[iKPi], DaughterPDG[0], MotherPDG[6],
id[0], cuts[6], 0, 0);
2002 for (
unsigned int iKPiPiPi = 0; iKPiPiPi < kpipipi.size(); iKPiPiPi++)
2003 CombineTrackPart(vTracks, vField, d4pi, kpipipi[iKPiPiPi], DaughterPDG[0], MotherPDG[7],
id[0], cuts[7], 0, 0);