BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
BDSGDMLPreprocessor Class Reference

Process a GDML file to allow multiple file loading. More...

#include <BDSGDMLPreprocessor.hh>

Collaboration diagram for BDSGDMLPreprocessor:
Collaboration graph

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.
 

Detailed Description

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.

Author
Stewart Boogert

Definition at line 54 of file BDSGDMLPreprocessor.hh.

Constructor & Destructor Documentation

◆ BDSGDMLPreprocessor()

BDSGDMLPreprocessor::BDSGDMLPreprocessor ( )

Definition at line 129 of file BDSGDMLPreprocessor.cc.

◆ ~BDSGDMLPreprocessor()

BDSGDMLPreprocessor::~BDSGDMLPreprocessor ( )

Definition at line 135 of file BDSGDMLPreprocessor.cc.

Member Function Documentation

◆ PreprocessFile()

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().

Here is the call graph for this function:

◆ ProcessAttributes()

void BDSGDMLPreprocessor::ProcessAttributes ( xercesc::DOMNamedNodeMap *  attributeMap,
const G4String &  prefix 
)
private

Definition at line 324 of file BDSGDMLPreprocessor.cc.

◆ ProcessDoc()

void BDSGDMLPreprocessor::ProcessDoc ( xercesc::DOMNodeIterator *  dotIterator,
const G4String &  prefix 
)
private

Definition at line 299 of file BDSGDMLPreprocessor.cc.

◆ ProcessedNodeName()

G4String BDSGDMLPreprocessor::ProcessedNodeName ( const G4String &  nodeName,
const G4String &  prefix 
)
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().

Here is the caller graph for this function:

◆ ProcessGDMLNode()

void BDSGDMLPreprocessor::ProcessGDMLNode ( xercesc::DOMNamedNodeMap *  attributeMap)
private

Definition at line 250 of file BDSGDMLPreprocessor.cc.

◆ ProcessNode()

void BDSGDMLPreprocessor::ProcessNode ( xercesc::DOMNode *  node,
const G4String &  prefix 
)
private

Definition at line 306 of file BDSGDMLPreprocessor.cc.

◆ ReadAttributes()

void BDSGDMLPreprocessor::ReadAttributes ( xercesc::DOMNamedNodeMap *  attributeMap)
private

Definition at line 279 of file BDSGDMLPreprocessor.cc.

◆ ReadDoc()

void BDSGDMLPreprocessor::ReadDoc ( xercesc::DOMNodeIterator *  docIterator,
G4bool  processSchema 
)
private

Definition at line 224 of file BDSGDMLPreprocessor.cc.

◆ ReadNode()

void BDSGDMLPreprocessor::ReadNode ( xercesc::DOMNode *  node,
G4bool  processSchema 
)
private

Definition at line 231 of file BDSGDMLPreprocessor.cc.

Field Documentation

◆ count

std::map<std::string, int> BDSGDMLPreprocessor::count
private

Debugging.

Definition at line 82 of file BDSGDMLPreprocessor.hh.

◆ ignoreAttrs

std::vector<std::string> BDSGDMLPreprocessor::ignoreAttrs
private

Attributes to ignore.

Definition at line 80 of file BDSGDMLPreprocessor.hh.

◆ ignoreNodes

std::vector<std::string> BDSGDMLPreprocessor::ignoreNodes
private

Nodes to ignore.

Definition at line 79 of file BDSGDMLPreprocessor.hh.

◆ names

std::vector<std::string> BDSGDMLPreprocessor::names
private

Names to replace.

Definition at line 81 of file BDSGDMLPreprocessor.hh.

◆ parentDir

G4String BDSGDMLPreprocessor::parentDir
private

Directory of main gdml file.

Definition at line 78 of file BDSGDMLPreprocessor.hh.

Referenced by PreprocessFile().


The documentation for this class was generated from the following files: