Import Geant4 11.4.0.beta source tree

This commit is contained in:
Gabriele Cosmo
2025-06-26 09:17:29 +02:00
parent 20a218bbe1
commit a499fb82e9
1941 changed files with 203285 additions and 95593 deletions
@@ -23,18 +23,17 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// class G4NavigationLogger
// G4NavigationLogger
//
// Class description:
//
// Simple utility class for use by navigation systems
// for verbosity and check-mode.
// History:
// - Created. Gabriele Cosmo, November 2010
// Author: Gabriele Cosmo (CERN), November 2010
// --------------------------------------------------------------------
#ifndef G4NAVIGATIONLOGGER_HH
#define G4NAVIGATIONLOGGER_HH
#define G4NAVIGATIONLOGGER_HH 1
#include "G4NavigationHistory.hh"
#include "G4VPhysicalVolume.hh"
@@ -42,26 +41,41 @@
#include "G4VSolid.hh"
#include "G4ThreeVector.hh"
/**
* @brief G4NavigationLogger is a simple utility class for use by the
* navigation systems for verbosity and check-mode.
*/
class G4NavigationLogger
{
public: // with description
public:
/**
* Constructor and Destructor.
*/
G4NavigationLogger(const G4String& id);
~G4NavigationLogger();
/**
* Reports about first check - mother safety.
*/
void PreComputeStepLog (const G4VPhysicalVolume* motherPhysical,
G4double motherSafety,
const G4ThreeVector& localPoint) const;
// Report about first check - mother safety
/**
* Reports about a candidate daughter.
*/
void AlongComputeStepLog(const G4VSolid* sampleSolid,
const G4ThreeVector& samplePoint,
const G4ThreeVector& sampleDirection,
const G4ThreeVector& localDirection,
G4double sampleSafety,
G4double sampleStep) const;
// Report about a candidate daughter
/**
* Checks suspicious distance to a candidate daughter.
*/
void CheckDaughterEntryPoint(const G4VSolid* sampleSolid,
const G4ThreeVector& samplePoint,
const G4ThreeVector& sampleDirection,
@@ -70,62 +84,79 @@ class G4NavigationLogger
const G4ThreeVector& localDirection,
G4double motherStep,
G4double sampleStep) const;
// Check suspicious distance to a candidate daughter
/**
* Reports exit distance from mother.
*/
void PostComputeStepLog (const G4VSolid* motherSolid,
const G4ThreeVector& localPoint,
const G4ThreeVector& localDirection,
G4double motherStep,
G4double motherSafety) const;
// Report exit distance from mother
/**
* Reports about safety computation.
*/
void ComputeSafetyLog (const G4VSolid* solid,
const G4ThreeVector& point,
G4double safety,
G4bool isMotherVolume, // For labeling
G4int banner= -1) const;
// Report about safety computation (daughter?)
/**
* Reports about a new minimum distance to candidate daughter.
*/
void PrintDaughterLog (const G4VSolid* sampleSolid,
const G4ThreeVector& samplePoint,
G4double sampleSafety,
G4bool onlySafety,
const G4ThreeVector& sampleDirection,
G4double sampleStep ) const;
// Report about a new minimum distance to candidate daughter
G4double sampleStep) const;
/**
* Reports issue with normal from Solid - for ComputeStep().
*/
G4bool CheckAndReportBadNormal(const G4ThreeVector& unitNormal,
const G4ThreeVector& localPoint,
const G4ThreeVector& localDirection,
G4double step,
const G4VSolid* solid,
const char* msg ) const;
// Report issue with normal from Solid - for ComputeStep()
const char* msg) const;
/**
* Reports issue with normal from Rotation - for ComputeStep().
*/
G4bool CheckAndReportBadNormal(const G4ThreeVector& unitNormal,
const G4ThreeVector& originalNormal,
const G4RotationMatrix& rotationM,
const char* msg ) const;
// Report issue with normal from Rotation - for ComputeStep()
const char* msg) const;
/**
* Reports if point wrongly located outside mother volume.
*/
void ReportOutsideMother(const G4ThreeVector& localPoint,
const G4ThreeVector& localDirection,
const G4VPhysicalVolume* motherPV,
G4double tDist = 30.0*CLHEP::cm ) const;
// Report if point wrongly located outside mother volume
G4double tDist = 30.0*CLHEP::cm) const;
void ReportVolumeAndIntersection( std::ostream& ostrm,
/**
* Auxiliary method to report information about volume
* and position/direction
*/
void ReportVolumeAndIntersection(std::ostream& ostrm,
const G4ThreeVector& localPoint,
const G4ThreeVector& localDirection,
const G4VPhysicalVolume* physical ) const;
// Auxiliary method to report information about volume
// and position/direction
const G4VPhysicalVolume* physical) const;
public: // without description
/**
* Verbosity control.
*/
inline G4int GetVerboseLevel() const { return fVerbose; }
inline void SetVerboseLevel(G4int level) { fVerbose = level; }
/**
* Accessors/modifiers.
*/
inline G4double GetMinTriggerDistance() const {return fMinTriggerDistance;}
inline void SetMinTriggerDistance(G4double d) {fMinTriggerDistance= d;}
inline G4bool GetReportSoftWarnings() const {return fReportSoftWarnings;}