Warning, file /include/Acts/Seeding/SeedFilter.hpp was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include "Acts/EventData/SpacePointData.hpp"
0012 #include "Acts/Seeding/CandidatesForMiddleSp.hpp"
0013 #include "Acts/Seeding/IExperimentCuts.hpp"
0014 #include "Acts/Seeding/InternalSeed.hpp"
0015 #include "Acts/Seeding/Seed.hpp"
0016 #include "Acts/Seeding/SeedFilterConfig.hpp"
0017
0018 #include <memory>
0019 #include <mutex>
0020 #include <queue>
0021 #include <tuple>
0022 #include <vector>
0023
0024 namespace Acts {
0025 struct SeedFilterState {
0026
0027 float zOrigin = 0;
0028
0029 std::size_t nTopSeedConf = 0;
0030
0031
0032 float rMaxSeedConf =
0033 std::numeric_limits<float>::max();
0034
0035 std::size_t numQualitySeeds = 0;
0036
0037
0038
0039 std::size_t numSeeds = 0;
0040 };
0041
0042
0043
0044 template <typename external_spacepoint_t>
0045 class SeedFilter {
0046 public:
0047 SeedFilter(SeedFilterConfig config,
0048 IExperimentCuts<external_spacepoint_t>* expCuts = nullptr);
0049
0050 SeedFilter() = delete;
0051 virtual ~SeedFilter() = default;
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064 virtual void filterSeeds_2SpFixed(
0065 Acts::SpacePointData& spacePointData,
0066 const InternalSpacePoint<external_spacepoint_t>& bottomSP,
0067 const InternalSpacePoint<external_spacepoint_t>& middleSP,
0068 const std::vector<const InternalSpacePoint<external_spacepoint_t>*>&
0069 topSpVec,
0070 const std::vector<float>& invHelixDiameterVec,
0071 const std::vector<float>& impactParametersVec,
0072 SeedFilterState& seedFilterState,
0073 CandidatesForMiddleSp<const InternalSpacePoint<external_spacepoint_t>>&
0074 candidates_collector) const;
0075
0076
0077
0078
0079
0080
0081
0082 virtual void filterSeeds_1SpFixed(
0083 Acts::SpacePointData& spacePointData,
0084 CandidatesForMiddleSp<const InternalSpacePoint<external_spacepoint_t>>&
0085 candidates_collector,
0086 const std::size_t numQualitySeeds,
0087 std::back_insert_iterator<std::vector<Seed<external_spacepoint_t>>> outIt)
0088 const;
0089
0090
0091
0092
0093
0094
0095
0096 virtual void filterSeeds_1SpFixed(
0097 Acts::SpacePointData& spacePointData,
0098 std::vector<typename CandidatesForMiddleSp<
0099 const InternalSpacePoint<external_spacepoint_t>>::value_type>&
0100 candidates,
0101 const std::size_t numQualitySeeds,
0102 std::back_insert_iterator<std::vector<Seed<external_spacepoint_t>>> outIt)
0103 const;
0104
0105 const SeedFilterConfig getSeedFilterConfig() const { return m_cfg; }
0106 const IExperimentCuts<external_spacepoint_t>* getExperimentCuts() const {
0107 return m_experimentCuts;
0108 }
0109
0110 private:
0111 const SeedFilterConfig m_cfg;
0112 const IExperimentCuts<external_spacepoint_t>* m_experimentCuts;
0113 };
0114 }
0115 #include "Acts/Seeding/SeedFilter.ipp"