]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TGeant4/TG4XMLGeometryGenerator.h
New Cluster finding macro. Used by new AliITStest.C macro.
[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
12#include <globals.hh>
13#include <g4std/fstream>
14
15class TG4VXMLConvertor;
16
17class G4LogicalVolume;
18
19class TG4XMLGeometryGenerator
20{
21 public:
22 TG4XMLGeometryGenerator();
23 // --> protected
24 // TG4XMLGeometryGenerator(const TG4XMLGeometryGenerator& right);
25 virtual ~TG4XMLGeometryGenerator();
26
27 // static access method
28 static TG4XMLGeometryGenerator* Instance();
29
30 // methods
429ec6b8 31 void GenerateMaterials(const G4String& version, const G4String& date,
32 const G4String& author, const G4String dtdVersion,
33 G4LogicalVolume* lv);
240601e9 34 void GenerateSection(const G4String& name, const G4String& version,
35 const G4String& date, const G4String& author,
36 const G4String& topVolume, G4LogicalVolume* lv);
37 void OpenFile(G4String filePath);
38 void CloseFile();
39
40 protected:
41 TG4XMLGeometryGenerator(const TG4XMLGeometryGenerator& right);
42
43 // operators
44 TG4XMLGeometryGenerator& operator=(const TG4XMLGeometryGenerator& right);
45
46 private:
47 // methods
48 void ProcessLogicalVolume(G4LogicalVolume* lv);
49 void ProcessMaterials(G4LogicalVolume* lv);
50 void ProcessSolids(G4LogicalVolume* lv);
429ec6b8 51 void ProcessRotations(G4LogicalVolume* lv);
240601e9 52
53 // static data members
54 static TG4XMLGeometryGenerator* fgInstance; //this instance
55
56 // data members
57 TG4VXMLConvertor* fConvertor; //interface to XML convertor
58 G4std::ofstream fOutFile; //output file
59};
60
61
62// inline methods
63inline TG4XMLGeometryGenerator* TG4XMLGeometryGenerator::Instance()
64{ return fgInstance; }
65
66#endif //TG4_GEOMETRY_XML_MANAGER_H
67