LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
NeutrinoDaughterVerticesAlgorithm.h
Go to the documentation of this file.
1 
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 
21 class NeutrinoDaughterVerticesAlgorithm : public pandora::Algorithm
22 {
23 public:
28 
29 private:
30  pandora::StatusCode Run();
31  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
32 
39  void GetDaughterPfos(const pandora::PfoList *const pfoList, pandora::PfoVector &pfoVector) const;
40 
47  void BuildPointingClusterMap(const pandora::PfoVector &pfoVector, LArPointingClusterMap &pointingClusterMap) const;
48 
55  void BuildDaughterParticles(const LArPointingClusterMap &pointingClusterMap, const pandora::PfoVector &pfoVector) const;
56 
63  void BuildDaughterTrack(const LArPointingClusterMap &pointingClusterMap, const pandora::ParticleFlowObject *const pDaughterPfo) const;
64 
70  void BuildDaughterShower(const pandora::ParticleFlowObject *const pDaughterPfo) const;
71 
79  void SetParticleParameters(const pandora::CartesianVector &vtxPosition, const pandora::CartesianVector &vtxDirection,
80  const pandora::ParticleFlowObject *const pPfo) const;
81 
83  unsigned int m_halfWindowLayers;
84  std::string m_neutrinoListName;
85  std::string m_vertexListName;
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.
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.