NeutrinoDaughterVerticesAlgorithm.h
Go to the documentation of this file.
1 /**
2  * @file larpandoracontent/LArThreeDReco/LArEventBuilding/NeutrinoDaughterVerticesAlgorithm.h
3  *
4  * @brief Header file for the neutrino daughter vertices algorithm class.
5  *
6  * $Log: $
7  */
8 #ifndef LAR_NEUTRINO_DAUGHTER_VERTICES_ALGORITHM_H
9 #define LAR_NEUTRINO_DAUGHTER_VERTICES_ALGORITHM_H 1
10 
11 #include "Pandora/Algorithm.h"
12 
14 
15 namespace lar_content
16 {
17 
18 /**
19  * @brief NeutrinoDaughterVerticesAlgorithm class
20  */
21 class NeutrinoDaughterVerticesAlgorithm : public pandora::Algorithm
22 {
23 public:
24  /**
25  * @brief Default constructor
26  */
28 
29 private:
30  pandora::StatusCode Run();
31  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
32 
33  /**
34  * @brief Get the vector of daughter pfos
35  *
36  * @param pfoList the input list of neutrino pfos
37  * @param pfoVector to receive the vector of daughter pfos
38  */
39  void GetDaughterPfos(const pandora::PfoList *const pfoList, pandora::PfoVector &pfoVector) const;
40 
41  /**
42  * @brief Build a map of 3D sliding fits from the input Pfos.
43  *
44  * @param pfoVector the input particle flow objects
45  * @param pointingClusterMap the output map of 3D pointing clusters
46  */
47  void BuildPointingClusterMap(const pandora::PfoVector &pfoVector, LArPointingClusterMap &pointingClusterMap) const;
48 
49  /**
50  * @brief Reconstruct the vertex and direction of daughter Pfos
51  *
52  * @param pointingClusterMap the input map of 3D pointing clusters
53  * @param pfoVector the input list of Pfos
54  */
55  void BuildDaughterParticles(const LArPointingClusterMap &pointingClusterMap, const pandora::PfoVector &pfoVector) const;
56 
57  /**
58  * @brief Reconstruct the vertex and direction of a track-like Pfos
59  *
60  * @param pointingClusterMap the input map of 3D pointing clusters
61  * @param pPfo the input Pfo
62  */
63  void BuildDaughterTrack(const LArPointingClusterMap &pointingClusterMap, const pandora::ParticleFlowObject *const pDaughterPfo) const;
64 
65  /**
66  * @brief Reconstruct the vertex and direction of a shower-like Pfos
67  *
68  * @param pPfo the input Pfo
69  */
70  void BuildDaughterShower(const pandora::ParticleFlowObject *const pDaughterPfo) const;
71 
72  /**
73  * @brief Set the vertex and direction of the Pfos
74  *
75  * @param vtxPosition the input vertex position
76  * @param vtxDirection the input vertex direction
77  * @param pPfo the input Pfo
78  */
79  void SetParticleParameters(const pandora::CartesianVector &vtxPosition, const pandora::CartesianVector &vtxDirection,
80  const pandora::ParticleFlowObject *const pPfo) const;
81 
82  bool m_useParentShowerVertex; ///< use the parent pfo for the shower vertices
83  unsigned int m_halfWindowLayers; ///< number of layers to use for half-window of sliding fit
84  std::string m_neutrinoListName; ///< The input list of pfo list names
85  std::string m_vertexListName; ///< The name of the output cosmic-ray vertex list
86 };
87 
88 } // namespace lar_content
89 
90 #endif // #ifndef LAR_NEUTRINO_DAUGHTER_VERTICES_ALGORITHM_H
unsigned int m_halfWindowLayers
number of layers to use for half-window of sliding fit
std::unordered_map< const pandora::Cluster *, LArPointingCluster > LArPointingClusterMap
std::string m_vertexListName
The name of the output cosmic-ray vertex list.
Header file for the lar pointing cluster class.
std::string string
Definition: nybbler.cc:12
void GetDaughterPfos(const pandora::PfoList *const pfoList, pandora::PfoVector &pfoVector) const
Get the vector of daughter pfos.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
bool m_useParentShowerVertex
use the parent pfo for the shower vertices
void SetParticleParameters(const pandora::CartesianVector &vtxPosition, const pandora::CartesianVector &vtxDirection, const pandora::ParticleFlowObject *const pPfo) const
Set the vertex and direction of the Pfos.
void BuildDaughterShower(const pandora::ParticleFlowObject *const pDaughterPfo) const
Reconstruct the vertex and direction of a shower-like Pfos.
void BuildDaughterParticles(const LArPointingClusterMap &pointingClusterMap, const pandora::PfoVector &pfoVector) const
Reconstruct the vertex and direction of daughter Pfos.
void BuildPointingClusterMap(const pandora::PfoVector &pfoVector, LArPointingClusterMap &pointingClusterMap) const
Build a map of 3D sliding fits from the input Pfos.
std::string m_neutrinoListName
The input list of pfo list names.
void BuildDaughterTrack(const LArPointingClusterMap &pointingClusterMap, const pandora::ParticleFlowObject *const pDaughterPfo) const
Reconstruct the vertex and direction of a track-like Pfos.