ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
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
23
class
PHG4CylinderGeom_Spacalv1
:
public
PHG4CylinderGeomv2
24
{
25
public
:
28
29
PHG4CylinderGeom_Spacalv1
();
30
31
~PHG4CylinderGeom_Spacalv1
()
override
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
¶m)
override
;
46
48
51
52
double
53
get_max_radius
()
const
54
{
55
return
get_radius
() +
get_thickness
();
56
}
57
58
double
59
get_half_radius
()
const
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
&
125
get_sector_map
()
const
126
{
127
return
sector_map
;
128
}
129
131
sector_map_t
&
132
get_sector_map
()
133
{
134
return
sector_map
;
135
}
136
138
void
139
init_default_sector_map
();
140
142
145
146
double
147
get_fiber_outer_r
()
const
148
{
149
return
get_fiber_clading_thickness
() +
get_fiber_core_diameter
() / 2;
150
}
151
152
double
153
get_fiber_clading_thickness
()
const
154
{
155
return
fiber_clading_thickness
;
156
}
157
158
void
159
set_fiber_clading_thickness
(
double
fiberCladingThickness)
160
{
161
fiber_clading_thickness
= fiberCladingThickness;
162
}
163
164
double
165
get_fiber_core_diameter
()
const
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
177
get_fiber_distance
()
const
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
194
get_absorber_mat
()
const
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
206
get_fiber_clading_mat
()
const
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
218
get_fiber_core_mat
()
const
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
236
get_fiber_core_step_size
()
const
237
{
238
return
get_fiber_core_diameter
() / 10.;
239
}
240
241
enum
config_t
242
{
243
245
kNonProjective
= 0,
247
k1DProjectiveSpacal
=
kNonProjective
,
248
250
kFullProjective_2DTaper
= 2,
251
253
kFullProjective_2DTaper_SameLengthFiberPerTower
= 3,
254
256
kFullProjective_2DTaper_Tilted
= 4,
257
259
kFullProjective_2DTaper_Tilted_SameLengthFiberPerTower
= 5,
260
262
k2DProjectiveSpacal
=
kFullProjective_2DTaper_Tilted_SameLengthFiberPerTower
,
263
265
kInvalidSpacalConfig
266
};
267
268
config_t
269
get_config
()
const
270
{
271
return
config
;
272
}
273
274
void
275
set_config
(
config_t
config
)
276
{
277
this->config =
config
;
278
}
279
280
bool
281
is_virualize_fiber
()
const
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
297
int
get_construction_verbose
()
const
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
;
317
double
fiber_core_diameter
;
318
double
fiber_clading_thickness
;
319
double
fiber_distance
;
320
config_t
config
;
321
bool
virualize_fiber
;
322
int
construction_verbose
;
323
325
sector_map_t
sector_map
;
326
327
ClassDefOverride(
PHG4CylinderGeom_Spacalv1
, 2)
328
};
329
330
#endif
coresoftware
blob
master
simulation
g4simulation
g4detectors
PHG4CylinderGeom_Spacalv1.h
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:41
using
1.8.2 with
ECCE GitHub integration