Geant4  10.03.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups 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
 
G4RotationMatrix * GetObjectRotation () const
 
G4RotationMatrix GetObjectRotationValue () const
 
G4ThreeVector GetObjectTranslation () const
 
const G4RotationMatrix * GetFrameRotation () const
 
G4ThreeVector GetFrameTranslation () const
 
const G4ThreeVector & GetTranslation () const
 
const G4RotationMatrix * GetRotation () const
 
void SetTranslation (const G4ThreeVector &v)
 
G4RotationMatrix * GetRotation ()
 
void SetRotation (G4RotationMatrix *)
 
G4LogicalVolume * GetLogicalVolume () const
 
void SetLogicalVolume (G4LogicalVolume *pLogical)
 
G4LogicalVolume * GetMotherLogical () const
 
void SetMotherLogical (G4LogicalVolume *pMother)
 
const G4String & GetName () 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 G4VPVParameterisation * GetParameterisation () 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 G4PVManager & GetSubInstanceManager ()
 

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

Here is the caller graph for this function:

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:

Here is the caller 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

Implemented in G4PVReplica, G4PVPlacement, G4ReplicatedSlice, and G4PVDivision.

Here is the caller graph for this function:

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

Here is the caller graph for this function:

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
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: