LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
LArPcaHelper.h
Go to the documentation of this file.
1 
8 #ifndef LAR_PCA_HELPER_H
9 #define LAR_PCA_HELPER_H 1
10 
11 #include "Objects/CartesianVector.h"
12 
13 #include <vector>
14 
15 namespace lar_content
16 {
17 
22 {
23 public:
24  typedef pandora::CartesianVector EigenValues;
25  typedef std::vector<pandora::CartesianVector> EigenVectors;
26  typedef std::pair<const pandora::CartesianVector, double> WeightedPoint;
27  typedef std::vector<WeightedPoint> WeightedPointVector;
28 
37  template <typename T>
38  static void RunPca(const T &t, pandora::CartesianVector &centroid, EigenValues &outputEigenValues, EigenVectors &outputEigenVectors);
39 
48  static void RunPca(const WeightedPointVector &pointVector, pandora::CartesianVector &centroid, EigenValues &outputEigenValues,
49  EigenVectors &outputEigenVectors);
50 };
51 
52 } // namespace lar_content
53 
54 #endif // #ifndef LAR_PCA_HELPER_H
pandora::CartesianVector EigenValues
Definition: LArPcaHelper.h:24
std::pair< const pandora::CartesianVector, double > WeightedPoint
Definition: LArPcaHelper.h:26
std::vector< WeightedPoint > WeightedPointVector
Definition: LArPcaHelper.h:27
static void RunPca(const T &t, pandora::CartesianVector &centroid, EigenValues &outputEigenValues, EigenVectors &outputEigenVectors)
Run principal component analysis using input calo hits (TPC_VIEW_U,V,W or TPC_3D; all treated as 3D p...
std::vector< pandora::CartesianVector > EigenVectors
Definition: LArPcaHelper.h:25
LArPcaHelper class.
Definition: LArPcaHelper.h:21