]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TGeant4/TG4XMLConvertor.h
applied corrections of first implementation; separated materials from section (added...
[u/mrichter/AliRoot.git] / TGeant4 / TG4XMLConvertor.h
CommitLineData
240601e9 1// $Id$
2// Category: geometry
3// by I. Hrivnacova, 27.07.2000
4//
5// XML convertor that converts G4 basic geometry objects
6// to XML defined by AGDD.dtd
7// (ATLAS Generic Detector Description)
8
9#ifndef TG4_XML_CONVERTOR_H
10#define TG4_XML_CONVERTOR_H
11
12#include "TG4VXMLConvertor.h"
13#include "TG4Globals.h"
14
15#include <globals.hh>
16#include <g4std/fstream>
17
18class G4Material;
19class G4VSolid;
20class G4LogicalVolume;
21class G4Box;
22class G4Tubs;
23class G4Trd;
24
25class TG4XMLConvertor : public TG4VXMLConvertor
26{
27 public:
28 TG4XMLConvertor(G4std::ofstream& outFile);
29 virtual ~TG4XMLConvertor();
30
31 // methods
509c89ec 32 virtual void OpenMaterials(const G4String& version, const G4String& date,
33 const G4String& author, const G4String dtdVersion);
240601e9 34 virtual void OpenSection(const G4String& name, const G4String& version,
35 const G4String& date, const G4String& author,
36 const G4String& topVolume);
37 virtual void OpenComposition(const G4String& name);
509c89ec 38 virtual void CloseMaterials();
240601e9 39 virtual void CloseSection();
40 virtual void CloseComposition();
41
42 virtual void WriteMaterial(const G4Material* material);
43 virtual void WriteSolid(const G4VSolid* solid, G4String materialName);
44 virtual void WriteRotation(const G4RotationMatrix* rotation);
45 virtual void WritePosition(G4String solidName, G4ThreeVector position);
46 virtual void WritePositionWithRotation(
47 G4String solidName, G4ThreeVector position,
48 const G4RotationMatrix* rotation);
49 virtual void WriteEmptyLine();
509c89ec 50 virtual void IncreaseIndention();
51 virtual void DecreaseIndention();
240601e9 52
53 private:
54 //methods
55 void CutName(G4String& name) const;
56 void CutName(G4String& name, G4int size) const;
57 void PutName(G4String& element, G4String name, G4String templ) const;
58 void WriteBox (const G4Box* box, G4String materialName);
59 void WriteTubs(const G4Tubs* tubs, G4String materialName);
60 void WriteTrd (const G4Trd* trd, G4String materialName);
61
62 // static data members
63 static const G4int fgkMaxVolumeNameLength;
64 static const G4int fgkMaxMaterialNameLength;
65
66 // data members
509c89ec 67 G4std::ofstream& fOutFile; //output file
68 TG4StringSet fMaterialNames; //set of names of materials
69 TG4StringSet fSolidNames; //set of names of solids
70 TG4RotationMatrixVector fRotations; // vector of rot matrices
71 const G4String fBasicIndention; //basic indention
72 G4String fIndention; //indention string
240601e9 73};
74
75#endif //TG4_XML_CONVERTOR_H
76