source: trunk/examples/advanced/brachytherapy/include/BrachyDetectorConstruction.hh@ 1288

Last change on this file since 1288 was 1230, checked in by garnier, 16 years ago

update to geant4.9.3

File size: 4.5 KB
RevLine 
[807]1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26//
27// $Id: BrachyDetectorConstruction.hh,v 1.17 2006/06/29 15:47:11 gunter Exp $
[1230]28// GEANT4 tag $Name: geant4-09-03-cand-01 $
[807]29//
30// ****************************************
31// * *
32// * BrachyDetectorConstruction.hh *
33// * *
34// ****************************************
35// This class manages the geometry of the simulation experimental set-up
36//
37
38#ifndef BrachyDetectorConstruction_H
39#define BrachyDetectorConstruction_H 1
40
41#include "G4VUserDetectorConstruction.hh"
42
43class BrachyDetectorMessenger;
44class G4LogicalVolume;
45class G4Material;
46class G4Box;
47class G4Colour;
48class G4VPhysicalVolume;
49class BrachyPhantomSD;
50class BrachyPhantomROGeometry;
51class G4VPhysicalVolume;
52class BrachyMaterial;
53class BrachyFactory;
54
55class BrachyDetectorConstruction : public G4VUserDetectorConstruction
56{
57public:
58
59 BrachyDetectorConstruction(G4String&);
60 ~BrachyDetectorConstruction();
61
62 G4VPhysicalVolume* Construct();
63 void SwitchBrachytherapicSeed(); //Change radiactive source through GUI
64 void SelectBrachytherapicSeed(G4String val);
65 void ConstructPhantom();
66 void ConstructSensitiveDetector();
67 void PrintDetectorParameters();
68 void SetPhantomMaterial(G4String);
69
70 const G4double VoxelWidth_X(){return phantomSizeX/numberOfVoxelsAlongX;}
71 const G4double VoxelWidth_Z(){return phantomSizeZ/numberOfVoxelsAlongZ;}
72 const G4int GetNumVoxelX(){return numberOfVoxelsAlongX;}
73 const G4int GetNumVoxelZ(){return numberOfVoxelsAlongZ;}
74 const G4double GetDimX() {return phantomSizeX;}
75 const G4double GetBoxDim_Z() {return phantomSizeZ;}
76
77 void ComputeDimVoxel() {dimVoxel = phantomSizeX/numberOfVoxelsAlongX;}
78
79private:
80
81 G4int detectorChoice; //Select brachytherapic seed
82 BrachyPhantomSD* phantomSD;//pointer to sensitive detector
83 BrachyPhantomROGeometry* phantomROGeometry;//pointer to ROGeometry
84 BrachyFactory* factory;
85
86 // World ...
87 G4Box* World; //pointer to the solid World
88 G4LogicalVolume* WorldLog; //pointer to the logical World
89 G4VPhysicalVolume* WorldPhys; //pointer to the physical World
90
91 // Phantom ...
92 G4Box* Phantom; //pointer to solid phantom
93 G4LogicalVolume* PhantomLog; //pointer to logic phantom
94 G4VPhysicalVolume* PhantomPhys; //pointer to physical phantom
95 G4Material* phantomAbsorberMaterial;
96
97 G4double phantomSizeX; //Phantom XSize
98 G4double phantomSizeY; //Phantom YSize
99 G4double phantomSizeZ; //Phantom ZSize
100 G4int numberOfVoxelsAlongX; //Number of voxels along x axis
101 G4int numberOfVoxelsAlongY; //Number of voxels along y axis
102 G4int numberOfVoxelsAlongZ; //Number of voxels along z axis
103 G4double worldSizeX ; //World XSize
104 G4double worldSizeY ; //World YSize
105 G4double worldSizeZ ; //World XSize
106 G4String sensitiveDetectorName;
107 BrachyDetectorMessenger* detectorMessenger;
108 BrachyMaterial* pMaterial;
109
110 G4double dimVoxel;
111};
112
113#endif
Note: See TracBrowser for help on using the repository browser.