69 RODetectorYDivision(0),RODetectorZDivision(0),worldLogical(0),RODetectorLog(0),
70 RODetectorXDivisionLog(0),RODetectorYDivisionLog(0),RODetectorZDivisionLog(0),
71 sensitiveLogicalVolume(0)
83 G4int numberOfVoxelsX,
84 G4int numberOfVoxelsY,
85 G4int numberOfVoxelsZ)
121 G4double halfXVoxelSizeY = halfDetectorSizeY;
122 G4double halfXVoxelSizeZ = halfDetectorSizeZ;
123 G4double voxelXThickness = 2*halfXVoxelSizeX;
129 G4double halfYVoxelSizeX = halfXVoxelSizeX;
131 G4double halfYVoxelSizeZ = halfDetectorSizeZ;
132 G4double voxelYThickness = 2*halfYVoxelSizeY;
138 G4double halfZVoxelSizeX = halfXVoxelSizeX;
139 G4double halfZVoxelSizeY = halfYVoxelSizeY;
141 G4double voxelZThickness = 2*halfZVoxelSizeZ;
162 myVol = store->
GetVolume(
"RODetectorXDivisionPhys");
170 myVol = store->
GetVolume(
"RODetectorYDivisionPhys");
174 RODetectorXDivisionPhys,
179 myVol = store->
GetVolume(
"RODetectorZDivisionPhys");
183 RODetectorYDivisionPhys,
212 G4Exception(
"HadrontherapyDetectorROGeometry::Construct",
"had001",
213 FatalException,
"Parameters of the RO geometry are not initialized");
249 G4double halfXVoxelSizeY = halfDetectorSizeY;
250 G4double halfXVoxelSizeZ = halfDetectorSizeZ;
251 G4double voxelXThickness = 2*halfXVoxelSizeX;
261 "RODetectorXDivisionLog",
273 G4double halfYVoxelSizeX = halfXVoxelSizeX;
275 G4double halfYVoxelSizeZ = halfDetectorSizeZ;
276 G4double voxelYThickness = 2*halfYVoxelSizeY;
285 "RODetectorYDivisionLog",
290 RODetectorXDivisionPhys,
297 G4double halfZVoxelSizeX = halfXVoxelSizeX;
298 G4double halfZVoxelSizeY = halfYVoxelSizeY;
300 G4double voxelZThickness = 2*halfZVoxelSizeZ;
309 "RODetectorZDivisionLog",
314 RODetectorYDivisionPhys,
326 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