Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::Neighbour< external_spacepoint_t > Struct Template Reference

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>

+ Collaboration diagram for Acts::Neighbour< external_spacepoint_t >:

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
 

Detailed Description

template<typename external_spacepoint_t>
struct Acts::Neighbour< external_spacepoint_t >

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

Constructor & Destructor Documentation

template<typename external_spacepoint_t >
Acts::Neighbour< external_spacepoint_t >::Neighbour ( )
delete

default constructor

template<typename external_spacepoint_t >
Acts::Neighbour< external_spacepoint_t >::Neighbour ( Acts::SpacePointGrid< external_spacepoint_t > &&  grid,
std::size_t  idx,
const float  lowerBound 
)
delete

Constructor with grid as rvalue.

Parameters
gridThe grid containing the space points
idxThe global index of the bin in the grid
lowerBoundThe lower bound of the allowed space points
template<typename external_spacepoint_t >
Acts::Neighbour< external_spacepoint_t >::Neighbour ( const Acts::SpacePointGrid< external_spacepoint_t > &  grid,
std::size_t  idx,
const float  lowerBound 
)

Constructor.

Parameters
gridThe grid containing the space points
idxThe global index of the bin in the grid
lowerBoundThe 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.

+ Here is the call graph for this function:

Member Data Documentation

template<typename external_spacepoint_t >
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__().

template<typename external_spacepoint_t >
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().


The documentation for this struct was generated from the following file: