#include <G4PhysicalVolumeModel.hh>
Inheritance diagram for G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable:
Public Member Functions | |
G4PhysicalVolumeModelTouchable (const std::vector< G4PhysicalVolumeNodeID > &fullPVPath) | |
const G4ThreeVector & | GetTranslation (G4int depth) const |
const G4RotationMatrix * | GetRotation (G4int depth) const |
G4VPhysicalVolume * | GetVolume (G4int depth) const |
G4VSolid * | GetSolid (G4int depth) const |
G4int | GetReplicaNumber (G4int depth) const |
G4int | GetHistoryDepth () const |
Definition at line 119 of file G4PhysicalVolumeModel.hh.
G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable::G4PhysicalVolumeModelTouchable | ( | const std::vector< G4PhysicalVolumeNodeID > & | fullPVPath | ) |
G4int G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable::GetHistoryDepth | ( | ) | const [inline, virtual] |
G4int G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable::GetReplicaNumber | ( | G4int | depth | ) | const [virtual] |
Reimplemented from G4VTouchable.
Definition at line 958 of file G4PhysicalVolumeModel.cc.
References FatalErrorInArgument, and G4Exception().
00959 { 00960 size_t i = fFullPVPath.size() - depth - 1; 00961 if (i >= fFullPVPath.size()) { 00962 G4Exception("G4PhysicalVolumeModelTouchable::GetReplicaNumber", 00963 "modeling0009", 00964 FatalErrorInArgument, 00965 "Index out of range. Asking for non-existent depth"); 00966 } 00967 return fFullPVPath[i].GetCopyNo(); 00968 }
const G4RotationMatrix * G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable::GetRotation | ( | G4int | depth | ) | const [virtual] |
Implements G4VTouchable.
Definition at line 920 of file G4PhysicalVolumeModel.cc.
References FatalErrorInArgument, and G4Exception().
00921 { 00922 size_t i = fFullPVPath.size() - depth - 1; 00923 if (i >= fFullPVPath.size()) { 00924 G4Exception("G4PhysicalVolumeModelTouchable::GetRotation", 00925 "modeling0006", 00926 FatalErrorInArgument, 00927 "Index out of range. Asking for non-existent depth"); 00928 } 00929 static G4RotationMatrix tempRotation; 00930 tempRotation = fFullPVPath[i].GetTransform().getRotation(); 00931 return &tempRotation; 00932 }
G4VSolid * G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable::GetSolid | ( | G4int | depth | ) | const [virtual] |
Reimplemented from G4VTouchable.
Definition at line 946 of file G4PhysicalVolumeModel.cc.
References FatalErrorInArgument, and G4Exception().
00947 { 00948 size_t i = fFullPVPath.size() - depth - 1; 00949 if (i >= fFullPVPath.size()) { 00950 G4Exception("G4PhysicalVolumeModelTouchable::GetSolid", 00951 "modeling0008", 00952 FatalErrorInArgument, 00953 "Index out of range. Asking for non-existent depth"); 00954 } 00955 return fFullPVPath[i].GetPhysicalVolume()->GetLogicalVolume()->GetSolid(); 00956 }
const G4ThreeVector & G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable::GetTranslation | ( | G4int | depth | ) | const [virtual] |
Implements G4VTouchable.
Definition at line 906 of file G4PhysicalVolumeModel.cc.
References FatalErrorInArgument, and G4Exception().
00907 { 00908 size_t i = fFullPVPath.size() - depth - 1; 00909 if (i >= fFullPVPath.size()) { 00910 G4Exception("G4PhysicalVolumeModelTouchable::GetTranslation", 00911 "modeling0005", 00912 FatalErrorInArgument, 00913 "Index out of range. Asking for non-existent depth"); 00914 } 00915 static G4ThreeVector tempTranslation; 00916 tempTranslation = fFullPVPath[i].GetTransform().getTranslation(); 00917 return tempTranslation; 00918 }
G4VPhysicalVolume * G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable::GetVolume | ( | G4int | depth | ) | const [virtual] |
Reimplemented from G4VTouchable.
Definition at line 934 of file G4PhysicalVolumeModel.cc.
References FatalErrorInArgument, and G4Exception().
00935 { 00936 size_t i = fFullPVPath.size() - depth - 1; 00937 if (i >= fFullPVPath.size()) { 00938 G4Exception("G4PhysicalVolumeModelTouchable::GetVolume", 00939 "modeling0007", 00940 FatalErrorInArgument, 00941 "Index out of range. Asking for non-existent depth"); 00942 } 00943 return fFullPVPath[i].GetPhysicalVolume(); 00944 }