CosmicRayVertexBuildingAlgorithm.h
Go to the documentation of this file.
1 /**
2  * @file larpandoracontent/LArThreeDReco/LArCosmicRay/CosmicRayVertexBuildingAlgorithm.h
3  *
4  * @brief Header file for the cosmic-ray vertex building algorithm class.
5  *
6  * $Log: $
7  */
8 #ifndef LAR_COSMIC_RAY_VERTEX_BUILDING_ALGORITHM_H
9 #define LAR_COSMIC_RAY_VERTEX_BUILDING_ALGORITHM_H 1
10 
11 #include "Pandora/Algorithm.h"
12 
14 
15 namespace lar_content
16 {
17 
18 /**
19  * @brief CosmicRayVertexBuildingAlgorithm class
20  */
21 class CosmicRayVertexBuildingAlgorithm : 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 list of input pfos to this algorithm
35  *
36  * @param pfoList to receive the list of input pfos
37  */
38  void GetCosmicPfos(const pandora::PfoList *const pPfoList, pandora::PfoVector &pfoVector) const;
39 
40  /**
41  * @brief Build a map of 3D sliding fits from the input Pfos.
42  *
43  * @param pfoList the input particle flow objects
44  * @param pointingClusterMap the output map of 3D pointing clusters
45  */
46  void BuildPointingClusterMap(const pandora::PfoVector &pfoVector, LArPointingClusterMap &pointingClusterMap) const;
47 
48  /**
49  * @brief Reconstruct the vertex and direction of a list of cosmic-ray Pfos
50  *
51  * @param pointingClusterMap the input map of 3D pointing clusters
52  * @param pfoList the input list of Pfos
53  */
54  void BuildCosmicRayParticles(const LArPointingClusterMap &pointingClusterMap, const pandora::PfoVector &pfoVector) const;
55 
56  /**
57  * @brief Reconstruct the vertex and direction of a parent cosmic-ray Pfo
58  *
59  * @param pointingClusterMap the input map of 3D pointing clusters
60  * @param pPfo the input Pfo
61  */
62  void BuildCosmicRayParent(const LArPointingClusterMap &pointingClusterMap, const pandora::ParticleFlowObject *const pPfo) const;
63 
64  /**
65  * @brief Reconstruct the vertex and direction of a daughter cosmic-ray Pfo
66  *
67  * @param pPfo the daughter Pfo
68  */
69  void BuildCosmicRayDaughter(const pandora::ParticleFlowObject *const pPfo) const;
70 
71  /**
72  * @brief Set the vertex and direction of the Pfos
73  *
74  * @param vtxPosition the input vertex position
75  * @param vtxDirection the input vertex direction
76  * @param pPfo the input Pfo
77  */
78  void SetParticleParameters(const pandora::CartesianVector &vtxPosition, const pandora::CartesianVector &vtxDirection,
79  const pandora::ParticleFlowObject *const pPfo) const;
80 
81  bool m_useParentShowerVertex; ///< use the parent pfo for the shower vertices
82  bool m_isDualPhase; ///< type of geometry
83  unsigned int m_halfWindowLayers; ///< number of layers to use for half-window of sliding fit
84  std::string m_parentPfoListName; ///< The name of the input pfo list
85  std::string m_vertexListName; ///< The name of the output vertex list
86  float m_maxVertexDisplacementFromTrack; ///< The maximum separation of a close vertex from the cosmic ray track
87 };
88 
89 } // namespace lar_content
90 
91 #endif // #ifndef LAR_COSMIC_RAY_VERTEX_BUILDING_ALGORITHM_H
std::unordered_map< const pandora::Cluster *, LArPointingCluster > LArPointingClusterMap
bool m_useParentShowerVertex
use the parent pfo for the shower vertices
Header file for the lar pointing cluster class.
std::string string
Definition: nybbler.cc:12
void SetParticleParameters(const pandora::CartesianVector &vtxPosition, const pandora::CartesianVector &vtxDirection, const pandora::ParticleFlowObject *const pPfo) const
Set the vertex and direction of the Pfos.
std::string m_vertexListName
The name of the output vertex list.
void BuildCosmicRayParent(const LArPointingClusterMap &pointingClusterMap, const pandora::ParticleFlowObject *const pPfo) const
Reconstruct the vertex and direction of a parent cosmic-ray Pfo.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
void BuildCosmicRayParticles(const LArPointingClusterMap &pointingClusterMap, const pandora::PfoVector &pfoVector) const
Reconstruct the vertex and direction of a list of cosmic-ray Pfos.
std::string m_parentPfoListName
The name of the input pfo list.
unsigned int m_halfWindowLayers
number of layers to use for half-window of sliding fit
float m_maxVertexDisplacementFromTrack
The maximum separation of a close vertex from the cosmic ray track.
void GetCosmicPfos(const pandora::PfoList *const pPfoList, pandora::PfoVector &pfoVector) const
Get the list of input pfos to this algorithm.
void BuildCosmicRayDaughter(const pandora::ParticleFlowObject *const pPfo) const
Reconstruct the vertex and direction of a daughter cosmic-ray Pfo.
void BuildPointingClusterMap(const pandora::PfoVector &pfoVector, LArPointingClusterMap &pointingClusterMap) const
Build a map of 3D sliding fits from the input Pfos.