41 #ifndef G4REPLICANAVIGATION_HH
42 #define G4REPLICANAVIGATION_HH
44 #include <CLHEP/Units/SystemOfUnits.h>
65 enum ESide {
kNull,
kRMin,
kRMax,
kSPhi,
kEPhi,
kPX,
kMX,
kPY,
kMY,
kPZ,
kMZ,
kMother};
79 { exitNormal= norm; calculated= calc; validConvex=valid; exitSide=side;}
91 const G4int blockedNum,
94 const G4bool pLocatedOnEdge,
101 const G4double currentProposedStepLength,
105 G4bool &calculatedExitNormal,
110 G4int &blockedReplicaNo );
121 G4bool ¬KnownInside )
const;
130 const G4int replicaNo,
133 const G4int replicaNo,
136 const G4int replicaNo,
155 const G4int blocked=-1 )
const;
166 const G4int replicaNo,
G4int GetVerboseLevel() const
G4int VoxelLocate(const G4SmartVoxelHeader *pHead, const G4ThreeVector &localPoint, const G4int blocked=-1) const
CLHEP::Hep3Vector G4ThreeVector
void CheckMode(G4bool mode)
EInside Inside(const G4VPhysicalVolume *pVol, const G4int replicaNo, const G4ThreeVector &localPoint) const
G4double ComputeStep(const G4ThreeVector &globalPoint, const G4ThreeVector &globalDirection, const G4ThreeVector &localPoint, const G4ThreeVector &localDirection, const G4double currentProposedStepLength, G4double &newSafety, G4NavigationHistory &history, G4bool &validExitNormal, G4bool &calculatedExitNormal, G4ThreeVector &exitNormal, G4bool &exiting, G4bool &entering, G4VPhysicalVolume *(*pBlockedPhysical), G4int &blockedReplicaNo)
G4double DistanceToOut(const G4VPhysicalVolume *pVol, const G4int replicaNo, const G4ThreeVector &localPoint) const
void ComputeTransformation(const G4int replicaNo, G4VPhysicalVolume *pVol, G4ThreeVector &point) const
G4ExitNormal(G4ThreeVector norm=G4ThreeVector(0., 0., 0.), G4bool calc=false, G4bool valid=false, ESide side=kNull)
void SetVerboseLevel(G4int level)
G4double DistanceToOutRad(const G4ThreeVector &localPoint, const G4ThreeVector &localDirection, const G4double width, const G4double offset, const G4int replicaNo, G4ExitNormal &foundNormal) const
G4double DistanceToOutPhi(const G4ThreeVector &localPoint, const G4ThreeVector &localDirection, const G4double width, G4ExitNormal &foundNormal) const
G4double ComputeSafety(const G4ThreeVector &globalPoint, const G4ThreeVector &localPoint, G4NavigationHistory &history, const G4double pProposedMaxLength=DBL_MAX)
G4bool LevelLocate(G4NavigationHistory &history, const G4VPhysicalVolume *blockedVol, const G4int blockedNum, const G4ThreeVector &globalPoint, const G4ThreeVector *globalDirection, const G4bool pLocatedOnEdge, G4ThreeVector &localPoint)
void SetPhiTransformation(const G4double ang, G4VPhysicalVolume *pVol=0) const
EInside BackLocate(G4NavigationHistory &history, const G4ThreeVector &globalPoint, G4ThreeVector &localPoint, const G4bool &exiting, G4bool ¬KnownInside) const