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
PHG4GDMLWriteStructure.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file PHG4GDMLWriteStructure.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: PHG4GDMLWriteStructure.hh 68053 2013-03-13 14:39:51Z gcosmo $
28
//
29
//
30
// class PHG4GDMLWriteStructure
31
//
32
// Class description:
33
//
34
// GDML class for export of structures.
35
36
// History:
37
// - Created. Zoltan Torzsok, November 2007
38
// -------------------------------------------------------------------------
39
40
#ifndef _PHG4GDMLWRITESTRUCTURE_INCLUDED_
41
#define _PHG4GDMLWRITESTRUCTURE_INCLUDED_
42
43
#include <Geant4/G4Transform3D.hh>
44
#include <Geant4/G4Types.hh>
45
46
#include "
PHG4GDMLWriteParamvol.hh
"
47
48
class
G4LogicalVolume
;
49
class
G4VPhysicalVolume
;
50
class
G4PVDivision
;
51
class
G4LogicalBorderSurface
;
52
class
G4LogicalSkinSurface
;
53
class
G4OpticalSurface
;
54
class
G4SurfaceProperty
;
55
class
G4ReflectionFactory
;
56
class
PHG4GDMLConfig
;
57
58
class
PHG4GDMLWriteStructure
:
public
PHG4GDMLWriteParamvol
59
{
60
61
public
:
62
63
PHG4GDMLWriteStructure
(
const
PHG4GDMLConfig
* config_input);
64
virtual
~PHG4GDMLWriteStructure
();
65
66
virtual
void
StructureWrite
(xercesc::DOMElement*);
67
void
AddVolumeAuxiliary
(
PHG4GDMLAuxStructType
myaux,
const
G4LogicalVolume
*
const
);
68
69
void
SetEnergyCutsExport
(
G4bool
);
70
71
protected
:
72
73
void
DivisionvolWrite
(xercesc::DOMElement*,
const
G4PVDivision
*
const
);
74
void
PhysvolWrite
(xercesc::DOMElement*,
const
G4VPhysicalVolume
*
const
topVol,
75
const
G4Transform3D
&
transform
,
const
G4String
& moduleName);
76
void
ReplicavolWrite
(xercesc::DOMElement*,
const
G4VPhysicalVolume
*
const
);
77
G4Transform3D
TraverseVolumeTree
(
const
G4LogicalVolume
*
const
topVol,
78
const
G4int
depth);
79
void
SurfacesWrite
();
80
void
BorderSurfaceCache
(
const
G4LogicalBorderSurface
*
const
);
81
void
SkinSurfaceCache
(
const
G4LogicalSkinSurface
*
const
);
82
const
G4LogicalBorderSurface
*
GetBorderSurface
(
const
G4VPhysicalVolume
*
const
);
83
const
G4LogicalSkinSurface
*
GetSkinSurface
(
const
G4LogicalVolume
*
const
);
84
G4bool
FindOpticalSurface
(
const
G4SurfaceProperty
*);
85
void
ExportEnergyCuts
(
const
G4LogicalVolume
*
const
);
86
87
protected
:
88
89
xercesc::DOMElement*
structureElement
;
90
std::vector<xercesc::DOMElement*>
borderElementVec
;
91
std::vector<xercesc::DOMElement*>
skinElementVec
;
92
std::map<const G4LogicalVolume*, PHG4GDMLAuxListType>
auxmap
;
93
94
G4String
ConvertToString
(
G4double
dval);
95
96
private
:
// cache for optical surfaces...
97
98
std::vector<const G4OpticalSurface*>
opt_vec
;
99
G4ReflectionFactory
*
reflFactory
;
100
G4bool
cexport
;
// Flag for optional export of energy cuts per volume
101
103
const
PHG4GDMLConfig
*
config
;
104
};
105
106
#endif
coresoftware
blob
master
simulation
g4simulation
g4gdml
PHG4GDMLWriteStructure.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:43
using
1.8.2 with
ECCE GitHub integration