LArSoft  v10_04_05
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 #include "fhiclcpp/fwd.h"
12 
13 // LArSoft includes
18 
19 // ROOT includes
20 class TVector3;
21 
22 //------------------------------------------------------------------------------------------------------------------------------------------
23 
24 namespace lar_cluster3d {
25 
29  class PCASeedFinderAlg final : public SeedFinderAlgBase {
30  public:
37 
41  bool findTrackSeeds(reco::HitPairListPtr& hitPairListPtr,
42  reco::PrincipalComponents& inputPCA,
43  SeedHitPairListPairVec& seedHitMap) const override;
44 
45  private:
49  bool getHitsAtEnd(reco::HitPairListPtr& hit3DList, reco::PrincipalComponents& seedPca) const;
50 
51  void LineFit2DHits(const reco::HitPairListPtr& hitList,
52  double XOrigin,
53  TVector3& Pos,
54  TVector3& Dir,
55  double& ChiDOF) const;
56 
57  geo::WireReadoutGeom const* m_wireReadoutGeom; // pointer to the Geometry service
58 
59  double m_gapDistance;
60  size_t m_numSeed2DHits;
62 
63  PrincipalComponentsAlg m_pcaAlg; // For running Principal Components Analysis
64  };
65 
66 } // namespace lar_cluster3d
67 #endif
bool getHitsAtEnd(reco::HitPairListPtr &hit3DList, reco::PrincipalComponents &seedPca) const
Separate function to find hits at the ends of the input hits.
SeedFinderAlgBase class.
PrincipalComponentsAlg m_pcaAlg
geo::WireReadoutGeom const * m_wireReadoutGeom
This is intended to define an interface to all Seed finder algorithms employed by the 3D clustering...
Interface for a class providing readout channel mapping to geometry.
bool findTrackSeeds(reco::HitPairListPtr &hitPairListPtr, reco::PrincipalComponents &inputPCA, SeedHitPairListPairVec &seedHitMap) const override
Given the list of hits this will search for candidate Seed objects and return them.
std::list< const reco::ClusterHit3D * > HitPairListPtr
Definition: Cluster3D.h:326
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.
PCASeedFinderAlg(fhicl::ParameterSet const &pset)
Constructor.
std::vector< SeedHitPairListPair > SeedHitPairListPairVec
PCASeedFinderAlg class.
void LineFit2DHits(const reco::HitPairListPtr &hitList, double XOrigin, TVector3 &Pos, TVector3 &Dir, double &ChiDOF) const