|
HerdSoftware
0.2.3
|
Finds tracks from a collection of 2D hits. More...
#include <algorithms/tracking/HoughFinder2DAlgo.h>
Public Member Functions | |
| HoughFinder2DAlgo (const std::string &name) | |
| Constructor. More... | |
| bool | Initialize () override |
| Initialization of the algorithm. More... | |
| bool | Process () override |
| Process a single event. More... | |
| bool | Finalize () override |
| Post processing part. More... | |
| int | GetVotingIndex (float R, float Theta) |
| Computes voting space index for a given pair of R-Theta. More... | |
| std::pair< float, float > | GetRTheta (int votingIndex) |
| Returns R and Theta values given a voting space index. More... | |
| void | FindTracks (RefFrame::View view, const HFClusters &clusters) |
| Takes a collection of clusters on a given view and finds all the tracks. More... | |
Private Member Functions | |
| void | ImportSiliconDetectorHits (const SiliconDetectorClustersColl &clColl, const SiliconDetectorGeoParamsColl &geoParamsColl, HFCluster::DetectorType detType) |
| void | ImportFitHits (const FitClustersColl &clColl, const FitGeoParamsColl &geoParamsColl) |
| void | ClearVotingSpace () |
| void | FillVotingSpace (RefFrame::View view, const HFClusters &clusters) |
| void | RemoveFromVotingSpace (const Cluster &cluster) |
| int | FindCandidateTrack () |
| std::vector< HoughTrackStub > | AccumulateVotes (int votingIndex) |
| void | SearchVotes (int votingIndex, std::vector< int > &vIndexes) |
| std::pair< bool, HFCluster > | FindClusterFromSeedIndex (const HFClusters &clColl, unsigned int clID) |
| std::pair< float, float > | GetAvRTheta (const std::vector< HoughTrackStub > &votes) |
| void | BuildTrackFromVotes (std::vector< HoughTrackStub > &votes, const HFClusters &clusters) |
| std::tuple< StkClustersColl, ScdClustersColl, FitClustersColl > | FillClusterCollections (const std::vector< HoughTrackStub > &votes, const HFClusters &clColl) |
Private Attributes | |
| unsigned int | _nThetaDiv |
| unsigned int | _nRDiv |
| float | _RMax |
| unsigned int | _nVotes |
| HFClusters | _clXZ |
| HFClusters | _clYZ |
| HFClusters | _clXY |
| std::unordered_map< int, std::vector< HoughTrackStub > > | _votingSpace |
| EA::observer_ptr< StkGeoParamsColl > | _stkGeoParamsColl |
| EA::observer_ptr< ScdGeoParamsColl > | _scdGeoParamsColl |
| EA::observer_ptr< FitGeoParamsColl > | _fitGeoParamsColl |
| std::vector< Track2D > | _trackColl |
| StorePtr | _globStore |
| StorePtr | _evStore |
Finds tracks from a collection of 2D hits.
Needed event objects:
| name | type | store | optional | description |
|---|---|---|---|---|
| stkClusterscollMC | StkClustersColl | evStore | no | The clusters of the STKs. |
Produced global objects:
| name | -type- | store | description |
|---|---|---|---|
| HoughTracksXZ | std::vector<Track2D> | evStore | The collection of XZ tracks. |
| HoughTracksYZ | std::vector<Track2D> | evStore | The collection of YZ tracks. |
| HoughTracksXY | std::vector<Track2D> | evStore | The collection of XY tracks. |
Parameters:
| name | type | default value | description |
|---|---|---|---|
| nThetaDiv | int | 500 | Number of divisions in the theta axis. |
| nRDiv | int | 500 | Number of divisions in the r axis. |
| RMax | float | 100 | Max abs value of r [cm]. |
| nVotes | int | 6 | Minimum number of votes for a track. |
| Herd::HoughFinder2DAlgo::HoughFinder2DAlgo | ( | const std::string & | name | ) |
Constructor.
| name | The name of the algorithm |
|
private |
|
private |
|
inlineprivate |
|
private |
|
private |
|
override |
Post processing part.
|
private |
|
private |
| void Herd::HoughFinder2DAlgo::FindTracks | ( | RefFrame::View | view, |
| const HFClusters & | clusters | ||
| ) |
Takes a collection of clusters on a given view and finds all the tracks.
| view | The view in wihch track finding should be performed |
| clusters | Input set of clusters for track finding |
|
private |
| std::pair< float, float > Herd::HoughFinder2DAlgo::GetRTheta | ( | int | votingIndex | ) |
Returns R and Theta values given a voting space index.
| int Herd::HoughFinder2DAlgo::GetVotingIndex | ( | float | R, |
| float | Theta | ||
| ) |
Computes voting space index for a given pair of R-Theta.
The voting space index is computed as floor((R / _RMax + 1) * _nRDiv / 2)*_nThetaDiv + floor(Theta / M_PI * _nThetaDiv)
|
private |
|
private |
|
override |
Initialization of the algorithm.
|
override |
Process a single event.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
1.8.13