71 for(std::size_t ii = 0; ii < wl0.length(); ++ii)
73 wl0[ii] = toupper(wl0[ii]);
89 else if(wl0 ==
":ISOT")
96 else if(wl0 ==
":ELEM")
104 else if(wl0 ==
":ELEM_FROM_ISOT")
113 else if(wl0 ==
":MATE")
121 else if((wl0 ==
":MIXT") || (wl0 ==
":MIXT_BY_WEIGHT"))
125 wl,
"MaterialMixtureByWeight");
130 else if(wl0 ==
":MIXT_BY_NATOMS")
134 wl,
"MaterialMixtureByNoAtoms");
139 else if(wl0 ==
":MIXT_BY_VOLUME")
143 wl,
"MaterialMixtureByVolume");
149 else if(wl0 ==
":MATE_MEE")
155 G4Exception(
"G4tgrLineProcessor::ProcessLine()",
"Material not found",
163 else if(wl0 ==
":MATE_STATE")
169 G4Exception(
"G4tgrLineProcessor::ProcessLine()",
"Material not found",
176 else if(wl0 ==
":MATE_TEMPERATURE")
182 G4Exception(
"G4tgrLineProcessor::ProcessLine()",
"Material not found",
189 else if(wl0 ==
":MATE_PRESSURE")
195 G4Exception(
"G4tgrLineProcessor::ProcessLine()",
"Material not found",
202 else if(wl0 ==
":SOLID")
208 else if(wl0 ==
":VOLU")
215 else if(wl0 ==
":PLACE")
223 else if(wl0 ==
":PLACE_PARAM")
231 else if((wl0 ==
":DIV_NDIV") || (wl0 ==
":DIV_WIDTH") ||
232 (wl0 ==
":DIV_NDIV_WIDTH"))
240 else if(wl0 ==
":REPL")
248 else if(wl0 ==
":VOLU_ASSEMBLY")
255 else if(wl0 ==
":PLACE_ASSEMBLY")
263 else if(wl0 ==
":ROTM")
273 else if(wl0 ==
":VIS")
275 std::vector<G4tgrVolume*> vols =
277 for(std::size_t ii = 0; ii < vols.size(); ++ii)
279 vols[ii]->AddVisibility(wl);
284 else if((wl0 ==
":COLOUR") || (wl0 ==
":COLOR"))
286 std::vector<G4tgrVolume*> vols =
288 for(std::size_t ii = 0; ii < vols.size(); ++ii)
290 vols[ii]->AddRGBColour(wl);
295 else if(wl0 ==
":CHECK_OVERLAPS")
297 std::vector<G4tgrVolume*> vols =
299 for(std::size_t ii = 0; ii < vols.size(); ++ii)
301 vols[ii]->AddCheckOverlaps(wl);
318 if(vol->
GetType() ==
"VOLDivision")
320 G4Exception(
"G4tgrLineProcessor::FindVolume()",
"InvalidSetup",
322 "Using 'PLACE' for a volume created by a division !");
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
virtual G4bool ProcessLine(const std::vector< G4String > &wl)
virtual ~G4tgrLineProcessor()
G4tgrVolume * FindVolume(const G4String &volname)
G4tgrMaterial * FindMaterial(const G4String &name) const
static G4tgrMaterialFactory * GetInstance()
G4tgrElementFromIsotopes * AddElementFromIsotopes(const std::vector< G4String > &wl)
G4tgrElementSimple * AddElementSimple(const std::vector< G4String > &wl)
G4tgrMaterialMixture * AddMaterialMixture(const std::vector< G4String > &wl, const G4String &mixtType)
G4tgrIsotope * AddIsotope(const std::vector< G4String > &wl)
G4tgrMaterialSimple * AddMaterialSimple(const std::vector< G4String > &wl)
void SetTemperature(G4double val)
void SetPressure(G4double val)
void SetIonisationMeanExcitationEnergy(G4double mee)
void SetState(const G4String &val)
static G4int GetVerboseLevel()
void AddParameterNumber(const std::vector< G4String > &wl, G4bool mustBeNew=false)
void AddParameterString(const std::vector< G4String > &wl, G4bool mustBeNew=false)
static G4tgrParameterMgr * GetInstance()
G4tgrRotationMatrix * AddRotMatrix(const std::vector< G4String > &wl)
static G4tgrRotationMatrixFactory * GetInstance()
static G4String GetString(const G4String &str)
static void DumpVS(const std::vector< G4String > &wl, const char *msg)
static G4double GetDouble(const G4String &str, G4double unitval=1.)
std::vector< G4tgrVolume * > FindVolumes(const G4String &volname, G4bool exists)
G4tgrVolume * FindVolume(const G4String &volname, G4bool exists=false)
void RegisterMe(G4tgrSolid *vol)
G4tgrSolid * CreateSolid(const std::vector< G4String > &wl, G4bool bVOLUtag)
static G4tgrVolumeMgr * GetInstance()
virtual G4tgrPlace * AddPlace(const std::vector< G4String > &wl)
G4tgrPlaceParameterisation * AddPlaceParam(const std::vector< G4String > &wl)
G4tgrPlaceDivRep * AddPlaceReplica(const std::vector< G4String > &wl)
const G4String & GetType() const