LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
Public Member Functions | |
ConvexHullPathFinder (const fhicl::ParameterSet &) | |
Constructor. More... | |
~ConvexHullPathFinder () | |
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 | HitOrderTuple = std::tuple< float, float, reco::ProjectedPoint > |
using | HitOrderTupleList = std::list< HitOrderTuple > |
using | MinMaxPoints = std::pair< reco::ProjectedPoint, reco::ProjectedPoint > |
using | MinMaxPointPair = std::pair< MinMaxPoints, MinMaxPoints > |
using | KinkTuple = std::tuple< int, reco::ConvexHullKinkTuple, HitOrderTupleList, HitOrderTupleList > |
using | KinkTupleVec = std::vector< KinkTuple > |
Definition at line 39 of file ConvexHullPathFinder_tool.cc.
|
private |
Definition at line 89 of file ConvexHullPathFinder_tool.cc.
|
private |
Definition at line 90 of file ConvexHullPathFinder_tool.cc.
|
private |
Definition at line 134 of file ConvexHullPathFinder_tool.cc.
|
private |
Definition at line 135 of file ConvexHullPathFinder_tool.cc.
|
private |
Definition at line 129 of file ConvexHullPathFinder_tool.cc.
|
private |
Definition at line 128 of file ConvexHullPathFinder_tool.cc.
|
explicit |
Constructor.
pset |
Definition at line 193 of file ConvexHullPathFinder_tool.cc.
References configure().
lar_cluster3d::ConvexHullPathFinder::~ConvexHullPathFinder | ( | ) |
|
private |
Definition at line 1020 of file ConvexHullPathFinder_tool.cc.
References util::abs(), fMinGapSize, fPCAAlg, reco::ClusterParameters::getFullPCA(), reco::ClusterParameters::getHitPairListPtr(), art::left(), makeCandidateCluster(), lar_cluster3d::PrincipalComponentsAlg::PCAAnalysis_calc3DDocas(), and art::right().
Referenced by subDivideCluster().
|
private |
Definition at line 644 of file ConvexHullPathFinder_tool.cc.
References fFillHistograms, fillConvexHullHists(), fMinTinyClusterSize, reco::ClusterParameters::getConvexHull(), reco::ConvexHull::getConvexHullKinkPoints(), reco::ClusterParameters::getFullPCA(), reco::ClusterParameters::getHitPairListPtr(), art::left(), makeCandidateCluster(), and art::right().
Referenced by subDivideCluster().
|
private |
Definition at line 712 of file ConvexHullPathFinder_tool.cc.
References fFillHistograms, fillConvexHullHists(), fMinTinyClusterSize, reco::ClusterParameters::getConvexHull(), reco::ConvexHull::getConvexHullKinkPoints(), reco::ClusterParameters::getFullPCA(), reco::ConvexHull::getProjectedPointList(), art::left(), makeCandidateCluster(), orderHitsAlongEdge(), pruneHitOrderTupleLists(), and art::right().
|
private |
Definition at line 873 of file ConvexHullPathFinder_tool.cc.
References fFillHistograms, fMinTinyClusterSize, fPCAAlg, fSubMaxDefect, fSubUsedDefect, reco::ClusterParameters::getBestEdgeList(), reco::ClusterParameters::getConvexHull(), reco::ConvexHull::getConvexHullExtremePoints(), reco::ClusterParameters::getFullPCA(), reco::ClusterParameters::getHitPairListPtr(), reco::ClusterHit3D::getPosition(), art::left(), makeCandidateCluster(), lar_cluster3d::PrincipalComponentsAlg::PCAAnalysis_calc3DDocas(), and art::right().
Referenced by subDivideCluster().
|
private |
Definition at line 980 of file ConvexHullPathFinder_tool.cc.
References fPCAAlg, reco::ClusterParameters::getFullPCA(), reco::ClusterParameters::getHitPairListPtr(), art::left(), makeCandidateCluster(), lar_cluster3d::PrincipalComponentsAlg::PCAAnalysis_calc3DDocas(), and art::right().
Referenced by subDivideCluster().
|
private |
Definition at line 1083 of file ConvexHullPathFinder_tool.cc.
References util::abs(), fConvexHullKinkAngle, fConvexHullMinSep, reco::PrincipalComponents::getAvePosition(), lar_cluster3d::ConvexHull::getConvexHull(), reco::ClusterParameters::getConvexHull(), lar_cluster3d::ConvexHull::getConvexHullArea(), reco::ConvexHull::getConvexHullEdgeList(), reco::ConvexHull::getConvexHullEdgeMap(), reco::ConvexHull::getConvexHullExtremePoints(), reco::ConvexHull::getConvexHullKinkPoints(), reco::ConvexHull::getConvexHullPointList(), 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 completeCandidateCluster(), and ModifyClusters().
|
private |
Definition at line 1267 of file ConvexHullPathFinder_tool.cc.
References d, DEFINE_ART_CLASS_TOOL, den, and e.
|
private |
Definition at line 608 of file ConvexHullPathFinder_tool.cc.
References buildConvexHull(), reco::PrincipalComponents::flipAxis(), fPCAAlg, reco::PrincipalComponents::getEigenVectors(), reco::ClusterParameters::getFullPCA(), reco::ClusterParameters::getHitPairListPtr(), reco::ClusterParameters::getSkeletonPCA(), reco::PrincipalComponents::getSvdOK(), and lar_cluster3d::PrincipalComponentsAlg::PCAAnalysis_3D().
Referenced by makeCandidateCluster().
|
pure virtualinherited |
Interface for configuring the particular algorithm tool.
ParameterSet | The input set of parameters for configuration |
|
override |
Definition at line 205 of file ConvexHullPathFinder_tool.cc.
References fClusterAlg, fConvexHullKinkAngle, fConvexHullMinSep, fEnableMonitoring, fMinEigen0To1Ratio, fMinGapSize, fMinTinyClusterSize, fTimeToProcess, and fhicl::ParameterSet::get().
Referenced by ConvexHullPathFinder().
|
private |
Definition at line 1215 of file ConvexHullPathFinder_tool.cc.
References fConvexHullMinSep, fSubConvexCosEdge, fSubConvexEdgeLen, fTopConvexCosEdge, fTopConvexEdgeLen, reco::ClusterParameters::getConvexHull(), and reco::ConvexHull::getConvexHullPointList().
Referenced by breakClusterByKinks(), breakClusterByKinksTrial(), and ModifyClusters().
|
inlineoverridevirtual |
If monitoring, recover the time to execute a particular function.
Implements lar_cluster3d::IClusterModAlg.
Definition at line 74 of file ConvexHullPathFinder_tool.cc.
References fTimeToProcess, 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 221 of file ConvexHullPathFinder_tool.cc.
References dir, fFillHistograms, fSubConvexCosEdge, fSubConvexEdgeLen, fSubCosExtToPCA, fSubCosToPrevPCA, fSubEigen10Ratio, fSubEigen20Ratio, fSubEigen21Ratio, fSubMaxDefect, fSubNum3DHits, fSubNumEdges, fSubPrimaryLength, fSubUsedDefect, fTopConvexCosEdge, fTopConvexEdgeLen, fTopEigen10Ratio, fTopEigen20Ratio, fTopEigen21Ratio, fTopExtremeSep, fTopNum3DHits, fTopNumEdges, and fTopPrimaryLength.
|
private |
Definition at line 521 of file ConvexHullPathFinder_tool.cc.
References util::abs(), completeCandidateCluster(), reco::ClusterParameters::getConvexHull(), reco::ConvexHull::getConvexHullEdgeList(), reco::PrincipalComponents::getEigenValues(), reco::PrincipalComponents::getEigenVectors(), reco::ClusterParameters::getFullPCA(), reco::ClusterParameters::getHitPairListPtr(), and art::detail::indent().
Referenced by breakClusterAtBigGap(), breakClusterByKinks(), breakClusterByKinksTrial(), breakClusterByMaxDefect(), and breakClusterInHalf().
|
private |
Definition at line 566 of file ConvexHullPathFinder_tool.cc.
References util::abs(), completeCandidateCluster(), reco::ClusterParameters::getBestEdgeList(), reco::PrincipalComponents::getEigenValues(), reco::PrincipalComponents::getEigenVectors(), reco::ClusterParameters::getFullPCA(), reco::ClusterParameters::getHitPairListPtr(), and art::detail::indent().
|
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 260 of file ConvexHullPathFinder_tool.cc.
References buildConvexHull(), reco::ClusterParameters::daughterList(), fEnableMonitoring, fFillHistograms, fillConvexHullHists(), fMinTinyClusterSize, fTimeToProcess, fTopEigen10Ratio, fTopEigen20Ratio, fTopEigen21Ratio, fTopNum3DHits, fTopNumEdges, fTopPrimaryLength, reco::PrincipalComponents::getEigenValues(), reco::ClusterParameters::getHitPairListPtr(), and subDivideCluster().
|
private |
Definition at line 799 of file ConvexHullPathFinder_tool.cc.
References art::left(), and art::right().
Referenced by breakClusterByKinksTrial().
|
private |
Definition at line 841 of file ConvexHullPathFinder_tool.cc.
Referenced by breakClusterByKinksTrial().
|
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 356 of file ConvexHullPathFinder_tool.cc.
References breakClusterAtBigGap(), breakClusterByKinks(), breakClusterByMaxDefect(), breakClusterInHalf(), fFillHistograms, fMinEigen0To1Ratio, fMinTinyClusterSize, fSubCosExtToPCA, fSubCosToPrevPCA, fSubEigen10Ratio, fSubEigen20Ratio, fSubEigen21Ratio, fSubNum3DHits, fSubNumEdges, fSubPrimaryLength, reco::ClusterParameters::getConvexHull(), reco::ConvexHull::getConvexHullExtremePoints(), reco::PrincipalComponents::getEigenValues(), reco::PrincipalComponents::getEigenVectors(), reco::ClusterParameters::getFullPCA(), reco::ClusterParameters::getHitPairListPtr(), reco::ClusterHit3D::getPosition(), and reco::ClusterHit2D::USED.
Referenced by getTimeToExecute(), and ModifyClusters().
|
private |
Tools.
Algorithm to do 3D space point clustering
Definition at line 189 of file ConvexHullPathFinder_tool.cc.
Referenced by configure().
|
private |
Angle to declare a kink in convex hull calc.
Definition at line 153 of file ConvexHullPathFinder_tool.cc.
Referenced by buildConvexHull(), and configure().
|
private |
Min hit separation to conisder in convex hull.
Definition at line 154 of file ConvexHullPathFinder_tool.cc.
Referenced by buildConvexHull(), configure(), and fillConvexHullHists().
|
private |
FHICL parameters.
Definition at line 149 of file ConvexHullPathFinder_tool.cc.
Referenced by configure(), and ModifyClusters().
|
private |
Histogram definitions.
Definition at line 160 of file ConvexHullPathFinder_tool.cc.
Referenced by breakClusterByKinks(), breakClusterByKinksTrial(), breakClusterByMaxDefect(), initializeHistograms(), ModifyClusters(), and subDivideCluster().
|
private |
Minimum ratio of eigen 0 to 1 to continue breaking.
Definition at line 152 of file ConvexHullPathFinder_tool.cc.
Referenced by configure(), and subDivideCluster().
|
private |
Minimum gap size to break at gaps.
Definition at line 151 of file ConvexHullPathFinder_tool.cc.
Referenced by breakClusterAtBigGap(), and configure().
|
private |
Minimum size for a "tiny" cluster.
Definition at line 150 of file ConvexHullPathFinder_tool.cc.
Referenced by breakClusterByKinks(), breakClusterByKinksTrial(), breakClusterByMaxDefect(), configure(), ModifyClusters(), and subDivideCluster().
|
private |
Definition at line 190 of file ConvexHullPathFinder_tool.cc.
Referenced by breakClusterAtBigGap(), breakClusterByMaxDefect(), breakClusterInHalf(), and completeCandidateCluster().
|
private |
Definition at line 180 of file ConvexHullPathFinder_tool.cc.
Referenced by fillConvexHullHists(), and initializeHistograms().
|
private |
Definition at line 181 of file ConvexHullPathFinder_tool.cc.
Referenced by fillConvexHullHists(), and initializeHistograms().
|
private |
Definition at line 179 of file ConvexHullPathFinder_tool.cc.
Referenced by initializeHistograms(), and subDivideCluster().
|
private |
Definition at line 178 of file ConvexHullPathFinder_tool.cc.
Referenced by initializeHistograms(), and subDivideCluster().
|
private |
Definition at line 176 of file ConvexHullPathFinder_tool.cc.
Referenced by initializeHistograms(), and subDivideCluster().
|
private |
Definition at line 175 of file ConvexHullPathFinder_tool.cc.
Referenced by initializeHistograms(), and subDivideCluster().
|
private |
Definition at line 174 of file ConvexHullPathFinder_tool.cc.
Referenced by initializeHistograms(), and subDivideCluster().
|
private |
Definition at line 182 of file ConvexHullPathFinder_tool.cc.
Referenced by breakClusterByMaxDefect(), and initializeHistograms().
|
private |
Definition at line 172 of file ConvexHullPathFinder_tool.cc.
Referenced by initializeHistograms(), and subDivideCluster().
|
private |
Definition at line 173 of file ConvexHullPathFinder_tool.cc.
Referenced by initializeHistograms(), and subDivideCluster().
|
private |
Definition at line 177 of file ConvexHullPathFinder_tool.cc.
Referenced by initializeHistograms(), and subDivideCluster().
|
private |
Definition at line 183 of file ConvexHullPathFinder_tool.cc.
Referenced by breakClusterByMaxDefect(), and initializeHistograms().
|
mutableprivate |
Definition at line 155 of file ConvexHullPathFinder_tool.cc.
Referenced by configure(), getTimeToExecute(), and ModifyClusters().
|
private |
Definition at line 169 of file ConvexHullPathFinder_tool.cc.
Referenced by fillConvexHullHists(), and initializeHistograms().
|
private |
Definition at line 170 of file ConvexHullPathFinder_tool.cc.
Referenced by fillConvexHullHists(), and initializeHistograms().
|
private |
Definition at line 166 of file ConvexHullPathFinder_tool.cc.
Referenced by initializeHistograms(), and ModifyClusters().
|
private |
Definition at line 165 of file ConvexHullPathFinder_tool.cc.
Referenced by initializeHistograms(), and ModifyClusters().
|
private |
Definition at line 164 of file ConvexHullPathFinder_tool.cc.
Referenced by initializeHistograms(), and ModifyClusters().
|
private |
Definition at line 168 of file ConvexHullPathFinder_tool.cc.
Referenced by initializeHistograms().
|
private |
Definition at line 162 of file ConvexHullPathFinder_tool.cc.
Referenced by initializeHistograms(), and ModifyClusters().
|
private |
Definition at line 163 of file ConvexHullPathFinder_tool.cc.
Referenced by initializeHistograms(), and ModifyClusters().
|
private |
Definition at line 167 of file ConvexHullPathFinder_tool.cc.
Referenced by initializeHistograms(), and ModifyClusters().