00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 inline
00034 G4GRSVolume::G4GRSVolume( G4VPhysicalVolume *pVol,
00035 const G4RotationMatrix *pRot,
00036 const G4ThreeVector &tlate )
00037 : G4VTouchable(),
00038 fvol(pVol),
00039 ftlate(tlate)
00040 {
00041 if ( pRot )
00042 {
00043 frot = new G4RotationMatrix(*pRot);
00044 if ( !frot )
00045 {
00046 G4Exception("G4GRSVolume::G4GRSVolume()", "GeomVol0002", FatalException,
00047 "Cannot allocate G4RotationMatrix, NULL pointer.");
00048 }
00049 }
00050 else
00051 {
00052 frot = 0;
00053 }
00054 }
00055
00056 inline
00057 G4GRSVolume::G4GRSVolume( G4VPhysicalVolume *pVol,
00058 const G4RotationMatrix &rot,
00059 const G4ThreeVector &tlate )
00060 : G4VTouchable(),
00061 fvol(pVol),
00062 ftlate(tlate)
00063 {
00064 frot = new G4RotationMatrix(rot);
00065 if ( !frot )
00066 {
00067 G4Exception("G4GRSVolume::G4GRSVolume()", "GeomVol0002", FatalException,
00068 "Cannot allocate G4RotationMatrix, NULL pointer.");
00069 }
00070 }
00071
00072 inline
00073 G4VPhysicalVolume* G4GRSVolume::GetVolume( G4int depth ) const
00074 {
00075 if( depth != 0 )
00076 {
00077 G4Exception("G4GRSVolume::GetVolume()", "GeomVol0003",
00078 FatalException, "History depth in input must be 0 !");
00079 }
00080 return fvol;
00081 }
00082
00083 inline
00084 G4VSolid* G4GRSVolume::GetSolid( G4int depth ) const
00085 {
00086 if( depth != 0 )
00087 {
00088 G4Exception("G4GRSVolume::GetSolid()", "GeomVol0003",
00089 FatalException, "History depth in input must be 0 !");
00090 }
00091 return fvol->GetLogicalVolume()->GetSolid();
00092 }
00093
00094 inline
00095 const G4ThreeVector& G4GRSVolume::GetTranslation( G4int depth ) const
00096 {
00097 if( depth != 0 )
00098 {
00099 G4Exception("G4GRSVolume::GetTranslation()", "GeomVol0003",
00100 FatalException, "History depth in input must be 0 !");
00101 }
00102 return ftlate;
00103 }
00104
00105 inline
00106 const G4RotationMatrix* G4GRSVolume::GetRotation( G4int depth ) const
00107 {
00108 if( depth != 0 )
00109 {
00110 G4Exception("G4GRSVolume::GetRotation()", "GeomVol0003",
00111 FatalException, "History depth in input must be 0 !");
00112 }
00113 return frot;
00114 }