72 : motherPhys(physicalTreatmentRoom),
73 detectorSD(0), detectorROGeometry(0), matrix(0),
74 phantom(0), detector(0),
75 phantomLogicalVolume(0), detectorLogicalVolume(0),
76 phantomPhysicalVolume(0), detectorPhysicalVolume(0),
162 "phantomLog", 0, 0, 0);
175 red -> SetVisibility(
true);
273 startAngleDiscoIORT0,
274 spanningAngleDiscoIORT0);
283 white -> SetVisibility(
true);
285 logDiscoIORT0 -> SetVisAttributes(
white);
294 gray-> SetVisibility(
true);
299 gray1-> SetVisibility(
true);
323 spanningAngleDiscoIORT);
331 logDiscoIORT -> SetVisAttributes(
gray1);
351 startAngleDiscoIORT1,
352 spanningAngleDiscoIORT1);
360 white -> SetVisibility(
true);
361 white -> SetForceSolid(
true);
362 logDiscoIORT1 -> SetVisAttributes(
gray);
376 static G4String sensitiveDetectorName =
"Detector";
383 static G4String ROGeometryName =
"DetectorROGeometry";
385 detectorToWorldPosition,
393 G4cout <<
"Instantiating new Read Out Geometry \"" << ROGeometryName <<
"\""<<
G4endl;
399 if (!sensitiveDetectorManager -> FindSensitiveDetector(sensitiveDetectorName,
false))
401 G4cout <<
"Registering new DetectorSD \"" << sensitiveDetectorName <<
"\""<<
G4endl;
403 sensitiveDetectorManager -> AddNewDetector(
detectorSD);
419 G4Exception(
"IORTDetectorConstruction::ParametersCheck()",
"IORT0001",
FatalException,
"Error: Detector is not fully inside Phantom!");
424 G4Exception(
"IORTDetectorConstruction::ParametersCheck()",
"IORT0002",
FatalException,
"Error: Detector X size must be bigger or equal than that of Voxel X");
427 G4Exception(
"IORTDetectorConstruction::ParametersCheck()",
"IORT0003",
FatalException,
"Error: Detector X size must be bigger or equal than that of Voxel Y");
430 G4Exception(
"IORTDetectorConstruction::ParametersCheck()",
"IORT0004",
FatalException,
"Error: Detector X size must be bigger or equal than that of Voxel Z");
452 G4cout <<
"The material of Phantom/Detector has been changed to " << material <<
G4endl;
457 G4cout <<
"WARNING: material \"" << material <<
"\" doesn't exist in NIST elements/materials" 458 " table [located in $G4INSTALL/source/materials/src/G4NistMaterialBuilder.cc]" <<
G4endl;
459 G4cout <<
"Use command \"/parameter/nist\" to see full materials list!" <<
G4endl;
479 G4cout <<
"The material of Protection disc 1 has been changed to " << material <<
G4endl;
484 G4cout <<
"WARNING: material \"" << material <<
"\" doesn't exist in NIST elements/materials" 485 " table [located in $G4INSTALL/source/materials/src/G4NistMaterialBuilder.cc]" <<
G4endl;
486 G4cout <<
"Use command \"/parameter/nist\" to see full materials list!" <<
G4endl;
506 G4cout <<
"The material of Protection disc 2 has been changed to " << material <<
G4endl;
511 G4cout <<
"WARNING: material \"" << material <<
"\" doesn't exist in NIST elements/materials" 512 " table [located in $G4INSTALL/source/materials/src/G4NistMaterialBuilder.cc]" <<
G4endl;
513 G4cout <<
"Use command \"/parameter/nist\" to see full materials list!" <<
G4endl;
716 G4cout <<
"The (X,Y,Z) dimensions of the phantom are : (" <<
721 G4cout <<
"The (X,Y,Z) dimensions of the detector are : (" <<
726 G4cout <<
"Displacement between Phantom and World is: ";
731 G4cout <<
"The (X,Y,Z) sizes of the Voxels are: (" <<
736 G4cout <<
"The number of Voxels along (X,Y,Z) is: (" <<
G4LogicalVolume * logicDiscoIORT
void ConstructSensitiveDetector(G4ThreeVector positionToWORLD)
G4Material * phantomMaterial
G4VPhysicalVolume * physiDiscoIORT1
void SetDiscoZPositionIORT(G4double zpos)
G4LogicalVolume * phantomLogicalVolume
G4ThreeVector detectorPosition
CLHEP::Hep3Vector G4ThreeVector
G4int numberOfVoxelsAlongX
G4Material * DiscoMaterialIORT1
G4int numberOfVoxelsAlongY
~IORTDetectorConstruction()
void SetOuterRadiusDiscoIORT1(G4double outerr)
void SetDetectorToPhantomPosition(G4ThreeVector DetectorToPhantomPosition)
G4double DiscoXPositionIORT
void SetPhantomSize(G4double sizeX, G4double sizeY, G4double sizeZ)
IORTDetectorROGeometry * detectorROGeometry
void SetDetectorSize(G4double sizeX, G4double sizeY, G4double sizeZ)
HepRotation & rotateY(double delta)
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
void SetheightDiscoIORT1(G4double height)
static G4NistManager * Instance()
G4double DiscoYPositionIORT
void SetinnerRadiusDiscoIORT1(G4double innerr)
G4double sizeOfVoxelAlongY
G4LogicalVolume * logicDiscoIORT1
G4LogicalVolume * logicDiscoIORT0
G4double sizeOfVoxelAlongX
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)
G4VPhysicalVolume * motherPhys
G4GLOB_DLL std::ostream G4cout
G4double DiscoZPositionIORT
G4double sizeOfVoxelAlongZ
void SetDiscoXPositionIORT1(G4double xpos)
void SetDetectorPosition()
G4VPhysicalVolume * phantomPhysicalVolume
G4int numberOfVoxelsAlongZ
IORTDetectorConstruction(G4VPhysicalVolume *)
G4Material * DiscoMaterialIORT
G4VPhysicalVolume * detectorPhysicalVolume
void SetAngleDiscoIORT0(G4double phi0)
static G4GeometryManager * GetInstance()
void SetPhantomPosition(G4ThreeVector)
void SetinnerRadiusDiscoIORT(G4double innerr)
static IORTAnalysisManager * GetInstance()
G4double innerRadiusDiscoIORT1
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4Material * detectorMaterial
static G4RunManager * GetRunManager()
void SetheightDiscoIORT(G4double height)
G4double innerRadiusDiscoIORT
static G4SDManager * GetSDMpointer()
void SetOuterRadiusDiscoIORT(G4double outerr)
G4VPhysicalVolume * physiDiscoIORT0
G4bool SetDiscoMaterialIORT1(G4String material)
void SetDiscoXPositionIORT(G4double xpos)
G4ThreeVector GetDetectorToWorldPosition()
def SetMaterial(material_name)
G4double OuterRadiusDiscoIORT
G4VPhysicalVolume * physiDiscoIORT
static IORTMatrix * GetInstance()
G4double DiscoXPositionIORT1
G4ThreeVector detectorToPhantomPosition
G4ThreeVector phantomPosition
IORTDetectorSD * detectorSD
static const G4double pos
G4double OuterRadiusDiscoIORT1
G4double heightDiscoIORT1
IORTDetectorMessenger * detectorMessenger
G4LogicalVolume * detectorLogicalVolume
void SetVoxelSize(G4double sizeX, G4double sizeY, G4double sizeZ)