21#ifndef BDSGDMLPREPROCESSOR_H
22#define BDSGDMLPREPROCESSOR_H
29#include "xercesc/dom/DOM.hpp"
30#include "xercesc/dom/DOMNodeList.hpp"
34 G4String PreprocessGDML(
const G4String& file,
35 const G4String& prefix,
36 G4bool preprocessSchema =
true);
38 G4String PreprocessGDMLSchemaOnly(
const G4String& file);
61 const G4String& prefix,
62 G4bool preprocessSchema =
true);
67 const G4String& prefix);
70 void ReadDoc(xercesc::DOMNodeIterator* docIterator, G4bool processSchema);
71 void ReadNode(xercesc::DOMNode* node, G4bool processSchema);
72 void ProcessGDMLNode(xercesc::DOMNamedNodeMap* attributeMap);
73 void ReadAttributes(xercesc::DOMNamedNodeMap* attributeMap);
74 void ProcessDoc(xercesc::DOMNodeIterator* dotIterator,
const G4String& prefix);
75 void ProcessNode(xercesc::DOMNode* node,
const G4String& prefix);
76 void ProcessAttributes(xercesc::DOMNamedNodeMap* attributeMap,
const G4String& prefix);
82 std::map<std::string, int>
count;
Process a GDML file to allow multiple file loading.
static G4String ProcessedNodeName(const G4String &nodeName, const G4String &prefix)
std::vector< std::string > ignoreNodes
Nodes to ignore.
G4String PreprocessFile(const G4String &file, const G4String &prefix, G4bool preprocessSchema=true)
std::vector< std::string > names
Names to replace.
std::map< std::string, int > count
Debugging.
std::vector< std::string > ignoreAttrs
Attributes to ignore.
G4String parentDir
Directory of main gdml file.
Return either G4Tubs or G4CutTubs depending on flat face.
G4String GDMLSchemaLocation()
Get GDML Schema location included with BDSIM.