47 fNucleusMaterial1 = nucleus1;
48 fCytoplasmMaterial1 = cytoplasm1;
49 fNucleusMaterial2 = nucleus2;
50 fCytoplasmMaterial2 = cytoplasm2;
51 fNucleusMaterial3 = nucleus3;
52 fCytoplasmMaterial3 = cytoplasm3;
54 fNoCellBoxes = NoBoxes;
55 fDimCellBoxX = DimBoxX;
56 fDimCellBoxY = DimBoxY;
57 fDimCellBoxZ = DimBoxZ;
60 fMaterial =
new G4float[fNoCellBoxes];
61 fMass =
new G4float[fNoCellBoxes];
64 G4int shiftX, shiftY, shiftZ;
72 fMap = fopen(
"phantom.dat",
"r");
76 if (nlines >= 0 && nlines <=1 ) ncols = fscanf(fMap,
"%f %f %f",&tmp,&tmp,&sizeZ);
77 if (nlines == 2) ncols = fscanf(fMap,
"%i %i %i",&shiftX,&shiftY,&shiftZ);
78 if (nlines == 3) ncols = fscanf(fMap,
"%f %f %f",&tmp,&tmp,&tmp);
79 if (nlines == 4) ncols = fscanf(fMap,
"%f %f %f",&tmp,&tmp,&tmp);
80 if (nlines > 4) ncols = fscanf(fMap,
"%f %f %f %f %f %f",&x,&y,&z,&mat,&den,&tmp);
88 fMaterial[nlines-5]=
mat;
100 fNucleusAttributes1->SetForceSolid(
false);
104 fNucleusAttributes2->SetForceSolid(
false);
108 fNucleusAttributes3->SetForceSolid(
false);
114 fCytoplasmAttributes1->SetForceSolid(
false);
118 fCytoplasmAttributes2->SetForceSolid(
false);
122 fCytoplasmAttributes3->SetForceSolid(
false);
141 fMapCell[copyNo].
x()*fDimCellBoxX*2,
142 fMapCell[copyNo].
y()*fDimCellBoxY*2,
143 fMapCell[copyNo].
z()*fDimCellBoxZ*2);
161 if( fMaterial[copyNo] == 2 )
163 if( fMass[copyNo] == 1 )
165 physVol->
SetName(
"physicalNucleus");
167 return fNucleusMaterial1;
169 if( fMass[copyNo] == 2 )
171 physVol->
SetName(
"physicalNucleus");
173 return fNucleusMaterial2;
175 if( fMass[copyNo] == 3 )
177 physVol->
SetName(
"physicalNucleus");
179 return fNucleusMaterial3;
183 else if( fMaterial[copyNo] == 1 )
185 if( fMass[copyNo] == 1 )
187 physVol->
SetName(
"physicalCytoplasm");
189 return fCytoplasmMaterial1;
191 if( fMass[copyNo] == 2 )
193 physVol->
SetName(
"physicalNucleus");
195 return fCytoplasmMaterial2;
197 if( fMass[copyNo] == 3 )
199 physVol->
SetName(
"physicalCytoplasm");
201 return fCytoplasmMaterial3;
void SetColour(const G4Colour &)
G4Material * GetMaterial() const
G4Material * ComputeMaterial(const G4int copyNo, G4VPhysicalVolume *physVol, const G4VTouchable *)
void ComputeTransformation(const G4int copyNo, G4VPhysicalVolume *physVol) const
void ComputeDimensions(G4Box &, const G4int, const G4VPhysicalVolume *) const
void SetName(const G4String &pName)
void SetTranslation(const G4ThreeVector &v)
G4LogicalVolume * GetLogicalVolume() const
virtual ~CellParameterisation()
void SetVisAttributes(const G4VisAttributes *pVA)
CellParameterisation(G4int NoBoxes, G4float DimBoxX, G4float DimBoxY, G4float DimBoxZ, G4Material *nucleus1, G4Material *cytoplasm1, G4Material *nucleus2, G4Material *cytoplasm2, G4Material *nucleus3, G4Material *cytoplasm3)