Geant4 11.4.0
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 ()
virtual ~G4TouchableHistory ()=default
 G4TouchableHistory (const G4NavigationHistory &history)
G4VPhysicalVolumeGetVolume (G4int depth=0) const
G4VSolidGetSolid (G4int depth=0) const
const G4ThreeVectorGetTranslation (G4int depth=0) const
const G4RotationMatrixGetRotation (G4int depth=0) const
G4int GetReplicaNumber (G4int depth=0) const
G4int GetCopyNumber (G4int depth=0) const
G4int GetHistoryDepth () const
G4int MoveUpHistory (G4int num_levels=1)
void UpdateYourself (G4VPhysicalVolume *pPhysVol, const G4NavigationHistory *history=nullptr)
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 1164 of file G4PhysicalVolumeModel.cc.

1165 :
1166 fFullPVPath(fullPVPath) {}
std::vector< G4PhysicalVolumeNodeID > fFullPVPath

Member Function Documentation

◆ GetHistoryDepth()

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

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

Definition at line 1220 of file G4PhysicalVolumeModel.cc.

1221{
1222 size_t i = fFullPVPath.size() - depth - 1;
1223 if (i >= fFullPVPath.size()) {
1224 G4Exception("G4PhysicalVolumeModelTouchable::GetReplicaNumber",
1225 "modeling0009",
1227 "Index out of range. Asking for non-existent depth");
1228 }
1229 return fFullPVPath[i].GetCopyNo();
1230}
@ FatalErrorInArgument
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)

◆ GetRotation()

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

Definition at line 1182 of file G4PhysicalVolumeModel.cc.

1183{
1184 size_t i = fFullPVPath.size() - depth - 1;
1185 if (i >= fFullPVPath.size()) {
1186 G4Exception("G4PhysicalVolumeModelTouchable::GetRotation",
1187 "modeling0006",
1189 "Index out of range. Asking for non-existent depth");
1190 }
1191 static G4RotationMatrix tempRotation;
1192 tempRotation = fFullPVPath[i].GetTransform().getRotation();
1193 return &tempRotation;
1194}
CLHEP::HepRotation G4RotationMatrix

◆ GetSolid()

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

Definition at line 1208 of file G4PhysicalVolumeModel.cc.

1209{
1210 size_t i = fFullPVPath.size() - depth - 1;
1211 if (i >= fFullPVPath.size()) {
1212 G4Exception("G4PhysicalVolumeModelTouchable::GetSolid",
1213 "modeling0008",
1215 "Index out of range. Asking for non-existent depth");
1216 }
1217 return fFullPVPath[i].GetPhysicalVolume()->GetLogicalVolume()->GetSolid();
1218}

◆ GetTranslation()

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

Definition at line 1168 of file G4PhysicalVolumeModel.cc.

1169{
1170 size_t i = fFullPVPath.size() - depth - 1;
1171 if (i >= fFullPVPath.size()) {
1172 G4Exception("G4PhysicalVolumeModelTouchable::GetTranslation",
1173 "modeling0005",
1175 "Index out of range. Asking for non-existent depth");
1176 }
1177 static G4ThreeVector tempTranslation;
1178 tempTranslation = fFullPVPath[i].GetTransform().getTranslation();
1179 return tempTranslation;
1180}
CLHEP::Hep3Vector G4ThreeVector

◆ GetVolume()

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

Definition at line 1196 of file G4PhysicalVolumeModel.cc.

1197{
1198 size_t i = fFullPVPath.size() - depth - 1;
1199 if (i >= fFullPVPath.size()) {
1200 G4Exception("G4PhysicalVolumeModelTouchable::GetVolume",
1201 "modeling0007",
1203 "Index out of range. Asking for non-existent depth");
1204 }
1205 return fFullPVPath[i].GetPhysicalVolume();
1206}

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