00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 #ifndef G4NAVIGATIONLOGGER_HH
00041 #define G4NAVIGATIONLOGGER_HH
00042
00043 #include "G4NavigationHistory.hh"
00044 #include "G4VPhysicalVolume.hh"
00045 #include "G4LogicalVolume.hh"
00046 #include "G4VSolid.hh"
00047 #include "G4ThreeVector.hh"
00048
00049 class G4NavigationLogger
00050 {
00051 public:
00052
00053 G4NavigationLogger(const G4String& id);
00054 ~G4NavigationLogger();
00055
00056 void PreComputeStepLog (const G4VPhysicalVolume* motherPhysical,
00057 G4double motherSafety,
00058 const G4ThreeVector& localPoint) const;
00059 void AlongComputeStepLog(const G4VSolid* sampleSolid,
00060 const G4ThreeVector& samplePoint,
00061 const G4ThreeVector& sampleDirection,
00062 const G4ThreeVector& localDirection,
00063 G4double sampleSafety,
00064 G4double sampleStep) const;
00065 void PostComputeStepLog (const G4VSolid* motherSolid,
00066 const G4ThreeVector& localPoint,
00067 const G4ThreeVector& localDirection,
00068 G4double motherStep,
00069 G4double motherSafety) const;
00070 void ComputeSafetyLog (const G4VSolid* solid,
00071 const G4ThreeVector& point,
00072 G4double safety,
00073 G4bool banner) const;
00074 void PrintDaughterLog (const G4VSolid* sampleSolid,
00075 const G4ThreeVector& samplePoint,
00076 G4double sampleSafety,
00077 G4double sampleStep) const;
00078 public:
00079
00080 inline G4int GetVerboseLevel() const { return fVerbose; }
00081 inline void SetVerboseLevel(G4int level) { fVerbose = level; }
00082
00083 private:
00084
00085 G4String fId;
00086 G4int fVerbose;
00087 };
00088
00089 #endif