LArSoft
v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
|
Public Member Functions | |
ClusterPathFinder (const fhicl::ParameterSet &) | |
Constructor. More... | |
~ClusterPathFinder () | |
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::ClusterParametersList::iterator positionItr, reco::ClusterParametersList &outputClusterList, int level=0) const |
Use PCA to try to find path in cluster. More... | |
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, int level=0) const |
Private Attributes | |
bool | m_enableMonitoring |
Data members to follow. More... | |
size_t | m_minTinyClusterSize |
Minimum size for a "tiny" cluster. More... | |
float | m_timeToProcess |
geo::Geometry * | m_geometry |
std::unique_ptr< lar_cluster3d::IClusterAlg > | m_clusterAlg |
Algorithm to do 3D space point clustering. More... | |
PrincipalComponentsAlg | m_pcaAlg |
Definition at line 45 of file ClusterPathFinder_tool.cc.
|
private |
Definition at line 106 of file ClusterPathFinder_tool.cc.
|
private |
Definition at line 105 of file ClusterPathFinder_tool.cc.
|
private |
Definition at line 103 of file ClusterPathFinder_tool.cc.
|
private |
Definition at line 104 of file ClusterPathFinder_tool.cc.
|
explicit |
Constructor.
pset |
Definition at line 123 of file ClusterPathFinder_tool.cc.
References configure().
lar_cluster3d::ClusterPathFinder::~ClusterPathFinder | ( | ) |
|
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 239 of file ClusterPathFinder_tool.cc.
References buildConvexHull(), reco::PrincipalComponents::getAveHitDoca(), reco::PrincipalComponents::getAvePosition(), reco::ClusterParameters::getBestEdgeList(), reco::PrincipalComponents::getEigenValues(), reco::PrincipalComponents::getEigenVectors(), reco::ClusterParameters::getFullPCA(), reco::ClusterParameters::getHitPairListPtr(), reco::PrincipalComponents::getNumHitsUsed(), reco::ClusterParameters::getSkeletonPCA(), reco::PrincipalComponents::getSvdOK(), art::detail::indent(), art::left(), m_minTinyClusterSize, m_pcaAlg, lar_cluster3d::PrincipalComponentsAlg::PCAAnalysis_3D(), lar_cluster3d::PrincipalComponentsAlg::PCAAnalysis_calc3DDocas(), art::right(), reco::ClusterParameters::UpdateParameters(), and reco::ClusterHit2D::USED.
Referenced by getTimeToExecute(), and ModifyClusters().
|
private |
Definition at line 452 of file ClusterPathFinder_tool.cc.
References reco::PrincipalComponents::getAvePosition(), reco::ClusterParameters::getBestEdgeList(), lar_cluster3d::ConvexHull::getConvexHull(), lar_cluster3d::ConvexHull::getConvexHullArea(), reco::PrincipalComponents::getEigenVectors(), reco::ClusterParameters::getFullPCA(), reco::ClusterParameters::getHit3DToEdgeMap(), reco::ClusterParameters::getHitPairListPtr(), reco::ClusterHit3D::getPosition(), art::detail::indent(), art::left(), max, and art::right().
Referenced by breakIntoTinyBits().
|
private |
Definition at line 596 of file ClusterPathFinder_tool.cc.
References 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 714 of file ClusterPathFinder_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 137 of file ClusterPathFinder_tool.cc.
References fhicl::ParameterSet::get(), m_clusterAlg, m_enableMonitoring, m_geometry, m_minTinyClusterSize, and m_timeToProcess.
Referenced by ClusterPathFinder().
|
inlineoverridevirtual |
If monitoring, recover the time to execute a particular function.
Implements lar_cluster3d::IClusterModAlg.
Definition at line 81 of file ClusterPathFinder_tool.cc.
References breakIntoTinyBits(), closestApproach(), and m_timeToProcess.
|
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 152 of file ClusterPathFinder_tool.cc.
|
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 157 of file ClusterPathFinder_tool.cc.
References breakIntoTinyBits(), buildVoronoiDiagram(), reco::ClusterParameters::daughterList(), reco::ClusterParameters::getHitPairListPtr(), m_clusterAlg, m_enableMonitoring, m_minTinyClusterSize, and m_timeToProcess.
|
private |
Algorithm to do 3D space point clustering.
Definition at line 119 of file ClusterPathFinder_tool.cc.
Referenced by configure(), and ModifyClusters().
|
private |
Data members to follow.
Definition at line 113 of file ClusterPathFinder_tool.cc.
Referenced by configure(), and ModifyClusters().
|
private |
Definition at line 117 of file ClusterPathFinder_tool.cc.
Referenced by configure().
|
private |
Minimum size for a "tiny" cluster.
Definition at line 114 of file ClusterPathFinder_tool.cc.
Referenced by breakIntoTinyBits(), configure(), and ModifyClusters().
|
private |
Definition at line 120 of file ClusterPathFinder_tool.cc.
Referenced by breakIntoTinyBits().
|
mutableprivate |
Definition at line 115 of file ClusterPathFinder_tool.cc.
Referenced by configure(), getTimeToExecute(), and ModifyClusters().