CosmicRayExtensionAlgorithm.h
Go to the documentation of this file.
1 /**
2  * @file larpandoracontent/LArTwoDReco/LArCosmicRay/CosmicRayExtensionAlgorithm.h
3  *
4  * @brief Header file for the cosmic-ray extension algorithm class.
5  *
6  * $Log: $
7  */
8 #ifndef LAR_COSMIC_RAY_EXTENSION_ALGORITHM_H
9 #define LAR_COSMIC_RAY_EXTENSION_ALGORITHM_H 1
10 
11 #include "Pandora/Algorithm.h"
12 
14 
16 
17 namespace lar_content
18 {
19 
20 /**
21  * @brief CosmicRayExtensionAlgorithm class
22  */
24 {
25 public:
26  /**
27  * @brief Default constructor
28  */
30 
31 private:
32  void GetListOfCleanClusters(const pandora::ClusterList *const pClusterList, pandora::ClusterVector &clusterVector) const;
33  void FillClusterAssociationMatrix(const pandora::ClusterVector &clusterVector, ClusterAssociationMatrix &clusterAssociationMatrix) const;
34  void FillClusterMergeMap(const ClusterAssociationMatrix &clusterAssociationMatrix, ClusterMergeMap &clusterMergeMap) const;
35 
36  /**
37  * @brief Form association between two pointing clusters
38  *
39  * @param clusterI the first pointing cluster
40  * @param clusterJ the second pointing cluster
41  * @param clusterAssociationMatrix the matrix of cluster associations
42  */
44  const LArPointingCluster &clusterI, const LArPointingCluster &clusterJ, ClusterAssociationMatrix &clusterAssociationMatrix) const;
45 
46  /**
47  * @brief Calculate RMS deviation of a cluster with respect to the reference line
48  *
49  * @param pCluster the input cluster
50  * @param position the intercept of the reference line
51  * @param direction the direction of the reference line
52  */
53  float CalculateRms(const pandora::Cluster *const pCluster, const pandora::CartesianVector &position, const pandora::CartesianVector &direction) const;
54 
55  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
56 
57  float m_minClusterLength; ///<
62  float m_maxAverageRms; ///<
63 };
64 
65 } // namespace lar_content
66 
67 #endif // #ifndef LAR_COSMIC_RAY_EXTENSION_ALGORITHM_H
Header file for the lar pointing cluster class.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
LArPointingCluster class.
std::unordered_map< const pandora::Cluster *, ClusterAssociationMap > ClusterAssociationMatrix
float CalculateRms(const pandora::Cluster *const pCluster, const pandora::CartesianVector &position, const pandora::CartesianVector &direction) const
Calculate RMS deviation of a cluster with respect to the reference line.
void GetListOfCleanClusters(const pandora::ClusterList *const pClusterList, pandora::ClusterVector &clusterVector) const
Populate cluster vector with subset of cluster list, containing clusters judged to be clean...
Header file for the cluster extension algorithm class.
void FillClusterAssociationMatrix(const pandora::ClusterVector &clusterVector, ClusterAssociationMatrix &clusterAssociationMatrix) const
Fill the cluster association matrix.
std::unordered_map< const pandora::Cluster *, pandora::ClusterList > ClusterMergeMap
std::vector< art::Ptr< recob::Cluster > > ClusterVector
void FillClusterMergeMap(const ClusterAssociationMatrix &clusterAssociationMatrix, ClusterMergeMap &clusterMergeMap) const
Fill the cluster merge map.