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
G4GDMLParameterisation.cc
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4GDMLParameterisation.cc
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
//
27
// class G4GDMLParameterisation Implementation
28
//
29
// History:
30
// - Created. Zoltan Torzsok, November 2007
31
// -------------------------------------------------------------------------
32
33
#include "
G4GDMLParameterisation.hh
"
34
#include "
G4PolyconeHistorical.hh
"
35
#include "
G4PolyhedraHistorical.hh
"
36
37
G4int
G4GDMLParameterisation::GetSize
()
const
38
{
39
return
(
G4int
)
parameterList
.size();
40
}
41
42
void
G4GDMLParameterisation::AddParameter
(
const
PARAMETER
& newParameter)
43
{
44
parameterList
.push_back(newParameter);
45
}
46
47
void
G4GDMLParameterisation::
48
ComputeTransformation
(
const
G4int
index,
G4VPhysicalVolume
* physvol)
const
49
{
50
physvol->
SetTranslation
(
parameterList
[index].
position
);
51
physvol->
SetRotation
(
parameterList
[index].pRot);
52
}
53
54
void
G4GDMLParameterisation::
55
ComputeDimensions
(
G4Box
&
box
,
const
G4int
index,
const
G4VPhysicalVolume
*)
const
56
{
57
box.
SetXHalfLength
(
parameterList
[index].dimension[0]);
58
box.
SetYHalfLength
(
parameterList
[index].dimension[1]);
59
box.
SetZHalfLength
(
parameterList
[index].dimension[2]);
60
}
61
62
void
G4GDMLParameterisation::
63
ComputeDimensions
(
G4Trd
& trd,
const
G4int
index,
const
G4VPhysicalVolume
*)
const
64
{
65
trd.
SetXHalfLength1
(
parameterList
[index].dimension[0]);
66
trd.
SetXHalfLength2
(
parameterList
[index].dimension[1]);
67
trd.
SetYHalfLength1
(
parameterList
[index].dimension[2]);
68
trd.
SetYHalfLength2
(
parameterList
[index].dimension[3]);
69
trd.
SetZHalfLength
(
parameterList
[index].dimension[4]);
70
}
71
72
void
G4GDMLParameterisation::
73
ComputeDimensions
(
G4Trap
& trap,
const
G4int
index,
const
G4VPhysicalVolume
*)
const
74
{
75
trap.
SetAllParameters
(
parameterList
[index].dimension[0],
// Dz
76
parameterList
[index].dimension[1],
// Theta
77
parameterList
[index].dimension[2],
// Phi
78
parameterList
[index].dimension[3],
// Dy1
79
parameterList
[index].dimension[4],
// Dx1
80
parameterList
[index].dimension[5],
// Dx2
81
parameterList
[index].dimension[6],
// pAlp1,
82
parameterList
[index].dimension[7],
// pDy2,
83
parameterList
[index].dimension[8],
// pDx3,
84
parameterList
[index].dimension[9],
// pDx4,
85
parameterList
[index].dimension[10]);
// pAlp2
86
}
87
88
void
G4GDMLParameterisation::
89
ComputeDimensions
(
G4Tubs
& tubs,
const
G4int
index,
const
G4VPhysicalVolume
*)
const
90
{
91
tubs.
SetInnerRadius
(
parameterList
[index].dimension[0]);
92
tubs.
SetOuterRadius
(
parameterList
[index].dimension[1]);
93
tubs.
SetZHalfLength
(
parameterList
[index].dimension[2]);
94
tubs.
SetStartPhiAngle
(
parameterList
[index].dimension[3]);
95
tubs.
SetDeltaPhiAngle
(
parameterList
[index].dimension[4]);
96
}
97
98
void
G4GDMLParameterisation::
99
ComputeDimensions
(
G4Cons
& cons,
const
G4int
index,
const
G4VPhysicalVolume
*)
const
100
{
101
cons.
SetInnerRadiusMinusZ
(
parameterList
[index].dimension[0]);
102
cons.
SetOuterRadiusMinusZ
(
parameterList
[index].dimension[1]);
103
cons.
SetInnerRadiusPlusZ
(
parameterList
[index].dimension[2]);
104
cons.
SetOuterRadiusPlusZ
(
parameterList
[index].dimension[3]);
105
cons.
SetZHalfLength
(
parameterList
[index].dimension[4]);
106
cons.
SetStartPhiAngle
(
parameterList
[index].dimension[5]);
107
cons.
SetDeltaPhiAngle
(
parameterList
[index].dimension[6]);
108
}
109
110
void
G4GDMLParameterisation::
111
ComputeDimensions
(
G4Sphere
& sphere,
const
G4int
index,
const
G4VPhysicalVolume
*)
const
112
{
113
sphere.
SetInnerRadius
(
parameterList
[index].dimension[0]);
114
sphere.
SetOuterRadius
(
parameterList
[index].dimension[1]);
115
sphere.
SetStartPhiAngle
(
parameterList
[index].dimension[2]);
116
sphere.
SetDeltaPhiAngle
(
parameterList
[index].dimension[3]);
117
sphere.
SetStartThetaAngle
(
parameterList
[index].dimension[4]);
118
sphere.
SetDeltaThetaAngle
(
parameterList
[index].dimension[5]);
119
}
120
121
void
G4GDMLParameterisation::
122
ComputeDimensions
(
G4Orb
& orb,
const
G4int
index,
const
G4VPhysicalVolume
*)
const
123
{
124
orb.
SetRadius
(
parameterList
[index].dimension[0]);
125
}
126
127
void
G4GDMLParameterisation::
128
ComputeDimensions
(
G4Ellipsoid
& ellipsoid,
const
G4int
index,
const
G4VPhysicalVolume
*)
const
129
{
130
ellipsoid.
SetSemiAxis
(
parameterList
[index].dimension[0],
131
parameterList
[index].dimension[1],
132
parameterList
[index].dimension[2]);
133
ellipsoid.
SetZCuts
(
parameterList
[index].dimension[3],
134
parameterList
[index].dimension[4]);
135
}
136
137
void
G4GDMLParameterisation::
138
ComputeDimensions
(
G4Torus
& torus,
const
G4int
index,
const
G4VPhysicalVolume
*)
const
139
{
140
torus.
SetAllParameters
(
parameterList
[index].dimension[0],
// pRmin
141
parameterList
[index].dimension[1],
// pRmax
142
parameterList
[index].dimension[2],
// pRtor
143
parameterList
[index].dimension[3],
// pSPhi
144
parameterList
[index].dimension[4]);
// pDPhi
145
}
146
147
void
G4GDMLParameterisation::
148
ComputeDimensions
(
G4Para
& para,
const
G4int
index,
const
G4VPhysicalVolume
*)
const
149
{
150
para.
SetXHalfLength
(
parameterList
[index].dimension[0]);
151
para.
SetYHalfLength
(
parameterList
[index].dimension[1]);
152
para.
SetZHalfLength
(
parameterList
[index].dimension[2]);
153
para.
SetAlpha
(
parameterList
[index].dimension[3]);
154
para.
SetTanAlpha
(std::tan(
parameterList
[index].dimension[3]));
155
para.
SetThetaAndPhi
(
parameterList
[index].dimension[4],
parameterList
[index].dimension[5]);
156
}
157
158
void
G4GDMLParameterisation::
159
ComputeDimensions
(
G4Hype
& hype,
const
G4int
index,
const
G4VPhysicalVolume
*)
const
160
{
161
hype.
SetInnerRadius
(
parameterList
[index].dimension[0]);
162
hype.
SetOuterRadius
(
parameterList
[index].dimension[1]);
163
hype.
SetZHalfLength
(
parameterList
[index].dimension[4]);
164
hype.
SetInnerStereo
(
parameterList
[index].dimension[2]);
165
hype.
SetOuterStereo
(
parameterList
[index].dimension[3]);
166
}
167
168
void
G4GDMLParameterisation::
169
ComputeDimensions
(
G4Polycone
& pcone,
const
G4int
index,
const
G4VPhysicalVolume
*)
const
170
{
171
172
G4PolyconeHistorical
origparam( *(pcone.
GetOriginalParameters
()) );
173
origparam.
Start_angle
=
parameterList
[index].dimension[0];
174
origparam.
Opening_angle
=
parameterList
[index].dimension[1];
175
origparam.
Num_z_planes
= (
G4int
)
parameterList
[index].dimension[2];
176
G4int
nZplanes = origparam.
Num_z_planes
;
177
178
for
(
G4int
ii = 0; ii < nZplanes; ii++ )
179
{
180
origparam.
Rmin
[ii] =
parameterList
[index].dimension[3+ii*3] ;
181
origparam.
Rmax
[ii] =
parameterList
[index].dimension[4+ii*3] ;
182
origparam.
Z_values
[ii] =
parameterList
[index].dimension[5+ii*3] ;
183
}
184
185
pcone.
SetOriginalParameters
(&origparam);
// copy values & transfer pointers
186
pcone.
Reset
();
// reset to new solid parameters
187
188
}
189
190
void
G4GDMLParameterisation::
191
ComputeDimensions
(
G4Polyhedra
& polyhedra,
const
G4int
index,
const
G4VPhysicalVolume
*)
const
192
{
193
G4PolyhedraHistorical
origparam( *(polyhedra.
GetOriginalParameters
()) );
194
origparam.
Start_angle
=
parameterList
[index].dimension[0];
195
origparam.
Opening_angle
=
parameterList
[index].dimension[1];
196
origparam.
Num_z_planes
= (
G4int
)
parameterList
[index].dimension[2];
197
origparam.
numSide
= (
G4int
)
parameterList
[index].dimension[3];
198
199
G4int
nZplanes = origparam.
Num_z_planes
;
200
201
for
(
G4int
ii = 0; ii < nZplanes; ii++ )
202
{
203
204
origparam.
Rmin
[ii] =
parameterList
[index].dimension[4+ii*3] ;
205
origparam.
Rmax
[ii] =
parameterList
[index].dimension[5+ii*3] ;
206
origparam.
Z_values
[ii] =
parameterList
[index].dimension[6+ii*3] ;
207
208
}
209
polyhedra.
SetOriginalParameters
(&origparam);
// copy values & transfer pointers
210
polyhedra.
Reset
();
// reset to new solid parameters
211
}
geant4
tree
geant4-10.6-release
source
persistency
gdml
src
G4GDMLParameterisation.cc
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:25
using
1.8.2 with
ECCE GitHub integration