21#ifndef BDSGEOMETRYFACTORYGDML_H
22#define BDSGEOMETRYFACTORYGDML_H
24#include "BDSGeometryFactoryBase.hh"
36class G4VPhysicalVolume;
54 std::map<G4String, G4Colour*>* colourMapping =
nullptr,
55 G4bool autoColour =
true,
56 G4double suggestedLength = 0,
57 G4double suggestedHorizontalWidth = 0,
58 std::vector<G4String>* namedVacuumVolumes =
nullptr,
59 G4bool makeSensitive =
true,
60 BDSSDType sensitivityType = BDSSDType::energydep,
61 BDSSDType vacuumSensitivityType = BDSSDType::energydepvacuum,
62 G4UserLimits* userLimitsToAttachToAllLVs =
nullptr);
67 const G4String& acceleratorComponentName)
const;
75 const G4String& outputFileName,
77 const G4String& replacement);
82 std::set<G4VPhysicalVolume*>& pvs,
83 std::set<G4LogicalVolume*>& lvs,
84 std::map<G4String, G4Material*>& materialsGDML);
A loaded piece of externally provided geometry.
Base class for external geometry loading factories.
Interface to Geant4's GDML loader.
void GetAllLogicalPhysicalAndMaterials(const G4VPhysicalVolume *volume, std::set< G4VPhysicalVolume * > &pvs, std::set< G4LogicalVolume * > &lvs, std::map< G4String, G4Material * > &materialsGDML)
virtual BDSGeometryExternal * Build(G4String componentName, G4String fileName, std::map< G4String, G4Colour * > *colourMapping=nullptr, G4bool autoColour=true, G4double suggestedLength=0, G4double suggestedHorizontalWidth=0, std::vector< G4String > *namedVacuumVolumes=nullptr, G4bool makeSensitive=true, BDSSDType sensitivityType=BDSSDType::energydep, BDSSDType vacuumSensitivityType=BDSSDType::energydepvacuum, G4UserLimits *userLimitsToAttachToAllLVs=nullptr)
virtual G4String PreprocessedName(const G4String &objectName, const G4String &acceleratorComponentName) const
Use the GDML preprocessing scheme to prepare the preprocesseed volume names.
void ReplaceStringInFile(const G4String &filename, const G4String &outputFileName, const G4String &key, const G4String &replacement)
Improve type-safety of native enum data type in C++.