Import Geant4 3.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 15:55:53 +02:00
parent e7d7193284
commit cfcb558cfe
3050 changed files with 91703 additions and 48310 deletions
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4AffineTransform.hh,v 1.3 2000/04/20 16:49:46 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// class G4AffineTransform
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4AffineTransform.icc,v 1.3 1999/12/15 14:49:50 gunter Exp $
// GEANT4 tag $Name: geant4-02-00 $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// G4AffineTransformation Inline implementation
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4DrawVoxels.hh,v 1.9 2000/06/06 13:18:55 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// class G4DrawVoxels
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4GeometryManager.hh,v 1.3 2000/04/20 16:49:46 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// GEANT4 tag $Name: geant4-03-00 $
//
// class G4GeometryManager
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LogicalSurface.hh,v 1.3 2000/04/20 16:49:46 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4LogicalSurface.hh,v 1.4 2000/11/01 15:39:32 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
////////////////////////////////////////////////////////////////////////
// Class G4LogicalSurface
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4LogicalSurface.icc,v 1.3 2000/04/20 16:49:46 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// GEANT4 tag $Name: geant4-03-00 $
//
////////////////////////////////////////////////////////////////////////
// Surface Class Inline Methods
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LogicalVolume.hh,v 1.5 2000/04/20 16:49:46 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4LogicalVolume.hh,v 1.6 2000/11/01 15:39:32 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// class G4LogicalVolume
@@ -112,33 +112,33 @@ class G4LogicalVolume
// Destructor. Removes the logical volume from the logical volume Store.
// NOT virtual, since not meant to act as base class.
G4String GetName() const;
void SetName(const G4String& pName);
inline G4String GetName() const;
inline void SetName(const G4String& pName);
// Returns and sets the name of the logical volume.
G4int GetNoDaughters() const;
inline G4int GetNoDaughters() const;
// Returns the number of daughters (0 to n).
G4VPhysicalVolume* GetDaughter(const G4int i) const;
inline G4VPhysicalVolume* GetDaughter(const G4int i) const;
// Return the ith daughter. Note numbering starts from 0,
// and no bounds checking is performed.
void AddDaughter(G4VPhysicalVolume* p);
inline void AddDaughter(G4VPhysicalVolume* p);
// Add the volume p as a daughter of the current logical volume.
G4bool IsDaughter(const G4VPhysicalVolume* p) const;
inline G4bool IsDaughter(const G4VPhysicalVolume* p) const;
// Returns true is the volume p is a daughter of the current
// logical volume.
void RemoveDaughter(const G4VPhysicalVolume* p);
inline void RemoveDaughter(const G4VPhysicalVolume* p);
// Remove the volume p from the List of daughter of the current
// logical volume.
G4VSolid* GetSolid() const;
void SetSolid(G4VSolid *pSolid);
inline G4VSolid* GetSolid() const;
inline void SetSolid(G4VSolid *pSolid);
// Gets and sets the current solid.
G4Material* GetMaterial() const;
void SetMaterial(G4Material *pMaterial);
inline G4Material* GetMaterial() const;
inline void SetMaterial(G4Material *pMaterial);
// Gets and sets the current material.
G4FieldManager* GetFieldManager() const;
inline G4FieldManager* GetFieldManager() const;
// Gets current FieldManager.
void SetFieldManager(G4FieldManager *pFieldMgr, G4bool forceToAllDaughters);
// Sets FieldManager and propagates it:
@@ -147,44 +147,44 @@ class G4LogicalVolume
// ii) to all daughters
// if forceToAllDaughters=true
G4VSensitiveDetector* GetSensitiveDetector() const;
inline G4VSensitiveDetector* GetSensitiveDetector() const;
// Gets current SensitiveDetector.
void SetSensitiveDetector(G4VSensitiveDetector *pSDetector);
inline void SetSensitiveDetector(G4VSensitiveDetector *pSDetector);
// Sets SensitiveDetector (can be NULL).
G4UserLimits* GetUserLimits() const;
void SetUserLimits(G4UserLimits *pULimits);
inline G4UserLimits* GetUserLimits() const;
inline void SetUserLimits(G4UserLimits *pULimits);
// Gets and sets current UserLimits.
G4SmartVoxelHeader* GetVoxelHeader() const;
void SetVoxelHeader(G4SmartVoxelHeader *pVoxel);
inline G4SmartVoxelHeader* GetVoxelHeader() const;
inline void SetVoxelHeader(G4SmartVoxelHeader *pVoxel);
// Gets and sets current VoxelHeader.
G4double GetSmartless();
void SetSmartless(G4double s);
inline G4double GetSmartless();
inline void SetSmartless(G4double s);
// Gets and sets user defined optimisation quality.
G4bool operator == ( const G4LogicalVolume& lv) const;
// Equality defined by address only- return true if objects are at
// same address, else false.
const G4VisAttributes* GetVisAttributes () const;
void SetVisAttributes (const G4VisAttributes* pVA);
void SetVisAttributes (const G4VisAttributes& VA);
inline const G4VisAttributes* GetVisAttributes () const;
inline void SetVisAttributes (const G4VisAttributes* pVA);
inline void SetVisAttributes (const G4VisAttributes& VA);
// Gets and sets visualization attributes.
void BecomeEnvelopeForFastSimulation(G4FastSimulationManager* );
inline void BecomeEnvelopeForFastSimulation(G4FastSimulationManager* );
// Makes this an Envelope for given FastSimulationManager.
// Ensures that all its daughter volumes get it too - unless they
// have one already.
void ClearEnvelopeForFastSimulation(G4LogicalVolume* motherLV= 0);
// Erase volume's Envelope status and propagate the FastSimulationManager
// of its mother volume to itself and its daughters.
G4FastSimulationManager* GetFastSimulationManager () const;
inline G4FastSimulationManager* GetFastSimulationManager () const;
// Gets current FastSimulationManager pointer.
void SetBiasWeight (G4double w);
G4double GetBiasWeight() const;
inline void SetBiasWeight (G4double w);
inline G4double GetBiasWeight() const;
// Sets and gets bias weight.
private:
@@ -198,6 +198,10 @@ class G4LogicalVolume
G4LogicalVolume* FindMotherLogicalVolumeForEnvelope();
G4LogicalVolume(const G4LogicalVolume&);
G4LogicalVolume& operator=(const G4LogicalVolume&);
// Private copy-constructor and assignment operator.
private:
// Data members:
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LogicalVolume.icc,v 1.3 1999/12/15 14:49:51 gunter Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4LogicalVolume.icc,v 1.4 2000/11/01 15:39:33 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// class G4LogicalVolume Inline Implementation file
@@ -16,46 +16,55 @@
// 09.11.98 - J. Apostolakis: Changed MagneticField to FieldManager
// 12.02.99 - S.Giani: Added set/get methods for voxelization quality
inline G4String G4LogicalVolume::GetName() const
inline
G4String G4LogicalVolume::GetName() const
{
return fName;
}
inline void G4LogicalVolume::SetName(const G4String& pName)
inline
void G4LogicalVolume::SetName(const G4String& pName)
{
fName=pName;
}
inline G4FieldManager* G4LogicalVolume::GetFieldManager() const
inline
G4FieldManager* G4LogicalVolume::GetFieldManager() const
{
return fFieldManager;
}
inline G4int G4LogicalVolume::GetNoDaughters() const
inline
G4int G4LogicalVolume::GetNoDaughters() const
{
return fDaughters.entries();
}
inline G4VPhysicalVolume* G4LogicalVolume::GetDaughter(const G4int i) const
inline
G4VPhysicalVolume* G4LogicalVolume::GetDaughter(const G4int i) const
{
return fDaughters(i);
}
inline G4FastSimulationManager*
G4LogicalVolume::GetFastSimulationManager () const
inline
G4FastSimulationManager* G4LogicalVolume::GetFastSimulationManager () const
{
return fFastSimulationManager;
}
inline void G4LogicalVolume::AddDaughter(G4VPhysicalVolume* pNewDaughter)
inline
void G4LogicalVolume::AddDaughter(G4VPhysicalVolume* pNewDaughter)
{
// manual resize operation to avoid Rogue grabbing RW_DEFAULT
// manual resize operation to avoid Rogue grabbing RW_DEFAULT
fDaughters.resize(fDaughters.entries()+1);
fDaughters.insert(pNewDaughter);
// Propagates the mother's FastSimulationManager pointer. If we are in
// the World logical volume, propagates only if pointer != 0.
// (perhaps someone would like to parametrize all the World volume
// for a particle type, why not ?).
// Propagates the mother's FastSimulationManager pointer. If we are in
// the World logical volume, propagates only if pointer != 0.
// (perhaps someone would like to parametrize all the World volume
// for a particle type, why not ?).
G4VPhysicalVolume *myPhysical= pNewDaughter->GetMother();
G4VPhysicalVolume *pMotherPhys;
G4LogicalVolume *pDaughterLogical;
@@ -68,124 +77,153 @@ inline void G4LogicalVolume::AddDaughter(G4VPhysicalVolume* pNewDaughter)
( pMotherPhys==0) && (fFastSimulationManager!=0))
{
if(pDaughterLogical->GetFastSimulationManager() != fFastSimulationManager)
pDaughterLogical->
SetFastSimulationManager(fFastSimulationManager,FALSE);
pDaughterLogical->SetFastSimulationManager(fFastSimulationManager,
FALSE);
}
else {
else
{
pDaughterLogical->SetFastSimulationManager(NULL,FALSE);
}
}
// Propagate the Field Manager, if the daughter has no field Manager.
pDaughterLogical = pNewDaughter->GetLogicalVolume();
G4FieldManager* pDaughterFieldManager = pDaughterLogical->GetFieldManager();
// Propagate the Field Manager, if the daughter has no field Manager.
if( pDaughterFieldManager == 0 ){
pDaughterLogical->SetFieldManager(fFieldManager,
true);
pDaughterLogical = pNewDaughter->GetLogicalVolume();
G4FieldManager* pDaughterFieldManager =
pDaughterLogical->GetFieldManager();
if( pDaughterFieldManager == 0 )
{
pDaughterLogical->SetFieldManager(fFieldManager, true);
}
}
inline G4bool G4LogicalVolume::IsDaughter(const G4VPhysicalVolume* p) const
inline
G4bool G4LogicalVolume::IsDaughter(const G4VPhysicalVolume* p) const
{
return fDaughters.contains(p);
}
inline void G4LogicalVolume::RemoveDaughter(const G4VPhysicalVolume* p)
inline
void G4LogicalVolume::RemoveDaughter(const G4VPhysicalVolume* p)
{
fDaughters.remove(p);
fDaughters.resize(fDaughters.entries());
}
inline G4VSolid* G4LogicalVolume::GetSolid() const
inline
G4VSolid* G4LogicalVolume::GetSolid() const
{
return fSolid;
}
inline void G4LogicalVolume::SetSolid(G4VSolid *pSolid)
inline
void G4LogicalVolume::SetSolid(G4VSolid *pSolid)
{
assert(pSolid != 0);
fSolid=pSolid;
}
inline G4Material* G4LogicalVolume::GetMaterial() const
inline
G4Material* G4LogicalVolume::GetMaterial() const
{
return fMaterial;
}
inline void G4LogicalVolume::SetMaterial(G4Material *pMaterial)
inline
void G4LogicalVolume::SetMaterial(G4Material *pMaterial)
{
// assert(pMaterial != 0);
fMaterial=pMaterial;
}
inline G4VSensitiveDetector* G4LogicalVolume::GetSensitiveDetector() const
inline
G4VSensitiveDetector* G4LogicalVolume::GetSensitiveDetector() const
{
return fSensitiveDetector;
}
inline void G4LogicalVolume::SetSensitiveDetector(G4VSensitiveDetector *pSDetector)
inline
void G4LogicalVolume::SetSensitiveDetector(G4VSensitiveDetector *pSDetector)
{
fSensitiveDetector=pSDetector;
}
inline G4UserLimits* G4LogicalVolume::GetUserLimits() const
inline
G4UserLimits* G4LogicalVolume::GetUserLimits() const
{
return fUserLimits;
}
inline void G4LogicalVolume::SetUserLimits(G4UserLimits *pULimits)
inline
void G4LogicalVolume::SetUserLimits(G4UserLimits *pULimits)
{
fUserLimits=pULimits;
}
inline G4SmartVoxelHeader* G4LogicalVolume::GetVoxelHeader() const
inline
G4SmartVoxelHeader* G4LogicalVolume::GetVoxelHeader() const
{
return fVoxel;
}
inline void G4LogicalVolume::SetVoxelHeader(G4SmartVoxelHeader *pVoxel)
inline
void G4LogicalVolume::SetVoxelHeader(G4SmartVoxelHeader *pVoxel)
{
fVoxel=pVoxel;
}
inline G4double G4LogicalVolume::GetSmartless()
inline
G4double G4LogicalVolume::GetSmartless()
{
return fSmartless;
}
inline void G4LogicalVolume::SetSmartless(G4double s)
inline
void G4LogicalVolume::SetSmartless(G4double s)
{
fSmartless=s;
}
inline G4bool G4LogicalVolume::operator == ( const G4LogicalVolume& lv) const
inline
G4bool G4LogicalVolume::operator == ( const G4LogicalVolume& lv) const
{
return (this==&lv) ? true : false;
}
inline const G4VisAttributes* G4LogicalVolume::GetVisAttributes () const {
return fVisAttributes;
}
inline
const G4VisAttributes* G4LogicalVolume::GetVisAttributes () const
{
return fVisAttributes;
}
inline void G4LogicalVolume::SetVisAttributes (const G4VisAttributes* pVA) {
fVisAttributes = pVA;
}
inline
void G4LogicalVolume::SetVisAttributes (const G4VisAttributes* pVA)
{
fVisAttributes = pVA;
}
inline void G4LogicalVolume::SetVisAttributes (const G4VisAttributes& VA) {
fVisAttributes = &VA;
}
inline
void G4LogicalVolume::SetVisAttributes (const G4VisAttributes& VA)
{
fVisAttributes = &VA;
}
inline void
G4LogicalVolume::BecomeEnvelopeForFastSimulation(G4FastSimulationManager* pPA) {
SetFastSimulationManager(pPA,TRUE);
}
G4LogicalVolume::BecomeEnvelopeForFastSimulation(G4FastSimulationManager* pPA)
{
SetFastSimulationManager(pPA,TRUE);
}
inline void G4LogicalVolume::SetBiasWeight(G4double w)
{ fBiasWeight = w; }
inline G4double G4LogicalVolume::GetBiasWeight() const
{ return fBiasWeight; }
inline
void G4LogicalVolume::SetBiasWeight(G4double w)
{
fBiasWeight = w;
}
inline
G4double G4LogicalVolume::GetBiasWeight() const
{
return fBiasWeight;
}
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4LogicalVolumeStore.hh,v 1.4 2000/04/20 16:49:47 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// GEANT4 tag $Name: geant4-03-00 $
//
// class G4LogicalVolumeStore
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4PVParameterised.hh,v 1.3 2000/04/20 16:49:47 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4PVParameterised.hh,v 1.4 2000/11/01 15:39:33 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// class G4PVParameterised
@@ -49,6 +49,9 @@ class G4PVParameterised : public G4PVReplica
// Almost exactly similar to first constructor, changing only mother
// pointer's type to LogicalVolume.
virtual ~G4PVParameterised();
// Virtual empty destructor.
virtual G4VPVParameterisation* GetParameterisation() const;
// Returns the current pointer to the parameterisation.
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4PVPlacement.hh,v 1.3 2000/04/20 16:49:47 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4PVPlacement.hh,v 1.4 2000/11/01 15:39:33 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// class G4PVPlacement
@@ -93,7 +93,7 @@ class G4PVPlacement : public G4VPhysicalVolume
G4int pCopyNo);
// Utilises both variations above (from 2nd and 3rd constructor).
~G4PVPlacement();
virtual ~G4PVPlacement();
// Default destructor.
virtual G4int GetCopyNo() const;
@@ -117,14 +117,21 @@ class G4PVPlacement : public G4VPhysicalVolume
private:
G4bool fmany; // flag for booleans/MANY - not used
G4bool fallocatedRotM; // flag for allocation of Rotation Matrix
G4int fcopyNo; // for identification
static G4RotationMatrix* NewPtrRotMatrix(const G4RotationMatrix &RotMat);
// Auxiliary function for 2nd constructor (one with G4Transform3D).
// Creates a new RotMatrix on the heap (using "new") and copies
// its argument into it.
G4PVPlacement(const G4PVPlacement&);
G4PVPlacement& operator=(const G4PVPlacement&);
// Private copy constructor and assignement operator.
private:
G4bool fmany; // flag for booleans/MANY - not used
G4bool fallocatedRotM; // flag for allocation of Rotation Matrix
G4int fcopyNo; // for identification
};
#endif
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4PVReplica.hh,v 1.3 2000/04/20 16:49:47 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4PVReplica.hh,v 1.4 2000/11/01 15:39:33 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// class G4PVReplica
@@ -67,7 +67,7 @@
class G4PVReplica : public G4VPhysicalVolume
{
public:
public: // with description
G4PVReplica(const G4String& pName,
G4LogicalVolume* pLogical,
@@ -85,7 +85,7 @@ class G4PVReplica : public G4VPhysicalVolume
const G4double width,
const G4double offset=0);
~G4PVReplica();
virtual ~G4PVReplica();
virtual G4bool IsMany() const;
virtual G4int GetCopyNo() const;
@@ -106,6 +106,10 @@ class G4PVReplica : public G4VPhysicalVolume
const G4int nReplicas,
const G4double width,
const G4double offset);
G4PVReplica(const G4PVReplica&);
const G4PVReplica& operator=(const G4PVReplica&);
protected:
EAxis faxis;
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4PhysicalVolumeStore.hh,v 1.4 2000/04/20 16:49:47 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4PhysicalVolumeStore.hh,v 1.5 2000/11/01 15:39:33 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
// class G4PhysicalVolume
//
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4SmartVoxelHeader.hh,v 1.4 2000/04/20 16:49:47 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// GEANT4 tag $Name: geant4-03-00 $
//
// class G4SmartVoxelHeader
//
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4SmartVoxelHeader.icc,v 1.1 2000/04/20 16:49:47 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// G4SmartVoxelHeader Inline implementation
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4SmartVoxelNode.hh,v 1.4 2000/04/20 16:49:47 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// GEANT4 tag $Name: geant4-03-00 $
//
// class G4SmartVoxelNode
//
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4SmartVoxelNode.icc,v 1.1 2000/04/20 16:49:47 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// G4SmartVoxelNode Inline implementation
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4SmartVoxelProxy.hh,v 1.3 2000/04/20 16:49:47 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4SmartVoxelProxy.hh,v 1.4 2000/11/20 17:31:33 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
// class G4SmartVoxelProxy
//
@@ -67,8 +67,8 @@ class G4SmartVoxelProxy
private:
G4SmartVoxelNode* fNode;
G4SmartVoxelHeader* fHeader;
G4SmartVoxelNode* fNode;
};
#include "G4SmartVoxelProxy.icc"
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4SmartVoxelProxy.icc,v 1.1 2000/04/20 16:49:48 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// G4SmartVoxelProxy Inline implementation
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4SolidStore.hh,v 1.4 2000/04/20 16:49:48 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// GEANT4 tag $Name: geant4-03-00 $
//
// class G4SolidStore
//
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4VPVParameterisation.hh,v 1.3 2000/04/20 16:49:48 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// GEANT4 tag $Name: geant4-03-00 $
//
// class G4VPVParamterisation
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4VPhysicalVolume.hh,v 1.4 2000/04/20 16:49:48 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4VPhysicalVolume.hh,v 1.5 2000/11/01 15:39:33 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// class G4VPhysicalVolume
@@ -61,8 +61,8 @@ class G4VPhysicalVolume
virtual ~G4VPhysicalVolume();
// Destructor, will be subclassed. Removes volume from volume Store.
G4bool operator == (const G4VPhysicalVolume& p) const;
// Define equality by equal addresses only.
inline G4bool operator == (const G4VPhysicalVolume& p) const;
// Equality defined by equal addresses only.
// Access functions
@@ -70,44 +70,44 @@ class G4VPhysicalVolume
// between whether 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; // Obsolete
G4RotationMatrix GetObjectRotationValue() const; // Replacement
G4ThreeVector GetObjectTranslation() const;
G4RotationMatrix* GetObjectRotation() const; // Obsolete
inline G4RotationMatrix GetObjectRotationValue() const; // Replacement
inline G4ThreeVector GetObjectTranslation() const;
// Return the rotation/translation of the Object relative to the mother.
const G4RotationMatrix* GetFrameRotation() const;
G4ThreeVector GetFrameTranslation() const;
inline const G4RotationMatrix* GetFrameRotation() const;
inline G4ThreeVector GetFrameTranslation() const;
// Return the rotation/translation of the Frame used to position
// this volume in its mother volume (opposite of object rot/trans).
// Older access functions, that do not distinguish between frame/object!
const G4ThreeVector& GetTranslation() const;
const G4RotationMatrix* GetRotation() const;
inline const G4ThreeVector& GetTranslation() const;
inline const G4RotationMatrix* GetRotation() const;
// Old access functions, that do not distinguish between frame/object!
// They return the translation/rotation of the volume.
// Set functions
void SetTranslation(const G4ThreeVector &v);
G4RotationMatrix* GetRotation();
void SetRotation(G4RotationMatrix*);
inline void SetTranslation(const G4ThreeVector &v);
inline G4RotationMatrix* GetRotation();
inline void SetRotation(G4RotationMatrix*);
// NOT INTENDED FOR GENERAL USE.
// Non constant versions of above. Used to change transformation
// for replication/parameterisation mechanism.
G4LogicalVolume* GetLogicalVolume() const;
inline G4LogicalVolume* GetLogicalVolume() const;
// Return the associated logical volume.
void SetLogicalVolume(G4LogicalVolume *pLogical);
inline void SetLogicalVolume(G4LogicalVolume *pLogical);
// Set the logical volume. Must not be called when geometry closed.
G4VPhysicalVolume* GetMother() const;
inline G4VPhysicalVolume* GetMother() const;
// Return the current mother pointer.
void SetMother(G4VPhysicalVolume *pMother);
inline void SetMother(G4VPhysicalVolume *pMother);
// Set the mother volume. Must not be called when geometry closed.
G4String GetName() const;
inline G4String GetName() const;
// Return the volume's name.
void SetName(const G4String& pName);
inline void SetName(const G4String& pName);
// Set the volume's name.
// Functions required of subclasses
@@ -135,6 +135,12 @@ class G4VPhysicalVolume
// [Set the current mother pointer to refer to the specified mother,
// by calling SetMother]
private:
G4VPhysicalVolume(const G4VPhysicalVolume&);
G4VPhysicalVolume& operator=(const G4VPhysicalVolume&);
// Private copy constructor and assignment operator.
protected:
G4RotationMatrix *frot;
@@ -5,72 +5,87 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4VPhysicalVolume.icc,v 1.3 1999/12/15 14:49:51 gunter Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4VPhysicalVolume.icc,v 1.4 2000/11/01 15:39:33 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// class G4VPhysicalVolume Inline Implementation
//
// Define equality by equal addresses only.
inline G4bool G4VPhysicalVolume::operator == (const G4VPhysicalVolume& p) const
inline
G4bool G4VPhysicalVolume::operator == (const G4VPhysicalVolume& p) const
{
return (this==&p) ? true : false;
}
// Access functions
inline const G4ThreeVector& G4VPhysicalVolume::GetTranslation() const
inline
const G4ThreeVector& G4VPhysicalVolume::GetTranslation() const
{
return ftrans;
}
inline void G4VPhysicalVolume::SetTranslation(const G4ThreeVector &v)
inline
void G4VPhysicalVolume::SetTranslation(const G4ThreeVector &v)
{
ftrans=v;
}
inline const G4RotationMatrix* G4VPhysicalVolume::GetRotation() const
inline
const G4RotationMatrix* G4VPhysicalVolume::GetRotation() const
{
return frot;
}
inline G4RotationMatrix* G4VPhysicalVolume::GetRotation()
inline
G4RotationMatrix* G4VPhysicalVolume::GetRotation()
{
return frot;
}
inline void G4VPhysicalVolume::SetRotation(G4RotationMatrix *pRot)
inline
void G4VPhysicalVolume::SetRotation(G4RotationMatrix *pRot)
{
frot=pRot;
}
inline G4LogicalVolume* G4VPhysicalVolume::GetLogicalVolume() const
inline
G4LogicalVolume* G4VPhysicalVolume::GetLogicalVolume() const
{
return flogical;
}
inline void G4VPhysicalVolume::SetLogicalVolume(G4LogicalVolume *pLogical)
inline
void G4VPhysicalVolume::SetLogicalVolume(G4LogicalVolume *pLogical)
{
flogical=pLogical;
}
inline G4VPhysicalVolume* G4VPhysicalVolume::GetMother() const
inline
G4VPhysicalVolume* G4VPhysicalVolume::GetMother() const
{
return fmother;
}
inline void G4VPhysicalVolume::SetMother(G4VPhysicalVolume *pMother)
inline
void G4VPhysicalVolume::SetMother(G4VPhysicalVolume *pMother)
{
fmother=pMother;
}
inline G4String G4VPhysicalVolume::GetName() const
inline
G4String G4VPhysicalVolume::GetName() const
{
return fname;
}
inline void G4VPhysicalVolume::SetName(const G4String& pName)
inline
void G4VPhysicalVolume::SetName(const G4String& pName)
{
fname=pName;
}
inline G4RotationMatrix G4VPhysicalVolume::GetObjectRotationValue() const
inline
G4RotationMatrix G4VPhysicalVolume::GetObjectRotationValue() const
{
G4RotationMatrix aRotM; // Initialised to identity
@@ -81,15 +96,21 @@ inline G4RotationMatrix G4VPhysicalVolume::GetObjectRotationValue() const
}
return aRotM;
}
inline G4ThreeVector G4VPhysicalVolume::GetObjectTranslation() const
inline
G4ThreeVector G4VPhysicalVolume::GetObjectTranslation() const
{
return ftrans;
}
inline const G4RotationMatrix* G4VPhysicalVolume::GetFrameRotation() const
inline
const G4RotationMatrix* G4VPhysicalVolume::GetFrameRotation() const
{
return frot;
}
inline G4ThreeVector G4VPhysicalVolume::GetFrameTranslation() const
inline
G4ThreeVector G4VPhysicalVolume::GetFrameTranslation() const
{
return -ftrans;
}
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4VSolid.hh,v 1.6 2000/04/20 16:49:48 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4VSolid.hh,v 1.7 2000/11/01 15:39:33 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// class G4VSolid
@@ -76,7 +76,7 @@ class G4VSolid
virtual ~G4VSolid();
// Default destructor.
G4bool operator==( const G4VSolid& s) const;
inline G4bool operator==( const G4VSolid& s) const;
// Return true only if addresses are the same.
G4String GetName() const;
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4VSolid.icc,v 1.3 2000/04/20 16:49:48 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4VSolid.icc,v 1.4 2000/11/01 15:39:34 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// G4VSolid Inline implementation
@@ -17,15 +17,3 @@ G4bool G4VSolid::operator==( const G4VSolid& s) const
{
return (this==&s) ? true : false;
}
inline
G4Polyhedron* G4VSolid::CreatePolyhedron () const
{
return 0;
}
inline
G4NURBS* G4VSolid::CreateNURBS () const
{
return 0;
}
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4VTouchable.hh,v 1.3 2000/04/20 16:49:48 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4VTouchable.hh,v 1.4 2000/11/01 15:39:34 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// class G4VTouchable
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4VTouchable.icc,v 1.3 2000/04/20 16:49:48 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4VTouchable.icc,v 1.4 2000/11/01 15:39:34 gcosmo Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// class G4VTouchable Inline implementation
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4VoxelLimits.hh,v 1.4 2000/04/20 16:49:48 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// GEANT4 tag $Name: geant4-03-00 $
//
// class G4VoxelLimits
//
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4VoxelLimits.icc,v 1.1 2000/04/20 16:49:48 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// G4VoxelLimits Inline implementation
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: meshdefs.hh,v 1.3 2000/04/20 16:49:49 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// GEANT4 tag $Name: geant4-03-00 $
//
//
// Tube/Cone Meshing constants for extent calculations
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: voxeldefs.hh,v 1.4 2000/04/20 16:49:49 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
// GEANT4 tag $Name: geant4-03-00 $
//
//
//