Import Geant4 7.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 11:11:55 +02:00
parent e083ffb441
commit 516dbf1a58
5914 changed files with 202605 additions and 71141 deletions
@@ -22,7 +22,7 @@
//
//
// $Id: G4AffineTransform.hh,v 1.5 2003/11/02 14:01:21 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// class G4AffineTransform
@@ -22,7 +22,7 @@
//
//
// $Id: G4AffineTransform.icc,v 1.7 2003/11/02 14:01:21 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// G4AffineTransformation Inline implementation
@@ -22,7 +22,7 @@
//
//
// $Id: G4AssemblyTriplet.hh,v 1.6 2003/11/02 14:01:21 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// Class G4AssemblyTriplet
@@ -22,7 +22,7 @@
//
//
// $Id: G4AssemblyTriplet.icc,v 1.5 2001/07/11 09:59:16 gunter Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// Class G4AssemblyTriplet - inline implementation
@@ -22,7 +22,7 @@
//
//
// $Id: G4BlockingList.hh,v 1.2 2003/11/02 14:01:21 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// class G4BlockingList
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4BlockingList.icc,v 1.2 2003/11/02 14:01:21 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// class G4BlockingList Inlined Implementation
@@ -22,7 +22,7 @@
//
//
// $Id: G4GeometryManager.hh,v 1.8 2003/11/02 14:01:21 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// class G4GeometryManager
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4IdentityTrajectoryFilter.hh,v 1.2 2003/11/02 14:01:21 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// class GIdentityTrajectoryFilter
@@ -22,7 +22,7 @@
//
//
// $Id: G4LogicalSurface.hh,v 1.9 2003/12/01 14:41:28 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
////////////////////////////////////////////////////////////////////////
// Class G4LogicalSurface
@@ -22,7 +22,7 @@
//
//
// $Id: G4LogicalSurface.icc,v 1.8 2003/12/01 14:41:28 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
////////////////////////////////////////////////////////////////////////
// Surface Class Inline Methods
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4LogicalVolume.hh,v 1.16 2003/11/04 15:11:11 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: G4LogicalVolume.hh,v 1.19 2004/11/13 17:22:04 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// class G4LogicalVolume
@@ -156,10 +156,10 @@ class G4LogicalVolume
inline G4int GetNoDaughters() const;
// Returns the number of daughters (0 to n).
inline G4VPhysicalVolume* GetDaughter(const G4int i) const;
// Return the ith daughter. Note numbering starts from 0,
// Returns the ith daughter. Note numbering starts from 0,
// and no bounds checking is performed.
inline void AddDaughter(G4VPhysicalVolume* p);
// Add the volume p as a daughter of the current logical volume.
// Adds the volume p as a daughter of the current logical volume.
inline G4bool IsDaughter(const G4VPhysicalVolume* p) const;
// Returns true if the volume p is a daughter of the current
// logical volume.
@@ -168,11 +168,15 @@ class G4LogicalVolume
// volumes established by the current logical volume. Scans
// recursively the volume tree.
inline void RemoveDaughter(const G4VPhysicalVolume* p);
// Remove the volume p from the List of daughter of the current
// Removes the volume p from the List of daughter of the current
// logical volume.
inline void ClearDaughters();
// Clear the list of daughters. Used by the phys-volume store when
// Clears the list of daughters. Used by the phys-volume store when
// the geometry tree is cleared, since modified at run-time.
G4int TotalVolumeEntities() const;
// Returns the total number of physical volumes (replicated or placed)
// in the tree represented by the current logical volume.
inline G4VSolid* GetSolid() const;
inline void SetSolid(G4VSolid *pSolid);
@@ -181,6 +185,21 @@ class G4LogicalVolume
inline G4Material* GetMaterial() const;
inline void SetMaterial(G4Material *pMaterial);
// Gets and sets the current material.
inline void UpdateMaterial(G4Material *pMaterial);
// Sets material and corresponding MaterialCutsCouple.
// This method is invoked by G4Navigator while it is navigating through
// material parameterization.
G4double GetMass(G4bool forced=false, G4Material* parMaterial=0);
// Returns the mass of the logical volume tree computed from the
// estimated geometrical volume of each solid and material associated
// to the logical volume and its daughters.
// NOTE: the computation may require a considerable amount of time,
// depending from the complexity of the geometry tree.
// The returned value is cached and can be used for successive
// calls (default), unless recomputation is forced by providing
// 'true' for the boolean argument in input. Computation should
// be forced if the geometry setup has changed after the previous
// call. An optional argument to specify a material is provided.
inline G4FieldManager* GetFieldManager() const;
// Gets current FieldManager.
@@ -298,6 +317,8 @@ class G4LogicalVolume
G4double fSmartless;
// Quality for optimisation, average number of voxels to be spent
// per content.
G4double fMass;
// Mass of the logical volume tree.
const G4VisAttributes* fVisAttributes;
// Pointer (possibly 0) to visualization attributes.
G4FastSimulationManager* fFastSimulationManager;
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4LogicalVolume.icc,v 1.15 2003/11/02 14:01:21 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: G4LogicalVolume.icc,v 1.19 2004/11/16 13:43:12 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// class G4LogicalVolume Inline Implementation file
@@ -114,6 +114,7 @@ void G4LogicalVolume::AddDaughter(G4VPhysicalVolume* pNewDaughter)
"Replica or parameterised volume must be the only daughter !");
}
fMass = 0.;
fDaughters.push_back(pNewDaughter);
// Propagates the mother's FastSimulationManager pointer. If we are in
@@ -183,6 +184,7 @@ void G4LogicalVolume::RemoveDaughter(const G4VPhysicalVolume* p)
{
fRegion->RegionModified(true);
}
fMass = 0.;
}
// ********************************************************************
@@ -201,6 +203,7 @@ void G4LogicalVolume::ClearDaughters()
{
fRegion->RegionModified(true);
}
fMass = 0.;
}
// ********************************************************************
@@ -222,6 +225,7 @@ void G4LogicalVolume::SetSolid(G4VSolid *pSolid)
{
assert(pSolid != 0);
fSolid=pSolid;
fMass = 0.;
}
// ********************************************************************
@@ -242,6 +246,19 @@ inline
void G4LogicalVolume::SetMaterial(G4Material *pMaterial)
{
fMaterial=pMaterial;
fMass = 0.;
}
// ********************************************************************
// UpdateMaterial
// ********************************************************************
//
inline
void G4LogicalVolume::UpdateMaterial(G4Material *pMaterial)
{
fMaterial=pMaterial;
if(fRegion) { fCutsCouple = fRegion->FindCouple(pMaterial); }
fMass = 0.;
}
// ********************************************************************
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4LogicalVolumeStore.hh,v 1.9 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: G4LogicalVolumeStore.hh,v 1.10 2004/09/02 07:49:58 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// class G4LogicalVolumeStore
//
@@ -56,6 +56,8 @@
#include "G4LogicalVolume.hh"
class G4VStoreNotifier;
class G4LogicalVolumeStore : public std::vector<G4LogicalVolume*>
{
public: // with description
@@ -66,6 +68,8 @@ class G4LogicalVolumeStore : public std::vector<G4LogicalVolume*>
// Remove the logical volume from the collection.
static G4LogicalVolumeStore* GetInstance();
// Get a ptr to the unique G4LogicalVolumeStore, creating it if necessary.
static void SetNotifier(G4VStoreNotifier* pNotifier);
// Assign a notifier for allocation/deallocation of the logical volumes.
static void Clean();
// Delete all volumes from the store.
@@ -79,6 +83,7 @@ class G4LogicalVolumeStore : public std::vector<G4LogicalVolume*>
private:
static G4LogicalVolumeStore* fgInstance;
static G4VStoreNotifier* fgNotifier;
static G4bool locked;
};
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4PhysicalVolumeStore.hh,v 1.11 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: G4PhysicalVolumeStore.hh,v 1.12 2004/09/02 07:49:58 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// class G4PhysicalVolume
//
@@ -56,6 +56,8 @@
#include "G4VPhysicalVolume.hh"
class G4VStoreNotifier;
class G4PhysicalVolumeStore : public std::vector<G4VPhysicalVolume*>
{
public: // with description
@@ -66,6 +68,8 @@ class G4PhysicalVolumeStore : public std::vector<G4VPhysicalVolume*>
// Remove the volume from the collection.
static G4PhysicalVolumeStore* GetInstance();
// Get a ptr to the unique G4PhysicalVolumeStore, creating it if necessary.
static void SetNotifier(G4VStoreNotifier* pNotifier);
// Assign a notifier for allocation/deallocation of the physical volumes.
static void Clean(G4bool notifyLV=false);
// Delete all volumes from the store. The flag 'notifyLV' must be set to
// true when the whole geometry tree is cleared at run-time through this
@@ -82,6 +86,7 @@ class G4PhysicalVolumeStore : public std::vector<G4VPhysicalVolume*>
private:
static G4PhysicalVolumeStore* fgInstance;
static G4VStoreNotifier* fgNotifier;
static G4bool locked;
};
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4ReflectedSolid.hh,v 1.1 2004/05/13 14:49:23 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-02 $
// $Id: G4ReflectedSolid.hh,v 1.2 2004/10/10 10:15:09 johna Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// class G4ReflectedSolid
@@ -112,6 +112,7 @@ class G4ReflectedSolid : public G4VSolid
void DescribeYourselfTo ( G4VGraphicsScene& scene ) const ;
G4Polyhedron* CreatePolyhedron () const ;
G4NURBS* CreateNURBS () const ;
G4Polyhedron* GetPolyhedron () const;
// For creating graphical representations (ie for visualisation).
protected:
@@ -140,6 +141,8 @@ class G4ReflectedSolid : public G4VSolid
G4Transform3D* fPtrTransform3D ;
G4Transform3D* fDirectTransform3D ;
mutable G4Polyhedron* fpPolyhedron; // Caches reflected G4Polyhedron.
private:
G4ReflectedSolid(const G4ReflectedSolid&);
+18 -3
View File
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4Region.hh,v 1.7 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: G4Region.hh,v 1.9 2004/09/28 14:16:21 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// class G4Region
//
@@ -45,8 +45,10 @@ class G4ProductionCuts;
class G4LogicalVolume;
class G4Material;
class G4VUserRegionInformation;
class G4MaterialCutsCouple;
#include <vector>
#include <map>
#include "G4Types.hh"
#include "G4String.hh"
@@ -55,6 +57,8 @@ class G4Region
{
typedef std::vector<G4LogicalVolume*> G4RootLVList;
typedef std::vector<G4Material*> G4MaterialList;
typedef std::pair<G4Material*,G4MaterialCutsCouple*> G4MaterialCouplePair;
typedef std::map<G4Material*,G4MaterialCutsCouple*> G4MaterialCoupleMap;
public: // with description
@@ -106,7 +110,17 @@ class G4Region
void SetUserInformation(G4VUserRegionInformation* ui);
G4VUserRegionInformation* GetUserInformation() const;
// Set and Get methods for user information
// Set and Get methods for user information.
void ClearMap();
// Reset G4MaterialCoupleMap
void RegisterMaterialCouplePair(G4Material* mat, G4MaterialCutsCouple*);
// Method invoked by G4ProductionCutsTable to register the pair.
G4MaterialCutsCouple* FindCouple(G4Material* mat);
// Find a G4MaterialCutsCouple which corresponds to the material
// in this region.
private:
@@ -120,6 +134,7 @@ class G4Region
G4RootLVList fRootVolumes;
G4MaterialList fMaterials;
G4MaterialCoupleMap fMaterialCoupleMap;
G4bool fRegionMod;
G4ProductionCuts* fCut;
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4Region.icc,v 1.6 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: G4Region.icc,v 1.8 2004/09/28 14:16:21 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// class G4Region Inline Implementation file
@@ -109,7 +109,8 @@ inline
std::vector<G4LogicalVolume*>::iterator
G4Region::GetRootLogicalVolumeIterator()
{
G4RootLVList::iterator iterator = G4RootLVList::iterator(fRootVolumes.begin());
G4RootLVList::iterator iterator =
G4RootLVList::iterator(fRootVolumes.begin());
return iterator;
}
@@ -165,4 +166,42 @@ G4VUserRegionInformation* G4Region::GetUserInformation() const
return fUserInfo;
}
// ********************************************************************
// ClearMap
// ********************************************************************
//
inline
void G4Region::ClearMap()
{
if(!(fMaterialCoupleMap.empty()))
{
G4MaterialCoupleMap::iterator b = fMaterialCoupleMap.begin();
G4MaterialCoupleMap::iterator e = fMaterialCoupleMap.end();
fMaterialCoupleMap.erase(b,e);
}
}
// ********************************************************************
// RegisterMateralCouplePair
// ********************************************************************
//
inline
void G4Region::RegisterMaterialCouplePair(G4Material* mat,
G4MaterialCutsCouple* couple)
{
fMaterialCoupleMap.insert(G4MaterialCouplePair(mat,couple));
}
// ********************************************************************
// FindCouple
// ********************************************************************
//
inline
G4MaterialCutsCouple* G4Region::FindCouple(G4Material* mat)
{
G4MaterialCoupleMap::iterator c = fMaterialCoupleMap.find(mat);
G4MaterialCutsCouple* couple = 0;
if(c!=fMaterialCoupleMap.end()) couple = (*c).second;
return couple;
}
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4RegionStore.hh,v 1.5 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: G4RegionStore.hh,v 1.6 2004/09/02 07:49:58 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// class G4RegionStore
//
@@ -50,12 +50,13 @@
#ifndef G4REGIONSTORE_HH
#define G4REGIONSTORE_HH
class G4Region;
#include <vector>
#include "G4Types.hh"
#include "G4String.hh"
class G4Region;
class G4VStoreNotifier;
class G4RegionStore : public std::vector<G4Region*>
{
public: // with description
@@ -66,8 +67,10 @@ class G4RegionStore : public std::vector<G4Region*>
// Remove the region from the collection.
static G4RegionStore* GetInstance();
// Get a ptr to the unique G4RegionStore, creating it if necessary.
static void SetNotifier(G4VStoreNotifier* pNotifier);
// Assign a notifier for allocation/deallocation of regions.
static void Clean();
// Delete all regions from the store.
// Delete all regions from the store except for the world region.
G4bool IsModified() const;
// Loops through all regions to verify if a region has been
@@ -99,6 +102,7 @@ class G4RegionStore : public std::vector<G4Region*>
private:
static G4RegionStore* fgInstance;
static G4VStoreNotifier* fgNotifier;
static G4bool locked;
};
@@ -22,7 +22,7 @@
//
//
// $Id: G4SmartVoxelHeader.hh,v 1.9 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// class G4SmartVoxelHeader
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4SmartVoxelHeader.icc,v 1.5 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// G4SmartVoxelHeader Inline implementation
@@ -22,7 +22,7 @@
//
//
// $Id: G4SmartVoxelNode.hh,v 1.9 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// class G4SmartVoxelNode
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4SmartVoxelNode.icc,v 1.4 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// G4SmartVoxelNode Inline implementation
@@ -22,7 +22,7 @@
//
//
// $Id: G4SmartVoxelProxy.hh,v 1.7 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// class G4SmartVoxelProxy
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4SmartVoxelProxy.icc,v 1.3 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// G4SmartVoxelProxy Inline implementation
@@ -21,7 +21,7 @@
// ********************************************************************
//
// $Id: G4SmartVoxelStat.hh,v 1.3 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// --------------------------------------------------------------------
// GEANT 4 class header file
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4SolidStore.hh,v 1.9 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: G4SolidStore.hh,v 1.10 2004/09/02 07:49:59 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// class G4SolidStore
//
@@ -56,6 +56,8 @@
#include "G4VSolid.hh"
class G4VStoreNotifier;
class G4SolidStore : public std::vector<G4VSolid*>
{
public: // with description
@@ -66,6 +68,8 @@ class G4SolidStore : public std::vector<G4VSolid*>
// Remove the solid from the collection.
static G4SolidStore* GetInstance();
// Get a ptr to the unique G4SolidStore, creating it if necessary.
static void SetNotifier(G4VStoreNotifier* pNotifier);
// Assign a notifier for allocation/deallocation of solids.
static void Clean();
// Delete all solids from the store.
@@ -79,6 +83,7 @@ class G4SolidStore : public std::vector<G4VSolid*>
private:
static G4SolidStore* fgInstance;
static G4VStoreNotifier* fgNotifier;
static G4bool locked;
};
@@ -22,7 +22,7 @@
//
//
// $Id: G4TouchableHandle.hh,v 1.5 2001/11/06 17:06:47 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Class G4TouchableHandle
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4VCurvedTrajectoryFilter.hh,v 1.2 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// class G4VCurevedTrajectoryFilter
@@ -22,7 +22,7 @@
//
//
// $Id: G4VPVDivisionFactory.hh,v 1.1 2004/05/13 14:53:59 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-02 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// class G4VPVDivisionFactory
@@ -22,7 +22,7 @@
//
//
// $Id: G4VPVParameterisation.hh,v 1.6 2003/11/02 14:00:53 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// class G4VPVParamterisation
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4VPhysicalVolume.hh,v 1.10 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// class G4VPhysicalVolume
@@ -22,7 +22,7 @@
//
//
// $Id: G4VPhysicalVolume.icc,v 1.8 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// class G4VPhysicalVolume Inline Implementation
+19 -3
View File
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4VSolid.hh,v 1.13 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: G4VSolid.hh,v 1.18 2004/10/13 13:06:51 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// class G4VSolid
@@ -164,7 +164,14 @@ class G4VSolid
const G4VPhysicalVolume* pRep);
// Throw exception if ComputeDimensions called frrom an illegal
// derived class.
virtual G4double GetCubicVolume();
// Returns an estimation of the solid volume in internal units.
// This method may be overloaded by derived classes to compute the
// exact geometrical quantity for solids where this is possible,
// or anyway to cache the computed value.
// Note: the computed value is NOT cached.
virtual G4GeometryType GetEntityType() const = 0;
// Provide identification of the class of an object.
// (required for persistency and STEP interface)
@@ -185,6 +192,9 @@ class G4VSolid
virtual G4NURBS* CreateNURBS () const;
// Create a G4Polyhedron/G4NURBS/... (It is the caller's responsibility
// to delete it). A null pointer means "not created".
virtual G4Polyhedron* GetPolyhedron () const;
// Smart access function - creates on request and stores for future
// access. A null pointer means "not available".
virtual const G4VSolid* GetConstituentSolid(G4int no) const;
virtual G4VSolid* GetConstituentSolid(G4int no);
@@ -252,6 +262,12 @@ class G4VSolid
// pPolygon.
// If the polygon is completely clipped away, the polygon is cleared.
G4double EstimateCubicVolume(G4int nStat, G4double epsilon) const;
// Calculate cubic volume based on Inside() method.
// Accuracy is limited by the second argument or the statistics
// expressed by the first argument.
private:
void ClipPolygonToSimpleLimits(G4ThreeVectorList& pPolygon,
@@ -22,7 +22,7 @@
//
//
// $Id: G4VSolid.icc,v 1.7 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// G4VSolid Inline implementation
@@ -0,0 +1,55 @@
//
// ********************************************************************
// * 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: G4VStoreNotifier.hh,v 1.1 2004/09/02 07:48:58 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// class G4VStoreNotifier
//
// Class description:
//
// Simple abstract class allowing for implementation of user notifiers
// to be activated at registration/deregistration of objects in the
// volume, solid and region stores.
// Author:
// 01.09.04 G.Cosmo Initial version
// --------------------------------------------------------------------
#ifndef G4VSTORENOTIFIER_HH
#define G4VSTORENOTIFIER_HH
class G4VStoreNotifier
{
public: // with description
G4VStoreNotifier();
virtual ~G4VStoreNotifier();
// Constructor and destructor.
virtual void NotifyRegistration() = 0;
// Notification of object registration.
virtual void NotifyDeRegistration() = 0;
// Notification of object deregistration.
};
#endif
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4VTouchable.hh,v 1.6 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: G4VTouchable.hh,v 1.8 2004/11/19 07:30:28 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// class G4VTouchable
@@ -57,8 +57,8 @@
//
// 3) GetVolume gives the physical volume.
//
// 4) GetReplicaNumber gives the replica number of the physical volume,
// if it is replicated.
// 4) GetReplicaNumber or GetCopyNumber gives the copy number of the
// physical volume, either if it is replicated or not.
//
// Touchables that store volume hierarchy (history) have the whole stack of
// parent volumes available. Thus it is possible to add a little more state
@@ -71,9 +71,9 @@
//
// 5) GetHistoryDepth gives the depth of the history tree.
//
// 6) GetReplicaNumber, GetVolume, GetTranslation and GetRotation each
// can be called with a depth argument. They return the value of the
// respective level of the touchable.
// 6) GetReplicaNumber/GetCopyNumber, GetVolume, GetTranslation and
// GetRotation each can be called with a depth argument.
// They return the value of the respective level of the touchable.
//
// 7) MoveUpHistory(num) moves the current pointer inside the touchable
// to point "num" levels up the history tree. Thus, eg, calling
@@ -119,12 +119,13 @@ class G4VTouchable
// Accessors for physical volumes and solid.
virtual G4int GetReplicaNumber(G4int depth=0) const;
inline G4int GetCopyNumber(G4int depth=0) const;
virtual G4int GetHistoryDepth() const;
virtual G4int MoveUpHistory(G4int num_levels=1);
// Methods for touchables with history.
virtual void UpdateYourself(G4VPhysicalVolume* pPhysVol,
const G4NavigationHistory* history=NULL);
const G4NavigationHistory* history=0);
// Update method.
public: // without description
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4VTouchable.icc,v 1.7 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: G4VTouchable.icc,v 1.8 2004/11/19 07:26:25 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// class G4VTouchable Inline implementation
@@ -63,6 +63,12 @@ G4int G4VTouchable::GetReplicaNumber(G4int) const
return 0;
}
inline
G4int G4VTouchable::GetCopyNumber(G4int depth) const
{
return GetReplicaNumber(depth);
}
inline
G4int G4VTouchable::MoveUpHistory(G4int)
{
@@ -22,7 +22,7 @@
//
//
// $Id: G4VUserRegionInformation.hh,v 1.3 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// --------------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4VoxelLimits.hh,v 1.8 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// class G4VoxelLimits
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4VoxelLimits.icc,v 1.3 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// G4VoxelLimits Inline implementation
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: meshdefs.hh,v 1.5 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: meshdefs.hh,v 1.6 2004/12/10 16:20:21 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-00-cand-05 $
//
//
// Tube/Cone Meshing constants for extent calculations
@@ -34,9 +34,10 @@
#define MESHDEFS_HH
#include "G4Types.hh"
#include <CLHEP/Units/PhysicalConstants.h>
const G4double kMeshAngleDefault=(M_PI/4); // Angle for mesh `wedges' in rads
// Works best when simple fraction of M_PI/2
const G4double kMeshAngleDefault=(pi/4); // Angle for mesh `wedges' in rads
// Works best when simple fraction of pi/2
const G4int kMinMeshSections=3; // Min wedges+1 to make
const G4int kMaxMeshSections=37; // max wedges+1 to make
@@ -22,7 +22,7 @@
//
//
// $Id: voxeldefs.hh,v 1.6 2003/11/02 14:01:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
//