![]() |
Belle II Software development
|
Findlet for finding intersections of sinusoidal curves in the 2D Hough space by iteratively calling FastInterceptFinder2d. More...
#include <SingleHoughSpaceFastInterceptFinder.h>
Public Types | |
| using | IOTypes |
| Types that should be served to apply on invocation. | |
| using | IOVectors |
| Vector types that should be served to apply on invocation. | |
Public Member Functions | |
| SingleHoughSpaceFastInterceptFinder () | |
| Find intercepts in the 2D Hough space. | |
| void | exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) override |
| Expose the parameters of the sub findlets. | |
| void | initialize () override |
| Create the store arrays. | |
| void | apply (std::vector< VXDHoughState > &hits, std::vector< std::vector< VXDHoughState * > > &rawTrackCandidates) override |
| Load in the prepared hits and create track candidates for further processing like hit filtering and fitting. | |
| virtual std::string | getDescription () |
| Brief description of the purpose of the concrete findlet. | |
| virtual std::string | getDescription () |
| Brief description of the purpose of the concrete findlet. | |
| virtual void | apply (ToVector< AIOTypes > &... ioVectors)=0 |
| Main function executing the algorithm. | |
| void | beginRun () override |
| Receive and dispatch signal for the beginning of a new run. | |
| void | beginEvent () override |
| Receive and dispatch signal for the start of a new event. | |
| void | endRun () override |
| Receive and dispatch signal for the end of the run. | |
| void | terminate () override |
| Receive and dispatch Signal for termination of the event processing. | |
Protected Types | |
| using | ToVector |
| Short hand for ToRangeImpl. | |
Protected Member Functions | |
| void | addProcessingSignalListener (ProcessingSignalListener *psl) |
| Register a processing signal listener to be notified. | |
| int | getNProcessingSignalListener () |
| Get the number of currently registered listeners. | |
Private Types | |
| using | Super = TrackingUtilities::Findlet<VXDHoughState, std::vector<VXDHoughState*>> |
| Parent class. | |
Private Member Functions | |
| void | fastInterceptFinder2d (const std::vector< VXDHoughState * > &hits, const ushort xmin, const ushort xmax, const ushort ymin, const ushort ymax, const ushort currentRecursion) |
| find intercepts in the 2D Hough Space by recursively calling itself until no hits are assigned to a given Hough Space cell, or until the maximum number of recursions (m_maxRecursionLevel) is reached | |
| void | FindHoughSpaceCluster () |
| Find Hough Space clusters. | |
| void | DepthFirstSearch (const uint lastGlobalSectorIndex) |
| Perform depth first search recursive algorithm to find clusters in the Hough Space. | |
Static Private Member Functions | |
| static unsigned short | layerFilter (const std::bitset< 8 > &layer) |
| layer filter, checks if at least hits from 3 layers are in a set of hits | |
Private Attributes | |
| ushort | m_maxRecursionLevel = 9 |
| maximum number of recursive calls of FastInterceptFinder2d | |
| ushort | m_nAngleSectors = 512 |
| number of sectors of the Hough Space on the horizontal axis | |
| ushort | m_nVerticalSectors = 512 |
| number of sectors of the Hough Space on the vertical axis | |
| float | m_verticalHoughSpaceSize = 0.16 |
| vertical size of the Hough Space, defaults to the value for u-side | |
| float | m_minimumX = -3.168 |
| minimum x value of the Hough Space, defaults to the value for u-side | |
| float | m_maximumX = 3.168 |
| maximum x value of the Hough Space, defaults to the value for u-side | |
| ushort | m_MinimumHSClusterSize = 1 |
| minimum cluster size of sectors belonging to intercepts in the Hough Space | |
| ushort | m_MaximumHSClusterSize = 12 |
| maximum cluster size of sectors belonging to intercepts in the Hough Space | |
| ushort | m_MaximumHSClusterSizeX = 2 |
| maximum cluster size in x of sectors belonging to intercepts in the Hough Space | |
| ushort | m_MaximumHSClusterSizeY = 12 |
| maximum cluster size in y of sectors belonging to intercepts in the Hough Space | |
| float | m_unitX = 0 |
| HS unit size in x. | |
| float | m_unitY = 0 |
| HS unit size in y. | |
| std::array< float, c_maxLUTSize > | m_HSSinValuesLUT = {0} |
| Look-Up-Tables for values as cache to speed up calculation sine values of the Hough Space sector boarder coordinates. | |
| std::array< float, c_maxLUTSize > | m_HSCosValuesLUT = {0} |
| cosine values of the Hough Space sector boarder coordinates | |
| std::array< float, c_maxHSSectorNumber > | m_HSCenterSinValuesLUT = {0} |
| sine values of the Hough Space sector center coordinates | |
| std::array< float, c_maxHSSectorNumber > | m_HSCenterCosValuesLUT = {0} |
| cosine values of the Hough Space sector center coordinates | |
| std::unordered_map< uint, std::vector< VXDHoughState * > > | m_activeSectorsMap |
| Map containing only active HS sectors, i.e. | |
| std::vector< uint > | m_activeSectorsIndices |
| Cache the global indices of the active sectors for sorted access. | |
| ushort | m_clusterCount = 0 |
| count the clusters | |
| ushort | m_clusterSize = 0 |
| size of the current cluster | |
| std::pair< ushort, ushort > | m_clusterInitialPosition = std::make_pair(0, 0) |
| start cell of the recursive cluster finding in the Hough Space | |
| std::vector< VXDHoughState * > | m_currentTrackCandidate |
| the current track candidate | |
| std::vector< std::vector< VXDHoughState * > > | m_trackCandidates |
| vector containing track candidates, consisting of the found intersection values in the Hough Space | |
| std::vector< ProcessingSignalListener * > | m_subordinaryProcessingSignalListeners |
| References to subordinary signal processing listener contained in this findlet. | |
| bool | m_initialized |
| Flag to keep track whether initialization happened before. | |
| bool | m_terminated |
| Flag to keep track whether termination happened before. | |
| std::string | m_initializedAs |
| Name of the type during initialisation. | |
Static Private Attributes | |
| static const ushort | c_maxAllowedRecusionLevel = 10 |
| Define some magic numbers Maximum allowed recursion level. | |
| static constexpr ushort | c_maxHSSectorNumber = (1 << c_maxAllowedRecusionLevel) |
| Maximum number of HS sectors in x and y, also the size of some of the the Look-Up-Tables (LUTs) below. | |
| static constexpr ushort | c_xIndexBitMask = c_maxHSSectorNumber - 1 |
| Bit mask for coordinate transformation, creates all-ones for the coordinate system conversion. | |
| static constexpr ushort | c_maxLUTSize = c_maxHSSectorNumber + 1 |
| Look-Up-Table size including the right-most value. | |
Findlet for finding intersections of sinusoidal curves in the 2D Hough space by iteratively calling FastInterceptFinder2d.
The found track candidates are then clustered via a recursive search. Afterwards track candidates are formed and stored in the output vector.
Definition at line 31 of file SingleHoughSpaceFastInterceptFinder.h.
|
inherited |
|
inherited |
|
private |
Parent class.
Definition at line 33 of file SingleHoughSpaceFastInterceptFinder.h.
|
protectedinherited |
Find intercepts in the 2D Hough space.
Definition at line 21 of file SingleHoughSpaceFastInterceptFinder.cc.
|
protectedinherited |
Register a processing signal listener to be notified.
Definition at line 53 of file CompositeProcessingSignalListener.cc.
|
override |
Load in the prepared hits and create track candidates for further processing like hit filtering and fitting.
Definition at line 98 of file SingleHoughSpaceFastInterceptFinder.cc.
|
overrideinherited |
Receive and dispatch signal for the start of a new event.
Definition at line 36 of file CompositeProcessingSignalListener.cc.
|
overrideinherited |
Receive and dispatch signal for the beginning of a new run.
Definition at line 33 of file CompositeProcessingSignalListener.cc.
|
private |
Perform depth first search recursive algorithm to find clusters in the Hough Space.
| lastGlobalSectorIndex | global index of the last sector checked |
Definition at line 269 of file SingleHoughSpaceFastInterceptFinder.cc.
|
overrideinherited |
Receive and dispatch signal for the end of the run.
Definition at line 39 of file CompositeProcessingSignalListener.cc.
|
overridevirtual |
Expose the parameters of the sub findlets.
Reimplemented from CompositeProcessingSignalListener.
Definition at line 25 of file SingleHoughSpaceFastInterceptFinder.cc.
|
private |
find intercepts in the 2D Hough Space by recursively calling itself until no hits are assigned to a given Hough Space cell, or until the maximum number of recursions (m_maxRecursionLevel) is reached
| hits | vector containing the hits that are used for track finding |
| xmin | minimum x-index of the sub-Hough Space in the current recursion step |
| xmax | maximum x-index of the sub-Hough Space in the current recursion step |
| ymin | minimum y-index of the sub-Hough Space in the current recursion step |
| ymax | maximum y-index of the sub-Hough Space in the current recursion step |
| currentRecursion | current recursion step, has to be < m_maxRecursionLevel |
Definition at line 130 of file SingleHoughSpaceFastInterceptFinder.cc.
|
private |
Find Hough Space clusters.
Loop over all found sectors in m_SectorArray and then calls the DepthFirstSearch function to recursively find the clusters
Definition at line 225 of file SingleHoughSpaceFastInterceptFinder.cc.
|
inlinevirtualinherited |
|
inlinevirtualinherited |
|
protectedinherited |
Get the number of currently registered listeners.
Definition at line 56 of file CompositeProcessingSignalListener.cc.
|
overridevirtual |
Create the store arrays.
Reimplemented from CompositeProcessingSignalListener.
Definition at line 61 of file SingleHoughSpaceFastInterceptFinder.cc.
|
inlinestaticprivate |
layer filter, checks if at least hits from 3 layers are in a set of hits
| layer | bitset containing information whether there as a hit in a layer |
Definition at line 52 of file SingleHoughSpaceFastInterceptFinder.h.
|
overrideinherited |
Receive and dispatch Signal for termination of the event processing.
Definition at line 42 of file CompositeProcessingSignalListener.cc.
|
staticprivate |
Define some magic numbers Maximum allowed recursion level.
Definition at line 112 of file SingleHoughSpaceFastInterceptFinder.h.
|
staticconstexprprivate |
Maximum number of HS sectors in x and y, also the size of some of the the Look-Up-Tables (LUTs) below.
Definition at line 114 of file SingleHoughSpaceFastInterceptFinder.h.
|
staticconstexprprivate |
Look-Up-Table size including the right-most value.
Definition at line 118 of file SingleHoughSpaceFastInterceptFinder.h.
|
staticconstexprprivate |
Bit mask for coordinate transformation, creates all-ones for the coordinate system conversion.
Definition at line 116 of file SingleHoughSpaceFastInterceptFinder.h.
|
private |
Cache the global indices of the active sectors for sorted access.
Definition at line 134 of file SingleHoughSpaceFastInterceptFinder.h.
|
private |
Map containing only active HS sectors, i.e.
those with hits from enough layers contained in them. The keys are the global indices of the HS cell, the values are lists of pointers to the contained hits
Definition at line 132 of file SingleHoughSpaceFastInterceptFinder.h.
|
private |
count the clusters
Definition at line 137 of file SingleHoughSpaceFastInterceptFinder.h.
|
private |
start cell of the recursive cluster finding in the Hough Space
Definition at line 142 of file SingleHoughSpaceFastInterceptFinder.h.
|
private |
size of the current cluster
Definition at line 139 of file SingleHoughSpaceFastInterceptFinder.h.
|
private |
the current track candidate
Definition at line 145 of file SingleHoughSpaceFastInterceptFinder.h.
|
private |
cosine values of the Hough Space sector center coordinates
Definition at line 128 of file SingleHoughSpaceFastInterceptFinder.h.
|
private |
sine values of the Hough Space sector center coordinates
Definition at line 126 of file SingleHoughSpaceFastInterceptFinder.h.
|
private |
cosine values of the Hough Space sector boarder coordinates
Definition at line 124 of file SingleHoughSpaceFastInterceptFinder.h.
|
private |
Look-Up-Tables for values as cache to speed up calculation sine values of the Hough Space sector boarder coordinates.
Definition at line 122 of file SingleHoughSpaceFastInterceptFinder.h.
|
privateinherited |
Flag to keep track whether initialization happened before.
Definition at line 52 of file ProcessingSignalListener.h.
|
privateinherited |
Name of the type during initialisation.
Definition at line 58 of file ProcessingSignalListener.h.
|
private |
maximum cluster size of sectors belonging to intercepts in the Hough Space
Definition at line 98 of file SingleHoughSpaceFastInterceptFinder.h.
|
private |
maximum cluster size in x of sectors belonging to intercepts in the Hough Space
Definition at line 100 of file SingleHoughSpaceFastInterceptFinder.h.
|
private |
maximum cluster size in y of sectors belonging to intercepts in the Hough Space
Definition at line 102 of file SingleHoughSpaceFastInterceptFinder.h.
|
private |
maximum x value of the Hough Space, defaults to the value for u-side
Definition at line 93 of file SingleHoughSpaceFastInterceptFinder.h.
|
private |
maximum number of recursive calls of FastInterceptFinder2d
Definition at line 79 of file SingleHoughSpaceFastInterceptFinder.h.
|
private |
minimum cluster size of sectors belonging to intercepts in the Hough Space
Definition at line 96 of file SingleHoughSpaceFastInterceptFinder.h.
|
private |
minimum x value of the Hough Space, defaults to the value for u-side
Definition at line 91 of file SingleHoughSpaceFastInterceptFinder.h.
|
private |
number of sectors of the Hough Space on the horizontal axis
Definition at line 82 of file SingleHoughSpaceFastInterceptFinder.h.
|
private |
number of sectors of the Hough Space on the vertical axis
Definition at line 85 of file SingleHoughSpaceFastInterceptFinder.h.
|
privateinherited |
References to subordinary signal processing listener contained in this findlet.
Definition at line 60 of file CompositeProcessingSignalListener.h.
|
privateinherited |
Flag to keep track whether termination happened before.
Definition at line 55 of file ProcessingSignalListener.h.
|
private |
vector containing track candidates, consisting of the found intersection values in the Hough Space
Definition at line 148 of file SingleHoughSpaceFastInterceptFinder.h.
|
private |
HS unit size in x.
Definition at line 106 of file SingleHoughSpaceFastInterceptFinder.h.
|
private |
HS unit size in y.
Definition at line 108 of file SingleHoughSpaceFastInterceptFinder.h.
|
private |
vertical size of the Hough Space, defaults to the value for u-side
Definition at line 88 of file SingleHoughSpaceFastInterceptFinder.h.