LArSoft  v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
ShowerAsymmetryFeatureTool.h
Go to the documentation of this file.
1 
8 #ifndef LAR_SHOWER_ASYMMETRY_FEATURE_TOOL_H
9 #define LAR_SHOWER_ASYMMETRY_FEATURE_TOOL_H 1
10 
12 
14 
15 namespace lar_content
16 {
17 
22 {
23 public:
28 
38  void Run(LArMvaHelper::MvaFeatureVector &featureVector, const VertexSelectionBaseAlgorithm * const pAlgorithm, const pandora::Vertex * const pVertex,
41  const float, float &);
42 
43 private:
44  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
45 
54  float GetShowerAsymmetryForView(const pandora::CartesianVector &vertexPosition2D, const VertexSelectionBaseAlgorithm::ShowerClusterList &showerClusterList) const;
55 
64  bool ShouldUseShowerCluster(const pandora::CartesianVector &vertexPosition, const VertexSelectionBaseAlgorithm::ShowerCluster &showerCluster) const;
65 
75  void CalculateAsymmetryParameters(const VertexSelectionBaseAlgorithm::ShowerCluster &showerCluster, const float projectedVtxPosition,
76  const pandora::CartesianVector &showerDirection, float &beforeVtxEnergy, float &afterVtxEnergy) const;
77 
79 };
80 
81 } // namespace lar_content
82 
83 #endif // #ifndef LAR_SHOWER_ASYMMETRY_FEATURE_TOOL_H
MvaTypes::MvaFeatureVector MvaFeatureVector
Definition: LArMvaHelper.h:58
void Run(LArMvaHelper::MvaFeatureVector &featureVector, const VertexSelectionBaseAlgorithm *const pAlgorithm, const pandora::Vertex *const pVertex, const VertexSelectionBaseAlgorithm::SlidingFitDataListMap &, const VertexSelectionBaseAlgorithm::ClusterListMap &, const VertexSelectionBaseAlgorithm::KDTreeMap &, const VertexSelectionBaseAlgorithm::ShowerClusterListMap &showerClusterListMap, const float, float &)
Run the tool.
void CalculateAsymmetryParameters(const VertexSelectionBaseAlgorithm::ShowerCluster &showerCluster, const float projectedVtxPosition, const pandora::CartesianVector &showerDirection, float &beforeVtxEnergy, float &afterVtxEnergy) const
Calculate the parameters for the asymmetry calculation.
std::map< pandora::HitType, const ShowerClusterList > ShowerClusterListMap
Map of shower cluster lists for passing to tools.
float m_vertexClusterDistance
The distance around the vertex to look for shower clusters.
float GetShowerAsymmetryForView(const pandora::CartesianVector &vertexPosition2D, const VertexSelectionBaseAlgorithm::ShowerClusterList &showerClusterList) const
Get the shower asymmetry feature for a given view.
Header file for the lar two dimensional sliding fit result class.
std::map< pandora::HitType, const pandora::ClusterList & > ClusterListMap
Map array of cluster lists for passing to tools.
Header file for the vertex selection base algorithm class.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
std::map< pandora::HitType, const SlidingFitDataList > SlidingFitDataListMap
Map of sliding fit data lists for passing to tools.
std::map< pandora::HitType, const std::reference_wrapper< HitKDTree2D > > KDTreeMap
Map array of hit kd trees for passing to tools.
MvaFeatureTool class template.
Definition: LArMvaHelper.h:27
bool ShouldUseShowerCluster(const pandora::CartesianVector &vertexPosition, const VertexSelectionBaseAlgorithm::ShowerCluster &showerCluster) const
Get whether we should use a given shower cluster for asymmetry calculation.