8 #ifndef TWO_VIEW_THREE_D_KINK_TOOL_H 
    9 #define TWO_VIEW_THREE_D_KINK_TOOL_H 1 
   64         Particle(
const MatrixType::Element &elementA, 
const MatrixType::Element &elementB);
 
  100         const pandora::ClusterSet &usedClusters, 
IteratorList &iteratorList) 
const;
 
  134         const pandora::CartesianVector &splitPosition, 
const bool isALowestInX) 
const;
 
  161     pandora::StatusCode 
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
 
  176 #endif // #ifndef TWO_VIEW_THREE_D_KINK_TOOL_H 
float m_minLocallyMatchedFraction
The min locally matched fraction for particle creation. 
Header file for the lar pointing cluster class. 
const pandora::Cluster * m_pClusterB
Address of non-shared cluster in element B. 
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) ...
SplitPositionMap m_splitPositionMap
The split position map. 
TwoViewTransverseTracksAlgorithm class. 
LArPointingCluster class. 
std::vector< Element > ElementList
std::vector< Modification > ModificationList
float m_minMatchingScore
The min global matching score for particle creation. 
Particle(const MatrixType::Element &elementA, const MatrixType::Element &elementB)
Constructor. 
const pandora::Cluster * m_pClusterA
Address of non-shared cluster in element A. 
float m_minXOverlapFraction
The min x overlap fraction value for particle creation. 
float m_additionalXStepForKinkSearch
An additional (safety) step to tack-on when choosing x sampling. 
bool IsThreeDKink(TwoViewTransverseTracksAlgorithm *const pAlgorithm, const Particle &particle, const pandora::CartesianVector &splitPosition, const bool isALowestInX) const 
Whether the provided particle is consistent with being a kink, when examined in three dimensions at t...
TwoViewThreeDKinkTool class. 
void GetModifications(TwoViewTransverseTracksAlgorithm *const pAlgorithm, const MatrixType &overlapMatrix, ModificationList &modificationList) const 
Get modification objects, identifying required splits and merges for clusters. 
void SelectMatrixElements(MatrixType::ElementList::const_iterator eIter, const MatrixType::ElementList &elementList, const pandora::ClusterSet &usedClusters, IteratorList &iteratorList) const 
Select elements representing possible components of interest due to overshoots or undershoots in clus...
std::unordered_map< const pandora::Cluster *, pandora::CartesianPointVector > SplitPositionMap
virtual ~TwoViewThreeDKinkTool()
Destructor. 
float m_maxTransverseImpactParameter
The maximum transverse impact parameter for connecting broken clusters. 
TheMatrix::const_iterator const_iterator
int m_nLayersForKinkSearch
The number of sliding fit layers to step in the kink search. 
Header file for the two view transverse tracks algorithm class. 
bool Run(TwoViewTransverseTracksAlgorithm *const pAlgorithm, MatrixType &overlapMatrix)
Run the algorithm tool. 
float m_cosThetaCutForKinkSearch
The cos theta cut used for the kink search in three dimensions. 
bool PassesElementCuts(MatrixType::ElementList::const_iterator eIter, const pandora::ClusterSet &usedClusters) const 
Whether a provided (iterator to a) matrix element passes the selection cuts for overshoot identificat...
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
TransverseMatrixTool class. 
float m_minImpactParameterCosTheta
The minimum cos theta (angle between vertex directions) for connecting broken clusters. 
pandora::ClusterList m_affectedClusters
The list of affected clusters. 
void GetIteratorListModifications(TwoViewTransverseTracksAlgorithm *const pAlgorithm, const IteratorList &iteratorList, ModificationList &modificationList) const 
Get modification objects for specific elements of the matrix, identifying required splits and merges ...
bool ApplyChanges(TwoViewTransverseTracksAlgorithm *const pAlgorithm, const ModificationList &modificationList) const 
Apply the changes cached in a modification list and update the matrix accordingly. 
std::unordered_map< const pandora::Cluster *, pandora::ClusterList > ClusterMergeMap
TwoViewThreeDKinkTool()
Constructor. 
ClusterMergeMap m_clusterMergeMap
The cluster merge map. 
float m_minLongitudinalImpactParameter
The min longitudinal impact parameter for connecting accompanying clusters. 
std::vector< MatrixType::ElementList::const_iterator > IteratorList
float GetXSamplingPoint(const pandora::CartesianVector &splitPosition1, const bool isForwardInX, const TwoDSlidingFitResult &fitResult1, const TwoDSlidingFitResult &fitResult2) const 
Get a sampling point in x that is common to sliding linear fit objects in two views. 
TwoDSlidingFitResult class. 
const pandora::Cluster * m_pCommonCluster
Address of the common cluster.