ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHTpcSeedFinder.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHTpcSeedFinder.h
1 
7 #ifndef PHTPCSEEDFINDER_H_
8 #define PHTPCSEEDFINDER_H_
9 
10 #include <cmath> // for M_PI
11 #include <cstddef> // for size_t
12 #include <vector> // for vector
13 
16 
17 namespace kdfinder
18 {
19  template <class T>
20  class TrackCandidate;
21 }
22 
28 {
29  public:
31  virtual ~PHTpcSeedFinder() {}
32 
33  void set_options(double max_distance1 = 3.0, double triplet_angle1 = M_PI / 8, size_t minhits1 = 10,
34  double max_distance2 = 6.0, double triplet_angle2 = M_PI / 8, size_t minhits2 = 5,
35  size_t nthreads = 1)
36  {
37  mMaxDistance1 = max_distance1;
38  mTripletAngle1 = triplet_angle1;
39  mMinHits1 = minhits1;
40  mMaxDistance2 = max_distance2;
41  mTripletAngle2 = triplet_angle2;
42  mMinHits2 = minhits2;
43  mNThreads = nthreads;
44  }
45 
46  void set_optimization_remove_loopers(bool opt = false, double minr = 10.0, double maxr = 70.0)
47  {
48  mRemoveLoopers = opt;
49  mMinLooperRadius = minr;
50  mMaxLooperRadius = maxr;
51  }
52 
53  std::vector<kdfinder::TrackCandidate<double>*> findSeeds(TrkrClusterContainer* cluster_map, TrkrHitSetContainer* hitsets, double B /* magfield */);
54 
55  protected:
56  private:
57  double mMaxDistance1; // 3.0 /* max distance in cm*/,
58  double mTripletAngle1; // M_PI / 8 /* triplet angle */,
59  size_t mMinHits1; // 10 /* min hits to keep track */, // first iteration
60  double mMaxDistance2; // 6.0,
61  double mTripletAngle2; // M_PI / 8,
62  size_t mMinHits2; // 5, // second iteration params
63  size_t mNThreads; // 1 /* nthreads */,
64 
68 };
69 
70 #endif /* PHTPCSEEDFINDER_H_ */