ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHG4BlockCellGeom.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHG4BlockCellGeom.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef G4DETECTORS_PHG4BLOCKCELLGEOM_H
4 #define G4DETECTORS_PHG4BLOCKCELLGEOM_H
5 
6 #include <phool/PHObject.h>
7 
8 #include <iostream> // for cout, ostream
9 #include <string>
10 #include <utility> // for pair
11 
13 {
14  public:
16 
17  ~PHG4BlockCellGeom() override {}
18 
19 // from PHObject
20  void identify(std::ostream& os = std::cout) const override;
21 
22  int get_layer() const {return _layer;}
23  int get_binning() const {return _binning;}
24 
25  int get_zbins() const;
26  double get_zstep() const;
27  double get_zmin() const;
28 
29  int get_xbins() const;
30  double get_xstep() const;
31  double get_xmin() const;
32 
33  int get_etabins() const;
34  double get_etastep() const;
35  double get_etamin() const;
36 
37  std::pair<double, double> get_zbounds(const int ibin) const;
38  std::pair<double, double> get_etabounds(const int ibin) const;
39  std::pair<double, double> get_xbounds(const int ibin) const;
40 
41  double get_etacenter(const int ibin) const;
42  double get_zcenter(const int ibin) const;
43  double get_xcenter(const int ibin) const;
44 
45  int get_etabin(const double eta) const;
46  int get_zbin(const double z) const;
47  int get_xbin(const double x) const;
48 
49  void set_layer(const int i) {_layer = i;}
50  void set_binning(const int i) {_binning = i;}
51 
52  void set_zbins(const int i);
53  void set_zmin(const double z);
54  void set_zstep(const double z);
55 
56  void set_xbins(const int i);
57  void set_xstep(const double x);
58  void set_xmin(const double x);
59 
60  void set_etabins(const int i);
61  void set_etamin(const double z);
62  void set_etastep(const double z);
63 
64  protected:
65  void check_binning_method(const int i) const;
66  void check_binning_method_eta(const std::string & src = "") const;
67  void check_binning_method_x(const std::string & src = "") const;
68  std::string methodname(const int i) const;
69 
70  int _layer;
71  int _binning;
72 
73  int _nzbins;
74  double _zmin;
75  double _zstep;
76 
77  int _nxbins;
78  double _xmin;
79  double _xstep;
80 
81  ClassDefOverride(PHG4BlockCellGeom,1)
82 };
83 
84 #endif