G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable Class Reference

#include <G4PhysicalVolumeModel.hh>

Inheritance diagram for G4PhysicalVolumeModel::G4PhysicalVolumeModelTouchable:

G4VTouchable

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

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