60 : tol(0.0), recLevel(0), recDepth(-1), tmanager(tman), tvolume(0)
63 geodir->
SetGuidance(
"Geometry control commands." );
69 navdir->
SetGuidance(
"Geometry navigator control setup." );
72 resCmd->
SetGuidance(
"Reset navigator and navigation history." );
73 resCmd->
SetGuidance(
"NOTE: must be called only after kernel has been" );
74 resCmd->
SetGuidance(
" initialized once through the run manager!" );
78 verbCmd->
SetGuidance(
"Set run-time verbosity for the navigator." );
80 verbCmd->
SetGuidance(
" 1 : Display volume positioning and step lengths");
81 verbCmd->
SetGuidance(
" 2 : Display step/safety info on point location");
82 verbCmd->
SetGuidance(
" 3 : Display minimal state at -every- step");
83 verbCmd->
SetGuidance(
" 4 : Maximum verbosity (very detailed!)");
84 verbCmd->
SetGuidance(
"NOTE: this command has effect -only- if Geant4 has" );
85 verbCmd->
SetGuidance(
" been installed with the G4VERBOSE flag set!" );
88 verbCmd->
SetRange(
"level >=0 && level <=4");
91 chkCmd->
SetGuidance(
"Set navigator in -check_mode- state." );
92 chkCmd->
SetGuidance(
"This will cause extra checks to be applied during" );
93 chkCmd->
SetGuidance(
"navigation. More strict and less tolerant conditions" );
94 chkCmd->
SetGuidance(
"are applied. A run-time performance penalty may be" );
95 chkCmd->
SetGuidance(
"observed when the -check_mode- state is activated." );
96 chkCmd->
SetGuidance(
"NOTE: this command has effect -only- if Geant4 has" );
97 chkCmd->
SetGuidance(
" been installed with the G4VERBOSE flag set!" );
103 pchkCmd->
SetGuidance(
"Set navigator verbosity push notifications." );
104 pchkCmd->
SetGuidance(
"This allows to disable/re-enable verbosity in" );
105 pchkCmd->
SetGuidance(
"navigation, when tracks may get stuck and require" );
106 pchkCmd->
SetGuidance(
"one artificial push along the direction by the" );
107 pchkCmd->
SetGuidance(
"navigator. Notification is active by default." );
108 pchkCmd->
SetGuidance(
"NOTE: this command has effect -only- if Geant4 has" );
109 pchkCmd->
SetGuidance(
" been installed with the G4VERBOSE flag set!" );
118 testdir->
SetGuidance(
"Geometry verification control setup." );
119 testdir->
SetGuidance(
"Helps in detecting possible overlapping regions." );
122 tolCmd->
SetGuidance(
"Define tolerance (in mm) by which overlaps reports" );
123 tolCmd->
SetGuidance(
"should be reported. By default, all overlaps are" );
124 tolCmd->
SetGuidance(
"reported, i.e. tolerance is set to: 0*mm." );
131 verCmd->
SetGuidance(
"Specify if running in verbosity mode or not." );
132 verCmd->
SetGuidance(
"By default verbosity is set to ON (TRUE)." );
138 rslCmd->
SetGuidance(
"Set the number of points on surface to be generated for" );
144 rcsCmd->
SetGuidance(
"Set the initial level in the geometry tree for recursion." );
145 rcsCmd->
SetGuidance(
"recursive_test will then start from the specified level." );
150 rcdCmd->
SetGuidance(
"Set the depth in the geometry tree for recursion." );
151 rcdCmd->
SetGuidance(
"recursive_test will then stop after reached the specified depth." );
152 rcdCmd->
SetGuidance(
"By default, recursion will proceed for the whole depth." );
157 errCmd->
SetGuidance(
"Set the maximum number of overlap errors to report" );
158 errCmd->
SetGuidance(
"for each single volume being checked." );
159 errCmd->
SetGuidance(
"Once reached the maximum number specified, overlaps" );
160 errCmd->
SetGuidance(
"affecting that volume further than that are simply ignored." );
165 recCmd->
SetGuidance(
"Start running the recursive overlap check." );
166 recCmd->
SetGuidance(
"Volumes are recursively asked to verify for overlaps" );
167 recCmd->
SetGuidance(
"for points generated on the surface against their" );
168 recCmd->
SetGuidance(
"respective mother volume and sisters at the same" );
169 recCmd->
SetGuidance(
"level, performing for all daughters and daughters of" );
171 recCmd->
SetGuidance(
"NOTE: it may take a very long time," );
172 recCmd->
SetGuidance(
" depending on the geometry complexity !");
181 delete verCmd;
delete recCmd;
delete rslCmd;
182 delete resCmd;
delete rcsCmd;
delete rcdCmd;
delete errCmd;
184 delete verbCmd;
delete pchkCmd;
delete chkCmd;
185 delete geodir;
delete navdir;
delete testdir;
193 G4GeometryMessenger::Init()
216 if (command == resCmd) {
219 else if (command == verbCmd) {
220 SetVerbosity( newValues );
222 else if (command == chkCmd) {
223 SetCheckMode( newValues );
225 else if (command == tolCmd) {
231 else if (command == verCmd) {
235 else if (command == rslCmd) {
239 else if (command == rcsCmd) {
242 else if (command == rcdCmd) {
245 else if (command == errCmd) {
249 else if (command == recCmd) {
251 G4cout <<
"Running geometry overlaps check..." <<
G4endl;
252 RecursiveOverlapTest();
253 G4cout <<
"Geometry overlaps check completed !" <<
G4endl;
264 if (command == tolCmd) {
274 G4GeometryMessenger::CheckGeometry()
289 G4GeometryMessenger::ResetNavigator()
306 G4GeometryMessenger::SetVerbosity(
G4String input)
317 G4GeometryMessenger::SetCheckMode(
G4String input)
328 G4GeometryMessenger::SetPushFlag(
G4String input)
339 G4GeometryMessenger::RecursiveOverlapTest()
void SetNewValue(G4UIcommand *command, G4String newValues)
void SetDefaultValue(G4double defVal)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void TestRecursiveOverlap(G4int sLevel=0, G4int depth=-1)
void SetResolution(G4int points)
void SetVerbosity(G4bool verbosity)
static G4int GetNewIntValue(const char *paramString)
G4Navigator * GetNavigatorForTracking() const
void SetTolerance(G4double tolerance)
static G4String ConvertToString(G4bool boolVal)
void SetUnitCategory(const char *unitCategory)
static G4double GetNewDoubleValue(const char *paramString)
static G4bool GetNewBoolValue(const char *paramString)
void SetVerboseLevel(G4int level)
void SetDefaultValue(G4bool defVal)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
G4GLOB_DLL std::ostream G4cout
G4bool IsGeometryClosed()
void SetRange(const char *rs)
void SetGuidance(const char *aGuidance)
void AvailableForStates(G4ApplicationState s1)
static G4GeometryManager * GetInstance()
void SetDefaultUnit(const char *defUnit)
G4String GetCurrentValue(G4UIcommand *command)
virtual G4VPhysicalVolume * LocateGlobalPointAndSetup(const G4ThreeVector &point, const G4ThreeVector *direction=0, const G4bool pRelativeSearch=true, const G4bool ignoreDirection=true)
void SetPushVerbosity(G4bool mode)
void SetErrorsThreshold(G4int max)
void OpenGeometry(G4VPhysicalVolume *vol=0)
void SetDefaultValue(G4int defVal)
void CheckMode(G4bool mode)
G4GeometryMessenger(G4TransportationManager *tman)
G4VPhysicalVolume * GetWorldVolume() const
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
G4bool CloseGeometry(G4bool pOptimise=true, G4bool verbose=false, G4VPhysicalVolume *vol=0)
static G4double GetNewUnitValue(const char *paramString)