]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TGeant4/TG4XMLConvertor.h
Possibility to set field map by passing pointer to objet of type AliMagF via
[u/mrichter/AliRoot.git] / TGeant4 / TG4XMLConvertor.h
index 2bd5941e47a1de084135e12bf00e97f90445e959..7d6278b1c0f1f515b4c9e7f471faaf32817d4573 100644 (file)
 class G4Material;
 class G4VSolid;
 class G4LogicalVolume;
+class G4PVReplica;
 class G4Box;
 class G4Tubs;
+class G4Cons;
 class G4Trd;
+class G4Trap;
+class G4Polycone;
+class G4Polyhedra;
 
 class TG4XMLConvertor : public TG4VXMLConvertor
 {
@@ -40,12 +45,14 @@ class TG4XMLConvertor : public TG4VXMLConvertor
     virtual void CloseComposition();
 
     virtual void WriteMaterial(const G4Material* material); 
-    virtual void WriteSolid(const G4VSolid* solid, G4String materialName); 
+    virtual void WriteSolid(G4String lvName, const G4VSolid* solid, 
+                            G4String materialName); 
     virtual void WriteRotation(const G4RotationMatrix* rotation); 
-    virtual void WritePosition(G4String solidName, G4ThreeVector position); 
+    virtual void WritePosition(G4String lvName, G4ThreeVector position); 
     virtual void WritePositionWithRotation(
-                               G4String solidName, G4ThreeVector position,
-                              const G4RotationMatrix* rotation); 
+                               G4String lvName, G4ThreeVector position,
+                              const G4RotationMatrix* rotation); 
+    virtual void WriteReplica(G4String lvName, G4PVReplica* pvr);                             
     virtual void WriteEmptyLine();
     virtual void IncreaseIndention();
     virtual void DecreaseIndention();
@@ -55,21 +62,28 @@ class TG4XMLConvertor : public TG4VXMLConvertor
     void CutName(G4String& name) const;
     void CutName(G4String& name, G4int size) const;
     void PutName(G4String& element, G4String name, G4String templ) const;
-    void WriteBox (const G4Box*  box,  G4String materialName); 
-    void WriteTubs(const G4Tubs* tubs, G4String materialName); 
-    void WriteTrd (const G4Trd*  trd,  G4String materialName); 
+    
+         // writing solids
+    void WriteBox (G4String lvName, const G4Box*  box,  G4String materialName); 
+    void WriteTubs(G4String lvName, const G4Tubs* tubs, G4String materialName); 
+    void WriteCons(G4String lvName, const G4Cons* cons, G4String materialName); 
+    void WriteTrd (G4String lvName, const G4Trd*  trd,  G4String materialName); 
+    void WriteTrap(G4String lvName, const G4Trap* trap, G4String materialName); 
+    void WritePolycone(G4String lvName, const G4Polycone* polycone, 
+                   G4String materialName); 
+    void WritePolyhedra(G4String lvName, const G4Polyhedra* polyhedra, 
+                   G4String materialName); 
   
     // static data members
-    static const G4int fgkMaxVolumeNameLength;
-    static const G4int fgkMaxMaterialNameLength;
+    static const G4int fgkMaxVolumeNameLength;  //maximal volume name length
+    static const G4int fgkMaxMaterialNameLength;//maximal material name length
 
     // data members
     G4std::ofstream&  fOutFile;          //output file
-    TG4StringSet      fMaterialNames;    //set of names of materials 
-    TG4StringSet      fSolidNames;       //set of names of solids
-    TG4RotationMatrixVector  fRotations; // vector of rot matrices
-    const G4String    fBasicIndention;   //basic indention 
+    const G4String    fkBasicIndention;  //basic indention 
     G4String          fIndention;        //indention string
+    G4int             fRotationCounter;  //counter of rotations
+    TG4RotationMatrixVector  fRotations; // vector of rot matrices
 };
 
 #endif //TG4_XML_CONVERTOR_H