ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4GDMLReadSolids.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4GDMLReadSolids.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 G4GDMLReadSolids
30 //
31 // Class description:
32 //
33 // GDML class for loading solids according to specifications in Geant4.
34 
35 // History:
36 // - Created. Zoltan Torzsok, November 2007
37 // -------------------------------------------------------------------------
38 
39 #ifndef _G4GDMLREADSOLIDS_INCLUDED_
40 #define _G4GDMLREADSOLIDS_INCLUDED_
41 
42 #include "G4Types.hh"
43 #include "G4GDMLReadMaterials.hh"
44 #include "G4ExtrudedSolid.hh"
45 #include "G4MultiUnion.hh"
47 
48 class G4VSolid;
50 class G4TriangularFacet;
51 class G4SurfaceProperty;
52 class G4OpticalSurface;
53 
55 {
57  // typedef struct { G4double rmin,rmax,z; } zplaneType;
58  typedef struct { G4double r,z; } rzPointType;
59 
60  public:
61 
62  G4VSolid* GetSolid(const G4String&) const;
64 
65  virtual void SolidsRead(const xercesc::DOMElement* const);
66 
67  protected:
68  typedef struct { G4double rmin,rmax,z; } zplaneType;
70  virtual ~G4GDMLReadSolids();
71 
72  void BooleanRead(const xercesc::DOMElement* const,const BooleanOp);
73  void BoxRead(const xercesc::DOMElement* const);
74  void ConeRead(const xercesc::DOMElement* const);
75  void ElconeRead(const xercesc::DOMElement* const);
76  void EllipsoidRead(const xercesc::DOMElement* const);
77  void EltubeRead(const xercesc::DOMElement* const);
78  void XtruRead(const xercesc::DOMElement* const);
79  void HypeRead(const xercesc::DOMElement* const);
80  void MultiUnionNodeRead(const xercesc::DOMElement* const, G4MultiUnion* const);
81  void MultiUnionRead(const xercesc::DOMElement* const);
82  void OrbRead(const xercesc::DOMElement* const);
83  void ParaRead(const xercesc::DOMElement* const);
84  void ParaboloidRead(const xercesc::DOMElement* const);
85  void PolyconeRead(const xercesc::DOMElement* const);
86  void GenericPolyconeRead(const xercesc::DOMElement* const);
87  void PolyhedraRead(const xercesc::DOMElement* const);
88  void GenericPolyhedraRead(const xercesc::DOMElement* const);
89  G4QuadrangularFacet* QuadrangularRead(const xercesc::DOMElement* const);
90  void ReflectedSolidRead(const xercesc::DOMElement* const);
91  void ScaledSolidRead(const xercesc::DOMElement* const);
92  G4ExtrudedSolid::ZSection SectionRead(const xercesc::DOMElement* const,G4double);
93  void SphereRead(const xercesc::DOMElement* const);
94  void TessellatedRead(const xercesc::DOMElement* const);
95  void TetRead(const xercesc::DOMElement* const);
96  void TorusRead(const xercesc::DOMElement* const);
97  void GenTrapRead(const xercesc::DOMElement* const);
98  void TrapRead(const xercesc::DOMElement* const);
99  void TrdRead(const xercesc::DOMElement* const);
100  void TubeRead(const xercesc::DOMElement* const);
101  void CutTubeRead(const xercesc::DOMElement* const);
102  void TwistedboxRead(const xercesc::DOMElement* const);
103  void TwistedtrapRead(const xercesc::DOMElement* const);
104  void TwistedtrdRead(const xercesc::DOMElement* const);
105  void TwistedtubsRead(const xercesc::DOMElement* const);
106  G4TriangularFacet* TriangularRead(const xercesc::DOMElement* const);
107  G4TwoVector TwoDimVertexRead(const xercesc::DOMElement* const,G4double);
108  zplaneType ZplaneRead(const xercesc::DOMElement* const);
109  rzPointType RZPointRead(const xercesc::DOMElement* const);
110  void OpticalSurfaceRead(const xercesc::DOMElement* const);
111  void PropertyRead(const xercesc::DOMElement* const,G4OpticalSurface*);
112 
113 private:
114  std::map<G4String, G4MaterialPropertyVector*> mapOfMatPropVects;
115 
116 };
117 
118 #endif