Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-07-26 08:22:00

0001 /** TRACCC library, part of the ACTS project (R&D line)
0002  *
0003  * (c) 2021-2023 CERN for the benefit of the ACTS project
0004  *
0005  * Mozilla Public License Version 2.0
0006  */
0007 
0008 #pragma once
0009 
0010 // Project include(s).
0011 #include "traccc/seeding/detail/singlet.hpp"
0012 
0013 // System include(s).
0014 #include <variant>
0015 
0016 namespace traccc {
0017 
0018 /// Item: doublet of middle-bottom or middle-top
0019 struct doublet {
0020   // midle spacepoint location in internal spacepoint container
0021   sp_location sp1;
0022   // bottom (or top) spacepoint location in internal spacepoint container
0023   sp_location sp2;
0024 };
0025 
0026 inline TRACCC_HOST_DEVICE bool operator==(const doublet& lhs,
0027                                           const doublet& rhs) {
0028   return (
0029       lhs.sp1.bin_idx == rhs.sp1.bin_idx && lhs.sp1.sp_idx == rhs.sp1.sp_idx &&
0030       lhs.sp2.bin_idx == rhs.sp2.bin_idx && lhs.sp2.sp_idx == rhs.sp2.sp_idx);
0031 }
0032 
0033 /// Declare all doublet collection types
0034 using doublet_collection_types = collection_types<doublet>;
0035 
0036 /// Declare all doublet container types
0037 using doublet_container_types = container_types<std::monostate, doublet>;
0038 
0039 }  // namespace traccc