67 RODetectorYDivision(0),RODetectorZDivision(0),worldLogical(0),RODetectorLog(0),
68 RODetectorXDivisionLog(0),RODetectorYDivisionLog(0),RODetectorZDivisionLog(0),
69 sensitiveLogicalVolume(0)
81 G4int numberOfVoxelsX,
82 G4int numberOfVoxelsY,
83 G4int numberOfVoxelsZ)
119 G4double halfXVoxelSizeY = halfDetectorSizeY;
120 G4double halfXVoxelSizeZ = halfDetectorSizeZ;
121 G4double voxelXThickness = 2*halfXVoxelSizeX;
127 G4double halfYVoxelSizeX = halfXVoxelSizeX;
129 G4double halfYVoxelSizeZ = halfDetectorSizeZ;
130 G4double voxelYThickness = 2*halfYVoxelSizeY;
136 G4double halfZVoxelSizeX = halfXVoxelSizeX;
137 G4double halfZVoxelSizeY = halfYVoxelSizeY;
139 G4double voxelZThickness = 2*halfZVoxelSizeZ;
160 myVol = store->
GetVolume(
"RODetectorXDivisionPhys");
168 myVol = store->
GetVolume(
"RODetectorYDivisionPhys");
172 RODetectorXDivisionPhys,
177 myVol = store->
GetVolume(
"RODetectorZDivisionPhys");
181 RODetectorYDivisionPhys,
210 G4Exception(
"HadrontherapyDetectorROGeometry::Construct",
"had001",
211 FatalException,
"Parameters of the RO geometry are not initialized");
247 G4double halfXVoxelSizeY = halfDetectorSizeY;
248 G4double halfXVoxelSizeZ = halfDetectorSizeZ;
249 G4double voxelXThickness = 2*halfXVoxelSizeX;
259 "RODetectorXDivisionLog",
271 G4double halfYVoxelSizeX = halfXVoxelSizeX;
273 G4double halfYVoxelSizeZ = halfDetectorSizeZ;
274 G4double voxelYThickness = 2*halfYVoxelSizeY;
283 "RODetectorYDivisionLog",
288 RODetectorXDivisionPhys,
295 G4double halfZVoxelSizeX = halfXVoxelSizeX;
296 G4double halfZVoxelSizeY = halfYVoxelSizeY;
298 G4double voxelZThickness = 2*halfZVoxelSizeZ;
307 "RODetectorZDivisionLog",
312 RODetectorYDivisionPhys,
324 G4String sensitiveDetectorName =
"RODetector";
void SetXHalfLength(G4double dx)
G4LogicalVolume * worldLogical
virtual void ConstructSD()
static const G4double pos
G4LogicalVolume * GetLogicalVolume() const
HadrontherapyDetectorROGeometry(G4String)
G4Box * RODetectorXDivision
void SetZHalfLength(G4double dz)
G4VPhysicalVolume * GetVolume(const G4String &name, G4bool verbose=true) const
G4ThreeVector detectorToWorldPosition
G4int numberOfVoxelsAlongZ
static void DeRegister(G4VPhysicalVolume *pSolid)
G4int numberOfVoxelsAlongX
G4Box * RODetectorZDivision
G4LogicalVolume * RODetectorYDivisionLog
G4Box * RODetectorYDivision
G4int numberOfVoxelsAlongY
G4LogicalVolume * RODetectorXDivisionLog
G4LogicalVolume * RODetectorLog
void SetSensitiveDetector(const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
void SetYHalfLength(G4double dy)
~HadrontherapyDetectorROGeometry()
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
G4VPhysicalVolume * GetWorld()
G4LogicalVolume * sensitiveLogicalVolume
static G4PhysicalVolumeStore * GetInstance()
G4LogicalVolume * RODetectorZDivisionLog
void Initialize(G4ThreeVector detectorPos, G4double detectorDimX, G4double detectorDimY, G4double detectorDimZ, G4int numberOfVoxelsX, G4int numberOfVoxelsY, G4int numberOfVoxelsZ)