Geant4-11
Public Member Functions | Private Attributes
G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable Class Reference

#include <G4PhysicalVolumeModel.hh>

Inheritance diagram for G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable:
G4VTouchable

Public Member Functions

 G4PhysicalVolumeModelTouchable (const std::vector< G4PhysicalVolumeNodeID > &fullPVPath)
 
G4int GetCopyNumber (G4int depth=0) const
 
virtual const G4NavigationHistoryGetHistory () const
 
G4int GetHistoryDepth () const
 
G4int GetReplicaNumber (G4int depth) const
 
const G4RotationMatrixGetRotation (G4int depth) const
 
G4VSolidGetSolid (G4int depth) const
 
const G4ThreeVectorGetTranslation (G4int depth) const
 
G4VPhysicalVolumeGetVolume (G4int depth) const
 
virtual G4int MoveUpHistory (G4int num_levels=1)
 
virtual void UpdateYourself (G4VPhysicalVolume *pPhysVol, const G4NavigationHistory *history=nullptr)
 

Private Attributes

const std::vector< G4PhysicalVolumeNodeID > & fFullPVPath
 

Detailed Description

Definition at line 124 of file G4PhysicalVolumeModel.hh.

Constructor & Destructor Documentation

◆ G4PhysicalVolumeModelTouchable()

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

Definition at line 1085 of file G4PhysicalVolumeModel.cc.

1086 :
1087 fFullPVPath(fullPVPath) {}
const std::vector< G4PhysicalVolumeNodeID > & fFullPVPath

Member Function Documentation

◆ GetCopyNumber()

G4int G4VTouchable::GetCopyNumber ( G4int  depth = 0) const
inlineinherited

◆ GetHistory()

const G4NavigationHistory * G4VTouchable::GetHistory ( ) const
virtualinherited

Reimplemented in G4TouchableHistory.

Definition at line 82 of file G4VTouchable.cc.

83{
84 G4Exception("G4VTouchable::GetHistory()", "GeomMgt0001",
85 FatalException, "Undefined call to base class.");
86 return nullptr;
87}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35

References FatalException, and G4Exception().

Referenced by G4PSFlatSurfaceCurrent::IsSelectedSurface(), G4PSFlatSurfaceFlux::IsSelectedSurface(), G4PSSphereSurfaceCurrent::IsSelectedSurface(), G4PSSphereSurfaceFlux::IsSelectedSurface(), G4PSCylinderSurfaceCurrent::IsSelectedSurface(), G4PSCylinderSurfaceFlux::IsSelectedSurface(), G4PSCylinderSurfaceFlux::ProcessHits(), G4PSFlatSurfaceFlux::ProcessHits(), G4PSSphereSurfaceFlux::ProcessHits(), G4PSVolumeFlux::ProcessHits(), and G4DNAIRT_geometries::Sampling().

◆ GetHistoryDepth()

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

Reimplemented from G4VTouchable.

Definition at line 133 of file G4PhysicalVolumeModel.hh.

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

References fFullPVPath.

◆ GetReplicaNumber()

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

Reimplemented from G4VTouchable.

Definition at line 1141 of file G4PhysicalVolumeModel.cc.

1142{
1143 size_t i = fFullPVPath.size() - depth - 1;
1144 if (i >= fFullPVPath.size()) {
1145 G4Exception("G4PhysicalVolumeModelTouchable::GetReplicaNumber",
1146 "modeling0009",
1148 "Index out of range. Asking for non-existent depth");
1149 }
1150 return fFullPVPath[i].GetCopyNo();
1151}
@ FatalErrorInArgument

References FatalErrorInArgument, G4PhysicalVolumeModel::fFullPVPath, and G4Exception().

◆ GetRotation()

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

Implements G4VTouchable.

Definition at line 1103 of file G4PhysicalVolumeModel.cc.

1104{
1105 size_t i = fFullPVPath.size() - depth - 1;
1106 if (i >= fFullPVPath.size()) {
1107 G4Exception("G4PhysicalVolumeModelTouchable::GetRotation",
1108 "modeling0006",
1110 "Index out of range. Asking for non-existent depth");
1111 }
1112 static G4RotationMatrix tempRotation;
1113 tempRotation = fFullPVPath[i].GetTransform().getRotation();
1114 return &tempRotation;
1115}

References FatalErrorInArgument, G4PhysicalVolumeModel::fFullPVPath, and G4Exception().

◆ GetSolid()

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

Reimplemented from G4VTouchable.

Definition at line 1129 of file G4PhysicalVolumeModel.cc.

1130{
1131 size_t i = fFullPVPath.size() - depth - 1;
1132 if (i >= fFullPVPath.size()) {
1133 G4Exception("G4PhysicalVolumeModelTouchable::GetSolid",
1134 "modeling0008",
1136 "Index out of range. Asking for non-existent depth");
1137 }
1138 return fFullPVPath[i].GetPhysicalVolume()->GetLogicalVolume()->GetSolid();
1139}

References FatalErrorInArgument, G4PhysicalVolumeModel::fFullPVPath, and G4Exception().

◆ GetTranslation()

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

Implements G4VTouchable.

Definition at line 1089 of file G4PhysicalVolumeModel.cc.

1090{
1091 size_t i = fFullPVPath.size() - depth - 1;
1092 if (i >= fFullPVPath.size()) {
1093 G4Exception("G4PhysicalVolumeModelTouchable::GetTranslation",
1094 "modeling0005",
1096 "Index out of range. Asking for non-existent depth");
1097 }
1098 static G4ThreeVector tempTranslation;
1099 tempTranslation = fFullPVPath[i].GetTransform().getTranslation();
1100 return tempTranslation;
1101}

References FatalErrorInArgument, G4PhysicalVolumeModel::fFullPVPath, and G4Exception().

◆ GetVolume()

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

Reimplemented from G4VTouchable.

Definition at line 1117 of file G4PhysicalVolumeModel.cc.

1118{
1119 size_t i = fFullPVPath.size() - depth - 1;
1120 if (i >= fFullPVPath.size()) {
1121 G4Exception("G4PhysicalVolumeModelTouchable::GetVolume",
1122 "modeling0007",
1124 "Index out of range. Asking for non-existent depth");
1125 }
1126 return fFullPVPath[i].GetPhysicalVolume();
1127}

References FatalErrorInArgument, G4PhysicalVolumeModel::fFullPVPath, and G4Exception().

◆ MoveUpHistory()

G4int G4VTouchable::MoveUpHistory ( G4int  num_levels = 1)
virtualinherited

Reimplemented in G4TouchableHistory.

Definition at line 58 of file G4VTouchable.cc.

59{
60 G4Exception("G4VTouchable::MoveUpHistory()", "GeomMgt0001",
61 FatalException, "Undefined call to base class.");
62 return 0;
63}

References FatalException, and G4Exception().

Referenced by export_G4VTouchable().

◆ UpdateYourself()

void G4VTouchable::UpdateYourself ( G4VPhysicalVolume pPhysVol,
const G4NavigationHistory history = nullptr 
)
virtualinherited

Reimplemented in G4TouchableHistory.

Definition at line 66 of file G4VTouchable.cc.

68{
69 G4Exception("G4VTouchable::UpdateYourself()", "GeomMgt0001",
70 FatalException, "Undefined call to base class.");
71}

References FatalException, and G4Exception().

Referenced by G4DNABrownianTransportation::AlongStepGetPhysicalInteractionLength().

Field Documentation

◆ fFullPVPath

const std::vector<G4PhysicalVolumeNodeID>& G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable::fFullPVPath
private

Definition at line 135 of file G4PhysicalVolumeModel.hh.

Referenced by GetHistoryDepth().


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