Analysis Software
Documentation for
sPHENIX
simulation software
Home page
Related Pages
Modules
Namespaces
Classes
Files
Examples
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
~PHG4CylinderGeom_Spacalv2
()
override
28
{
29
}
30
31
// from PHObject
32
void
identify
(std::ostream&
os
= std::cout)
const override
;
33
34
// from TObject
35
void
Print
(Option_t* option =
""
)
const override
;
36
37
// cppcheck-suppress virtualCallInConstructor
38
void
SetDefault
()
override
;
39
41
void
ImportParameters
(
const
PHParameters
& param)
override
;
42
43
int
get_azimuthal_n_sec
()
const override
;
44
45
virtual
void
set_azimuthal_n_sec
(
int
azimuthalNSec);
46
48
double
49
get_azimuthal_tilt
()
const
50
{
51
return
azimuthal_tilt
;
52
}
53
55
void
56
set_azimuthal_tilt
(
double
azimuthalTilt)
57
{
58
azimuthal_tilt
= azimuthalTilt;
59
}
60
61
bool
is_azimuthal_seg_visible
()
const override
;
62
63
virtual
void
set_azimuthal_seg_visible
(
bool
b
=
true
);
64
65
double
get_polar_taper_ratio
()
const
66
{
67
return
polar_taper_ratio
;
68
}
69
70
void
71
set_polar_taper_ratio
(
double
polarTaperRatio)
72
{
73
polar_taper_ratio
= polarTaperRatio;
74
}
75
76
double
get_half_polar_taper_angle
()
const
;
77
78
double
79
get_sec_azimuthal_width
()
const
;
80
81
double
82
get_sec_depth
()
const
83
{
84
const
double
available_depth =
get_thickness
() - (sqrt((
get_radius
()) * (
get_radius
()) + (
get_sec_azimuthal_width
() / 2) * (
get_sec_azimuthal_width
() / 2)) -
get_radius
()) -
get_assembly_spacing
();
85
if
(available_depth <
get_sec_azimuthal_width
())
86
return
NAN;
87
else
88
return
sqrt(
89
available_depth * available_depth -
get_sec_azimuthal_width
() *
get_sec_azimuthal_width
());
90
}
91
92
double
93
get_block_width
()
const
94
{
95
return
get_sec_azimuthal_width
() - 0.0001;
96
}
97
98
double
99
get_block_depth
()
const
100
{
101
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
();
102
}
103
104
double
get_assembly_spacing
()
const
105
{
106
return
assembly_spacing
;
107
}
108
109
void
110
set_assembly_spacing
(
double
assemblySpacing)
111
{
112
assembly_spacing
= assemblySpacing;
113
}
114
116
double
117
get_reg_fiber_grid_distance_taper
()
const
;
118
120
double
121
get_reg_fiber_grid_distance_nontaper
()
const
;
122
123
protected
:
124
int
azimuthal_n_sec
;
125
127
double
azimuthal_tilt
;
128
bool
azimuthal_seg_visible
;
129
double
polar_taper_ratio
;
130
double
assembly_spacing
;
131
132
ClassDefOverride(
PHG4CylinderGeom_Spacalv2
, 2)
133
};
134
135
#endif
coresoftware
blob
master
simulation
g4simulation
g4detectors
PHG4CylinderGeom_Spacalv2.h
Built by
Jin Huang
. updated:
Sat Feb 17 2024 22:18:12
using
1.8.2 with
sPHENIX GitHub integration