Import Geant4 1.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 15:28:20 +02:00
parent aaa409b6ee
commit ca1c8cb059
2995 changed files with 106830 additions and 299600 deletions
+2 -1
View File
@@ -1,4 +1,4 @@
# $Id: GNUmakefile,v 1.1 1999/01/07 16:07:13 gunter Exp $
# $Id: GNUmakefile,v 1.2 1999/07/13 14:19:42 graignac Exp $
# -----------------------------------------------------------------------
# GNUmakefile for geometry/management library. Gabriele Cosmo, 16/11/96.
# -----------------------------------------------------------------------
@@ -12,6 +12,7 @@ endif
include $(G4INSTALL)/config/architecture.gmk
CPPFLAGS += -I$(G4BASE)/graphics_reps/include \
-I$(G4BASE)/intercoms/include \
-I$(G4BASE)/global/management/include \
-I$(G4BASE)/global/HEPRandom/include \
-I$(G4BASE)/global/HEPGeometry/include
+20 -1
View File
@@ -1,4 +1,4 @@
$Id: History,v 1.1 1999/03/19 17:21:04 japost Exp $
$Id: History,v 1.5 1999/11/30 12:21:49 gcosmo Exp $
-------------------------------------------------------------------
=========================================================
@@ -17,6 +17,25 @@ committal in the CVS repository !
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
November 30, 99 G. Cosmo geommng-V00-01-01a
G4DrawVoxels.cc:
Fixed initialization of (const G4VPhysicalVolume*) in method
GetAbsoluteTransformation(). Fix needed for NT/VC++ compiler.
November 09, 99 J. Apostolakis geommng-V00-01-01
G4VPhysicalVolume:
i) Made G4RotationMatrix G4VPhysicalVolume::GetObjectRotation() const
non-inline and moved it to source file from inline file.
ii) Added GetObjectRotationValue() method.
iii) Minimal changes of comments for Software Ref. Manual in header file
[ Change i) caused problem with HP aCC compiler A.01.19. Atlas
was patching the code to try to get around this, but this
resolution is much better ]
March 17, 99 J. Apostolakis geommng-01-00-02
G4AffineTransform.icc:
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4AffineTransform.hh,v 1.1 1999/01/07 16:07:13 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4AffineTransform.hh,v 1.1.12.1 1999/12/07 20:48:08 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// class G4AffineTransform Header File
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4AffineTransform.icc,v 1.2 1999/03/18 18:31:39 japost Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4AffineTransform.icc,v 1.2.10.1 1999/12/07 20:48:08 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// G4AffineTransformation Inline implementation
@@ -0,0 +1,73 @@
// 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: G4DrawVoxels.hh,v 1.6.2.1 1999/12/07 20:48:08 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// class G4DrawVoxels
//
// Implementation
//
// Define G4DrawVoxelsDebug for debugging information on G4cout
//
// History:
// 03/08/1999 The G4VisAttributes have been made member data for lifetime reasons / visualisation L.G (see John Allison for further explanation)
// 29.07.99 first comitted version L.G.
#ifndef G4DrawVoxels_HH
#define G4DrawVoxels_HH
//***********what I need to use (include and forward declarations) FOR DRAWING VOXELS****************
#include "G4Colour.hh"
#include "G4VisAttributes.hh"
#include "G4PlacedPolyhedron.hh" //#include "G4Polyhedron.hh" included
//#include <rw/tpordvec.h>
//#include <rw/tvordvec.h>
#include "G4SmartVoxelHeader.hh"
#include "G4VoxelLimits.hh"
#include "G4AffineTransform.hh"
#include "G4Vector3D.hh"
#include "G4LogicalVolume.hh"
#include "G4VSolid.hh"
#define voxel_width 0;
#define G4DrawVoxelsDebug
//***************************************************************************************************
class G4DrawVoxels{
public:
//constructor. It initialises the members data to default colors
G4DrawVoxels();
~G4DrawVoxels(){};
//Copy constructor Assignment operator not supported (array fvoxelcolours ...)
void DrawVoxels(const G4LogicalVolume* lv) const;
G4PlacedPolyhedronList* CreatePlacedPolyhedra(const G4LogicalVolume*) const;
void SetVoxelsVisAttributes(G4VisAttributes&,G4VisAttributes&,G4VisAttributes&);
void SetBoundingBoxVisAttributes(G4VisAttributes&);
private:
//Member data
G4VisAttributes fVoxelsVisAttributes[3];
G4VisAttributes fBoundingBoxVisAttributes;
void ComputeVoxelPolyhedra(const G4LogicalVolume*,const G4SmartVoxelHeader*,G4VoxelLimits&,G4PlacedPolyhedronList*) const;
G4AffineTransform GetAbsoluteTransformation(const G4VPhysicalVolume*) const;
//Copy constructor Assignment operator not supported (array fvoxelcolours ...)
G4DrawVoxels(const G4DrawVoxels&);
G4DrawVoxels operator=(const G4DrawVoxels&);
};
#endif
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4GeometryManager.hh,v 1.1 1999/01/07 16:07:14 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4GeometryManager.hh,v 1.1.12.1 1999/12/07 20:48:08 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// class G4GeometryManager
//
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4LogicalSurface.hh,v 1.1 1999/01/07 16:07:14 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4LogicalSurface.hh,v 1.1.12.1 1999/12/07 20:48:09 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
////////////////////////////////////////////////////////////////////////
// G4LogicalSurface Definition
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4LogicalSurface.icc,v 1.1 1999/01/07 16:07:14 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4LogicalSurface.icc,v 1.1.12.1 1999/12/07 20:48:09 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
////////////////////////////////////////////////////////////////////////
// Surface Class Inline Methods
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4LogicalVolume.hh,v 1.2 1999/02/15 10:58:13 japost Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4LogicalVolume.hh,v 1.3.2.1 1999/12/07 20:48:09 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// class G4LogicalVolume
@@ -140,7 +140,7 @@
//
// Member data:
//
// RWTPtrOrderedVector<G4VPhysicalVolume> fDaughters
// G4RWTPtrOrderedVector<G4VPhysicalVolume> fDaughters
// Vector of daughters. Given initial size of 0.
// G4FieldManager *fFieldManager
// Pointer (possibly NULL) to (magnetic or other) field manager object
@@ -180,7 +180,7 @@
#include "globals.hh"
#include "G4VPhysicalVolume.hh" // Need operator == for vector fdaughters
#include <rw/tpordvec.h>
#include "g4rw/tpordvec.h"
#include <assert.h>
// Forward declarations
@@ -255,7 +255,7 @@ private:
// Data members:
private:
RWTPtrOrderedVector<G4VPhysicalVolume> fDaughters;
G4RWTPtrOrderedVector<G4VPhysicalVolume> fDaughters;
G4FieldManager *fFieldManager;
G4Material *fMaterial;
G4String fName;
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4LogicalVolume.icc,v 1.2 1999/02/15 10:58:13 japost Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4LogicalVolume.icc,v 1.2.10.1 1999/12/07 20:48:09 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// class G4LogicalVolume Inline Implementation file
@@ -1,17 +1,17 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4LogicalVolumeStore.hh,v 1.1 1999/01/07 16:07:15 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4LogicalVolumeStore.hh,v 1.2.2.1 1999/12/07 20:48:09 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// class G4LogicalVolumeStore
//
// Container for all LogicalVolumes, with functionality derived from
// RWTPtrOrderedVector<T>. The class is `singleton', in that only
// G4RWTPtrOrderedVector<T>. The class is `singleton', in that only
// one can exist, and access is facillitated via G4LogicalVolumeStore::GetInstance()
//
// All LogicalVolumes should be registered with G4LogicalVolumeStore, and removed on their
@@ -19,7 +19,7 @@
// container initially has a capacity of 100.
//
// If much additional functionality is added, should consider containment
// instead of inheritance for RWTPtrOrderedVector<T>
// instead of inheritance for G4RWTPtrOrderedVector<T>
//
// Class member functions:
//
@@ -48,11 +48,11 @@
#ifndef G4VLOGICALVOLUMESTORE_HH
#define G4VLOGICALVOLUMESTORE_HH
#include <rw/tpordvec.h>
#include "g4rw/tpordvec.h"
#include "G4LogicalVolume.hh"
class G4LogicalVolumeStore : public RWTPtrOrderedVector<G4LogicalVolume>
class G4LogicalVolumeStore : public G4RWTPtrOrderedVector<G4LogicalVolume>
{
public:
static void Register(G4LogicalVolume* pVolume);
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4PVParameterised.hh,v 1.1 1999/01/07 16:07:15 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4PVParameterised.hh,v 1.1.12.1 1999/12/07 20:48:10 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// class G4PVParameterised
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4PVPlacement.hh,v 1.1 1999/01/07 16:07:15 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4PVPlacement.hh,v 1.1.12.1 1999/12/07 20:48:10 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// class G4PVPlacement
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4PVReplica.hh,v 1.1 1999/01/07 16:07:16 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4PVReplica.hh,v 1.1.12.1 1999/12/07 20:48:10 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// class G4PVReplica
@@ -1,17 +1,17 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4PhysicalVolumeStore.hh,v 1.1 1999/01/07 16:07:16 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4PhysicalVolumeStore.hh,v 1.2.2.1 1999/12/07 20:48:10 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// class G4PhysicalVolume
//
// Container for all solids, with functionality derived from
// RWTPtrOrderedVector<T>. The class is `singleton', in that only
// G4RWTPtrOrderedVector<T>. The class is `singleton', in that only
// one can exist, and access is facillitated via
// G4PhysicalVolumeStore::GetInstance()
//
@@ -20,7 +20,7 @@
// container initially has a capacity of 100.
//
// If much additional functionality is added, should consider containment
// instead of inheritance for RWTPtrOrderedVector<T>
// instead of inheritance for G4RWTPtrOrderedVector<T>
//
// Class member functions:
//
@@ -49,11 +49,11 @@
#ifndef G4PHYSICALVOLUMESTORE_HH
#define G4PHYSICALVOLUMESTORE_HH
#include <rw/tpordvec.h>
#include "g4rw/tpordvec.h"
#include "G4VPhysicalVolume.hh"
class G4PhysicalVolumeStore : public RWTPtrOrderedVector<G4VPhysicalVolume>
class G4PhysicalVolumeStore : public G4RWTPtrOrderedVector<G4VPhysicalVolume>
{
public:
static void Register(G4VPhysicalVolume* pSolid);
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4SmartVoxelHeader.hh,v 1.1 1999/01/07 16:07:16 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4SmartVoxelHeader.hh,v 1.2.2.1 1999/12/07 20:48:10 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// class G4SmartVoxelHeader
//
@@ -42,7 +42,7 @@
// Private functions:
//
// G4SmartVoxelHeader(G4LogicalVolume* pVolume,G4VoxelLimits& pLimits,
// RWTValOrderedVector<G4int>& pCandidates,
// G4RWTValOrderedVector<G4int>& pCandidates,
// const G4int pSlice=0)
// Build and refine voxels between specified limits, considering only
// the physical volumes numbered `pCandidates'. pSlice is used to set max
@@ -59,7 +59,7 @@
// G4double fmaxExtent
// G4double fminExtent
// Minimum and maximum coordiantes along the axis
// RWTPtrOrderedVector<G4SmartVoxelProxy> fslices
// G4RWTPtrOrderedVector<G4SmartVoxelProxy> fslices
// The slices along the axis
//
// G4int fminEquivalent
@@ -82,19 +82,19 @@
#include "G4ios.hh"
#include <rw/tvvector.h>
#include <rw/tpordvec.h>
#include <rw/tvordvec.h>
#include "g4rw/tvvector.h"
#include "g4rw/tpordvec.h"
#include "g4rw/tvordvec.h"
// Forward declarations
class G4LogicalVolume;
class G4VoxelLimits;
class G4VPhysicalVolume;
typedef RWTPtrOrderedVector<G4SmartVoxelProxy> G4ProxyVector;
typedef RWTPtrOrderedVector<G4SmartVoxelNode> G4NodeVector;
typedef RWTValOrderedVector<G4int> G4VolumeNosVector;
typedef RWTValVector<G4double> G4VolumeExtentVector;
typedef G4RWTPtrOrderedVector<G4SmartVoxelProxy> G4ProxyVector;
typedef G4RWTPtrOrderedVector<G4SmartVoxelNode> G4NodeVector;
typedef G4RWTValOrderedVector<G4int> G4VolumeNosVector;
typedef G4RWTValVector<G4double> G4VolumeExtentVector;
class G4SmartVoxelHeader
{
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4SmartVoxelNode.hh,v 1.1 1999/01/07 16:07:16 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4SmartVoxelNode.hh,v 1.2.2.1 1999/12/07 20:48:10 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// class G4SmartVoxelNode
//
@@ -25,7 +25,7 @@
// ~G4SmartVoxelNode()
// Destructor. No actions.
//
// RWTValOrderedVector<G4int>* GetContents()
// G4RWTValOrderedVector<G4int>* GetContents()
// Return ptr to vector of volume no.s in the node. Use with care.
// Intended for inspection by navigator at tracking time only.
//
@@ -56,7 +56,7 @@
// G4int fmaxEquivalent
// Min and maximum nodes with same contents. Set by constructor
// and set methods.
// RWTValOrderedVector<G4int>(1) fcontents
// G4RWTValOrderedVector<G4int>(1) fcontents
// Vector of no.s of volumes inside the node
//
// History:
@@ -69,10 +69,10 @@
#include "voxeldefs.hh"
#include "G4VPhysicalVolume.hh"
#include <rw/tvordvec.h>
#include "g4rw/tvordvec.h"
typedef RWTValOrderedVector<G4int> G4SliceVector;
typedef G4RWTValOrderedVector<G4int> G4SliceVector;
class G4SmartVoxelNode
{
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4SmartVoxelProxy.hh,v 1.1 1999/01/07 16:07:17 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4SmartVoxelProxy.hh,v 1.1.12.1 1999/12/07 20:48:10 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// class G4SmartVoxelProxy
@@ -1,17 +1,17 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4SolidStore.hh,v 1.1 1999/01/07 16:07:17 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4SolidStore.hh,v 1.2.2.1 1999/12/07 20:48:10 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// class G4SolidStore
//
// Container for all solids, with functionality derived from
// RWTPtrOrderedVector<T>. The class is `singleton', in that only
// G4RWTPtrOrderedVector<T>. The class is `singleton', in that only
// one can exist, and access is facillitated via G4SolidStore::GetInstance()
//
// All solids should be registered with G4SolidStore, and removed on their
@@ -19,7 +19,7 @@
// container initially has a capacity of 100.
//
// If much additional functionality is added, should consider containment
// instead of inheritance for RWTPtrOrderedVector<T>
// instead of inheritance for G4RWTPtrOrderedVector<T>
//
// Class member functions:
//
@@ -48,11 +48,11 @@
#ifndef G4VSOLIDSTORE_HH
#define G4VSOLIDSTORE_HH
#include <rw/tpordvec.h>
#include "g4rw/tpordvec.h"
#include "G4VSolid.hh"
class G4SolidStore : public RWTPtrOrderedVector<G4VSolid>
class G4SolidStore : public G4RWTPtrOrderedVector<G4VSolid>
{
public:
static void Register(G4VSolid* pSolid);
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4VPVParameterisation.hh,v 1.1 1999/01/07 16:07:17 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4VPVParameterisation.hh,v 1.1.12.1 1999/12/07 20:48:10 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// class G4VPVParamterisation
//
@@ -1,18 +1,22 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4VPhysicalVolume.hh,v 1.1 1999/01/07 16:07:17 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4VPhysicalVolume.hh,v 1.2.4.1 1999/12/07 20:48:11 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// class description:
//
// class G4VPhysicalVolume
// class G4VPhysicalVolume
//
// Base class for representation of one or many volumes positioned within
// and relative to a mother volume
// This is an Abstract Base class for representation of positioned volume.
// The volume is placed within a mother volume, relative to its coordinate
// system. Either a single positioned volume or many positioned volume can
// be represented by a particular G4VPhysicalVolume.
//
// Member functions:
//
@@ -59,8 +63,9 @@
// the rotation/translation is being made for the frame or the object/volume
// that is being placed. (They are the inverse of each other).
//
// G4RotationMatrix* GetObjectRotation() const
// G4ThreeVector GetObjectTranslation() const
// G4RotationMatrix* GetObjectRotation() const // Obsolete
// inline G4RotationMatrix GetObjectRotationValue() const; // Replacement
// G4ThreeVector GetObjectTranslation() const
// Return the rotation/translation of the Object relative to the mother
//
// const G4RotationMatrix* GetFrameRotation() const
@@ -68,18 +73,6 @@
// Return the rotation/translation of the Frame used to position
// this volume in its mother volume (opposite of object rot/trans).
//
// Older version:
//
// const G4ThreeVector& GetTranslation() const
// const G4RotationMatrix* GetRotation() const
// Return the translation/rotation of the volume
//
// void SetTranslation(const G4ThreeVector &v)
// G4RotationMatrix* GetRotation()
// void SetRotation(G4RotationMatrix*)
// NOT INTENDED FOR GENERAL USE.
// Non constant versions of above. Used to change transformation
// for replication/paramterisation mechanism.
//
// To be provided by subclasses:
//
@@ -106,9 +99,22 @@
// Perform any initialisation/setup necessary for the given volume.
// [Set the current mother pointer to refer to the specified mother, by
// calling SetMother]
// Older access methods:
//
// const G4ThreeVector& GetTranslation() const
// const G4RotationMatrix* GetRotation() const
// Return the translation/rotation of the volume
//
// void SetTranslation(const G4ThreeVector &v)
// G4RotationMatrix* GetRotation()
// void SetRotation(G4RotationMatrix*)
// NOT INTENDED FOR GENERAL USE.
// Non constant versions of above. Used to change transformation
// for replication/parameterisation mechanism.
//
// History:
// 09.11.99 J.Apostolakis Added GetObjectRotationValue() method & redid comments.
// 28.08.96 P.Kent Replaced transform by rotmat + vector
// 25.07.96 P.Kent Modified interface for new `Replica' capable geometry
// 24.07.95 P.Kent First non-stub version
@@ -127,7 +133,7 @@ class G4VPVParameterisation;
class G4VPhysicalVolume
{
public:
public: // with description
G4VPhysicalVolume(G4RotationMatrix *pRot,
const G4ThreeVector &tlate,
const G4String &pName,
@@ -141,7 +147,8 @@ public:
G4bool operator == (const G4VPhysicalVolume& p) const;
// Access functions
G4RotationMatrix* GetObjectRotation() const;
G4RotationMatrix* GetObjectRotation() const; // Obsolete
inline G4RotationMatrix GetObjectRotationValue() const; // Replacement
G4ThreeVector GetObjectTranslation() const;
const G4RotationMatrix* GetFrameRotation() const;
G4ThreeVector GetFrameTranslation() const;
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4VPhysicalVolume.icc,v 1.1 1999/01/07 16:07:17 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4VPhysicalVolume.icc,v 1.2.4.1 1999/12/07 20:48:11 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// class G4VPhysicalVolume Inline Implementation
@@ -70,23 +70,16 @@ inline void G4VPhysicalVolume::SetName(const G4String& pName)
fname=pName;
}
inline G4RotationMatrix* G4VPhysicalVolume::GetObjectRotation() const
inline G4RotationMatrix G4VPhysicalVolume::GetObjectRotationValue() const
{
static G4RotationMatrix aRotM;
static G4RotationMatrix IdentityRM; // Never changed (from "1")
G4RotationMatrix* retval;
G4RotationMatrix aRotM; // Initialised to identity
// Insure against frot being a null pointer
if(frot)
{
aRotM= frot->inverse();
retval= &aRotM;
}
else
{
retval= &IdentityRM;
}
return retval;
return aRotM;
}
inline G4ThreeVector G4VPhysicalVolume::GetObjectTranslation() const
{
+28 -15
View File
@@ -1,14 +1,16 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4VSolid.hh,v 1.1 1999/01/07 16:07:18 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4VSolid.hh,v 1.3.2.1 1999/12/07 20:48:11 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// Class Description
//
// class G4VSolid
//
// Abstract base class solids, physical shapes that can be tracked through.
@@ -113,6 +115,9 @@
// Creates a G4Polyhedron/G4NURBS/... (It is the caller's reponsibility
// to delete it.) A null pointer means "not created".
//
// Class Description - end:
// -----------------------------------------------------------------------------
// Protected functions:
//
// void CalculateClippedPolygonExtent(G4ThreeVectorList& pPolygon,
@@ -193,21 +198,17 @@
// G4bool operator==(const G4VSolid& s) const
// Return true only if addresses are the same
//
// Member Data:
//
// G4String fshapeName
// Name for this solid.
//
// History:
// 17.06.98 J.Apostolakis Added pure virtual function GetEntityType()
// 24.10.96 J.Allison Added const G4VisAttributes* fpVisAttributes; and
// associated access functions.
// 26.07.96 P.Kent Added ComputeDimensions for replication mechanism.
// 22.07.96 J.Allison Renamed CreatePolyhedon, G4VGraphicsScene.
// 27.03.96 J.Allison Changed names to: DescribeYourselfTo and
// SendWireframeTo (G4VGraphicsModel&).
// 10.07.95 P.Kent Added == operator
// 30.06.95 P.Kent Initial version, no scoping or visualisation functions
// 17.06.98 J.Apostolakis Added pure virtual function GetEntityType()
// 26.07.96 P.Kent Added ComputeDimensions for replication mechanism.
// 27.03.96 J.Allison Methods for visualisation
// 30.06.95 P.Kent Initial version, no scoping or visualisation functions
#ifndef G4VSOLID_HH
#define G4VSOLID_HH
@@ -225,14 +226,15 @@ class G4VGraphicsScene;
class G4Polyhedron;
class G4NURBS;
class G4VisExtent;
class G4DisplacedSolid;
#include "G4ThreeVector.hh"
#include <rw/tvordvec.h>
typedef RWTValOrderedVector<G4ThreeVector> G4ThreeVectorList;
#include "g4rw/tvordvec.h"
typedef G4RWTValOrderedVector<G4ThreeVector> G4ThreeVectorList;
typedef G4String G4GeometryType;
class G4VSolid {
public:
public: // With description
G4VSolid(const G4String& name);
virtual ~G4VSolid();
@@ -276,6 +278,17 @@ public:
virtual G4Polyhedron* CreatePolyhedron () const;
virtual G4NURBS* CreateNURBS () const;
// If Solid is made up from a Boolean operation of two solids,
// return the "no" solid.
// If the solid is not a "Boolean", return 0
virtual const G4VSolid* GetConstituentSolid(G4int no) const;
virtual G4VSolid* GetConstituentSolid(G4int no);
// If the Solid is a "G4DisplacedSolid", return a self pointer
// else return 0
virtual const G4DisplacedSolid* GetDisplacedSolidPtr() const;
virtual G4DisplacedSolid* GetDisplacedSolidPtr();
protected:
// Calculate the maximum and minimum extents of the convex polygon pPolygon
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4VSolid.icc,v 1.1 1999/01/07 16:07:18 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4VSolid.icc,v 1.1.12.1 1999/12/07 20:48:12 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4VTouchable.hh,v 1.1 1999/01/07 16:07:18 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4VTouchable.hh,v 1.1.12.1 1999/12/07 20:48:12 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// class G4VTouchable Paul Kent August 1996
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4VTouchable.icc,v 1.1 1999/01/07 16:07:19 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4VTouchable.icc,v 1.1.12.1 1999/12/07 20:48:12 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// class G4VTouchable Inline implementation
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4VoxelLimits.hh,v 1.1 1999/01/07 16:07:19 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4VoxelLimits.hh,v 1.1.12.1 1999/12/07 20:48:12 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// class G4VoxelLimits
//
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: meshdefs.hh,v 1.1 1999/01/07 16:07:19 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: meshdefs.hh,v 1.1.12.1 1999/12/07 20:48:12 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// Tube/Cone Meshing constants for extent calculations
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: voxeldefs.hh,v 1.2 1999/02/15 11:14:01 japost Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: voxeldefs.hh,v 1.2.10.1 1999/12/07 20:48:12 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
@@ -0,0 +1,236 @@
// 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: G4DrawVoxels.cc,v 1.8.2.1 1999/12/07 20:48:13 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// class G4DrawVoxels
//
// Implementation
//
// Define G4DrawVoxelsDebug for debugging information on G4cout
//
// History:
// 03/08/1999 The G4VisAttributes have been made member data for lifetime reasons / visualisation L.G (see John Allison for further explanation)
// 29/07/1999 first comitted version L.G.
//Including the necessary data
#include "G4DrawVoxels.hh"
#include "G4VVisManager.hh"
/****************************/
//Methods that allow changing colors of the drawing
void G4DrawVoxels::SetVoxelsVisAttributes(G4VisAttributes& VA_voxelX,G4VisAttributes& VA_voxelY,G4VisAttributes& VA_voxelZ){
fVoxelsVisAttributes[0]=VA_voxelX; //operateur de copie ...
fVoxelsVisAttributes[1]=VA_voxelY;
fVoxelsVisAttributes[2]=VA_voxelZ;
}
void G4DrawVoxels::SetBoundingBoxVisAttributes(G4VisAttributes& VA_boundingbox){
fBoundingBoxVisAttributes=VA_boundingbox; //operateur de copie ...
}
//#********************************************************************************************************************#
//#********************************************************************************************************************#
void G4DrawVoxels::ComputeVoxelPolyhedra(const G4LogicalVolume* lv,
const G4SmartVoxelHeader* header,
G4VoxelLimits& limit,
G4PlacedPolyhedronList* ppl) const
{
//######################################################################################################################
// Let's draw the selected voxelisation now !
#ifdef G4DrawVoxelsDebug
G4cout << "**** !!! G4DrawVoxels::Draw_Voxels : a query for drawing voxelisation";
G4cout << " Logical Volume:" << lv->GetName() <<endl;
#endif
G4VSolid* solid=lv->GetSolid();
G4double dx=kInfinity,dy=kInfinity,dz=kInfinity;
G4double xmax=0,xmin=0,ymax=0,ymin=0,zmax=0,zmin=0;
G4Transform3D translation_for_voxel_plane; // According to the solid's own frame
if (lv->GetNoDaughters()<=0) {
#ifdef G4DrawVoxelsDebug
G4cout << "**** !!! G4DrawVoxels::Draw_Voxels : a query for drawing voxelisation" << endl;
G4cout << " of a logical volume that has no (or <=0) daughter has been detected !!! ****" <<endl;
#endif
return;
}
//Let's get the data for the voxelisation
solid->CalculateExtent(kXAxis,limit,G4AffineTransform(),xmin,xmax); //G4AffineTransform() is identity
solid->CalculateExtent(kYAxis,limit,G4AffineTransform(),ymin,ymax); //extents according to the axis of the local frame
solid->CalculateExtent(kZAxis,limit,G4AffineTransform(),zmin,zmax);
dx=xmax-xmin;
dy=ymax-ymin;
dz=zmax-zmin;
//Preparing the colored bounding polyhedronBox for the pVolume
G4PolyhedronBox bounding_polyhedronBox(dx*0.5,dy*0.5,dz*0.5);
bounding_polyhedronBox.SetVisAttributes(&fBoundingBoxVisAttributes);
G4ThreeVector t_centerofBoundingBox((xmin+xmax)*0.5,(ymin+ymax)*0.5,(zmin+zmax)*0.5);
//ppl->resize(ppl->entries()+1); //manual resize to avoid Rogue grabbing RW_DEFAULT
ppl->insert(G4PlacedPolyhedron(bounding_polyhedronBox,G4Translate3D(t_centerofBoundingBox)));
G4ThreeVector t_FirstCenterofVoxelPlane;
const G4VisAttributes* voxelsVisAttributes;
G4ThreeVector unit_translation_vector;
G4ThreeVector current_translation_vector;
switch(header->GetAxis())
{
case kXAxis:
dx=voxel_width;
unit_translation_vector=G4ThreeVector(1,0,0);
t_FirstCenterofVoxelPlane=G4ThreeVector(xmin,(ymin+ymax)*0.5,(zmin+zmax)*0.5);
voxelsVisAttributes=&fVoxelsVisAttributes[0];
break;
case kYAxis:
dy=voxel_width;
t_FirstCenterofVoxelPlane=G4ThreeVector((xmin+xmax)*0.5,ymin,(zmin+zmax)*0.5);
unit_translation_vector=G4ThreeVector(0,1,0);
voxelsVisAttributes=&fVoxelsVisAttributes[1];
break;
case kZAxis:
dz=voxel_width;
t_FirstCenterofVoxelPlane=G4ThreeVector((xmin+xmax)*0.5,(ymin+ymax)*0.5,zmin);
unit_translation_vector=G4ThreeVector(0,0,1);
voxelsVisAttributes=&fVoxelsVisAttributes[2];
break;
default:
//erreur interne
/************************/
G4cout << "PANIC: in Draw_Voxels:DrawVoxels(...) header is decayed." <<endl;
G4cout << "header->GetAxis returns an invalid axis." <<endl;
/************************/
break;
};
G4PolyhedronBox voxel_plane(dx*0.5,dy*0.5,dz*0.5);
voxel_plane.SetVisAttributes(voxelsVisAttributes);
G4SmartVoxelProxy* slice=header->GetSlice(0);
G4int slice_no=0,no_slices=header->GetNoSlices();
G4double beginning=header->GetMinExtent(),step=(header->GetMaxExtent()-beginning)/no_slices;
#ifdef G4DrawVoxelsDebug
G4cout << " Axis of the voxelisation:" << header->GetAxis();
G4cout << " No slices of the voxelisation:" << header->GetNoSlices();
G4cout << " step:" << step <<endl;
#endif
while (slice_no<no_slices){
#ifdef G4DrawVoxelsDebug
G4cout << " slice_no:" << slice_no;
G4cout << " header/node:" << slice->IsHeader() <<endl;
#endif
if (slice->IsHeader()){
G4VoxelLimits newlimit(limit);
newlimit.AddLimit(header->GetAxis(),beginning+step*slice_no,
beginning+step*(slice->GetHeader()->GetMaxEquivalentSliceNo()+1));
ComputeVoxelPolyhedra(lv,slice->GetHeader(),newlimit,ppl);
}
current_translation_vector=unit_translation_vector;
current_translation_vector*=step*slice_no;
//ppl->resize(ppl->entries()+1); //manual resize to avoid Rogue grabbing RW_DEFAULT
ppl->insert(G4PlacedPolyhedron(voxel_plane,G4Translate3D(current_translation_vector+t_FirstCenterofVoxelPlane)));
slice_no=(slice->IsHeader()?slice->GetHeader()->GetMaxEquivalentSliceNo()+1
:slice->GetNode()->GetMaxEquivalentSliceNo()+1);
slice=header->GetSlice(slice_no);
}
}//end of ComputeVoxelPolyhedra...
//######################################################################################################################
//Private Constructor
G4DrawVoxels::G4DrawVoxels(){
fVoxelsVisAttributes[0].SetColour(G4Colour(1.,0.,0.));
fVoxelsVisAttributes[1].SetColour(G4Colour(0.,1.,0.));
fVoxelsVisAttributes[2].SetColour(G4Colour(0.,0.,1.));
fBoundingBoxVisAttributes.SetColour(G4Colour(.3,0.,.2));
}
G4AffineTransform G4DrawVoxels::GetAbsoluteTransformation(const G4VPhysicalVolume* pv) const{
//Initialisation of the transformation to be computed
G4AffineTransform transf; //default constructor ie Id
const G4VPhysicalVolume* current= pv;
const G4VPhysicalVolume* mother = pv->GetMother();
//Now we loop up to the world physical volume
while (mother!=NULL){
//the following has to be verified since it could be the inverse transformations to be used:
//the explanation is not clear in G4VPhysicalVolume.hh.
transf=G4AffineTransform(current->GetObjectRotation(),current->GetObjectTranslation())*transf;
current=mother;
mother=current->GetMother();
}
//current is the world volume
return transf;
}
G4PlacedPolyhedronList* G4DrawVoxels::CreatePlacedPolyhedra(const G4LogicalVolume* lv) const{
G4PlacedPolyhedronList* pplist=new G4PlacedPolyhedronList;
G4VoxelLimits limits; // Working object for recursive call.
ComputeVoxelPolyhedra(lv,lv->GetVoxelHeader(),limits,pplist);
return pplist; //it s up to the calling program to destroy it then!
}
void G4DrawVoxels::DrawVoxels(const G4LogicalVolume* lv) const{
G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance();
if (lv->GetNoDaughters()<=0) {
#ifdef G4DrawVoxelsDebug
G4cout << "**** !!! G4DrawVoxels::Draw_Voxels : a query for drawing voxelisation" << endl;
G4cout << " of a logical volume that has no (or <=0) daughter has been detected !!! ****" <<endl;
#endif
return;
}
//Computing the transformation according to the world volume
//(the drawing is directly in the world volume while the axis are relative to the mother volume of lv's daughter.)
G4AffineTransform transf=GetAbsoluteTransformation(lv->GetDaughter(0)->GetMother());
//in the hope that all daughters have same mother
//and that the 0th is indeed the first to be filled.
//G4Transform3D transf3D=GetAbsolute3DTransformation(lv->GetDaughter(0)->GetMother());
G4Transform3D transf3D(transf.NetRotation(),transf.NetTranslation());
G4PlacedPolyhedronList* pplist=CreatePlacedPolyhedra(lv);
if(pVVisManager) {
//Drawing the bounding and voxel polyhedra for the pVolume
for (G4int i=0;i<pplist->entries();i++)
pVVisManager->Draw((*pplist)(i).GetPolyhedron(),(*pplist)(i).GetTransform()*transf3D);
}
else G4cout << "@@@@ void G4DrawVoxels::DrawVoxels(const G4LogicalVolume*) pVVisManager is null! @@@@" <<endl;
delete pplist;
}
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4GeometryManager.cc,v 1.1 1999/01/07 16:07:19 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4GeometryManager.cc,v 1.1.12.1 1999/12/07 20:48:13 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// class G4GeometryManager
//
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4LogicalVolume.cc,v 1.2 1999/02/15 10:58:17 japost Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4LogicalVolume.cc,v 1.2.10.1 1999/12/07 20:48:13 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// class G4LogicalVolume Implementation
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4LogicalVolumeStore.cc,v 1.2 1999/05/10 17:08:53 fbehner Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4LogicalVolumeStore.cc,v 1.3.2.1 1999/12/07 20:48:13 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// G4LogicalVolumeStore
//
@@ -20,7 +20,7 @@
// Protected constructor: Construct underlying container with
// initial size of 100 entries
G4LogicalVolumeStore::G4LogicalVolumeStore() : RWTPtrOrderedVector<G4LogicalVolume>(100)
G4LogicalVolumeStore::G4LogicalVolumeStore() : G4RWTPtrOrderedVector<G4LogicalVolume>(100)
{
}
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4PVParameterised.cc,v 1.1 1999/01/07 16:07:20 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4PVParameterised.cc,v 1.1.12.1 1999/12/07 20:48:13 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// class G4PVParameterised
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4PVPlacement.cc,v 1.1 1999/01/07 16:07:20 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4PVPlacement.cc,v 1.1.12.1 1999/12/07 20:48:13 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// class G4PVPlacement Implementation
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4PVReplica.cc,v 1.1 1999/01/07 16:07:20 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4PVReplica.cc,v 1.1.12.1 1999/12/07 20:48:13 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// class G4PVReplica Implementation
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4PhysicalVolumeStore.cc,v 1.2 1999/05/10 17:08:52 fbehner Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4PhysicalVolumeStore.cc,v 1.3.2.1 1999/12/07 20:48:13 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// G4PhysicalVolumeStore
//
@@ -20,7 +20,7 @@
// Protected constructor: Construct underlying container with
// initial size of 100 entries
G4PhysicalVolumeStore::G4PhysicalVolumeStore() : RWTPtrOrderedVector<G4VPhysicalVolume>(100)
G4PhysicalVolumeStore::G4PhysicalVolumeStore() : G4RWTPtrOrderedVector<G4VPhysicalVolume>(100)
{
}
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4SmartVoxelHeader.cc,v 1.4 1999/06/04 17:26:37 sgiani Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4SmartVoxelHeader.cc,v 1.4.10.1 1999/12/07 20:48:14 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// class G4SmartVoxelHeader
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4SmartVoxelNode.cc,v 1.1 1999/01/07 16:07:21 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4SmartVoxelNode.cc,v 1.1.12.1 1999/12/07 20:48:14 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// Class G4SmartVoxelNode
//
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4SolidStore.cc,v 1.2 1999/05/18 15:26:56 stesting Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4SolidStore.cc,v 1.3.2.1 1999/12/07 20:48:14 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// G4SolidStore
//
@@ -20,7 +20,7 @@
// Protected constructor: Construct underlying container with
// initial size of 100 entries
G4SolidStore::G4SolidStore() : RWTPtrOrderedVector<G4VSolid>(100)
G4SolidStore::G4SolidStore() : G4RWTPtrOrderedVector<G4VSolid>(100)
{
}
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4VPVParameterisation.cc,v 1.1 1999/01/07 16:07:22 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4VPVParameterisation.cc,v 1.1.12.1 1999/12/07 20:48:14 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// Default implementations for Parameterisations that do not
// parameterise solid and/or material
@@ -1,15 +1,18 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4VPhysicalVolume.cc,v 1.1 1999/01/07 16:07:22 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4VPhysicalVolume.cc,v 1.2.4.1 1999/12/07 20:48:15 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// class G4VPhysicalVolume Implementation
// 09.11.99 J.Apostolakis Made GetObjectRotation() non-inline (it uses static)
// To be made obsolecent, in favour of more robust
// GetObjectRotationValue()
#include "G4VPhysicalVolume.hh"
@@ -38,3 +41,21 @@ G4VPhysicalVolume::~G4VPhysicalVolume()
G4PhysicalVolumeStore::DeRegister(this);
}
G4RotationMatrix* G4VPhysicalVolume::GetObjectRotation() const
{
static G4RotationMatrix aRotM;
static G4RotationMatrix IdentityRM; // Never changed (from "1")
G4RotationMatrix* retval;
// Insure against frot being a null pointer
if(frot)
{
aRotM= frot->inverse();
retval= &aRotM;
}
else
{
retval= &IdentityRM;
}
return retval;
}
+15 -3
View File
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4VSolid.cc,v 1.1 1999/01/07 16:07:22 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4VSolid.cc,v 1.2.4.1 1999/12/07 20:48:15 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// class G4VSolid
//
@@ -306,3 +306,15 @@ void G4VSolid::ClipPolygonToSimpleLimits(G4ThreeVectorList& pPolygon,
}
}
const G4VSolid* G4VSolid::GetConstituentSolid(G4int no) const
{ return 0; }
G4VSolid* G4VSolid::GetConstituentSolid(G4int no)
{ return 0; }
const G4DisplacedSolid* G4VSolid::GetDisplacedSolidPtr() const
{ return 0; }
G4DisplacedSolid* G4VSolid::GetDisplacedSolidPtr()
{ return 0; }
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4VoxelLimits.cc,v 1.1 1999/01/07 16:07:22 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4VoxelLimits.cc,v 1.1.12.1 1999/12/07 20:48:15 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// class G4VoxelLimits
//