Import Geant4 9.5.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 16:46:55 +02:00
parent 89a9605df1
commit b1eb5424d2
10957 changed files with 888481 additions and 160139 deletions
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4VIntersectionLocator.hh,v 1.6 2009/11/30 11:39:15 japost Exp $
// GEANT4 tag $Name: geant4-09-03 $
// $Id: G4VIntersectionLocator.hh,v 1.6 2009-11-30 11:39:15 japost Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// Class G4VIntersectionLocator
@@ -87,10 +87,11 @@ class G4VIntersectionLocator
inline G4bool IntersectChord( G4ThreeVector StartPointA,
G4ThreeVector EndPointB,
G4double &NewSafety,
G4double &fPreviousSafety, // In/Out
G4ThreeVector &fPreviousSftOrigin, // In/Out
G4double &PreviousSafety, // In/Out
G4ThreeVector &PreviousSftOrigin, // In/Out
G4double &LinearStepLength,
G4ThreeVector &IntersectionPoint);
G4ThreeVector &IntersectionPoint,
G4bool *calledNavigator=0 );
// Intersect the chord from StartPointA to EndPointB and return
// whether an intersection occurred. NOTE: changes the Safety!
@@ -135,10 +136,22 @@ class G4VIntersectionLocator
// CurrentStateA, to replace EstimtdEndStateB, and report displacement
// (if field is compiled verbose)
G4ThreeVector GetLocalSurfaceNormal(const G4ThreeVector &CurrentE_Point,
G4bool &validNormal);
// Return the SurfaceNormal of Intersecting Solid
G4ThreeVector GetSurfaceNormal(const G4ThreeVector &CurrentInt_Point,
G4bool &validNormal); // const
// Position *must* be the intersection point from last call
// to G4Navigator's ComputeStep (via IntersectChord )
// Will try to use cached (last) value in Navigator for speed,
// if it was kept and valid.
// Value returned is in global coordinates.
// It does NOT guarantee to obtain Normal. This can happen eg if:
// - the "Intersection" Point is not on a surface, potentially due to
// - inaccuracies in the transformations used, or
// - issues with the Solid.
G4ThreeVector GetGlobalSurfaceNormal(const G4ThreeVector &CurrentE_Point,
G4bool &validNormal);
// Return the SurfaceNormal of Intersecting Solid in global coordinates
// Costlier then GetSurfaceNormal
G4bool AdjustmentOfFoundIntersection(const G4ThreeVector &A,
const G4ThreeVector &CurrentE_Point,
@@ -152,6 +165,26 @@ class G4VIntersectionLocator
// Optional method for adjustment of located intersection point
// using the surface-normal
void ReportTrialStep( G4int step_no,
const G4ThreeVector& ChordAB_v,
const G4ThreeVector& ChordEF_v,
const G4ThreeVector& NewMomentumDir,
const G4ThreeVector& NormalAtEntry,
G4bool validNormal );
// Print a three-line report on the current "sub-step", ie trial intersection
private: // no description
G4ThreeVector GetLocalSurfaceNormal(const G4ThreeVector &CurrentE_Point,
G4bool &validNormal);
// Return the SurfaceNormal of Intersecting Solid in local coordinates
G4ThreeVector GetLastSurfaceNormal( G4ThreeVector intersectPoint,
G4bool &validNormal) const;
// Position *must* be the intersection point from last call
// to G4Navigator's ComputeStep (via IntersectChord )
// Temporary - will use the same method in the Navigator
protected:
G4double kCarTolerance; // Constant
@@ -160,16 +193,19 @@ class G4VIntersectionLocator
G4bool fUseNormalCorrection; // Configuration parameter
G4Navigator *fiNavigator;
// Parameters set by G4PropagatorInField ( when ? )
G4ChordFinder *fiChordFinder;
G4double fiEpsilonStep;
G4double fiDeltaIntersection;
G4bool fiUseSafety;
// Parameters set at each physical step by calling method - G4PropagatorInField
// Parameters set at each physical step by calling method
// by G4PropagatorInField
G4Navigator *fHelpingNavigator;
// Helper for location
G4TouchableHistory *fpTouchable;
// Touchable history hook
};
#include "G4VIntersectionLocator.icc"