All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TwoDSlidingFitSplittingAlgorithm.h
Go to the documentation of this file.
1 /**
2  * @file larpandoracontent/LArTwoDReco/LArClusterSplitting/TwoDSlidingFitSplittingAlgorithm.h
3  *
4  * @brief Header file for the two dimensional sliding fit splitting algorithm class.
5  *
6  * $Log: $
7  */
8 #ifndef LAR_TWO_D_SLIDING_FIT_SPLITTING_ALGORITHM_H
9 #define LAR_TWO_D_SLIDING_FIT_SPLITTING_ALGORITHM_H 1
10 
12 
14 
15 namespace lar_content
16 {
17 
18 /**
19  * @brief TwoDSlidingFitSplittingAlgorithm class
20  */
22 {
23 public:
24  /**
25  * @brief Default constructor
26  */
28 
29 protected:
30  virtual pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
31 
32  /**
33  * @brief Use sliding linear fit to identify the best split position
34  *
35  * @param slidingFitResult the input sliding fit result
36  * @param splitPosition the best split position
37  *
38  * @return pandora::StatusCode
39  */
40  virtual pandora::StatusCode FindBestSplitPosition(const TwoDSlidingFitResult &slidingFitResult, pandora::CartesianVector &splitPosition) const = 0;
41 
42  unsigned int m_slidingFitHalfWindow; ///<
43  float m_minClusterLength; ///<
44 
45 private:
46  pandora::StatusCode DivideCaloHits(
47  const pandora::Cluster *const pCluster, pandora::CaloHitList &firstCaloHitList, pandora::CaloHitList &secondCaloHitList) const;
48 
49  /**
50  * @brief Use sliding linear fit to separate cluster into two fragments
51  *
52  * @param slidingFitResult the input sliding fit result
53  * @param splitPosition the split position
54  * @param firstCaloHitList the hits in the first cluster fragment
55  * @param secondCaloHitList the hits in the second cluster fragment
56  *
57  * @return pandora::StatusCode
58  */
59  pandora::StatusCode DivideCaloHits(const TwoDSlidingFitResult &slidingFitResult, const pandora::CartesianVector &splitPosition,
60  pandora::CaloHitList &firstCaloHitList, pandora::CaloHitList &secondCaloHitList) const;
61 };
62 
63 } // namespace lar_content
64 
65 #endif // #ifndef LAR_TWO_D_SLIDING_FIT_SPLITTING_ALGORITHM_H
Header file for the cluster splitting algorithm class.
virtual pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
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...
Header file for the lar two dimensional sliding fit result class.
virtual pandora::StatusCode FindBestSplitPosition(const TwoDSlidingFitResult &slidingFitResult, pandora::CartesianVector &splitPosition) const =0
Use sliding linear fit to identify the best split position.