Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable Class Reference

#include <G4PhysicalVolumeModel.hh>

+ Inheritance diagram for G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable:

Public Member Functions

 G4PhysicalVolumeModelTouchable (const std::vector< G4PhysicalVolumeNodeID > &fullPVPath)
 
const G4ThreeVectorGetTranslation (G4int depth) const
 
const G4RotationMatrixGetRotation (G4int depth) const
 
G4VPhysicalVolumeGetVolume (G4int depth) const
 
G4VSolidGetSolid (G4int depth) const
 
G4int GetReplicaNumber (G4int depth) const
 
G4int GetHistoryDepth () const
 
- Public Member Functions inherited from G4TouchableHistory
 G4TouchableHistory ()
 
 G4TouchableHistory (const G4NavigationHistory &history)
 
virtual ~G4TouchableHistory ()
 
G4int GetCopyNumber (G4int depth=0) const
 
virtual G4int MoveUpHistory (G4int num_levels=1)
 
virtual void UpdateYourself (G4VPhysicalVolume *pPhysVol, const G4NavigationHistory *history=nullptr)
 
virtual const G4NavigationHistoryGetHistory () const
 
void * operator new (std::size_t)
 
void operator delete (void *aTH)
 

Detailed Description

Definition at line 128 of file G4PhysicalVolumeModel.hh.

Constructor & Destructor Documentation

◆ G4PhysicalVolumeModelTouchable()

G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable::G4PhysicalVolumeModelTouchable ( const std::vector< G4PhysicalVolumeNodeID > & fullPVPath)

Definition at line 1102 of file G4PhysicalVolumeModel.cc.

1103 :
1104 fFullPVPath(fullPVPath) {}

Member Function Documentation

◆ GetHistoryDepth()

G4int G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable::GetHistoryDepth ( ) const
inlinevirtual

Reimplemented from G4TouchableHistory.

Definition at line 137 of file G4PhysicalVolumeModel.hh.

137{return G4int(fFullPVPath.size());}
int G4int
Definition G4Types.hh:85

◆ GetReplicaNumber()

G4int G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable::GetReplicaNumber ( G4int depth) const
virtual

Reimplemented from G4TouchableHistory.

Definition at line 1158 of file G4PhysicalVolumeModel.cc.

1159{
1160 size_t i = fFullPVPath.size() - depth - 1;
1161 if (i >= fFullPVPath.size()) {
1162 G4Exception("G4PhysicalVolumeModelTouchable::GetReplicaNumber",
1163 "modeling0009",
1165 "Index out of range. Asking for non-existent depth");
1166 }
1167 return fFullPVPath[i].GetCopyNo();
1168}
@ FatalErrorInArgument
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)

◆ GetRotation()

const G4RotationMatrix * G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable::GetRotation ( G4int depth) const
virtual

Reimplemented from G4TouchableHistory.

Definition at line 1120 of file G4PhysicalVolumeModel.cc.

1121{
1122 size_t i = fFullPVPath.size() - depth - 1;
1123 if (i >= fFullPVPath.size()) {
1124 G4Exception("G4PhysicalVolumeModelTouchable::GetRotation",
1125 "modeling0006",
1127 "Index out of range. Asking for non-existent depth");
1128 }
1129 static G4RotationMatrix tempRotation;
1130 tempRotation = fFullPVPath[i].GetTransform().getRotation();
1131 return &tempRotation;
1132}

◆ GetSolid()

G4VSolid * G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable::GetSolid ( G4int depth) const
virtual

Reimplemented from G4TouchableHistory.

Definition at line 1146 of file G4PhysicalVolumeModel.cc.

1147{
1148 size_t i = fFullPVPath.size() - depth - 1;
1149 if (i >= fFullPVPath.size()) {
1150 G4Exception("G4PhysicalVolumeModelTouchable::GetSolid",
1151 "modeling0008",
1153 "Index out of range. Asking for non-existent depth");
1154 }
1155 return fFullPVPath[i].GetPhysicalVolume()->GetLogicalVolume()->GetSolid();
1156}

◆ GetTranslation()

const G4ThreeVector & G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable::GetTranslation ( G4int depth) const
virtual

Reimplemented from G4TouchableHistory.

Definition at line 1106 of file G4PhysicalVolumeModel.cc.

1107{
1108 size_t i = fFullPVPath.size() - depth - 1;
1109 if (i >= fFullPVPath.size()) {
1110 G4Exception("G4PhysicalVolumeModelTouchable::GetTranslation",
1111 "modeling0005",
1113 "Index out of range. Asking for non-existent depth");
1114 }
1115 static G4ThreeVector tempTranslation;
1116 tempTranslation = fFullPVPath[i].GetTransform().getTranslation();
1117 return tempTranslation;
1118}

◆ GetVolume()

G4VPhysicalVolume * G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable::GetVolume ( G4int depth) const
virtual

Reimplemented from G4TouchableHistory.

Definition at line 1134 of file G4PhysicalVolumeModel.cc.

1135{
1136 size_t i = fFullPVPath.size() - depth - 1;
1137 if (i >= fFullPVPath.size()) {
1138 G4Exception("G4PhysicalVolumeModelTouchable::GetVolume",
1139 "modeling0007",
1141 "Index out of range. Asking for non-existent depth");
1142 }
1143 return fFullPVPath[i].GetPhysicalVolume();
1144}

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