ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
NHitSeedFinder.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file NHitSeedFinder.h
1 #ifndef __NHITSEEDFINDER__
2 #define __NHITSEEDFINDER__
3 
4 #include "HelixHough.h"
5 #include <vector>
6 #include <set>
7 #include <map>
8 
9 class NHitSeedFinder : public HelixHough
10 {
11  public:
12  NHitSeedFinder(std::vector<float>& detrad, unsigned int n_phi, unsigned int n_d, unsigned int n_k, unsigned int n_dzdl, unsigned int n_z0, HelixResolution& min_resolution, HelixResolution& max_resolution, HelixRange& range);
13  virtual ~NHitSeedFinder(){}
14 
15  void finalize(std::vector<SimpleTrack3D>& input, std::vector<SimpleTrack3D>& output);
16  void findTracks(std::vector<SimpleHit3D>& hits, std::vector<SimpleTrack3D>& tracks);
17  void find4Tracks(std::vector<SimpleHit3D>& hits, std::vector<SimpleTrack3D>& tracks);
18  void find5Tracks(std::vector<SimpleHit3D>& hits, std::vector<SimpleTrack3D>& tracks);
19  void find6Tracks(std::vector<SimpleHit3D>& hits, std::vector<SimpleTrack3D>& tracks);
20  void initEvent(std::vector<SimpleHit3D>&)
21  {
22  combos.clear();
23  phis.clear();
24  }
25 
26  void setUsingVertex(bool usevtx){using_vertex = usevtx;}
27 
28  void setSeedMode(int seedmode){seed_mode = seedmode;}
29 
30  void setLayerResolution(std::vector<float>& lxy, std::vector<float>& lz)
31  {
32  layer_xy_resolution = lxy;
33  layer_z_resolution = lz;
34  }
35 
36  void setVertexResolution(float vxy, float vz)
37  {
38  vertex_sigma_xy = vxy;
39  vertex_sigma_z = vz;
40  }
41 
42  double fitTrack(SimpleTrack3D& track, std::vector<double>& chi2_hit);
43 
44  void setChi2Cut(double c){chi2_cut=c;}
45 
46  private:
48  int seed_mode; //switches between fitTrack seeding algorithms
49  std::vector<float> detector_radii;
50  std::vector<float> layer_xy_resolution;
51  std::vector<float> layer_z_resolution;
53  double chi2_cut;
54  std::set<std::vector<unsigned int> > combos;
55  std::map<unsigned int, float> phis;
56 };
57 
58 
59 #endif