![]() |
LArSoft
v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
|
OvershootTracksTool class. More...
#include "OvershootTracksTool.h"
Classes | |
| class | Particle |
| Particle class. More... | |
Public Types | |
| typedef ThreeDTransverseTracksAlgorithm::TensorType | TensorType |
| typedef std::vector< TensorType::ElementList::const_iterator > | IteratorList |
Public Member Functions | |
| OvershootTracksTool () | |
| Default constructor. More... | |
| bool | Run (ThreeDTransverseTracksAlgorithm *const pAlgorithm, TensorType &overlapTensor) |
| Run the algorithm tool. More... | |
Protected Types | |
| typedef std::vector< Modification > | ModificationList |
Protected Member Functions | |
| virtual bool | PassesElementCuts (TensorType::ElementList::const_iterator eIter, const pandora::ClusterSet &usedClusters) const |
| Whether a provided (iterator to a) tensor element passes the selection cuts for overshoot identification. More... | |
| float | GetXSamplingPoint (const pandora::CartesianVector &splitPosition1, const bool isForwardInX, const TwoDSlidingFitResult &fitResult1, const TwoDSlidingFitResult &fitResult2, const TwoDSlidingFitResult &fitResult3) const |
| Get a sampling point in x that is common to sliding linear fit objects in three views. More... | |
Static Protected Member Functions | |
| static bool | IsALowestInX (const LArPointingCluster &pointingClusterA, const LArPointingCluster &pointingClusterB) |
| Whether pointing cluster labelled A extends to lowest x positions (as opposed to that labelled B) More... | |
Protected Attributes | |
| unsigned int | m_nCommonClusters |
| The number of common clusters. More... | |
| bool | m_majorityRulesMode |
| Whether to run in majority rules mode (always split overshoots, always merge undershoots) More... | |
| float | m_minMatchedFraction |
| The min matched sampling point fraction for use as a key tensor element. More... | |
| unsigned int | m_minMatchedSamplingPoints |
| The min number of matched sampling points for use as a key tensor element. More... | |
| float | m_minLongitudinalImpactParameter |
| The min longitudinal impact parameter for connecting accompanying clusters. More... | |
| int | m_nLayersForKinkSearch |
| The number of sliding fit layers to step in the kink search. More... | |
| float | m_additionalXStepForKinkSearch |
| An additional (safety) step to tack-on when choosing x sampling points. More... | |
Private Member Functions | |
| void | GetIteratorListModifications (ThreeDTransverseTracksAlgorithm *const pAlgorithm, const IteratorList &iteratorList, ModificationList &modificationList) const |
| Get modification objects for a specific elements of the tensor, identifying required splits and merges for clusters. More... | |
| pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
| bool | PassesVertexCuts (const LArPointingCluster::Vertex &vertexA, const LArPointingCluster::Vertex &vertexB) const |
| Whether a pair of vertices pass longitudinal projection cuts. More... | |
| void | SetSplitPosition (const LArPointingCluster::Vertex &vertexA1, const LArPointingCluster::Vertex &vertexA2, const LArPointingCluster::Vertex &vertexB1, const LArPointingCluster::Vertex &vertexB2, Particle &particle) const |
| Set split position for a provided particle. More... | |
| bool | IsThreeDKink (ThreeDTransverseTracksAlgorithm *const pAlgorithm, const Particle &particle, const bool isA1LowestInX, const bool isA2LowestInX) const |
| Whether the provided particle is consistent with being a kink, when examined in three dimensions at the split position. More... | |
Private Attributes | |
| bool | m_splitMode |
| Whether to run in cluster splitting mode, as opposed to cluster merging mode. More... | |
| float | m_maxVertexXSeparation |
| The max separation between accompanying clusters vertex x positions to make split. More... | |
| float | m_cosThetaCutForKinkSearch |
| The cos theta cut used for the kink search in three dimensions. More... | |
OvershootTracksTool class.
Definition at line 19 of file OvershootTracksTool.h.
|
inherited |
Definition at line 128 of file ThreeDTransverseTracksAlgorithm.h.
|
protectedinherited |
Definition at line 50 of file ThreeDKinkBaseTool.h.
|
inherited |
Definition at line 127 of file ThreeDTransverseTracksAlgorithm.h.
| lar_content::OvershootTracksTool::OvershootTracksTool | ( | ) |
Default constructor.
Definition at line 22 of file OvershootTracksTool.cc.
|
privatevirtual |
Get modification objects for a specific elements of the tensor, identifying required splits and merges for clusters.
| pAlgorithm | address of the calling algorithm |
| iteratorList | list of iterators to relevant tensor elements |
| modificationList | to be populated with modifications |
Implements lar_content::ThreeDKinkBaseTool.
Definition at line 32 of file OvershootTracksTool.cc.
References lar_content::ThreeDTracksBaseAlgorithm< T >::GetCachedSlidingFitResult(), lar_content::LArPointingClusterHelper::GetClosestVerticesInX(), lar_content::ThreeDKinkBaseTool::IsALowestInX(), IsThreeDKink(), lar_content::ThreeDKinkBaseTool::Modification::m_affectedClusters, lar_content::ThreeDKinkBaseTool::Modification::m_clusterMergeMap, lar_content::ThreeDKinkBaseTool::m_majorityRulesMode, lar_content::OvershootTracksTool::Particle::m_pClusterA1, lar_content::OvershootTracksTool::Particle::m_pClusterA2, lar_content::OvershootTracksTool::Particle::m_pClusterB1, lar_content::OvershootTracksTool::Particle::m_pClusterB2, lar_content::OvershootTracksTool::Particle::m_pCommonCluster, m_splitMode, lar_content::OvershootTracksTool::Particle::m_splitPosition, lar_content::ThreeDKinkBaseTool::Modification::m_splitPositionMap, PassesVertexCuts(), and SetSplitPosition().
|
protectedinherited |
Get a sampling point in x that is common to sliding linear fit objects in three views.
| splitPosition1 | the split position in view 1 |
| isForwardInX | whether to work forwards (or backwards) in x |
| fitResult1 | the sliding fit result in view 1 |
| fitResult2 | the sliding fit result in view 2 |
| fitResult3 | the sliding fit result in view 3 |
Definition at line 59 of file ThreeDKinkBaseTool.cc.
References f, lar_content::TwoDSlidingFitResult::GetGlobalFitPosition(), lar_content::TwoDSlidingFitResult::GetL(), lar_content::TwoDSlidingFitResult::GetLayer(), lar_content::TwoDSlidingFitResult::GetLocalPosition(), lar_content::TwoDSlidingFitResult::GetMaxLayer(), lar_content::TwoDSlidingFitResult::GetMinAndMaxX(), lar_content::TwoDSlidingFitResult::GetMinLayer(), lar_content::ThreeDKinkBaseTool::m_additionalXStepForKinkSearch, lar_content::ThreeDKinkBaseTool::m_nLayersForKinkSearch, max, and min.
Referenced by lar_content::UndershootTracksTool::IsThreeDKink(), and IsThreeDKink().
|
staticprotectedinherited |
Whether pointing cluster labelled A extends to lowest x positions (as opposed to that labelled B)
| pointingClusterA | pointing cluster A |
| pointingClusterB | pointing cluster B |
Definition at line 107 of file ThreeDKinkBaseTool.cc.
References lar_content::LArPointingCluster::GetInnerVertex(), lar_content::LArPointingCluster::GetOuterVertex(), and lar_content::LArPointingCluster::Vertex::GetPosition().
Referenced by lar_content::UndershootTracksTool::GetIteratorListModifications(), and GetIteratorListModifications().
|
private |
Whether the provided particle is consistent with being a kink, when examined in three dimensions at the split position.
| pAlgorithm | the calling algorithm |
| particle | the particle |
| isA1LowestInX | whether cluster associated with tensor element a extends to lowest x positions in view 1 |
| isA2LowestInX | whether cluster associated with tensor element a extends to lowest x positions in view 2 |
Definition at line 158 of file OvershootTracksTool.cc.
References f, lar_content::ThreeDTracksBaseAlgorithm< T >::GetCachedSlidingFitResult(), lar_content::LArClusterHelper::GetClusterHitType(), lar_content::ThreeDKinkBaseTool::GetXSamplingPoint(), m_cosThetaCutForKinkSearch, lar_content::OvershootTracksTool::Particle::m_pClusterA1, lar_content::OvershootTracksTool::Particle::m_pClusterA2, lar_content::OvershootTracksTool::Particle::m_pClusterB1, lar_content::OvershootTracksTool::Particle::m_pClusterB2, lar_content::OvershootTracksTool::Particle::m_pCommonCluster, lar_content::OvershootTracksTool::Particle::m_splitPosition, lar_content::OvershootTracksTool::Particle::m_splitPosition1, lar_content::OvershootTracksTool::Particle::m_splitPosition2, max, and lar_content::LArGeometryHelper::MergeThreePositions3D().
Referenced by GetIteratorListModifications().
|
protectedvirtualinherited |
Whether a provided (iterator to a) tensor element passes the selection cuts for overshoot identification.
| eIter | the iterator to the tensor element |
| usedClusters | the list of used clusters |
Definition at line 43 of file ThreeDKinkBaseTool.cc.
References lar_content::ThreeDKinkBaseTool::m_minMatchedFraction, and lar_content::ThreeDKinkBaseTool::m_minMatchedSamplingPoints.
Referenced by lar_content::ThreeDKinkBaseTool::GetModifications(), and lar_content::ThreeDKinkBaseTool::SelectTensorElements().
|
private |
Whether a pair of vertices pass longitudinal projection cuts.
| vertexA | vertex from cluster in tensor element a |
| vertexB | vertex from cluster in tensor element b |
Definition at line 112 of file OvershootTracksTool.cc.
References lar_content::LArPointingClusterHelper::GetImpactParameters(), lar_content::ThreeDKinkBaseTool::m_minLongitudinalImpactParameter, max, and min.
Referenced by GetIteratorListModifications().
|
private |
Definition at line 240 of file OvershootTracksTool.cc.
References m_cosThetaCutForKinkSearch, m_maxVertexXSeparation, m_splitMode, and lar_content::ThreeDKinkBaseTool::ReadSettings().
|
virtualinherited |
Run the algorithm tool.
| pAlgorithm | address of the calling algorithm |
| overlapTensor | the overlap tensor |
Implements lar_content::TransverseTensorTool.
Definition at line 126 of file ThreeDKinkBaseTool.cc.
References lar_content::ThreeDKinkBaseTool::ApplyChanges(), and lar_content::ThreeDKinkBaseTool::GetModifications().
|
private |
Set split position for a provided particle.
| vertexA1 | vertex for tensor element a in view 1 |
| vertexA2 | vertex for tensor element a in view 2 |
| vertexB1 | vertex for tensor element b in view 1 |
| vertexB2 | vertex for tensor element b in view 2 |
| particle | the particle |
Definition at line 128 of file OvershootTracksTool.cc.
References f, lar_content::LArClusterHelper::GetClusterHitType(), lar_content::LArPointingCluster::Vertex::GetPosition(), m_maxVertexXSeparation, lar_content::OvershootTracksTool::Particle::m_pClusterA1, lar_content::OvershootTracksTool::Particle::m_pClusterA2, lar_content::OvershootTracksTool::Particle::m_splitPosition, lar_content::OvershootTracksTool::Particle::m_splitPosition1, lar_content::OvershootTracksTool::Particle::m_splitPosition2, max, and lar_content::LArGeometryHelper::MergeTwoPositions().
Referenced by GetIteratorListModifications().
|
protectedinherited |
An additional (safety) step to tack-on when choosing x sampling points.
Definition at line 100 of file ThreeDKinkBaseTool.h.
Referenced by lar_content::ThreeDKinkBaseTool::GetXSamplingPoint(), and lar_content::ThreeDKinkBaseTool::ReadSettings().
|
private |
The cos theta cut used for the kink search in three dimensions.
Definition at line 90 of file OvershootTracksTool.h.
Referenced by IsThreeDKink(), and ReadSettings().
|
protectedinherited |
Whether to run in majority rules mode (always split overshoots, always merge undershoots)
Definition at line 95 of file ThreeDKinkBaseTool.h.
Referenced by lar_content::UndershootTracksTool::GetIteratorListModifications(), GetIteratorListModifications(), and lar_content::ThreeDKinkBaseTool::ReadSettings().
|
private |
The max separation between accompanying clusters vertex x positions to make split.
Definition at line 89 of file OvershootTracksTool.h.
Referenced by ReadSettings(), and SetSplitPosition().
|
protectedinherited |
The min longitudinal impact parameter for connecting accompanying clusters.
Definition at line 98 of file ThreeDKinkBaseTool.h.
Referenced by lar_content::UndershootTracksTool::GetIteratorListModifications(), PassesVertexCuts(), and lar_content::ThreeDKinkBaseTool::ReadSettings().
|
protectedinherited |
The min matched sampling point fraction for use as a key tensor element.
Definition at line 96 of file ThreeDKinkBaseTool.h.
Referenced by lar_content::ThreeDKinkBaseTool::PassesElementCuts(), and lar_content::ThreeDKinkBaseTool::ReadSettings().
|
protectedinherited |
The min number of matched sampling points for use as a key tensor element.
Definition at line 97 of file ThreeDKinkBaseTool.h.
Referenced by lar_content::ThreeDKinkBaseTool::PassesElementCuts(), and lar_content::ThreeDKinkBaseTool::ReadSettings().
|
protectedinherited |
The number of common clusters.
Definition at line 94 of file ThreeDKinkBaseTool.h.
Referenced by lar_content::ThreeDKinkBaseTool::SelectTensorElements(), and lar_content::ThreeDKinkBaseTool::ThreeDKinkBaseTool().
|
protectedinherited |
The number of sliding fit layers to step in the kink search.
Definition at line 99 of file ThreeDKinkBaseTool.h.
Referenced by lar_content::ThreeDKinkBaseTool::GetXSamplingPoint(), and lar_content::ThreeDKinkBaseTool::ReadSettings().
|
private |
Whether to run in cluster splitting mode, as opposed to cluster merging mode.
Definition at line 88 of file OvershootTracksTool.h.
Referenced by GetIteratorListModifications(), and ReadSettings().