Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
PeakDirectionFinderTool.h
Go to the documentation of this file.
1
8#ifndef LAR_PEAK_DIRECTION_FINDER_TOOL_H
9#define LAR_PEAK_DIRECTION_FINDER_TOOL_H 1
10
13
14namespace lar_content
15{
16
18{
19public:
24
25 pandora::StatusCode Run(const pandora::ParticleFlowObject *const pShowerPfo, const pandora::CartesianVector &nuVertex3D,
26 const pandora::CaloHitList *const pViewHitList, const pandora::HitType hitType, pandora::CartesianPointVector &peakDirectionVector);
27
28private:
29 typedef std::map<int, float> AngularDecompositionMap;
30
32
42 void CollectHitsWithinROI(const pandora::CaloHitList &showerHitList, const pandora::CaloHitList *const pViewHitList,
43 const pandora::CartesianVector &nuVertex2D, pandora::CaloHitList &viewROIHits) const;
44
53 void GetAngularExtrema(const pandora::CaloHitList &showerHitList, const pandora::CartesianVector &nuVertex2D, float &lowestTheta,
54 float &highestTheta) const;
55
65 void CollectHitsWithinExtrema(const pandora::CaloHitList *const pViewHitList, const pandora::CartesianVector &nuVertex2D,
66 const float lowestTheta, const float highestTheta, pandora::CaloHitList &viewROIHits) const;
67
75 void FillAngularDecompositionMap(const pandora::CaloHitList &viewShowerHitList, const pandora::CartesianVector &nuVertex2D,
76 AngularDecompositionMap &angularDecompositionMap) const;
77
83 void SmoothAngularDecompositionMap(AngularDecompositionMap &angularDecompositionMap) const;
84
91 void RetrievePeakDirections(const AngularDecompositionMap &angularDecompositionMap, pandora::CartesianPointVector &peakDirectionVector) const;
92
97};
98
99//------------------------------------------------------------------------------------------------------------------------------------------
100} // namespace lar_content
101
102#endif // #ifndef LAR_PEAK_DIRECTION_FINDER_TOOL_H
Grouping of header files for many classes of use in particle flow algorithms.
Header file for the algorithm tool class.
int m_smoothingWindow
On each side, the number of neighbouring bins with which each bin is averaged.
void GetAngularExtrema(const pandora::CaloHitList &showerHitList, const pandora::CartesianVector &nuVertex2D, float &lowestTheta, float &highestTheta) const
Determine the angle (from the +ve drift-axis) of the shower cone boundaries (originating from the nu ...
void SmoothAngularDecompositionMap(AngularDecompositionMap &angularDecompositionMap) const
Smooth the ROI angular angular distribution.
bool m_ambiguousParticleMode
Whether to find the initial pathway direction of the shower or of the other event particles.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Read the algorithm settings.
void CollectHitsWithinExtrema(const pandora::CaloHitList *const pViewHitList, const pandora::CartesianVector &nuVertex2D, const float lowestTheta, const float highestTheta, pandora::CaloHitList &viewROIHits) const
Collect the hits that lie within the initial shower cone (originating from the nu vertex)
float m_theta0XZBinSize
The angular distribution bin size.
void RetrievePeakDirections(const AngularDecompositionMap &angularDecompositionMap, pandora::CartesianPointVector &peakDirectionVector) const
Obtain a vector of directions from the angular distribution peaks.
float m_pathwaySearchRegion
The initial shower cone distance.
void FillAngularDecompositionMap(const pandora::CaloHitList &viewShowerHitList, const pandora::CartesianVector &nuVertex2D, AngularDecompositionMap &angularDecompositionMap) const
Determine the angular distribution of the ROI hits.
pandora::StatusCode Run(const pandora::ParticleFlowObject *const pShowerPfo, const pandora::CartesianVector &nuVertex3D, const pandora::CaloHitList *const pViewHitList, const pandora::HitType hitType, pandora::CartesianPointVector &peakDirectionVector)
void CollectHitsWithinROI(const pandora::CaloHitList &showerHitList, const pandora::CaloHitList *const pViewHitList, const pandora::CartesianVector &nuVertex2D, pandora::CaloHitList &viewROIHits) const
Collect the 2D hits within a region of interest (m_ambiguousParticleMode ? hits not in the shower : h...
AlgorithmTool class. Algorithm tools will tend to be tailored for specific parent algorithms,...
CartesianVector class.
ParticleFlowObject class.
HitType
Calorimeter hit type enum.
std::vector< CartesianVector > CartesianPointVector
MANAGED_CONTAINER< const CaloHit * > CaloHitList
StatusCode
The StatusCode enum.