EndAssociatedPfosTool.h
Go to the documentation of this file.
1 /**
2  * @file larpandoracontent/LArThreeDReco/LArEventBuilding/EndAssociatedPfosTool.h
3  *
4  * @brief Header file for the end associated pfos tool class.
5  *
6  * $Log: $
7  */
8 #ifndef LAR_END_ASSOCIATED_PFOS_TOOL_H
9 #define LAR_END_ASSOCIATED_PFOS_TOOL_H 1
10 
12 
14 
15 namespace lar_content
16 {
17 
18 /**
19  * @brief EndAssociatedPfosTool class
20  */
22 {
23 public:
24  /**
25  * @brief Default constructor
26  */
28 
29  void Run(const NeutrinoHierarchyAlgorithm *const pAlgorithm, const pandora::Vertex *const pNeutrinoVertex,
31 
32 private:
33  /**
34  * @brief Whether a daughter 3D cluster is in close proximity to the endpoint of a parent 3D cluster
35  *
36  * @param parentEndpoint the parent endpoint position
37  * @param pParentCluster3D the address of the parent 3D cluster
38  * @param pDaughterCluster3D the address of the daughter 3D cluster
39  *
40  * @return boolean
41  */
42  bool IsCloseToParentEndpoint(const pandora::CartesianVector &parentEndpoint, const pandora::Cluster *const pParentCluster3D,
43  const pandora::Cluster *const pDaughterCluster3D) const;
44 
45  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
46 
47  float m_minNeutrinoVertexDistance; ///< Min distance between candidate parent endpoint and neutrino vertex
48  float m_minVertexLongitudinalDistance; ///< Vertex association check: min longitudinal distance cut
49  float m_maxVertexLongitudinalDistance; ///< Vertex association check: max longitudinal distance cut
50  float m_maxVertexTransverseDistance; ///< Vertex association check: max transverse distance cut
51  float m_vertexAngularAllowance; ///< Vertex association check: pointing angular allowance in degrees
52  float m_maxParentEndpointDistance; ///< Max distance between candidate parent endpoint and candidate daughter
53 };
54 
55 } // namespace lar_content
56 
57 #endif // #ifndef LAR_END_ASSOCIATED_PFOS_TOOL_H
void Run(const NeutrinoHierarchyAlgorithm *const pAlgorithm, const pandora::Vertex *const pNeutrinoVertex, NeutrinoHierarchyAlgorithm::PfoInfoMap &pfoInfoMap)
Run the algorithm tool.
float m_minNeutrinoVertexDistance
Min distance between candidate parent endpoint and neutrino vertex.
float m_vertexAngularAllowance
Vertex association check: pointing angular allowance in degrees.
EndAssociatedPfosTool()
Default constructor.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Header file for the cluster helper class.
std::unordered_map< const pandora::ParticleFlowObject *, PfoInfo * > PfoInfoMap
float m_maxVertexLongitudinalDistance
Vertex association check: max longitudinal distance cut.
Header file for the neutrino hierarchy algorithm class.
float m_maxParentEndpointDistance
Max distance between candidate parent endpoint and candidate daughter.
bool IsCloseToParentEndpoint(const pandora::CartesianVector &parentEndpoint, const pandora::Cluster *const pParentCluster3D, const pandora::Cluster *const pDaughterCluster3D) const
Whether a daughter 3D cluster is in close proximity to the endpoint of a parent 3D cluster...
boost::graph_traits< ModuleGraph >::vertex_descriptor Vertex
Definition: ModuleGraph.h:25
float m_maxVertexTransverseDistance
Vertex association check: max transverse distance cut.
EndAssociatedPfosTool class.
float m_minVertexLongitudinalDistance
Vertex association check: min longitudinal distance cut.