PfoCharacterisationBaseAlgorithm.h
Go to the documentation of this file.
1 /**
2  * @file larpandoracontent/LArTrackShowerId/PfoCharacterisationBaseAlgorithm.h
3  *
4  * @brief Header file for the pfo characterisation base algorithm class.
5  *
6  * $Log: $
7  */
8 #ifndef LAR_PFO_CHARACTERISATION_BASE_ALGORITHM_H
9 #define LAR_PFO_CHARACTERISATION_BASE_ALGORITHM_H 1
10 
11 #include "Pandora/Algorithm.h"
12 
13 namespace lar_content
14 {
15 
16 /**
17  * @brief PfoCharacterisationBaseAlgorithm class
18  */
19 class PfoCharacterisationBaseAlgorithm : public pandora::Algorithm
20 {
21 public:
22  /**
23  * @brief Default constructor
24  */
26 
27  /**
28  * @brief Destructor
29  */
31 
32 protected:
33  pandora::StatusCode Run();
34 
35  /**
36  * @brief Whether pfo is identified as a clear track using its three clusters
37  *
38  * @param pPfo address of the relevant pfo
39  *
40  * @return boolean
41  */
42  virtual bool IsClearTrack3x2D(const pandora::ParticleFlowObject *const pPfo) const;
43 
44  /**
45  * @brief Whether pfo is identified as a clear track
46  *
47  * @param pPfo address of the relevant pfo
48  *
49  * @return boolean
50  */
51  virtual bool IsClearTrack(const pandora::ParticleFlowObject *const pPfo) const = 0;
52 
53  /**
54  * @brief Whether cluster is identified as a clear track
55  *
56  * @param pCluster address of the relevant cluster
57  *
58  * @return boolean
59  */
60  virtual bool IsClearTrack(const pandora::Cluster *const pCluster) const = 0;
61 
62  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
63 
64  std::string m_trackPfoListName; ///< The track pfo list name
65  std::string m_showerPfoListName; ///< The shower pfo list name
66  pandora::StringVector m_inputPfoListNames; ///< The names of the input pfo lists
67 
68  bool m_updateClusterIds; ///< Whether to update daughter cluster particle id labels to match pfo id
69  bool m_postBranchAddition; ///< Whether to use configuration for shower clusters post branch addition
70  bool m_useThreeDInformation; ///< Whether to use PFO and 3D information or clusters for characterisation
71  unsigned int m_minTrackLikeViews; ///< The minimum number of track-like views to declare a pfo as track-like
72 };
73 
74 } // namespace lar_content
75 
76 #endif // #ifndef LAR_PFO_CHARACTERISATION_BASE_ALGORITHM_H
virtual bool IsClearTrack3x2D(const pandora::ParticleFlowObject *const pPfo) const
Whether pfo is identified as a clear track using its three clusters.
std::string string
Definition: nybbler.cc:12
pandora::StringVector m_inputPfoListNames
The names of the input pfo lists.
virtual bool IsClearTrack(const pandora::ParticleFlowObject *const pPfo) const =0
Whether pfo is identified as a clear track.
unsigned int m_minTrackLikeViews
The minimum number of track-like views to declare a pfo as track-like.
bool m_postBranchAddition
Whether to use configuration for shower clusters post branch addition.
bool m_updateClusterIds
Whether to update daughter cluster particle id labels to match pfo id.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
bool m_useThreeDInformation
Whether to use PFO and 3D information or clusters for characterisation.
std::vector< string > StringVector
Definition: fcldump.cxx:29
std::string m_showerPfoListName
The shower pfo list name.