G4PhantomParameterisation Class Reference

#include <G4PhantomParameterisation.hh>

Inheritance diagram for G4PhantomParameterisation:

G4VPVParameterisation G4PartialPhantomParameterisation

Public Member Functions

 G4PhantomParameterisation ()
 ~G4PhantomParameterisation ()
virtual void ComputeTransformation (const G4int, G4VPhysicalVolume *) const
virtual G4VSolidComputeSolid (const G4int, G4VPhysicalVolume *)
virtual G4MaterialComputeMaterial (const G4int repNo, G4VPhysicalVolume *currentVol, const G4VTouchable *parentTouch=0)
void ComputeDimensions (G4Box &, const G4int, const G4VPhysicalVolume *) const
void ComputeDimensions (G4Tubs &, const G4int, const G4VPhysicalVolume *) const
void ComputeDimensions (G4Trd &, const G4int, const G4VPhysicalVolume *) const
void ComputeDimensions (G4Trap &, const G4int, const G4VPhysicalVolume *) const
void ComputeDimensions (G4Cons &, const G4int, const G4VPhysicalVolume *) const
void ComputeDimensions (G4Orb &, const G4int, const G4VPhysicalVolume *) const
void ComputeDimensions (G4Sphere &, const G4int, const G4VPhysicalVolume *) const
void ComputeDimensions (G4Torus &, const G4int, const G4VPhysicalVolume *) const
void ComputeDimensions (G4Para &, const G4int, const G4VPhysicalVolume *) const
void ComputeDimensions (G4Hype &, const G4int, const G4VPhysicalVolume *) const
void ComputeDimensions (G4Polycone &, const G4int, const G4VPhysicalVolume *) const
void ComputeDimensions (G4Polyhedra &, const G4int, const G4VPhysicalVolume *) const
void BuildContainerSolid (G4VPhysicalVolume *pPhysicalVol)
void BuildContainerSolid (G4VSolid *pMotherSolid)
virtual G4int GetReplicaNo (const G4ThreeVector &localPoint, const G4ThreeVector &localDir)
void SetMaterials (std::vector< G4Material * > &mates)
void SetMaterialIndices (size_t *matInd)
void SetVoxelDimensions (G4double halfx, G4double halfy, G4double halfz)
void SetNoVoxel (size_t nx, size_t ny, size_t nz)
G4double GetVoxelHalfX () const
G4double GetVoxelHalfY () const
G4double GetVoxelHalfZ () const
size_t GetNoVoxelX () const
size_t GetNoVoxelY () const
size_t GetNoVoxelZ () const
size_t GetNoVoxel () const
std::vector< G4Material * > GetMaterials () const
size_t * GetMaterialIndices () const
G4VSolidGetContainerSolid () const
G4ThreeVector GetTranslation (const G4int copyNo) const
G4bool SkipEqualMaterials () const
void SetSkipEqualMaterials (G4bool skip)
size_t GetMaterialIndex (size_t nx, size_t ny, size_t nz) const
size_t GetMaterialIndex (size_t copyNo) const
G4MaterialGetMaterial (size_t nx, size_t ny, size_t nz) const
G4MaterialGetMaterial (size_t copyNo) const
void CheckVoxelsFillContainer (G4double contX, G4double contY, G4double contZ) const

Protected Attributes

G4double fVoxelHalfX
G4double fVoxelHalfY
G4double fVoxelHalfZ
size_t fNoVoxelX
size_t fNoVoxelY
size_t fNoVoxelZ
size_t fNoVoxelXY
size_t fNoVoxel
std::vector< G4Material * > fMaterials
size_t * fMaterialIndices
G4VSolidfContainerSolid
G4double fContainerWallX
G4double fContainerWallY
G4double fContainerWallZ
G4double kCarTolerance
G4bool bSkipEqualMaterials

Detailed Description

Definition at line 72 of file G4PhantomParameterisation.hh.


Constructor & Destructor Documentation

G4PhantomParameterisation::G4PhantomParameterisation (  ) 

Definition at line 46 of file G4PhantomParameterisation.cc.

References G4GeometryTolerance::GetInstance(), G4GeometryTolerance::GetSurfaceTolerance(), and kCarTolerance.

G4PhantomParameterisation::~G4PhantomParameterisation (  ) 

Definition at line 58 of file G4PhantomParameterisation.cc.

00059 {
00060 }


Member Function Documentation

void G4PhantomParameterisation::BuildContainerSolid ( G4VSolid pMotherSolid  ) 

Definition at line 77 of file G4PhantomParameterisation.cc.

References fContainerSolid, fContainerWallX, fContainerWallY, fContainerWallZ, fNoVoxelX, fNoVoxelY, fNoVoxelZ, fVoxelHalfX, fVoxelHalfY, and fVoxelHalfZ.

00078 {
00079   fContainerSolid = pMotherSolid;
00080   fContainerWallX = fNoVoxelX * fVoxelHalfX;
00081   fContainerWallY = fNoVoxelY * fVoxelHalfY;
00082   fContainerWallZ = fNoVoxelZ * fVoxelHalfZ;
00083 
00084   // CheckVoxelsFillContainer();
00085 }

void G4PhantomParameterisation::BuildContainerSolid ( G4VPhysicalVolume pPhysicalVol  ) 

Definition at line 65 of file G4PhantomParameterisation.cc.

References fContainerSolid, fContainerWallX, fContainerWallY, fContainerWallZ, fNoVoxelX, fNoVoxelY, fNoVoxelZ, fVoxelHalfX, fVoxelHalfY, fVoxelHalfZ, G4VPhysicalVolume::GetLogicalVolume(), and G4LogicalVolume::GetSolid().

00066 {
00067   fContainerSolid = pMotherPhysical->GetLogicalVolume()->GetSolid();
00068   fContainerWallX = fNoVoxelX * fVoxelHalfX;
00069   fContainerWallY = fNoVoxelY * fVoxelHalfY;
00070   fContainerWallZ = fNoVoxelZ * fVoxelHalfZ;
00071 
00072   // CheckVoxelsFillContainer();
00073 }

void G4PhantomParameterisation::CheckVoxelsFillContainer ( G4double  contX,
G4double  contY,
G4double  contZ 
) const

Definition at line 184 of file G4PhantomParameterisation.cc.

References FatalException, fContainerSolid, fNoVoxelX, fNoVoxelY, fNoVoxelZ, fVoxelHalfX, fVoxelHalfY, fVoxelHalfZ, G4endl, G4Exception(), G4VSolid::GetName(), JustWarning, and kCarTolerance.

00185 {
00186   G4double toleranceForWarning = 0.25*kCarTolerance;
00187 
00188   // Any bigger value than 0.25*kCarTolerance will give a warning in
00189   // G4NormalNavigation::ComputeStep(), because the Inverse of a container
00190   // translation that is Z+epsilon gives -Z+epsilon (and the maximum tolerance
00191   // in G4Box::Inside is 0.5*kCarTolerance
00192   //
00193   G4double toleranceForError = 1.*kCarTolerance;  
00194 
00195   // Any bigger value than kCarTolerance will give an error in GetReplicaNo()
00196   //
00197   if( std::fabs(contX-fNoVoxelX*fVoxelHalfX) >= toleranceForError
00198    || std::fabs(contY-fNoVoxelY*fVoxelHalfY) >= toleranceForError  
00199    || std::fabs(contZ-fNoVoxelZ*fVoxelHalfZ) >= toleranceForError )
00200   {
00201     std::ostringstream message;
00202     message << "Voxels do not fully fill the container: "
00203             << fContainerSolid->GetName() << G4endl
00204             << "        DiffX= " << contX-fNoVoxelX*fVoxelHalfX << G4endl
00205             << "        DiffY= " << contY-fNoVoxelY*fVoxelHalfY << G4endl
00206             << "        DiffZ= " << contZ-fNoVoxelZ*fVoxelHalfZ << G4endl
00207             << "        Maximum difference is: " << toleranceForError;
00208     G4Exception("G4PhantomParameterisation::CheckVoxelsFillContainer()",
00209                 "GeomNav0002", FatalException, message);
00210 
00211   }
00212   else if( std::fabs(contX-fNoVoxelX*fVoxelHalfX) >= toleranceForWarning
00213         || std::fabs(contY-fNoVoxelY*fVoxelHalfY) >= toleranceForWarning  
00214         || std::fabs(contZ-fNoVoxelZ*fVoxelHalfZ) >= toleranceForWarning )
00215   {
00216     std::ostringstream message;
00217     message << "Voxels do not fully fill the container: "
00218             << fContainerSolid->GetName() << G4endl
00219             << "          DiffX= " << contX-fNoVoxelX*fVoxelHalfX << G4endl
00220             << "          DiffY= " << contY-fNoVoxelY*fVoxelHalfY << G4endl
00221             << "          DiffZ= " << contZ-fNoVoxelZ*fVoxelHalfZ << G4endl
00222             << "          Maximum difference is: " << toleranceForWarning;
00223     G4Exception("G4PhantomParameterisation::CheckVoxelsFillContainer()",
00224                 "GeomNav1002", JustWarning, message);
00225   }
00226 }

void G4PhantomParameterisation::ComputeDimensions ( G4Polyhedra ,
const   G4int,
const G4VPhysicalVolume  
) const [inline, virtual]

Reimplemented from G4VPVParameterisation.

Definition at line 110 of file G4PhantomParameterisation.hh.

00111                                                             {}

void G4PhantomParameterisation::ComputeDimensions ( G4Polycone ,
const   G4int,
const G4VPhysicalVolume  
) const [inline, virtual]

Reimplemented from G4VPVParameterisation.

Definition at line 108 of file G4PhantomParameterisation.hh.

00109                                                             {}

void G4PhantomParameterisation::ComputeDimensions ( G4Hype ,
const   G4int,
const G4VPhysicalVolume  
) const [inline, virtual]

Reimplemented from G4VPVParameterisation.

Definition at line 106 of file G4PhantomParameterisation.hh.

00107                                                             {}

void G4PhantomParameterisation::ComputeDimensions ( G4Para ,
const   G4int,
const G4VPhysicalVolume  
) const [inline, virtual]

Reimplemented from G4VPVParameterisation.

Definition at line 104 of file G4PhantomParameterisation.hh.

00105                                                             {}

void G4PhantomParameterisation::ComputeDimensions ( G4Torus ,
const   G4int,
const G4VPhysicalVolume  
) const [inline, virtual]

Reimplemented from G4VPVParameterisation.

Definition at line 102 of file G4PhantomParameterisation.hh.

00103                                                             {}

void G4PhantomParameterisation::ComputeDimensions ( G4Sphere ,
const   G4int,
const G4VPhysicalVolume  
) const [inline, virtual]

Reimplemented from G4VPVParameterisation.

Definition at line 100 of file G4PhantomParameterisation.hh.

00101                                                             {}

void G4PhantomParameterisation::ComputeDimensions ( G4Orb ,
const   G4int,
const G4VPhysicalVolume  
) const [inline, virtual]

Reimplemented from G4VPVParameterisation.

Definition at line 98 of file G4PhantomParameterisation.hh.

00099                                                             {}

void G4PhantomParameterisation::ComputeDimensions ( G4Cons ,
const   G4int,
const G4VPhysicalVolume  
) const [inline, virtual]

Reimplemented from G4VPVParameterisation.

Definition at line 96 of file G4PhantomParameterisation.hh.

00097                                                             {}

void G4PhantomParameterisation::ComputeDimensions ( G4Trap ,
const   G4int,
const G4VPhysicalVolume  
) const [inline, virtual]

Reimplemented from G4VPVParameterisation.

Definition at line 94 of file G4PhantomParameterisation.hh.

00095                                                             {}

void G4PhantomParameterisation::ComputeDimensions ( G4Trd ,
const   G4int,
const G4VPhysicalVolume  
) const [inline, virtual]

Reimplemented from G4VPVParameterisation.

Definition at line 92 of file G4PhantomParameterisation.hh.

00093                                                             {}

void G4PhantomParameterisation::ComputeDimensions ( G4Tubs ,
const   G4int,
const G4VPhysicalVolume  
) const [inline, virtual]

Reimplemented from G4VPVParameterisation.

Definition at line 90 of file G4PhantomParameterisation.hh.

00091                                                             {}

void G4PhantomParameterisation::ComputeDimensions ( G4Box ,
const   G4int,
const G4VPhysicalVolume  
) const [inline, virtual]

Reimplemented from G4VPVParameterisation.

Definition at line 88 of file G4PhantomParameterisation.hh.

00089                                                             {}

G4Material * G4PhantomParameterisation::ComputeMaterial ( const G4int  repNo,
G4VPhysicalVolume currentVol,
const G4VTouchable parentTouch = 0 
) [virtual]

Reimplemented from G4VPVParameterisation.

Reimplemented in G4PartialPhantomParameterisation.

Definition at line 129 of file G4PhantomParameterisation.cc.

References fMaterials, and GetMaterialIndex().

Referenced by G4GMocrenFileSceneHandler::AddSolid(), G4RegularNavigation::ComputeStepSkippingEqualMaterials(), and G4RegularNavigation::LevelLocate().

00130 { 
00131   CheckCopyNo( copyNo );
00132   size_t matIndex = GetMaterialIndex(copyNo);
00133 
00134   return fMaterials[ matIndex ];
00135 }

G4VSolid * G4PhantomParameterisation::ComputeSolid ( const   G4int,
G4VPhysicalVolume  
) [virtual]

Reimplemented from G4VPVParameterisation.

Definition at line 121 of file G4PhantomParameterisation.cc.

References G4VPhysicalVolume::GetLogicalVolume(), and G4LogicalVolume::GetSolid().

00122 {
00123   return pPhysicalVol->GetLogicalVolume()->GetSolid();
00124 }

void G4PhantomParameterisation::ComputeTransformation ( const   G4int,
G4VPhysicalVolume  
) const [virtual]

Implements G4VPVParameterisation.

Reimplemented in G4PartialPhantomParameterisation.

Definition at line 90 of file G4PhantomParameterisation.cc.

References GetTranslation(), and G4VPhysicalVolume::SetTranslation().

Referenced by G4RegularNavigation::LevelLocate().

00091 {
00092   // Voxels cannot be rotated, return translation
00093   //
00094   G4ThreeVector trans = GetTranslation( copyNo );
00095 
00096   physVol->SetTranslation( trans );
00097 }

G4VSolid * G4PhantomParameterisation::GetContainerSolid (  )  const [inline]

Definition at line 130 of file G4PhantomParameterisation.icc.

References fContainerSolid.

Referenced by G4RegularNavigation::ComputeStepSkippingEqualMaterials().

00131 {
00132   return fContainerSolid;
00133 }

G4Material * G4PhantomParameterisation::GetMaterial ( size_t  copyNo  )  const

Reimplemented in G4PartialPhantomParameterisation.

Definition at line 165 of file G4PhantomParameterisation.cc.

References fMaterials, and GetMaterialIndex().

00166 {
00167   return fMaterials[GetMaterialIndex(copyNo)];
00168 }

G4Material * G4PhantomParameterisation::GetMaterial ( size_t  nx,
size_t  ny,
size_t  nz 
) const

Reimplemented in G4PartialPhantomParameterisation.

Definition at line 159 of file G4PhantomParameterisation.cc.

References fMaterials, and GetMaterialIndex().

Referenced by G4EnergySplitter::GetVoxelMaterial(), and G4EnergySplitter::SplitEnergyInVolumes().

00160 {
00161   return fMaterials[GetMaterialIndex(nx,ny,nz)];
00162 }

size_t G4PhantomParameterisation::GetMaterialIndex ( size_t  copyNo  )  const

Reimplemented in G4PartialPhantomParameterisation.

Definition at line 140 of file G4PhantomParameterisation.cc.

References fMaterialIndices.

00141 {
00142   CheckCopyNo( copyNo );
00143 
00144   if( !fMaterialIndices ) { return 0; }
00145   return *(fMaterialIndices+copyNo);
00146 }

size_t G4PhantomParameterisation::GetMaterialIndex ( size_t  nx,
size_t  ny,
size_t  nz 
) const

Reimplemented in G4PartialPhantomParameterisation.

Definition at line 151 of file G4PhantomParameterisation.cc.

References fNoVoxelX, and fNoVoxelXY.

Referenced by ComputeMaterial(), and GetMaterial().

00152 {
00153   size_t copyNo = nx + fNoVoxelX*ny + fNoVoxelXY*nz;
00154   return GetMaterialIndex( copyNo );
00155 }

size_t * G4PhantomParameterisation::GetMaterialIndices (  )  const [inline]

Definition at line 123 of file G4PhantomParameterisation.icc.

References fMaterialIndices.

00124 {
00125   return fMaterialIndices;
00126 }

std::vector< G4Material * > G4PhantomParameterisation::GetMaterials (  )  const [inline]

Definition at line 116 of file G4PhantomParameterisation.icc.

References fMaterials.

00117 {
00118   return fMaterials;
00119 }

size_t G4PhantomParameterisation::GetNoVoxel (  )  const [inline]

Definition at line 109 of file G4PhantomParameterisation.icc.

References fNoVoxel.

Referenced by G4RegularNavigation::LevelLocate().

00110 {
00111   return fNoVoxel;
00112 }

size_t G4PhantomParameterisation::GetNoVoxelX (  )  const [inline]

Definition at line 88 of file G4PhantomParameterisation.icc.

References fNoVoxelX.

Referenced by G4GMocrenFileSceneHandler::AddSolid().

00089 {
00090   return fNoVoxelX;
00091 }

size_t G4PhantomParameterisation::GetNoVoxelY (  )  const [inline]

Definition at line 95 of file G4PhantomParameterisation.icc.

References fNoVoxelY.

Referenced by G4GMocrenFileSceneHandler::AddSolid().

00096 {
00097   return fNoVoxelY;
00098 }

size_t G4PhantomParameterisation::GetNoVoxelZ (  )  const [inline]

Definition at line 102 of file G4PhantomParameterisation.icc.

References fNoVoxelZ.

Referenced by G4GMocrenFileSceneHandler::AddSolid().

00103 {
00104   return fNoVoxelZ;
00105 }

G4int G4PhantomParameterisation::GetReplicaNo ( const G4ThreeVector localPoint,
const G4ThreeVector localDir 
) [virtual]

Reimplemented in G4PartialPhantomParameterisation.

Definition at line 231 of file G4PhantomParameterisation.cc.

References FatalErrorInArgument, fContainerSolid, fContainerWallX, fContainerWallY, fContainerWallZ, fNoVoxelX, fNoVoxelXY, fNoVoxelY, fNoVoxelZ, fVoxelHalfX, fVoxelHalfY, fVoxelHalfZ, G4endl, G4Exception(), G4VSolid::GetName(), G4VSolid::Inside(), JustWarning, kCarTolerance, and kOutside.

Referenced by G4RegularNavigation::ComputeStep(), G4RegularNavigation::ComputeStepSkippingEqualMaterials(), and G4RegularNavigation::LevelLocate().

00232 {
00233 
00234   // Check first that point is really inside voxels
00235   //
00236   if( fContainerSolid->Inside( localPoint ) == kOutside )
00237   {
00238     std::ostringstream message;
00239     message << "Point outside voxels!" << G4endl
00240             << "        localPoint - " << localPoint
00241             << " - is outside container solid: "
00242             << fContainerSolid->GetName() << G4endl;
00243     G4Exception("G4PhantomParameterisation::GetReplicaNo()", "GeomNav0003",
00244                 FatalErrorInArgument, message);
00245   }
00246   
00247   // Check the voxel numbers corresponding to localPoint
00248   // When a particle is on a surface, it may be between -kCarTolerance and
00249   // +kCartolerance. By a simple distance as:
00250   //   G4int nx = G4int( (localPoint.x()+)/fVoxelHalfX/2.);
00251   // those between -kCartolerance and 0 will be placed on voxel N-1 and those
00252   // between 0 and kCarTolerance on voxel N.
00253   // To avoid precision problems place the tracks that are on the surface on
00254   // voxel N-1 if they have negative direction and on voxel N if they have
00255   // positive direction.
00256   // Add +kCarTolerance so that they are first placed on voxel N, and then
00257   // if the direction is negative substract 1
00258 
00259   G4double fx = (localPoint.x()+fContainerWallX+kCarTolerance)/(fVoxelHalfX*2.);
00260   G4int nx = G4int(fx);
00261 
00262   G4double fy = (localPoint.y()+fContainerWallY+kCarTolerance)/(fVoxelHalfY*2.);
00263   G4int ny = G4int(fy);
00264 
00265   G4double fz = (localPoint.z()+fContainerWallZ+kCarTolerance)/(fVoxelHalfZ*2.);
00266   G4int nz = G4int(fz);
00267 
00268   // If it is on the surface side, check the direction: if direction is
00269   // negative place it on the previous voxel (if direction is positive it is
00270   // already in the next voxel...). 
00271   // Correct also cases where n = -1 or n = fNoVoxel. It is always traced to be
00272   // due to multiple scattering: track is entering a voxel but multiple
00273   // scattering changes the angle towards outside
00274   //
00275   if( fx - nx < kCarTolerance/fVoxelHalfX )
00276   {
00277     if( localDir.x() < 0 )
00278     {
00279       if( nx != 0 )
00280       {
00281         nx -= 1;
00282       }
00283     }
00284     else
00285     {
00286       if( nx == G4int(fNoVoxelX) )  
00287       {
00288         nx -= 1;       
00289       }
00290     }
00291   }
00292   if( fy - ny < kCarTolerance/fVoxelHalfY )
00293   {
00294     if( localDir.y() < 0 )
00295     {
00296       if( ny != 0 )
00297       {
00298         ny -= 1;
00299       }
00300     }
00301     else
00302     {
00303       if( ny == G4int(fNoVoxelY) )  
00304       {
00305         ny -= 1;       
00306       }
00307     }
00308   }
00309   if( fz - nz < kCarTolerance/fVoxelHalfZ )
00310   {
00311     if( localDir.z() < 0 )
00312     {
00313       if( nz != 0 )
00314       {
00315         nz -= 1;
00316       }
00317     }
00318     else
00319     {
00320       if( nz == G4int(fNoVoxelZ) )  
00321       {
00322         nz -= 1;       
00323       }
00324     }
00325   }
00326   
00327   G4int copyNo = nx + fNoVoxelX*ny + fNoVoxelXY*nz;
00328 
00329   // Check if there are still errors 
00330   //
00331   G4bool isOK = true;
00332   if( nx < 0 )
00333   {
00334     nx = 0;
00335     isOK = false;
00336   }
00337   else if( nx >= G4int(fNoVoxelX) )
00338   {
00339     nx = fNoVoxelX-1;
00340     isOK = false;
00341   }
00342   if( ny < 0 )
00343   {
00344     ny = 0;
00345     isOK = false;
00346   }
00347   else if( ny >= G4int(fNoVoxelY) )
00348   {
00349     ny = fNoVoxelY-1;
00350     isOK = false;
00351   }
00352   if( nz < 0 )
00353   {
00354     nz = 0;
00355     isOK = false;
00356   }
00357   else if( nz >= G4int(fNoVoxelZ) )
00358   {
00359     nz = fNoVoxelZ-1;
00360     isOK = false;
00361   }
00362   if( !isOK )
00363   {
00364     std::ostringstream message;
00365     message << "Corrected the copy number! It was negative or too big" << G4endl
00366             << "          LocalPoint: " << localPoint << G4endl
00367             << "          LocalDir: " << localDir << G4endl
00368             << "          Voxel container size: " << fContainerWallX
00369             << " " << fContainerWallY << " " << fContainerWallZ << G4endl
00370             << "          LocalPoint - wall: "
00371             << localPoint.x()-fContainerWallX << " "
00372             << localPoint.y()-fContainerWallY << " "
00373             << localPoint.z()-fContainerWallZ;
00374     G4Exception("G4PhantomParameterisation::GetReplicaNo()",
00375                 "GeomNav1002", JustWarning, message);
00376     copyNo = nx + fNoVoxelX*ny + fNoVoxelXY*nz;
00377   }
00378 
00379   // CheckCopyNo( copyNo ); // not needed, just for debugging code
00380 
00381   return copyNo;
00382 }

G4ThreeVector G4PhantomParameterisation::GetTranslation ( const G4int  copyNo  )  const

Reimplemented in G4PartialPhantomParameterisation.

Definition at line 102 of file G4PhantomParameterisation.cc.

References fContainerWallX, fContainerWallY, fContainerWallZ, fVoxelHalfX, fVoxelHalfY, and fVoxelHalfZ.

Referenced by G4RegularNavigation::ComputeStep(), G4RegularNavigation::ComputeStepSkippingEqualMaterials(), and ComputeTransformation().

00103 {
00104   CheckCopyNo( copyNo );
00105 
00106   size_t nx;
00107   size_t ny;
00108   size_t nz;
00109 
00110   ComputeVoxelIndices( copyNo, nx, ny, nz );
00111 
00112   G4ThreeVector trans( (2*nx+1)*fVoxelHalfX - fContainerWallX,
00113                        (2*ny+1)*fVoxelHalfY - fContainerWallY,
00114                        (2*nz+1)*fVoxelHalfZ - fContainerWallZ);
00115   return trans;
00116 }

G4double G4PhantomParameterisation::GetVoxelHalfX (  )  const [inline]

Definition at line 67 of file G4PhantomParameterisation.icc.

References fVoxelHalfX.

Referenced by G4GMocrenFileSceneHandler::AddSolid().

00068 {
00069   return fVoxelHalfX;
00070 }

G4double G4PhantomParameterisation::GetVoxelHalfY (  )  const [inline]

Definition at line 74 of file G4PhantomParameterisation.icc.

References fVoxelHalfY.

Referenced by G4GMocrenFileSceneHandler::AddSolid().

00075 {
00076   return fVoxelHalfY;
00077 }

G4double G4PhantomParameterisation::GetVoxelHalfZ (  )  const [inline]

Definition at line 81 of file G4PhantomParameterisation.icc.

References fVoxelHalfZ.

Referenced by G4GMocrenFileSceneHandler::AddSolid().

00082 {
00083   return fVoxelHalfZ;
00084 }

void G4PhantomParameterisation::SetMaterialIndices ( size_t *  matInd  )  [inline]

Definition at line 60 of file G4PhantomParameterisation.icc.

References fMaterialIndices.

00061 {
00062   fMaterialIndices = matInd;
00063 }

void G4PhantomParameterisation::SetMaterials ( std::vector< G4Material * > &  mates  )  [inline]

Definition at line 53 of file G4PhantomParameterisation.icc.

References fMaterials.

00054 {
00055   fMaterials = mates;
00056 }

void G4PhantomParameterisation::SetNoVoxel ( size_t  nx,
size_t  ny,
size_t  nz 
) [inline]

Definition at line 42 of file G4PhantomParameterisation.icc.

References fNoVoxel, fNoVoxelX, fNoVoxelXY, fNoVoxelY, and fNoVoxelZ.

00043 {
00044   fNoVoxelX = nx; 
00045   fNoVoxelY = ny; 
00046   fNoVoxelZ = nz; 
00047   fNoVoxelXY = nx*ny; 
00048   fNoVoxel = nx*ny*nz;
00049 }

void G4PhantomParameterisation::SetSkipEqualMaterials ( G4bool  skip  )  [inline]

Definition at line 144 of file G4PhantomParameterisation.icc.

References bSkipEqualMaterials.

00145 {
00146   bSkipEqualMaterials = skip;
00147 }

void G4PhantomParameterisation::SetVoxelDimensions ( G4double  halfx,
G4double  halfy,
G4double  halfz 
) [inline]

Definition at line 32 of file G4PhantomParameterisation.icc.

References fVoxelHalfX, fVoxelHalfY, and fVoxelHalfZ.

00033 {
00034   fVoxelHalfX = halfx; 
00035   fVoxelHalfY = halfy; 
00036   fVoxelHalfZ = halfz; 
00037 }

G4bool G4PhantomParameterisation::SkipEqualMaterials (  )  const [inline]

Definition at line 137 of file G4PhantomParameterisation.icc.

References bSkipEqualMaterials.

Referenced by G4RegularNavigation::ComputeStepSkippingEqualMaterials().

00138 {
00139   return bSkipEqualMaterials;
00140 }


Field Documentation

G4bool G4PhantomParameterisation::bSkipEqualMaterials [protected]

Definition at line 194 of file G4PhantomParameterisation.hh.

Referenced by SetSkipEqualMaterials(), and SkipEqualMaterials().

G4VSolid* G4PhantomParameterisation::fContainerSolid [protected]

Definition at line 184 of file G4PhantomParameterisation.hh.

Referenced by BuildContainerSolid(), CheckVoxelsFillContainer(), GetContainerSolid(), and GetReplicaNo().

G4double G4PhantomParameterisation::fContainerWallX [protected]

Definition at line 188 of file G4PhantomParameterisation.hh.

Referenced by BuildContainerSolid(), G4PartialPhantomParameterisation::BuildContainerWalls(), GetReplicaNo(), G4PartialPhantomParameterisation::GetReplicaNo(), GetTranslation(), and G4PartialPhantomParameterisation::GetTranslation().

G4double G4PhantomParameterisation::fContainerWallY [protected]

Definition at line 188 of file G4PhantomParameterisation.hh.

Referenced by BuildContainerSolid(), G4PartialPhantomParameterisation::BuildContainerWalls(), GetReplicaNo(), G4PartialPhantomParameterisation::GetReplicaNo(), GetTranslation(), and G4PartialPhantomParameterisation::GetTranslation().

G4double G4PhantomParameterisation::fContainerWallZ [protected]

Definition at line 188 of file G4PhantomParameterisation.hh.

Referenced by BuildContainerSolid(), G4PartialPhantomParameterisation::BuildContainerWalls(), GetReplicaNo(), G4PartialPhantomParameterisation::GetReplicaNo(), GetTranslation(), and G4PartialPhantomParameterisation::GetTranslation().

size_t* G4PhantomParameterisation::fMaterialIndices [protected]

Definition at line 181 of file G4PhantomParameterisation.hh.

Referenced by GetMaterialIndex(), G4PartialPhantomParameterisation::GetMaterialIndex(), GetMaterialIndices(), and SetMaterialIndices().

std::vector<G4Material*> G4PhantomParameterisation::fMaterials [protected]

Definition at line 179 of file G4PhantomParameterisation.hh.

Referenced by ComputeMaterial(), G4PartialPhantomParameterisation::ComputeMaterial(), GetMaterial(), G4PartialPhantomParameterisation::GetMaterial(), GetMaterials(), and SetMaterials().

size_t G4PhantomParameterisation::fNoVoxel [protected]

Definition at line 176 of file G4PhantomParameterisation.hh.

Referenced by GetNoVoxel(), and SetNoVoxel().

size_t G4PhantomParameterisation::fNoVoxelX [protected]

Definition at line 172 of file G4PhantomParameterisation.hh.

Referenced by BuildContainerSolid(), G4PartialPhantomParameterisation::BuildContainerWalls(), CheckVoxelsFillContainer(), GetMaterialIndex(), G4PartialPhantomParameterisation::GetMaterialIndex(), GetNoVoxelX(), GetReplicaNo(), G4PartialPhantomParameterisation::GetReplicaNo(), and SetNoVoxel().

size_t G4PhantomParameterisation::fNoVoxelXY [protected]

Definition at line 174 of file G4PhantomParameterisation.hh.

Referenced by GetMaterialIndex(), G4PartialPhantomParameterisation::GetMaterialIndex(), GetReplicaNo(), and SetNoVoxel().

size_t G4PhantomParameterisation::fNoVoxelY [protected]

Definition at line 172 of file G4PhantomParameterisation.hh.

Referenced by BuildContainerSolid(), G4PartialPhantomParameterisation::BuildContainerWalls(), CheckVoxelsFillContainer(), GetNoVoxelY(), GetReplicaNo(), G4PartialPhantomParameterisation::GetReplicaNo(), and SetNoVoxel().

size_t G4PhantomParameterisation::fNoVoxelZ [protected]

Definition at line 172 of file G4PhantomParameterisation.hh.

Referenced by BuildContainerSolid(), G4PartialPhantomParameterisation::BuildContainerWalls(), CheckVoxelsFillContainer(), GetNoVoxelZ(), GetReplicaNo(), G4PartialPhantomParameterisation::GetReplicaNo(), and SetNoVoxel().

G4double G4PhantomParameterisation::fVoxelHalfX [protected]

Definition at line 170 of file G4PhantomParameterisation.hh.

Referenced by BuildContainerSolid(), G4PartialPhantomParameterisation::BuildContainerWalls(), CheckVoxelsFillContainer(), GetReplicaNo(), G4PartialPhantomParameterisation::GetReplicaNo(), GetTranslation(), G4PartialPhantomParameterisation::GetTranslation(), GetVoxelHalfX(), and SetVoxelDimensions().

G4double G4PhantomParameterisation::fVoxelHalfY [protected]

Definition at line 170 of file G4PhantomParameterisation.hh.

Referenced by BuildContainerSolid(), G4PartialPhantomParameterisation::BuildContainerWalls(), CheckVoxelsFillContainer(), GetReplicaNo(), G4PartialPhantomParameterisation::GetReplicaNo(), GetTranslation(), G4PartialPhantomParameterisation::GetTranslation(), GetVoxelHalfY(), and SetVoxelDimensions().

G4double G4PhantomParameterisation::fVoxelHalfZ [protected]

Definition at line 170 of file G4PhantomParameterisation.hh.

Referenced by BuildContainerSolid(), G4PartialPhantomParameterisation::BuildContainerWalls(), CheckVoxelsFillContainer(), GetReplicaNo(), G4PartialPhantomParameterisation::GetReplicaNo(), GetTranslation(), G4PartialPhantomParameterisation::GetTranslation(), GetVoxelHalfZ(), and SetVoxelDimensions().

G4double G4PhantomParameterisation::kCarTolerance [protected]

Definition at line 191 of file G4PhantomParameterisation.hh.

Referenced by CheckVoxelsFillContainer(), G4PhantomParameterisation(), GetReplicaNo(), and G4PartialPhantomParameterisation::GetReplicaNo().


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