LArSoft  v10_04_05
Liquid Argon Software toolkit - https://larsoft.org/
PrincipalComponentsAlg.h
Go to the documentation of this file.
1 
8 #ifndef PrincipalComponentsAlg_h
9 #define PrincipalComponentsAlg_h
10 
11 // Framework Includese
12 #include "fhiclcpp/fwd.h"
13 
14 // LArSoft includes
16 namespace detinfo {
17  class DetectorPropertiesData;
18 }
19 
20 // Algorithm includes
22 
23 // Eigen
24 #include <Eigen/Core>
25 
26 namespace lar_cluster3d {
27 
32  public:
39 
43  void PCAAnalysis(const detinfo::DetectorPropertiesData& detProp,
44  const reco::HitPairListPtr& hitPairVector,
46  float doca3DScl = 3.) const;
47 
48  void PCAAnalysis_3D(const reco::HitPairListPtr& hitPairList,
50  bool skeletonOnly = false) const;
51 
52  void PCAAnalysis_2D(const detinfo::DetectorPropertiesData& detProp,
53  const reco::HitPairListPtr& hitPairVector,
55  bool updateAvePos = false) const;
56 
57  void PCAAnalysis_calc3DDocas(const reco::HitPairListPtr& hitPairVector,
58  const reco::PrincipalComponents& pca) const;
59 
60  void PCAAnalysis_calc2DDocas(const reco::Hit2DListPtr& hit2DVector,
61  const reco::PrincipalComponents& pca) const;
62 
63  int PCAAnalysis_reject2DOutliers(const reco::HitPairListPtr& hitPairVector,
64  float aveHitDoca) const;
65 
66  int PCAAnalysis_reject3DOutliers(const reco::HitPairListPtr& hitPairVector,
67  const reco::PrincipalComponents& pca,
68  float aveHitDoca) const;
69 
70  private:
71  float m_parallel;
72  const geo::WireReadoutGeom* m_wireReadoutGeom; // pointer to the Geometry service
73  };
74 
75 } // namespace lar_cluster3d
76 #endif
float m_parallel
means lines are parallel
std::list< const reco::ClusterHit2D * > Hit2DListPtr
export some data structure definitions
Definition: Cluster3D.h:325
Interface for a class providing readout channel mapping to geometry.
std::list< const reco::ClusterHit3D * > HitPairListPtr
Definition: Cluster3D.h:326
General LArSoft Utilities.
const geo::WireReadoutGeom * m_wireReadoutGeom