ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
VtxTrackFinder.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file VtxTrackFinder.h
1 #ifndef __VTXTRACKFINDER__
2 #define __VTXTRACKFINDER__
3 
4 #include "HelixHough.h"
5 #include <vector>
6 #include <set>
7 
8 class VtxTrackFinder : public HelixHough
9 {
10  public:
11  VtxTrackFinder(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);
12  virtual ~VtxTrackFinder(){}
13 
14  void finalize(std::vector<SimpleTrack3D>& input, std::vector<SimpleTrack3D>& output);
15  void findTracks(std::vector<SimpleHit3D>& hits, std::vector<SimpleTrack3D>& tracks);
16  void initEvent(std::vector<SimpleHit3D>& hits)
17  {
18  combos.clear();
19  }
20 
21  void setUsingVertex(bool usevtx){using_vertex = usevtx;}
22 
23  void setLayerResolution(std::vector<float>& lxy, std::vector<float>& lz)
24  {
25  layer_xy_resolution = lxy;
26  layer_z_resolution = lz;
27  }
28 
29  void setVertexResolution(float vxy, float vz)
30  {
31  vertex_sigma_xy = vxy;
32  vertex_sigma_z = vz;
33  }
34 
35  double fitTrack(SimpleTrack3D& track, std::vector<double>& chi2_hit);
36 
37  void setChi2Cut(double c){chi2_cut=c;}
38 
39  private:
41  std::vector<float> detector_radii;
42  std::vector<float> layer_xy_resolution;
43  std::vector<float> layer_z_resolution;
45  double chi2_cut;
46  std::set<std::vector<unsigned int> > combos;
47 };
48 
49 #endif