EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TrkrClusterSourceLink.hpp
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file TrkrClusterSourceLink.hpp
1 #pragma once
2 
8 
10 #include <boost/container/flat_map.hpp>
11 #include <boost/container/flat_set.hpp>
12 
13 namespace ActsExamples {
14 
20 {
21  public:
22 
26  std::shared_ptr<const Acts::Surface> surface,
29  : m_cluskey(cluskey)
30  , m_surface(surface)
31  , m_geoId(surface->geometryId())
32  , m_loc(loc)
33  , m_cov(cov)
34 {
35 }
36 
38  TrkrClusterSourceLink() = default;
41 
45 
47  {
48  return m_loc;
49  }
51  {
52  return m_cov;
53  }
54 
56  {
57  return m_geoId;
58  }
59 
62  {
63  return *m_surface;
64  }
65 
68  {
69 
74  {m_surface,
75  *this,
76  m_cov.topLeftCorner<2, 2>(),
77  m_loc[0],
78  m_loc[1]
79  };
80  }
81 
82  uint64_t cluskey() const
83  {
84  return m_cluskey;
85  }
86 
87 
88 private:
89 
92  uint64_t m_cluskey;
93  std::shared_ptr<const Acts::Surface> m_surface;
95 
100 
103  friend constexpr bool
104  operator==(const TrkrClusterSourceLink& lhs, const TrkrClusterSourceLink& rhs)
105  {
106  return lhs.m_cluskey == rhs.m_cluskey;
107  }
108 
109 };
110 
112  static_assert(Acts::SourceLinkConcept<TrkrClusterSourceLink>,
113  "TrkrClusterSourceLink does not fulfill SourceLinkConcept");
114 
115  // Construct a container for TrkrSourceLinks
117 
118 }
119