]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TGeant4/TG4XMLGeometryGenerator.h
Correcting coding convention violations
[u/mrichter/AliRoot.git] / TGeant4 / TG4XMLGeometryGenerator.h
CommitLineData
240601e9 1// $Id$
2// Category: geometry
3// by I. Hrivnacova, 27.07.2000
4//
5// Singleton class for generation of geometry data files in XML,
6// the XML format is independent from G4 geometry
7// object model.
8
9#ifndef TG4_XML_GEOMETRY_GENERATOR_H
10#define TG4_XML_GEOMETRY_GENERATOR_H
11
4032dc03 12#include "TG4Globals.h"
13
240601e9 14#include <globals.hh>
15#include <g4std/fstream>
16
17class TG4VXMLConvertor;
18
19class G4LogicalVolume;
20
21class TG4XMLGeometryGenerator
22{
23 public:
24 TG4XMLGeometryGenerator();
25 // --> protected
26 // TG4XMLGeometryGenerator(const TG4XMLGeometryGenerator& right);
27 virtual ~TG4XMLGeometryGenerator();
28
29 // static access method
30 static TG4XMLGeometryGenerator* Instance();
31
32 // methods
429ec6b8 33 void GenerateMaterials(const G4String& version, const G4String& date,
34 const G4String& author, const G4String dtdVersion,
35 G4LogicalVolume* lv);
240601e9 36 void GenerateSection(const G4String& name, const G4String& version,
37 const G4String& date, const G4String& author,
38 const G4String& topVolume, G4LogicalVolume* lv);
39 void OpenFile(G4String filePath);
40 void CloseFile();
41
42 protected:
43 TG4XMLGeometryGenerator(const TG4XMLGeometryGenerator& right);
44
45 // operators
46 TG4XMLGeometryGenerator& operator=(const TG4XMLGeometryGenerator& right);
47
48 private:
49 // methods
4032dc03 50 void CutName(G4String& name) const;
240601e9 51 void ProcessLogicalVolume(G4LogicalVolume* lv);
52 void ProcessMaterials(G4LogicalVolume* lv);
53 void ProcessSolids(G4LogicalVolume* lv);
429ec6b8 54 void ProcessRotations(G4LogicalVolume* lv);
4032dc03 55 void ClearMaterialNames();
56 void ClearVolumeNames();
240601e9 57
58 // static data members
59 static TG4XMLGeometryGenerator* fgInstance; //this instance
60
61 // data members
62 TG4VXMLConvertor* fConvertor; //interface to XML convertor
63 G4std::ofstream fOutFile; //output file
4032dc03 64 TG4StringSet fMaterialNames; //set of names of materials
65 TG4StringSet fVolumeNames; //set of names of solids
240601e9 66};
67
68
69// inline methods
70inline TG4XMLGeometryGenerator* TG4XMLGeometryGenerator::Instance()
71{ return fgInstance; }
72
73#endif //TG4_GEOMETRY_XML_MANAGER_H
74