LayerSplittingAlgorithm.h
Go to the documentation of this file.
1 /**
2  * @file larpandoracontent/LArTwoDReco/ClusterSplitting/LayerSplittingAlgorithm.h
3  *
4  * @brief Header file for the layer splitting algorithm class.
5  *
6  * $Log: $
7  */
8 #ifndef LAR_LAYER_SPLITTING_ALGORITHM_H
9 #define LAR_LAYER_SPLITTING_ALGORITHM_H 1
10 
12 
13 namespace lar_content
14 {
15 
16 /**
17  * @brief LayerSplittingAlgorithm class
18  */
20 {
21 public:
22  /**
23  * @brief Default constructor
24  */
26 
27 private:
28  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
29  pandora::StatusCode DivideCaloHits(
30  const pandora::Cluster *const pCluster, pandora::CaloHitList &firstCaloHitList, pandora::CaloHitList &secondCaloHitList) const;
31 
32  /**
33  * @brief Find the best layer for splitting the cluster
34  *
35  * @param pCluster the input cluster
36  * @param splitLayer the best layer
37  */
38  pandora::StatusCode FindBestSplitLayer(const pandora::Cluster *const pCluster, unsigned int &splitLayer) const;
39 
40  /**
41  * @brief Split the cluster into two fragments at the input layer
42  *
43  * @param pCluster the input cluster
44  * @param splitLayer the split layer
45  * @param firstCaloHitList the hits in the first cluster fragment
46  * @param secondCaloHitList the hits in the second cluster fragment
47  */
48  pandora::StatusCode DivideCaloHits(const pandora::Cluster *const pCluster, const unsigned int &splitLayer,
49  pandora::CaloHitList &firstCaloHitList, pandora::CaloHitList &secondCaloHitList) const;
50 
51  /**
52  * @brief Calculate rms deviation of cluster centroids between two extremal layers
53  *
54  * @param pCluster the input cluster
55  * @param firstLayer the first extremal layer
56  * @param secondLayer the second extremal layer
57  */
58  float CalculateRms(const pandora::Cluster *const pCluster, const unsigned int &firstLayer, const unsigned int &secondLayer) const;
59 
60  unsigned int m_minClusterLayers; ///<
61  unsigned int m_layerWindow; ///<
62  float m_maxScatterRms; ///<
65 };
66 
67 } // namespace lar_content
68 
69 #endif // #ifndef LAR_LAYER_SPLITTING_ALGORITHM_H
Header file for the cluster splitting algorithm class.
pandora::StatusCode FindBestSplitLayer(const pandora::Cluster *const pCluster, unsigned int &splitLayer) const
Find the best layer for splitting the cluster.
LayerSplittingAlgorithm class.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
float CalculateRms(const pandora::Cluster *const pCluster, const unsigned int &firstLayer, const unsigned int &secondLayer) const
Calculate rms deviation of cluster centroids between two extremal layers.
pandora::StatusCode DivideCaloHits(const pandora::Cluster *const pCluster, pandora::CaloHitList &firstCaloHitList, pandora::CaloHitList &secondCaloHitList) const
Divide calo hits in a cluster into two lists, each associated with a separate fragment cluster...