42   : fId(id), fVerbose(0)
 
   59       G4cout << 
"*************** " << fType << 
" *****************" << 
G4endl 
   61              << std::setw(15) << 
"Safety/mm" << 
" " 
   62              << std::setw(15) << 
"Distance/mm" << 
" " 
   63              << std::setw(52) << 
"Position (local coordinates)" 
   66              << std::setw(15) << motherSafety << 
" "  
   67              << std::setw(15) << 
"N/C"        << 
" " << localPoint << 
" - " 
   71     if ( motherSafety < 0.0 )
 
   73       std::ostringstream message;
 
   74       message << 
"Negative Safety In Voxel Navigation !" << 
G4endl 
   75              << 
"        Current solid " << motherSolid->
GetName()
 
   76              << 
" gave negative safety: " << motherSafety << 
G4endl 
   77              << 
"        for the current (local) point " << localPoint;
 
   83       std::ostringstream message;
 
   84       message << 
"Point is outside Current Volume - " << 
G4endl 
   85               << 
"          Point " << localPoint
 
   86               << 
" is outside current volume " << motherPhysical->
GetName()
 
   89       message << 
"          Estimated isotropic distance to solid (distToIn)= "  
   91       if( estDistToSolid > 100.0 * motherSolid->
GetTolerance() )
 
   95                     "Point is far outside Current Volume !" ); 
 
   99                     "Point is a little outside Current Volume."); 
 
  108       G4cout << 
" - Information on mother / key daughters ..." << 
G4endl;
 
  109       G4cout << 
"  Type   " << std::setw(12) << 
"Solid-Name"   << 
" "  
  110              << std::setw(3*(6+precVerf))    << 
" local point" << 
" " 
  111              << std::setw(4+precVerf)        << 
"solid-Safety" << 
" " 
  112              << std::setw(4+precVerf)        << 
"solid-Step"   << 
" " 
  113              << std::setw(17)                << 
"distance Method " 
  114              << std::setw(3*(6+precVerf))    << 
" local direction" << 
" " 
  116       G4cout << 
"  Mother " << std::setw(12) << motherSolid->
GetName() << 
" " 
  117              << std::setw(4+precVerf)        << localPoint   << 
" " 
  118              << std::setw(4+precVerf)        << motherSafety << 
" " 
  120       G4cout.precision(oldprec);
 
  138     intersectionPoint= samplePoint + sampleStep * sampleDirection;
 
  142     G4String solidResponse = 
"-kInside-";
 
  144       { solidResponse = 
"-kOutside-"; }
 
  146       { solidResponse = 
"-kSurface-"; }
 
  150       G4cout << 
"    Invoked Inside() for solid: " 
  152              << 
". Solid replied: " << solidResponse << 
G4endl 
  153              << 
"    For point p: " << intersectionPoint
 
  154              << 
", considered as 'intersection' point." << 
G4endl;
 
  157     G4double safetyIn= -1, safetyOut= -1;  
 
  158     G4double newDistIn= -1,  newDistOut= -1;
 
  174       std::ostringstream message;
 
  175       message << 
"Conflicting response from Solid." << 
G4endl 
  176               << 
"          Inaccurate solid DistanceToIn" 
  178               << 
"          Solid gave DistanceToIn = " 
  179               << sampleStep << 
" yet returns " << solidResponse
 
  180               << 
" for this point !" << 
G4endl 
  181               << 
"          Point = " << intersectionPoint << 
G4endl 
  182               << 
"          Safety values: " << 
G4endl;
 
  185         message << 
"          DistanceToIn(p)  = " << safetyIn;
 
  189         message << 
"          DistanceToOut(p) = " << safetyOut;
 
  192       G4cout.precision(oldcoutPrec);
 
  199       if( 
std::max( newDistIn, newDistOut ) <=
 
  202         std::ostringstream message;
 
  203         message << 
"Zero from both Solid DistanceIn and Out(p,v)." << 
G4endl 
  204                 << 
"  Identified point for which the solid "  
  206                 << 
"  has MAJOR problem:  " << 
G4endl 
  207                 << 
"  --> Both DistanceToIn(p,v) and DistanceToOut(p,v) " 
  208                 << 
"return Zero, an equivalent value or negative value." 
  210                 << 
"    Solid: " << sampleSolid << 
G4endl 
  211                 << 
"    Point p= " << intersectionPoint << 
G4endl 
  212                 << 
"    Direction v= " << sampleDirection << 
G4endl 
  213                 << 
"    DistanceToIn(p,v)     = " << newDistIn << 
G4endl 
  214                 << 
"    DistanceToOut(p,v,..) = " << newDistOut << 
G4endl 
  215                 << 
"    Safety values: " << 
G4endl 
  216                 << 
"      DistanceToIn(p)  = " << safetyIn << 
G4endl 
  217                 << 
"      DistanceToOut(p) = " << safetyOut;
 
  229              << std::setw(12)         << sampleSolid->
GetName() << 
" " 
  230              << std::setw(4+precVerf) << samplePoint  << 
" " 
  231              << std::setw(4+precVerf) << sampleSafety << 
" " 
  232              << std::setw(4+precVerf) << sampleStep   << 
" " 
  233              << std::setw(16)         << 
"distanceToIn" << 
" " 
  234              << std::setw(4+precVerf) << localDirection << 
" " 
  236       G4cout.precision(oldprec);
 
  251            << std::setw(15) << motherSafety << 
" "  
  252            << std::setw(15) << motherStep   << 
" " << localPoint   << 
" - " 
  256   if( ( motherStep < 0.0 ) || ( motherStep >= 
kInfinity) )
 
  261     std::ostringstream message;
 
  262     message << 
"Current point is outside the current solid !" << 
G4endl 
  263             << 
"        Problem in Navigation"  << 
G4endl 
  264             << 
"        Point (local coordinates): " 
  266             << 
"        Local Direction: " << localDirection << 
G4endl 
  267             << 
"        Solid: " << motherSolid->
GetName(); 
 
  270     G4cout.precision(oldPrOut);
 
  271     G4cerr.precision(oldPrErr);
 
  277     G4cout << 
"  Mother " << std::setw(12) << motherSolid->
GetName() << 
" " 
  278            << std::setw(4+precVerf)       << localPoint   << 
" " 
  279            << std::setw(4+precVerf)       << motherSafety << 
" " 
  280            << std::setw(4+precVerf)       << motherStep   << 
" " 
  281            << std::setw(16)               << 
"distanceToOut" << 
" " 
  282            << std::setw(4+precVerf)       << localDirection << 
" " 
  284     G4cout.precision(oldprec);      
 
  297     G4cout << 
"************** " << 
fId << 
"::ComputeSafety() ****************" << 
G4endl;
 
  299            << std::setw(15) << 
"Safety/mm" << 
" " 
  300            << std::setw(52) << 
"Position (local coordinates)" 
  302     volumeType = 
"  Mother ";
 
  305          << std::setw(15) << safety << 
" " << point  << 
" - " 
  318            << std::setw(15) << sampleSafety << 
" ";
 
  321       G4cout << std::setw(15) << sampleStep << 
" ";
 
  325       G4cout << std::setw(15) << 
"N/C" << 
" ";
 
  327     G4cout << samplePoint   << 
" - " 
void AlongComputeStepLog(const G4VSolid *sampleSolid, const G4ThreeVector &samplePoint, const G4ThreeVector &sampleDirection, const G4ThreeVector &localDirection, G4double sampleSafety, G4double sampleStep) const 
 
static const G4double kInfinity
 
CLHEP::Hep3Vector G4ThreeVector
 
void PrintDaughterLog(const G4VSolid *sampleSolid, const G4ThreeVector &samplePoint, G4double sampleSafety, G4double sampleStep) const 
 
void ComputeSafetyLog(const G4VSolid *solid, const G4ThreeVector &point, G4double safety, G4bool banner) const 
 
G4double GetTolerance() const 
 
virtual G4GeometryType GetEntityType() const =0
 
G4NavigationLogger(const G4String &id)
 
G4GLOB_DLL std::ostream G4cout
 
const G4String & GetName() const 
 
virtual EInside Inside(const G4ThreeVector &p) const =0
 
virtual G4double DistanceToIn(const G4ThreeVector &p, const G4ThreeVector &v) const =0
 
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
 
G4LogicalVolume * GetLogicalVolume() const 
 
T max(const T t1, const T t2)
brief Return the largest of the two arguments 
 
void PreComputeStepLog(const G4VPhysicalVolume *motherPhysical, G4double motherSafety, const G4ThreeVector &localPoint) const 
 
void PostComputeStepLog(const G4VSolid *motherSolid, const G4ThreeVector &localPoint, const G4ThreeVector &localDirection, G4double motherStep, G4double motherSafety) const 
 
virtual G4double DistanceToOut(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=0, G4ThreeVector *n=0) const =0
 
static G4GeometryTolerance * GetInstance()
 
G4VSolid * GetSolid() const 
 
G4GLOB_DLL std::ostream G4cerr