EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RawTowerGeomContainer_Cylinderv1.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file RawTowerGeomContainer_Cylinderv1.h
1 #ifndef CALOBASE_RAWTOWERGEOMCONTAINER_CYLINDERV1_H
2 #define CALOBASE_RAWTOWERGEOMCONTAINER_CYLINDERV1_H
3 
5 
6 #include "RawTowerDefs.h"
7 
8 #include <iostream>
9 #include <utility>
10 #include <vector>
11 
16 {
17  public:
21 
22  void
23  identify(std::ostream& os = std::cout) const override;
24 
25  void Reset() override;
26 
27  double
28  get_radius() const override
29  {
30  return radius;
31  }
32 
33  double
34  get_thickness() const override
35  {
36  return thickness;
37  }
38 
39  int get_phibins() const override
40  {
41  return phi_bound_map.size();
42  }
43  int get_etabins() const override
44  {
45  return eta_bound_map.size();
46  }
47 
48  std::pair<double, double>
49  get_phibounds(const int ibin) const override;
50  std::pair<double, double>
51  get_etabounds(const int ibin) const override;
52 
53  double
54  get_etacenter(const int ibin) const override;
55 
56  double
57  get_phicenter(const int ibin) const override;
58 
59  int get_etabin(const double eta) const override;
60  int get_phibin(const double phi) const override;
61 
62  void
63  set_radius(const double r) override
64  {
65  radius = r;
66  }
67  void
68  set_thickness(const double t) override
69  {
70  thickness = t;
71  }
72  void
73  set_phibins(const int i) override;
74  void
75  set_etabins(const int i) override;
76 
77  void
78  set_etabounds(const int ibin, const std::pair<double, double>& bounds) override;
79  void
80  set_phibounds(const int ibin, const std::pair<double, double>& bounds) override;
81 
82  protected:
83  double radius;
84  double thickness;
85 
86  typedef std::pair<double, double> bound_t;
87  typedef std::vector<bound_t> bound_map_t;
88 
91 
92  ClassDefOverride(RawTowerGeomContainer_Cylinderv1, 1)
93 };
94 
95 #endif