Geant4
v4-10.4-release
메인 페이지
관련된 페이지
모듈
네임스페이스
클래스
파일들
파일 목록
파일 멤버
모두
클래스
네임스페이스들
파일들
함수
변수
타입정의
열거형 타입
열거형 멤버
Friends
매크로
그룹들
페이지들
source
geometry
solids
CSG
include
G4UTrap.hh
이 파일의 문서화 페이지로 가기
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 G4Trap to make use of VecGeom Trapezoid.
38
39
// History:
40
// 13.09.13 G.Cosmo, CERN/PH
41
// --------------------------------------------------------------------
42
#ifndef G4UTrap_HH
43
#define G4UTrap_HH
44
45
#include "
G4UAdapter.hh
"
46
47
#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) )
48
49
#include <volumes/UnplacedTrapezoid.h>
50
51
#include "
G4Polyhedron.hh
"
52
53
class
G4UTrap :
public
G4UAdapter<vecgeom::UnplacedTrapezoid>
54
{
55
using
Shape_t = vecgeom::UnplacedTrapezoid;
56
using
Base_t = G4UAdapter<vecgeom::UnplacedTrapezoid>;
57
58
public
:
// with description
59
60
G4UTrap(
const
G4String
& pName,
61
G4double
pDz,
62
G4double
pTheta,
G4double
pPhi,
63
G4double
pDy1,
G4double
pDx1,
G4double
pDx2,
64
G4double
pAlp1,
65
G4double
pDy2,
G4double
pDx3,
G4double
pDx4,
66
G4double
pAlp2 );
67
//
68
// The most general constructor for G4Trap which prepares plane
69
// equations and corner coordinates from parameters
70
71
G4UTrap(
const
G4String
& pName,
72
const
G4ThreeVector
pt
[8] ) ;
73
//
74
// Prepares plane equations and parameters from corner coordinates
75
76
G4UTrap(
const
G4String
& pName,
77
G4double
pZ,
78
G4double
pY,
79
G4double
pX,
G4double
pLTX );
80
//
81
// Constructor for Right Angular Wedge from STEP (assumes pLTX<=pX)
82
83
G4UTrap(
const
G4String
& pName,
84
G4double
pDx1,
G4double
pDx2,
85
G4double
pDy1,
G4double
pDy2,
86
G4double
pDz );
87
//
88
// Constructor for G4Trd
89
90
G4UTrap(
const
G4String
& pName,
91
G4double
pDx,
G4double
pDy,
G4double
pDz,
92
G4double
pAlpha,
G4double
pTheta,
G4double
pPhi );
93
//
94
// Constructor for G4Para
95
96
G4UTrap(
const
G4String
& pName );
97
//
98
// Constructor for "nominal" G4Trap whose parameters are to be set
99
// by a G4VPVParamaterisation later
100
101
~G4UTrap();
102
103
void
ComputeDimensions(
G4VPVParameterisation
*
p
,
104
const
G4int
n
,
105
const
G4VPhysicalVolume
* pRep);
106
107
G4VSolid
* Clone()
const
;
108
109
using
Base_t::GetTanAlpha1;
110
using
Base_t::GetTanAlpha2;
111
112
G4double
GetZHalfLength()
const
;
113
G4double
GetYHalfLength1()
const
;
114
G4double
GetXHalfLength1()
const
;
115
G4double
GetXHalfLength2()
const
;
116
G4double
GetYHalfLength2()
const
;
117
G4double
GetXHalfLength3()
const
;
118
G4double
GetXHalfLength4()
const
;
119
G4double
GetThetaCphi()
const
;
120
G4double
GetThetaSphi()
const
;
121
TrapSidePlane
GetSidePlane(
G4int
n
)
const
;
122
G4ThreeVector
GetSymAxis()
const
;
123
124
void
SetAllParameters(
G4double
pDz,
G4double
pTheta,
G4double
pPhi,
125
G4double
pDy1,
G4double
pDx1,
G4double
pDx2,
126
G4double
pAlp1,
127
G4double
pDy2,
G4double
pDx3,
G4double
pDx4,
128
G4double
pAlp2);
129
void
SetPlanes(
const
G4ThreeVector
pt
[8]);
130
131
inline
G4GeometryType
GetEntityType()
const
;
132
133
void
BoundingLimits(
G4ThreeVector
& pMin,
G4ThreeVector
& pMax)
const
;
134
135
G4bool
CalculateExtent(
const
EAxis
pAxis,
136
const
G4VoxelLimits
& pVoxelLimit,
137
const
G4AffineTransform
& pTransform,
138
G4double
& pMin,
G4double
& pMax)
const
;
139
140
G4Polyhedron
* CreatePolyhedron()
const
;
141
142
public
:
// without description
143
144
G4UTrap(__void__&);
145
// Fake default constructor for usage restricted to direct object
146
// persistency for clients requiring preallocation of memory for
147
// persistifiable objects.
148
149
G4UTrap(
const
G4UTrap& rhs);
150
G4UTrap& operator=(
const
G4UTrap& rhs);
151
// Copy constructor and assignment operator.
152
};
153
154
// --------------------------------------------------------------------
155
// Inline methods
156
// --------------------------------------------------------------------
157
158
inline
G4GeometryType
G4UTrap::GetEntityType()
const
159
{
160
return
"G4Trap"
;
161
}
162
163
#endif // G4GEOM_USE_USOLIDS
164
165
#endif
G4VoxelLimits
Definition:
G4VoxelLimits.hh:62
G4VSolid
Definition:
G4VSolid.hh:87
p
const char * p
Definition:
xmltok.h:285
G4UAdapter.hh
G4String
Definition:
examples/extended/parallel/TopC/ParN02/AnnotatedFiles/G4String.hh:45
G4Polyhedron.hh
G4Polyhedron
Definition:
G4Polyhedron.hh:115
G4double
double G4double
Definition:
G4Types.hh:76
G4bool
bool G4bool
Definition:
G4Types.hh:79
pt
TMarker * pt
Definition:
egs.C:25
G4AffineTransform
Definition:
G4AffineTransform.hh:74
CLHEP::Hep3Vector
Definition:
ThreeVector.h:41
G4int
int G4int
Definition:
G4Types.hh:78
EAxis
EAxis
Definition:
geomdefs.hh:54
G4VPhysicalVolume
Definition:
G4VPhysicalVolume.hh:82
G4VPVParameterisation
Definition:
G4VPVParameterisation.hh:72
n
Char_t n[5]
Definition:
comparison_ascii.C:55
TrapSidePlane
Definition:
G4Trap.hh:101
다음에 의해 생성됨 :
1.8.5