41 #ifndef IORTDetectorConstruction_H
42 #define IORTDetectorConstruction_H 1
70 void ConstructPhantom();
71 void ConstructDetector();
73 void ConstructSensitiveDetector(
G4ThreeVector positionToWORLD);
74 void ParametersCheck();
80 return phantomPosition + detectorPosition;
87 phantomSizeY/2 - detectorSizeY/2 + detectorPosition.
getY(),
88 phantomSizeZ/2 - detectorSizeZ/2 + detectorPosition.
getZ()
97 detectorPosition.
setX(detectorToPhantomPosition.
getX() - phantomSizeX/2 + detectorSizeX/2);
98 detectorPosition.
setY(detectorToPhantomPosition.
getY() - phantomSizeY/2 + detectorSizeY/2);
99 detectorPosition.
setZ(detectorToPhantomPosition.
getZ() - phantomSizeZ/2 + detectorSizeZ/2);
117 if (detectorX > phantomX)
119 G4cout <<
"Error: Detector X dimension must be smaller or equal to the corrispondent of the phantom" <<
G4endl;
122 if ( (phantomX - detectorX) < detToPhantomPosition.
getX())
124 G4cout <<
"Error: X dimension doesn't fit with detector to phantom relative position" <<
G4endl;
130 if (detectorY > phantomY)
132 G4cout <<
"Error: Detector Y dimension must be smaller or equal to the corrispondent of the phantom" <<
G4endl;
135 if ( (phantomY - detectorY) < detToPhantomPosition.
getY())
137 G4cout <<
"Error: Y dimension doesn't fit with detector to phantom relative position" <<
G4endl;
143 if (detectorZ > phantomZ)
145 G4cout <<
"Error: Detector Z dimension must be smaller or equal to the corrispondent of the phantom" <<
G4endl;
148 if ( (phantomZ - detectorZ) < detToPhantomPosition.
getZ())
150 G4cout <<
"Error: Z dimension doesn't fit with detector to phantom relative position" <<
G4endl;
199 G4Box *phantom , *detector;
211 G4ThreeVector phantomPosition, detectorPosition, detectorToPhantomPosition;
217 G4int numberOfVoxelsAlongX;
218 G4int numberOfVoxelsAlongY;
219 G4int numberOfVoxelsAlongZ;
221 G4double volumeOfVoxel, massOfVoxel;
223 G4Material *phantomMaterial, *detectorMaterial;
G4ThreeVector GetDetectorToPhantomPosition()
void SetDiscoZPositionIORT(G4double zpos)
CLHEP::Hep3Vector G4ThreeVector
~IORTDetectorConstruction()
void SetOuterRadiusDiscoIORT1(G4double outerr)
void SetDetectorToPhantomPosition(G4ThreeVector DetectorToPhantomPosition)
void SetPhantomSize(G4double sizeX, G4double sizeY, G4double sizeZ)
void SetDetectorSize(G4double sizeX, G4double sizeY, G4double sizeZ)
void SetheightDiscoIORT1(G4double height)
void SetinnerRadiusDiscoIORT1(G4double innerr)
G4bool SetDiscoMaterialIORT(G4String material)
void SetDiscoYPositionIORT(G4double ypos)
G4bool SetPhantomMaterial(G4String material)
bool IsInside(G4double detectorX, G4double detectorY, G4double detectorZ, G4double phantomX, G4double phantomY, G4double phantomZ, G4ThreeVector detToPhantomPosition)
G4LogicalVolume * GetDetectorLogicalVolume()
G4GLOB_DLL std::ostream G4cout
void SetDiscoXPositionIORT1(G4double xpos)
void SetDetectorPosition()
IORTDetectorConstruction(G4VPhysicalVolume *)
void SetAngleDiscoIORT0(G4double phi0)
void SetPhantomPosition(G4ThreeVector)
void SetinnerRadiusDiscoIORT(G4double innerr)
void SetheightDiscoIORT(G4double height)
void SetOuterRadiusDiscoIORT(G4double outerr)
G4bool SetDiscoMaterialIORT1(G4String material)
void SetDiscoXPositionIORT(G4double xpos)
G4ThreeVector GetDetectorToWorldPosition()
void SetVoxelSize(G4double sizeX, G4double sizeY, G4double sizeZ)