Import Geant4 9.2.0 source tree
This commit is contained in:
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4LorentzRotation.hh,v 1.5 2006/06/29 18:59:04 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
#ifndef G4LorentzRotation_hh
|
||||
#define G4LorentzRotation_hh
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4LorentzVector.hh,v 1.5 2006/06/29 18:59:06 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
#ifndef G4LorentzVector_hh
|
||||
#define G4LorentzVector_hh
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4Normal3D.hh,v 1.5 2006/06/29 18:59:09 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
#ifndef G4NORMAL3D_HH
|
||||
#define G4NORMAL3D_HH
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4Plane3D.hh,v 1.5 2006/06/29 18:59:11 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
#ifndef G4PLANE3D_HH
|
||||
#define G4PLANE3D_HH
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4Point3D.hh,v 1.5 2006/06/29 18:59:14 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
#ifndef G4POINT3D_HH
|
||||
#define G4POINT3D_HH
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4Transform3D.hh,v 1.5 2006/06/29 18:59:16 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
#ifndef G4TRANSFORM3D_HH
|
||||
#define G4TRANSFORM3D_HH
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4Vector3D.hh,v 1.5 2006/06/29 18:59:18 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
#ifndef G4VECTOR3D_HH
|
||||
#define G4VECTOR3D_HH
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: geomdefs.hh,v 1.8 2007/05/18 07:21:39 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4AnalyticalPolSolver.hh,v 1.5 2006/06/29 18:59:23 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4ChebyshevApproximation.hh,v 1.6 2006/06/29 18:59:26 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4DataInterpolation.hh,v 1.5 2006/06/29 18:59:29 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4GaussChebyshevQ.hh,v 1.5 2006/06/29 18:59:32 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4GaussHermiteQ.hh,v 1.6 2006/06/29 18:59:35 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4GaussJacobiQ.hh,v 1.5 2006/06/29 18:59:38 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4GaussLaguerreQ.hh,v 1.6 2006/06/29 18:59:40 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4GaussLegendreQ.hh,v 1.6 2006/06/29 18:59:42 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4Integrator.hh,v 1.7 2006/06/29 18:59:45 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4Integrator.icc,v 1.13 2006/06/29 18:59:47 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Implementation of G4Integrator methods.
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4JTPolynomialSolver.hh,v 1.6 2006/06/29 18:59:49 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4PolynomialSolver.hh,v 1.4 2006/06/29 18:59:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// class G4PolynomialSolver
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4PolynomialSolver.icc,v 1.8 2006/06/29 18:59:54 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// class G4PolynomialSolver
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4SimpleIntegration.hh,v 1.6 2006/06/29 18:59:56 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4SimplexDownhill.hh,v 1.3 2007/06/21 15:04:12 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4SimplexDownhill.icc,v 1.2 2007/05/11 13:05:53 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Author: Tatsumi Koi (SLAC/SCCS), 2007
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VGaussianQuadrature.hh,v 1.7 2006/06/29 18:59:58 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Class description:
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4AnalyticalPolSolver.cc,v 1.7 2007/11/13 17:35:06 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4ChebyshevApproximation.cc,v 1.7 2007/11/13 17:35:06 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
|
||||
#include "G4ChebyshevApproximation.hh"
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4DataInterpolation.cc,v 1.9 2007/11/13 17:35:06 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// $Id: G4DataInterpolation.cc,v 1.10 2008/03/13 09:35:56 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
#include "G4DataInterpolation.hh"
|
||||
|
||||
@@ -382,7 +382,7 @@ G4DataInterpolation::LocateArgument(G4double pX) const
|
||||
while((kHigh - kLow) > 1)
|
||||
{
|
||||
k = (kHigh + kLow) >> 1 ; // compute midpoint 'bisection'
|
||||
if(pX >= fArgument[k] == ascend)
|
||||
if( (pX >= fArgument[k]) == ascend)
|
||||
{
|
||||
kLow = k ;
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4GaussChebyshevQ.cc,v 1.6 2006/06/29 19:00:07 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
#include "G4GaussChebyshevQ.hh"
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4GaussHermiteQ.cc,v 1.8 2007/11/13 17:35:06 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
#include "G4GaussHermiteQ.hh"
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4GaussJacobiQ.cc,v 1.8 2007/11/13 17:35:06 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
#include "G4GaussJacobiQ.hh"
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4GaussLaguerreQ.cc,v 1.8 2007/11/13 17:35:06 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
#include "G4GaussLaguerreQ.hh"
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4GaussLegendreQ.cc,v 1.8 2007/11/13 17:35:06 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
#include "G4GaussLegendreQ.hh"
|
||||
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4JTPolynomialSolver.cc,v 1.6 2007/11/13 17:35:06 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// $Id: G4JTPolynomialSolver.cc,v 1.7 2008/03/13 09:35:57 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// --------------------------------------------------------------------
|
||||
// GEANT 4 class source file
|
||||
@@ -136,9 +136,9 @@ G4int G4JTPolynomialSolver::FindRoots(G4double *op, G4int degr,
|
||||
//
|
||||
sc = lo/min;
|
||||
|
||||
if ( sc <= 1.0 && max >= 10.0
|
||||
|| sc > 1.0 && infin/sc >= max
|
||||
|| infin/sc >= max && max >= 10 )
|
||||
if ( ((sc <= 1.0) && (max >= 10.0))
|
||||
|| ((sc > 1.0) && (infin/sc >= max))
|
||||
|| ((infin/sc >= max) && (max >= 10)) )
|
||||
{
|
||||
if (!( sc != 0.0 ))
|
||||
{ sc = smalno ; }
|
||||
@@ -381,7 +381,7 @@ void G4JTPolynomialSolver::ComputeFixedShiftPolynomial(G4int l2, G4int *nz)
|
||||
//
|
||||
vtry = 0;
|
||||
stry = 0;
|
||||
if (spass && (!vpass) || tss < tvv)
|
||||
if ((spass && (!vpass)) || (tss < tvv))
|
||||
{
|
||||
RealPolynomialIteration(&xs,nz,&iflag);
|
||||
if (*nz > 0) { return; }
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4SimpleIntegration.cc,v 1.7 2006/06/29 19:00:21 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Implementation file for simple integration methods
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VGaussianQuadrature.cc,v 1.7 2006/06/29 19:00:23 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Implementation file for G4VGaussianQuadrature virtual base class
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4Poisson.hh,v 1.9 2006/06/29 19:00:44 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4RandomDirection.hh,v 1.3 2006/06/29 19:00:47 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// $Id: G4RandomDirection.hh,v 1.5 2008/03/19 17:00:20 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
@@ -33,11 +33,16 @@
|
||||
// ------------------------------------------------------------
|
||||
// Class description:
|
||||
//
|
||||
// Funtion returning a unit 3-vector homogeneously randomised over 4pi
|
||||
// Function returning a unit 3-vector homogeneously randomised over 4pi
|
||||
// solid angle. It can be used in any particle scattering methods
|
||||
// instead of:
|
||||
// z=R1, x=SQRT(1-R1*R1)*SIN(2*pi*R2), y=SQRT(1-R1*R1)*COS(2*pi*R2)
|
||||
// providing more performant results.
|
||||
|
||||
// History:
|
||||
// 18.03.08 V. Grichine, unit radius sphere surface based algorithm
|
||||
// ~ 2007 M. Kossov, algorithm based on 8 Quadrants technique
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
#ifndef G4RANDOMDIR_HH
|
||||
#define G4RANDOMDIR_HH
|
||||
@@ -48,40 +53,13 @@
|
||||
|
||||
inline G4ThreeVector G4RandomDirection()
|
||||
{
|
||||
// Randomization in one of 8 Quadrants (x>0, y>0, z>0)
|
||||
//
|
||||
G4double x=G4UniformRand(), y=G4UniformRand(), z=G4UniformRand();
|
||||
G4double r2= x*x+y*y+z*z;
|
||||
while(r2>1.||r2<.000001)
|
||||
{
|
||||
x = G4UniformRand(); y = G4UniformRand(); z = G4UniformRand();
|
||||
r2=x*x+y*y+z*z;
|
||||
}
|
||||
G4double r=std::sqrt(r2), quad=G4UniformRand();
|
||||
|
||||
if(quad>0.5)
|
||||
{
|
||||
if(quad>0.75)
|
||||
{
|
||||
if(quad>0.875) return G4ThreeVector(-x/r,-y/r,-z/r);
|
||||
else return G4ThreeVector(-x/r,-y/r, z/r);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(quad>0.625) return G4ThreeVector(-x/r, y/r,-z/r);
|
||||
else return G4ThreeVector(-x/r, y/r, z/r);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(quad>0.25)
|
||||
{
|
||||
if(quad>0.375) return G4ThreeVector( x/r,-y/r,-z/r);
|
||||
else return G4ThreeVector( x/r,-y/r, z/r);
|
||||
}
|
||||
else if(quad>0.125) return G4ThreeVector( x/r, y/r,-z/r);
|
||||
}
|
||||
return G4ThreeVector( x/r, y/r, z/r);
|
||||
G4double cosTheta = 2.*G4UniformRand()-1.;
|
||||
G4double sinTheta2 = 1. - cosTheta*cosTheta;
|
||||
if( sinTheta2 < 0.) sinTheta2 = 0.;
|
||||
G4double sinTheta = std::sqrt(sinTheta2);
|
||||
G4double phi = twopi*G4UniformRand();
|
||||
return G4ThreeVector(sinTheta*std::cos(phi),
|
||||
sinTheta*std::sin(phi), cosTheta).unit();
|
||||
}
|
||||
|
||||
#endif /* G4RANDOMDIR_HH */
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4RandomTools.hh,v 1.2 2008/11/07 17:54:21 gum Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ---------------------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
// ---------------------------------------------------------------------------
|
||||
// Class description:
|
||||
//
|
||||
// Utility functions
|
||||
|
||||
// History:
|
||||
//
|
||||
// 07.11.08 - P.Gumplinger, based on implementation in G4OpBoundaryProcess
|
||||
//
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
#ifndef G4RANDOMTOOLS_HH
|
||||
#define G4RANDOMTOOLS_HH
|
||||
|
||||
#include "globals.hh"
|
||||
#include "Randomize.hh"
|
||||
#include "G4RandomDirection.hh"
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Returns a random lambertian unit vector
|
||||
//
|
||||
inline G4ThreeVector G4LambertianRand(const G4ThreeVector& normal)
|
||||
{
|
||||
G4ThreeVector vect;
|
||||
G4double ndotv;
|
||||
|
||||
do
|
||||
{
|
||||
vect = G4RandomDirection();
|
||||
ndotv = normal * vect;
|
||||
|
||||
if (ndotv < 0.0)
|
||||
{
|
||||
vect = -vect;
|
||||
ndotv = -ndotv;
|
||||
}
|
||||
|
||||
} while (!(G4UniformRand() < ndotv));
|
||||
|
||||
return vect;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Chooses a random vector within a plane given by the unit normal
|
||||
//
|
||||
inline G4ThreeVector G4PlaneVectorRand(const G4ThreeVector& normal)
|
||||
{
|
||||
G4ThreeVector vec1 = normal.orthogonal();
|
||||
G4ThreeVector vec2 = vec1.cross(normal);
|
||||
|
||||
G4double phi = twopi*G4UniformRand();
|
||||
G4double cosphi = std::cos(phi);
|
||||
G4double sinphi = std::sin(phi);
|
||||
|
||||
return cosphi * vec1 + sinphi * vec2;
|
||||
}
|
||||
|
||||
#endif /* G4RANDOMTOOLS_HH */
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Randomize.hh,v 1.7 2006/06/29 19:00:50 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
#ifndef randomize_h
|
||||
#define randomize_h 1
|
||||
|
||||
+74
-1
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.189 2007/11/20 10:54:17 gcosmo Exp $
|
||||
$Id: History,v 1.216 2008/12/08 14:17:15 gcosmo Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -17,6 +17,79 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
Dec 08, 2008 G.Cosmo (global-V09-01-18)
|
||||
- Added new constructor G4String(const char*, str_size).
|
||||
|
||||
Dec 02, 2008 G.Cosmo (global-V09-01-17)
|
||||
- Changed date for release 9.2.
|
||||
|
||||
Nov 07, 2008 P.Gumplinger (global-V09-01-16)
|
||||
- Removed unnecessary 'const' qualifier from G4PlaneVectorRand() function
|
||||
declaration.
|
||||
|
||||
Nov 07, 2008 G.Cosmo (global-V09-01-15)
|
||||
- Added header G4RandomTools.hh, implementing global utility methods for
|
||||
random Lambertian vector and random plane vector. Implementation derived
|
||||
from G4OpBoundaryProcess.
|
||||
|
||||
Oct 14, 2008 V.Ivantchenko (global-V09-01-14)
|
||||
- G4PhysicsVector: changed algorithm for computation of second derivatives, to
|
||||
guarantee continuity with first derivative; fixed second derivative at edges
|
||||
of the vector to be the same as in neighboring nodes.
|
||||
|
||||
Sep 22, 2008 G.Cosmo (global-V09-01-13)
|
||||
- Corrected initialisation of vectors to conform to definition in
|
||||
G4PhysicsVector, and added protections against empty vectors. (V.Ivantchenko)
|
||||
- Corrected definition of copy-constructor and operator=() in G4PhysicsVector
|
||||
and added corresponding definitions in derived classes, where needed.
|
||||
|
||||
Aug 15, 2008 G.Cosmo (global-V09-01-12)
|
||||
- Restored original implementation of G4SwapPtr() but using reference of
|
||||
pointers as arguments, allowing for unambiguous use from client code.
|
||||
|
||||
Aug 14, 2008 P.Gumplinger (global-V09-01-10, global-V09-01-11)
|
||||
- Corrected G4SwapPtr() function in templates.hh (see also problem
|
||||
report #1020).
|
||||
|
||||
Jun 26, 2008 G.Cosmo (global-V09-01-09)
|
||||
- Corrected version number tag.
|
||||
|
||||
Jun 23, 2008 G.Cosmo (global-V09-01-08)
|
||||
- Changed date for release 9.2-beta.
|
||||
|
||||
May 06, 2008 M.Maire (global-V09-01-07)
|
||||
- G4UnitsTable: added units for electric-field, V/m.
|
||||
|
||||
Apr 23, 2008 G.Cosmo (global-V09-01-06)
|
||||
- Changed date for release 9.1.p02.
|
||||
|
||||
Apr 21, 2008 V.Ivantchenko (global-V09-01-05)
|
||||
- Corrected deletion of temporary in G4PhysicsVector::FillSecondDerivatives().
|
||||
|
||||
Apr 07, 2008 A.Bagulya, V.Ivantchenko (global-V09-01-04)
|
||||
- G4PhysicsVector:
|
||||
o Introduced cubic spline interpolation, optionally selectable.
|
||||
o Optimised implementation of GetValue() method.
|
||||
- G4LPhysicsFreeVector: corrected use of GetValue() to adopt implementation
|
||||
available from the base class.
|
||||
|
||||
Mar 19, 2008 V.Grichine (global-V09-01-03)
|
||||
- Modified G4RandomDirection global function to use unit radius sphere surface
|
||||
algorithm instead of 8-quadrants technique, giving 30% performance boost.
|
||||
|
||||
Mar 13, 2008 G.Cosmo (global-V09-01-02)
|
||||
- Introduced inclusion of <cstring> and <climits> in G4String.hh and
|
||||
templates.hh respectively for porting on gcc-4.3.0 compiler.
|
||||
- Cleared compilation warnings in G4DataInterpolation and G4JTPolynomialSolver
|
||||
on gcc-4.3.0 for ambiguous use of parentheses in condition statements.
|
||||
|
||||
Feb 15, 2008 G.Cosmo (global-V09-01-01)
|
||||
- Removed useless specification of units in implementation of
|
||||
G4GeometryTolerance::SetSurfaceTolerance().
|
||||
|
||||
Jan 22, 2008 G.Cosmo (global-V09-01-00)
|
||||
- Changed date for release 9.1.p01.
|
||||
|
||||
Nov 20, 2007 G.Cosmo (global-V09-00-02)
|
||||
- Changed date for release 9.1.
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4Allocator.hh,v 1.18 2006/06/29 19:01:16 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4AllocatorPool.hh,v 1.5 2006/06/29 19:01:18 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4ApplicationState.hh,v 1.4 2006/06/29 19:01:20 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
|
||||
#ifndef G4APPLICATIONSTATE_H
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4DataVector.hh,v 1.15 2007/11/13 17:35:06 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4DataVector.icc,v 1.2 2006/06/29 19:01:24 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// class G4DataVector inline implementation
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4ErrorPropagatorData.hh,v 1.3 2007/06/08 10:33:47 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4ErrorPropagatorData.icc,v 1.4 2007/06/08 10:33:47 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// Class G4ErrorPropagatorData inline implementation
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4ExceptionSeverity.hh,v 1.3 2006/06/29 19:01:27 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Class Description:
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4FPEDetection.hh,v 1.2 2006/11/15 16:00:18 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// -*- C++ -*-
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4FastVector.hh,v 1.5 2006/06/29 19:01:48 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4GeometryTolerance.hh,v 1.2 2007/06/18 13:26:40 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// --------------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4LPhysicsFreeVector.hh,v 1.8 2006/06/29 19:01:51 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// $Id: G4LPhysicsFreeVector.hh,v 1.11 2008/09/22 08:26:33 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------------
|
||||
@@ -41,13 +41,9 @@
|
||||
// A subdivision method is used to find the energy|momentum bin.
|
||||
|
||||
// F.W. Jones, TRIUMF, 04-JUN-96
|
||||
//
|
||||
// 10-JUL-96 FWJ: adapted to changes in G4PhysicsVector.
|
||||
//
|
||||
// 27-MAR-97 FWJ: first version for Alpha release
|
||||
// 20-JUN-97 FWJ: added comment re GetValue(): no longer virtual
|
||||
// 11-NOV-00 H.Kurashige: use STL vector for dataVector and binVector
|
||||
//
|
||||
// 02-APR-08 A.Bagulya: use GetValue() from base class
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
#ifndef G4LPhysicsFreeVector_h
|
||||
#define G4LPhysicsFreeVector_h 1
|
||||
@@ -57,23 +53,22 @@
|
||||
class G4LPhysicsFreeVector : public G4PhysicsVector
|
||||
{
|
||||
|
||||
public:
|
||||
public: // with description
|
||||
|
||||
G4LPhysicsFreeVector();
|
||||
|
||||
public: // with description
|
||||
|
||||
G4LPhysicsFreeVector(size_t nbin, G4double binmin, G4double binmax);
|
||||
|
||||
~G4LPhysicsFreeVector();
|
||||
|
||||
G4LPhysicsFreeVector(const G4LPhysicsFreeVector&);
|
||||
G4LPhysicsFreeVector& operator=(const G4LPhysicsFreeVector&);
|
||||
// Copy constructor and assignment operator.
|
||||
|
||||
void PutValues(size_t binNumber, G4double binValue, G4double dataValue);
|
||||
// G4PhysicsVector has PutValue() but it is inconvenient.
|
||||
// Want to simultaneously fill the bin and data vectors.
|
||||
|
||||
G4double GetValue(G4double theEnergy, G4bool& isOutRange);
|
||||
// Note that theEnergy could be energy, momentum, or whatever.
|
||||
|
||||
void SetVerboseLevel(G4int value);
|
||||
|
||||
G4int GetVerboseLevel(G4int);
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4LPhysicsFreeVector.icc,v 1.7 2006/06/29 19:02:10 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// $Id: G4LPhysicsFreeVector.icc,v 1.13 2008/09/22 08:26:33 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------------
|
||||
@@ -41,77 +41,20 @@
|
||||
// F.W. Jones, TRIUMF, 04-JUN-96
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
// G4PhysicsVector has PutValue() but it is inconvenient.
|
||||
// Want to simultaneously fill the bin and data vectors.
|
||||
|
||||
inline
|
||||
void G4LPhysicsFreeVector::PutValues(size_t binNumber,
|
||||
G4double binValue, G4double dataValue)
|
||||
// G4PhysicsVector has PutValue() but it is inconvenient.
|
||||
// Want to simultaneously fill the bin and data vectors.
|
||||
{
|
||||
binVector[binNumber] = binValue;
|
||||
dataVector[binNumber] = dataValue;
|
||||
if(binNumber == 0)
|
||||
{ edgeMin = binValue; }
|
||||
else if( numberOfBin - 1 == binNumber)
|
||||
{ edgeMax = binValue; }
|
||||
}
|
||||
|
||||
// Note that theEnergy could be energy, momentum, or whatever.
|
||||
// Note: GetValue() is no longer virtual in the parent class
|
||||
// G4PhysicsVector, so at present the following function cannot
|
||||
// be called through a base class pointer.
|
||||
|
||||
inline
|
||||
G4double G4LPhysicsFreeVector::GetValue(G4double theEnergy, G4bool& isOutRange)
|
||||
{
|
||||
G4double returnValue = 0.;
|
||||
|
||||
// verboseLevel = 2;
|
||||
|
||||
if (theEnergy < edgeMin)
|
||||
{
|
||||
isOutRange = true;
|
||||
|
||||
#ifdef G4VERBOSE
|
||||
if (verboseLevel > 1)
|
||||
{
|
||||
G4cout << "G4LPhysicsFreeVector::GetValue " << theEnergy
|
||||
<< " " << dataVector[0] << " " << isOutRange << G4endl;
|
||||
}
|
||||
#endif
|
||||
returnValue = dataVector[0];
|
||||
}
|
||||
else if (theEnergy > edgeMax)
|
||||
{
|
||||
isOutRange = true;
|
||||
|
||||
#ifdef G4VERBOSE
|
||||
if (verboseLevel > 1)
|
||||
{
|
||||
G4cout << "G4LPhysicsFreeVector::GetValue " << theEnergy
|
||||
<< " " << dataVector[numberOfBin - 1]
|
||||
<< " " << isOutRange << G4endl;
|
||||
}
|
||||
#endif
|
||||
returnValue = dataVector[numberOfBin - 1];
|
||||
}
|
||||
else
|
||||
{
|
||||
isOutRange = false;
|
||||
|
||||
G4int n = FindBinLocation(theEnergy);
|
||||
|
||||
G4double dsde = (dataVector[n + 1] - dataVector[n])/
|
||||
(binVector[n + 1] - binVector[n]);
|
||||
#ifdef G4VERBOSE
|
||||
if (verboseLevel > 1)
|
||||
{
|
||||
G4cout << "G4LPhysicsFreeVector::GetValue " << theEnergy
|
||||
<< " " << dataVector[n] + (theEnergy - binVector[n])*dsde
|
||||
<< " " << isOutRange << G4endl;
|
||||
}
|
||||
#endif
|
||||
returnValue = dataVector[n] + (theEnergy - binVector[n])*dsde;
|
||||
}
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
inline
|
||||
void G4LPhysicsFreeVector::SetVerboseLevel(G4int value)
|
||||
{
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4OrderedTable.hh,v 1.14 2007/11/13 17:35:06 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4PhysicsFreeVector.hh,v 1.10 2006/06/29 19:02:18 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// $Id: G4PhysicsFreeVector.hh,v 1.12 2008/09/22 14:49:57 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4PhysicsLinearVector.hh,v 1.10 2006/06/29 19:02:21 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// $Id: G4PhysicsLinearVector.hh,v 1.11 2008/09/22 11:37:09 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
//--------------------------------------------------------------------
|
||||
@@ -72,6 +72,10 @@ class G4PhysicsLinearVector : public G4PhysicsVector
|
||||
~G4PhysicsLinearVector();
|
||||
// Destructor
|
||||
|
||||
G4PhysicsLinearVector(const G4PhysicsLinearVector&);
|
||||
G4PhysicsLinearVector& operator=(const G4PhysicsLinearVector&);
|
||||
// Copy constructor and assignment operator.
|
||||
|
||||
G4bool Retrieve(std::ifstream& fIn, G4bool ascii);
|
||||
|
||||
protected:
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4PhysicsLnVector.hh,v 1.12 2006/06/29 19:02:23 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// $Id: G4PhysicsLnVector.hh,v 1.13 2008/09/22 11:37:09 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
//--------------------------------------------------------------------
|
||||
@@ -69,6 +69,10 @@ class G4PhysicsLnVector : public G4PhysicsVector
|
||||
~G4PhysicsLnVector();
|
||||
// Destructor.
|
||||
|
||||
G4PhysicsLnVector(const G4PhysicsLnVector&);
|
||||
G4PhysicsLnVector& operator=(const G4PhysicsLnVector&);
|
||||
// Copy constructor and assignment operator.
|
||||
|
||||
G4bool Retrieve(std::ifstream& fIn, G4bool ascii);
|
||||
// To retrieve persistent data from file stream.
|
||||
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4PhysicsLogVector.hh,v 1.11 2006/06/29 19:02:25 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// $Id: G4PhysicsLogVector.hh,v 1.13 2008/09/22 08:26:33 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
//--------------------------------------------------------------------
|
||||
@@ -74,9 +74,13 @@ class G4PhysicsLogVector : public G4PhysicsVector
|
||||
~G4PhysicsLogVector();
|
||||
// Destructor
|
||||
|
||||
G4PhysicsLogVector(const G4PhysicsLogVector&);
|
||||
G4PhysicsLogVector& operator=(const G4PhysicsLogVector&);
|
||||
// Copy constructor and assignment operator.
|
||||
|
||||
G4bool Retrieve(std::ifstream& fIn, G4bool ascii);
|
||||
// To retrieve persistent data from file stream.
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
size_t FindBinLocation(G4double theEnergy) const;
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4PhysicsOrderedFreeVector.hh,v 1.9 2006/06/29 19:02:28 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// $Id: G4PhysicsOrderedFreeVector.hh,v 1.11 2008/09/22 14:49:57 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
// PhysicsOrderedFreeVector Class Definition
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4PhysicsOrderedFreeVector.icc,v 1.8 2006/06/29 19:02:31 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
// PhysicsOrderedFreeVector Class Inline Functions Definitions
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4PhysicsTable.hh,v 1.18 2007/11/13 17:35:06 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4PhysicsTable.icc,v 1.8 2006/06/29 19:02:36 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4PhysicsVector.hh,v 1.14 2006/06/29 19:02:38 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// $Id: G4PhysicsVector.hh,v 1.18 2008/09/22 08:26:33 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
@@ -47,9 +47,9 @@
|
||||
// 27 Apr. 1996, K.Amako : Cache mechanism added
|
||||
// 01 Jul. 1996, K.Amako : Now GetValue not virtual
|
||||
// 21 Sep. 1996, K.Amako : Added [] and () operators
|
||||
// 11 Nov. 2000, H.Kurashige : use STL vector for dataVector and binVector
|
||||
// 18 Jan. 2001, H.Kurashige : removed ptrNextTable
|
||||
// 09 Mar. 2001, H.Kurashige : added G4PhysicsVectorType & Store/Retrieve()
|
||||
// 11 Nov. 2000, H.Kurashige : Use STL vector for dataVector and binVector
|
||||
// 09 Mar. 2001, H.Kurashige : Added G4PhysicsVectorType & Store/Retrieve()
|
||||
// 02 Apr. 2008, A.Bagulya : Added SplineInterpolation() and SetSpline()
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -62,13 +62,13 @@
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
|
||||
#include "G4PhysicsVectorType.hh"
|
||||
#include "G4PhysicsVectorType.hh"
|
||||
|
||||
class G4PhysicsVector
|
||||
{
|
||||
public:
|
||||
|
||||
G4PhysicsVector();
|
||||
G4PhysicsVector(G4bool spline = false);
|
||||
// constructor
|
||||
// This class is an abstract class with pure virtual method of
|
||||
// virtual size_t FindBinLocation(G4double theEnergy) const
|
||||
@@ -128,6 +128,9 @@ class G4PhysicsVector
|
||||
|
||||
inline G4PhysicsVectorType GetType() const;
|
||||
// Get physics vector type
|
||||
|
||||
inline void SetSpline(G4bool);
|
||||
// Activate/deactivate Spline interpolation.
|
||||
|
||||
virtual G4bool Store(std::ofstream& fOut, G4bool ascii=false);
|
||||
virtual G4bool Retrieve(std::ifstream& fIn, G4bool ascii=false);
|
||||
@@ -137,12 +140,15 @@ class G4PhysicsVector
|
||||
|
||||
protected:
|
||||
|
||||
inline G4double LinearInterpolation(G4double theEnergy, size_t theLocBin);
|
||||
// Linear interpolation function
|
||||
|
||||
virtual size_t FindBinLocation(G4double theEnergy) const=0;
|
||||
// Find the bin# in which theEnergy belongs - pure virtual function
|
||||
|
||||
void DeleteData();
|
||||
void CopyData(const G4PhysicsVector& vec);
|
||||
// Internal methods for allowing copy of objects
|
||||
|
||||
protected:
|
||||
|
||||
typedef std::vector<G4double> G4PVDataVector;
|
||||
|
||||
G4PhysicsVectorType type; // The type of PhysicsVector (enumerator)
|
||||
@@ -160,7 +166,20 @@ class G4PhysicsVector
|
||||
|
||||
private:
|
||||
|
||||
G4String comment;
|
||||
inline G4double LinearInterpolation();
|
||||
// Linear interpolation function
|
||||
inline G4double SplineInterpolation();
|
||||
// Spline interpolation function
|
||||
|
||||
inline void Interpolation();
|
||||
|
||||
void FillSecondDerivatives();
|
||||
// Initialise second derivatives for spline
|
||||
|
||||
G4double* secDerivative;
|
||||
|
||||
G4String comment;
|
||||
G4bool useSpline;
|
||||
};
|
||||
|
||||
#include "G4PhysicsVector.icc"
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4PhysicsVector.icc,v 1.9 2006/06/29 19:02:40 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// $Id: G4PhysicsVector.icc,v 1.17 2008/09/22 08:26:33 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
@@ -42,13 +42,13 @@
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
|
||||
inline
|
||||
G4double G4PhysicsVector::operator[](const size_t binNumber) const
|
||||
{
|
||||
return dataVector[binNumber];
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
|
||||
inline
|
||||
G4double G4PhysicsVector::operator()(const size_t binNumber) const
|
||||
@@ -56,6 +56,7 @@ inline
|
||||
return dataVector[binNumber];
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
|
||||
inline
|
||||
size_t G4PhysicsVector::GetVectorLength() const
|
||||
@@ -63,75 +64,104 @@ inline
|
||||
return numberOfBin;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------
|
||||
|
||||
inline
|
||||
G4double G4PhysicsVector::LinearInterpolation(G4double theEnergy,
|
||||
size_t theLocBin)
|
||||
G4double G4PhysicsVector::LinearInterpolation()
|
||||
{
|
||||
|
||||
// Linear interpolation is used to get the value. If the give energy
|
||||
// is in the highest bin, no interpolation will be Done. Because
|
||||
// there is an extra bin hidden from a user at locBin=numberOfBin,
|
||||
// the following interpolation is valid even the current locBin=
|
||||
// numberOfBin-1.
|
||||
|
||||
G4double intplFactor = (theEnergy-binVector[theLocBin])
|
||||
/ (binVector[theLocBin+1]-binVector[theLocBin]); // Interpolation factor
|
||||
G4double intplFactor = (lastEnergy-binVector[lastBin])
|
||||
/ (binVector[lastBin+1]-binVector[lastBin]); // Interpolation factor
|
||||
|
||||
return dataVector[theLocBin] +
|
||||
( dataVector[theLocBin+1]-dataVector[theLocBin] ) * intplFactor;
|
||||
return dataVector[lastBin] +
|
||||
( dataVector[lastBin+1]-dataVector[lastBin] ) * intplFactor;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
|
||||
inline
|
||||
G4double G4PhysicsVector::GetValue(G4double theEnergy,
|
||||
G4bool& isOutRange)
|
||||
G4double G4PhysicsVector::SplineInterpolation()
|
||||
{
|
||||
// Spline interpolation is used to get the value. If the give energy
|
||||
// is in the highest bin, no interpolation will be Done. Because
|
||||
// there is an extra bin hidden from a user at locBin=numberOfBin,
|
||||
// the following interpolation is valid even the current locBin=
|
||||
// numberOfBin-1.
|
||||
|
||||
if( !secDerivative ) { FillSecondDerivatives(); }
|
||||
|
||||
// check bin value
|
||||
G4double delta = binVector[lastBin+1] - binVector[lastBin];
|
||||
|
||||
G4double a = (binVector[lastBin+1] - lastEnergy)/delta;
|
||||
G4double b = (lastEnergy - binVector[lastBin])/delta;
|
||||
|
||||
// Final evaluation of cubic spline polynomial for return
|
||||
G4double y1 = dataVector[lastBin];
|
||||
G4double y2 = dataVector[lastBin+1];
|
||||
|
||||
G4double res = a*y1 + b*y2 +
|
||||
((a*a*a - a)*secDerivative[lastBin] +
|
||||
(b*b*b - b)*secDerivative[lastBin+1])*delta*delta/6.0 ;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
|
||||
inline
|
||||
G4double G4PhysicsVector::GetValue(G4double theEnergy, G4bool&)
|
||||
{
|
||||
// Use cache for speed up - check if the value 'theEnergy' is same as the
|
||||
// last call. If it is same, then use the last bin location. Also the
|
||||
// value 'theEnergy' lies between the last energy and low edge of of the
|
||||
// bin of last call, then the last bin location is used.
|
||||
|
||||
isOutRange = false; // No range check.
|
||||
|
||||
size_t locBin = 0;
|
||||
|
||||
if( !(theEnergy != lastEnergy) ) {
|
||||
return lastValue;
|
||||
|
||||
} else if( (theEnergy < lastEnergy)
|
||||
&& (theEnergy >= binVector[lastBin]) ) {
|
||||
locBin = lastBin;
|
||||
if( theEnergy == lastEnergy ) {
|
||||
|
||||
} else if(theEnergy < lastEnergy && theEnergy >= binVector[lastBin]) {
|
||||
lastEnergy = theEnergy;
|
||||
lastValue = LinearInterpolation(theEnergy, locBin);
|
||||
return lastValue;
|
||||
Interpolation();
|
||||
|
||||
} else if( theEnergy < edgeMin ){
|
||||
} else if( theEnergy <= edgeMin ) {
|
||||
lastBin = 0;
|
||||
lastEnergy = edgeMin;
|
||||
lastValue = dataVector[0];
|
||||
|
||||
} else if(theEnergy < lastEnergy && theEnergy >= binVector[lastBin-1]) {
|
||||
lastBin--;
|
||||
lastEnergy = theEnergy;
|
||||
lastValue = dataVector[0];
|
||||
return lastValue;
|
||||
Interpolation();
|
||||
|
||||
} else if( theEnergy >= edgeMax ){
|
||||
lastBin = numberOfBin-1;
|
||||
lastEnergy = theEnergy;
|
||||
lastValue = dataVector[ numberOfBin-1 ];
|
||||
return lastValue;
|
||||
lastEnergy = edgeMax;
|
||||
lastValue = dataVector[lastBin];
|
||||
|
||||
} else {
|
||||
locBin = FindBinLocation(theEnergy);
|
||||
|
||||
lastBin = locBin;
|
||||
} else {
|
||||
lastBin = FindBinLocation(theEnergy);
|
||||
lastEnergy = theEnergy;
|
||||
lastValue = LinearInterpolation(theEnergy, locBin);
|
||||
return lastValue;
|
||||
Interpolation();
|
||||
}
|
||||
|
||||
return lastValue;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
|
||||
inline
|
||||
void G4PhysicsVector::Interpolation()
|
||||
{
|
||||
if(useSpline) { lastValue = SplineInterpolation(); }
|
||||
else { lastValue = LinearInterpolation(); }
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
|
||||
inline
|
||||
void G4PhysicsVector::PutValue(size_t binNumber, G4double theValue)
|
||||
{
|
||||
@@ -139,11 +169,12 @@ inline
|
||||
|
||||
// Fill the bin which is hidden to user with theValue. This is to
|
||||
// handle correctly when Energy=theEmax in getValue.
|
||||
if(binNumber==numberOfBin-1) {
|
||||
dataVector[binNumber+1] = theValue;
|
||||
}
|
||||
|
||||
if(binNumber==numberOfBin-1) { dataVector[binNumber+1] = theValue; }
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
|
||||
inline
|
||||
G4bool G4PhysicsVector::IsFilledVectorExist() const
|
||||
{
|
||||
@@ -153,6 +184,7 @@ inline
|
||||
return status;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
|
||||
inline
|
||||
void G4PhysicsVector::PutComment(const G4String& theComment)
|
||||
@@ -160,14 +192,26 @@ inline
|
||||
comment = theComment;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
|
||||
inline
|
||||
const G4String& G4PhysicsVector::GetComment() const
|
||||
{
|
||||
return comment;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
|
||||
inline
|
||||
G4PhysicsVectorType G4PhysicsVector::GetType() const
|
||||
{
|
||||
return type;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
|
||||
inline
|
||||
void G4PhysicsVector::SetSpline(G4bool val)
|
||||
{
|
||||
useSpline = val;
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4PhysicsVectorType.hh,v 1.4 2006/06/29 19:02:42 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4ReferenceCountedHandle.hh,v 1.15 2006/06/29 19:02:46 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// Class G4ReferenceCountedHandle
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4RotationMatrix.hh,v 1.5 2006/06/29 19:02:54 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4SIunits.hh,v 1.5 2006/09/15 08:16:10 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4SliceTimer.hh,v 1.1 2006/10/23 07:43:31 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4SliceTimer.icc,v 1.1 2006/10/23 07:43:31 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4StateManager.hh,v 1.10 2006/06/29 19:02:59 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4StateManager.icc,v 1.2 2006/06/29 19:03:02 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4String.hh,v 1.7 2007/11/13 17:35:06 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// $Id: G4String.hh,v 1.10 2008/12/08 14:16:05 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
@@ -46,6 +46,8 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string>
|
||||
#include <cstring>
|
||||
|
||||
#include "G4Types.hh"
|
||||
#include <iostream>
|
||||
|
||||
@@ -113,6 +115,7 @@ public:
|
||||
inline G4String ();
|
||||
inline G4String ( char );
|
||||
inline G4String ( const char * );
|
||||
inline G4String ( const char *, str_size );
|
||||
inline G4String ( const G4String& );
|
||||
inline G4String ( const G4SubString& );
|
||||
inline G4String ( const std::string & );
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4String.icc,v 1.9 2007/11/13 17:35:06 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// $Id: G4String.icc,v 1.11 2008/12/08 14:16:05 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
@@ -137,6 +137,9 @@ G4String::G4String () {}
|
||||
G4String::G4String ( const char * astring )
|
||||
: std_string ( astring ) {}
|
||||
|
||||
G4String::G4String ( const char * astring, str_size len )
|
||||
: std_string ( astring, len ) {}
|
||||
|
||||
G4String::G4String ( char c )
|
||||
{
|
||||
char str[2];
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4ThreeVector.hh,v 1.5 2006/06/29 19:03:12 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4Timer.hh,v 1.14 2006/06/29 19:03:15 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4Timer.icc,v 1.2 2006/06/29 19:03:17 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4Tokenizer.hh,v 1.2 2006/06/29 19:03:20 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4TwoVector.hh,v 1.1 2007/02/09 12:10:30 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4Types.hh,v 1.14 2006/06/29 19:03:22 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// GEANT4 native types
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4UnitsTable.hh,v 1.18 2006/11/30 10:37:57 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// -----------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4UnitsTable.icc,v 1.2 2006/06/29 19:03:26 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4UserLimits.hh,v 1.9 2006/06/29 19:03:28 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// class G4UserLimits
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4UserLimits.icc,v 1.8 2006/06/29 19:03:31 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VExceptionHandler.hh,v 1.2 2006/06/29 19:03:33 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VNotifier.hh,v 1.2 2006/06/29 19:03:35 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// class G4VNotifier
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VStateDependent.hh,v 1.5 2006/06/29 19:03:37 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4Version.hh,v 1.12 2007/11/20 10:54:18 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// $Id: G4Version.hh,v 1.17 2008/12/02 09:15:58 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Version information
|
||||
//
|
||||
@@ -46,18 +46,18 @@
|
||||
// |--> patch number
|
||||
|
||||
#ifndef G4VERSION_NUMBER
|
||||
#define G4VERSION_NUMBER 910
|
||||
#define G4VERSION_NUMBER 920
|
||||
#endif
|
||||
|
||||
#ifndef G4VERSION_TAG
|
||||
#define G4VERSION_TAG "$Name: geant4-09-01 $"
|
||||
#define G4VERSION_TAG "$Name: geant4-09-02 $"
|
||||
#endif
|
||||
|
||||
// as variables
|
||||
|
||||
#include "G4String.hh"
|
||||
|
||||
static const G4String G4Version = "$Name: geant4-09-01 $";
|
||||
static const G4String G4Date = "(14-December-2007)";
|
||||
static const G4String G4Version = "$Name: geant4-09-02 $";
|
||||
static const G4String G4Date = "(19-December-2008)";
|
||||
|
||||
#endif
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4coutDestination.hh,v 1.6 2006/06/29 19:03:41 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4ios.hh,v 1.10 2006/06/29 19:03:43 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4strstreambuf.hh,v 1.16 2007/11/13 17:35:06 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// ====================================================================
|
||||
//
|
||||
// G4strstreambuf
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4strstreambuf.icc,v 1.13 2006/06/29 19:03:49 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// ====================================================================
|
||||
// G4strstreambuf.icc
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: globals.hh,v 1.27 2006/06/29 19:03:51 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// Global Constants and typedefs
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: templates.hh,v 1.10 2006/06/29 19:03:54 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// $Id: templates.hh,v 1.13 2008/08/15 12:15:53 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// -*- C++ -*-
|
||||
@@ -52,6 +52,7 @@
|
||||
#define templates_h 1
|
||||
|
||||
#include <limits>
|
||||
#include <climits>
|
||||
|
||||
//
|
||||
// If HIGH_PRECISION is defined to TRUE (ie. != 0) then the type "Float"
|
||||
@@ -110,8 +111,8 @@ typedef float Float;
|
||||
//---------------------------------
|
||||
|
||||
template <class T>
|
||||
inline void G4SwapPtr(T* a, T* b) {
|
||||
T* tmp=a;
|
||||
inline void G4SwapPtr(T*& a, T*& b) {
|
||||
T* tmp= a;
|
||||
a = b;
|
||||
b = tmp;
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4AllocatorPool.cc,v 1.4 2006/06/29 19:03:57 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4DataVector.cc,v 1.9 2007/11/13 17:35:06 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4ErrorPropagatorData.cc,v 1.3 2007/06/05 13:04:30 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4Exception.cc,v 1.21 2007/11/13 17:35:06 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4GeometryTolerance.cc,v 1.2 2007/06/18 13:26:40 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// $Id: G4GeometryTolerance.cc,v 1.3 2008/02/15 07:29:51 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// class G4GeometryTolerance
|
||||
//
|
||||
@@ -107,7 +107,7 @@ void G4GeometryTolerance::SetSurfaceTolerance(G4double worldExtent)
|
||||
{
|
||||
if (!fInitialised)
|
||||
{
|
||||
fCarTolerance = worldExtent*1E-11*mm;
|
||||
fCarTolerance = worldExtent*1E-11;
|
||||
fInitialised = true;
|
||||
}
|
||||
else
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user