LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
TracksCrossingGapsTool class. More...
#include "TracksCrossingGapsTool.h"
Public Types | |
typedef ThreeViewTransverseTracksAlgorithm::MatchingType::TensorType | TensorType |
typedef std::vector< TensorType::ElementList::const_iterator > | IteratorList |
Public Member Functions | |
TracksCrossingGapsTool () | |
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, ProtoParticleVector &protoParticleVector) const |
Find tracks crossing gaps, with unambiguous connection but poor overlap due to gaps. More... | |
void | SelectElements (ThreeViewTransverseTracksAlgorithm *const pAlgorithm, const TensorType::ElementList &elementList, const pandora::ClusterSet &usedClusters, IteratorList &iteratorList) const |
Select a list of track-like elements crossing a gap in one or more views from a set of connected tensor elements. More... | |
void | CalculateEffectiveOverlapFractions (ThreeViewTransverseTracksAlgorithm *const pAlgorithm, const TensorType::Element &element, float &xOverlapFractionU, float &xOverlapFractionV, float &xOverlapFractionW) const |
Calculate the effective overlap fractions given a set of clusters, taking gaps into account. More... | |
void | CalculateEffectiveOverlapSpan (ThreeViewTransverseTracksAlgorithm *const pAlgorithm, const TensorType::Element &element, float &xMinEffU, float &xMaxEffU, float &xMinEffV, float &xMaxEffV, float &xMinEffW, float &xMaxEffW) const |
Calculate the effective overlap span given a set of clusters, taking gaps into account. More... | |
bool | PassesGapChecks (ThreeViewTransverseTracksAlgorithm *const pAlgorithm, const TensorType::Element &element, const float xSample, bool &gapInU, bool &gapInV, bool &gapInW) const |
Check whether there is any gap in the three U-V-W clusters combination. More... | |
bool | CheckXPositionInGap (const float xSample, const TwoDSlidingFitResult &slidingFitResult1, const TwoDSlidingFitResult &slidingFitResult2, const TwoDSlidingFitResult &slidingFitResult3, bool &gapIn1, bool &gapIn2, bool &gapIn3) const |
Check individually each cluster where a gap might be present. More... | |
bool | IsEndOfCluster (const float xSample, const TwoDSlidingFitResult &slidingFitResult) const |
Check whether a x position is at the end of the cluster. 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 (in each view) for particle creation. More... | |
unsigned int | m_minMatchedSamplingPointRatio |
The min ratio between 1st and 2nd highest msps for simple ambiguity resolution. More... | |
float | m_maxGapTolerance |
The max gap tolerance. More... | |
float | m_sampleStepSize |
The sampling step size used in association checks, units cm. More... | |
unsigned int | m_maxAngleRatio |
The max ratio allowed in the angle. More... | |
TracksCrossingGapsTool class.
Definition at line 20 of file TracksCrossingGapsTool.h.
|
inherited |
Definition at line 131 of file ThreeViewTransverseTracksAlgorithm.h.
|
inherited |
Definition at line 130 of file ThreeViewTransverseTracksAlgorithm.h.
lar_content::TracksCrossingGapsTool::TracksCrossingGapsTool | ( | ) |
Default constructor.
Definition at line 22 of file TracksCrossingGapsTool.cc.
|
private |
Calculate the effective overlap fractions given a set of clusters, taking gaps into account.
pAlgorithm | address of the calling algorithm |
element | the connected tensor element |
xOverlapFractionU | to receive the effective overlap fraction in the u view |
xOverlapFractionV | to receive the effective overlap fraction in the v view |
xOverlapFractionW | to receive the effective overlap fraction in the w view |
Definition at line 129 of file TracksCrossingGapsTool.cc.
References CalculateEffectiveOverlapSpan(), and f.
Referenced by SelectElements().
|
private |
Calculate the effective overlap span given a set of clusters, taking gaps into account.
pAlgorithm | address of the calling algorithm |
element | the connected tensor element |
xMinEffU | to receive the effective min u coordinate |
xMaxEffU | to receive the effective max u coordinate |
xMinEffV | to receive the effective min v coordinate |
xMaxEffV | to receive the effective max v coordinate |
xMinEffW | to receive the effective min w coordinate |
xMaxEffW | to receive the effective max w coordinate |
Definition at line 150 of file TracksCrossingGapsTool.cc.
References f, m_sampleStepSize, and PassesGapChecks().
Referenced by CalculateEffectiveOverlapFractions().
|
private |
Check individually each cluster where a gap might be present.
xSample,the | x coordinate we are checking |
slidingFitResult1 | the sliding fit result for the cluster in view 1 |
slidingFitResult2 | the sliding fit result for the cluster in view 2 |
slidingFitResult3 | the sliding fit result for the cluster in view 3 |
gapIn1 | whether there is a gap in view 1 |
gapIn2 | whether there is a gap in view 2 |
gapIn3 | whether there is a gap in view 3 |
Definition at line 244 of file TracksCrossingGapsTool.cc.
References f, lar_content::TwoDSlidingFitResult::GetCluster(), lar_content::LArClusterHelper::GetClusterHitType(), lar_content::TwoDSlidingFitResult::GetGlobalFitPositionAtX(), IsEndOfCluster(), lar_content::LArGeometryHelper::IsInGap(), lar_content::LArGeometryHelper::IsXSamplingPointInGap(), m_maxGapTolerance, m_sampleStepSize, and lar_content::LArGeometryHelper::MergeTwoPositions().
Referenced by PassesGapChecks().
|
private |
Find tracks crossing gaps, with unambiguous connection but poor overlap due to gaps.
pAlgorithm | address of the calling algorithm |
overlapTensor | the overlap tensor |
protoParticleVector | to receive the list of proto particles |
Definition at line 52 of file TracksCrossingGapsTool.cc.
References lar_content::OverlapTensor< T >::GetConnectedElements(), lar_content::OverlapTensor< T >::GetSortedKeyClusters(), lar_content::LongTracksTool::HasLongDirectConnections(), lar_content::LongTracksTool::IsLongerThanDirectConnections(), lar_content::ProtoParticle::m_clusterList, m_minMatchedSamplingPointRatio, and SelectElements().
Referenced by Run().
|
private |
Check whether a x position is at the end of the cluster.
xSample,the | x coordinate of the point tested |
pCluster | the cluster we are interrogating for its extreme coordinates |
Definition at line 299 of file TracksCrossingGapsTool.cc.
References lar_content::TwoDSlidingFitResult::GetGlobalMaxLayerPosition(), lar_content::TwoDSlidingFitResult::GetGlobalMinLayerPosition(), and lar_content::TwoDSlidingFitResult::GetLayerPitch().
Referenced by CheckXPositionInGap(), and PassesGapChecks().
|
private |
Check whether there is any gap in the three U-V-W clusters combination.
pAlgorithm | address of the calling algorithm |
element | the connected tensor element |
xSample | the x sampling position |
gapInU | to receive whether there is a gap in the u view |
gapInV | to receive whether there is a gap in the v view |
gapInW | to receive whether there is a gap in the w view |
Definition at line 207 of file TracksCrossingGapsTool.cc.
References CheckXPositionInGap(), f, lar_content::NViewTrackMatchingAlgorithm< T >::GetCachedSlidingFitResult(), lar_content::TwoDSlidingFitResult::GetGlobalFitPositionAtX(), and IsEndOfCluster().
Referenced by CalculateEffectiveOverlapSpan().
|
private |
Definition at line 307 of file TracksCrossingGapsTool.cc.
References m_maxAngleRatio, m_maxGapTolerance, m_minMatchedFraction, m_minMatchedSamplingPointRatio, m_minMatchedSamplingPoints, m_minXOverlapFraction, and m_sampleStepSize.
|
virtual |
Run the algorithm tool.
pAlgorithm | address of the calling algorithm |
overlapTensor | the overlap tensor |
Implements lar_content::TransverseTensorTool.
Definition at line 35 of file TracksCrossingGapsTool.cc.
References lar_content::MatchingBaseAlgorithm::CreateThreeDParticles(), and FindTracks().
|
private |
Select a list of track-like elements crossing a gap in one or more views from a set of connected tensor elements.
pAlgorithm | address of the calling algorithm |
elementList | the full list of connected tensor elements |
usedClusters | the set 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 TracksCrossingGapsTool.cc.
References CalculateEffectiveOverlapFractions(), f, m_minMatchedFraction, m_minMatchedSamplingPoints, and m_minXOverlapFraction.
Referenced by FindTracks().
|
private |
The max ratio allowed in the angle.
Definition at line 127 of file TracksCrossingGapsTool.h.
Referenced by ReadSettings().
|
private |
The max gap tolerance.
Definition at line 125 of file TracksCrossingGapsTool.h.
Referenced by CheckXPositionInGap(), and ReadSettings().
|
private |
The min matched sampling point fraction for particle creation.
Definition at line 121 of file TracksCrossingGapsTool.h.
Referenced by ReadSettings(), and SelectElements().
|
private |
The min ratio between 1st and 2nd highest msps for simple ambiguity resolution.
Definition at line 124 of file TracksCrossingGapsTool.h.
Referenced by FindTracks(), and ReadSettings().
|
private |
The min number of matched sampling points for particle creation.
Definition at line 122 of file TracksCrossingGapsTool.h.
Referenced by ReadSettings(), and SelectElements().
|
private |
The min x overlap fraction (in each view) for particle creation.
Definition at line 123 of file TracksCrossingGapsTool.h.
Referenced by ReadSettings(), and SelectElements().
|
private |
The sampling step size used in association checks, units cm.
Definition at line 126 of file TracksCrossingGapsTool.h.
Referenced by CalculateEffectiveOverlapSpan(), CheckXPositionInGap(), and ReadSettings().