63   : 
x(0,0,0), 
p(0,0,1), grdRes(100,100,100), cylRes(90,50,50),
 
   64     cylfZ(0.8), cylfR(0.8), newtol(false), tol(1E-4),  
 
   65     recLevel(0), recDepth(-1), tmanager(tman), tlogger(0), tvolume(0)
 
   68   geodir->
SetGuidance( 
"Geometry control commands." );
 
   74   navdir->
SetGuidance( 
"Geometry navigator control setup." );
 
   77   resCmd->
SetGuidance( 
"Reset navigator and navigation history." );
 
   78   resCmd->
SetGuidance( 
"NOTE: must be called only after kernel has been" );
 
   79   resCmd->
SetGuidance( 
"      initialized once through the run manager!" );
 
   83   verbCmd->
SetGuidance( 
"Set run-time verbosity for the navigator." );
 
   85   verbCmd->
SetGuidance(
" 1 : Display volume positioning and step lengths");
 
   86   verbCmd->
SetGuidance(
" 2 : Display step/safety info on point location");
 
   87   verbCmd->
SetGuidance(
" 3 : Display minimal state at -every- step");
 
   88   verbCmd->
SetGuidance(
" 4 : Maximum verbosity (very detailed!)");
 
   89   verbCmd->
SetGuidance( 
"NOTE: this command has effect -only- if Geant4 has" );
 
   90   verbCmd->
SetGuidance( 
"      been installed with the G4VERBOSE flag set!" );
 
   93   verbCmd->
SetRange(
"level >=0 && level <=4");
 
   96   chkCmd->
SetGuidance( 
"Set navigator in -check_mode- state." );
 
   97   chkCmd->
SetGuidance( 
"This will cause extra checks to be applied during" );
 
   98   chkCmd->
SetGuidance( 
"navigation. More strict and less tolerant conditions" );
 
   99   chkCmd->
SetGuidance( 
"are applied. A run-time performance penalty may be" );
 
  100   chkCmd->
SetGuidance( 
"observed when the -check_mode- state is activated." );
 
  101   chkCmd->
SetGuidance( 
"NOTE: this command has effect -only- if Geant4 has" );
 
  102   chkCmd->
SetGuidance( 
"      been installed with the G4VERBOSE flag set!" );
 
  108   pchkCmd->
SetGuidance( 
"Set navigator verbosity push notifications." );
 
  109   pchkCmd->
SetGuidance( 
"This allows to disable/re-enable verbosity in" );
 
  110   pchkCmd->
SetGuidance( 
"navigation, when tracks may get stuck and require" );
 
  111   pchkCmd->
SetGuidance( 
"one artificial push along the direction by the" );
 
  112   pchkCmd->
SetGuidance( 
"navigator. Notification is active by default." );
 
  113   pchkCmd->
SetGuidance( 
"NOTE: this command has effect -only- if Geant4 has" );
 
  114   pchkCmd->
SetGuidance( 
"      been installed with the G4VERBOSE flag set!" );
 
  123   testdir->
SetGuidance( 
"Geometry verification control setup." );
 
  124   testdir->
SetGuidance( 
"Helps in detecting possible overlapping regions." );
 
  127   tolCmd->
SetGuidance( 
"Set error tolerance value." );
 
  128   tolCmd->
SetGuidance( 
"Initial default value: 1E-4*mm." );
 
  135   posCmd->
SetGuidance( 
"Set starting position for the line_test." );
 
  140   dirCmd->
SetGuidance( 
"Set momentum direction for the line_test." );
 
  141   dirCmd->
SetGuidance( 
"Direction needs not to be a unit vector." );
 
  143   dirCmd->
SetRange( 
"Px != 0 || Py != 0 || Pz != 0" );
 
  146   linCmd->
SetGuidance( 
"Performs test along a single specified direction/position." );
 
  147   linCmd->
SetGuidance( 
"Use position and direction commands to change default." );
 
  148   linCmd->
SetGuidance( 
"Initial default: position(0,0,0), direction(0,0,1)." );
 
  149   linCmd->
SetGuidance( 
"If recursion flag is set to TRUE, the intersection checks" );
 
  150   linCmd->
SetGuidance( 
"will be performed recursively in the geometry tree." );
 
  156   grzCmd->
SetGuidance( 
"Define resolution of grid geometry as number of cells," );
 
  157   grzCmd->
SetGuidance( 
"specifying them for each dimension, X, Y and Z." );
 
  158   grzCmd->
SetGuidance( 
"Will be applied to grid_test and recursive_test commands." );
 
  159   grzCmd->
SetGuidance( 
"Initial default values: X=100, Y=100, Z=100." );
 
  164   grdCmd->
SetGuidance( 
"Start running the default grid test." );
 
  165   grdCmd->
SetGuidance( 
"A grid of lines parallel to a cartesian axis is used;" );
 
  166   grdCmd->
SetGuidance( 
"By default, only direct daughters of the mother volumes are checked." );
 
  167   grdCmd->
SetGuidance( 
"If recursion flag is set to TRUE, the intersection checks" );
 
  168   grdCmd->
SetGuidance( 
"will be performed recursively in the geometry tree." );
 
  169   grdCmd->
SetGuidance( 
"NOTE: the recursion may take a very long time," );
 
  170   grdCmd->
SetGuidance( 
"      depending on the geometry complexity !");
 
  176   cyzCmd->
SetGuidance( 
"Define details of the cylinder geometry, specifying:" );
 
  177   cyzCmd->
SetGuidance( 
"  nPhi - number of lines per Phi" );
 
  179   cyzCmd->
SetGuidance( 
"  nRho - number of Rho points" );
 
  180   cyzCmd->
SetGuidance( 
"Will be applied to the cylinder_test command." );
 
  181   cyzCmd->
SetGuidance( 
"Initial default values: nPhi=90, nZ=50, nRho=50." );
 
  186   cfzCmd->
SetGuidance( 
"Define the resolution of the cylinder geometry, specifying" );
 
  187   cfzCmd->
SetGuidance( 
"the fraction scale for points along Z." );
 
  188   cfzCmd->
SetGuidance( 
"Initial default values: fracZ=0.8" );
 
  193   cfrCmd->
SetGuidance( 
"Define the resolution of the cylinder geometry, specifying" );
 
  194   cfrCmd->
SetGuidance( 
"the fraction scale for points along Rho." );
 
  195   cfrCmd->
SetGuidance( 
"Initial default values: fracRho=0.8" );
 
  200   cylCmd->
SetGuidance( 
"Start running the cylinder test." );
 
  201   cylCmd->
SetGuidance( 
"A set of lines in a cylindrical pattern of gradually" );
 
  203   cylCmd->
SetGuidance( 
"By default, only direct daughters of the mother volumes are checked." );
 
  204   cylCmd->
SetGuidance( 
"If recursion flag is set to TRUE, the intersection checks" );
 
  205   cylCmd->
SetGuidance( 
"will be performed recursively in the geometry tree." );
 
  206   cylCmd->
SetGuidance( 
"NOTE: the recursion may take a very long time," );
 
  207   cylCmd->
SetGuidance( 
"      depending on the geometry complexity !");
 
  213   rcsCmd->
SetGuidance( 
"Set the initial level in the geometry tree for recursion." );
 
  214   rcsCmd->
SetGuidance( 
"recursive_test will then start from the specified level." );
 
  219   rcdCmd->
SetGuidance( 
"Set the depth in the geometry tree for recursion." );
 
  220   rcdCmd->
SetGuidance( 
"recursive_test will then stop after reached the specified depth." );
 
  221   rcdCmd->
SetGuidance( 
"By default, recursion will proceed for the whole depth." );
 
  228   runCmd->
SetGuidance( 
"Start running the default grid test." );
 
  229   runCmd->
SetGuidance( 
"Same as the grid_test command." );
 
  230   runCmd->
SetGuidance( 
"If recursion flag is set to TRUE, the intersection checks" );
 
  231   runCmd->
SetGuidance( 
"will be performed recursively in the geometry tree." );
 
  232   runCmd->
SetGuidance( 
"NOTE: the recursion may take a very long time," );
 
  233   runCmd->
SetGuidance( 
"      depending on the geometry complexity !");
 
  239   recCmd->
SetGuidance( 
"Start running the recursive grid test." );
 
  240   recCmd->
SetGuidance( 
"A grid of lines along a cartesian axis is recursively" );
 
  241   recCmd->
SetGuidance( 
"to all daughters and daughters of daughters, etc." );
 
  242   recCmd->
SetGuidance( 
"NOTE: it may take a very long time," );
 
  243   recCmd->
SetGuidance( 
"      depending on the geometry complexity !");
 
  252   delete linCmd; 
delete posCmd; 
delete dirCmd;
 
  253   delete grzCmd; 
delete grdCmd; 
delete recCmd; 
delete runCmd;
 
  254   delete rcsCmd; 
delete rcdCmd;
 
  255   delete cyzCmd; 
delete cfzCmd; 
delete cfrCmd; 
delete cylCmd;
 
  257   delete resCmd; 
delete verbCmd; 
delete pchkCmd; 
delete chkCmd;
 
  258   delete geodir; 
delete navdir; 
delete testdir;
 
  259   delete tvolume; 
delete tlogger;
 
  266 G4GeometryMessenger::Init()
 
  270   if (tlogger) 
delete tlogger;
 
  271   if (tvolume) 
delete tvolume;
 
  293   if (command == resCmd) {
 
  296   else if (command == verbCmd) {
 
  297     SetVerbosity( newValues );
 
  299   else if (command == chkCmd) {
 
  300     SetCheckMode( newValues );
 
  302   else if (command == posCmd) {
 
  305   else if (command == dirCmd) {
 
  308       G4cerr << 
"Please specify non-zero momentum!" << 
G4endl;
 
  312   else if (command == tolCmd) {
 
  316   else if (command == linCmd) {
 
  323   else if ((command == grdCmd) || (command == runCmd)){
 
  330   else if (command == grzCmd) {
 
  333       G4cerr << 
"Please specify non-zero resolution!" << 
G4endl;
 
  337   else if (command == cyzCmd) {
 
  340   else if (command == cfzCmd) {
 
  343   else if (command == cfrCmd) {
 
  346   else if (command == rcsCmd) {
 
  349   else if (command == rcdCmd) {
 
  352   else if (command == recCmd) {
 
  356   else if (command == cylCmd) {
 
  359       RecursiveCylinderTest();
 
  372   if (command == posCmd) {
 
  375   else if (command == tolCmd) {
 
  378   else if (command == dirCmd) {
 
  388 G4GeometryMessenger::CheckGeometry()
 
  403 G4GeometryMessenger::ResetNavigator()
 
  420 G4GeometryMessenger::SetVerbosity(
G4String input)
 
  431 G4GeometryMessenger::SetCheckMode(
G4String input)
 
  442 G4GeometryMessenger::SetPushFlag(
G4String input)
 
  453 G4GeometryMessenger::LineTest()
 
  476 G4GeometryMessenger::RecursiveLineTest()
 
  499 G4GeometryMessenger::GridTest()
 
  524 G4GeometryMessenger::RecursiveGridTest()
 
  539                                   recLevel, recDepth );
 
  550 G4GeometryMessenger::CylinderTest()
 
  577 G4GeometryMessenger::RecursiveCylinderTest()
 
  594                                  recLevel, recDepth );