File SeedFinder.hpp¶
-
namespace Acts
Note
This file is foreseen for the
Geometry
module to replaceExtent
-
template<typename external_spacepoint_t, typename platform_t = void*>
class SeedFinder - #include <Acts/Seeding/SeedFinder.hpp>
Disallow default instantiation, copy, assignment
-
SeedFinder() = default
-
SeedFinder(const SeedFinder<external_spacepoint_t, platform_t>&) = delete
-
SeedFinder<external_spacepoint_t, platform_t> &operator=(const SeedFinder<external_spacepoint_t, platform_t>&) = default
Public Functions
-
SeedFinder(const Acts::SeedFinderConfig<external_spacepoint_t> &config)
The only constructor.
Requires a config object.
- Parameters
config – the configuration for the SeedFinder
-
~SeedFinder() = default
-
template<template<typename...> typename container_t, typename sp_range_t>
void createSeedsForGroup(const Acts::SeedFinderOptions &options, SeedingState &state, const Acts::SpacePointGrid<external_spacepoint_t> &grid, std::back_insert_iterator<container_t<Seed<external_spacepoint_t>>> outIt, const sp_range_t &bottomSPs, const std::size_t middleSPs, const sp_range_t &topSPs, const Acts::Range1D<float> &rMiddleSPRange) const Create all seeds from the space points in the three iterators.
Can be used to parallelize the seed creation
Note
Ranges must return pointers.
Note
Ranges must be separate objects for each parallel call.
- Parameters
options – frequently changing configuration (like beam position)
state – State object that holds memory used
grid – The grid with space points
outIt – Output iterator for the seeds in the group
bottomSPs – group of space points to be used as innermost SP in a seed.
middleSPs – group of space points to be used as middle SP in a seed.
topSPs – group of space points to be used as outermost SP in a seed.
rMiddleSPRange – range object containing the minimum and maximum r for middle SP for a certain z bin.
-
template<typename sp_range_t>
std::vector<Seed<external_spacepoint_t>> createSeedsForGroup(const Acts::SeedFinderOptions &options, const Acts::SpacePointGrid<external_spacepoint_t> &grid, const sp_range_t &bottomSPs, const std::size_t middleSPs, const sp_range_t &topSPs) const Compatibility method for the new-style seed finding API.
This method models the old-style seeding API where we only need a container for the bottom, middle, and top space points. Also, the results are returned by value instead of inserted into an inserter.
Note
This method is a very simply wrapper around the more modern API.
Warning
The performance of the seeding code is far greater if the new API is used, and this is recommended for all new uses which do not require backwards-compatibility.
- Template Parameters
sp_range_t – container type for the seed point collections.
- Parameters
options – frequently changing configuration (like beam position)
grid – The grid with space points
bottomSPs – group of space points to be used as innermost SP in a seed.
middleSPs – group of space points to be used as middle SP in a seed.
topSPs – group of space points to be used as outermost SP in a seed.
- Returns
a vector of seeds.
Private Functions
-
void filterCandidates(Acts::SpacePointData &spacePointData, const InternalSpacePoint<external_spacepoint_t> &SpM, const Acts::SeedFinderOptions &options, SeedFilterState &seedFilterState, SeedingState &state) const¶
Iterates over the seed candidates tests the compatibility between three SPs and calls for the seed confirmation.
- Parameters
spacePointData – object contaning the spacepoint data
SpM – space point candidate to be used as middle SP in a seed
options – frequently changing configuration (like beam position)
seedFilterState – State object that holds memory used in SeedFilter
state – State object that holds memory used
-
template<typename out_range_t>
void getCompatibleDoublets(Acts::SpacePointData &spacePointData, const Acts::SeedFinderOptions &options, const Acts::SpacePointGrid<external_spacepoint_t> &grid, boost::container::small_vector<Neighbour<external_spacepoint_t>, 9> &otherSPsNeighbours, const InternalSpacePoint<external_spacepoint_t> &mediumSP, std::vector<LinCircle> &linCircleVec, out_range_t &outVec, const float &deltaRMinSP, const float &deltaRMaxSP, bool isBottom) const¶ Iterates over dublets and tests the compatibility between them by applying a series of cuts that can be tested with only two SPs.
- Parameters
spacePointData – object contaning the spacepoint data
options – frequently changing configuration (like beam position)
grid – spacepoint grid
otherSPsNeighbours – inner or outer space points to be used in the dublet
mediumSP – space point candidate to be used as middle SP in a seed
linCircleVec – vector contining inner or outer SP parameters after reference frame transformation to the u-v space
outVec – Output object containing top or bottom SPs that are compatible with a certain middle SPs
deltaRMinSP – minimum allowed r-distance between dublet components
deltaRMaxSP – maximum allowed r-distance between dublet components
isBottom – wheter otherSPs contains outer or inner SPs
Private Members
-
Acts::SeedFinderConfig<external_spacepoint_t> m_config¶
-
struct SeedingState
- #include <Acts/Seeding/SeedFinder.hpp>
Public Members
-
boost::container::small_vector<Acts::Neighbour<external_spacepoint_t>, 9> bottomNeighbours
-
CandidatesForMiddleSp<const InternalSpacePoint<external_spacepoint_t>> candidates_collector
-
std::vector<InternalSpacePoint<external_spacepoint_t>*> compatBottomSP
-
std::vector<InternalSpacePoint<external_spacepoint_t>*> compatTopSP
-
std::vector<float> curvatures
-
std::vector<float> impactParameters
-
std::vector<LinCircle> linCircleBottom
-
std::vector<LinCircle> linCircleTop
-
Acts::SpacePointData spacePointData
-
boost::container::small_vector<Acts::Neighbour<external_spacepoint_t>, 9> topNeighbours
-
std::vector<const InternalSpacePoint<external_spacepoint_t>*> topSpVec
-
boost::container::small_vector<Acts::Neighbour<external_spacepoint_t>, 9> bottomNeighbours
-
SeedFinder() = default
-
template<typename external_spacepoint_t, typename platform_t = void*>