]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TGeant4/TG4XMLGeometryGenerator.h
Added protection in Int_t AliTPCtracker::AliTPCRow::Find(Double_t y) const
[u/mrichter/AliRoot.git] / TGeant4 / TG4XMLGeometryGenerator.h
index b6ae3eb799a7df299a252802e1461d318ff29fe2..15d685eecd99a66bfd2a8c23b24411723fc4ec46 100644 (file)
@@ -1,7 +1,10 @@
 // $Id$
 // Category: geometry
-// by I. Hrivnacova, 27.07.2000 
 //
+// Author: I. Hrivnacova, 27.07.2000 
+//
+// Class TG4XMLGeometryGenerator
+// -----------------------------
 // Singleton class for generation of geometry data files in XML,
 // the XML format is independent from G4 geometry
 // object model. 
@@ -9,6 +12,9 @@
 #ifndef TG4_XML_GEOMETRY_GENERATOR_H
 #define TG4_XML_GEOMETRY_GENERATOR_H
 
+#include "TG4Verbose.h"
+#include "TG4Globals.h"
+
 #include <globals.hh>
 #include <g4std/fstream>
 
@@ -16,7 +22,7 @@ class TG4VXMLConvertor;
 
 class G4LogicalVolume;
 
-class TG4XMLGeometryGenerator
+class TG4XMLGeometryGenerator : public TG4Verbose
 {
   public:
     TG4XMLGeometryGenerator();
@@ -28,6 +34,9 @@ class TG4XMLGeometryGenerator
     static TG4XMLGeometryGenerator* Instance();
 
     // methods
+    void GenerateMaterials(const G4String& version, const G4String& date,
+            const G4String& author,  const G4String dtdVersion,
+           G4LogicalVolume* lv);
     void GenerateSection(const G4String& name, const G4String& version,
            const G4String& date, const G4String& author,
             const G4String& topVolume, G4LogicalVolume* lv);
@@ -42,9 +51,13 @@ class TG4XMLGeometryGenerator
 
   private:
     // methods
+    void CutName(G4String& name) const;
     void ProcessLogicalVolume(G4LogicalVolume* lv); 
     void ProcessMaterials(G4LogicalVolume* lv); 
     void ProcessSolids(G4LogicalVolume* lv); 
+    void ProcessRotations(G4LogicalVolume* lv); 
+    void ClearMaterialNames();
+    void ClearVolumeNames();
 
     // static data members
     static TG4XMLGeometryGenerator*  fgInstance;     //this instance
@@ -52,6 +65,8 @@ class TG4XMLGeometryGenerator
     // data members
     TG4VXMLConvertor*  fConvertor; //interface to XML convertor 
     G4std::ofstream    fOutFile;   //output file
+    TG4StringSet       fMaterialNames;   //set of names of materials 
+    TG4StringSet       fVolumeNames;     //set of names of solids
 };