Geant4
10.03.p01
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
G4UPolycone.hh
Go to the documentation of this file.
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
// $Id:$
28
//
29
//
30
// --------------------------------------------------------------------
31
// GEANT 4 class header file
32
//
33
//
34
// G4UPolycone
35
//
36
// Class description:
37
//
38
// Wrapper class for UPolycone to make use of it from USolids module.
39
40
// History:
41
// 31.10.13 G.Cosmo, CERN/PH
42
// --------------------------------------------------------------------
43
#ifndef G4UPOLYCONE_HH
44
#define G4UPOLYCONE_HH
45
46
#include "
G4USolid.hh
"
47
48
#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) )
49
50
#include "UPolycone.hh"
51
#include "
G4TwoVector.hh
"
52
#include "
G4PolyconeSide.hh
"
53
#include "
G4PolyconeHistorical.hh
"
54
#include "
G4Polyhedron.hh
"
55
56
class
G4UPolycone :
public
G4USolid
57
{
58
59
public
:
// with description
60
61
G4UPolycone(
const
G4String
&
name
,
62
G4double
phiStart,
// initial phi starting angle
63
G4double
phiTotal,
// total phi angle
64
G4int
numZPlanes,
// number of z planes
65
const
G4double
zPlane[],
// position of z planes
66
const
G4double
rInner[],
// tangent distance to inner surface
67
const
G4double
rOuter[] );
// tangent distance to outer surface
68
69
G4UPolycone(
const
G4String
&
name
,
70
G4double
phiStart,
// initial phi starting angle
71
G4double
phiTotal,
// total phi angle
72
G4int
numRZ,
// number corners in r,z space
73
const
G4double
r[],
// r coordinate of these corners
74
const
G4double
z[] );
// z coordinate of these corners
75
76
~G4UPolycone();
77
78
void
ComputeDimensions(
G4VPVParameterisation
*
p
,
79
const
G4int
n
,
80
const
G4VPhysicalVolume
* pRep);
81
82
G4VSolid
* Clone()
const
;
83
84
inline
UPolycone* GetShape()
const
;
85
86
G4double
GetStartPhi()
const
;
87
G4double
GetEndPhi()
const
;
88
G4double
GetSinStartPhi()
const
;
89
G4double
GetCosStartPhi()
const
;
90
G4double
GetSinEndPhi()
const
;
91
G4double
GetCosEndPhi()
const
;
92
G4bool
IsOpen()
const
;
93
G4int
GetNumRZCorner()
const
;
94
G4PolyconeSideRZ
GetCorner(
G4int
index)
const
;
95
G4PolyconeHistorical
* GetOriginalParameters()
const
;
96
void
SetOriginalParameters(
G4PolyconeHistorical
* pars);
97
98
G4bool
Reset();
99
100
inline
G4GeometryType
GetEntityType()
const
;
101
102
public
:
// without description
103
104
G4UPolycone(__void__&);
105
// Fake default constructor for usage restricted to direct object
106
// persistency for clients requiring preallocation of memory for
107
// persistifiable objects.
108
109
G4UPolycone(
const
G4UPolycone &source );
110
G4UPolycone &operator=(
const
G4UPolycone &source );
111
// Copy constructor and assignment operator.
112
113
void
Extent(
G4ThreeVector
& pMin,
G4ThreeVector
& pMax)
const
;
114
115
G4bool
CalculateExtent(
const
EAxis
pAxis,
116
const
G4VoxelLimits
& pVoxelLimit,
117
const
G4AffineTransform
& pTransform,
118
G4double
& pMin,
G4double
& pMax)
const
;
119
120
G4Polyhedron
* CreatePolyhedron()
const
;
121
122
private
:
123
124
G4double
wrStart;
125
G4double
wrDelta;
126
std::vector<G4TwoVector> rzcorners;
127
};
128
129
// --------------------------------------------------------------------
130
// Inline methods
131
// --------------------------------------------------------------------
132
133
inline
UPolycone* G4UPolycone::GetShape()
const
134
{
135
return
(UPolycone*) fShape;
136
}
137
138
inline
G4GeometryType
G4UPolycone::GetEntityType()
const
139
{
140
return
"G4Polycone"
;
141
}
142
143
#endif // G4GEOM_USE_USOLIDS
144
145
#endif
G4TwoVector.hh
name
const XML_Char * name
Definition:
expat.h:151
CLHEP::Hep3Vector
Definition:
ThreeVector.h:41
G4Polyhedron.hh
G4USolid.hh
G4VPhysicalVolume
Definition:
G4VPhysicalVolume.hh:82
p
const char * p
Definition:
xmltok.h:285
G4int
int G4int
Definition:
G4Types.hh:78
G4AffineTransform
Definition:
G4AffineTransform.hh:70
G4PolyconeHistorical.hh
G4VSolid
Definition:
G4VSolid.hh:87
G4bool
bool G4bool
Definition:
G4Types.hh:79
G4VoxelLimits
Definition:
G4VoxelLimits.hh:62
G4PolyconeSideRZ
Definition:
G4PolyconeSide.hh:62
G4VPVParameterisation
Definition:
G4VPVParameterisation.hh:72
EAxis
EAxis
Definition:
geomdefs.hh:54
G4Polyhedron
Definition:
G4Polyhedron.hh:115
G4double
double G4double
Definition:
G4Types.hh:76
CLHEP::detail::n
n
Definition:
Ranlux64Engine.cc:88
G4PolyconeHistorical
Definition:
G4PolyconeHistorical.hh:47
G4PolyconeSide.hh
G4String
Definition:
G4String.hh:60
geant4.10.03.p01
source
geometry
solids
specific
include
G4UPolycone.hh
Generated on Thu Mar 16 2017 22:37:54 for Geant4 by
1.8.5