Warning, file /juggler/JugReco/JugReco/IndexSourceLink.hpp was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include "JugReco/GeometryContainers.hpp"
0012 #include "JugReco/Index.hpp"
0013
0014 #include <cassert>
0015
0016 namespace Jug {
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027 class IndexSourceLink final {
0028 public:
0029
0030 constexpr IndexSourceLink(Acts::GeometryIdentifier gid, Index idx) : m_geometryId(gid), m_index(idx) {}
0031
0032
0033
0034 IndexSourceLink() = default;
0035 IndexSourceLink(const IndexSourceLink&) = default;
0036 IndexSourceLink(IndexSourceLink&&) = default;
0037 IndexSourceLink& operator=(const IndexSourceLink&) = default;
0038 IndexSourceLink& operator=(IndexSourceLink&&) = default;
0039
0040
0041 constexpr Acts::GeometryIdentifier geometryId() const { return m_geometryId; }
0042
0043 constexpr Index index() const { return m_index; }
0044
0045 public:
0046 Acts::GeometryIdentifier m_geometryId;
0047 Index m_index;
0048
0049 friend constexpr bool operator==(const IndexSourceLink& lhs, const IndexSourceLink& rhs)
0050 {
0051 return (lhs.m_geometryId == rhs.m_geometryId) and (lhs.m_index == rhs.m_index);
0052 }
0053 friend constexpr bool operator!=(const IndexSourceLink& lhs, const IndexSourceLink& rhs) { return not(lhs == rhs); }
0054 };
0055
0056
0057
0058
0059
0060 using IndexSourceLinkContainer = GeometryIdMultiset<IndexSourceLink>;
0061
0062
0063 
0064 
0065 
0066 using IndexSourceLinkAccessor = GeometryIdMultisetAccessor<IndexSourceLink>;
0067
0068 }