File indexing completed on 2026-07-26 08:21:58
0001
0002
0003
0004
0005
0006
0007
0008 #pragma once
0009
0010
0011 #include "traccc/definitions/primitives.hpp"
0012 #include "traccc/definitions/qualifiers.hpp"
0013
0014
0015 #include <vecmem/edm/container.hpp>
0016
0017
0018 #include <ostream>
0019
0020 namespace traccc::edm {
0021
0022
0023
0024
0025
0026
0027
0028 template <typename BASE>
0029 class seed : public BASE {
0030 public:
0031
0032
0033
0034
0035 using BASE::BASE;
0036
0037 using BASE::operator=;
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048 TRACCC_HOST_DEVICE
0049 auto& bottom_index() { return BASE::template get<0>(); }
0050
0051
0052
0053
0054 TRACCC_HOST_DEVICE
0055 const auto& bottom_index() const { return BASE::template get<0>(); }
0056
0057
0058
0059
0060
0061 TRACCC_HOST_DEVICE
0062 auto& middle_index() { return BASE::template get<1>(); }
0063
0064
0065
0066
0067 TRACCC_HOST_DEVICE
0068 const auto& middle_index() const { return BASE::template get<1>(); }
0069
0070
0071
0072
0073
0074 TRACCC_HOST_DEVICE
0075 auto& top_index() { return BASE::template get<2>(); }
0076
0077
0078
0079
0080 TRACCC_HOST_DEVICE
0081 const auto& top_index() const { return BASE::template get<2>(); }
0082
0083
0084
0085
0086 TRACCC_HOST_DEVICE
0087 const auto& quality() const { return BASE::template get<3>(); }
0088
0089
0090
0091
0092 TRACCC_HOST_DEVICE
0093 auto& quality() { return BASE::template get<3>(); }
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108 template <typename T>
0109 TRACCC_HOST_DEVICE bool operator==(const seed<T>& other) const;
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120 template <typename T>
0121 TRACCC_HOST_DEVICE std::strong_ordering operator<=>(
0122 const seed<T>& other) const;
0123
0124
0125
0126 private:
0127
0128 TRACCC_HOST
0129 friend std::ostream& operator<<(std::ostream& os, const seed& s) {
0130 os << "quality: " << s.quality() << std::endl;
0131 os << "measurements: [bottom = " << s.bottom_index()
0132 << ", middle = " << s.middle_index() << ", top = " << s.top_index()
0133 << "]" << std::endl;
0134
0135 return os;
0136 }
0137
0138 };
0139
0140
0141 using seed_collection =
0142 vecmem::edm::container<seed, vecmem::edm::type::vector<unsigned int>,
0143 vecmem::edm::type::vector<unsigned int>,
0144 vecmem::edm::type::vector<unsigned int>,
0145 vecmem::edm::type::vector<float> >;
0146
0147 }
0148
0149
0150 #include "traccc/edm/impl/seed_collection.ipp"