HerdSoftware
0.1.1
|
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 () |
Initialization of the algorithm. More... | |
bool | Process () |
Process a single event. More... | |
bool | Finalize () |
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... | |
template<RefFrame::View T> | |
void | FindTracks (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 () |
template<RefFrame::View T> | |
void | FillVotingSpace (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 |
bool Herd::HoughFinder2DAlgo::Finalize | ( | ) |
Post processing part.
|
private |
|
private |
void Herd::HoughFinder2DAlgo::FindTracks | ( | const HFClusters & | clusters | ) |
Takes a collection of clusters on a given view and finds all the tracks.
|
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 |
bool Herd::HoughFinder2DAlgo::Initialize | ( | ) |
Initialization of the algorithm.
bool Herd::HoughFinder2DAlgo::Process | ( | ) |
Process a single event.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |