LArSoft
v06_85_00
Liquid Argon Software toolkit - http://larsoft.org/
|
TracksCrossingGapsTool class. More...
#include "TracksCrossingGapsTool.h"
Public Types | |
typedef ThreeDTransverseTracksAlgorithm::TensorType | TensorType |
typedef std::vector< TensorType::ElementList::const_iterator > | IteratorList |
Public Member Functions | |
TracksCrossingGapsTool () | |
Default constructor. More... | |
bool | Run (ThreeDTransverseTracksAlgorithm *const pAlgorithm, TensorType &overlapTensor) |
Run the algorithm tool. More... | |
Private Member Functions | |
pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
void | FindTracks (ThreeDTransverseTracksAlgorithm *const pAlgorithm, const TensorType &overlapTensor, ProtoParticleVector &protoParticleVector) const |
Find tracks crossing gaps, with unambiguous connection but poor overlap due to gaps. More... | |
void | SelectElements (ThreeDTransverseTracksAlgorithm *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 (ThreeDTransverseTracksAlgorithm *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 (ThreeDTransverseTracksAlgorithm *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 (ThreeDTransverseTracksAlgorithm *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 128 of file ThreeDTransverseTracksAlgorithm.h.
|
inherited |
Definition at line 127 of file ThreeDTransverseTracksAlgorithm.h.
lar_content::TracksCrossingGapsTool::TracksCrossingGapsTool | ( | ) |
Default constructor.
Definition at line 23 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(), f, max, and min.
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, max, min, 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 232 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 53 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_clusterListU, lar_content::ProtoParticle::m_clusterListV, lar_content::ProtoParticle::m_clusterListW, 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 287 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 201 of file TracksCrossingGapsTool.cc.
References CheckXPositionInGap(), f, lar_content::ThreeDTracksBaseAlgorithm< T >::GetCachedSlidingFitResult(), lar_content::TwoDSlidingFitResult::GetGlobalFitPositionAtX(), and IsEndOfCluster().
Referenced by CalculateEffectiveOverlapSpan().
|
private |
Definition at line 295 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 36 of file TracksCrossingGapsTool.cc.
References lar_content::ThreeDBaseAlgorithm< T >::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().