File indexing completed on 2026-07-26 08:22:01
0001
0002
0003
0004
0005
0006
0007
0008 #pragma once
0009
0010
0011 #include "traccc/definitions/primitives.hpp"
0012 #include "traccc/seeding/detail/doublet.hpp"
0013
0014
0015 #include <variant>
0016
0017 namespace traccc {
0018
0019
0020 struct triplet {
0021
0022 sp_location sp1;
0023
0024 sp_location sp2;
0025
0026 sp_location sp3;
0027
0028 scalar curvature;
0029
0030 scalar weight;
0031
0032 scalar z_vertex;
0033 };
0034
0035 inline TRACCC_HOST_DEVICE bool operator==(const triplet& lhs,
0036 const triplet& rhs) {
0037 return (
0038 lhs.sp1.bin_idx == rhs.sp1.bin_idx && lhs.sp1.sp_idx == rhs.sp1.sp_idx &&
0039 lhs.sp2.bin_idx == rhs.sp2.bin_idx && lhs.sp2.sp_idx == rhs.sp2.sp_idx &&
0040 lhs.sp3.bin_idx == rhs.sp3.bin_idx && lhs.sp3.sp_idx == rhs.sp3.sp_idx);
0041 }
0042
0043 inline TRACCC_HOST_DEVICE bool operator!=(const triplet& lhs,
0044 const triplet& rhs) {
0045 return !(lhs == rhs);
0046 }
0047
0048 inline TRACCC_HOST_DEVICE bool operator<(const triplet& lhs,
0049 const triplet& rhs) {
0050 return lhs.weight < rhs.weight;
0051 }
0052
0053
0054 using triplet_collection_types = collection_types<triplet>;
0055
0056
0057 using triplet_container_types = container_types<std::monostate, triplet>;
0058
0059 }