214 table.defineLayer(0, 2, 3, 0, 0, 0);
215 table.defineLayer(1, 3, 2, 0, 0, 0);
216 table.defineLayer(2, 6, 1, 0, 0, 0);
218 const auto view = table.getView();
221 const auto&
range = view.getOverlap(0, 1, 0);
226 const auto&
range = view.getOverlap(0, 2, 0);
231 const auto&
range = view.getOverlap(0, 1, 1);
236 const auto&
range = view.getOverlap(0, 2, 1);
241 const auto&
range = view.getOverlap(1, 2, 0);
246 const auto&
range = view.getOverlap(1, 0, 0);
251 const auto&
range = view.getOverlap(1, 2, 1);
256 const auto&
range = view.getOverlap(1, 0, 1);
261 const auto&
range = view.getOverlap(1, 2, 2);
266 const auto&
range = view.getOverlap(1, 0, 2);
271 const auto&
range = view.getOverlap(2, 1, 0);
276 const auto&
range = view.getOverlap(2, 1, 1);
281 const auto&
range = view.getOverlap(2, 1, 2);
286 const auto&
range = view.getOverlap(2, 1, 3);
291 const auto&
range = view.getOverlap(2, 1, 4);
296 const auto&
range = view.getOverlap(2, 1, 5);
301 const auto&
range = view.getOverlap(2, 0, 0);
306 const auto&
range = view.getOverlap(2, 0, 1);
311 const auto&
range = view.getOverlap(2, 0, 2);
316 const auto&
range = view.getOverlap(2, 0, 3);
321 const auto&
range = view.getOverlap(2, 0, 4);
326 const auto&
range = view.getOverlap(2, 0, 5);
336 table.defineLayer(0, 2, 3, 0, 0, 0);
337 table.defineLayer(1, 3, 2, 1, 0, 0);
338 table.defineLayer(2, 6, 1, 0, 0, 1);
340 const auto view = table.getView();
344 const auto&
range = view.getOverlap(0, 1, 0);
349 const auto&
range = view.getOverlap(0, 2, 0);
354 const auto&
range = view.getOverlap(0, 1, 1);
359 const auto&
range = view.getOverlap(0, 2, 1);
364 const auto&
range = view.getOverlap(1, 2, 0);
369 const auto&
range = view.getOverlap(1, 0, 0);
374 const auto&
range = view.getOverlap(1, 2, 1);
379 const auto&
range = view.getOverlap(1, 0, 1);
384 const auto&
range = view.getOverlap(1, 2, 2);
389 const auto&
range = view.getOverlap(1, 0, 2);
394 const auto&
range = view.getOverlap(2, 1, 0);
399 const auto&
range = view.getOverlap(2, 1, 1);
404 const auto&
range = view.getOverlap(2, 1, 2);
409 const auto&
range = view.getOverlap(2, 1, 3);
414 const auto&
range = view.getOverlap(2, 1, 4);
419 const auto&
range = view.getOverlap(2, 1, 5);
424 const auto&
range = view.getOverlap(2, 0, 0);
429 const auto&
range = view.getOverlap(2, 0, 1);
434 const auto&
range = view.getOverlap(2, 0, 2);
439 const auto&
range = view.getOverlap(2, 0, 3);
444 const auto&
range = view.getOverlap(2, 0, 4);
449 const auto&
range = view.getOverlap(2, 0, 5);
493 table.defineLayer(0, 4, 100, 0, 0, 0);
494 table.defineLayer(1, 4, 100, 0, 0, 0);
495 table.defineLayer(2, 8, 50, 0, 0, 0);
496 table.defineLayer(3, 7, 50, 50, 0, 0);
498 const auto& view = table.getView();
500 const auto t01 = view.getTimeStamp(0, 3, 1, 3);
504 const auto t02 = view.getTimeStamp(0, 1, 2, 3);
508 const auto t03 = view.getTimeStamp(0, 0, 3, 0);
512 const auto t23 = view.getTimeStamp(2, 2, 3, 1);
520 table.defineLayer(0, 4, 100, 0, 0, 0);
521 table.defineLayer(1, 4, 100, 0, 0, 10);
522 table.defineLayer(2, 8, 50, 0, 0, 0);
523 table.defineLayer(3, 7, 50, 50, 0, 10);
525 const auto& view = table.getView();
526 view.printMapping(0, 1);
528 const auto t010 = view.getTimeStamp(0, 3, 1, 3);
532 const auto t011 = view.getTimeStamp(0, 2, 1, 3);
536 const auto t02 = view.getTimeStamp(0, 1, 2, 3);
540 const auto t03 = view.getTimeStamp(0, 0, 3, 0);
611 table.defineLayer(0, 4, 100, 0, 0, 0);
612 table.defineLayer(1, 4, 100, 0, 0, 10);
613 table.defineLayer(2, 8, 50, 0, 0, 0);
614 table.defineLayer(3, 7, 50, 50, 0, 10);
617 std::vector<o2::its::Vertex> vertices;
619 auto&
v = vertices.emplace_back();
620 v.getTimeStamp().setTimeStamp(100);
621 v.getTimeStamp().setTimeStampError(10);
624 auto&
v = vertices.emplace_back();
625 v.getTimeStamp().setTimeStamp(100);
626 v.getTimeStamp().setTimeStampError(0);
629 auto&
v = vertices.emplace_back();
630 v.getTimeStamp().setTimeStamp(100);
631 v.getTimeStamp().setTimeStampError(60);
635 std::sort(vertices.begin(), vertices.end(), [](
const auto& pvA,
const auto& pvB) {
636 const auto& a = pvA.getTimeStamp();
637 const auto& b = pvB.getTimeStamp();
638 const auto aLower = a.getTimeStamp() - a.getTimeStampError();
639 const auto bLower = b.getTimeStamp() - b.getTimeStampError();
640 if (aLower != bLower) {
641 return aLower < bLower;
643 return pvA.getNContributors() > pvB.getNContributors();
646 table.update(vertices.data(), vertices.size());
647 const auto& view = table.getView();
649 const auto&
v0 = vertices[0];
650 const auto&
v1 = vertices[1];
651 const auto&
v2 = vertices[2];
744 table.defineLayer(0, 4, 100, 0, 0, 0);
745 table.defineLayer(1, 4, 100, 0, 0, 10);
746 table.defineLayer(2, 8, 50, 0, 0, 0);
747 table.defineLayer(3, 7, 50, 50, 0, 10);
751 std::vector<o2::its::Vertex> vertices;
753 auto&
v = vertices.emplace_back();
754 v.getTimeStamp().setTimeStamp(100);
755 v.getTimeStamp().setTimeStampError(60);
758 auto&
v = vertices.emplace_back();
759 v.getTimeStamp().setTimeStamp(100);
760 v.getTimeStamp().setTimeStampError(10);
763 auto&
v = vertices.emplace_back();
764 v.getTimeStamp().setTimeStamp(100);
765 v.getTimeStamp().setTimeStampError(0);
768 table.update(vertices.data(), vertices.size());
769 const auto& view = table.getView();
772 BOOST_CHECK(!view.isVertexCompatible(0, 0, vertices[0]));
773 BOOST_CHECK(!view.isVertexCompatible(0, 0, vertices[1]));
774 BOOST_CHECK(!view.isVertexCompatible(0, 0, vertices[2]));
778 const auto&
range = view.getVertices(0, 1);
781 size_t exactCount = 0;
782 for (
size_t i =
range.getFirstEntry();
i <
range.getEntriesBound(); ++
i) {
783 if (view.isVertexCompatible(0, 1, vertices[
i])) {
791 BOOST_CHECK(!view.isVertexCompatible(0, 2, vertices[0]));
792 BOOST_CHECK(!view.isVertexCompatible(0, 2, vertices[1]));
793 BOOST_CHECK(!view.isVertexCompatible(0, 2, vertices[2]));
796 BOOST_CHECK(!view.isVertexCompatible(2, 0, vertices[0]));
797 BOOST_CHECK(!view.isVertexCompatible(2, 0, vertices[1]));
800 BOOST_CHECK(!view.isVertexCompatible(2, 1, vertices[0]));
801 BOOST_CHECK(!view.isVertexCompatible(2, 1, vertices[1]));
802 BOOST_CHECK(!view.isVertexCompatible(2, 1, vertices[2]));
805 BOOST_CHECK(view.isVertexCompatible(2, 3, vertices[0]));
806 BOOST_CHECK(!view.isVertexCompatible(2, 3, vertices[1]));
809 BOOST_CHECK(view.isVertexCompatible(3, 0, vertices[0]));
810 BOOST_CHECK(view.isVertexCompatible(3, 0, vertices[1]));
811 BOOST_CHECK(view.isVertexCompatible(3, 0, vertices[2]));
814 BOOST_CHECK(view.isVertexCompatible(3, 2, vertices[0]));
815 BOOST_CHECK(!view.isVertexCompatible(3, 2, vertices[1]));
816 BOOST_CHECK(!view.isVertexCompatible(3, 2, vertices[2]));