LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
PCASeedFinderAlg.h
Go to the documentation of this file.
1 
7 #ifndef PCASeedFinderAlg_h
8 #define PCASeedFinderAlg_h
9 
10 // Framework Includes
11 namespace fhicl {
12  class ParameterSet;
13 }
14 
15 // LArSoft includes
19 namespace geo {
20  class Geometry;
21 }
22 
23 // ROOT includes
24 class TVector3;
25 
26 //------------------------------------------------------------------------------------------------------------------------------------------
27 
28 namespace lar_cluster3d {
29 
33  class PCASeedFinderAlg final : public SeedFinderAlgBase {
34  public:
41 
45  bool findTrackSeeds(reco::HitPairListPtr& hitPairListPtr,
46  reco::PrincipalComponents& inputPCA,
47  SeedHitPairListPairVec& seedHitMap) const override;
48 
49  private:
53  bool getHitsAtEnd(reco::HitPairListPtr& hit3DList, reco::PrincipalComponents& seedPca) const;
54 
55  void LineFit2DHits(const reco::HitPairListPtr& hitList,
56  double XOrigin,
57  TVector3& Pos,
58  TVector3& Dir,
59  double& ChiDOF) const;
60 
61  geo::Geometry const* m_geometry; // pointer to the Geometry service
62 
63  double m_gapDistance;
64  size_t m_numSeed2DHits;
66 
67  PrincipalComponentsAlg m_pcaAlg; // For running Principal Components Analysis
68  };
69 
70 } // namespace lar_cluster3d
71 #endif
geo::Geometry const * m_geometry
SeedFinderAlgBase class.
PrincipalComponentsAlg m_pcaAlg
This is intended to define an interface to all Seed finder algorithms employed by the 3D clustering...
parameter set interface
std::list< const reco::ClusterHit3D * > HitPairListPtr
Definition: Cluster3D.h:326
The geometry of one entire detector, as served by art.
Definition: Geometry.h:181
This header file defines the interface to a principal components analysis designed to be used within ...
double m_minAllowedCosAng
The minimum cos(ang) between input and seed axes.
std::vector< SeedHitPairListPair > SeedHitPairListPairVec
PCASeedFinderAlg class.
Namespace collecting geometry-related classes utilities.