BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
|
Process a GDML file to allow multiple file loading. More...
#include <BDSGDMLPreprocessor.hh>
Public Member Functions | |
G4String | PreprocessFile (const G4String &file, const G4String &prefix, G4bool preprocessSchema=true) |
Static Public Member Functions | |
static G4String | ProcessedNodeName (const G4String &nodeName, const G4String &prefix) |
Private Member Functions | |
void | ReadDoc (xercesc::DOMNodeIterator *docIterator, G4bool processSchema) |
void | ReadNode (xercesc::DOMNode *node, G4bool processSchema) |
void | ProcessGDMLNode (xercesc::DOMNamedNodeMap *attributeMap) |
void | ReadAttributes (xercesc::DOMNamedNodeMap *attributeMap) |
void | ProcessDoc (xercesc::DOMNodeIterator *dotIterator, const G4String &prefix) |
void | ProcessNode (xercesc::DOMNode *node, const G4String &prefix) |
void | ProcessAttributes (xercesc::DOMNamedNodeMap *attributeMap, const G4String &prefix) |
Private Attributes | |
G4String | parentDir |
Directory of main gdml file. | |
std::vector< std::string > | ignoreNodes |
Nodes to ignore. | |
std::vector< std::string > | ignoreAttrs |
Attributes to ignore. | |
std::vector< std::string > | names |
Names to replace. | |
std::map< std::string, int > | count |
Debugging. | |
Process a GDML file to allow multiple file loading.
Replace names with uniques ones in a GDML file to compensate for the Geant4 GDML parser's lack of ability to indpendently load multiple GDML files. This may also be used in future for parameterising geometry via subsitution of variables.
Definition at line 54 of file BDSGDMLPreprocessor.hh.
BDSGDMLPreprocessor::BDSGDMLPreprocessor | ( | ) |
Definition at line 129 of file BDSGDMLPreprocessor.cc.
BDSGDMLPreprocessor::~BDSGDMLPreprocessor | ( | ) |
Definition at line 135 of file BDSGDMLPreprocessor.cc.
G4String BDSGDMLPreprocessor::PreprocessFile | ( | const G4String & | file, |
const G4String & | prefix, | ||
G4bool | preprocessSchema = true |
||
) |
Update folder containing gdml file.
Definition at line 138 of file BDSGDMLPreprocessor.cc.
References BDSTemporaryFiles::CreateTemporaryFile(), BDSTemporaryFiles::Instance(), parentDir, and BDS::SplitPathAndFileName().
|
private |
Definition at line 324 of file BDSGDMLPreprocessor.cc.
|
private |
Definition at line 299 of file BDSGDMLPreprocessor.cc.
|
static |
Prepare the prefixed name. Done in a public static function so the convention is in only one place.
Definition at line 320 of file BDSGDMLPreprocessor.cc.
Referenced by BDSGeometryFactoryGDML::PreprocessedName().
|
private |
Definition at line 250 of file BDSGDMLPreprocessor.cc.
|
private |
Definition at line 306 of file BDSGDMLPreprocessor.cc.
|
private |
Definition at line 279 of file BDSGDMLPreprocessor.cc.
|
private |
Definition at line 224 of file BDSGDMLPreprocessor.cc.
|
private |
Definition at line 231 of file BDSGDMLPreprocessor.cc.
|
private |
Debugging.
Definition at line 82 of file BDSGDMLPreprocessor.hh.
|
private |
Attributes to ignore.
Definition at line 80 of file BDSGDMLPreprocessor.hh.
|
private |
Nodes to ignore.
Definition at line 79 of file BDSGDMLPreprocessor.hh.
|
private |
Names to replace.
Definition at line 81 of file BDSGDMLPreprocessor.hh.
|
private |
Directory of main gdml file.
Definition at line 78 of file BDSGDMLPreprocessor.hh.
Referenced by PreprocessFile().