Import Geant4 4.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 16:18:25 +02:00
parent 36c080dca6
commit 921d3b1cda
3990 changed files with 185376 additions and 82884 deletions
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4AffineTransform.hh,v 1.3.4.1 2001/06/28 19:08:23 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4AffineTransform.hh,v 1.4 2001/07/11 09:59:15 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// class G4AffineTransform
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4AffineTransform.icc,v 1.3.4.1 2001/06/28 19:08:23 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4AffineTransform.icc,v 1.4 2001/07/11 09:59:16 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// G4AffineTransformation Inline implementation
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4AssemblyTriplet.hh,v 1.4.2.1 2001/06/28 19:08:24 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4AssemblyTriplet.hh,v 1.5 2001/07/11 09:59:16 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Class G4AssemblyTriplet
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4AssemblyTriplet.icc,v 1.4.2.1 2001/06/28 19:08:24 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4AssemblyTriplet.icc,v 1.5 2001/07/11 09:59:16 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Class G4AssemblyTriplet - inline implementation
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4AssemblyVolume.hh,v 1.4.2.1 2001/06/28 19:08:24 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4AssemblyVolume.hh,v 1.5 2001/07/11 09:59:16 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Class G4AssemblyVolume
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4AssemblyVolume.icc,v 1.2.2.1 2001/06/28 19:08:24 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4AssemblyVolume.icc,v 1.3 2001/07/11 09:59:16 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Class G4AssemblyVolume - inline implementation
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4DrawVoxels.hh,v 1.9.4.1 2001/06/28 19:08:24 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4DrawVoxels.hh,v 1.10 2001/07/11 09:59:16 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// class G4DrawVoxels
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4GeometryManager.hh,v 1.3.4.1 2001/06/28 19:08:24 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4GeometryManager.hh,v 1.5 2001/10/22 16:08:04 gcosmo Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
// class G4GeometryManager
//
@@ -38,18 +38,20 @@
// static G4GeometryManager* fgInstance
// - Ptr to the unique instance of class
// History:
// 26.07.95 P.Kent Initial version, incuding optimisation Build
// Author:
// 26.07.95 P.Kent Initial version, including optimisation Build
#ifndef G4GEOMETRYMANAGER_HH
#define G4GEOMETRYMANAGER_HH
#include "g4std/vector"
#include "globals.hh"
// Needed for building optimisations
#include "geomdefs.hh"
#include "G4LogicalVolumeStore.hh"
#include "G4LogicalVolume.hh"
#include "G4SmartVoxelStat.hh"
#include "G4SmartVoxelHeader.hh"
#ifdef G4GEOMETRY_VOXELDEBUG
#include "G4ios.hh"
@@ -59,7 +61,7 @@ class G4GeometryManager
{
public: // with description
G4bool CloseGeometry(G4bool pOptimise=true);
G4bool CloseGeometry(G4bool pOptimise=true, G4bool verbose=false);
// Close (`lock') the geometry: perform sanity and `completion' checks
// and optionally [default=yes] build optimisation information.
@@ -76,9 +78,10 @@ class G4GeometryManager
private:
void BuildOptimisations(const G4bool allOpt);
void BuildOptimisations(G4bool allOpt, G4bool verbose=false);
void DeleteOptimisations();
static void ReportVoxelStats( G4std::vector<G4SmartVoxelStat> & stats,
G4double totalCpuTime );
static G4GeometryManager* fgInstance;
G4bool fIsClosed;
};
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4LogicalSurface.hh,v 1.5.2.1 2001/06/28 19:08:24 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4LogicalSurface.hh,v 1.6 2001/07/11 09:59:16 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
////////////////////////////////////////////////////////////////////////
// Class G4LogicalSurface
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4LogicalSurface.icc,v 1.4.2.1 2001/06/28 19:08:25 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4LogicalSurface.icc,v 1.5 2001/07/11 09:59:16 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
////////////////////////////////////////////////////////////////////////
// Surface Class Inline Methods
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4LogicalVolume.hh,v 1.7.2.1 2001/06/28 19:08:25 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4LogicalVolume.hh,v 1.8 2001/07/11 09:59:17 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// class G4LogicalVolume
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4LogicalVolume.icc,v 1.5.2.1 2001/06/28 19:08:25 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4LogicalVolume.icc,v 1.6 2001/07/11 09:59:17 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// class G4LogicalVolume Inline Implementation file
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4LogicalVolumeStore.hh,v 1.5.2.1 2001/06/28 19:08:25 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4LogicalVolumeStore.hh,v 1.6 2001/07/11 09:59:17 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
// class G4LogicalVolumeStore
//
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4PVParameterised.hh,v 1.4.4.1 2001/06/28 19:08:25 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4PVParameterised.hh,v 1.5 2001/07/11 09:59:17 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// class G4PVParameterised
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4PVPlacement.hh,v 1.5.2.1 2001/06/28 19:08:26 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4PVPlacement.hh,v 1.6 2001/07/11 09:59:17 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// class G4PVPlacement
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4PVReplica.hh,v 1.4.4.1 2001/06/28 19:08:26 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4PVReplica.hh,v 1.5 2001/07/11 09:59:17 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// class G4PVReplica
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4PhysicalVolumeStore.hh,v 1.6.2.1 2001/06/28 19:08:26 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4PhysicalVolumeStore.hh,v 1.7 2001/07/11 09:59:17 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
// class G4PhysicalVolume
//
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4SmartVoxelHeader.hh,v 1.5.2.1 2001/06/28 19:08:26 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4SmartVoxelHeader.hh,v 1.6 2001/07/11 09:59:18 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
// class G4SmartVoxelHeader
//
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4SmartVoxelHeader.icc,v 1.2.2.1 2001/06/28 19:08:26 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4SmartVoxelHeader.icc,v 1.3 2001/07/11 09:59:18 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// G4SmartVoxelHeader Inline implementation
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4SmartVoxelNode.hh,v 1.5.2.1 2001/06/28 19:08:26 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4SmartVoxelNode.hh,v 1.6 2001/07/11 09:59:18 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
// class G4SmartVoxelNode
//
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4SmartVoxelNode.icc,v 1.2.2.1 2001/06/28 19:08:26 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4SmartVoxelNode.icc,v 1.3 2001/07/11 09:59:18 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// G4SmartVoxelNode Inline implementation
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4SmartVoxelProxy.hh,v 1.4.4.1 2001/06/28 19:08:27 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4SmartVoxelProxy.hh,v 1.5 2001/07/11 09:59:18 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
// class G4SmartVoxelProxy
//
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4SmartVoxelProxy.icc,v 1.1.4.1 2001/06/28 19:08:27 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4SmartVoxelProxy.icc,v 1.2 2001/07/11 09:59:18 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// G4SmartVoxelProxy Inline implementation
@@ -0,0 +1,126 @@
//
// ********************************************************************
// * 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: G4SmartVoxelStat.hh,v 1.1 2001/10/22 16:08:05 gcosmo Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
// --------------------------------------------------------------------
// GEANT 4 class header file
//
// G4SmartVoxelStat
//
// Class description:
//
// Store information on the performance of the smart voxel algorithm
// for an individual logical volume
// Author: D.C.Williams, UCSC (davidw@scipp.ucsc.edu)
#ifndef G4SmartVoxelStat_hh
#define G4SmartVoxelStat_hh
#include "globals.hh"
#include "g4std/functional"
class G4LogicalVolume;
class G4SmartVoxelHeader;
class G4SmartVoxelStat
{
public: // with description
G4SmartVoxelStat( const G4LogicalVolume *theVolume,
const G4SmartVoxelHeader *theVoxel,
G4double theSysTime,
G4double theUserTime );
// Construct information on one volume's voxels
const G4LogicalVolume *GetVolume() const;
// Return a pointer to the logical volume
const G4SmartVoxelHeader *GetVoxel() const;
// Return a pointer to the voxel header
G4double GetSysTime() const;
// Get amount of system CPU time needed to build voxels
G4double GetUserTime() const;
// Get amount of user CPU time needed to build voxels
G4double GetTotalTime() const;
// Get total amount of CPU time needed to build voxels
G4long GetNumberHeads() const;
// Get number of voxel headers used in the volume
G4long GetNumberNodes() const;
// Get number of voxel slices used in the volume
G4long GetNumberPointers() const;
// Get number of voxel proxy pointers used in the volume
G4long GetMemoryUse() const;
// Get number of bytes needed to store voxel information
protected:
void CountHeadsAndNodes( const G4SmartVoxelHeader *head );
const G4LogicalVolume *volume;
const G4SmartVoxelHeader *voxel;
G4double sysTime;
G4double userTime;
G4long heads;
G4long nodes;
G4long pointers;
public:
//
// Functor objects for sorting
//
struct ByCpu : public G4std::binary_function< const G4SmartVoxelStat,
const G4SmartVoxelStat,
G4bool >
{
G4bool operator()( const G4SmartVoxelStat &a, const G4SmartVoxelStat &b )
{
return a.GetTotalTime() > b.GetTotalTime();
}
};
struct ByMemory : public G4std::binary_function< const G4SmartVoxelStat,
const G4SmartVoxelStat,
G4bool >
{
G4bool operator()( const G4SmartVoxelStat &a, const G4SmartVoxelStat &b )
{
return a.GetMemoryUse() > b.GetMemoryUse();
}
};
};
#endif
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4SolidStore.hh,v 1.5.2.1 2001/06/28 19:08:27 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4SolidStore.hh,v 1.6 2001/07/11 09:59:18 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
// class G4SolidStore
//
@@ -0,0 +1,50 @@
//
// ********************************************************************
// * 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: G4TouchableHandle.hh,v 1.5 2001/11/06 17:06:47 gcosmo Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
// Class G4TouchableHandle
//
// Class description:
//
// A type providing reference counting mechanism for any kind of touchable
// objects.
// The basic rule for the use of this type is that this handle must always
// be exchanged by reference never dinamically allocated (i.e. never
// instantiated using 'new').
// For more details see G4ReferenceCountedHandle.
// Author: Radovan Chytracek, CERN (Radovan.Chytracek@cern.ch)
// Version: 1.0
// Date: February 2001
// ----------------------------------------------------------------------
#ifndef _G4TOUCHABLEHANDLE_H_
#define _G4TOUCHABLEHANDLE_H_ 1
#include "G4VTouchable.hh"
#include "G4ReferenceCountedHandle.hh"
typedef G4ReferenceCountedHandle<G4VTouchable> G4TouchableHandle;
#endif // _G4TOUCHABLEHANDLE_H_
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4VPVParameterisation.hh,v 1.3.4.1 2001/06/28 19:08:27 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4VPVParameterisation.hh,v 1.4 2001/07/11 09:59:18 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
// class G4VPVParamterisation
//
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4VPhysicalVolume.hh,v 1.5.4.1 2001/06/28 19:08:27 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4VPhysicalVolume.hh,v 1.6 2001/07/11 09:59:18 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// class G4VPhysicalVolume
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4VPhysicalVolume.icc,v 1.4.4.1 2001/06/28 19:08:27 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4VPhysicalVolume.icc,v 1.5 2001/07/11 09:59:18 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// class G4VPhysicalVolume Inline Implementation
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4VSolid.hh,v 1.8.2.1 2001/06/28 19:08:28 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4VSolid.hh,v 1.9 2001/07/11 09:59:19 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// class G4VSolid
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4VSolid.icc,v 1.4.4.1 2001/06/28 19:08:28 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4VSolid.icc,v 1.5 2001/07/11 09:59:19 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// G4VSolid Inline implementation
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4VTouchable.hh,v 1.4.4.1 2001/06/28 19:08:28 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4VTouchable.hh,v 1.5 2001/07/11 09:59:19 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// class G4VTouchable
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4VTouchable.icc,v 1.4.4.1 2001/06/28 19:08:28 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4VTouchable.icc,v 1.5 2001/07/11 09:59:19 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// class G4VTouchable Inline implementation
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4VoxelLimits.hh,v 1.4.4.1 2001/06/28 19:08:28 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4VoxelLimits.hh,v 1.5 2001/07/11 09:59:19 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
// class G4VoxelLimits
//
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4VoxelLimits.icc,v 1.1.4.1 2001/06/28 19:08:29 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4VoxelLimits.icc,v 1.2 2001/07/11 09:59:19 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// G4VoxelLimits Inline implementation
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: meshdefs.hh,v 1.3.4.1 2001/06/28 19:08:29 gunter Exp $
// GEANT4 tag $Name: $
// $Id: meshdefs.hh,v 1.4 2001/07/11 09:59:19 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// Tube/Cone Meshing constants for extent calculations
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: voxeldefs.hh,v 1.4.4.1 2001/06/28 19:08:29 gunter Exp $
// GEANT4 tag $Name: $
// $Id: voxeldefs.hh,v 1.5 2001/07/11 09:59:19 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
//