72 RODetectorYDivision(0),RODetectorZDivision(0),worldLogical(0),RODetectorLog(0),
73 RODetectorXDivisionLog(0),RODetectorYDivisionLog(0),RODetectorZDivisionLog(0),
74 sensitiveLogicalVolume(0)
86 G4int numberOfVoxelsX,
87 G4int numberOfVoxelsY,
88 G4int numberOfVoxelsZ)
124 G4double halfXVoxelSizeY = halfDetectorSizeY;
125 G4double halfXVoxelSizeZ = halfDetectorSizeZ;
126 G4double voxelXThickness = 2*halfXVoxelSizeX;
132 G4double halfYVoxelSizeX = halfXVoxelSizeX;
134 G4double halfYVoxelSizeZ = halfDetectorSizeZ;
135 G4double voxelYThickness = 2*halfYVoxelSizeY;
141 G4double halfZVoxelSizeX = halfXVoxelSizeX;
142 G4double halfZVoxelSizeY = halfYVoxelSizeY;
144 G4double voxelZThickness = 2*halfZVoxelSizeZ;
165 myVol = store->
GetVolume(
"RODetectorXDivisionPhys");
173 myVol = store->
GetVolume(
"RODetectorYDivisionPhys");
177 RODetectorXDivisionPhys,
182 myVol = store->
GetVolume(
"RODetectorZDivisionPhys");
186 RODetectorYDivisionPhys,
215 G4Exception(
"HadrontherapyDetectorROGeometry::Construct",
"had001",
216 FatalException,
"Parameters of the RO geometry are not initialized");
252 G4double halfXVoxelSizeY = halfDetectorSizeY;
253 G4double halfXVoxelSizeZ = halfDetectorSizeZ;
254 G4double voxelXThickness = 2*halfXVoxelSizeX;
264 "RODetectorXDivisionLog",
276 G4double halfYVoxelSizeX = halfXVoxelSizeX;
278 G4double halfYVoxelSizeZ = halfDetectorSizeZ;
279 G4double voxelYThickness = 2*halfYVoxelSizeY;
288 "RODetectorYDivisionLog",
293 RODetectorXDivisionPhys,
300 G4double halfZVoxelSizeX = halfXVoxelSizeX;
301 G4double halfZVoxelSizeY = halfYVoxelSizeY;
303 G4double voxelZThickness = 2*halfZVoxelSizeZ;
312 "RODetectorZDivisionLog",
317 RODetectorYDivisionPhys,
329 G4String sensitiveDetectorName =
"RODetector";
HadrontherapyDetectorROGeometry(G4String)
void SetZHalfLength(G4double dz)
CLHEP::Hep3Vector G4ThreeVector
G4VPhysicalVolume * GetWorld()
G4LogicalVolume * RODetectorXDivisionLog
G4Box * RODetectorZDivision
G4LogicalVolume * sensitiveLogicalVolume
G4LogicalVolume * worldLogical
G4Box * RODetectorXDivision
void Initialize(G4ThreeVector detectorPos, G4double detectorDimX, G4double detectorDimY, G4double detectorDimZ, G4int numberOfVoxelsX, G4int numberOfVoxelsY, G4int numberOfVoxelsZ)
~HadrontherapyDetectorROGeometry()
static void DeRegister(G4VPhysicalVolume *pSolid)
G4LogicalVolume * RODetectorZDivisionLog
static G4PhysicalVolumeStore * GetInstance()
void SetSensitiveDetector(const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
G4LogicalVolume * RODetectorYDivisionLog
virtual void ConstructSD()
G4ThreeVector detectorToWorldPosition
G4int numberOfVoxelsAlongX
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4LogicalVolume * GetLogicalVolume() const
void SetYHalfLength(G4double dy)
G4LogicalVolume * RODetectorLog
G4int numberOfVoxelsAlongY
void SetXHalfLength(G4double dx)
G4int numberOfVoxelsAlongZ
G4Box * RODetectorYDivision
G4VPhysicalVolume * GetVolume(const G4String &name, G4bool verbose=true) const
static const G4double pos