160 VxdID pxdId(1, 1, 1);
174 spacePoint =
m_spacePoints.appendNew(createSpacePoint(pxdId,
true));
183 spacePoint =
m_spacePoints.appendNew(createSpacePoint(pxdId,
true));
190 VxdID svdId(3, 1, 1);
198 spacePoint =
m_spacePoints.appendNew(createSpacePoint(svdId,
false, 0));
203 spacePoint =
m_spacePoints.appendNew(createSpacePoint(svdId,
false, 0));
214 spacePoint =
m_spacePoints.appendNew(createSpacePoint(svdId,
false, 0));
220 spacePoint =
m_spacePoints.appendNew(createSpacePoint(svdId,
false, 0));
225 spacePoint =
m_spacePoints.appendNew(createSpacePoint(svdId,
false, 0));
230 spacePoint =
m_spacePoints.appendNew(createSpacePoint(svdId,
false, 0));
236 spacePoint =
m_spacePoints.appendNew(createSpacePoint(svdId,
false, 0));
266 B2INFO(
"Contents of DataStore after SetUp: pxdTrueHits: " << m_pxdTrueHits.getEntries() <<
267 " svdTrueHits: " << m_svdTrueHits.getEntries() <<
" mcParticles: " << m_mcParticles.getEntries() <<
268 " spacePoints: " << m_spacePoints.getEntries());
271 EXPECT_EQ(m_pxdTrueHits.getEntries(), 3);
272 EXPECT_EQ(m_svdTrueHits.getEntries(), 3);
273 EXPECT_EQ(m_spacePoints.getEntries(), 14);
274 EXPECT_EQ(m_mcParticles.getEntries(), 2);
277 for (
int i = 0; i < m_spacePoints.getEntries(); ++i) {
278 EXPECT_EQ(m_spacePoints[i]->getNClustersAssigned(), m_assignedClusters[i]);
284 ASSERT_EQ(pxdTrueHits.
size(), 1);
285 EXPECT_EQ(pxdTrueHits[0]->getArrayIndex(), 0);
286 EXPECT_EQ(pxdTrueHits.
weight(0), 1);
288 pxdTrueHits = m_spacePoints[2]->getRelationsTo<
PXDTrueHit>(
"ALL");
289 ASSERT_EQ(pxdTrueHits.
size(), 2);
290 EXPECT_EQ(pxdTrueHits[0]->getArrayIndex(), 0);
291 EXPECT_EQ(pxdTrueHits[0]->getRelatedFrom<MCParticle>(
"ALL")->getArrayIndex(), 0);
292 EXPECT_EQ(pxdTrueHits.
weight(0), 1);
293 EXPECT_EQ(pxdTrueHits[1]->getArrayIndex(), 1);
294 EXPECT_EQ(pxdTrueHits[1]->getRelatedFrom<MCParticle>(
"ALL")->getArrayIndex(), 1);
295 EXPECT_EQ(pxdTrueHits.
weight(1), 1);
298 ASSERT_EQ(svdTrueHits.
size(), 1);
299 EXPECT_EQ(svdTrueHits[0]->getArrayIndex(), 0);
300 EXPECT_EQ(svdTrueHits[0]->getRelatedFrom<MCParticle>(
"ALL")->getArrayIndex(), 0);
301 EXPECT_EQ(svdTrueHits.
weight(0), 2);
303 svdTrueHits = m_spacePoints[5]->getRelationsTo<
SVDTrueHit>(
"ALL");
304 ASSERT_EQ(svdTrueHits.
size(), 2);
305 EXPECT_EQ(svdTrueHits[0]->getArrayIndex(), 0);
306 EXPECT_EQ(svdTrueHits.
weight(0), 11);
307 EXPECT_EQ(svdTrueHits[1]->getArrayIndex(), 1);
308 EXPECT_EQ(svdTrueHits.
weight(1), 21);
309 EXPECT_EQ(svdTrueHits[1]->getRelatedFrom<MCParticle>(
"ALL")->getArrayIndex(), 1);
311 svdTrueHits = m_spacePoints[6]->getRelationsTo<
SVDTrueHit>(
"ALL");
312 ASSERT_EQ(svdTrueHits.
size(), 0);
314 svdTrueHits = m_spacePoints[7]->getRelationsTo<
SVDTrueHit>(
"ALL");
315 ASSERT_EQ(svdTrueHits.
size(), 2);
316 EXPECT_EQ(svdTrueHits[0]->getArrayIndex(), 0);
317 EXPECT_EQ(svdTrueHits.
weight(0), 2);
318 EXPECT_EQ(svdTrueHits.
weight(1), 11);
319 EXPECT_EQ(svdTrueHits[1]->getArrayIndex(), 1);
327 std::vector<std::pair<int, double> > vec;
328 vec.push_back(std::make_pair(1, 0));
329 vec.push_back(std::make_pair(1, 1.1));
330 vec.push_back(std::make_pair(1, 2));
331 vec.push_back(std::make_pair(1, 11));
332 vec.push_back(std::make_pair(1, 21));
333 vec.push_back(std::make_pair(1, 11));
334 vec.push_back(std::make_pair(1, 2.5));
349 EXPECT_TRUE(accs.empty());
351 EXPECT_TRUE(accs.empty());
355 EXPECT_EQ(accs[0], 0);
356 EXPECT_EQ(accs.size(), 1);
358 EXPECT_EQ(accs.size(), 2);
359 EXPECT_EQ(accs[0], 1);
360 EXPECT_EQ(accs[1], 2);
362 EXPECT_EQ(accs[0], 1);
363 EXPECT_EQ(accs.size(), 1);
365 EXPECT_EQ(accs[0], 2);
366 EXPECT_EQ(accs.size(), 1);
375 std::array<unsigned, 3> ctrArray = { {0, 0, 0} };
376 for (
size_t i = 0; i < 3; ++i) { EXPECT_EQ(ctrArray[i], 0); }
379 EXPECT_EQ(ctrArray[0], 1);
381 EXPECT_EQ(ctrArray[0], 2);
384 EXPECT_EQ(ctrArray[1], 1);
385 EXPECT_EQ(ctrArray[2], 1);
388 EXPECT_EQ(ctrArray[2], 2);
389 EXPECT_EQ(ctrArray[1], 1);
391 EXPECT_EQ(ctrArray[1], 2);
392 EXPECT_EQ(ctrArray[2], 2);
406 ASSERT_EQ(mcParts.size(), 1);
407 EXPECT_EQ(mcParts[0].first, 0);
408 EXPECT_DOUBLE_EQ(mcParts[0].second, 1);
411 ASSERT_EQ(mcParts.size(), 1);
412 EXPECT_EQ(mcParts[0].first, -2);
413 EXPECT_EQ(mcParts[0].second, 1);
416 ASSERT_EQ(mcParts.size(), 2);
417 auto findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(0));
418 ASSERT_FALSE(findIt == mcParts.end());
419 EXPECT_DOUBLE_EQ(findIt->second, 1);
420 findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(1));
421 ASSERT_FALSE(findIt == mcParts.end());
422 EXPECT_DOUBLE_EQ(findIt->second, 1);
424 B2INFO(
"The occurring error message is expected! It is used to discover some corner cases in real usage!");
426 ASSERT_EQ(mcParts.size(), 1);
427 EXPECT_EQ(mcParts[0].first, 1);
428 EXPECT_DOUBLE_EQ(mcParts[0].second, 1);
442 ASSERT_EQ(mcParts.size(), 1);
443 EXPECT_EQ(mcParts[0].first, 0);
444 EXPECT_DOUBLE_EQ(mcParts[0].second, 2);
447 ASSERT_EQ(mcParts.size(), 2);
448 auto findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(0));
449 ASSERT_FALSE(findIt == mcParts.end());
450 EXPECT_DOUBLE_EQ(findIt->second, 11);
451 findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(1));
452 ASSERT_FALSE(findIt == mcParts.end());
453 EXPECT_DOUBLE_EQ(findIt->second, 21);
456 ASSERT_EQ(mcParts.size(), 1);
457 EXPECT_EQ(mcParts[0].first, -2);
458 EXPECT_DOUBLE_EQ(mcParts[0].second, 2);
461 ASSERT_EQ(mcParts.size(), 2);
462 findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(1));
463 ASSERT_FALSE(findIt == mcParts.end());
464 EXPECT_DOUBLE_EQ(findIt->second, 11);
465 findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(0));
466 ASSERT_FALSE(findIt == mcParts.end());
467 EXPECT_DOUBLE_EQ(findIt->second, 2);
470 ASSERT_EQ(mcParts.size(), 2);
471 findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(-2));
472 ASSERT_FALSE(findIt == mcParts.end());
473 EXPECT_DOUBLE_EQ(findIt->second, 11);
474 findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(0));
475 ASSERT_FALSE(findIt == mcParts.end());
476 EXPECT_DOUBLE_EQ(findIt->second, 21);
479 ASSERT_EQ(mcParts.size(), 2);
480 findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(-2));
481 ASSERT_FALSE(findIt == mcParts.end());
482 EXPECT_DOUBLE_EQ(findIt->second, 21);
483 findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(1));
484 ASSERT_FALSE(findIt == mcParts.end());
485 EXPECT_DOUBLE_EQ(findIt->second, 11);
488 ASSERT_EQ(mcParts.size(), 3);
489 findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(0));
490 ASSERT_FALSE(findIt == mcParts.end());
491 EXPECT_DOUBLE_EQ(findIt->second, 11);
492 findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(1));
493 ASSERT_FALSE(findIt == mcParts.end());
494 EXPECT_DOUBLE_EQ(findIt->second, 11);
495 findIt = std::find_if(mcParts.begin(), mcParts.end(),
compFirst(-2));
496 ASSERT_FALSE(findIt == mcParts.end());
497 EXPECT_DOUBLE_EQ(findIt->second, 21);
509 std::vector<const SpacePoint*> spacePoints;
510 for (
size_t i = 0; i < 12; ++i) { spacePoints.push_back(m_spacePoints[i]); }
511 SpacePointTrackCand sptc(spacePoints);
512 EXPECT_EQ(sptc.getNHits(), 12);
513 unsigned totCls = 20;
514 float ndf = 4 * 2 + 8 * 2;
516 B2INFO(
"There will be WARNING and ERROR messages! Those are expected!");
519 EXPECT_EQ(purities.size(), 4);
522 for (
size_t i = 0; i < purities.size() - 1; ++i) {
523 EXPECT_TRUE(purities[i].getPurity().second >= purities[i + 1].getPurity().second);
526 auto findIt = find_if(purities.begin(), purities.end(),
compMCId(1));
527 ASSERT_FALSE(findIt == purities.end());
528 EXPECT_EQ(findIt->getNClustersTotal(), totCls);
529 EXPECT_EQ(findIt->getNPXDClustersTotal(), 4);
530 EXPECT_EQ(findIt->getNClustersFound(), 6);
531 EXPECT_EQ(findIt->getNPXDClusters(), 2);
532 EXPECT_EQ(findIt->getNSVDUClusters(), 3);
533 EXPECT_EQ(findIt->getNSVDVClusters(), 1);
534 EXPECT_FLOAT_EQ(findIt->getPurity().second, 8. / ndf);
536 findIt = find_if(purities.begin(), purities.end(),
compMCId(0));
537 ASSERT_FALSE(findIt == purities.end());
538 EXPECT_EQ(findIt->getNClustersTotal(), totCls);
539 EXPECT_EQ(findIt->getNSVDUClustersTotal(), 8);
540 EXPECT_EQ(findIt->getNClustersFound(), 10);
541 EXPECT_EQ(findIt->getNPXDClusters(), 2);
542 EXPECT_EQ(findIt->getNSVDUClusters(), 5);
543 EXPECT_EQ(findIt->getNSVDVClusters(), 3);
544 EXPECT_FLOAT_EQ(findIt->getPurity().second, 12. / ndf);
546 findIt = find_if(purities.begin(), purities.end(),
compMCId(-1));
547 ASSERT_FALSE(findIt == purities.end());
548 EXPECT_EQ(findIt->getNClustersTotal(), totCls);
549 EXPECT_EQ(findIt->getNSVDVClustersTotal(), 8);
550 EXPECT_EQ(findIt->getNClustersFound(), 1);
551 EXPECT_EQ(findIt->getNPXDClusters(), 0);
552 EXPECT_EQ(findIt->getNSVDUClusters(), 0);
553 EXPECT_EQ(findIt->getNSVDVClusters(), 1);
554 EXPECT_FLOAT_EQ(findIt->getPurity().second, 1. / ndf);
556 findIt = find_if(purities.begin(), purities.end(),
compMCId(-2));
557 ASSERT_FALSE(findIt == purities.end());
558 EXPECT_EQ(findIt->getNClustersTotal(), totCls);
559 EXPECT_EQ(findIt->getNClustersFound(), 6);
560 EXPECT_EQ(findIt->getNPXDClusters(), 1);
561 EXPECT_EQ(findIt->getNSVDUClusters(), 2);
562 EXPECT_EQ(findIt->getNSVDVClusters(), 3);
563 EXPECT_FLOAT_EQ(findIt->getPurity().second, 7. / ndf);