ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ZHough_Cylindrical.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file ZHough_Cylindrical.h
1 #ifndef __ZHOUGH_GRFITTER__
2 #define __ZHOUGH_GRFITTER__
3 
4 
5 #include "ZHough.h"
6 
7 
8 class ZHough_Cylindrical : public ZHough
9 {
10  public:
11  ZHough_Cylindrical(unsigned int z0_nbin, unsigned int theta_nbin, ZResolution& min_resolution, ZResolution& max_resolution, ZRange& range, double sxy, double sz);
13 
14  void findTracks(unsigned int zoomlevel, float xydiffcut, unsigned int max_hits, unsigned int tracks_per_hit, double chi2_cut, float max_kappa_cut, std::vector<SimpleTrack3D>& tracks, std::vector<SimpleHit3D>& hits, float min_k, float max_k, float min_phi, float max_phi, float min_d, float max_d, float min_z0, float max_z0, float min_theta, float max_theta, std::vector<float>& params);
15 
16  void findTracksCombo_noVertex(std::vector<SimpleHit3D>& comb_hits, unsigned int zoomlevel, float xydiffcut, unsigned int max_hits, unsigned int tracks_per_hit, double chi2_cut, float max_kappa_cut, std::vector<SimpleTrack3D>& tracks, std::vector<SimpleHit3D>& hits, float min_k, float max_k, float min_phi, float max_phi, float min_d, float max_d, float min_z0, float max_z0, float min_theta, float max_theta, std::vector<float>& params);
17 
18  void findTracksCombo_withVertex(std::vector<SimpleHit3D>& comb_hits, unsigned int zoomlevel, float xydiffcut, unsigned int max_hits, unsigned int tracks_per_hit, double chi2_cut, float max_kappa_cut, std::vector<SimpleTrack3D>& tracks, std::vector<SimpleHit3D>& hits, float min_k, float max_k, float min_phi, float max_phi, float min_d, float max_d, float min_z0, float max_z0, float min_theta, float max_theta, std::vector<float>& params);
19 
20  void setNLayers(unsigned int n){nlayers=n;}
21 
22  double fitTrack(SimpleTrack3D& track, std::vector<double>& chi2_hit);
23 
24  void setLayerResolution(std::vector<double>& lxy, std::vector<double>& lz)
25  {
26  layer_xy_resolution = lxy;
27  layer_z_resolution = lz;
28  }
29 
30  void setVertexResolution(double vxy, double vz)
31  {
32  vertex_sigma_xy = vxy;
33  vertex_sigma_z = vz;
34  }
35 
36  double getLayerResolution_xy(unsigned int l){return layer_xy_resolution[l];}
37  double getLayerResolution_z(unsigned int l){return layer_z_resolution[l];}
38 
39  private:
40  unsigned int nlayers;
41  std::vector<double> layer_xy_resolution;
42  std::vector<double> layer_z_resolution;
44 };
45 
46 
47 
48 
49 #endif