Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
OvershootTracksTool.h
Go to the documentation of this file.
1
8#ifndef OVERSHOOT_TRACKS_TOOL_H
9#define OVERSHOOT_TRACKS_TOOL_H 1
10
12
13namespace lar_content
14{
15
20{
21public:
26
27private:
51
53 ThreeViewTransverseTracksAlgorithm *const pAlgorithm, const IteratorList &iteratorList, ModificationList &modificationList) const;
55
62 bool PassesVertexCuts(const LArPointingCluster::Vertex &vertexA, const LArPointingCluster::Vertex &vertexB) const;
63
74 const LArPointingCluster::Vertex &vertexB1, const LArPointingCluster::Vertex &vertexB2, Particle &particle) const;
75
86 bool IsThreeDKink(ThreeViewTransverseTracksAlgorithm *const pAlgorithm, const Particle &particle, const bool isA1LowestInX,
87 const bool isA2LowestInX) const;
88
92};
93
94} // namespace lar_content
95
96#endif // #ifndef OVERSHOOT_TRACKS_TOOL_H
Header file for the three d kink base tool.
pandora::CartesianVector m_splitPosition1
The candidate split position in view 1.
pandora::CartesianVector m_splitPosition
The candidate split position for the common cluster.
const pandora::Cluster * m_pClusterB2
Address of cluster in element B, view 2.
const pandora::Cluster * m_pClusterA2
Address of cluster in element A, view 2.
pandora::CartesianVector m_splitPosition2
The candidate split position in view 2.
const pandora::Cluster * m_pCommonCluster
Address of the common cluster.
const pandora::Cluster * m_pClusterB1
Address of cluster in element B, view 1.
const pandora::Cluster * m_pClusterA1
Address of cluster in element A, view 1.
bool PassesVertexCuts(const LArPointingCluster::Vertex &vertexA, const LArPointingCluster::Vertex &vertexB) const
Whether a pair of vertices pass longitudinal projection cuts.
void GetIteratorListModifications(ThreeViewTransverseTracksAlgorithm *const pAlgorithm, const IteratorList &iteratorList, ModificationList &modificationList) const
Get modification objects for a specific elements of the tensor, identifying required splits and merge...
bool m_splitMode
Whether to run in cluster splitting mode, as opposed to cluster merging mode.
bool IsThreeDKink(ThreeViewTransverseTracksAlgorithm *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 t...
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.
float m_cosThetaCutForKinkSearch
The cos theta cut used for the kink search in three dimensions.
OvershootTracksTool()
Default constructor.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Read the algorithm settings.
float m_maxVertexXSeparation
The max separation between accompanying clusters vertex x positions to make split.
ThreeDKinkBaseTool class.
std::vector< Modification > ModificationList
std::vector< TensorType::ElementList::const_iterator > IteratorList
CartesianVector class.
Cluster class.
Definition Cluster.h:31
StatusCode
The StatusCode enum.