Analysis Software
Documentation for sPHENIX simulation software
|
A class that helps in processing the neighbours, given a collection of middle space points The idea here is that in the seeding we look for compatible b-m and m-t doublets. One of the requirements is that the bottom/top space point is at a suitable distance (in radius) w.r.t. the middle space point. We know however that the space points in each bin are sorted in radius. That means we can use this sorting in order to reduce the number of space point to consider when looking for compatible doublets. The idea is to keep track of first space point that is in the allowed bin, by storing its position using an iterator itr This helps us since the lower possible buondary is given by the first middle space point (its radius minus the mad deltaR defined by the user). The subsequent middle space point will have a higher radius. That means that there is no point in looking at neighbour space point before itr, since we know they will be out of range. More...
#include <acts/blob/sPHENIX/Core/include/Acts/Seeding/Neighbour.hpp>
Public Member Functions | |
Neighbour ()=delete | |
default constructor | |
Neighbour (Acts::SpacePointGrid< external_spacepoint_t > &&grid, std::size_t idx, const float lowerBound)=delete | |
Constructor with grid as rvalue. | |
Neighbour (const Acts::SpacePointGrid< external_spacepoint_t > &grid, std::size_t idx, const float lowerBound) | |
Constructor. | |
Public Attributes | |
std::size_t | index |
The global bin index on the grid. | |
Acts::SpacePointGrid < external_spacepoint_t > ::value_type::const_iterator | itr |
A class that helps in processing the neighbours, given a collection of middle space points The idea here is that in the seeding we look for compatible b-m and m-t doublets. One of the requirements is that the bottom/top space point is at a suitable distance (in radius) w.r.t. the middle space point. We know however that the space points in each bin are sorted in radius. That means we can use this sorting in order to reduce the number of space point to consider when looking for compatible doublets. The idea is to keep track of first space point that is in the allowed bin, by storing its position using an iterator itr This helps us since the lower possible buondary is given by the first middle space point (its radius minus the mad deltaR defined by the user). The subsequent middle space point will have a higher radius. That means that there is no point in looking at neighbour space point before itr, since we know they will be out of range.
Definition at line 31 of file Neighbour.hpp.
View newest version in sPHENIX GitHub at line 31 of file Neighbour.hpp
|
delete |
default constructor
|
delete |
Constructor with grid as rvalue.
grid | The grid containing the space points |
idx | The global index of the bin in the grid |
lowerBound | The lower bound of the allowed space points |
Acts::Neighbour< external_spacepoint_t >::Neighbour | ( | const Acts::SpacePointGrid< external_spacepoint_t > & | grid, |
std::size_t | idx, | ||
const float | lowerBound | ||
) |
Constructor.
grid | The grid containing the space points |
idx | The global index of the bin in the grid |
lowerBound | The lower bound of the allowed space point |
Get the space points in this specific global bin
If there are no elements in the bin, we simply set the iterator to begin() and return. In this case begin() == end() so we run on nothing
First check that the first element is not already above the lower bound If so, avoid any computation and set the iterator to begin()
In case the last element is below the lower bound, that means that there can't be any element in that collection that can be considered a valuable candidate. Set the iterator to end() so that we do not run on this collection
Cannot decide a priori. We need to find the first element suche that it's radius is > lower bound. We use a binary search in this case
Definition at line 58 of file Neighbour.hpp.
View newest version in sPHENIX GitHub at line 58 of file Neighbour.hpp
References Acts::detail::Grid< T, Axes >::at(), Acts::Neighbour< external_spacepoint_t >::itr, and material_mapping_optimisation::target.
std::size_t Acts::Neighbour< external_spacepoint_t >::index |
The global bin index on the grid.
Definition at line 50 of file Neighbour.hpp.
View newest version in sPHENIX GitHub at line 50 of file Neighbour.hpp
Referenced by GeometryVisualisationAndMaterialHandling.index_info::__repr__().
Acts::SpacePointGrid< external_spacepoint_t>::value_type::const_iterator Acts::Neighbour< external_spacepoint_t >::itr |
The iterator containing the position of the first space point in the valid radius range
Definition at line 54 of file Neighbour.hpp.
View newest version in sPHENIX GitHub at line 54 of file Neighbour.hpp
Referenced by Acts::Neighbour< external_spacepoint_t >::Neighbour().