LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
HoughSeedFinderAlg class. More...
#include "HoughSeedFinderAlg.h"
Classes | |
class | AccumulatorBin |
struct | SortBinIndexList |
class | SortHoughClusterList |
Public Member Functions | |
HoughSeedFinderAlg (fhicl::ParameterSet const &pset) | |
Constructor. More... | |
bool | findTrackSeeds (reco::HitPairListPtr &hitPairListPtr, reco::PrincipalComponents &inputPCA, SeedHitPairListPairVec &seedHitPairVec) const override |
Given the list of hits this will search for candidate Seed objects and return them. More... | |
bool | findTrackHits (reco::HitPairListPtr &hitPairListPtr, reco::PrincipalComponents &inputPCA, reco::HitPairListPtrList &hitPairListPtrList) const |
Given the list of hits this will return the sets of hits which belong on the same line. More... | |
Private Types | |
typedef std::pair< int, int > | BinIndex |
typedef std::map< BinIndex, AccumulatorBin > | RhoThetaAccumulatorBinMap |
typedef std::list< BinIndex > | HoughCluster |
typedef std::list< HoughCluster > | HoughClusterList |
Private Member Functions | |
void | findHitGaps (reco::HitPairListPtr &inputHitList, reco::HitPairListPtr &outputList) const |
Using Principal Components Axis, look for gaps in a list of 3D hits. More... | |
void | HoughRegionQuery (BinIndex &curBin, RhoThetaAccumulatorBinMap &rhoThetaAccumulatorBinMap, HoughCluster &neighborPts, size_t threshold) const |
void | expandHoughCluster (BinIndex &curBin, HoughCluster &neighborPts, HoughCluster &houghCluster, RhoThetaAccumulatorBinMap &rhoThetaAccumulatorBinMap, size_t threshold) const |
void | findHoughClusters (const reco::HitPairListPtr &inputHits, reco::PrincipalComponents &pca, RhoThetaAccumulatorBinMap &rhoThetaMap, HoughClusterList &clusterList) const |
bool | buildSeed (reco::HitPairListPtr &seed3DHits, SeedHitPairListPair &seedHitPair) const |
Given a list of candidate "seed" 3D hits, build the seed and get associated unique 2D hits. More... | |
void | LineFit2DHits (std::set< const reco::ClusterHit2D * > &hitList, double XOrigin, TVector3 &Pos, TVector3 &Dir, double &ChiDOF) const |
Private Attributes | |
size_t | m_minimum3DHits |
int | m_thetaBins |
int | m_rhoBins |
size_t | m_hiThresholdMin |
double | m_hiThresholdFrac |
double | m_loThresholdFrac |
size_t | m_numSeed2DHits |
double | m_numAveDocas |
int | m_numSkippedHits |
int | m_maxLoopsPerCluster |
double | m_maximumGap |
geo::Geometry const * | m_geometry |
PrincipalComponentsAlg | m_pcaAlg |
bool | m_displayHist |
std::vector< std::unique_ptr< TCanvas > > | m_Canvases |
Graphical trace canvases. More... | |
std::vector< TVirtualPad * > | m_Pads |
View pads in current canvas. More... | |
HoughSeedFinderAlg class.
Definition at line 36 of file HoughSeedFinderAlg.h.
|
private |
Definition at line 75 of file HoughSeedFinderAlg.h.
|
private |
Definition at line 81 of file HoughSeedFinderAlg.h.
|
private |
Definition at line 82 of file HoughSeedFinderAlg.h.
|
private |
Definition at line 80 of file HoughSeedFinderAlg.h.
lar_cluster3d::HoughSeedFinderAlg::HoughSeedFinderAlg | ( | fhicl::ParameterSet const & | pset | ) |
Constructor.
pset |
Definition at line 41 of file HoughSeedFinderAlg.cxx.
References art::ServiceHandle< T, SCOPE >::get(), fhicl::ParameterSet::get(), m_displayHist, m_geometry, m_hiThresholdFrac, m_hiThresholdMin, m_loThresholdFrac, m_maximumGap, m_maxLoopsPerCluster, m_minimum3DHits, m_numAveDocas, m_numSeed2DHits, m_numSkippedHits, m_rhoBins, and m_thetaBins.
|
private |
Given a list of candidate "seed" 3D hits, build the seed and get associated unique 2D hits.
Definition at line 531 of file HoughSeedFinderAlg.cxx.
References reco::PrincipalComponents::getAveHitDoca(), reco::PrincipalComponents::getAvePosition(), reco::ClusterHit3D::getDocaToAxis(), reco::PrincipalComponents::getEigenVectors(), reco::ClusterHit3D::getHits(), reco::PrincipalComponents::getSvdOK(), LineFit2DHits(), m_minimum3DHits, m_numAveDocas, m_numSeed2DHits, m_numSkippedHits, m_pcaAlg, lar_cluster3d::PrincipalComponentsAlg::PCAAnalysis_3D(), and lar_cluster3d::PrincipalComponentsAlg::PCAAnalysis_calc3DDocas().
Referenced by findTrackSeeds().
|
private |
The workhorse routine for a DBScan like clustering routine to identify peak bins in Hough Space
Definition at line 209 of file HoughSeedFinderAlg.cxx.
References HoughRegionQuery(), lar_cluster3d::HoughSeedFinderAlg::AccumulatorBin::isInCluster(), lar_cluster3d::HoughSeedFinderAlg::AccumulatorBin::isVisited(), lar_cluster3d::HoughSeedFinderAlg::AccumulatorBin::setInCluster(), and lar_cluster3d::HoughSeedFinderAlg::AccumulatorBin::setVisited().
Referenced by findHoughClusters().
|
private |
Using Principal Components Axis, look for gaps in a list of 3D hits.
inputHitList | - input list of 3D hits to check |
pca | - Principal Components Axis to use |
hitListList | - output list of hit lists which are gap free |
Definition at line 283 of file HoughSeedFinderAlg.cxx.
References reco::PrincipalComponents::getSvdOK(), m_maximumGap, m_pcaAlg, lar_cluster3d::PrincipalComponentsAlg::PCAAnalysis_3D(), and lar_cluster3d::PrincipalComponentsAlg::PCAAnalysis_calc3DDocas().
Referenced by findTrackSeeds().
|
private |
Definition at line 348 of file HoughSeedFinderAlg.cxx.
References expandHoughCluster(), reco::PrincipalComponents::getAvePosition(), reco::PrincipalComponents::getEigenValues(), reco::PrincipalComponents::getEigenVectors(), reco::ClusterHit3D::getPosition(), reco::ClusterHit3D::getStatusBits(), HoughRegionQuery(), m_Canvases, m_displayHist, m_geometry, m_hiThresholdFrac, m_hiThresholdMin, m_loThresholdFrac, m_Pads, m_rhoBins, m_thetaBins, util::size(), and geo::GeometryCore::WirePitch().
Referenced by findTrackHits(), and findTrackSeeds().
bool lar_cluster3d::HoughSeedFinderAlg::findTrackHits | ( | reco::HitPairListPtr & | hitPairListPtr, |
reco::PrincipalComponents & | inputPCA, | ||
reco::HitPairListPtrList & | hitPairListPtrList | ||
) | const |
Given the list of hits this will return the sets of hits which belong on the same line.
Definition at line 849 of file HoughSeedFinderAlg.cxx.
References findHoughClusters(), reco::PrincipalComponents::getEigenValues(), and m_minimum3DHits.
Referenced by lar_cluster3d::Cluster3D::splitClustersWithHough().
|
overridevirtual |
Given the list of hits this will search for candidate Seed objects and return them.
Implements lar_cluster3d::SeedFinderAlgBase.
Definition at line 659 of file HoughSeedFinderAlg.cxx.
References buildSeed(), findHitGaps(), findHoughClusters(), reco::PrincipalComponents::getEigenValues(), reco::PrincipalComponents::getSvdOK(), m_maxLoopsPerCluster, m_minimum3DHits, m_pcaAlg, and lar_cluster3d::PrincipalComponentsAlg::PCAAnalysis_3D().
Referenced by lar_cluster3d::Cluster3D::findTrackSeeds().
|
private |
Does a query of nearest neighbors to look for matching bins
Definition at line 173 of file HoughSeedFinderAlg.cxx.
References m_thetaBins.
Referenced by expandHoughCluster(), and findHoughClusters().
|
private |
Definition at line 957 of file HoughSeedFinderAlg.cxx.
References m_geometry, norm, geo::PlaneID::Plane, sw, w, geo::WireID::Wire, geo::GeometryCore::WireCoordinate(), geo::GeometryCore::WirePitch(), and x.
Referenced by buildSeed().
|
mutableprivate |
Graphical trace canvases.
Definition at line 127 of file HoughSeedFinderAlg.h.
Referenced by findHoughClusters().
|
private |
Definition at line 126 of file HoughSeedFinderAlg.h.
Referenced by findHoughClusters(), and HoughSeedFinderAlg().
|
private |
Definition at line 123 of file HoughSeedFinderAlg.h.
Referenced by findHoughClusters(), HoughSeedFinderAlg(), and LineFit2DHits().
|
private |
Definition at line 115 of file HoughSeedFinderAlg.h.
Referenced by findHoughClusters(), and HoughSeedFinderAlg().
|
private |
Definition at line 114 of file HoughSeedFinderAlg.h.
Referenced by findHoughClusters(), and HoughSeedFinderAlg().
|
private |
Definition at line 116 of file HoughSeedFinderAlg.h.
Referenced by findHoughClusters(), and HoughSeedFinderAlg().
|
private |
Definition at line 121 of file HoughSeedFinderAlg.h.
Referenced by findHitGaps(), and HoughSeedFinderAlg().
|
private |
Definition at line 120 of file HoughSeedFinderAlg.h.
Referenced by findTrackSeeds(), and HoughSeedFinderAlg().
|
private |
Definition at line 111 of file HoughSeedFinderAlg.h.
Referenced by buildSeed(), findTrackHits(), findTrackSeeds(), and HoughSeedFinderAlg().
|
private |
Definition at line 118 of file HoughSeedFinderAlg.h.
Referenced by buildSeed(), and HoughSeedFinderAlg().
|
private |
Definition at line 117 of file HoughSeedFinderAlg.h.
Referenced by buildSeed(), and HoughSeedFinderAlg().
|
private |
Definition at line 119 of file HoughSeedFinderAlg.h.
Referenced by buildSeed(), and HoughSeedFinderAlg().
|
mutableprivate |
View pads in current canvas.
Definition at line 128 of file HoughSeedFinderAlg.h.
Referenced by findHoughClusters().
|
private |
Definition at line 124 of file HoughSeedFinderAlg.h.
Referenced by buildSeed(), findHitGaps(), and findTrackSeeds().
|
private |
Definition at line 113 of file HoughSeedFinderAlg.h.
Referenced by findHoughClusters(), and HoughSeedFinderAlg().
|
private |
Definition at line 112 of file HoughSeedFinderAlg.h.
Referenced by findHoughClusters(), HoughRegionQuery(), and HoughSeedFinderAlg().