Findlet for finging intersections of sinosoidal curves in the 2D Hough space by iteratively calling fastInterceptFinder2d.
More...
|
| FastInterceptFinder2DFPGA () |
| 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 (const std::vector< std::pair< VxdID, std::pair< long, long >>> &hits, std::vector< std::pair< double, double >> &tracks) override |
| Load in the prepared hits and create tracks for extrapolation to PXD.
|
|
virtual std::string | getDescription () |
| Brief description of the purpose of the concret 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.
|
|
|
unsigned short | layerFilter (std::vector< bool > layer) |
| Layer filter, checks if at least hits from 3 layers are in a set of hits. More...
|
|
void | fastInterceptFinder2d (const std::vector< std::pair< VxdID, std::pair< long, long >>> &hits, uint xmin, uint xmax, uint ymin, uint ymax, uint currentRecursion) |
| find intercepts in the 2D Hough Space by recursively calling itself until no hits are assinged to a given Hough Space cell, or until the maximum number of recursions (m_maxRecursionLevel) is reached More...
|
|
void | FindHoughSpaceCluster () |
| Find Hough Space clusters. More...
|
|
void | DepthFirstSearch (uint lastIndexX, uint lastIndexY) |
| Perform depth first search recursive algorithm to find clusters in the Hough Space. More...
|
|
void | gnuplotoutput (const std::vector< std::pair< VxdID, std::pair< long, long >>> &hits) |
| gnuplot output for debugging
|
|
|
bool | m_param_isUFinder = true |
| Is this the intercept finder for the u-side hits (r-phi) or v-side (r-z)?
|
|
uint | m_param_maxRecursionLevel = 6 |
| maximum number of recursive calls of fastInterceptFinder2d
|
|
uint | m_param_nAngleSectors = 256 |
| number of sectors of the Hough Space on the horizontal axis
|
|
uint | m_param_nVerticalSectors = 256 |
| number of sectors of the Hough Space on the vertical axis
|
|
long | m_param_verticalHoughSpaceSize = convertFloatToInt(64, 6) |
| vertical size of the Hough Space, defaults to the value for u-side
|
|
double | m_param_minimumX = -3.168 |
| minimum x value of the Hough Space, defaults to the value for u-side
|
|
double | m_param_maximumX = 3.168 |
| maximum x value of the Hough Space, defaults to the value for u-side
|
|
double | m_unitX = 0 |
| HS unit size in x.
|
|
double | m_unitY = 0 |
| HS unit size in y.
|
|
uint | m_param_MinimumHSClusterSize = 3 |
| minimum cluster size of sectors belonging to intercepts in the Hough Space
|
|
uint | m_param_MaximumHSClusterSize = 1000 |
| maximum cluster size of sectors belonging to intercepts in the Hough Space
|
|
uint | m_param_MaximumHSClusterSizeX = 1000 |
| maximum cluster size in x of sectors belonging to intercepts in the Hough Space
|
|
uint | m_param_MaximumHSClusterSizeY = 1000 |
| maximum cluster size in y of sectors belonging to intercepts in the Hough Space
|
|
std::array< long, 16385 > | 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< long, 16385 > | m_HSCosValuesLUT = {0} |
| cosine values of the Hough Space sector boarder coordinates
|
|
std::array< long, 16384 > | m_HSCenterSinValuesLUT = {0} |
| sine values of the Hough Space sector center coordinates
|
|
std::array< long, 16384 > | m_HSCenterCosValuesLUT = {0} |
| cosine values of the Hough Space sector center coordinates
|
|
std::array< long, 16385 > | m_HSYLUT = {0} |
| y values of the Hough Space sector boarders
|
|
std::array< long, 16384 > | m_HSYCenterLUT = {0} |
| y values of the Hough Space sector centers
|
|
std::array< double, 16385 > | m_HSXLUT = {0} |
| x values of the Hough Space sector boarders
|
|
std::array< double, 16384 > | m_HSXCenterLUT = {0} |
| x values of the Hough Space sector centers
|
|
std::vector< int > | m_SectorArray |
| vector containing only the 1D representation of active cells to speed up processing
|
|
std::vector< std::pair< uint, uint > > | m_activeSectorArray |
| vector containing information for each cell whether it contained enough hits after m_maxRecursionLevel to be "active". More...
|
|
uint | m_clusterCount = 0 |
| count the clusters
|
|
uint | m_clusterSize = 0 |
| size of the current cluster
|
|
bool | m_param_writeGnuplotOutput = false |
| use gnuplot output?
|
|
std::string | m_param_gnuplotHSOutputFileName = "HSFPGA.plt" |
| gnuplot HS output filename
|
|
std::string | m_param_gnuplotHSRectOutputFileName = "HSFPGARect.plt" |
| gnuplot HS sector output filename
|
|
std::string | m_param_gnuplotHSCoGOutputFileName = "HSFPGACoG.plt" |
| gnuplot HS sector output filename
|
|
std::ofstream | m_rectoutstream |
| HS sector debug file.
|
|
std::ofstream | m_cogoutstream |
| HS CoG debug file.
|
|
const std::string | m_const_rectColor [8] = {"blue", "cyan", "green", "yellow", "orange", "violet", "skyblue", "pink"} |
| color definition for the sector debug output
|
|
uint | m_rectcounter = 1 |
| count HS debug rectangles
|
|
std::pair< int, int > | m_clusterInitialPosition = std::make_pair(0, 0) |
| start cell of the recursive cluster finding in the Hough Space
|
|
std::pair< int, int > | m_clusterCoG = std::make_pair(0, 0) |
| center of gravity containing describing the current best track parameters in the Hough Space
|
|
std::vector< std::pair< double, double > > | 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 = false |
| Flag to keep track whether initialization happend before.
|
|
bool | m_terminated = false |
| Flag to keep track whether termination happend before.
|
|
std::string | m_initializedAs |
| Name of the type during initialisation.
|
|
Findlet for finging intersections of sinosoidal curves in the 2D Hough space by iteratively calling fastInterceptFinder2d.
Definition at line 33 of file FastInterceptFinder2DFPGA.h.