Geant4  10.02.p03
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
 

Private Member Functions

 G4VPhysicalVolume (const G4VPhysicalVolume &)
 
G4VPhysicalVolume & operator= (const G4VPhysicalVolume &)
 

Private Attributes

G4LogicalVolume * flogical
 
G4String fname
 
G4LogicalVolume * flmother
 
G4PVData * pvdata
 

Detailed Description

Definition at line 82 of file G4VPhysicalVolume.hh.

Constructor & Destructor Documentation

◆ G4VPhysicalVolume() [1/3]

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 *)
G4LogicalVolume * flogical
void SetTranslation(const G4ThreeVector &v)
G4LogicalVolume * flmother
G4RotationMatrix * frot
Here is the call graph for this function:

◆ ~G4VPhysicalVolume()

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() [2/3]

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
G4LogicalVolume * flogical
G4LogicalVolume * flmother
Here is the call graph for this function:

◆ G4VPhysicalVolume() [3/3]

G4VPhysicalVolume::G4VPhysicalVolume ( const G4VPhysicalVolume &  )
private

Member Function Documentation

◆ CheckOverlaps()

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:

◆ GetCopyNo()

virtual G4int G4VPhysicalVolume::GetCopyNo ( ) const
pure virtual

Implemented in G4PVReplica, G4ReplicatedSlice, G4PVPlacement, and G4PVDivision.

Here is the caller graph for this function:

◆ GetFrameRotation()

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:

◆ GetFrameTranslation()

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:

◆ GetInstanceID()

G4int G4VPhysicalVolume::GetInstanceID ( ) const
inline

◆ GetLogicalVolume()

G4LogicalVolume* G4VPhysicalVolume::GetLogicalVolume ( ) const
inline

◆ GetMotherLogical()

G4LogicalVolume* G4VPhysicalVolume::GetMotherLogical ( ) const
inline
Here is the caller graph for this function:

◆ GetMultiplicity()

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:

◆ GetName()

const G4String& G4VPhysicalVolume::GetName ( ) const
inline

◆ GetObjectRotation()

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:

◆ GetObjectRotationValue()

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:

◆ GetObjectTranslation()

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:

◆ GetParameterisation()

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

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

Here is the caller graph for this function:

◆ GetRegularStructureId()

virtual G4int G4VPhysicalVolume::GetRegularStructureId ( ) const
pure virtual

Implemented in G4PVReplica, G4PVPlacement, G4ReplicatedSlice, and G4PVDivision.

Here is the caller graph for this function:

◆ GetReplicationData()

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:

◆ GetRotation() [1/2]

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:

◆ GetRotation() [2/2]

G4RotationMatrix * G4VPhysicalVolume::GetRotation ( )

Definition at line 147 of file G4VPhysicalVolume.cc.

148 {
149  return G4MT_rot;
150 }
#define G4MT_rot

◆ GetSubInstanceManager()

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:

◆ GetTranslation()

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:

◆ InitialiseWorker()

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:

◆ IsMany()

virtual G4bool G4VPhysicalVolume::IsMany ( ) const
pure virtual

Implemented in G4PVReplica, G4PVPlacement, G4ReplicatedSlice, and G4PVDivision.

Here is the caller graph for this function:

◆ IsParameterised()

virtual G4bool G4VPhysicalVolume::IsParameterised ( ) const
pure virtual

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

Here is the caller graph for this function:

◆ IsRegularStructure()

virtual G4bool G4VPhysicalVolume::IsRegularStructure ( ) const
pure virtual

Implemented in G4PVReplica, G4PVPlacement, G4ReplicatedSlice, and G4PVDivision.

Here is the caller graph for this function:

◆ IsReplicated()

virtual G4bool G4VPhysicalVolume::IsReplicated ( ) const
pure virtual

Implemented in G4PVReplica, G4PVPlacement, G4ReplicatedSlice, and G4PVDivision.

Here is the caller graph for this function:

◆ operator=()

G4VPhysicalVolume& G4VPhysicalVolume::operator= ( const G4VPhysicalVolume &  )
private

◆ operator==()

G4bool G4VPhysicalVolume::operator== ( const G4VPhysicalVolume &  p) const
inline

◆ SetCopyNo()

virtual void G4VPhysicalVolume::SetCopyNo ( G4int  CopyNo)
pure virtual

Implemented in G4PVReplica, G4ReplicatedSlice, G4PVPlacement, and G4PVDivision.

Here is the caller graph for this function:

◆ SetLogicalVolume()

void G4VPhysicalVolume::SetLogicalVolume ( G4LogicalVolume *  pLogical)
inline
Here is the caller graph for this function:

◆ SetMotherLogical()

void G4VPhysicalVolume::SetMotherLogical ( G4LogicalVolume *  pMother)
inline
Here is the caller graph for this function:

◆ SetName()

void G4VPhysicalVolume::SetName ( const G4String &  pName)
inline
Here is the caller graph for this function:

◆ SetRotation()

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:

◆ SetTranslation()

void G4VPhysicalVolume::SetTranslation ( const G4ThreeVector &  v)

Definition at line 137 of file G4VPhysicalVolume.cc.

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

◆ TerminateWorker()

void G4VPhysicalVolume::TerminateWorker ( G4VPhysicalVolume *  pMasterObject)
protected

Definition at line 116 of file G4VPhysicalVolume.cc.

117 {
118 }

◆ VolumeType()

EVolume G4VPhysicalVolume::VolumeType ( ) const
inline

Member Data Documentation

◆ flmother

G4LogicalVolume* G4VPhysicalVolume::flmother
private

Definition at line 246 of file G4VPhysicalVolume.hh.

◆ flogical

G4LogicalVolume* G4VPhysicalVolume::flogical
private

Definition at line 242 of file G4VPhysicalVolume.hh.

◆ fname

G4String G4VPhysicalVolume::fname
private

Definition at line 245 of file G4VPhysicalVolume.hh.

◆ instanceID

G4int G4VPhysicalVolume::instanceID
protected

Definition at line 228 of file G4VPhysicalVolume.hh.

◆ pvdata

G4PVData* G4VPhysicalVolume::pvdata
private

Definition at line 248 of file G4VPhysicalVolume.hh.

◆ subInstanceManager

G4PVManager G4VPhysicalVolume::subInstanceManager
staticprotected

Definition at line 231 of file G4VPhysicalVolume.hh.


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