LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
TrackSplittingTool class. More...
#include "TrackSplittingTool.h"
Classes | |
class | Particle |
Particle class. More... | |
Public Types | |
typedef ThreeViewTransverseTracksAlgorithm::MatchingType::TensorType | TensorType |
typedef std::vector< TensorType::ElementList::const_iterator > | IteratorList |
Public Member Functions | |
TrackSplittingTool () | |
Default constructor. More... | |
bool | Run (ThreeViewTransverseTracksAlgorithm *const pAlgorithm, TensorType &overlapTensor) |
Run the algorithm tool. More... | |
Private Member Functions | |
pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
void | FindTracks (ThreeViewTransverseTracksAlgorithm *const pAlgorithm, const TensorType &overlapTensor, SplitPositionMap &splitPositionMap) const |
Find remaining tracks, hidden by spurious track segments (and maybe other ambiguities) in the tensor. More... | |
void | SelectElements (const TensorType::ElementList &elementList, const pandora::ClusterSet &usedClusters, IteratorList &iteratorList) const |
Select a list of the relevant elements from a set of connected tensor elements. More... | |
bool | PassesChecks (ThreeViewTransverseTracksAlgorithm *const pAlgorithm, const TensorType::Element &element, const bool isMinX, pandora::ClusterSet &usedClusters, SplitPositionMap &splitPositionMap) const |
Whether a provided tensor element can be used to construct a pfo. More... | |
bool | CheckSplitPosition (const pandora::CartesianVector &splitPosition, const float splitX, const TwoDSlidingFitResult &longFitResult) const |
Check a candidate split position for consistency with the associated track cluster sliding linear fit. More... | |
Private Attributes | |
float | m_minMatchedFraction |
The min matched sampling point fraction for particle creation. More... | |
unsigned int | m_minMatchedSamplingPoints |
The min number of matched sampling points for particle creation. More... | |
float | m_minXOverlapFraction |
The min x overlap fraction (between long clusters and short cluster vs. shared overlap) More... | |
unsigned int | m_minMatchedSamplingPointRatio |
The min ratio between 1st and 2nd highest msps for simple ambiguity resolution. More... | |
float | m_maxShortDeltaXFraction |
Max x distance between ends of two short clusters (measured as fraction of long cluster x length) More... | |
float | m_maxAbsoluteShortDeltaX |
Max x distance between ends of two short clusters (measured as an absolute distance) More... | |
float | m_minLongDeltaXFraction |
Min x distance between ends of short and long clusters (measured as fraction of long cluster x length) More... | |
float | m_minAbsoluteLongDeltaX |
Min x distance between ends of short and long clusters (measured as an absolute distance) More... | |
float | m_minSplitToVertexProjection |
Min projected distance between split position and either inner or outer vertex of long cluster. More... | |
float | m_maxSplitVsFitPositionDistance |
Max allowed distance between split position and sliding linear fit position at the split x coordinate. More... | |
TrackSplittingTool class.
Definition at line 19 of file TrackSplittingTool.h.
|
inherited |
Definition at line 131 of file ThreeViewTransverseTracksAlgorithm.h.
|
inherited |
Definition at line 130 of file ThreeViewTransverseTracksAlgorithm.h.
lar_content::TrackSplittingTool::TrackSplittingTool | ( | ) |
Default constructor.
Definition at line 23 of file TrackSplittingTool.cc.
|
private |
Check a candidate split position for consistency with the associated track cluster sliding linear fit.
splitPosition | the candidate split position |
splitX | the split x coordinate |
longFitResult | the sliding linear fit for the long cluster |
Definition at line 211 of file TrackSplittingTool.cc.
References lar_content::TwoDSlidingFitResult::GetGlobalFitPositionListAtX(), and m_maxSplitVsFitPositionDistance.
Referenced by PassesChecks().
|
private |
Find remaining tracks, hidden by spurious track segments (and maybe other ambiguities) in the tensor.
pAlgorithm | address of the calling algorithm |
overlapTensor | the overlap tensor |
splitPositionMap | to receive the split position map |
Definition at line 53 of file TrackSplittingTool.cc.
References lar_content::OverlapTensor< T >::GetConnectedElements(), lar_content::OverlapTensor< T >::GetSortedKeyClusters(), lar_content::LongTracksTool::HasLongDirectConnections(), lar_content::LongTracksTool::IsLongerThanDirectConnections(), m_minMatchedSamplingPointRatio, PassesChecks(), and SelectElements().
Referenced by Run().
|
private |
Whether a provided tensor element can be used to construct a pfo.
pAlgorithm | address of the calling algorithm |
element | the tensor element |
isMinX | whether to look for track splits at min or max x coordinate |
usedClusters | the list of used clusters |
splitPositionMap | to receive the split position map |
Definition at line 133 of file TrackSplittingTool.cc.
References CheckSplitPosition(), f, lar_content::NViewTrackMatchingAlgorithm< T >::GetCachedSlidingFitResult(), lar_content::LArClusterHelper::GetClusterHitType(), lar_content::LArPointingCluster::GetInnerVertex(), lar_content::LArPointingCluster::Vertex::GetPosition(), lar_content::TrackSplittingTool::Particle::m_longMaxX, lar_content::TrackSplittingTool::Particle::m_longMinX, m_maxAbsoluteShortDeltaX, m_maxShortDeltaXFraction, m_minAbsoluteLongDeltaX, m_minLongDeltaXFraction, m_minSplitToVertexProjection, lar_content::TrackSplittingTool::Particle::m_pCluster1, lar_content::TrackSplittingTool::Particle::m_pCluster2, lar_content::TrackSplittingTool::Particle::m_pLongCluster, lar_content::TrackSplittingTool::Particle::m_short1MaxX, lar_content::TrackSplittingTool::Particle::m_short1MinX, lar_content::TrackSplittingTool::Particle::m_short2MaxX, lar_content::TrackSplittingTool::Particle::m_short2MinX, and lar_content::LArGeometryHelper::MergeTwoPositions().
Referenced by FindTracks().
|
private |
Definition at line 261 of file TrackSplittingTool.cc.
References m_maxAbsoluteShortDeltaX, m_maxShortDeltaXFraction, m_maxSplitVsFitPositionDistance, m_minAbsoluteLongDeltaX, m_minLongDeltaXFraction, m_minMatchedFraction, m_minMatchedSamplingPointRatio, m_minMatchedSamplingPoints, m_minSplitToVertexProjection, and m_minXOverlapFraction.
|
virtual |
Run the algorithm tool.
pAlgorithm | address of the calling algorithm |
overlapTensor | the overlap tensor |
Implements lar_content::TransverseTensorTool.
Definition at line 39 of file TrackSplittingTool.cc.
References FindTracks(), and lar_content::NViewTrackMatchingAlgorithm< T >::MakeClusterSplits().
|
private |
Select a list of the relevant elements from a set of connected tensor elements.
elementList | the full list of connected tensor elements |
usedClusters | the list of clusters already marked as to be added to a pfo |
iteratorList | to receive a list of iterators to long track-like elements |
Definition at line 95 of file TrackSplittingTool.cc.
References m_minMatchedFraction, m_minMatchedSamplingPoints, and m_minXOverlapFraction.
Referenced by FindTracks().
|
private |
Max x distance between ends of two short clusters (measured as an absolute distance)
Definition at line 101 of file TrackSplittingTool.h.
Referenced by PassesChecks(), and ReadSettings().
|
private |
Max x distance between ends of two short clusters (measured as fraction of long cluster x length)
Definition at line 100 of file TrackSplittingTool.h.
Referenced by PassesChecks(), and ReadSettings().
|
private |
Max allowed distance between split position and sliding linear fit position at the split x coordinate.
Definition at line 105 of file TrackSplittingTool.h.
Referenced by CheckSplitPosition(), and ReadSettings().
|
private |
Min x distance between ends of short and long clusters (measured as an absolute distance)
Definition at line 103 of file TrackSplittingTool.h.
Referenced by PassesChecks(), and ReadSettings().
|
private |
Min x distance between ends of short and long clusters (measured as fraction of long cluster x length)
Definition at line 102 of file TrackSplittingTool.h.
Referenced by PassesChecks(), and ReadSettings().
|
private |
The min matched sampling point fraction for particle creation.
Definition at line 95 of file TrackSplittingTool.h.
Referenced by ReadSettings(), and SelectElements().
|
private |
The min ratio between 1st and 2nd highest msps for simple ambiguity resolution.
Definition at line 98 of file TrackSplittingTool.h.
Referenced by FindTracks(), and ReadSettings().
|
private |
The min number of matched sampling points for particle creation.
Definition at line 96 of file TrackSplittingTool.h.
Referenced by ReadSettings(), and SelectElements().
|
private |
Min projected distance between split position and either inner or outer vertex of long cluster.
Definition at line 104 of file TrackSplittingTool.h.
Referenced by PassesChecks(), and ReadSettings().
|
private |
The min x overlap fraction (between long clusters and short cluster vs. shared overlap)
Definition at line 97 of file TrackSplittingTool.h.
Referenced by ReadSettings(), and SelectElements().