Import Geant4 3.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 16:10:37 +02:00
parent 137e303ecc
commit 36c080dca6
3464 changed files with 119310 additions and 52696 deletions
@@ -1,3 +1,25 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
#include "G4AuxiliaryNavServices.hh"
#include "globals.hh"
+25 -9
View File
@@ -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: G4BlockingList.cc,v 1.2 1999/12/15 14:50:26 gunter Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4BlockingList.cc,v 1.3.2.1 2001/06/28 19:09:42 gunter Exp $
// GEANT4 tag $Name: $
//
//
// class G4BlockingList Implementation
@@ -19,9 +35,9 @@
void G4BlockingList::FullyReset()
{
fBlockTagNo=1;
for (G4int i=fBlockingList.length()-1;i>=0;i--)
for (G4int i=fBlockingList.size()-1;i>=0;i--)
{
fBlockingList(i)=0;
fBlockingList[i]=0;
}
}
+23 -7
View File
@@ -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: G4GRSSolid.cc,v 1.3 2000/11/01 16:51:09 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4GRSSolid.cc,v 1.3.4.1 2001/06/28 19:09:43 gunter Exp $
// GEANT4 tag $Name: $
//
//
// class G4GRSSolid Implementation
+23 -7
View File
@@ -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: G4GRSVolume.cc,v 1.3 2000/11/01 16:51:09 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4GRSVolume.cc,v 1.3.4.1 2001/06/28 19:09:43 gunter Exp $
// GEANT4 tag $Name: $
//
//
// class G4GRSVolume Implementation
@@ -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: G4LogicalBorderSurface.cc,v 1.5 2000/11/20 19:05:57 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4LogicalBorderSurface.cc,v 1.6.2.1 2001/06/28 19:09:43 gunter Exp $
// GEANT4 tag $Name: $
//
////////////////////////////////////////////////////////////////////////
// G4LogicalBorderSurface Implementation
@@ -45,8 +61,7 @@ G4LogicalBorderSurface::G4LogicalBorderSurface(const G4String& name,
Volume1(vol1), Volume2(vol2)
{
// Store in the table of Surfaces
theBorderSurfaceTable.insert(this);
theIndexInTable = theBorderSurfaceTable.index(this);
theBorderSurfaceTable.push_back(this);
}
G4LogicalBorderSurface::
@@ -56,7 +71,6 @@ G4LogicalBorderSurface(const G4LogicalBorderSurface& right)
SetTransitionRadiationSurface(right.GetTransitionRadiationSurface());
Volume1 = right.Volume1;
Volume2 = right.Volume2;
theIndexInTable = right.theIndexInTable;
theBorderSurfaceTable = right.theBorderSurfaceTable;
}
@@ -77,7 +91,6 @@ G4LogicalBorderSurface::operator=(const G4LogicalBorderSurface &right)
SetTransitionRadiationSurface(right.GetTransitionRadiationSurface());
Volume1 = right.Volume1;
Volume2 = right.Volume2;
theIndexInTable = right.theIndexInTable;
theBorderSurfaceTable = right.theBorderSurfaceTable;
}
return *this;
@@ -98,7 +111,7 @@ G4LogicalBorderSurface::operator!=(const G4LogicalBorderSurface &right) const
// Methods
////////////
const G4RWTPtrOrderedVector<G4LogicalBorderSurface>*
const G4std::vector<G4LogicalBorderSurface*> *
G4LogicalBorderSurface::GetSurfaceTable()
{
return &theBorderSurfaceTable;
@@ -106,14 +119,14 @@ G4LogicalBorderSurface::GetSurfaceTable()
size_t G4LogicalBorderSurface::GetNumberOfBorderSurfaces()
{
return theBorderSurfaceTable.length();
return theBorderSurfaceTable.size();
}
G4LogicalBorderSurface*
G4LogicalBorderSurface::GetSurface(const G4VPhysicalVolume* vol1,
const G4VPhysicalVolume* vol2)
{
for (size_t i=0; i<theBorderSurfaceTable.length(); i++) {
for (size_t i=0; i<theBorderSurfaceTable.size(); i++) {
if(theBorderSurfaceTable[i]->GetVolume1() == vol1 &&
theBorderSurfaceTable[i]->GetVolume2() == vol2 )
return theBorderSurfaceTable[i];
@@ -129,7 +142,7 @@ void G4LogicalBorderSurface::DumpInfo() // Class method (it is really const)
G4cout << "***** Surface Table : Nb of Surfaces = " <<
GetNumberOfBorderSurfaces() << " *****" << G4endl;
for (size_t i=0; i<theBorderSurfaceTable.length(); i++) {
for (size_t i=0; i<theBorderSurfaceTable.size(); i++) {
G4cout << theBorderSurfaceTable[i]->GetName() << " : " << G4endl <<
" Surface type = " << theBorderSurfaceTable[i]->GetName() << G4endl;
#ifdef PRINT_INFO
@@ -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: G4LogicalSkinSurface.cc,v 1.5 2000/11/20 19:05:58 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4LogicalSkinSurface.cc,v 1.6.2.1 2001/06/28 19:09:43 gunter Exp $
// GEANT4 tag $Name: $
//
////////////////////////////////////////////////////////////////////////
// G4LogicalSkinSurface Implementation
@@ -45,8 +61,7 @@ G4LogicalSkinSurface::G4LogicalSkinSurface(const G4String& name,
LogVolume(logicalVolume)
{
// Store in the table of Surfaces
theSurfaceTable.insert(this);
theIndexInTable = theSurfaceTable.index(this);
theSurfaceTable.push_back(this);
}
G4LogicalSkinSurface::G4LogicalSkinSurface(const G4LogicalSkinSurface &right)
@@ -54,7 +69,6 @@ G4LogicalSkinSurface::G4LogicalSkinSurface(const G4LogicalSkinSurface &right)
{
SetTransitionRadiationSurface(right.GetTransitionRadiationSurface());
LogVolume = right.LogVolume;
theIndexInTable = right.theIndexInTable;
theSurfaceTable = right.theSurfaceTable;
}
@@ -74,7 +88,6 @@ G4LogicalSkinSurface::operator=(const G4LogicalSkinSurface &right)
SetName(right.GetName());
SetTransitionRadiationSurface(right.GetTransitionRadiationSurface());
LogVolume = right.LogVolume;
theIndexInTable = right.theIndexInTable;
theSurfaceTable = right.theSurfaceTable;
}
return *this;
@@ -97,13 +110,13 @@ G4LogicalSkinSurface::operator!=(const G4LogicalSkinSurface &right) const
size_t G4LogicalSkinSurface::GetNumberOfSkinSurfaces()
{
return theSurfaceTable.length();
return theSurfaceTable.size();
}
G4LogicalSkinSurface*
G4LogicalSkinSurface::GetSurface(const G4LogicalVolume* vol)
{
for (size_t i=0; i<theSurfaceTable.length(); i++) {
for (size_t i=0; i<theSurfaceTable.size(); i++) {
if(theSurfaceTable[i]->GetLogicalVolume() == vol)
return theSurfaceTable[i];
}
@@ -118,7 +131,7 @@ void G4LogicalSkinSurface::DumpInfo()
G4cout << "***** Surface Table : Nb of Surfaces = "
<< GetNumberOfSkinSurfaces() << " *****" << G4endl;
for (size_t i=0; i<theSurfaceTable.length(); i++) {
for (size_t i=0; i<theSurfaceTable.size(); i++) {
G4LogicalSkinSurface *pSkinSurface= theSurfaceTable[i];
G4cout << theSurfaceTable[i]->GetName() << " : " << G4endl <<
" Skin of logical volume " << pSkinSurface->GetLogicalVolume()->GetName ()
@@ -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: G4NavigationHistory.cc,v 1.3 2000/11/01 16:51:09 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4NavigationHistory.cc,v 1.3.4.1 2001/06/28 19:09:43 gunter Exp $
// GEANT4 tag $Name: $
//
//
// G4NavigationHistory Implementation P.Kent August 96
+23 -7
View File
@@ -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: G4Navigator.cc,v 1.11 2000/11/20 19:05:58 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4Navigator.cc,v 1.11.4.1 2001/06/28 19:09:43 gunter Exp $
// GEANT4 tag $Name: $
//
//
// class G4Navigator Implementation Paul Kent July 95/96
@@ -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: G4NormalNavigation.cc,v 1.3 2000/11/20 19:05:58 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4NormalNavigation.cc,v 1.3.4.1 2001/06/28 19:09:44 gunter Exp $
// GEANT4 tag $Name: $
//
//
// class G4NormalNavigation Implementation
@@ -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: G4ParameterisedNavigation.cc,v 1.3 2000/11/20 19:05:59 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4ParameterisedNavigation.cc,v 1.3.4.1 2001/06/28 19:09:44 gunter Exp $
// GEANT4 tag $Name: $
//
//
// class G4ParameterisedNavigation Implementation
@@ -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: G4PropagatorInField.cc,v 1.12.4.1 2001/02/20 18:23:32 japost Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4PropagatorInField.cc,v 1.19.2.1 2001/06/28 19:09:44 gunter Exp $
// GEANT4 tag $Name: $
//
//
//
@@ -32,56 +48,40 @@
//const G4double G4PropagatorInField::fDefault_Delta_Intersection_Val= 0.1 * mm;
//const G4double G4PropagatorInField::fDefault_Delta_One_Step_Value = 0.25 * mm;
// -------------------------------------------------------------------------
#if OLD_SIGNATURE_IS_INVALID
G4double
G4PropagatorInField::
ComputeStep(const G4ThreeVector & StartPointA,
const G4ThreeVector & Velocity, // Unit or non
G4double CurrentProposedStepLength,
G4double &currentSafety, // In/Out
G4VPhysicalVolume *pPhysVol )
// Compute the next geometric Step for simple magnetic field
{
G4FieldTrack aFieldTrack =
G4FieldTrack( StartPointA,
Velocity,
0.0, // length of path
0.0, // energy
// PROBLEM ---> zero energy will create zero momentum !!
0.0, // lab tof
0.0, // proper tof
0 );
// Do the Transport in the field (non recti-linear)
return this->ComputeStep( aFieldTrack,
CurrentProposedStepLength,
currentSafety );
}
#endif
// -------------------------------------------------------------------------
G4double
G4PropagatorInField::
ComputeStep(G4FieldTrack& pFieldTrack,
G4double CurrentProposedStepLength,
G4double& currentSafety, // IN/OUT
G4VPhysicalVolume *pPhysVol)
const G4double G4PropagatorInField::fEpsilonMinDefault = 1.0e-10 ;
///////////////////////////////////////////////////////////////////////////
//
// Compute the next geometric Step
G4double G4PropagatorInField::
ComputeStep( G4FieldTrack& pFieldTrack,
G4double CurrentProposedStepLength,
G4double& currentSafety, // IN/OUT
G4VPhysicalVolume* pPhysVol)
{
// Parameters for adaptive Runge-Kutta integration
//
G4double h_TrialStepSize; // 1st Step Size
G4double TruePathLength= CurrentProposedStepLength;
G4double StepTaken= 0.0;
G4double s_length_taken;
G4double s_length_taken, epsilon ;
G4bool intersects;
G4bool first_substep= true;
G4double NewSafety;
fParticleIsLooping= false;
// Set the field manager if the volume has one, else use the global one
fCurrentFieldMgr = fDetectorFieldMgr;
if( pPhysVol) {
G4FieldManager *newFieldMgr=0;
newFieldMgr= pPhysVol->GetLogicalVolume()->GetFieldManager();
if ( newFieldMgr )
fCurrentFieldMgr = newFieldMgr;
}
G4FieldTrack CurrentState(pFieldTrack);
#if 0
@@ -98,15 +98,21 @@ G4PropagatorInField::
// (used to calculate the relative accuracy) must be guessed.
//
if( CurrentProposedStepLength >= kInfinity ){
if( CurrentProposedStepLength >= kInfinity )
{
G4ThreeVector StartPointA, VelocityUnit;
StartPointA = pFieldTrack.GetPosition();
VelocityUnit= pFieldTrack.GetMomentumDir();
CurrentProposedStepLength= 1.e3 * ( 10.0 * cm +
fNavigator->GetWorldVolume()->GetLogicalVolume()->
GetSolid()->DistanceToOut(StartPointA, VelocityUnit) ) ;
}
this->SetEpsilonStep( GetDeltaOneStep() / CurrentProposedStepLength);
epsilon = GetDeltaOneStep() / CurrentProposedStepLength ;
if( epsilon < fEpsilonMin ) epsilon = fEpsilonMin ;
this->SetEpsilonStep( epsilon );
if( fNoZeroStep > fThresholdNo_ZeroSteps ) {
G4double stepTrial; // = fMidPoint_CurveLen_of_LastAttempt;
@@ -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: G4ReplicaNavigation.cc,v 1.8 2001/03/09 15:32:50 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4ReplicaNavigation.cc,v 1.9.2.1 2001/06/28 19:09:44 gunter Exp $
// GEANT4 tag $Name: $
//
//
// class G4ReplicaNavigation Implementation
@@ -331,7 +347,7 @@ G4ReplicaNavigation::DistanceToOutPhi(const G4ThreeVector &localPoint,
{
// Leaving immediately by starting phi
//
Dist=0;
Dist=(compE<0) ? 0 : kInfinity;
}
}
else
@@ -639,12 +655,12 @@ G4ReplicaNavigation::ComputeStep(const G4ThreeVector &globalPoint,
localDirection);
if (sampleStep<ourStep)
{
if ((sampleStep == 0) && (sampleSafety<0.5*kCarTolerance))
ourStep=sampleStep+kCarTolerance;
else
ourStep=sampleStep;
exiting=true;
validExitNormal=false;
if (sampleStep != 0)
ourStep=sampleStep;
else
ourStep=sampleStep+kCarTolerance;
}
}
@@ -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: G4TouchableHistory.cc,v 1.4 2000/11/01 16:51:09 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4TouchableHistory.cc,v 1.4.4.1 2001/06/28 19:09:44 gunter Exp $
// GEANT4 tag $Name: $
//
//
// class G4TouchableHistory Implementation
@@ -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: G4TransportationManager.cc,v 1.5 1999/12/15 14:50:27 gunter Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4TransportationManager.cc,v 1.6.2.1 2001/06/28 19:09:45 gunter Exp $
// GEANT4 tag $Name: $
//
//
// G4TransportationManager
@@ -26,8 +42,8 @@ G4Allocator<G4NavigationLevel> aNavigationLevelAllocator;
G4Allocator<G4NavigationLevelRep> aNavigLevelRepAllocator;
// Ditto: correct order initialisation of class (class) data members
const G4double G4PropagatorInField::fDefault_Delta_Intersection_Val= 0.1 * mm;
const G4double G4PropagatorInField::fDefault_Delta_One_Step_Value = 0.25 * mm;
const G4double G4FieldManager::fDefault_Delta_Intersection_Val= 0.1 * mm;
const G4double G4FieldManager::fDefault_Delta_One_Step_Value = 0.25 * mm;
G4TransportationManager* G4TransportationManager::fTransportationManager=0;
@@ -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;
}
}