LArSoft  v06_85_00
Liquid Argon Software toolkit - http://larsoft.org/
LocalAsymmetryFeatureTool.h
Go to the documentation of this file.
1 
8 #ifndef LAR_LOCAL_ASYMMETRY_FEATURE_TOOL_H
9 #define LAR_LOCAL_ASYMMETRY_FEATURE_TOOL_H 1
10 
12 
13 namespace lar_content
14 {
15 
20 {
21 public:
26 
36  void Run(LArMvaHelper::MvaFeatureVector &featureVector, const VertexSelectionBaseAlgorithm * const pAlgorithm, const pandora::Vertex * const pVertex,
39 
40 private:
41  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
42 
51  float GetLocalAsymmetryForView(const pandora::CartesianVector &vertexPosition2D, const VertexSelectionBaseAlgorithm::SlidingFitDataList &slidingFitDataList) const;
52 
62  bool IncrementAsymmetryParameters(const float weight, const pandora::CartesianVector &clusterDirection,
63  pandora::CartesianVector &localWeightedDirectionSum) const;
64 
75  float CalculateLocalAsymmetry(const bool useEnergyMetrics, const pandora::CartesianVector &vertexPosition2D,
76  const pandora::ClusterVector &asymmetryClusters, const pandora::CartesianVector &localWeightedDirectionSum) const;
77 
80  unsigned int m_maxAsymmetryNClusters;
81 };
82 
83 } // namespace lar_content
84 
85 #endif // #ifndef LAR_LOCAL_ASYMMETRY_FEATURE_TOOL_H
float m_maxAsymmetryDistance
The max distance between cluster (any hit) and vertex to calculate asymmetry score.
MvaTypes::MvaFeatureVector MvaFeatureVector
Definition: LArMvaHelper.h:58
float CalculateLocalAsymmetry(const bool useEnergyMetrics, const pandora::CartesianVector &vertexPosition2D, const pandora::ClusterVector &asymmetryClusters, const pandora::CartesianVector &localWeightedDirectionSum) const
Calculate the local asymmetry feature.
void Run(LArMvaHelper::MvaFeatureVector &featureVector, const VertexSelectionBaseAlgorithm *const pAlgorithm, const pandora::Vertex *const pVertex, const VertexSelectionBaseAlgorithm::SlidingFitDataListMap &slidingFitDataListMap, const VertexSelectionBaseAlgorithm::ClusterListMap &, const VertexSelectionBaseAlgorithm::KDTreeMap &, const VertexSelectionBaseAlgorithm::ShowerClusterListMap &, const float, float &)
Run the tool.
float GetLocalAsymmetryForView(const pandora::CartesianVector &vertexPosition2D, const VertexSelectionBaseAlgorithm::SlidingFitDataList &slidingFitDataList) const
Get the local asymmetry feature in a given view.
std::map< pandora::HitType, const ShowerClusterList > ShowerClusterListMap
Map of shower cluster lists for passing to tools.
std::map< pandora::HitType, const pandora::ClusterList & > ClusterListMap
Map array of cluster lists for passing to tools.
bool IncrementAsymmetryParameters(const float weight, const pandora::CartesianVector &clusterDirection, pandora::CartesianVector &localWeightedDirectionSum) const
Increment the asymmetry parameters.
Header file for the vertex selection base algorithm class.
std::vector< art::Ptr< recob::Cluster > > ClusterVector
double weight
Definition: plottest35.C:25
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
std::map< pandora::HitType, const SlidingFitDataList > SlidingFitDataListMap
Map of sliding fit data lists for passing to tools.
float m_minAsymmetryCosAngle
The min opening angle cosine used to determine viability of asymmetry score.
std::map< pandora::HitType, const std::reference_wrapper< HitKDTree2D > > KDTreeMap
Map array of hit kd trees for passing to tools.
unsigned int m_maxAsymmetryNClusters
The max number of associated clusters to calculate the asymmetry.
MvaFeatureTool class template.
Definition: LArMvaHelper.h:27