Import Geant4 5.1.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 10:15:15 +02:00
parent 37fff30d2e
commit fbd4999cf7
4396 changed files with 56662 additions and 52446 deletions
@@ -21,7 +21,7 @@
// ********************************************************************
//
// $Id: G4AuxiliaryNavServices.cc,v 1.3 2002/08/06 08:23:37 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-00 $
// GEANT4 tag $Name: geant4-05-01 $
//
// ********************************************************************
@@ -22,7 +22,7 @@
//
//
// $Id: G4BlockingList.cc,v 1.7 2002/11/27 17:50:56 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-00 $
// GEANT4 tag $Name: geant4-05-01 $
//
//
// class G4BlockingList Implementation
+3 -2
View File
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4GRSSolid.cc,v 1.5 2002/08/06 08:23:37 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-00 $
// $Id: G4GRSSolid.cc,v 1.6 2003/03/31 14:39:02 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-01 $
//
//
// class G4GRSSolid Implementation
@@ -37,6 +37,7 @@ G4GRSSolid::~G4GRSSolid()
}
G4GRSSolid::G4GRSSolid(const G4GRSSolid& right)
: G4VTouchable()
{
if ((&right) && (&right != this))
{
+3 -2
View File
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4GRSVolume.cc,v 1.5 2002/08/06 08:23:37 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-00 $
// $Id: G4GRSVolume.cc,v 1.6 2003/03/31 14:39:02 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-01 $
//
//
// class G4GRSVolume Implementation
@@ -37,6 +37,7 @@ G4GRSVolume::~G4GRSVolume()
}
G4GRSVolume::G4GRSVolume(const G4GRSVolume& right)
: G4VTouchable()
{
if ((&right) && (&right != this))
{
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4GeometryMessenger.cc,v 1.7 2002/08/06 08:23:37 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-00 $
// $Id: G4GeometryMessenger.cc,v 1.10 2003/03/17 13:46:25 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-01 $
//
// --------------------------------------------------------------------
// GEANT 4 class source file
@@ -46,6 +46,7 @@
#include "G4UIcmdWith3VectorAndUnit.hh"
#include "G4UIcmdWith3Vector.hh"
#include "G4UIcmdWithoutParameter.hh"
#include "G4UIcmdWithAnInteger.hh"
#include "G4UIcmdWithADoubleAndUnit.hh"
#include "G4GeomTestStreamLogger.hh"
@@ -55,9 +56,8 @@
// Constructor
//
G4GeometryMessenger::G4GeometryMessenger(G4TransportationManager* tman)
: geometryOpened(true), x(0,0,0), p(0,0,1),
newtol(false), tol(1E-4*mm), tmanager(tman),
tlogger(0), tvolume(0)
: x(0,0,0), p(0,0,1), newtol(false), tol(1E-4*mm),
tmanager(tman), tlogger(0), tvolume(0)
{
geodir = new G4UIdirectory( "/geometry/" );
geodir->SetGuidance( "Geometry control commands." );
@@ -70,6 +70,22 @@ G4GeometryMessenger::G4GeometryMessenger(G4TransportationManager* tman)
resCmd = new G4UIcmdWithoutParameter( "/geometry/navigator/reset", this );
resCmd->SetGuidance( "Reset navigator and navigation history." );
resCmd->SetGuidance( "NOTE: must be called only after kernel has been" );
resCmd->SetGuidance( " initialized once through the run manager!" );
resCmd->AvailableForStates(G4State_Idle);
verbCmd = new G4UIcmdWithAnInteger( "/geometry/navigator/verbose", this );
verbCmd->SetGuidance( "Set run-time verbosity for the navigator." );
verbCmd->SetGuidance(" 0 : Silent (default)");
verbCmd->SetGuidance(" 1 : Display positioning and relative states");
verbCmd->SetGuidance(" 2 : Display step/safety info on point location");
verbCmd->SetGuidance(" 3 : Display state at -every- step!");
verbCmd->SetGuidance(" 4 : Maximum verbosity (very detailed!)");
verbCmd->SetGuidance( "NOTE: this command has effect -only- if Geant4 has" );
verbCmd->SetGuidance( " been installed with the G4VERBOSE flag set!" );
verbCmd->SetParameterName("level",true);
verbCmd->SetDefaultValue(0);
verbCmd->SetRange("level >=0 && level <=4");
//
// Geometry verification test commands
@@ -100,26 +116,31 @@ G4GeometryMessenger::G4GeometryMessenger(G4TransportationManager* tman)
linCmd->SetGuidance( "Performs test along a single specified direction/position." );
linCmd->SetGuidance( "Use position and direction commands to change default." );
linCmd->SetGuidance( "Default: position(0,0,0), direction(0,0,1)." );
linCmd->AvailableForStates(G4State_Idle);
grdCmd = new G4UIcmdWithoutParameter( "/geometry/test/grid_test", this );
grdCmd->SetGuidance( "Start running the default grid test." );
grdCmd->SetGuidance( "A grid of lines parallel to a cartesian axis is used;" );
grdCmd->SetGuidance( "Only direct daughters of the mother volumes are checked." );
grdCmd->AvailableForStates(G4State_Idle);
recCmd = new G4UIcmdWithoutParameter( "/geometry/test/recursive_test", this );
recCmd->SetGuidance( "Start running the recursive grid test." );
recCmd->SetGuidance( "A grid of lines along a cartesian axis is recursively" );
recCmd->SetGuidance( "to all daughters and daughters of daughters, etc." );
recCmd->SetGuidance( "WARNING: it may take a very long time, depending on geometry complexity !");
recCmd->AvailableForStates(G4State_Idle);
cylCmd = new G4UIcmdWithoutParameter( "/geometry/test/cylinder_test", this );
cylCmd->SetGuidance( "Start running the cylinder test." );
cylCmd->SetGuidance( "A set of lines in a cylindrical pattern of gradually" );
cylCmd->SetGuidance( "increasing mesh size." );
cylCmd->AvailableForStates(G4State_Idle);
runCmd = new G4UIcmdWithoutParameter( "/geometry/test/run", this );
runCmd->SetGuidance( "Start running the default grid test." );
runCmd->SetGuidance( "Same as the grid_test command." );
runCmd->AvailableForStates(G4State_Idle);
}
//
@@ -135,6 +156,7 @@ G4GeometryMessenger::~G4GeometryMessenger()
delete cylCmd;
delete runCmd;
delete resCmd;
delete verbCmd;
delete tolCmd;
delete geodir;
delete navdir;
@@ -177,6 +199,9 @@ G4GeometryMessenger::SetNewValue( G4UIcommand* command, G4String newValues )
if (command == resCmd) {
ResetNavigator();
}
else if (command == verbCmd) {
SetVerbosity(newValues);
}
else if (command == posCmd) {
x = posCmd->GetNew3VectorValue( newValues );
}
@@ -228,6 +253,20 @@ G4GeometryMessenger::GetCurrentValue(G4UIcommand* command )
return cv;
}
//
// CheckGeometry
//
void
G4GeometryMessenger::CheckGeometry()
{
// Verify that the geometry is closed
//
G4GeometryManager* geomManager = G4GeometryManager::GetInstance();
if (!geomManager->IsGeometryClosed()) {
geomManager->CloseGeometry(true);
}
}
//
// ResetNavigator
//
@@ -236,12 +275,7 @@ G4GeometryMessenger::ResetNavigator()
{
// Close geometry if necessary
//
if (geometryOpened) {
G4GeometryManager* geomManager = G4GeometryManager::GetInstance();
geomManager->OpenGeometry();
geomManager->CloseGeometry(true);
geometryOpened = false;
}
CheckGeometry();
// Reset navigator's state
//
@@ -249,6 +283,17 @@ G4GeometryMessenger::ResetNavigator()
tmanager->GetNavigatorForTracking()->LocateGlobalPointAndSetup(pt,0,false);
}
//
// Set navigator verbosity
//
void
G4GeometryMessenger::SetVerbosity(G4String input)
{
G4int level = verbCmd->GetNewIntValue(input);
G4Navigator* navigator = tmanager->GetNavigatorForTracking();
navigator->SetVerboseLevel(level);
}
//
// LineTest
//
@@ -257,12 +302,7 @@ G4GeometryMessenger::LineTest()
{
// Close geometry if necessary
//
if (geometryOpened) {
G4GeometryManager* geomManager = G4GeometryManager::GetInstance();
geomManager->OpenGeometry();
geomManager->CloseGeometry(true);
geometryOpened = false;
}
CheckGeometry();
// Verify if error tolerance has changed
//
@@ -285,12 +325,7 @@ G4GeometryMessenger::GridTest()
{
// Close geometry if necessary
//
if (geometryOpened) {
G4GeometryManager* geomManager = G4GeometryManager::GetInstance();
geomManager->OpenGeometry();
geomManager->CloseGeometry(true);
geometryOpened = false;
}
CheckGeometry();
// Verify if error tolerance has changed
//
@@ -313,12 +348,7 @@ G4GeometryMessenger::RecursiveGridTest()
{
// Close geometry if necessary
//
if (geometryOpened) {
G4GeometryManager* geomManager = G4GeometryManager::GetInstance();
geomManager->OpenGeometry();
geomManager->CloseGeometry(true);
geometryOpened = false;
}
CheckGeometry();
// Verify if error tolerance has changed
//
@@ -341,12 +371,7 @@ G4GeometryMessenger::CylinderTest()
{
// Close geometry if necessary
//
if (geometryOpened) {
G4GeometryManager* geomManager = G4GeometryManager::GetInstance();
geomManager->OpenGeometry();
geomManager->CloseGeometry(true);
geometryOpened = false;
}
CheckGeometry();
// Verify if error tolerance has changed
//
@@ -21,18 +21,28 @@
// ********************************************************************
//
//
// $Id: G4IdentityTrajectoryFilter.cc,v 1.3 2002/11/30 17:22:37 stesting Exp $
// GEANT4 tag $Name: geant4-05-00 $
// $Id: G4IdentityTrajectoryFilter.cc,v 1.4 2003/02/06 18:53:16 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-01 $
#include "G4IdentityTrajectoryFilter.hh"
G4IdentityTrajectoryFilter::G4IdentityTrajectoryFilter()
{
}
G4IdentityTrajectoryFilter::~G4IdentityTrajectoryFilter()
{
}
void
G4IdentityTrajectoryFilter::TakeIntermediatePoint( G4ThreeVector newPoint ) {
G4IdentityTrajectoryFilter::TakeIntermediatePoint( G4ThreeVector newPoint )
{
// Just store every single point, initially. (jacek 30/10/2002)
// Implement more sophisticated filters later. Copy by value into
// the vector; the vector will never be copied by value itself. In
// the final version, will probably want to create the intermediate
// points at this stage.
fpFilteredPoints->push_back( newPoint );
G4cout << "spong: G4IdentityTrajectoryFilter::TakeIntermediatePoint" << G4endl;
G4cout << "spong: G4IdentityTrajectoryFilter::TakeIntermediatePoint"
<< G4endl;
}
@@ -22,7 +22,7 @@
//
//
// $Id: G4LogicalBorderSurface.cc,v 1.8 2002/08/06 08:23:38 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-00 $
// GEANT4 tag $Name: geant4-05-01 $
//
// --------------------------------------------------------------------
// G4LogicalBorderSurface Implementation
@@ -22,7 +22,7 @@
//
//
// $Id: G4LogicalSkinSurface.cc,v 1.8 2002/08/06 08:23:38 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-00 $
// GEANT4 tag $Name: geant4-05-01 $
//
// --------------------------------------------------------------------
// G4LogicalSkinSurface Implementation
@@ -22,7 +22,7 @@
//
//
// $Id: G4NavigationHistory.cc,v 1.6 2002/08/06 10:35:56 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-00 $
// GEANT4 tag $Name: geant4-05-01 $
//
//
// G4NavigationHistory Implementation
+10 -7
View File
@@ -21,7 +21,7 @@
// ********************************************************************
//
//
// $Id: G4Navigator.cc,v 1.34 2002/11/04 18:54:06 jacek Exp $
// $Id: G4Navigator.cc,v 1.35 2003/03/17 13:42:33 gcosmo Exp $
// GEANT4 tag $ Name: $
//
// class G4Navigator Implementation
@@ -100,6 +100,9 @@ G4Navigator::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint,
G4cout << " I was called with the following arguments: " << G4endl
<< " Globalpoint = " << globalPoint << G4endl
<< " relativeSearch = " << relativeSearch << G4endl;
}
if( fVerbose > 1 )
{
G4cout << " Upon entering my state is: " << G4endl;
PrintState();
}
@@ -371,7 +374,6 @@ G4Navigator::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint,
fLastLocatedPointLocal = localPoint;
#ifdef G4VERBOSE
if( fVerbose > 0 ) PrintState();
if( fVerbose > 1 )
{
G4cout.precision(6);
@@ -380,6 +382,8 @@ G4Navigator::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint,
curPhysVol_Name = targetPhysical->GetName();
G4cout << " Return value = new volume = "
<< curPhysVol_Name << G4endl;
G4cout << " Upon exiting my state is: " << G4endl;
PrintState();
}
#endif
@@ -419,7 +423,6 @@ G4Navigator::LocateGlobalPointWithinVolume(const G4ThreeVector& pGlobalpoint)
G4LogicalVolume* motherLogical = motherPhysical->GetLogicalVolume();
G4SmartVoxelHeader* pVoxelHeader = motherLogical->GetVoxelHeader();
G4ThreeVector localPoint = ComputeLocalPoint(pGlobalpoint);
if ( fHistory.GetTopVolumeType()!=kReplica )
{
switch( CharacteriseDaughters(motherLogical) )
@@ -427,7 +430,7 @@ G4Navigator::LocateGlobalPointWithinVolume(const G4ThreeVector& pGlobalpoint)
case kNormal:
if ( pVoxelHeader )
{
fvoxelNav.VoxelLocate( pVoxelHeader, localPoint );
fvoxelNav.VoxelLocate( pVoxelHeader, fLastLocatedPointLocal );
}
// else { fnormalNav. nothing !? }
break;
@@ -435,7 +438,7 @@ G4Navigator::LocateGlobalPointWithinVolume(const G4ThreeVector& pGlobalpoint)
case kParameterised:
// Resets state & returns voxel node
//
fparamNav.ParamVoxelLocate( pVoxelHeader, localPoint );
fparamNav.ParamVoxelLocate( pVoxelHeader, fLastLocatedPointLocal );
break;
case kReplica:
@@ -797,7 +800,7 @@ G4double G4Navigator::ComputeStep( const G4ThreeVector &pGlobalpoint,
}
#ifdef G4VERBOSE
if( fVerbose > 1 )
if( fVerbose > 2 )
{
G4cout << "Upon exiting my state is: " << G4endl;
PrintState();
@@ -905,7 +908,7 @@ G4double G4Navigator::ComputeSafety( const G4ThreeVector &pGlobalpoint,
G4double newSafety = 0.0;
#ifdef G4VERBOSE
if( fVerbose > 0 )
if( fVerbose > 1 )
{
G4cout << "*** G4Navigator::ComputeSafety: ***" << G4endl;
G4cout.precision(8);
@@ -22,7 +22,7 @@
//
//
// $Id: G4NormalNavigation.cc,v 1.5 2002/08/06 10:35:56 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-00 $
// GEANT4 tag $Name: geant4-05-01 $
//
//
// class G4NormalNavigation Implementation
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4ParameterisedNavigation.cc,v 1.7 2002/08/06 10:35:56 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-00 $
// $Id: G4ParameterisedNavigation.cc,v 1.8 2003/03/31 14:39:02 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-01 $
//
//
// class G4ParameterisedNavigation Implementation
@@ -244,7 +244,7 @@ G4double G4ParameterisedNavigation::
G4double
G4ParameterisedNavigation::ComputeSafety(const G4ThreeVector& localPoint,
const G4NavigationHistory& history,
const G4double pProposedMaxLength )
const G4double )
{
G4VPhysicalVolume *motherPhysical, *samplePhysical;
G4VPVParameterisation *sampleParam;
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4PropagatorInField.cc,v 1.39 2002/11/09 00:25:09 jacek Exp $
// GEANT4 tag $Name: geant4-05-00 $
// $Id: G4PropagatorInField.cc,v 1.39.4.1 2003/03/31 14:34:27 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-01 $
//
//
// This class implements an algorithm to track a particle in a
@@ -745,7 +745,7 @@ G4PropagatorInField::PrintStepLengthDiagnostic(
G4double CurrentProposedStepLength,
G4double decreaseFactor,
G4double stepTrial,
const G4FieldTrack& aFieldTrack)
const G4FieldTrack& )
{
G4cout << " PiF: NoZeroStep= " << fNoZeroStep
<< " CurrentProposedStepLength= " << CurrentProposedStepLength
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4ReplicaNavigation.cc,v 1.11 2002/08/06 10:35:57 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-00 $
// $Id: G4ReplicaNavigation.cc,v 1.12 2003/03/31 14:39:02 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-01 $
//
//
// class G4ReplicaNavigation Implementation
@@ -826,7 +826,7 @@ G4double
G4ReplicaNavigation::ComputeSafety(const G4ThreeVector &globalPoint,
const G4ThreeVector &localPoint,
G4NavigationHistory &history,
const G4double pProposedMaxLength )
const G4double )
{
G4VPhysicalVolume *repPhysical, *motherPhysical;
G4VPhysicalVolume *samplePhysical, *blockedExitedVol=0;
@@ -22,7 +22,7 @@
//
//
// $Id: G4TouchableHistory.cc,v 1.6 2002/08/06 10:35:57 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-00 $
// GEANT4 tag $Name: geant4-05-01 $
//
//
// class G4TouchableHistory Implementation
@@ -22,7 +22,7 @@
//
//
// $Id: G4TransportationManager.cc,v 1.11 2002/08/06 10:35:57 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-00 $
// GEANT4 tag $Name: geant4-05-01 $
//
//
// G4TransportationManager
@@ -21,13 +21,23 @@
// ********************************************************************
//
//
// $Id: G4VCurvedTrajectoryFilter.cc,v 1.3 2002/11/30 17:22:37 stesting Exp $
// GEANT4 tag $Name: geant4-05-00 $
// $Id: G4VCurvedTrajectoryFilter.cc,v 1.4 2003/02/06 18:53:16 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-01 $
#include "G4VCurvedTrajectoryFilter.hh"
G4VCurvedTrajectoryFilter::G4VCurvedTrajectoryFilter()
: fpFilteredPoints(0)
{
}
G4VCurvedTrajectoryFilter::~G4VCurvedTrajectoryFilter()
{
}
G4std::vector<G4ThreeVector>*
G4VCurvedTrajectoryFilter::GimmeThePointsAndForgetThem() {
G4VCurvedTrajectoryFilter::GimmeThePointsAndForgetThem()
{
G4std::vector<G4ThreeVector>* tmp = fpFilteredPoints;
// ParticleChangeForTransport invokes this method (via
// PropagatorInField) at every Step, even if the step did not
@@ -37,17 +47,20 @@ G4VCurvedTrajectoryFilter::GimmeThePointsAndForgetThem() {
// responsibility for deleting the vector lies with the
// SmoothTrajctoryPoint, which is the vector's final destination.)
// (jacek 08/11/2002)
fpFilteredPoints = NULL;
fpFilteredPoints = 0;
return tmp;
}
void
G4VCurvedTrajectoryFilter::CreateNewTrajectorySegment( ) {
if (fpFilteredPoints) {
G4VCurvedTrajectoryFilter::CreateNewTrajectorySegment( )
{
if (fpFilteredPoints)
{
// GimmePoints has not been called (it would have set the
// pointer to NULL), therefore nobody has taken charge of the
// points and they will never be deleted!
G4cout << "!!!!!!!! Filter: auxliary points are being memory leaked !!!!!" << G4endl;
G4cout << "!!!!!!!! Filter: auxiliary points are being memory leaked !!!!!"
<< G4endl;
}
fpFilteredPoints = new G4std::vector<G4ThreeVector>;
}
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4VoxelNavigation.cc,v 1.11 2002/08/06 10:35:57 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-00 $
// $Id: G4VoxelNavigation.cc,v 1.13 2003/03/31 14:39:02 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-01 $
//
//
// class G4VoxelNavigation Implementation
@@ -55,7 +55,7 @@ G4VoxelNavigation::G4VoxelNavigation()
G4VoxelNavigation::~G4VoxelNavigation()
{
#ifdef G4DEBUG_NAVIGATION
cout << "G4VoxelNavigation::~G4VoxelNavigation() called." << G4endl;
G4cout << "G4VoxelNavigation::~G4VoxelNavigation() called." << G4endl;
#endif
}
@@ -502,7 +502,7 @@ G4VoxelNavigation::LocateNextVoxel(const G4ThreeVector& localPoint,
G4double
G4VoxelNavigation::ComputeSafety(const G4ThreeVector& localPoint,
const G4NavigationHistory& history,
const G4double pMaxLength )
const G4double )
{
G4VPhysicalVolume *motherPhysical, *samplePhysical;
G4LogicalVolume *motherLogical;