G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable Class Reference

#include <G4PhysicalVolumeModel.hh>

Inheritance diagram for G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable:

G4VTouchable

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

Detailed Description

Definition at line 119 of file G4PhysicalVolumeModel.hh.


Constructor & Destructor Documentation

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

Definition at line 903 of file G4PhysicalVolumeModel.cc.

00903                                                      :
00904   fFullPVPath(fullPVPath) {}


Member Function Documentation

G4int G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable::GetHistoryDepth (  )  const [inline, virtual]

Reimplemented from G4VTouchable.

Definition at line 128 of file G4PhysicalVolumeModel.hh.

00128 {return fFullPVPath.size();}

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 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:52:53 2013 for Geant4 by  doxygen 1.4.7