Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4VPhysicalVolume Class Referenceabstract

#include <G4VPhysicalVolume.hh>

Inheritance diagram for G4VPhysicalVolume:
Collaboration diagram for G4VPhysicalVolume:

Public Member Functions

 G4VPhysicalVolume (G4RotationMatrix *pRot, const G4ThreeVector &tlate, const G4String &pName, G4LogicalVolume *pLogical, G4VPhysicalVolume *pMother)
 
virtual ~G4VPhysicalVolume ()
 
G4bool operator== (const G4VPhysicalVolume &p) const
 
G4RotationMatrixGetObjectRotation () const
 
G4RotationMatrix GetObjectRotationValue () const
 
G4ThreeVector GetObjectTranslation () const
 
const G4RotationMatrixGetFrameRotation () const
 
G4ThreeVector GetFrameTranslation () const
 
const G4ThreeVectorGetTranslation () const
 
const G4RotationMatrixGetRotation () const
 
void SetTranslation (const G4ThreeVector &v)
 
G4RotationMatrixGetRotation ()
 
void SetRotation (G4RotationMatrix *)
 
G4LogicalVolumeGetLogicalVolume () const
 
void SetLogicalVolume (G4LogicalVolume *pLogical)
 
G4LogicalVolumeGetMotherLogical () const
 
void SetMotherLogical (G4LogicalVolume *pMother)
 
const G4StringGetName () const
 
void SetName (const G4String &pName)
 
EVolume VolumeType () const
 
virtual G4int GetMultiplicity () const
 
virtual G4bool IsMany () const =0
 
virtual G4int GetCopyNo () const =0
 
virtual void SetCopyNo (G4int CopyNo)=0
 
virtual G4bool IsReplicated () const =0
 
virtual G4bool IsParameterised () const =0
 
virtual G4VPVParameterisationGetParameterisation () const =0
 
virtual void GetReplicationData (EAxis &axis, G4int &nReplicas, G4double &width, G4double &offset, G4bool &consuming) const =0
 
virtual G4bool IsRegularStructure () const =0
 
virtual G4int GetRegularStructureId () const =0
 
virtual G4bool CheckOverlaps (G4int res=1000, G4double tol=0., G4bool verbose=true, G4int errMax=1)
 
 G4VPhysicalVolume (__void__ &)
 
G4int GetInstanceID () const
 

Static Public Member Functions

static const G4PVManagerGetSubInstanceManager ()
 

Protected Member Functions

void InitialiseWorker (G4VPhysicalVolume *pMasterObject, G4RotationMatrix *pRot, const G4ThreeVector &tlate)
 
void TerminateWorker (G4VPhysicalVolume *pMasterObject)
 

Protected Attributes

G4int instanceID
 

Static Protected Attributes

static G4GEOM_DLL G4PVManager subInstanceManager
 

Detailed Description

Definition at line 82 of file G4VPhysicalVolume.hh.

Constructor & Destructor Documentation

G4VPhysicalVolume::G4VPhysicalVolume ( G4RotationMatrix pRot,
const G4ThreeVector tlate,
const G4String pName,
G4LogicalVolume pLogical,
G4VPhysicalVolume pMother 
)

Definition at line 52 of file G4VPhysicalVolume.cc.

57  : flogical(pLogical),
58  fname(pName), flmother(0)
59 {
61 
62  this->SetRotation( pRot ); // G4MT_rot = pRot;
63  this->SetTranslation( tlate ); // G4MT_trans = tlate;
64 
65  // Initialize 'Shadow' data structure - for use by object persistency
66  pvdata = new G4PVData();
67  pvdata->frot = pRot;
68  pvdata->ftrans = G4ThreeVector(tlate);
69 
71 }
CLHEP::Hep3Vector G4ThreeVector
G4ThreeVector ftrans
static void Register(G4VPhysicalVolume *pSolid)
G4int CreateSubInstance()
static G4GEOM_DLL G4PVManager subInstanceManager
void SetRotation(G4RotationMatrix *)
void SetTranslation(const G4ThreeVector &v)
G4RotationMatrix * frot

Here is the call graph for this function:

G4VPhysicalVolume::~G4VPhysicalVolume ( )
virtual

Definition at line 88 of file G4VPhysicalVolume.cc.

89 {
90  delete pvdata;
92 }
static void DeRegister(G4VPhysicalVolume *pSolid)

Here is the call graph for this function:

G4VPhysicalVolume::G4VPhysicalVolume ( __void__ &  )

Definition at line 76 of file G4VPhysicalVolume.cc.

77  : flogical(0), fname(""), flmother(0), pvdata(0)
78 {
79  // Register to store
80  //
82 
84 }
static void Register(G4VPhysicalVolume *pSolid)
G4int CreateSubInstance()
static G4GEOM_DLL G4PVManager subInstanceManager

Here is the call graph for this function:

Member Function Documentation

G4bool G4VPhysicalVolume::CheckOverlaps ( G4int  res = 1000,
G4double  tol = 0.,
G4bool  verbose = true,
G4int  errMax = 1 
)
virtual

Reimplemented in G4PVPlacement, and G4PVParameterised.

Definition at line 203 of file G4VPhysicalVolume.cc.

204 {
205  return false;
206 }

Here is the caller graph for this function:

virtual G4int G4VPhysicalVolume::GetCopyNo ( ) const
pure virtual

Implemented in G4PVReplica, G4ReplicatedSlice, G4PVPlacement, and G4PVDivision.

Here is the caller graph for this function:

const G4RotationMatrix * G4VPhysicalVolume::GetFrameRotation ( ) const

Definition at line 190 of file G4VPhysicalVolume.cc.

191 {
192  return G4MT_rot;
193 }
#define G4MT_rot

Here is the caller graph for this function:

G4ThreeVector G4VPhysicalVolume::GetFrameTranslation ( ) const

Definition at line 195 of file G4VPhysicalVolume.cc.

196 {
197  return -G4MT_trans;
198 }
#define G4MT_trans
G4int G4VPhysicalVolume::GetInstanceID ( ) const
inline
G4LogicalVolume* G4VPhysicalVolume::GetLogicalVolume ( ) const
inline
G4LogicalVolume* G4VPhysicalVolume::GetMotherLogical ( ) const
inline

Here is the caller graph for this function:

G4int G4VPhysicalVolume::GetMultiplicity ( ) const
virtual

Reimplemented in G4PVReplica.

Definition at line 127 of file G4VPhysicalVolume.cc.

128 {
129  return 1;
130 }

Here is the caller graph for this function:

const G4String& G4VPhysicalVolume::GetName ( ) const
inline
G4RotationMatrix * G4VPhysicalVolume::GetObjectRotation ( ) const

Definition at line 157 of file G4VPhysicalVolume.cc.

158 {
159  static G4RotationMatrix aRotM;
160  static G4RotationMatrix IdentityRM;
161 
162  G4RotationMatrix* retval = &IdentityRM;
163 
164  // Insure against frot being a null pointer
165  if(this->GetRotation())
166  {
167  aRotM = GetRotation()->inverse();
168  retval= &aRotM;
169  }
170  return retval;
171 }
const G4RotationMatrix * GetRotation() const
HepRotation inverse() const

Here is the call graph for this function:

G4RotationMatrix G4VPhysicalVolume::GetObjectRotationValue ( ) const

Definition at line 173 of file G4VPhysicalVolume.cc.

174 {
175  G4RotationMatrix aRotM; // Initialised to identity
176 
177  // Insure against G4MT_rot being a null pointer
178  if(G4MT_rot)
179  {
180  aRotM= G4MT_rot->inverse();
181  }
182  return aRotM;
183 }
#define G4MT_rot

Here is the caller graph for this function:

G4ThreeVector G4VPhysicalVolume::GetObjectTranslation ( ) const

Definition at line 185 of file G4VPhysicalVolume.cc.

186 {
187  return G4MT_trans;
188 }
#define G4MT_trans

Here is the caller graph for this function:

virtual G4VPVParameterisation* G4VPhysicalVolume::GetParameterisation ( ) const
pure virtual

Implemented in G4PVReplica, G4PVPlacement, G4ReplicatedSlice, G4PVDivision, and G4PVParameterised.

Here is the caller graph for this function:

virtual G4int G4VPhysicalVolume::GetRegularStructureId ( ) const
pure virtual

Implemented in G4PVReplica, G4PVPlacement, G4ReplicatedSlice, and G4PVDivision.

Here is the caller graph for this function:

virtual void G4VPhysicalVolume::GetReplicationData ( EAxis axis,
G4int nReplicas,
G4double width,
G4double offset,
G4bool consuming 
) const
pure virtual

Implemented in G4PVReplica, G4PVPlacement, G4ReplicatedSlice, G4PVDivision, and G4PVParameterised.

Here is the caller graph for this function:

const G4RotationMatrix * G4VPhysicalVolume::GetRotation ( ) const

Definition at line 142 of file G4VPhysicalVolume.cc.

143 {
144  return G4MT_rot;
145 }
#define G4MT_rot

Here is the caller graph for this function:

G4RotationMatrix * G4VPhysicalVolume::GetRotation ( )

Definition at line 147 of file G4VPhysicalVolume.cc.

148 {
149  return G4MT_rot;
150 }
#define G4MT_rot
const G4PVManager & G4VPhysicalVolume::GetSubInstanceManager ( )
static

Definition at line 122 of file G4VPhysicalVolume.cc.

123 {
124  return subInstanceManager;
125 }
static G4GEOM_DLL G4PVManager subInstanceManager

Here is the caller graph for this function:

const G4ThreeVector & G4VPhysicalVolume::GetTranslation ( ) const

Definition at line 132 of file G4VPhysicalVolume.cc.

133 {
134  return G4MT_trans;
135 }
#define G4MT_trans

Here is the caller graph for this function:

void G4VPhysicalVolume::InitialiseWorker ( G4VPhysicalVolume pMasterObject,
G4RotationMatrix pRot,
const G4ThreeVector tlate 
)
protected

Definition at line 101 of file G4VPhysicalVolume.cc.

104 {
106 
107  this->SetRotation( pRot ); // G4MT_rot = pRot;
108  this->SetTranslation( tlate ); // G4MT_trans = tlate;
109  // G4PhysicalVolumeStore::Register(this);
110 }
static G4GEOM_DLL G4PVManager subInstanceManager
void SetRotation(G4RotationMatrix *)
void SlaveCopySubInstanceArray()
void SetTranslation(const G4ThreeVector &v)

Here is the call graph for this function:

Here is the caller graph for this function:

virtual G4bool G4VPhysicalVolume::IsMany ( ) const
pure virtual
virtual G4bool G4VPhysicalVolume::IsParameterised ( ) const
pure virtual

Implemented in G4PVReplica, G4PVPlacement, G4ReplicatedSlice, G4PVDivision, and G4PVParameterised.

Here is the caller graph for this function:

virtual G4bool G4VPhysicalVolume::IsRegularStructure ( ) const
pure virtual

Implemented in G4PVReplica, G4PVPlacement, G4ReplicatedSlice, and G4PVDivision.

Here is the caller graph for this function:

virtual G4bool G4VPhysicalVolume::IsReplicated ( ) const
pure virtual

Implemented in G4PVReplica, G4PVPlacement, G4ReplicatedSlice, and G4PVDivision.

Here is the caller graph for this function:

G4bool G4VPhysicalVolume::operator== ( const G4VPhysicalVolume p) const
inline
virtual void G4VPhysicalVolume::SetCopyNo ( G4int  CopyNo)
pure virtual

Implemented in G4PVReplica, G4ReplicatedSlice, G4PVPlacement, and G4PVDivision.

Here is the caller graph for this function:

void G4VPhysicalVolume::SetLogicalVolume ( G4LogicalVolume pLogical)
inline
void G4VPhysicalVolume::SetMotherLogical ( G4LogicalVolume pMother)
inline

Here is the caller graph for this function:

void G4VPhysicalVolume::SetName ( const G4String pName)
inline

Here is the caller graph for this function:

void G4VPhysicalVolume::SetRotation ( G4RotationMatrix pRot)

Definition at line 152 of file G4VPhysicalVolume.cc.

153 {
154  G4MT_rot=pRot;
155 }
#define G4MT_rot

Here is the caller graph for this function:

void G4VPhysicalVolume::SetTranslation ( const G4ThreeVector v)

Definition at line 137 of file G4VPhysicalVolume.cc.

138 {
139  G4MT_trans=vec;
140 }
#define G4MT_trans

Here is the caller graph for this function:

void G4VPhysicalVolume::TerminateWorker ( G4VPhysicalVolume pMasterObject)
protected

Definition at line 116 of file G4VPhysicalVolume.cc.

117 {
118 }
EVolume G4VPhysicalVolume::VolumeType ( ) const
inline

Member Data Documentation

G4int G4VPhysicalVolume::instanceID
protected

Definition at line 228 of file G4VPhysicalVolume.hh.

G4PVManager G4VPhysicalVolume::subInstanceManager
staticprotected

Definition at line 231 of file G4VPhysicalVolume.hh.


The documentation for this class was generated from the following files: