Import Geant4 3.2.0 source tree
This commit is contained in:
@@ -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"
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ¤tSafety, // 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user