Import Geant4 3.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 15:55:53 +02:00
parent e7d7193284
commit cfcb558cfe
3050 changed files with 91703 additions and 48310 deletions
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4BlockingList.cc,v 1.2 1999/12/15 14:50:26 gunter Exp $
// GEANT4 tag $Name: geant4-02-00 $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// class G4BlockingList Implementation
+36 -2
View File
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4GRSSolid.cc,v 1.2 1999/12/15 14:50:26 gunter Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4GRSSolid.cc,v 1.3 2000/11/01 16:51:09 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// class G4GRSSolid Implementation
@@ -17,3 +17,37 @@ G4GRSSolid::~G4GRSSolid()
{
delete frot; // safe if null
}
G4GRSSolid::G4GRSSolid(const G4GRSSolid& right)
{
if ((&right) && (&right != this))
{
fsolid = right.fsolid;
ftlate = right.ftlate;
if (frot)
{
delete frot;
frot = 0;
}
if (right.frot)
frot = new G4RotationMatrix(*(right.frot));
}
}
G4GRSSolid& G4GRSSolid::operator=(const G4GRSSolid& right)
{
if (&right == this) return *this;
if (&right)
{
fsolid = right.fsolid;
ftlate = right.ftlate;
if (frot)
{
delete frot;
frot = 0;
}
if (right.frot)
frot = new G4RotationMatrix(*(right.frot));
}
return *this;
}
+36 -2
View File
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4GRSVolume.cc,v 1.2 1999/12/15 14:50:26 gunter Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4GRSVolume.cc,v 1.3 2000/11/01 16:51:09 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// class G4GRSVolume Implementation
@@ -17,3 +17,37 @@ G4GRSVolume::~G4GRSVolume()
{
delete frot; // safe if null
}
G4GRSVolume::G4GRSVolume(const G4GRSVolume& right)
{
if ((&right) && (&right != this))
{
fvol = right.fvol;
ftlate = right.ftlate;
if (frot)
{
delete frot;
frot = 0;
}
if (right.frot)
frot = new G4RotationMatrix(*(right.frot));
}
}
G4GRSVolume& G4GRSVolume::operator=(const G4GRSVolume& right)
{
if (&right == this) return *this;
if (&right)
{
fvol = right.fvol;
ftlate = right.ftlate;
if (frot)
{
delete frot;
frot = 0;
}
if (right.frot)
frot = new G4RotationMatrix(*(right.frot));
}
return *this;
}
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LogicalBorderSurface.cc,v 1.3 2000/04/25 16:15:05 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4LogicalBorderSurface.cc,v 1.5 2000/11/20 19:05:57 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
////////////////////////////////////////////////////////////////////////
// G4LogicalBorderSurface Implementation
@@ -41,19 +41,23 @@ G4LogicalBorderSurface::G4LogicalBorderSurface(const G4String& name,
G4VPhysicalVolume* vol1,
G4VPhysicalVolume* vol2,
G4OpticalSurface* opticsSurface)
: G4LogicalSurface(name, opticsSurface),
Volume1(vol1),
Volume2(vol2)
: G4LogicalSurface(name, opticsSurface),
Volume1(vol1), Volume2(vol2)
{
// Store in the table of Surfaces
theBorderSurfaceTable.insert(this);
theIndexInTable = theBorderSurfaceTable.index(this);
// Store in the table of Surfaces
theBorderSurfaceTable.insert(this);
theIndexInTable = theBorderSurfaceTable.index(this);
}
G4LogicalBorderSurface::G4LogicalBorderSurface(const G4LogicalBorderSurface &right)
: G4LogicalSurface(right.GetName(), right.GetOpticalSurface())
G4LogicalBorderSurface::
G4LogicalBorderSurface(const G4LogicalBorderSurface& right)
: G4LogicalSurface(right.GetName(), right.GetOpticalSurface())
{
*this = right;
SetTransitionRadiationSurface(right.GetTransitionRadiationSurface());
Volume1 = right.Volume1;
Volume2 = right.Volume2;
theIndexInTable = right.theIndexInTable;
theBorderSurfaceTable = right.theBorderSurfaceTable;
}
G4LogicalBorderSurface::~G4LogicalBorderSurface(){}
@@ -62,19 +66,33 @@ G4LogicalBorderSurface::~G4LogicalBorderSurface(){}
// Operators
//////////////
const G4LogicalBorderSurface& G4LogicalBorderSurface::operator=(const G4LogicalBorderSurface &right)
const G4LogicalBorderSurface&
G4LogicalBorderSurface::operator=(const G4LogicalBorderSurface &right)
{
return right;
if (&right == this) return *this;
if (&right)
{
SetOpticalSurface(right.GetOpticalSurface());
SetName(right.GetName());
SetTransitionRadiationSurface(right.GetTransitionRadiationSurface());
Volume1 = right.Volume1;
Volume2 = right.Volume2;
theIndexInTable = right.theIndexInTable;
theBorderSurfaceTable = right.theBorderSurfaceTable;
}
return *this;
}
G4int G4LogicalBorderSurface::operator==(const G4LogicalBorderSurface &right) const
G4int
G4LogicalBorderSurface::operator==(const G4LogicalBorderSurface &right) const
{
return (this == (G4LogicalBorderSurface *) &right);
return (this == (G4LogicalBorderSurface *) &right);
}
G4int G4LogicalBorderSurface::operator!=(const G4LogicalBorderSurface &right) const
G4int
G4LogicalBorderSurface::operator!=(const G4LogicalBorderSurface &right) const
{
return (this != (G4LogicalBorderSurface *) &right);
return (this != (G4LogicalBorderSurface *) &right);
}
////////////
// Methods
@@ -91,10 +109,11 @@ size_t G4LogicalBorderSurface::GetNumberOfBorderSurfaces()
return theBorderSurfaceTable.length();
}
G4LogicalBorderSurface* G4LogicalBorderSurface::GetSurface(const G4VPhysicalVolume* vol1,
const G4VPhysicalVolume* vol2)
G4LogicalBorderSurface*
G4LogicalBorderSurface::GetSurface(const G4VPhysicalVolume* vol1,
const G4VPhysicalVolume* vol2)
{
for (int i=0; i<theBorderSurfaceTable.length(); i++) {
for (size_t i=0; i<theBorderSurfaceTable.length(); i++) {
if(theBorderSurfaceTable[i]->GetVolume1() == vol1 &&
theBorderSurfaceTable[i]->GetVolume2() == vol2 )
return theBorderSurfaceTable[i];
@@ -110,7 +129,7 @@ void G4LogicalBorderSurface::DumpInfo() // Class method (it is really const)
G4cout << "***** Surface Table : Nb of Surfaces = " <<
GetNumberOfBorderSurfaces() << " *****" << G4endl;
for (int i=0; i<theBorderSurfaceTable.length(); i++) {
for (size_t i=0; i<theBorderSurfaceTable.length(); i++) {
G4cout << theBorderSurfaceTable[i]->GetName() << " : " << G4endl <<
" Surface type = " << theBorderSurfaceTable[i]->GetName() << G4endl;
#ifdef PRINT_INFO
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LogicalSkinSurface.cc,v 1.3 2000/04/25 16:15:06 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4LogicalSkinSurface.cc,v 1.5 2000/11/20 19:05:58 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
////////////////////////////////////////////////////////////////////////
// G4LogicalSkinSurface Implementation
@@ -41,18 +41,21 @@ G4LogicalSkinSurfaceTable G4LogicalSkinSurface::theSurfaceTable;
G4LogicalSkinSurface::G4LogicalSkinSurface(const G4String& name,
G4LogicalVolume* logicalVolume,
G4OpticalSurface* opticalSurface)
: G4LogicalSurface(name, opticalSurface),
LogVolume(logicalVolume)
: G4LogicalSurface(name, opticalSurface),
LogVolume(logicalVolume)
{
// Store in the table of Surfaces
theSurfaceTable.insert(this);
theIndexInTable = theSurfaceTable.index(this);
// Store in the table of Surfaces
theSurfaceTable.insert(this);
theIndexInTable = theSurfaceTable.index(this);
}
G4LogicalSkinSurface::G4LogicalSkinSurface(const G4LogicalSkinSurface &right)
: G4LogicalSurface(right.GetName(), right.GetOpticalSurface())
: G4LogicalSurface(right.GetName(), right.GetOpticalSurface())
{
*this = right;
SetTransitionRadiationSurface(right.GetTransitionRadiationSurface());
LogVolume = right.LogVolume;
theIndexInTable = right.theIndexInTable;
theSurfaceTable = right.theSurfaceTable;
}
G4LogicalSkinSurface::~G4LogicalSkinSurface(){}
@@ -61,17 +64,30 @@ G4LogicalSkinSurface::~G4LogicalSkinSurface(){}
// Operators
//////////////
const G4LogicalSkinSurface& G4LogicalSkinSurface::operator=(const G4LogicalSkinSurface &right)
const G4LogicalSkinSurface&
G4LogicalSkinSurface::operator=(const G4LogicalSkinSurface &right)
{
return right;
if (&right == this) return *this;
if (&right)
{
SetOpticalSurface(right.GetOpticalSurface());
SetName(right.GetName());
SetTransitionRadiationSurface(right.GetTransitionRadiationSurface());
LogVolume = right.LogVolume;
theIndexInTable = right.theIndexInTable;
theSurfaceTable = right.theSurfaceTable;
}
return *this;
}
G4int G4LogicalSkinSurface::operator==(const G4LogicalSkinSurface &right) const
G4int
G4LogicalSkinSurface::operator==(const G4LogicalSkinSurface &right) const
{
return (this == (G4LogicalSkinSurface *) &right);
}
G4int G4LogicalSkinSurface::operator!=(const G4LogicalSkinSurface &right) const
G4int
G4LogicalSkinSurface::operator!=(const G4LogicalSkinSurface &right) const
{
return (this != (G4LogicalSkinSurface *) &right);
}
@@ -84,9 +100,10 @@ size_t G4LogicalSkinSurface::GetNumberOfSkinSurfaces()
return theSurfaceTable.length();
}
G4LogicalSkinSurface* G4LogicalSkinSurface::GetSurface(const G4LogicalVolume* vol)
G4LogicalSkinSurface*
G4LogicalSkinSurface::GetSurface(const G4LogicalVolume* vol)
{
for (int i=0; i<theSurfaceTable.length(); i++) {
for (size_t i=0; i<theSurfaceTable.length(); i++) {
if(theSurfaceTable[i]->GetLogicalVolume() == vol)
return theSurfaceTable[i];
}
@@ -98,16 +115,15 @@ void G4LogicalSkinSurface::DumpInfo()
// Dump info for known surfaces
G4cout << "***** Surface Table : Nb of Surfaces = " <<
// G4LogicalSkinSurface::
GetNumberOfSkinSurfaces() << " *****" << G4endl;
G4cout << "***** Surface Table : Nb of Surfaces = "
<< GetNumberOfSkinSurfaces() << " *****" << G4endl;
for (int i=0; i<theSurfaceTable.length(); i++) {
for (size_t i=0; i<theSurfaceTable.length(); i++) {
G4LogicalSkinSurface *pSkinSurface= theSurfaceTable[i];
G4cout << theSurfaceTable[i]->GetName() << " : " << G4endl <<
" Skin of logical volume " << pSkinSurface->GetLogicalVolume()->GetName ()
<< G4endl <<
" Optical Surface Ptr = " << (long) (pSkinSurface->GetOpticalSurface() )
// << G4endl <<
// " Optical Surface Ptr = " << (long)(pSkinSurface->GetOpticalSurface() )
<< G4endl;
#ifdef PRINT_INFO
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4NavigationHistory.cc,v 1.2 1999/12/15 14:50:26 gunter Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4NavigationHistory.cc,v 1.3 2000/11/01 16:51:09 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// G4NavigationHistory Implementation P.Kent August 96
@@ -14,7 +14,8 @@
#include "G4NavigationHistory.hh"
#include "G4ios.hh"
G4std::ostream& operator << (G4std::ostream& os, const G4NavigationHistory& nav)
G4std::ostream&
operator << (G4std::ostream& os, const G4NavigationHistory& nav)
{
G4cout << "History depth="<<nav.GetDepth()<< G4endl;
for (G4int i=0;i<=nav.GetDepth();i++)
+3 -3
View File
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4Navigator.cc,v 1.7.6.1.2.4 1999/12/14 07:07:52 gunter Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4Navigator.cc,v 1.11 2000/11/20 19:05:58 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// class G4Navigator Implementation Paul Kent July 95/96
@@ -372,7 +372,7 @@ G4double G4Navigator::ComputeStep(const G4ThreeVector &pGlobalpoint,
const G4double pCurrentProposedStepLength,
G4double &pNewSafety)
{
G4double Step;
G4double Step = DBL_MAX;
G4ThreeVector localDirection=ComputeLocalAxis(pDirection);
G4VPhysicalVolume *motherPhysical=fHistory.GetTopVolume();
G4LogicalVolume *motherLogical=motherPhysical->GetLogicalVolume();
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4NormalNavigation.cc,v 1.2 1999/12/15 14:50:26 gunter Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4NormalNavigation.cc,v 1.3 2000/11/20 19:05:58 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// class G4NormalNavigation Implementation
@@ -149,12 +149,12 @@ G4double G4NormalNavigation::ComputeStep(const G4ThreeVector &localPoint,
G4double G4NormalNavigation::ComputeSafety(const G4ThreeVector &localPoint,
const G4NavigationHistory &history,
const G4double currentProposedStepLength)
const G4double)
{
G4VPhysicalVolume *motherPhysical,*samplePhysical;
G4LogicalVolume *motherLogical;
G4VSolid *motherSolid;
G4double ourStep=currentProposedStepLength,motherSafety,ourSafety;
G4double motherSafety,ourSafety;
G4int localNoDaughters,sampleNo;
motherPhysical=history.GetTopVolume();
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4ParameterisedNavigation.cc,v 1.2 1999/12/15 14:50:26 gunter Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4ParameterisedNavigation.cc,v 1.3 2000/11/20 19:05:59 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// class G4ParameterisedNavigation Implementation
@@ -40,7 +40,7 @@ G4double G4ParameterisedNavigation::ComputeStep(const G4ThreeVector &localPoint,
G4VSolid *motherSolid,*sampleSolid;
G4ThreeVector sampleDirection;
G4double ourStep=currentProposedStepLength,motherSafety,ourSafety;
G4int sampleNo,blockedExitedReplicaNo=-1;
G4int sampleNo;
G4bool initialNode,noStep;
G4SmartVoxelNode *curVoxelNode;
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4PropagatorInField.cc,v 1.10 2000/05/05 18:20:09 japost Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4PropagatorInField.cc,v 1.12 2000/11/20 19:05:59 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
//
//
@@ -70,7 +70,7 @@ G4PropagatorInField::
// Parameters for adaptive Runge-Kutta integration
//
G4double h_TrialStepSize; // 1st Step Size
G4double TruePathLength;
G4double TruePathLength= CurrentProposedStepLength;
G4double StepTaken= 0.0;
G4double s_length_taken;
G4bool intersects;
@@ -349,7 +349,6 @@ G4PropagatorInField::LocateIntersectionPoint(
G4double NewSafety;
G4bool first_step= true;
G4int substep_no= 0;
G4VPhysicalVolume *pPhysVol;
do{ // REPEAT
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4ReplicaNavigation.cc,v 1.3 2000/05/17 16:32:27 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4ReplicaNavigation.cc,v 1.4 2000/11/20 19:06:00 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// class G4REplicaNavigation Implementation
@@ -128,7 +128,8 @@ G4double G4ReplicaNavigation::DistanceToOut(const G4VPhysicalVolume *pVol,
G4double width,offset;
G4bool consuming;
G4double safety,safe1,safe2;
G4double safety=0.;
G4double safe1,safe2;
G4double coord,rho,rmin,rmax;
pVol->GetReplicationData(axis,nReplicas,width,offset,consuming);
@@ -186,7 +187,8 @@ G4double G4ReplicaNavigation::DistanceToOut(const G4VPhysicalVolume *pVol,
G4double width,offset;
G4bool consuming;
G4double coord,Comp,Dist,lindist;
G4double Dist=kInfinity;
G4double coord,Comp,lindist;
pVol->GetReplicationData(axis,nReplicas,width,offset,consuming);
assert(consuming);
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4TouchableHistory.cc,v 1.3 1999/12/15 14:50:27 gunter Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4TouchableHistory.cc,v 1.4 2000/11/01 16:51:09 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// class G4TouchableHistory Implementation
@@ -16,7 +16,9 @@
G4TouchableHistory::~G4TouchableHistory()
{
}
const G4ThreeVector& G4TouchableHistory::GetTranslation(G4int depth) const
const G4ThreeVector&
G4TouchableHistory::GetTranslation(G4int depth) const
{
// The value returned will change at the next call
// Copy it if you want to use it!
@@ -25,12 +27,14 @@ const G4ThreeVector& G4TouchableHistory::GetTranslation(G4int depth) const
if(depth==0.0) {
return ftlate;
}else{
currTranslation= fhistory.GetTransform(CalculateHistoryIndex(depth)).NetTranslation();
currTranslation =
fhistory.GetTransform(CalculateHistoryIndex(depth)).NetTranslation();
return currTranslation;
}
}
const G4RotationMatrix* G4TouchableHistory::GetRotation(G4int depth) const
const G4RotationMatrix*
G4TouchableHistory::GetRotation(G4int depth) const
{
// The value returned will change at the next call
// Copy it if you want to use it!
@@ -40,8 +44,7 @@ const G4RotationMatrix* G4TouchableHistory::GetRotation(G4int depth) const
if(depth==0.0) {
return &frot;
}else{
rotM= fhistory.GetTransform(CalculateHistoryIndex(depth)).NetRotation();
rotM = fhistory.GetTransform(CalculateHistoryIndex(depth)).NetRotation();
return &rotM;
}
}
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4TransportationManager.cc,v 1.5 1999/12/15 14:50:27 gunter Exp $
// GEANT4 tag $Name: geant4-02-00 $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// G4TransportationManager
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4VoxelNavigation.cc,v 1.4 1999/12/15 14:50:27 gunter Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4VoxelNavigation.cc,v 1.6 2000/11/20 19:06:01 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// class G4VoxelNavigation Implementation
@@ -80,8 +80,8 @@ G4double G4VoxelNavigation::ComputeStep(const G4ThreeVector &localPoint,
initialNode=true;
noStep=true;
do {
while (noStep)
{
curVoxelNode=fVoxelNode;
curNoVolumes=curVoxelNode->GetNoContained();
@@ -193,7 +193,7 @@ G4double G4VoxelNavigation::ComputeStep(const G4ThreeVector &localPoint,
ourStep);
}
} while (noStep);
} // end -while (noStep)- loop
return ourStep;
}
@@ -296,14 +296,14 @@ G4bool G4VoxelNavigation::LocateNextVoxel(const G4ThreeVector& localPoint,
const G4ThreeVector& localDirection,
const G4double currentStep)
{
G4SmartVoxelHeader *workHeader,*newHeader;
G4SmartVoxelProxy *newProxy;
G4SmartVoxelNode *newVoxelNode;
G4SmartVoxelHeader *workHeader=0,*newHeader=0;
G4SmartVoxelProxy *newProxy=0;
G4SmartVoxelNode *newVoxelNode=0;
G4ThreeVector targetPoint,voxelPoint;
G4double workNodeWidth,workMinExtent,workCoord;
G4double minVal,maxVal,newDistance;
G4double minVal,maxVal,newDistance=0.;
G4double newHeaderMin,newHeaderNodeWidth;
G4int depth, newDepth,workNodeNo,newNodeNo,newHeaderNoSlices;
G4int depth=0,newDepth=0,workNodeNo=0,newNodeNo=0,newHeaderNoSlices=0;
EAxis workHeaderAxis,newHeaderAxis;
G4bool isNewVoxel=false;