EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HelixHoughSpace_v1.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file HelixHoughSpace_v1.h
1 #ifndef G4HOUGH_HELIXHOUGHSPACEV1_H
2 #define G4HOUGH_HELIXHOUGHSPACEV1_H
3 
4 #include "HelixHoughSpace.h"
5 
6 #include <iostream> // for cout, ostream
7 #include <vector> // for vector
8 
9 class PHObject;
10 
12 
13 public:
14 
16  HelixHoughSpace_v1(const HelixHoughSpace_v1& hough_space);
17  ~HelixHoughSpace_v1() override {};
18 
19 
20  // The "standard PHObject response" functions...
21  void identify(std::ostream &/*os*/=std::cout) const override {};
22  void Reset() override {}
23  int isValid() const override {return 1;}
24  PHObject* CloneMe() const override {return new HelixHoughSpace_v1(*this);}
25 
26  void add_one_zoom(std::vector<unsigned int>& one_zoom) override;
27  unsigned int get_max_zoom() override;
28  void print_zoom_profile() override;
29  void print_para_range() override;
30 
31  void set_kappa_min(float kappa_min) override{_para_min[0] = kappa_min;}
32  float get_kappa_min() const override {return _para_min[0];}
33  void set_kappa_max(float kappa_max) override {_para_max[0] = kappa_max;}
34  float get_kappa_max() const override {return _para_max[0];}
35  void set_phi_min(float phi_min) override {_para_min[1] = phi_min;}
36  float get_phi_min() const override {return _para_min[1];}
37  void set_phi_max(float phi_max) override {_para_max[1] = phi_max;}
38  float get_phi_max() const override {return _para_max[1];}
39  void set_d_min(float d_min) override {_para_min[2] = d_min;}
40  float get_d_min() const override {return _para_min[2];}
41  void set_d_max(float d_max) override {_para_max[2] = d_max;}
42  float get_d_max() const override {return _para_max[2];}
43  void set_dzdl_min(float dzdl_min) override {_para_min[3] = dzdl_min;}
44  float get_dzdl_min() const override {return _para_min[3];}
45  void set_dzdl_max(float dzdl_max) override {_para_max[3] = dzdl_max;}
46  float get_dzdl_max() const override {return _para_max[3];}
47  void set_z0_min(float z0_min) override {_para_min[4] = z0_min;}
48  float get_z0_min() const override {return _para_min[4];}
49  void set_z0_max(float z0_max) override {_para_max[4] = z0_max;}
50  float get_z0_max() const override {return _para_max[4];}
51 
52  unsigned int get_n_kappa_bins(unsigned int zoomlevel) const override {return _zoom_profile[zoomlevel][0];}
53  unsigned int get_n_phi_bins(unsigned int zoomlevel) const override {return _zoom_profile[zoomlevel][1];}
54  unsigned int get_n_d_bins(unsigned int zoomlevel) const override {return _zoom_profile[zoomlevel][2];}
55  unsigned int get_n_dzdl_bins(unsigned int zoomlevel) const override {return _zoom_profile[zoomlevel][3];}
56  unsigned int get_n_z0_bins(unsigned int zoomlevel) const override {return _zoom_profile[zoomlevel][4];}
57 
58  float get_kappa_bin_size(unsigned int zoomlevel) const override;
59  float get_phi_bin_size(unsigned int zoomlevel) const override;
60  float get_d_bin_size(unsigned int zoomlevel) const override;
61  float get_dzdl_bin_size(unsigned int zoomlevel) const override;
62  float get_z0_bin_size(unsigned int zoomlevel) const override;
63 /*
64  float get_kappa_center(unsigned int zoomlevel, std::vector<unsigned int>& v_ik) const;
65  float get_phi_center(unsigned int zoomlevel, std::vector<unsigned int>& v_ip) const;
66  float get_d_center(unsigned int zoomlevel, std::vector<unsigned int>& v_id) const;
67  float get_dzdl_center(unsigned int zoomlevel, std::vector<unsigned int>& v_il) const;
68  float get_z0_center(unsigned int zoomlevel, std::vector<unsigned int>& v_iz) const;
69 */
70  unsigned int get_kappa_bin(unsigned int zoomlevel, float kappa) const override;
71  unsigned int get_phi_bin(unsigned int zoomlevel, float phi) const override;
72  unsigned int get_d_bin(unsigned int zoomlevel, float d) const override;
73  unsigned int get_dzdl_bin(unsigned int zoomlevel, float dzdl) const override;
74  unsigned int get_z0_bin(unsigned int zoomlevel, float z0) const override;
75 
76  unsigned int get_bin(unsigned int zoomlevel, unsigned int* bins) const override;
77 
78 private:
79 
80  float _para_min[5];
81  float _para_max[5];
82 
83  unsigned int _zoom_profile[ZOOMLEVEL_MAX][5];
84  unsigned int _max_zoom;
85 
87 };
88 
89 #endif