Import Geant4 3.2.0 source tree
This commit is contained in:
@@ -1,12 +1,28 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4VoxelNavigation.cc,v 1.6 2000/11/20 19:06:01 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
// $Id: G4VoxelNavigation.cc,v 1.7.2.1 2001/06/28 19:09:45 gunter Exp $
|
||||
// GEANT4 tag $Name: $
|
||||
//
|
||||
//
|
||||
// class G4VoxelNavigation Implementation
|
||||
@@ -217,10 +233,10 @@ G4double G4VoxelNavigation::ComputeVoxelSafety(const G4ThreeVector&localPoint) c
|
||||
|
||||
localVoxelDepth=fVoxelDepth;
|
||||
|
||||
curHeader=fVoxelHeaderStack(localVoxelDepth);
|
||||
curHeaderAxis=fVoxelAxisStack(localVoxelDepth);
|
||||
curNodeNo=fVoxelNodeNoStack(localVoxelDepth);
|
||||
curNodeWidth=fVoxelSliceWidthStack(localVoxelDepth);
|
||||
curHeader=fVoxelHeaderStack[localVoxelDepth];
|
||||
curHeaderAxis=fVoxelAxisStack[localVoxelDepth];
|
||||
curNodeNo=fVoxelNodeNoStack[localVoxelDepth];
|
||||
curNodeWidth=fVoxelSliceWidthStack[localVoxelDepth];
|
||||
|
||||
// Compute linear intersection distance to boundaries of max/min
|
||||
// to collected nodes at current level
|
||||
@@ -254,10 +270,10 @@ G4double G4VoxelNavigation::ComputeVoxelSafety(const G4ThreeVector&localPoint) c
|
||||
{
|
||||
localVoxelDepth--;
|
||||
|
||||
curHeader=fVoxelHeaderStack(localVoxelDepth);
|
||||
curHeaderAxis=fVoxelAxisStack(localVoxelDepth);
|
||||
curNodeNo=fVoxelNodeNoStack(localVoxelDepth);
|
||||
curNodeWidth=fVoxelSliceWidthStack(localVoxelDepth);
|
||||
curHeader=fVoxelHeaderStack[localVoxelDepth];
|
||||
curHeaderAxis=fVoxelAxisStack[localVoxelDepth];
|
||||
curNodeNo=fVoxelNodeNoStack[localVoxelDepth];
|
||||
curNodeWidth=fVoxelSliceWidthStack[localVoxelDepth];
|
||||
curNodeOffset=curNodeNo*curNodeWidth;
|
||||
minCurCommonDelta=localPoint(curHeaderAxis)
|
||||
-curHeader->GetMinExtent()
|
||||
@@ -314,10 +330,10 @@ G4bool G4VoxelNavigation::LocateNextVoxel(const G4ThreeVector& localPoint,
|
||||
{
|
||||
targetPoint=localPoint+localDirection*currentDistance;
|
||||
newDistance= currentDistance;
|
||||
workHeader=fVoxelHeaderStack(depth);
|
||||
workHeaderAxis=fVoxelAxisStack(depth);
|
||||
workNodeNo=fVoxelNodeNoStack(depth);
|
||||
workNodeWidth=fVoxelSliceWidthStack(depth);
|
||||
workHeader=fVoxelHeaderStack[depth];
|
||||
workHeaderAxis=fVoxelAxisStack[depth];
|
||||
workNodeNo=fVoxelNodeNoStack[depth];
|
||||
workNodeWidth=fVoxelSliceWidthStack[depth];
|
||||
workMinExtent=workHeader->GetMinExtent();
|
||||
|
||||
workCoord=targetPoint(workHeaderAxis);
|
||||
@@ -350,10 +366,10 @@ G4bool G4VoxelNavigation::LocateNextVoxel(const G4ThreeVector& localPoint,
|
||||
// Check if end of Step within collected boundaries of current voxel
|
||||
depth=fVoxelDepth;
|
||||
{
|
||||
workHeader=fVoxelHeaderStack(depth);
|
||||
workHeaderAxis=fVoxelAxisStack(depth);
|
||||
workNodeNo=fVoxelNodeNoStack(depth);
|
||||
workNodeWidth=fVoxelSliceWidthStack(depth);
|
||||
workHeader=fVoxelHeaderStack[depth];
|
||||
workHeaderAxis=fVoxelAxisStack[depth];
|
||||
workNodeNo=fVoxelNodeNoStack[depth];
|
||||
workNodeWidth=fVoxelSliceWidthStack[depth];
|
||||
workMinExtent=workHeader->GetMinExtent();
|
||||
|
||||
workCoord=targetPoint(workHeaderAxis);
|
||||
@@ -400,7 +416,7 @@ G4bool G4VoxelNavigation::LocateNextVoxel(const G4ThreeVector& localPoint,
|
||||
{
|
||||
// Compute intersection point on the least refined voxel boundary that is Hit
|
||||
voxelPoint=localPoint+localDirection*newDistance;
|
||||
fVoxelNodeNoStack(newDepth)=newNodeNo;
|
||||
fVoxelNodeNoStack[newDepth]=newNodeNo;
|
||||
fVoxelDepth=newDepth;
|
||||
newVoxelNode=0;
|
||||
|
||||
@@ -430,11 +446,11 @@ G4bool G4VoxelNavigation::LocateNextVoxel(const G4ThreeVector& localPoint,
|
||||
newNodeNo=newHeaderNoSlices-1;
|
||||
}
|
||||
// Stack info for stepping
|
||||
fVoxelAxisStack(fVoxelDepth)=newHeaderAxis;
|
||||
fVoxelNoSlicesStack(fVoxelDepth)=newHeaderNoSlices;
|
||||
fVoxelSliceWidthStack(fVoxelDepth)=newHeaderNodeWidth;
|
||||
fVoxelNodeNoStack(fVoxelDepth)=newNodeNo;
|
||||
fVoxelHeaderStack(fVoxelDepth)=newHeader;
|
||||
fVoxelAxisStack[fVoxelDepth]=newHeaderAxis;
|
||||
fVoxelNoSlicesStack[fVoxelDepth]=newHeaderNoSlices;
|
||||
fVoxelSliceWidthStack[fVoxelDepth]=newHeaderNodeWidth;
|
||||
fVoxelNodeNoStack[fVoxelDepth]=newNodeNo;
|
||||
fVoxelHeaderStack[fVoxelDepth]=newHeader;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user