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
PHG4GDMLWriteSolids.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file PHG4GDMLWriteSolids.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: PHG4GDMLWriteSolids.hh 81843 2014-06-06 09:11:11Z gcosmo $
28
//
29
//
30
// class PHG4GDMLWriteSolids
31
//
32
// Class description:
33
//
34
// GDML class for writing solids.
35
36
// History:
37
// - Created. Zoltan Torzsok, November 2007
38
// -------------------------------------------------------------------------
39
40
#ifndef _PHG4GDMLWRITESOLIDS_INCLUDED_
41
#define _PHG4GDMLWRITESOLIDS_INCLUDED_
42
43
#include <Geant4/G4Types.hh>
44
#include <Geant4/G4MultiUnion.hh>
45
46
#include "
PHG4GDMLWriteMaterials.hh
"
47
48
class
G4BooleanSolid
;
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
PHG4GDMLWriteSolids
:
public
PHG4GDMLWriteMaterials
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
PHG4GDMLWriteSolids
();
107
virtual
~PHG4GDMLWriteSolids
();
108
109
void
MultiUnionWrite
(xercesc::DOMElement* solElement,
const
G4MultiUnion
*
const
);
110
void
BooleanWrite
(xercesc::DOMElement*,
const
G4BooleanSolid
*
const
);
111
void
BoxWrite
(xercesc::DOMElement*,
const
G4Box
*
const
);
112
void
ConeWrite
(xercesc::DOMElement*,
const
G4Cons
*
const
);
113
void
ElconeWrite
(xercesc::DOMElement*,
const
G4EllipticalCone
*
const
);
114
void
EllipsoidWrite
(xercesc::DOMElement*,
const
G4Ellipsoid
*
const
);
115
void
EltubeWrite
(xercesc::DOMElement*,
const
G4EllipticalTube
*
const
);
116
void
XtruWrite
(xercesc::DOMElement*,
const
G4ExtrudedSolid
*
const
);
117
void
HypeWrite
(xercesc::DOMElement*,
const
G4Hype
*
const
);
118
void
OrbWrite
(xercesc::DOMElement*,
const
G4Orb
*
const
);
119
void
ParaWrite
(xercesc::DOMElement*,
const
G4Para
*
const
);
120
void
ParaboloidWrite
(xercesc::DOMElement*,
const
G4Paraboloid
*
const
);
121
void
PolyconeWrite
(xercesc::DOMElement*,
const
G4Polycone
*
const
);
122
void
GenericPolyconeWrite
(xercesc::DOMElement*,
const
G4GenericPolycone
*
const
);
123
void
PolyhedraWrite
(xercesc::DOMElement*,
const
G4Polyhedra
*
const
);
124
void
SphereWrite
(xercesc::DOMElement*,
const
G4Sphere
*
const
);
125
void
TessellatedWrite
(xercesc::DOMElement*,
const
G4TessellatedSolid
*
const
);
126
void
TetWrite
(xercesc::DOMElement*,
const
G4Tet
*
const
);
127
void
TorusWrite
(xercesc::DOMElement*,
const
G4Torus
*
const
);
128
void
GenTrapWrite
(xercesc::DOMElement*,
const
G4GenericTrap
*
const
);
129
void
TrapWrite
(xercesc::DOMElement*,
const
G4Trap
*
const
);
130
void
TrdWrite
(xercesc::DOMElement*,
const
G4Trd
*
const
);
131
void
TubeWrite
(xercesc::DOMElement*,
const
G4Tubs
*
const
);
132
void
CutTubeWrite
(xercesc::DOMElement*,
const
G4CutTubs
*
const
);
133
void
TwistedboxWrite
(xercesc::DOMElement*,
const
G4TwistedBox
*
const
);
134
void
TwistedtrapWrite
(xercesc::DOMElement*,
const
G4TwistedTrap
*
const
);
135
void
TwistedtrdWrite
(xercesc::DOMElement*,
const
G4TwistedTrd
*
const
);
136
void
TwistedtubsWrite
(xercesc::DOMElement*,
const
G4TwistedTubs
*
const
);
137
void
ZplaneWrite
(xercesc::DOMElement*,
const
G4double
&,
138
const
G4double
&,
const
G4double
&);
139
void
RZPointWrite
(xercesc::DOMElement*,
const
G4double
&,
const
G4double
&);
140
void
OpticalSurfaceWrite
(xercesc::DOMElement*,
141
const
G4OpticalSurface
*
const
);
142
143
protected
:
144
145
std::vector<const G4VSolid*>
solidList
;
146
xercesc::DOMElement*
solidsElement
;
147
static
const
G4int
maxTransforms
= 8;
// Constant for limiting the number
148
// of displacements/reflections
149
// applied to a single solid
150
};
151
152
#endif
coresoftware
blob
master
simulation
g4simulation
g4gdml
PHG4GDMLWriteSolids.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:43
using
1.8.2 with
ECCE GitHub integration