Geant4
10.03.p03
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4UTrap.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
// GEANT 4 class header file
31
//
32
//
33
// G4UTrap
34
//
35
// Class description:
36
//
37
// Wrapper class for UTrap to make use of UTrap from USolids module.
38
39
// History:
40
// 13.09.13 G.Cosmo, CERN/PH
41
// --------------------------------------------------------------------
42
#ifndef G4UTrap_HH
43
#define G4UTrap_HH
44
45
#include "
G4USolid.hh
"
46
47
#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) )
48
49
#include "UTrap.hh"
50
51
#include "
G4Polyhedron.hh
"
52
53
class
G4UTrap :
public
G4USolid
54
{
55
public
:
// with description
56
57
G4UTrap(
const
G4String
& pName,
58
G4double
pDz,
59
G4double
pTheta,
G4double
pPhi,
60
G4double
pDy1,
G4double
pDx1,
G4double
pDx2,
61
G4double
pAlp1,
62
G4double
pDy2,
G4double
pDx3,
G4double
pDx4,
63
G4double
pAlp2 );
64
//
65
// The most general constructor for G4Trap which prepares plane
66
// equations and corner coordinates from parameters
67
68
G4UTrap(
const
G4String
& pName,
69
const
G4ThreeVector
pt[8] ) ;
70
//
71
// Prepares plane equations and parameters from corner coordinates
72
73
G4UTrap(
const
G4String
& pName,
74
G4double
pZ,
75
G4double
pY,
76
G4double
pX,
G4double
pLTX );
77
//
78
// Constructor for Right Angular Wedge from STEP (assumes pLTX<=pX)
79
80
G4UTrap(
const
G4String
& pName,
81
G4double
pDx1,
G4double
pDx2,
82
G4double
pDy1,
G4double
pDy2,
83
G4double
pDz );
84
//
85
// Constructor for G4Trd
86
87
G4UTrap(
const
G4String
& pName,
88
G4double
pDx,
G4double
pDy,
G4double
pDz,
89
G4double
pAlpha,
G4double
pTheta,
G4double
pPhi );
90
//
91
// Constructor for G4Para
92
93
G4UTrap(
const
G4String
& pName );
94
//
95
// Constructor for "nominal" G4Trap whose parameters are to be set
96
// by a G4VPVParamaterisation later
97
98
~G4UTrap();
99
100
void
ComputeDimensions(
G4VPVParameterisation
*
p
,
101
const
G4int
n
,
102
const
G4VPhysicalVolume
* pRep);
103
104
G4VSolid
* Clone()
const
;
105
106
inline
UTrap* GetShape()
const
;
107
108
G4double
GetZHalfLength()
const
;
109
G4double
GetYHalfLength1()
const
;
110
G4double
GetXHalfLength1()
const
;
111
G4double
GetXHalfLength2()
const
;
112
G4double
GetTanAlpha1()
const
;
113
G4double
GetYHalfLength2()
const
;
114
G4double
GetXHalfLength3()
const
;
115
G4double
GetXHalfLength4()
const
;
116
G4double
GetTanAlpha2()
const
;
117
TrapSidePlane
GetSidePlane(
G4int
n
)
const
;
118
G4ThreeVector
GetSymAxis()
const
;
119
120
void
SetAllParameters(
G4double
pDz,
G4double
pTheta,
G4double
pPhi,
121
G4double
pDy1,
G4double
pDx1,
G4double
pDx2,
122
G4double
pAlp1,
123
G4double
pDy2,
G4double
pDx3,
G4double
pDx4,
124
G4double
pAlp2);
125
void
SetPlanes(
const
G4ThreeVector
pt[8]);
126
127
inline
G4GeometryType
GetEntityType()
const
;
128
129
void
Extent(
G4ThreeVector
& pMin,
G4ThreeVector
& pMax)
const
;
130
131
G4bool
CalculateExtent(
const
EAxis
pAxis,
132
const
G4VoxelLimits
& pVoxelLimit,
133
const
G4AffineTransform
& pTransform,
134
G4double
& pMin,
G4double
& pMax)
const
;
135
136
G4Polyhedron
* CreatePolyhedron()
const
;
137
138
public
:
// without description
139
140
G4UTrap(__void__&);
141
// Fake default constructor for usage restricted to direct object
142
// persistency for clients requiring preallocation of memory for
143
// persistifiable objects.
144
145
G4UTrap(
const
G4UTrap& rhs);
146
G4UTrap& operator=(
const
G4UTrap& rhs);
147
// Copy constructor and assignment operator.
148
};
149
150
// --------------------------------------------------------------------
151
// Inline methods
152
// --------------------------------------------------------------------
153
154
inline
UTrap* G4UTrap::GetShape()
const
155
{
156
return
(UTrap*) fShape;
157
}
158
159
inline
G4GeometryType
G4UTrap::GetEntityType()
const
160
{
161
return
"G4Trap"
;
162
}
163
164
#endif // G4GEOM_USE_USOLIDS
165
166
#endif
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
G4VSolid
Definition:
G4VSolid.hh:87
G4bool
bool G4bool
Definition:
G4Types.hh:79
TrapSidePlane
Definition:
G4Trap.hh:101
n
const G4int n
Definition:
G4UrQMD1_3Interface.hh:144
G4VoxelLimits
Definition:
G4VoxelLimits.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
G4String
Definition:
G4String.hh:45
source
geant4.10.03.p03
source
geometry
solids
CSG
include
G4UTrap.hh
Generated on Tue Nov 28 2017 21:43:57 for Geant4 by
1.8.5