ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHG4CylinderGeom_Spacalv1.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHG4CylinderGeom_Spacalv1.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 // $$Id: PHG4CylinderGeom_Spacalv1.h,v 1.2 2014/08/12 03:49:12 jinhuang Exp $$
4 
12 #ifndef G4DETECTORS_PHG4CYLINDERGEOMSPACALV1_H
13 #define G4DETECTORS_PHG4CYLINDERGEOMSPACALV1_H
14 
15 #include "PHG4CylinderGeomv2.h"
16 
17 #include <iostream> // for cout, ostream
18 #include <map>
19 #include <string>
20 
21 class PHParameters;
22 
24 {
25  public:
28 
30 
32  {
33  sector_map.clear();
34  }
35 
36 // from PHObject
37  void identify(std::ostream &os = std::cout) const override;
38 
39 // from TObject
40  void Print(Option_t *option = "") const override;
41 
42  virtual void SetDefault();
43 
45  void ImportParameters(const PHParameters &param) override;
46 
48 
51 
52  double
54  {
55  return get_radius() + get_thickness();
56  }
57 
58  double
60  {
61  return get_radius() + get_thickness() / 2.;
62  }
63 
64  double
65  get_length() const
66  {
67  return get_zmax() - get_zmin();
68  }
69 
70  double
71  get_xpos() const
72  {
73  return xpos;
74  }
75 
76  void
77  set_xpos(double xpos)
78  {
79  this->xpos = xpos;
80  }
81 
82  double
83  get_ypos() const
84  {
85  return ypos;
86  }
87 
88  void
89  set_ypos(double ypos)
90  {
91  this->ypos = ypos;
92  }
93 
94  double
95  get_zpos() const
96  {
97  return zpos;
98  }
99 
100  void
101  set_zpos(double zpos)
102  {
103  this->zpos = zpos;
104  }
105 
107 
110 
111  virtual int
112  get_azimuthal_n_sec() const;
113 
114  virtual double
115  get_azimuthal_distance() const;
116 
117  virtual double
118  get_z_distance() const;
119 
121  typedef std::map<int, double> sector_map_t;
122 
124  const sector_map_t &
126  {
127  return sector_map;
128  }
129 
131  sector_map_t &
133  {
134  return sector_map;
135  }
136 
138  void
140 
142 
145 
146  double
148  {
150  }
151 
152  double
154  {
156  }
157 
158  void
159  set_fiber_clading_thickness(double fiberCladingThickness)
160  {
161  fiber_clading_thickness = fiberCladingThickness;
162  }
163 
164  double
166  {
167  return fiber_core_diameter;
168  }
169 
170  void
171  set_fiber_core_diameter(double fiberCoreDiameter)
172  {
173  fiber_core_diameter = fiberCoreDiameter;
174  }
175 
176  double
178  {
179  return fiber_distance;
180  }
181 
182  void
183  set_fiber_distance(double fiberDistance)
184  {
185  fiber_distance = fiberDistance;
186  }
187 
189 
192 
193  std::string
195  {
196  return absorber_mat;
197  }
198 
199  void
200  set_absorber_mat(const std::string &absorberMat)
201  {
202  absorber_mat = absorberMat;
203  }
204 
205  std::string
207  {
208  return fiber_clading_mat;
209  }
210 
211  void
212  set_fiber_clading_mat(const std::string &fiberCladingMat)
213  {
214  fiber_clading_mat = fiberCladingMat;
215  }
216 
217  std::string
219  {
220  return fiber_core_mat;
221  }
222 
223  void
224  set_fiber_core_mat(const std::string &fiberCoreMat)
225  {
226  fiber_core_mat = fiberCoreMat;
227  }
228 
230 
233 
234 
235  double
237  {
238  return get_fiber_core_diameter() / 10.;
239  }
240 
241  enum config_t
242  {
243 
248 
251 
254 
257 
260 
263 
266  };
267 
268  config_t
269  get_config() const
270  {
271  return config;
272  }
273 
274  void
276  {
277  this->config = config;
278  }
279 
280  bool
282  {
283  return virualize_fiber;
284  }
285 
286  virtual bool is_azimuthal_seg_visible() const
287  {
288  return false;
289  }
290 
291  void
292  set_virualize_fiber(bool virualizeFiber = true)
293  {
294  virualize_fiber = virualizeFiber;
295  }
296 
298  {
299  return construction_verbose;
300  }
301 
302  void
303  set_construction_verbose(int constructionVerbose)
304  {
305  construction_verbose = constructionVerbose;
306  }
307 
309 
310  protected:
311  std::string absorber_mat;
312  std::string fiber_core_mat;
313  std::string fiber_clading_mat;
314  double xpos;
315  double ypos;
316  double zpos;
323 
326 
327  ClassDefOverride(PHG4CylinderGeom_Spacalv1, 2)
328 };
329 
330 #endif