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);
163 if(
fMass[copyNo] == 1 )
165 physVol->
SetName(
"physicalNucleus");
169 if(
fMass[copyNo] == 2 )
171 physVol->
SetName(
"physicalNucleus");
175 if(
fMass[copyNo] == 3 )
177 physVol->
SetName(
"physicalNucleus");
185 if(
fMass[copyNo] == 1 )
187 physVol->
SetName(
"physicalCytoplasm");
191 if(
fMass[copyNo] == 2 )
193 physVol->
SetName(
"physicalNucleus");
197 if(
fMass[copyNo] == 3 )
199 physVol->
SetName(
"physicalCytoplasm");
void SetColour(const G4Colour &)
CLHEP::Hep3Vector G4ThreeVector
G4Material * fNucleusMaterial1
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)
G4Material * fCytoplasmMaterial2
G4VisAttributes * fCytoplasmAttributes3
G4Material * fCytoplasmMaterial1
G4Material * fNucleusMaterial3
void SetTranslation(const G4ThreeVector &v)
G4VisAttributes * fNucleusAttributes2
G4VisAttributes * fCytoplasmAttributes1
G4VisAttributes * fNucleusAttributes3
G4LogicalVolume * GetLogicalVolume() const
G4Material * fNucleusMaterial2
G4Material * fCytoplasmMaterial3
G4VisAttributes * fNucleusAttributes1
virtual ~CellParameterisation()
void SetVisAttributes(const G4VisAttributes *pVA)
G4VisAttributes * fCytoplasmAttributes2
CellParameterisation(G4int NoBoxes, G4float DimBoxX, G4float DimBoxY, G4float DimBoxZ, G4Material *nucleus1, G4Material *cytoplasm1, G4Material *nucleus2, G4Material *cytoplasm2, G4Material *nucleus3, G4Material *cytoplasm3)