163 VxdID pxdId(1, 1, 1);
177 spacePoint =
m_spacePoints.appendNew(createSpacePoint(pxdId,
true));
186 spacePoint =
m_spacePoints.appendNew(createSpacePoint(pxdId,
true));
193 VxdID svdId(3, 1, 1);
201 spacePoint =
m_spacePoints.appendNew(createSpacePoint(svdId,
false, 0));
206 spacePoint =
m_spacePoints.appendNew(createSpacePoint(svdId,
false, 0));
217 spacePoint =
m_spacePoints.appendNew(createSpacePoint(svdId,
false, 0));
223 spacePoint =
m_spacePoints.appendNew(createSpacePoint(svdId,
false, 0));
228 spacePoint =
m_spacePoints.appendNew(createSpacePoint(svdId,
false, 0));
233 spacePoint =
m_spacePoints.appendNew(createSpacePoint(svdId,
false, 0));
239 spacePoint =
m_spacePoints.appendNew(createSpacePoint(svdId,
false, 0));
269 B2INFO(
"Contents of DataStore after SetUp: pxdTrueHits: " << m_pxdTrueHits.getEntries() <<
270 " svdTrueHits: " << m_svdTrueHits.getEntries() <<
" mcParticles: " << m_mcParticles.getEntries() <<
271 " spacePoints: " << m_spacePoints.getEntries());
274 EXPECT_EQ(m_pxdTrueHits.getEntries(), 3);
275 EXPECT_EQ(m_svdTrueHits.getEntries(), 3);
276 EXPECT_EQ(m_spacePoints.getEntries(), 14);
277 EXPECT_EQ(m_mcParticles.getEntries(), 2);
280 for (
int i = 0; i < m_spacePoints.getEntries(); ++i) {
281 EXPECT_EQ(m_spacePoints[i]->getNClustersAssigned(), m_assignedClusters[i]);
287 ASSERT_EQ(pxdTrueHits.
size(), 1);
288 EXPECT_EQ(pxdTrueHits[0]->getArrayIndex(), 0);
289 EXPECT_EQ(pxdTrueHits.
weight(0), 1);
291 pxdTrueHits = m_spacePoints[2]->getRelationsTo<
PXDTrueHit>(
"ALL");
292 ASSERT_EQ(pxdTrueHits.
size(), 2);
293 EXPECT_EQ(pxdTrueHits[0]->getArrayIndex(), 0);
294 EXPECT_EQ(pxdTrueHits[0]->getRelatedFrom<MCParticle>(
"ALL")->getArrayIndex(), 0);
295 EXPECT_EQ(pxdTrueHits.
weight(0), 1);
296 EXPECT_EQ(pxdTrueHits[1]->getArrayIndex(), 1);
297 EXPECT_EQ(pxdTrueHits[1]->getRelatedFrom<MCParticle>(
"ALL")->getArrayIndex(), 1);
298 EXPECT_EQ(pxdTrueHits.
weight(1), 1);
301 ASSERT_EQ(svdTrueHits.
size(), 1);
302 EXPECT_EQ(svdTrueHits[0]->getArrayIndex(), 0);
303 EXPECT_EQ(svdTrueHits[0]->getRelatedFrom<MCParticle>(
"ALL")->getArrayIndex(), 0);
304 EXPECT_EQ(svdTrueHits.
weight(0), 2);
306 svdTrueHits = m_spacePoints[5]->getRelationsTo<
SVDTrueHit>(
"ALL");
307 ASSERT_EQ(svdTrueHits.
size(), 2);
308 EXPECT_EQ(svdTrueHits[0]->getArrayIndex(), 0);
309 EXPECT_EQ(svdTrueHits.
weight(0), 11);
310 EXPECT_EQ(svdTrueHits[1]->getArrayIndex(), 1);
311 EXPECT_EQ(svdTrueHits.
weight(1), 21);
312 EXPECT_EQ(svdTrueHits[1]->getRelatedFrom<MCParticle>(
"ALL")->getArrayIndex(), 1);
314 svdTrueHits = m_spacePoints[6]->getRelationsTo<
SVDTrueHit>(
"ALL");
315 ASSERT_EQ(svdTrueHits.
size(), 0);
317 svdTrueHits = m_spacePoints[7]->getRelationsTo<
SVDTrueHit>(
"ALL");
318 ASSERT_EQ(svdTrueHits.
size(), 2);
319 EXPECT_EQ(svdTrueHits[0]->getArrayIndex(), 0);
320 EXPECT_EQ(svdTrueHits.
weight(0), 2);
321 EXPECT_EQ(svdTrueHits.
weight(1), 11);
322 EXPECT_EQ(svdTrueHits[1]->getArrayIndex(), 1);
330 std::vector<std::pair<int, double> > vec;
331 vec.push_back(std::make_pair(1, 0));
332 vec.push_back(std::make_pair(1, 1.1));
333 vec.push_back(std::make_pair(1, 2));
334 vec.push_back(std::make_pair(1, 11));
335 vec.push_back(std::make_pair(1, 21));
336 vec.push_back(std::make_pair(1, 11));
337 vec.push_back(std::make_pair(1, 2.5));
352 EXPECT_TRUE(accs.empty());
354 EXPECT_TRUE(accs.empty());
358 EXPECT_EQ(accs[0], 0);
359 EXPECT_EQ(accs.size(), 1);
361 EXPECT_EQ(accs.size(), 2);
362 EXPECT_EQ(accs[0], 1);
363 EXPECT_EQ(accs[1], 2);
365 EXPECT_EQ(accs[0], 1);
366 EXPECT_EQ(accs.size(), 1);
368 EXPECT_EQ(accs[0], 2);
369 EXPECT_EQ(accs.size(), 1);
378 std::array<unsigned, 3> ctrArray = { {0, 0, 0} };
379 for (
size_t i = 0; i < 3; ++i) { EXPECT_EQ(ctrArray[i], 0); }
382 EXPECT_EQ(ctrArray[0], 1);
384 EXPECT_EQ(ctrArray[0], 2);
387 EXPECT_EQ(ctrArray[1], 1);
388 EXPECT_EQ(ctrArray[2], 1);
391 EXPECT_EQ(ctrArray[2], 2);
392 EXPECT_EQ(ctrArray[1], 1);
394 EXPECT_EQ(ctrArray[1], 2);
395 EXPECT_EQ(ctrArray[2], 2);
409 ASSERT_EQ(mcParts.size(), 1);
410 EXPECT_EQ(mcParts[0].first, 0);
411 EXPECT_DOUBLE_EQ(mcParts[0].second, 1);
414 ASSERT_EQ(mcParts.size(), 1);
415 EXPECT_EQ(mcParts[0].first, -2);
416 EXPECT_EQ(mcParts[0].second, 1);
419 ASSERT_EQ(mcParts.size(), 2);
420 auto findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(0));
421 ASSERT_FALSE(findIt == mcParts.end());
422 EXPECT_DOUBLE_EQ(findIt->second, 1);
423 findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(1));
424 ASSERT_FALSE(findIt == mcParts.end());
425 EXPECT_DOUBLE_EQ(findIt->second, 1);
427 B2INFO(
"The occurring error message is expected! It is used to discover some corner cases in real usage!");
429 ASSERT_EQ(mcParts.size(), 1);
430 EXPECT_EQ(mcParts[0].first, 1);
431 EXPECT_DOUBLE_EQ(mcParts[0].second, 1);
445 ASSERT_EQ(mcParts.size(), 1);
446 EXPECT_EQ(mcParts[0].first, 0);
447 EXPECT_DOUBLE_EQ(mcParts[0].second, 2);
450 ASSERT_EQ(mcParts.size(), 2);
451 auto findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(0));
452 ASSERT_FALSE(findIt == mcParts.end());
453 EXPECT_DOUBLE_EQ(findIt->second, 11);
454 findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(1));
455 ASSERT_FALSE(findIt == mcParts.end());
456 EXPECT_DOUBLE_EQ(findIt->second, 21);
459 ASSERT_EQ(mcParts.size(), 1);
460 EXPECT_EQ(mcParts[0].first, -2);
461 EXPECT_DOUBLE_EQ(mcParts[0].second, 2);
464 ASSERT_EQ(mcParts.size(), 2);
465 findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(1));
466 ASSERT_FALSE(findIt == mcParts.end());
467 EXPECT_DOUBLE_EQ(findIt->second, 11);
468 findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(0));
469 ASSERT_FALSE(findIt == mcParts.end());
470 EXPECT_DOUBLE_EQ(findIt->second, 2);
473 ASSERT_EQ(mcParts.size(), 2);
474 findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(-2));
475 ASSERT_FALSE(findIt == mcParts.end());
476 EXPECT_DOUBLE_EQ(findIt->second, 11);
477 findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(0));
478 ASSERT_FALSE(findIt == mcParts.end());
479 EXPECT_DOUBLE_EQ(findIt->second, 21);
482 ASSERT_EQ(mcParts.size(), 2);
483 findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(-2));
484 ASSERT_FALSE(findIt == mcParts.end());
485 EXPECT_DOUBLE_EQ(findIt->second, 21);
486 findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(1));
487 ASSERT_FALSE(findIt == mcParts.end());
488 EXPECT_DOUBLE_EQ(findIt->second, 11);
491 ASSERT_EQ(mcParts.size(), 3);
492 findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(0));
493 ASSERT_FALSE(findIt == mcParts.end());
494 EXPECT_DOUBLE_EQ(findIt->second, 11);
495 findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(1));
496 ASSERT_FALSE(findIt == mcParts.end());
497 EXPECT_DOUBLE_EQ(findIt->second, 11);
498 findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(-2));
499 ASSERT_FALSE(findIt == mcParts.end());
500 EXPECT_DOUBLE_EQ(findIt->second, 21);
512 std::vector<const SpacePoint*> spacePoints;
513 for (
size_t i = 0; i < 12; ++i) { spacePoints.push_back(m_spacePoints[i]); }
514 SpacePointTrackCand sptc(spacePoints);
515 EXPECT_EQ(sptc.getNHits(), 12);
516 unsigned totCls = 20;
517 float ndf = 4 * 2 + 8 * 2;
519 B2INFO(
"There will be WARNING and ERROR messages! Those are expected!");
522 EXPECT_EQ(purities.size(), 4);
525 for (
size_t i = 0; i < purities.size() - 1; ++i) {
526 EXPECT_TRUE(purities[i].getPurity().second >= purities[i + 1].getPurity().second);
529 auto findIt = find_if(purities.begin(), purities.end(),
compMCId(1));
530 ASSERT_FALSE(findIt == purities.end());
531 EXPECT_EQ(findIt->getNClustersTotal(), totCls);
532 EXPECT_EQ(findIt->getNPXDClustersTotal(), 4);
533 EXPECT_EQ(findIt->getNClustersFound(), 6);
534 EXPECT_EQ(findIt->getNPXDClusters(), 2);
535 EXPECT_EQ(findIt->getNSVDUClusters(), 3);
536 EXPECT_EQ(findIt->getNSVDVClusters(), 1);
537 EXPECT_FLOAT_EQ(findIt->getPurity().second, 8. / ndf);
539 findIt = find_if(purities.begin(), purities.end(),
compMCId(0));
540 ASSERT_FALSE(findIt == purities.end());
541 EXPECT_EQ(findIt->getNClustersTotal(), totCls);
542 EXPECT_EQ(findIt->getNSVDUClustersTotal(), 8);
543 EXPECT_EQ(findIt->getNClustersFound(), 10);
544 EXPECT_EQ(findIt->getNPXDClusters(), 2);
545 EXPECT_EQ(findIt->getNSVDUClusters(), 5);
546 EXPECT_EQ(findIt->getNSVDVClusters(), 3);
547 EXPECT_FLOAT_EQ(findIt->getPurity().second, 12. / ndf);
549 findIt = find_if(purities.begin(), purities.end(),
compMCId(-1));
550 ASSERT_FALSE(findIt == purities.end());
551 EXPECT_EQ(findIt->getNClustersTotal(), totCls);
552 EXPECT_EQ(findIt->getNSVDVClustersTotal(), 8);
553 EXPECT_EQ(findIt->getNClustersFound(), 1);
554 EXPECT_EQ(findIt->getNPXDClusters(), 0);
555 EXPECT_EQ(findIt->getNSVDUClusters(), 0);
556 EXPECT_EQ(findIt->getNSVDVClusters(), 1);
557 EXPECT_FLOAT_EQ(findIt->getPurity().second, 1. / ndf);
559 findIt = find_if(purities.begin(), purities.end(),
compMCId(-2));
560 ASSERT_FALSE(findIt == purities.end());
561 EXPECT_EQ(findIt->getNClustersTotal(), totCls);
562 EXPECT_EQ(findIt->getNClustersFound(), 6);
563 EXPECT_EQ(findIt->getNPXDClusters(), 1);
564 EXPECT_EQ(findIt->getNSVDUClusters(), 2);
565 EXPECT_EQ(findIt->getNSVDVClusters(), 3);
566 EXPECT_FLOAT_EQ(findIt->getPurity().second, 7. / ndf);