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 G4NavigationHistory * GetHistory () const
 
G4int GetHistoryDepth () const
 
G4int GetReplicaNumber (G4int depth) const
 
const G4RotationMatrix * GetRotation (G4int depth) const
 
G4VSolid * GetSolid (G4int depth) const
 
const G4ThreeVector & GetTranslation (G4int depth) const
 
G4VPhysicalVolume * GetVolume (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: