11/* * TRACCC library, part of the ACTS project (R&D line)
22 *
3- * (c) 2021-2025 CERN for the benefit of the ACTS project
3+ * (c) 2021-2026 CERN for the benefit of the ACTS project
44 *
55 * Mozilla Public License Version 2.0
66 */
77
88#pragma once
99
1010// Local include(s).
11- #include " traccc/definitions/primitives.hpp"
1211#include " traccc/definitions/qualifiers.hpp"
1312
1413// VecMem include(s).
1514#include < vecmem/edm/container.hpp>
1615
16+ // System include(s).
17+ #include < array>
18+ #include < compare>
19+ #include < limits>
20+
1721namespace traccc ::edm {
1822
1923// / Interface for the @c traccc::edm::spacepoint_collection class.
@@ -71,12 +75,12 @@ class spacepoint : public BASE {
7175
7276 // / Global / 3D position of the spacepoint
7377 // /
74- // / @return A (non-const) vector of @c traccc::point3 values
78+ // / @return A (non-const) vector of @c std::array<float,3> values
7579 // /
7680 TRACCC_HOST_DEVICE auto & global () { return BASE::template get<2 >(); }
7781 // / Global / 3D position of the spacepoint
7882 // /
79- // / @return A (const) vector of @c traccc::point3 values
83+ // / @return A (const) vector of @c std::array<float,3> values
8084 // /
8185 TRACCC_HOST_DEVICE const auto & global () const {
8286 return BASE::template get<2 >();
@@ -87,7 +91,7 @@ class spacepoint : public BASE {
8791 // / @note This function must only be used on proxy objects, not on
8892 // / containers!
8993 // /
90- // / @return A (non-const) reference to a @c traccc::scalar value
94+ // / @return A (non-const) reference to a @c float value
9195 // /
9296 TRACCC_HOST_DEVICE
9397 auto & x ();
@@ -96,7 +100,7 @@ class spacepoint : public BASE {
96100 // / @note This function must only be used on proxy objects, not on
97101 // / containers!
98102 // /
99- // / @return A (const) reference to a @c traccc::scalar value
103+ // / @return A (const) reference to a @c float value
100104 // /
101105 TRACCC_HOST_DEVICE
102106 const auto & x () const ;
@@ -106,13 +110,13 @@ class spacepoint : public BASE {
106110 // / @note This function must only be used on proxy objects, not on
107111 // / containers!
108112 // /
109- // / @return A (non-const) reference to a @c traccc::scalar value
113+ // / @return A (non-const) reference to a @c float value
110114 // /
111115 TRACCC_HOST_DEVICE
112116 auto & y ();
113117 // / The Y position of the spacepoint (const)
114118 // /
115- // / @return A (const) reference to a @c traccc::scalar value
119+ // / @return A (const) reference to a @c float value
116120 // /
117121 TRACCC_HOST_DEVICE
118122 const auto & y () const ;
@@ -122,7 +126,7 @@ class spacepoint : public BASE {
122126 // / @note This function must only be used on proxy objects, not on
123127 // / containers!
124128 // /
125- // / @return A (non-const) reference to a @c traccc::scalar value
129+ // / @return A (non-const) reference to a @c float value
126130 // /
127131 TRACCC_HOST_DEVICE
128132 auto & z ();
@@ -131,19 +135,19 @@ class spacepoint : public BASE {
131135 // / @note This function must only be used on proxy objects, not on
132136 // / containers!
133137 // /
134- // / @return A (const) reference to a @c traccc::scalar value
138+ // / @return A (const) reference to a @c float value
135139 // /
136140 TRACCC_HOST_DEVICE
137141 const auto & z () const ;
138142
139143 // / The variation on the spacepoint's Z coordinate (non-const)
140144 // /
141- // / @return A (non-const) vector of @c traccc::scalar values
145+ // / @return A (non-const) vector of @c float values
142146 // /
143147 TRACCC_HOST_DEVICE auto & z_variance () { return BASE::template get<3 >(); }
144148 // / The variation on the spacepoint's Z coordinate (const)
145149 // /
146- // / @return A (const) vector of @c traccc::scalar values
150+ // / @return A (const) vector of @c float values
147151 // /
148152 TRACCC_HOST_DEVICE const auto & z_variance () const {
149153 return BASE::template get<3 >();
@@ -154,20 +158,20 @@ class spacepoint : public BASE {
154158 // / @note This function must only be used on proxy objects, not on
155159 // / containers!
156160 // /
157- // / @return A @c traccc::scalar value
161+ // / @return A @c float value
158162 // /
159163 TRACCC_HOST_DEVICE auto radius () const ;
160164
161165 // / The variation on the spacepoint radious (non-const)
162166 // /
163- // / @return A (non-const) vector of @c traccc::scalar values
167+ // / @return A (non-const) vector of @c float values
164168 // /
165169 TRACCC_HOST_DEVICE auto & radius_variance () {
166170 return BASE::template get<4 >();
167171 }
168172 // / The variation on the spacepoint radious (const)
169173 // /
170- // / @return A (non-const) vector of @c traccc::scalar values
174+ // / @return A (non-const) vector of @c float values
171175 // /
172176 TRACCC_HOST_DEVICE const auto & radius_variance () const {
173177 return BASE::template get<4 >();
@@ -178,7 +182,7 @@ class spacepoint : public BASE {
178182 // / @note This function must only be used on proxy objects, not on
179183 // / containers!
180184 // /
181- // / @return A @c traccc::scalar value
185+ // / @return A @c float value
182186 // /
183187 TRACCC_HOST_DEVICE auto phi () const ;
184188
@@ -216,10 +220,18 @@ class spacepoint : public BASE {
216220}; // class spacepoint
217221
218222// / SoA container describing reconstructed spacepoints
219- using spacepoint_collection = vecmem::edm::container<
220- spacepoint, vecmem::edm::type::vector<unsigned int >,
221- vecmem::edm::type::vector<unsigned int >, vecmem::edm::type::vector<point3>,
222- vecmem::edm::type::vector<scalar>, vecmem::edm::type::vector<scalar> >;
223+ using spacepoint_collection =
224+ vecmem::edm::container<spacepoint,
225+ // measurement_index_1
226+ vecmem::edm::type::vector<unsigned int >,
227+ // measurement_index_2
228+ vecmem::edm::type::vector<unsigned int >,
229+ // global
230+ vecmem::edm::type::vector<std::array<float , 3u >>,
231+ // z_variance
232+ vecmem::edm::type::vector<float >,
233+ // radius_variance
234+ vecmem::edm::type::vector<float >>;
223235
224236} // namespace traccc::edm
225237
0 commit comments