LArSoft  v06_85_00
Liquid Argon Software toolkit - http://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/ParameterSet.h"
12 
15 
16 // LArSoft includes
19 
20 // Algorithm includes
22 
23 // ROOT includes
24 #include "TCanvas.h"
25 #include "TFrame.h"
26 #include "TH2D.h"
27 
28 //------------------------------------------------------------------------------------------------------------------------------------------
29 
30 namespace lar_cluster3d
31 {
32 
36 class PCASeedFinderAlg : virtual public SeedFinderAlgBase
37 {
38 public:
45 
49  virtual ~PCASeedFinderAlg();
50 
54  virtual void reconfigure(fhicl::ParameterSet const &pset);
55 
59  virtual bool findTrackSeeds(reco::HitPairListPtr& hitPairListPtr,
60  reco::PrincipalComponents& inputPCA,
61  SeedHitPairListPairVec& seedHitMap) const;
62 
63 private:
64 
68  bool getHitsAtEnd(reco::HitPairListPtr& hit3DList, reco::PrincipalComponents& seedPca) const;
69 
70  void LineFit2DHits(const reco::HitPairListPtr& hitList, double XOrigin, TVector3& Pos, TVector3& Dir, double& ChiDOF) const;
71 
72  geo::Geometry* m_geometry; // pointer to the Geometry service
73  // const detinfo::DetectorProperties* m_detector; // Pointer to the detector properties
74 
75  double m_gapDistance;
76  size_t m_numSeed2DHits;
78 
79  PrincipalComponentsAlg m_pcaAlg; // For running Principal Components Analysis
80 };
81 
82 } // namespace lar_cluster3d
83 #endif
std::vector< SeedHitPairListPair > SeedHitPairListPairVec
bool getHitsAtEnd(reco::HitPairListPtr &hit3DList, reco::PrincipalComponents &seedPca) const
Separate function to find hits at the ends of the input hits.
SeedFinderAlgBase class.
virtual bool findTrackSeeds(reco::HitPairListPtr &hitPairListPtr, reco::PrincipalComponents &inputPCA, SeedHitPairListPairVec &seedHitMap) const
Given the list of hits this will search for candidate Seed objects and return them.
PrincipalComponentsAlg m_pcaAlg
virtual void reconfigure(fhicl::ParameterSet const &pset)
a handler for the case where the algorithm control parameters are to be reset
This is intended to define an interface to all Seed finder algorithms employed by the 3D clustering...
std::list< const reco::ClusterHit3D * > HitPairListPtr
Definition: Cluster3D.h:315
The geometry of one entire detector, as served by art.
Definition: Geometry.h:110
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.
virtual ~PCASeedFinderAlg()
Destructor.
PCASeedFinderAlg(fhicl::ParameterSet const &pset)
Constructor.
PCASeedFinderAlg class.
void LineFit2DHits(const reco::HitPairListPtr &hitList, double XOrigin, TVector3 &Pos, TVector3 &Dir, double &ChiDOF) const
art framework interface to geometry description