ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHG4CylinderGeom_Spacalv2.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHG4CylinderGeom_Spacalv2.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 // $$Id: PHG4CylinderGeom_Spacalv2.h,v 1.3 2014/08/28 22:18:35 jinhuang Exp $$
4 
12 #ifndef G4DETECTORS_PHG4CYLINDERGEOMSPACALV2_H
13 #define G4DETECTORS_PHG4CYLINDERGEOMSPACALV2_H
14 
16 
17 #include <cmath>
18 #include <iostream> // for cout, ostream
19 
20 class PHParameters;
21 
23 {
24 public:
26 
27 
29  {
30  }
31 
32 
33 // from PHObject
34  void identify(std::ostream& os = std::cout) const override;
35 
36 // from TObject
37  void Print(Option_t* option = "") const override;
38 
39  void SetDefault() override;
40 
42  void ImportParameters(const PHParameters & param) override;
43 
44  int get_azimuthal_n_sec() const override;
45 
46  virtual void set_azimuthal_n_sec(int azimuthalNSec);
47 
49  double
51  {
52  return azimuthal_tilt;
53  }
54 
56  void
57  set_azimuthal_tilt(double azimuthalTilt)
58  {
59  azimuthal_tilt = azimuthalTilt;
60  }
61 
62 
63  bool is_azimuthal_seg_visible() const override;
64 
65  virtual
66  void set_azimuthal_seg_visible(bool b = true);
67 
68  double get_polar_taper_ratio() const
69  {
70  return polar_taper_ratio;
71  }
72 
73  void
74  set_polar_taper_ratio(double polarTaperRatio)
75  {
76  polar_taper_ratio = polarTaperRatio;
77  }
78 
79  double get_half_polar_taper_angle() const;
80 
81  double
83 
84  double
85  get_sec_depth() const
86  {
87  const double available_depth = get_thickness()
88  - (sqrt(
89  (get_radius()) * (get_radius())
90  + (get_sec_azimuthal_width() / 2)
92  if (available_depth < get_sec_azimuthal_width())
93  return NAN;
94  else
95  return sqrt(
96  available_depth * available_depth
98  }
99 
100  double
102  {
103  return get_sec_azimuthal_width() - 0.0001;
104  }
105 
106  double
108  {
110  }
111 
112 
113  double get_assembly_spacing() const
114  {
115  return assembly_spacing;
116  }
117 
118  void
119  set_assembly_spacing(double assemblySpacing)
120  {
121  assembly_spacing = assemblySpacing;
122  }
123 
125  double
127 
129  double
131 
132 
133 protected:
134 
136 
142 
143  ClassDefOverride(PHG4CylinderGeom_Spacalv2,2)
144 
145 
146 };
147 
148 #endif