LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
Public Member Functions | |
VoronoiPathFinder (const fhicl::ParameterSet &) | |
Constructor. More... | |
~VoronoiPathFinder () | |
Destructor. More... | |
void | configure (fhicl::ParameterSet const &pset) override |
void | initializeHistograms (art::TFileDirectory &) override |
Interface for initializing histograms if they are desired Note that the idea is to put hisgtograms in a subfolder. More... | |
void | ModifyClusters (reco::ClusterParametersList &) const override |
Scan an input collection of clusters and modify those according to the specific implementing algorithm. More... | |
float | getTimeToExecute () const override |
If monitoring, recover the time to execute a particular function. More... | |
virtual void | configure (const fhicl::ParameterSet &)=0 |
Interface for configuring the particular algorithm tool. More... | |
Private Types | |
using | Point = std::tuple< float, float, const reco::ClusterHit3D * > |
using | PointList = std::list< Point > |
using | MinMaxPoints = std::pair< Point, Point > |
using | MinMaxPointPair = std::pair< MinMaxPoints, MinMaxPoints > |
Private Member Functions | |
reco::ClusterParametersList::iterator | breakIntoTinyBits (reco::ClusterParameters &cluster, reco::PrincipalComponents &lastPCA, reco::ClusterParametersList::iterator positionItr, reco::ClusterParametersList &outputClusterList, int level=0) const |
Use PCA to try to find path in cluster. More... | |
reco::ClusterParametersList::iterator | subDivideCluster (reco::ClusterParameters &cluster, reco::ClusterParametersList::iterator positionItr, reco::ClusterParametersList &outputClusterList, int level=0) const |
Use PCA to try to find path in cluster. More... | |
bool | makeCandidateCluster (Eigen::Vector3f &, reco::ClusterParameters &, reco::HitPairListPtr::iterator, reco::HitPairListPtr::iterator, int) const |
float | closestApproach (const Eigen::Vector3f &, const Eigen::Vector3f &, const Eigen::Vector3f &, const Eigen::Vector3f &, Eigen::Vector3f &, Eigen::Vector3f &) const |
void | buildConvexHull (reco::ClusterParameters &clusterParameters, int level=0) const |
void | buildVoronoiDiagram (reco::ClusterParameters &clusterParameters) const |
Private Attributes | |
bool | fEnableMonitoring |
FHICL parameters. More... | |
size_t | fMinTinyClusterSize |
Minimum size for a "tiny" cluster. More... | |
float | fTimeToProcess |
bool | fFillHistograms |
Histogram definitions. More... | |
TH1F * | fTopNum3DHits |
TH1F * | fTopNumEdges |
TH1F * | fTopEigen21Ratio |
TH1F * | fTopEigen20Ratio |
TH1F * | fTopEigen10Ratio |
TH1F * | fTopPrimaryLength |
TH1F * | fSubNum3DHits |
TH1F * | fSubNumEdges |
TH1F * | fSubEigen21Ratio |
TH1F * | fSubEigen20Ratio |
TH1F * | fSubEigen10Ratio |
TH1F * | fSubPrimaryLength |
TH1F * | fSubCosToPrevPCA |
TH1F * | fSubCosExtToPCA |
TH1F * | fSubMaxDefect |
TH1F * | fSubUsedDefect |
std::unique_ptr< lar_cluster3d::IClusterAlg > | fClusterAlg |
Tools. More... | |
PrincipalComponentsAlg | fPCAAlg |
Definition at line 40 of file VoronoiPathFinder_tool.cc.
|
private |
Definition at line 119 of file VoronoiPathFinder_tool.cc.
|
private |
Definition at line 118 of file VoronoiPathFinder_tool.cc.
|
private |
Definition at line 116 of file VoronoiPathFinder_tool.cc.
|
private |
Definition at line 117 of file VoronoiPathFinder_tool.cc.
|
explicit |
Constructor.
pset |
Definition at line 162 of file VoronoiPathFinder_tool.cc.
References configure().
lar_cluster3d::VoronoiPathFinder::~VoronoiPathFinder | ( | ) |
|
private |
Use PCA to try to find path in cluster.
clusterParameters | The given cluster parameters object to try to split |
clusterParametersList | The list of clusters |
Definition at line 330 of file VoronoiPathFinder_tool.cc.
References util::abs(), buildConvexHull(), fFillHistograms, reco::PrincipalComponents::flipAxis(), fMinTinyClusterSize, fPCAAlg, fSubCosToPrevPCA, fSubEigen10Ratio, fSubEigen20Ratio, fSubEigen21Ratio, fSubNum3DHits, fSubNumEdges, fSubPrimaryLength, reco::ClusterParameters::getBestEdgeList(), reco::ClusterParameters::getConvexHull(), reco::ConvexHull::getConvexHullExtremePoints(), reco::PrincipalComponents::getEigenValues(), reco::PrincipalComponents::getEigenVectors(), reco::ClusterParameters::getFullPCA(), reco::ClusterParameters::getHitPairListPtr(), reco::ClusterHit3D::getPosition(), reco::ClusterParameters::getSkeletonPCA(), reco::PrincipalComponents::getSvdOK(), art::detail::indent(), art::left(), lar_cluster3d::PrincipalComponentsAlg::PCAAnalysis_3D(), lar_cluster3d::PrincipalComponentsAlg::PCAAnalysis_calc3DDocas(), art::right(), reco::ClusterParameters::UpdateParameters(), and reco::ClusterHit2D::USED.
Referenced by getTimeToExecute().
|
private |
Definition at line 881 of file VoronoiPathFinder_tool.cc.
References util::abs(), reco::PrincipalComponents::getAvePosition(), lar_cluster3d::ConvexHull::getConvexHull(), reco::ClusterParameters::getConvexHull(), lar_cluster3d::ConvexHull::getConvexHullArea(), reco::ConvexHull::getConvexHullEdgeList(), reco::ConvexHull::getConvexHullEdgeMap(), reco::ConvexHull::getConvexHullExtremePoints(), reco::PrincipalComponents::getEigenVectors(), reco::ClusterParameters::getFullPCA(), reco::ClusterParameters::getHitPairListPtr(), reco::ClusterHit3D::getPosition(), reco::ConvexHull::getProjectedPointList(), art::detail::indent(), art::left(), and art::right().
Referenced by breakIntoTinyBits(), makeCandidateCluster(), and ModifyClusters().
|
private |
Definition at line 1028 of file VoronoiPathFinder_tool.cc.
References util::abs(), voronoi2d::VoronoiDiagram::buildVoronoiDiagram(), reco::PrincipalComponents::getAvePosition(), reco::ClusterParameters::getBestEdgeList(), reco::PrincipalComponents::getEigenVectors(), reco::ClusterParameters::getFaceList(), reco::ClusterParameters::getFullPCA(), reco::ClusterParameters::getHalfEdgeList(), reco::ClusterParameters::getHit3DToEdgeMap(), reco::ClusterParameters::getHitPairListPtr(), reco::ClusterHit3D::getPosition(), reco::ClusterParameters::getVertexList(), art::left(), and art::right().
Referenced by ModifyClusters().
|
private |
Definition at line 1137 of file VoronoiPathFinder_tool.cc.
References d, DEFINE_ART_CLASS_TOOL, den, and e.
Referenced by getTimeToExecute().
|
pure virtualinherited |
Interface for configuring the particular algorithm tool.
ParameterSet | The input set of parameters for configuration |
|
override |
Definition at line 174 of file VoronoiPathFinder_tool.cc.
References fClusterAlg, fEnableMonitoring, fMinTinyClusterSize, fTimeToProcess, and fhicl::ParameterSet::get().
Referenced by VoronoiPathFinder().
|
inlineoverridevirtual |
If monitoring, recover the time to execute a particular function.
Implements lar_cluster3d::IClusterModAlg.
Definition at line 75 of file VoronoiPathFinder_tool.cc.
References breakIntoTinyBits(), closestApproach(), fTimeToProcess, makeCandidateCluster(), and subDivideCluster().
|
overridevirtual |
Interface for initializing histograms if they are desired Note that the idea is to put hisgtograms in a subfolder.
TFileDirectory | - the folder to store the hists in |
Implements lar_cluster3d::IClusterModAlg.
Definition at line 186 of file VoronoiPathFinder_tool.cc.
References dir, fFillHistograms, fSubCosExtToPCA, fSubCosToPrevPCA, fSubEigen10Ratio, fSubEigen20Ratio, fSubEigen21Ratio, fSubMaxDefect, fSubNum3DHits, fSubNumEdges, fSubPrimaryLength, fSubUsedDefect, fTopEigen10Ratio, fTopEigen20Ratio, fTopEigen21Ratio, fTopNum3DHits, fTopNumEdges, and fTopPrimaryLength.
|
private |
Definition at line 803 of file VoronoiPathFinder_tool.cc.
References util::abs(), buildConvexHull(), reco::PrincipalComponents::flipAxis(), fPCAAlg, reco::ClusterParameters::getBestEdgeList(), reco::PrincipalComponents::getEigenValues(), reco::PrincipalComponents::getEigenVectors(), reco::ClusterParameters::getFullPCA(), reco::ClusterParameters::getHitPairListPtr(), reco::ClusterParameters::getSkeletonPCA(), reco::PrincipalComponents::getSvdOK(), art::detail::indent(), and lar_cluster3d::PrincipalComponentsAlg::PCAAnalysis_3D().
Referenced by getTimeToExecute(), and subDivideCluster().
|
overridevirtual |
Scan an input collection of clusters and modify those according to the specific implementing algorithm.
clusterParametersList | A list of cluster objects (parameters from associated hits) |
Top level interface for algorithm to consider pairs of clusters from the input list and determine if they are consistent with each other and, therefore, should be merged. This is done by looking at the PCA for each cluster and looking at the projection of the primary axis along the vector connecting their centers.
Implements lar_cluster3d::IClusterModAlg.
Definition at line 220 of file VoronoiPathFinder_tool.cc.
References buildConvexHull(), buildVoronoiDiagram(), reco::ClusterParameters::daughterList(), fEnableMonitoring, fFillHistograms, fMinTinyClusterSize, fTimeToProcess, fTopEigen10Ratio, fTopEigen20Ratio, fTopEigen21Ratio, fTopNum3DHits, fTopNumEdges, fTopPrimaryLength, reco::PrincipalComponents::getEigenValues(), reco::ClusterParameters::getHitPairListPtr(), and subDivideCluster().
|
private |
Use PCA to try to find path in cluster.
clusterParameters | The given cluster parameters object to try to split |
clusterParametersList | The list of clusters |
Definition at line 572 of file VoronoiPathFinder_tool.cc.
References fFillHistograms, fMinTinyClusterSize, fPCAAlg, fSubCosExtToPCA, fSubCosToPrevPCA, fSubEigen10Ratio, fSubEigen20Ratio, fSubEigen21Ratio, fSubMaxDefect, fSubNum3DHits, fSubNumEdges, fSubPrimaryLength, fSubUsedDefect, reco::ClusterParameters::getBestEdgeList(), reco::ClusterParameters::getConvexHull(), reco::ConvexHull::getConvexHullExtremePoints(), reco::PrincipalComponents::getEigenValues(), reco::PrincipalComponents::getEigenVectors(), reco::ClusterParameters::getFullPCA(), reco::ClusterParameters::getHitPairListPtr(), reco::ClusterHit3D::getPosition(), art::detail::indent(), art::left(), makeCandidateCluster(), lar_cluster3d::PrincipalComponentsAlg::PCAAnalysis_calc3DDocas(), art::right(), and reco::ClusterHit2D::USED.
Referenced by getTimeToExecute(), and ModifyClusters().
|
private |
Tools.
Algorithm to do 3D space point clustering
Definition at line 158 of file VoronoiPathFinder_tool.cc.
Referenced by configure().
|
private |
FHICL parameters.
Definition at line 127 of file VoronoiPathFinder_tool.cc.
Referenced by configure(), and ModifyClusters().
|
private |
Histogram definitions.
Definition at line 134 of file VoronoiPathFinder_tool.cc.
Referenced by breakIntoTinyBits(), initializeHistograms(), ModifyClusters(), and subDivideCluster().
|
private |
Minimum size for a "tiny" cluster.
Definition at line 128 of file VoronoiPathFinder_tool.cc.
Referenced by breakIntoTinyBits(), configure(), ModifyClusters(), and subDivideCluster().
|
private |
Definition at line 159 of file VoronoiPathFinder_tool.cc.
Referenced by breakIntoTinyBits(), makeCandidateCluster(), and subDivideCluster().
|
private |
Definition at line 150 of file VoronoiPathFinder_tool.cc.
Referenced by initializeHistograms(), and subDivideCluster().
|
private |
Definition at line 149 of file VoronoiPathFinder_tool.cc.
Referenced by breakIntoTinyBits(), initializeHistograms(), and subDivideCluster().
|
private |
Definition at line 147 of file VoronoiPathFinder_tool.cc.
Referenced by breakIntoTinyBits(), initializeHistograms(), and subDivideCluster().
|
private |
Definition at line 146 of file VoronoiPathFinder_tool.cc.
Referenced by breakIntoTinyBits(), initializeHistograms(), and subDivideCluster().
|
private |
Definition at line 145 of file VoronoiPathFinder_tool.cc.
Referenced by breakIntoTinyBits(), initializeHistograms(), and subDivideCluster().
|
private |
Definition at line 151 of file VoronoiPathFinder_tool.cc.
Referenced by initializeHistograms(), and subDivideCluster().
|
private |
Definition at line 143 of file VoronoiPathFinder_tool.cc.
Referenced by breakIntoTinyBits(), initializeHistograms(), and subDivideCluster().
|
private |
Definition at line 144 of file VoronoiPathFinder_tool.cc.
Referenced by breakIntoTinyBits(), initializeHistograms(), and subDivideCluster().
|
private |
Definition at line 148 of file VoronoiPathFinder_tool.cc.
Referenced by breakIntoTinyBits(), initializeHistograms(), and subDivideCluster().
|
private |
Definition at line 152 of file VoronoiPathFinder_tool.cc.
Referenced by initializeHistograms(), and subDivideCluster().
|
mutableprivate |
Definition at line 129 of file VoronoiPathFinder_tool.cc.
Referenced by configure(), getTimeToExecute(), and ModifyClusters().
|
private |
Definition at line 140 of file VoronoiPathFinder_tool.cc.
Referenced by initializeHistograms(), and ModifyClusters().
|
private |
Definition at line 139 of file VoronoiPathFinder_tool.cc.
Referenced by initializeHistograms(), and ModifyClusters().
|
private |
Definition at line 138 of file VoronoiPathFinder_tool.cc.
Referenced by initializeHistograms(), and ModifyClusters().
|
private |
Definition at line 136 of file VoronoiPathFinder_tool.cc.
Referenced by initializeHistograms(), and ModifyClusters().
|
private |
Definition at line 137 of file VoronoiPathFinder_tool.cc.
Referenced by initializeHistograms(), and ModifyClusters().
|
private |
Definition at line 141 of file VoronoiPathFinder_tool.cc.
Referenced by initializeHistograms(), and ModifyClusters().