Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
RE02NestedPhantomParameterisation Class Reference

A nested parameterisation class for a phantom. More...

#include <Doxymodules_runAndEvent.h>

Inheritance diagram for RE02NestedPhantomParameterisation:
G4VNestedParameterisation G4VPVParameterisation G4VVolumeMaterialScanner

Public Member Functions

 RE02NestedPhantomParameterisation (const G4ThreeVector &voxelSize, G4int nz, std::vector< G4Material * > &mat)
 
 ~RE02NestedPhantomParameterisation ()
 
G4MaterialComputeMaterial (G4VPhysicalVolume *currentVol, const G4int repNo, const G4VTouchable *parentTouch=0)
 
G4int GetNumberOfMaterials () const
 
G4MaterialGetMaterial (G4int idx) const
 
void ComputeTransformation (const G4int no, G4VPhysicalVolume *currentPV) const
 
void ComputeDimensions (G4Box &, const G4int, const G4VPhysicalVolume *) const
 

Private Member Functions

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 (G4Sphere &, const G4int, const G4VPhysicalVolume *) const
 
void ComputeDimensions (G4Orb &, const G4int, const G4VPhysicalVolume *) const
 
void ComputeDimensions (G4Ellipsoid &, 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 (G4Tubs &, const G4int, const G4VPhysicalVolume *) const
 
void ComputeDimensions (G4Polycone &, const G4int, const G4VPhysicalVolume *) const
 
void ComputeDimensions (G4Polyhedra &, const G4int, const G4VPhysicalVolume *) const
 

Private Attributes

G4double fdX
 
G4double fdY
 
G4double fdZ
 
G4int fNz
 
std::vector< G4double > fpZ
 
std::vector< G4Material * > fMat
 

Detailed Description

A nested parameterisation class for a phantom.

(Description) This parameterisation handles material and transfomation of voxles.

Definition at line 51 of file Doxymodules_runAndEvent.h.

Constructor & Destructor Documentation

◆ RE02NestedPhantomParameterisation()

RE02NestedPhantomParameterisation::RE02NestedPhantomParameterisation ( const G4ThreeVector &  voxelSize,
G4int  nz,
std::vector< G4Material * > &  mat 
)

Definition at line 52 of file RE02NestedPhantomParameterisation.cc.

55 :
57 fdX(voxelSize.x()),fdY(voxelSize.y()),fdZ(voxelSize.z()),
58 fNz(nz),fMat(mat)
59{
60 // Position of voxels.
61 // x and y positions are already defined in DetectorConstruction
62 // by using replicated volume. Here only we need to define is z positions
63 // of voxles.
64 fpZ.clear();
65 G4double zp;
66 for ( G4int iz = 0; iz < fNz; iz++){
67 zp = (-fNz+1+2*iz)*fdZ;
68 fpZ.push_back(zp);
69 }
70
71}

◆ ~RE02NestedPhantomParameterisation()

RE02NestedPhantomParameterisation::~RE02NestedPhantomParameterisation ( )

Definition at line 74 of file RE02NestedPhantomParameterisation.cc.

74 {
75 fpZ.clear();
76}

Member Function Documentation

◆ ComputeMaterial()

G4Material * RE02NestedPhantomParameterisation::ComputeMaterial ( G4VPhysicalVolume currentVol,
const G4int  repNo,
const G4VTouchable *  parentTouch = 0 
)

Definition at line 82 of file RE02NestedPhantomParameterisation.cc.

85{
86 if(parentTouch==0) return fMat[0]; // protection for initialization and
87 // vis at idle state
88 // Copy number of voxels.
89 // Copy number of X and Y are obtained from replication number.
90 // Copy nymber of Z is the copy number of current voxel.
91 G4int ix = parentTouch->GetReplicaNumber(0);
92 G4int iy = parentTouch->GetReplicaNumber(1);
93 G4int iz = copyNo;
94 // For demonstration purpose,a couple of materials are chosen alternately.
95 G4Material* mat=0;
96 if ( ix%2 == 0 && iy%2 == 0 && iz%2 == 0 ) mat = fMat[0];
97 else mat = fMat[1];
98
99 return mat;
100}

◆ GetNumberOfMaterials()

G4int RE02NestedPhantomParameterisation::GetNumberOfMaterials ( ) const

Definition at line 107 of file RE02NestedPhantomParameterisation.cc.

107 {
108 return fMat.size();
109}

◆ GetMaterial()

G4Material * RE02NestedPhantomParameterisation::GetMaterial ( G4int  idx) const

Definition at line 116 of file RE02NestedPhantomParameterisation.cc.

116 {
117 return fMat[i];
118}

◆ ComputeTransformation()

void RE02NestedPhantomParameterisation::ComputeTransformation ( const G4int  no,
G4VPhysicalVolume currentPV 
) const

Definition at line 124 of file RE02NestedPhantomParameterisation.cc.

125 {
126 G4ThreeVector position(0.,0.,fpZ[copyNo]);
127 physVol->SetTranslation(position);
128}

◆ ComputeDimensions() [1/13]

void RE02NestedPhantomParameterisation::ComputeDimensions ( G4Box box,
const G4int  ,
const G4VPhysicalVolume  
) const

Definition at line 134 of file RE02NestedPhantomParameterisation.cc.

135 {
136 box.SetXHalfLength(fdX);
137 box.SetYHalfLength(fdY);
138 box.SetZHalfLength(fdZ);
139}

◆ ComputeDimensions() [2/13]

void RE02NestedPhantomParameterisation::ComputeDimensions ( G4Trd ,
const G4int  ,
const G4VPhysicalVolume  
) const
inlineprivate

Definition at line 130 of file RE02NestedPhantomParameterisation.hh.

131 {}

◆ ComputeDimensions() [3/13]

void RE02NestedPhantomParameterisation::ComputeDimensions ( G4Trap ,
const G4int  ,
const G4VPhysicalVolume  
) const
inlineprivate

Definition at line 132 of file RE02NestedPhantomParameterisation.hh.

133 {}

◆ ComputeDimensions() [4/13]

void RE02NestedPhantomParameterisation::ComputeDimensions ( G4Cons ,
const G4int  ,
const G4VPhysicalVolume  
) const
inlineprivate

Definition at line 134 of file RE02NestedPhantomParameterisation.hh.

135 {}

◆ ComputeDimensions() [5/13]

void RE02NestedPhantomParameterisation::ComputeDimensions ( G4Sphere ,
const G4int  ,
const G4VPhysicalVolume  
) const
inlineprivate

Definition at line 136 of file RE02NestedPhantomParameterisation.hh.

137 {}

◆ ComputeDimensions() [6/13]

void RE02NestedPhantomParameterisation::ComputeDimensions ( G4Orb ,
const G4int  ,
const G4VPhysicalVolume  
) const
inlineprivate

Definition at line 138 of file RE02NestedPhantomParameterisation.hh.

139 {}

◆ ComputeDimensions() [7/13]

void RE02NestedPhantomParameterisation::ComputeDimensions ( G4Ellipsoid ,
const G4int  ,
const G4VPhysicalVolume  
) const
inlineprivate

Definition at line 140 of file RE02NestedPhantomParameterisation.hh.

141 {}

◆ ComputeDimensions() [8/13]

void RE02NestedPhantomParameterisation::ComputeDimensions ( G4Torus ,
const G4int  ,
const G4VPhysicalVolume  
) const
inlineprivate

Definition at line 142 of file RE02NestedPhantomParameterisation.hh.

143 {}

◆ ComputeDimensions() [9/13]

void RE02NestedPhantomParameterisation::ComputeDimensions ( G4Para ,
const G4int  ,
const G4VPhysicalVolume  
) const
inlineprivate

Definition at line 144 of file RE02NestedPhantomParameterisation.hh.

145 {}

◆ ComputeDimensions() [10/13]

void RE02NestedPhantomParameterisation::ComputeDimensions ( G4Hype ,
const G4int  ,
const G4VPhysicalVolume  
) const
inlineprivate

Definition at line 146 of file RE02NestedPhantomParameterisation.hh.

147 {}

◆ ComputeDimensions() [11/13]

void RE02NestedPhantomParameterisation::ComputeDimensions ( G4Tubs ,
const G4int  ,
const G4VPhysicalVolume  
) const
inlineprivate

Definition at line 148 of file RE02NestedPhantomParameterisation.hh.

149 {}

◆ ComputeDimensions() [12/13]

void RE02NestedPhantomParameterisation::ComputeDimensions ( G4Polycone ,
const G4int  ,
const G4VPhysicalVolume  
) const
inlineprivate

Definition at line 150 of file RE02NestedPhantomParameterisation.hh.

151 {}

◆ ComputeDimensions() [13/13]

void RE02NestedPhantomParameterisation::ComputeDimensions ( G4Polyhedra ,
const G4int  ,
const G4VPhysicalVolume  
) const
inlineprivate

Definition at line 152 of file RE02NestedPhantomParameterisation.hh.

153 {}

Member Data Documentation

◆ fdX

G4double RE02NestedPhantomParameterisation::fdX
private

Definition at line 162 of file RE02NestedPhantomParameterisation.hh.

◆ fdY

G4double RE02NestedPhantomParameterisation::fdY
private

Definition at line 162 of file RE02NestedPhantomParameterisation.hh.

◆ fdZ

G4double RE02NestedPhantomParameterisation::fdZ
private

Definition at line 162 of file RE02NestedPhantomParameterisation.hh.

◆ fNz

G4int RE02NestedPhantomParameterisation::fNz
private

Definition at line 163 of file RE02NestedPhantomParameterisation.hh.

◆ fpZ

std::vector<G4double> RE02NestedPhantomParameterisation::fpZ
private

Definition at line 165 of file RE02NestedPhantomParameterisation.hh.

◆ fMat

std::vector<G4Material*> RE02NestedPhantomParameterisation::fMat
private

Definition at line 166 of file RE02NestedPhantomParameterisation.hh.


The documentation for this class was generated from the following files:

Applications | User Support | Publications | Collaboration