142 table.defineLayer(0, 2, 3, 0, 0, 0);
143 table.defineLayer(1, 3, 2, 0, 0, 0);
144 table.defineLayer(2, 6, 1, 0, 0, 0);
146 const auto view = table.getView();
149 const auto&
range = view.getOverlap(0, 1, 0);
154 const auto&
range = view.getOverlap(0, 2, 0);
159 const auto&
range = view.getOverlap(0, 1, 1);
164 const auto&
range = view.getOverlap(0, 2, 1);
169 const auto&
range = view.getOverlap(1, 2, 0);
174 const auto&
range = view.getOverlap(1, 0, 0);
179 const auto&
range = view.getOverlap(1, 2, 1);
184 const auto&
range = view.getOverlap(1, 0, 1);
189 const auto&
range = view.getOverlap(1, 2, 2);
194 const auto&
range = view.getOverlap(1, 0, 2);
199 const auto&
range = view.getOverlap(2, 1, 0);
204 const auto&
range = view.getOverlap(2, 1, 1);
209 const auto&
range = view.getOverlap(2, 1, 2);
214 const auto&
range = view.getOverlap(2, 1, 3);
219 const auto&
range = view.getOverlap(2, 1, 4);
224 const auto&
range = view.getOverlap(2, 1, 5);
229 const auto&
range = view.getOverlap(2, 0, 0);
234 const auto&
range = view.getOverlap(2, 0, 1);
239 const auto&
range = view.getOverlap(2, 0, 2);
244 const auto&
range = view.getOverlap(2, 0, 3);
249 const auto&
range = view.getOverlap(2, 0, 4);
254 const auto&
range = view.getOverlap(2, 0, 5);
264 table.defineLayer(0, 2, 3, 0, 0, 0);
265 table.defineLayer(1, 3, 2, 1, 0, 0);
266 table.defineLayer(2, 6, 1, 0, 0, 1);
268 const auto view = table.getView();
272 const auto&
range = view.getOverlap(0, 1, 0);
277 const auto&
range = view.getOverlap(0, 2, 0);
282 const auto&
range = view.getOverlap(0, 1, 1);
287 const auto&
range = view.getOverlap(0, 2, 1);
292 const auto&
range = view.getOverlap(1, 2, 0);
297 const auto&
range = view.getOverlap(1, 0, 0);
302 const auto&
range = view.getOverlap(1, 2, 1);
307 const auto&
range = view.getOverlap(1, 0, 1);
312 const auto&
range = view.getOverlap(1, 2, 2);
317 const auto&
range = view.getOverlap(1, 0, 2);
322 const auto&
range = view.getOverlap(2, 1, 0);
327 const auto&
range = view.getOverlap(2, 1, 1);
332 const auto&
range = view.getOverlap(2, 1, 2);
337 const auto&
range = view.getOverlap(2, 1, 3);
342 const auto&
range = view.getOverlap(2, 1, 4);
347 const auto&
range = view.getOverlap(2, 1, 5);
352 const auto&
range = view.getOverlap(2, 0, 0);
357 const auto&
range = view.getOverlap(2, 0, 1);
362 const auto&
range = view.getOverlap(2, 0, 2);
367 const auto&
range = view.getOverlap(2, 0, 3);
372 const auto&
range = view.getOverlap(2, 0, 4);
377 const auto&
range = view.getOverlap(2, 0, 5);
421 table.defineLayer(0, 4, 100, 0, 0, 0);
422 table.defineLayer(1, 4, 100, 0, 0, 0);
423 table.defineLayer(2, 8, 50, 0, 0, 0);
424 table.defineLayer(3, 7, 50, 50, 0, 0);
426 const auto& view = table.getView();
428 const auto t01 = view.getTimeStamp(0, 3, 1, 3);
432 const auto t02 = view.getTimeStamp(0, 1, 2, 3);
436 const auto t03 = view.getTimeStamp(0, 0, 3, 0);
440 const auto t23 = view.getTimeStamp(2, 2, 3, 1);
448 table.defineLayer(0, 4, 100, 0, 0, 0);
449 table.defineLayer(1, 4, 100, 0, 0, 10);
450 table.defineLayer(2, 8, 50, 0, 0, 0);
451 table.defineLayer(3, 7, 50, 50, 0, 10);
453 const auto& view = table.getView();
454 view.printMapping(0, 1);
456 const auto t010 = view.getTimeStamp(0, 3, 1, 3);
460 const auto t011 = view.getTimeStamp(0, 2, 1, 3);
464 const auto t02 = view.getTimeStamp(0, 1, 2, 3);
468 const auto t03 = view.getTimeStamp(0, 0, 3, 0);
538 table.defineLayer(0, 4, 100, 0, 0, 0);
539 table.defineLayer(1, 4, 100, 0, 0, 10);
540 table.defineLayer(2, 8, 50, 0, 0, 0);
541 table.defineLayer(3, 7, 50, 50, 0, 10);
544 std::vector<o2::its::Vertex> vertices;
546 auto&
v = vertices.emplace_back();
547 v.getTimeStamp().setTimeStamp(100);
548 v.getTimeStamp().setTimeStampError(10);
551 auto&
v = vertices.emplace_back();
552 v.getTimeStamp().setTimeStamp(100);
553 v.getTimeStamp().setTimeStampError(0);
556 auto&
v = vertices.emplace_back();
557 v.getTimeStamp().setTimeStamp(100);
558 v.getTimeStamp().setTimeStampError(60);
562 std::sort(vertices.begin(), vertices.end(), [](
const auto& pvA,
const auto& pvB) {
563 const auto& a = pvA.getTimeStamp();
564 const auto& b = pvB.getTimeStamp();
565 const auto aLower = a.getTimeStamp() - a.getTimeStampError();
566 const auto bLower = b.getTimeStamp() - b.getTimeStampError();
567 if (aLower != bLower) {
568 return aLower < bLower;
570 return pvA.getNContributors() > pvB.getNContributors();
573 table.update(vertices.data(), vertices.size());
574 const auto& view = table.getView();
576 const auto&
v0 = vertices[0];
577 const auto&
v1 = vertices[1];
578 const auto&
v2 = vertices[2];
671 table.defineLayer(0, 4, 100, 0, 0, 0);
672 table.defineLayer(1, 4, 100, 0, 0, 10);
673 table.defineLayer(2, 8, 50, 0, 0, 0);
674 table.defineLayer(3, 7, 50, 50, 0, 10);
678 std::vector<o2::its::Vertex> vertices;
680 auto&
v = vertices.emplace_back();
681 v.getTimeStamp().setTimeStamp(100);
682 v.getTimeStamp().setTimeStampError(60);
685 auto&
v = vertices.emplace_back();
686 v.getTimeStamp().setTimeStamp(100);
687 v.getTimeStamp().setTimeStampError(10);
690 auto&
v = vertices.emplace_back();
691 v.getTimeStamp().setTimeStamp(100);
692 v.getTimeStamp().setTimeStampError(0);
695 table.update(vertices.data(), vertices.size());
696 const auto& view = table.getView();
699 BOOST_CHECK(!view.isVertexCompatible(0, 0, vertices[0]));
700 BOOST_CHECK(!view.isVertexCompatible(0, 0, vertices[1]));
701 BOOST_CHECK(!view.isVertexCompatible(0, 0, vertices[2]));
705 const auto&
range = view.getVertices(0, 1);
708 size_t exactCount = 0;
709 for (
size_t i =
range.getFirstEntry();
i <
range.getEntriesBound(); ++
i) {
710 if (view.isVertexCompatible(0, 1, vertices[
i])) {
718 BOOST_CHECK(!view.isVertexCompatible(0, 2, vertices[0]));
719 BOOST_CHECK(!view.isVertexCompatible(0, 2, vertices[1]));
720 BOOST_CHECK(!view.isVertexCompatible(0, 2, vertices[2]));
723 BOOST_CHECK(!view.isVertexCompatible(2, 0, vertices[0]));
724 BOOST_CHECK(!view.isVertexCompatible(2, 0, vertices[1]));
727 BOOST_CHECK(!view.isVertexCompatible(2, 1, vertices[0]));
728 BOOST_CHECK(!view.isVertexCompatible(2, 1, vertices[1]));
729 BOOST_CHECK(!view.isVertexCompatible(2, 1, vertices[2]));
732 BOOST_CHECK(view.isVertexCompatible(2, 3, vertices[0]));
733 BOOST_CHECK(!view.isVertexCompatible(2, 3, vertices[1]));
736 BOOST_CHECK(view.isVertexCompatible(3, 0, vertices[0]));
737 BOOST_CHECK(view.isVertexCompatible(3, 0, vertices[1]));
738 BOOST_CHECK(view.isVertexCompatible(3, 0, vertices[2]));
741 BOOST_CHECK(view.isVertexCompatible(3, 2, vertices[0]));
742 BOOST_CHECK(!view.isVertexCompatible(3, 2, vertices[1]));
743 BOOST_CHECK(!view.isVertexCompatible(3, 2, vertices[2]));