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_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
15
#include "
PHG4CylinderGeom_Spacalv1.h
"
16
17
#include <cmath>
18
#include <iostream>
// for cout, ostream
19
20
class
PHParameters
;
21
22
class
PHG4CylinderGeom_Spacalv2
:
public
PHG4CylinderGeom_Spacalv1
23
{
24
public
:
25
PHG4CylinderGeom_Spacalv2
();
26
27
28
~PHG4CylinderGeom_Spacalv2
()
override
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
50
get_azimuthal_tilt
()
const
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
82
get_sec_azimuthal_width
()
const
;
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)
91
* (
get_sec_azimuthal_width
() / 2)) -
get_radius
()) -
get_assembly_spacing
();
92
if
(available_depth <
get_sec_azimuthal_width
())
93
return
NAN;
94
else
95
return
sqrt(
96
available_depth * available_depth
97
-
get_sec_azimuthal_width
() *
get_sec_azimuthal_width
());
98
}
99
100
double
101
get_block_width
()
const
102
{
103
return
get_sec_azimuthal_width
() - 0.0001;
104
}
105
106
double
107
get_block_depth
()
const
108
{
109
return
sqrt(
get_sec_depth
()*
get_sec_depth
() -
get_polar_taper_ratio
()*
get_polar_taper_ratio
()*
get_block_width
()*
get_block_width
()) -
get_assembly_spacing
();
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
126
get_reg_fiber_grid_distance_taper
()
const
;
127
129
double
130
get_reg_fiber_grid_distance_nontaper
()
const
;
131
132
133
protected
:
134
135
int
azimuthal_n_sec
;
136
138
double
azimuthal_tilt
;
139
bool
azimuthal_seg_visible
;
140
double
polar_taper_ratio
;
141
double
assembly_spacing
;
142
143
ClassDefOverride(
PHG4CylinderGeom_Spacalv2
,2)
144
145
146
};
147
148
#endif
coresoftware
blob
master
simulation
g4simulation
g4detectors
PHG4CylinderGeom_Spacalv2.h
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:41
using
1.8.2 with
ECCE GitHub integration