LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
SeedFinderAlgBase.h
Go to the documentation of this file.
1 
8 #ifndef SeedFinderAlgBase_h
9 #define SeedFinderAlgBase_h
10 
11 #include "fhiclcpp/fwd.h"
13 
14 // Algorithm includes
16 
17 #include <vector>
18 //------------------------------------------------------------------------------------------------------------------------------------------
19 
20 namespace lar_cluster3d {
21  typedef std::pair<recob::Seed, reco::HitPairListPtr> SeedHitPairListPair;
22  typedef std::vector<SeedHitPairListPair> SeedHitPairListPairVec;
23 
28  public:
29  virtual ~SeedFinderAlgBase() = default;
34  virtual bool findTrackSeeds(reco::HitPairListPtr& hitPairListPtr,
35  reco::PrincipalComponents& inputPCA,
36  SeedHitPairListPairVec& seedHitPairVec) const = 0;
37 
38  protected:
44  {
45  return left->getArclenToPoca() < right->getArclenToPoca();
46  }
47  };
48 
55  {
56  return fabs(left->getArclenToPoca()) < fabs(right->getArclenToPoca());
57  }
58  };
59 
60  private:
61  };
62 
63 } // namespace lar_cluster3d
64 #endif
Define a comparator which will sort hits by arc length along a PCA axis.
constexpr auto const & right(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:102
SeedFinderAlgBase class.
bool operator()(const reco::ClusterHit3D *left, const reco::ClusterHit3D *right)
virtual ~SeedFinderAlgBase()=default
Define a comparator which will sort hits by the absolute value of arc length so hits are ordered clos...
std::list< const reco::ClusterHit3D * > HitPairListPtr
Definition: Cluster3D.h:326
constexpr auto const & left(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:94
std::vector< SeedHitPairListPair > SeedHitPairListPairVec
float getArclenToPoca() const
Definition: Cluster3D.h:167
std::pair< recob::Seed, reco::HitPairListPtr > SeedHitPairListPair
virtual bool findTrackSeeds(reco::HitPairListPtr &hitPairListPtr, reco::PrincipalComponents &inputPCA, SeedHitPairListPairVec &seedHitPairVec) const =0
Define the interface to take an input list of 3D hits and return seed candidates so hits are ordered ...
bool operator()(const reco::ClusterHit3D *left, const reco::ClusterHit3D *right)