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
G4GDMLWriteSolids.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4GDMLWriteSolids.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
//
28
//
29
// class G4GDMLWriteSolids
30
//
31
// Class description:
32
//
33
// GDML class for writing solids.
34
35
// History:
36
// - Created. Zoltan Torzsok, November 2007
37
// -------------------------------------------------------------------------
38
39
#ifndef _G4GDMLWRITESOLIDS_INCLUDED_
40
#define _G4GDMLWRITESOLIDS_INCLUDED_
41
42
#include "
G4Types.hh
"
43
44
#include "
G4GDMLWriteMaterials.hh
"
45
#include "
G4MultiUnion.hh
"
46
47
class
G4BooleanSolid
;
48
class
G4ScaledSolid
;
49
class
G4Box
;
50
class
G4Cons
;
51
class
G4EllipticalCone
;
52
class
G4Ellipsoid
;
53
class
G4EllipticalTube
;
54
class
G4ExtrudedSolid
;
55
class
G4Hype
;
56
class
G4Orb
;
57
class
G4Para
;
58
class
G4Paraboloid
;
59
class
G4Polycone
;
60
class
G4GenericPolycone
;
61
class
G4Polyhedra
;
62
class
G4Sphere
;
63
class
G4TessellatedSolid
;
64
class
G4Tet
;
65
class
G4Torus
;
66
class
G4GenericTrap
;
67
class
G4Trap
;
68
class
G4Trd
;
69
class
G4Tubs
;
70
class
G4CutTubs
;
71
class
G4TwistedBox
;
72
class
G4TwistedTrap
;
73
class
G4TwistedTrd
;
74
class
G4TwistedTubs
;
75
class
G4VSolid
;
76
class
G4OpticalSurface
;
77
78
class
G4GDMLWriteSolids
:
public
G4GDMLWriteMaterials
79
{
80
class
G4ThreeVectorCompare
81
{
82
public
:
83
84
G4bool
operator()
(
const
G4ThreeVector
&
t1
,
const
G4ThreeVector
&
t2
)
const
85
{
86
if
(t1.
x
() < t2.
x
())
87
return
true
;
88
89
if
(t1.
y
() < t2.
y
())
90
return
true
;
91
92
if
(t1.
z
() < t2.
z
())
93
return
true
;
94
95
return
false
;
96
}
97
};
98
99
public
:
100
101
virtual
void
AddSolid
(
const
G4VSolid
*
const
);
102
virtual
void
SolidsWrite
(xercesc::DOMElement*);
103
104
protected
:
105
106
G4GDMLWriteSolids
();
107
virtual
~G4GDMLWriteSolids
();
108
109
void
MultiUnionWrite
(xercesc::DOMElement* solElement,
const
G4MultiUnion
*
const
);
110
void
BooleanWrite
(xercesc::DOMElement*,
const
G4BooleanSolid
*
const
);
111
void
ScaledWrite
(xercesc::DOMElement*,
const
G4ScaledSolid
*
const
);
112
void
BoxWrite
(xercesc::DOMElement*,
const
G4Box
*
const
);
113
void
ConeWrite
(xercesc::DOMElement*,
const
G4Cons
*
const
);
114
void
ElconeWrite
(xercesc::DOMElement*,
const
G4EllipticalCone
*
const
);
115
void
EllipsoidWrite
(xercesc::DOMElement*,
const
G4Ellipsoid
*
const
);
116
void
EltubeWrite
(xercesc::DOMElement*,
const
G4EllipticalTube
*
const
);
117
void
XtruWrite
(xercesc::DOMElement*,
const
G4ExtrudedSolid
*
const
);
118
void
HypeWrite
(xercesc::DOMElement*,
const
G4Hype
*
const
);
119
void
OrbWrite
(xercesc::DOMElement*,
const
G4Orb
*
const
);
120
void
ParaWrite
(xercesc::DOMElement*,
const
G4Para
*
const
);
121
void
ParaboloidWrite
(xercesc::DOMElement*,
const
G4Paraboloid
*
const
);
122
void
PolyconeWrite
(xercesc::DOMElement*,
const
G4Polycone
*
const
);
123
void
GenericPolyconeWrite
(xercesc::DOMElement*,
const
G4GenericPolycone
*
const
);
124
void
PolyhedraWrite
(xercesc::DOMElement*,
const
G4Polyhedra
*
const
);
125
void
SphereWrite
(xercesc::DOMElement*,
const
G4Sphere
*
const
);
126
void
TessellatedWrite
(xercesc::DOMElement*,
const
G4TessellatedSolid
*
const
);
127
void
TetWrite
(xercesc::DOMElement*,
const
G4Tet
*
const
);
128
void
TorusWrite
(xercesc::DOMElement*,
const
G4Torus
*
const
);
129
void
GenTrapWrite
(xercesc::DOMElement*,
const
G4GenericTrap
*
const
);
130
void
TrapWrite
(xercesc::DOMElement*,
const
G4Trap
*
const
);
131
void
TrdWrite
(xercesc::DOMElement*,
const
G4Trd
*
const
);
132
void
TubeWrite
(xercesc::DOMElement*,
const
G4Tubs
*
const
);
133
void
CutTubeWrite
(xercesc::DOMElement*,
const
G4CutTubs
*
const
);
134
void
TwistedboxWrite
(xercesc::DOMElement*,
const
G4TwistedBox
*
const
);
135
void
TwistedtrapWrite
(xercesc::DOMElement*,
const
G4TwistedTrap
*
const
);
136
void
TwistedtrdWrite
(xercesc::DOMElement*,
const
G4TwistedTrd
*
const
);
137
void
TwistedtubsWrite
(xercesc::DOMElement*,
const
G4TwistedTubs
*
const
);
138
void
ZplaneWrite
(xercesc::DOMElement*,
const
G4double
&,
139
const
G4double
&,
const
G4double
&);
140
void
RZPointWrite
(xercesc::DOMElement*,
const
G4double
&,
const
G4double
&);
141
void
OpticalSurfaceWrite
(xercesc::DOMElement*,
142
const
G4OpticalSurface
*
const
);
143
void
PropertyWrite
(xercesc::DOMElement*,
const
G4OpticalSurface
*
const
);
144
145
146
protected
:
147
148
std::vector<const G4VSolid*>
solidList
;
149
xercesc::DOMElement*
solidsElement
;
150
static
const
G4int
maxTransforms
= 8;
// Constant for limiting the number
151
// of displacements/reflections
152
// applied to a single solid
153
};
154
155
#endif
geant4
tree
geant4-10.6-release
source
persistency
gdml
include
G4GDMLWriteSolids.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:25
using
1.8.2 with
ECCE GitHub integration